├── .devcontainer └── devcontainer.json ├── .gitattributes ├── .github ├── dependabot.yml ├── linters │ ├── .eslintrc.yml │ ├── .markdown-lint.yml │ ├── .yaml-lint.yml │ ├── super-linter.env │ └── tsconfig.json └── workflows │ ├── check-dist.yml │ ├── ci.yml │ ├── codeql-analysis.yml │ └── linter.yml ├── .gitignore ├── .node-version ├── .prettierignore ├── .prettierrc.json ├── CODEOWNERS ├── LICENSE ├── README.md ├── __test_environments__ ├── with-bun │ ├── .gitignore │ ├── bun.lockb │ ├── package.json │ ├── sst.config.ts │ └── tsconfig.json └── with-npm │ ├── .gitignore │ ├── package-lock.json │ ├── package.json │ ├── sst.config.ts │ └── tsconfig.json ├── __tests__ ├── main.test.ts ├── mainImpl.test.ts ├── post.test.ts └── postImpl.test.ts ├── action.yml ├── badges └── coverage.svg ├── dist ├── main │ ├── index.js │ ├── index.js.map │ ├── licenses.txt │ └── sourcemap-register.js └── post │ ├── index.js │ ├── index.js.map │ ├── licenses.txt │ └── sourcemap-register.js ├── package-lock.json ├── package.json ├── script └── release ├── src ├── contants.ts ├── main.ts ├── mainImpl.ts ├── post.ts ├── postImpl.ts └── sst.ts ├── tips.md └── tsconfig.json /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "GitHub Actions (TypeScript)", 3 | "image": "mcr.microsoft.com/devcontainers/typescript-node:20", 4 | "postCreateCommand": "npm install", 5 | "customizations": { 6 | "codespaces": { 7 | "openFiles": ["README.md"] 8 | }, 9 | "vscode": { 10 | "extensions": [ 11 | "bierner.markdown-preview-github-styles", 12 | "davidanson.vscode-markdownlint", 13 | "dbaeumer.vscode-eslint", 14 | "esbenp.prettier-vscode", 15 | "github.copilot", 16 | "github.copilot-chat", 17 | "github.vscode-github-actions", 18 | "github.vscode-pull-request-github", 19 | "me-dutour-mathieu.vscode-github-actions", 20 | "redhat.vscode-yaml", 21 | "rvest.vs-code-prettier-eslint", 22 | "yzhang.markdown-all-in-one" 23 | ], 24 | "settings": { 25 | "editor.defaultFormatter": "esbenp.prettier-vscode", 26 | "editor.tabSize": 2, 27 | "editor.formatOnSave": true, 28 | "markdown.extension.list.indentationSize": "adaptive", 29 | "markdown.extension.italic.indicator": "_", 30 | "markdown.extension.orderedList.marker": "one" 31 | } 32 | } 33 | }, 34 | "remoteEnv": { 35 | "GITHUB_TOKEN": "${localEnv:GITHUB_TOKEN}" 36 | }, 37 | "features": { 38 | "ghcr.io/devcontainers/features/github-cli:1": {}, 39 | "ghcr.io/devcontainers-contrib/features/prettier:1": {} 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | 3 | dist/** -diff linguist-generated=true 4 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: github-actions 4 | directory: / 5 | schedule: 6 | interval: weekly 7 | groups: 8 | actions-minor: 9 | update-types: 10 | - minor 11 | - patch 12 | 13 | - package-ecosystem: npm 14 | directory: / 15 | schedule: 16 | interval: weekly 17 | groups: 18 | npm-development: 19 | dependency-type: development 20 | update-types: 21 | - minor 22 | - patch 23 | npm-production: 24 | dependency-type: production 25 | update-types: 26 | - patch 27 | -------------------------------------------------------------------------------- /.github/linters/.eslintrc.yml: -------------------------------------------------------------------------------- 1 | env: 2 | node: true 3 | es6: true 4 | jest: true 5 | 6 | globals: 7 | Atomics: readonly 8 | SharedArrayBuffer: readonly 9 | 10 | ignorePatterns: 11 | - '!.*' 12 | - '**/node_modules/.*' 13 | - '**/dist/.*' 14 | - '**/coverage/.*' 15 | - '*.json' 16 | - '**/sst/.*' 17 | - '__test_environments__' 18 | - 'dist' 19 | - 'coverage' 20 | 21 | parser: '@typescript-eslint/parser' 22 | 23 | parserOptions: 24 | ecmaVersion: 2023 25 | sourceType: module 26 | project: 27 | - './.github/linters/tsconfig.json' 28 | - './tsconfig.json' 29 | 30 | plugins: 31 | - jest 32 | - '@typescript-eslint' 33 | 34 | extends: 35 | - eslint:recommended 36 | - plugin:@typescript-eslint/eslint-recommended 37 | - plugin:@typescript-eslint/recommended 38 | - plugin:jest/recommended 39 | 40 | rules: 41 | { 42 | 'camelcase': 'off', 43 | 'eslint-comments/no-use': 'off', 44 | 'eslint-comments/no-unused-disable': 'off', 45 | 'i18n-text/no-en': 'off', 46 | 'import/no-namespace': 'off', 47 | 'no-console': 'off', 48 | 'no-unused-vars': 'off', 49 | 'semi': 'off', 50 | '@typescript-eslint/array-type': 'error', 51 | '@typescript-eslint/await-thenable': 'error', 52 | '@typescript-eslint/ban-ts-comment': 'error', 53 | '@typescript-eslint/consistent-type-assertions': 'error', 54 | '@typescript-eslint/explicit-member-accessibility': 55 | ['error', { 'accessibility': 'no-public' }], 56 | '@typescript-eslint/explicit-function-return-type': 57 | ['error', { 'allowExpressions': true }], 58 | '@typescript-eslint/no-array-constructor': 'error', 59 | '@typescript-eslint/no-empty-interface': 'error', 60 | '@typescript-eslint/no-explicit-any': 'error', 61 | '@typescript-eslint/no-extraneous-class': 'error', 62 | '@typescript-eslint/no-for-in-array': 'error', 63 | '@typescript-eslint/no-inferrable-types': 'error', 64 | '@typescript-eslint/no-misused-new': 'error', 65 | '@typescript-eslint/no-namespace': 'error', 66 | '@typescript-eslint/no-non-null-assertion': 'warn', 67 | '@typescript-eslint/no-require-imports': 'error', 68 | '@typescript-eslint/no-unnecessary-qualifier': 'error', 69 | '@typescript-eslint/no-unnecessary-type-assertion': 'error', 70 | '@typescript-eslint/no-unused-vars': 'error', 71 | '@typescript-eslint/no-useless-constructor': 'error', 72 | '@typescript-eslint/no-var-requires': 'error', 73 | '@typescript-eslint/prefer-for-of': 'warn', 74 | '@typescript-eslint/prefer-function-type': 'warn', 75 | '@typescript-eslint/prefer-includes': 'error', 76 | '@typescript-eslint/prefer-string-starts-ends-with': 'error', 77 | '@typescript-eslint/promise-function-async': 'error', 78 | '@typescript-eslint/require-array-sort-compare': 'error', 79 | '@typescript-eslint/restrict-plus-operands': 'error', 80 | '@typescript-eslint/space-before-function-paren': 'off', 81 | '@typescript-eslint/unbound-method': 'error' 82 | } 83 | -------------------------------------------------------------------------------- /.github/linters/.markdown-lint.yml: -------------------------------------------------------------------------------- 1 | # Unordered list style 2 | MD004: 3 | style: dash 4 | 5 | # Ordered list item prefix 6 | MD029: 7 | style: one 8 | 9 | # Spaces after list markers 10 | MD030: 11 | ul_single: 1 12 | ol_single: 1 13 | ul_multi: 1 14 | ol_multi: 1 15 | 16 | # Code block style 17 | MD046: 18 | style: fenced 19 | -------------------------------------------------------------------------------- /.github/linters/.yaml-lint.yml: -------------------------------------------------------------------------------- 1 | rules: 2 | document-end: disable 3 | document-start: 4 | level: warning 5 | present: false 6 | line-length: 7 | level: warning 8 | max: 80 9 | allow-non-breakable-words: true 10 | allow-non-breakable-inline-mappings: true 11 | -------------------------------------------------------------------------------- /.github/linters/super-linter.env: -------------------------------------------------------------------------------- 1 | DEFAULT_BRANCH=main 2 | FILTER_REGEX_EXCLUDE=dist/**/* 3 | VALIDATE_ALL_CODEBASE=true 4 | VALIDATE_JAVASCRIPT_STANDARD=false 5 | VALIDATE_JSCPD=false 6 | VALIDATE_TYPESCRIPT_STANDARD=false 7 | -------------------------------------------------------------------------------- /.github/linters/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "extends": "../../tsconfig.json", 4 | "compilerOptions": { 5 | "noEmit": true 6 | }, 7 | "include": ["../../__tests__/**/*", "../../src/**/*"], 8 | "exclude": [ 9 | "../../dist", 10 | "../../node_modules", 11 | "../../coverage", 12 | "*.json", 13 | "../../__test_environments__" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /.github/workflows/check-dist.yml: -------------------------------------------------------------------------------- 1 | # In TypeScript actions, `dist/` is a special directory. When you reference 2 | # an action with the `uses:` property, `dist/index.js` is the code that will be 3 | # run. For this project, the `dist/index.js` file is transpiled from other 4 | # source files. This workflow ensures the `dist/` directory contains the 5 | # expected transpiled code. 6 | # 7 | # If this workflow is run from a feature branch, it will act as an additional CI 8 | # check and fail if the checked-in `dist/` directory does not match what is 9 | # expected from the build. 10 | name: Check Transpiled JavaScript 11 | 12 | on: 13 | pull_request: 14 | branches: 15 | - main 16 | push: 17 | branches: 18 | - main 19 | 20 | permissions: 21 | contents: read 22 | 23 | jobs: 24 | check-dist: 25 | name: Check dist/ 26 | runs-on: ubuntu-latest 27 | 28 | steps: 29 | - name: Checkout 30 | id: checkout 31 | uses: actions/checkout@v4 32 | 33 | - name: Setup Node.js 34 | id: setup-node 35 | uses: actions/setup-node@v4 36 | with: 37 | node-version-file: .node-version 38 | cache: npm 39 | 40 | - name: Install Dependencies 41 | id: install 42 | run: npm ci 43 | 44 | - name: Build dist/ Directory 45 | id: build 46 | run: npm run bundle 47 | 48 | # This will fail the workflow if the `dist/` directory is different than 49 | # expected. 50 | - name: Compare Directories 51 | id: diff 52 | run: | 53 | if [ ! -d dist/ ]; then 54 | echo "Expected dist/ directory does not exist. See status below:" 55 | ls -la ./ 56 | exit 1 57 | fi 58 | if [ "$(git diff --ignore-space-at-eol --text dist/ | wc -l)" -gt "0" ]; then 59 | echo "Detected uncommitted changes after build. See status below:" 60 | git diff --ignore-space-at-eol --text dist/ 61 | exit 1 62 | fi 63 | 64 | # If `dist/` was different than expected, upload the expected version as a 65 | # workflow artifact. 66 | - if: ${{ failure() && steps.diff.outcome == 'failure' }} 67 | name: Upload Artifact 68 | id: upload 69 | uses: actions/upload-artifact@v4 70 | with: 71 | name: dist 72 | path: dist/ 73 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: Continuous Integration 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - main 7 | push: 8 | branches: 9 | - main 10 | 11 | permissions: 12 | contents: read 13 | 14 | jobs: 15 | test-typescript: 16 | name: TypeScript Tests 17 | runs-on: ubuntu-latest 18 | 19 | steps: 20 | - name: Checkout 21 | id: checkout 22 | uses: actions/checkout@v4 23 | 24 | - name: Setup Node.js 25 | id: setup-node 26 | uses: actions/setup-node@v4 27 | with: 28 | node-version-file: .node-version 29 | cache: npm 30 | 31 | - name: Install Dependencies 32 | id: npm-ci 33 | run: npm ci 34 | 35 | - name: Install SST Dependencies 36 | id: sst-npm 37 | run: | 38 | cd __test_environments__/with-npm 39 | npm ci 40 | 41 | - name: Check Format 42 | id: npm-format-check 43 | run: npm run format:check 44 | 45 | - name: Lint 46 | id: npm-lint 47 | run: npm run lint 48 | 49 | - name: Test 50 | id: npm-ci-test 51 | run: npm run ci-test 52 | 53 | test-action: 54 | name: GitHub Actions Test 55 | runs-on: ubuntu-latest 56 | 57 | steps: 58 | - name: Checkout 59 | id: checkout 60 | uses: actions/checkout@v4 61 | 62 | - name: Npm install on SST folder 63 | id: npm-sst 64 | run: | 65 | cd __test_environments__/with-npm 66 | npm ci 67 | 68 | - name: Test Local Action 69 | id: test-action 70 | uses: ./ 71 | with: 72 | # noinspection UndefinedParamsPresent 73 | sst-path: './__test_environments__/with-npm' 74 | # noinspection UndefinedParamsPresent 75 | lockfile-path: './__test_environments__/with-npm/package-lock.json' 76 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | name: CodeQL 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - main 7 | push: 8 | branches: 9 | - main 10 | schedule: 11 | - cron: '31 7 * * 3' 12 | 13 | permissions: 14 | actions: read 15 | checks: write 16 | contents: read 17 | security-events: write 18 | 19 | jobs: 20 | analyze: 21 | name: Analyze 22 | runs-on: ubuntu-latest 23 | 24 | strategy: 25 | fail-fast: false 26 | matrix: 27 | language: 28 | - TypeScript 29 | 30 | steps: 31 | - name: Checkout 32 | id: checkout 33 | uses: actions/checkout@v4 34 | 35 | - name: Initialize CodeQL 36 | id: initialize 37 | uses: github/codeql-action/init@v3 38 | with: 39 | languages: ${{ matrix.language }} 40 | source-root: src 41 | 42 | - name: Autobuild 43 | id: autobuild 44 | uses: github/codeql-action/autobuild@v3 45 | 46 | - name: Perform CodeQL Analysis 47 | id: analyze 48 | uses: github/codeql-action/analyze@v3 49 | -------------------------------------------------------------------------------- /.github/workflows/linter.yml: -------------------------------------------------------------------------------- 1 | name: Lint Codebase 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - main 7 | push: 8 | branches: 9 | - main 10 | 11 | permissions: 12 | contents: read 13 | packages: read 14 | statuses: write 15 | 16 | jobs: 17 | lint: 18 | name: Lint Codebase 19 | runs-on: ubuntu-latest 20 | 21 | steps: 22 | - name: Checkout 23 | id: checkout 24 | uses: actions/checkout@v4 25 | with: 26 | fetch-depth: 0 27 | 28 | - name: Setup Node.js 29 | id: setup-node 30 | uses: actions/setup-node@v4 31 | with: 32 | node-version-file: .node-version 33 | cache: npm 34 | 35 | - name: Install Dependencies 36 | id: install 37 | run: npm ci 38 | 39 | - name: Load super-linter configuration 40 | # Use grep inverse matching to exclude eventual comments in the .env file 41 | # because the GitHub Actions command to set environment variables doesn't 42 | # support comments. 43 | # Ref: https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions#setting-an-environment-variable 44 | run: grep -v '^#' .github/linters/super-linter.env >> "$GITHUB_ENV" 45 | 46 | - name: Lint Codebase 47 | id: super-linter 48 | uses: super-linter/super-linter/slim@v7 49 | env: 50 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 51 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependency directory 2 | node_modules 3 | 4 | # Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | lerna-debug.log* 12 | 13 | # Diagnostic reports (https://nodejs.org/api/report.html) 14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 15 | 16 | # Runtime data 17 | pids 18 | *.pid 19 | *.seed 20 | *.pid.lock 21 | 22 | # Directory for instrumented libs generated by jscoverage/JSCover 23 | lib-cov 24 | 25 | # Coverage directory used by tools like istanbul 26 | coverage 27 | *.lcov 28 | 29 | # nyc test coverage 30 | .nyc_output 31 | 32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 33 | .grunt 34 | 35 | # Bower dependency directory (https://bower.io/) 36 | bower_components 37 | 38 | # node-waf configuration 39 | .lock-wscript 40 | 41 | # Compiled binary addons (https://nodejs.org/api/addons.html) 42 | build/Release 43 | 44 | # Dependency directories 45 | jspm_packages/ 46 | 47 | # TypeScript v1 declaration files 48 | typings/ 49 | 50 | # TypeScript cache 51 | *.tsbuildinfo 52 | 53 | # Optional npm cache directory 54 | .npm 55 | 56 | # Optional eslint cache 57 | .eslintcache 58 | 59 | # Optional REPL history 60 | .node_repl_history 61 | 62 | # Output of 'npm pack' 63 | *.tgz 64 | 65 | # Yarn Integrity file 66 | .yarn-integrity 67 | 68 | # dotenv environment variables file 69 | .env 70 | .env.test 71 | 72 | # parcel-bundler cache (https://parceljs.org/) 73 | .cache 74 | 75 | # next.js build output 76 | .next 77 | 78 | # nuxt.js build output 79 | .nuxt 80 | 81 | # vuepress build output 82 | .vuepress/dist 83 | 84 | # Serverless directories 85 | .serverless/ 86 | 87 | # FuseBox cache 88 | .fusebox/ 89 | 90 | # DynamoDB Local files 91 | .dynamodb/ 92 | 93 | # OS metadata 94 | .DS_Store 95 | Thumbs.db 96 | 97 | # Ignore built ts files 98 | __tests__/runner/* 99 | 100 | # IDE files 101 | .idea 102 | .vscode 103 | *.code-workspace 104 | -------------------------------------------------------------------------------- /.node-version: -------------------------------------------------------------------------------- 1 | 21.6.2 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | node_modules/ 3 | coverage/ 4 | __test_environments__/ -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 80, 3 | "tabWidth": 2, 4 | "useTabs": false, 5 | "semi": false, 6 | "singleQuote": true, 7 | "quoteProps": "as-needed", 8 | "jsxSingleQuote": false, 9 | "trailingComma": "none", 10 | "bracketSpacing": true, 11 | "bracketSameLine": true, 12 | "arrowParens": "avoid", 13 | "proseWrap": "always", 14 | "htmlWhitespaceSensitivity": "css", 15 | "endOfLine": "lf" 16 | } 17 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Repository CODEOWNERS 2 | 3 | * @brunocleite -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright Bruno Leite 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. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SST v3 GitHub Actions setup 2 | 3 | [![GitHub Super-Linter](https://github.com/brunocleite/setup-sst/actions/workflows/linter.yml/badge.svg)](https://github.com/super-linter/super-linter) 4 | ![CI](https://github.com/brunocleite/setup-sst/actions/workflows/ci.yml/badge.svg) 5 | [![Check dist/](https://github.com/brunocleite/setup-sst/actions/workflows/check-dist.yml/badge.svg)](https://github.com/brunocleite/setup-sst/actions/workflows/check-dist.yml) 6 | [![CodeQL](https://github.com/brunocleite/setup-sst/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/brunocleite/setup-sst/actions/workflows/codeql-analysis.yml) 7 | [![Coverage](./badges/coverage.svg)](./badges/coverage.svg) 8 | 9 | This GitHub Action will prepare your [SST](https://sst.dev) v3 application by 10 | installing the providers. 11 | 12 | It automatically caches the providers if SST version in lockfile (supports npm 13 | and Bun) and `sst.config.ts` files have not changed. 14 | It is assuming that your providers are listed in `sst.config.ts` and not 15 | referenced to another file. 16 | 17 | ## Inputs 18 | 19 | - **Optional**: `sst-path` - the SST configuration path path. `sst.config.ts` 20 | should be here. Defaults to `./` 21 | - **Optional**: `lockfile-path` - the `package-lock.json` or `bun.lockb` file 22 | location. Defaults to `./package-lock.json` 23 | - **Optional**: `platform-only` - Only caches the SST platform files on 24 | '.sst/platform'. Useful for linting runs that will not deploy. Defaults to 25 | `false` 26 | - **Optional**: `debug` - Prints SST installation logs to the console. Defaults 27 | to `false` 28 | 29 | - Sample with defaults: 30 | 31 | ```yaml 32 | - name: Setup SST 33 | id: setup-sst 34 | uses: brunocleite/setup-sst-v3@v1 35 | ``` 36 | 37 | Sample specifying a different SST config and package other than root and 38 | platform-only: 39 | 40 | ```yaml 41 | - name: Setup SST 42 | id: setup-sst 43 | uses: brunocleite/setup-sst-v3@v1 44 | with: 45 | sst-path: './sst' 46 | lockfile-path: './sst/bun.lockb' 47 | platform-only: true 48 | ``` 49 | 50 | ## Cached folders 51 | 52 | - `/.sst/platform` - everytime and platform-only 53 | - `/.config/sst/plugins` - everytime 54 | - `/.config/sst/bin` - everytime 55 | -------------------------------------------------------------------------------- /__test_environments__/with-bun/.gitignore: -------------------------------------------------------------------------------- 1 | .sst -------------------------------------------------------------------------------- /__test_environments__/with-bun/bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brunocleite/setup-sst/027469acd632c5f7cb57083532640d6923fe7098/__test_environments__/with-bun/bun.lockb -------------------------------------------------------------------------------- /__test_environments__/with-bun/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test-sst-app-bun", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "sst": "^3.0.107" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /__test_environments__/with-bun/sst.config.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | // noinspection JSUnusedGlobalSymbols 4 | export default $config({ 5 | app() { 6 | return { 7 | name: 'test-sst-app-bun', 8 | removal: 'remove', 9 | home: 'aws' 10 | } 11 | }, 12 | async run() {} 13 | }) 14 | -------------------------------------------------------------------------------- /__test_environments__/with-bun/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "compilerOptions": { 4 | "noEmit": true 5 | }, 6 | "include": ["sst.config.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /__test_environments__/with-npm/.gitignore: -------------------------------------------------------------------------------- 1 | .sst -------------------------------------------------------------------------------- /__test_environments__/with-npm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test-sst-app", 3 | "version": "0.0.1", 4 | "dependencies": { 5 | "sst": "^3.0.107" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /__test_environments__/with-npm/sst.config.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | // noinspection JSUnusedGlobalSymbols 4 | export default $config({ 5 | app() { 6 | return { 7 | name: 'testapp', 8 | removal: 'remove', 9 | home: 'aws' 10 | } 11 | }, 12 | async run() {} 13 | }) 14 | -------------------------------------------------------------------------------- /__test_environments__/with-npm/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "compilerOptions": { 4 | "noEmit": true 5 | }, 6 | "include": ["sst.config.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /__tests__/main.test.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Unit tests for the action's entrypoint, src/index.ts 3 | */ 4 | 5 | import * as mainImpl from '../src/mainImpl' 6 | 7 | // Mock the action's entrypoint 8 | const runMock = jest.spyOn(mainImpl, 'mainRun').mockImplementation() 9 | 10 | describe('main', () => { 11 | it('calls run when imported', async () => { 12 | // eslint-disable-next-line @typescript-eslint/no-require-imports 13 | require('../src/main') 14 | 15 | expect(runMock).toHaveBeenCalled() 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/mainImpl.test.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Unit tests for the action's main functionality, src/main.ts 3 | * 4 | * These should be run as if the action was called from a workflow. 5 | * Specifically, the inputs listed in `action.yml` should be set as environment 6 | * variables following the pattern `INPUT_`. 7 | */ 8 | 9 | import * as core from '@actions/core' 10 | import * as cache from '@actions/cache' 11 | import * as mainImpl from '../src/mainImpl' 12 | import { Input } from '../src/contants' 13 | 14 | // Mock the action's main function 15 | const runMock = jest.spyOn(mainImpl, 'mainImpl') 16 | 17 | // Mock the GitHub Actions core library 18 | let errorMock: jest.SpiedFunction 19 | let getInputMock: jest.SpiedFunction 20 | let restoreCache: jest.SpiedFunction 21 | let saveCache: jest.SpiedFunction 22 | 23 | describe('main action', () => { 24 | beforeEach(() => { 25 | jest.clearAllMocks() 26 | 27 | errorMock = jest.spyOn(core, 'error').mockImplementation() 28 | getInputMock = jest.spyOn(core, 'getInput').mockImplementation() 29 | restoreCache = jest.spyOn(cache, 'restoreCache').mockImplementation() 30 | saveCache = jest.spyOn(cache, 'saveCache').mockImplementation() 31 | }) 32 | 33 | interface InputMock { 34 | sstPath?: string 35 | lockfilePath?: string 36 | platformOnly?: boolean 37 | } 38 | 39 | const mockInputs = (inputMock: InputMock): void => { 40 | getInputMock.mockImplementation(name => { 41 | switch (name) { 42 | case Input.SstPath: 43 | return inputMock.sstPath || '' 44 | case Input.LockfilePath: 45 | return inputMock.lockfilePath || '' 46 | case Input.PlatformOnly: 47 | return String(inputMock.platformOnly) || '' 48 | default: 49 | return '' 50 | } 51 | }) 52 | } 53 | 54 | it('with existing SST folder and cache hit should not install SST', async () => { 55 | mockInputs({ 56 | sstPath: './__test_environments__/with-npm', 57 | lockfilePath: './__test_environments__/with-npm/package-lock.json', 58 | platformOnly: false 59 | }) 60 | 61 | restoreCache.mockImplementation(async () => { 62 | return 'some-cache-key' 63 | }) 64 | 65 | await mainImpl.mainImpl() 66 | expect(runMock).toHaveReturned() 67 | 68 | expect(errorMock).not.toHaveBeenCalled() 69 | expect(saveCache).not.toHaveBeenCalled() 70 | expect(restoreCache).toHaveBeenCalledTimes(1) 71 | 72 | // Verify that all the core library functions were called correctly 73 | // expect(debugMock).toHaveBeenNthCalledWith(1, 'Waiting 500 milliseconds ...') 74 | // expect(debugMock).toHaveBeenNthCalledWith( 75 | // 2, 76 | // expect.stringMatching(timeRegex) 77 | // ) 78 | // expect(debugMock).toHaveBeenNthCalledWith( 79 | // 3, 80 | // expect.stringMatching(timeRegex) 81 | // ) 82 | // expect(setOutputMock).toHaveBeenNthCalledWith( 83 | // 1, 84 | // 'time', 85 | // expect.stringMatching(timeRegex) 86 | // ) 87 | }) 88 | 89 | it('with existing SST folder and cache miss should install SST', async () => { 90 | mockInputs({ 91 | sstPath: './__test_environments__/with-npm', 92 | lockfilePath: './__test_environments__/with-npm/package-lock.json', 93 | platformOnly: false 94 | }) 95 | restoreCache.mockImplementation(async () => { 96 | return undefined 97 | }) 98 | 99 | await mainImpl.mainImpl() 100 | expect(runMock).toHaveReturned() 101 | 102 | expect(errorMock).not.toHaveBeenCalled() 103 | expect(saveCache).not.toHaveBeenCalled() 104 | expect(restoreCache).toHaveBeenCalled() 105 | 106 | const firstCallArgs = restoreCache.mock.calls[0] 107 | expect(firstCallArgs[1]).toMatch(/\b(?=.*-sst-)(?!.*-sst-platform-).*$/) 108 | }, 120000) 109 | 110 | it('with lockfile containing that has no SST dependency should fail as SST module is not on package-lock.json file', async () => { 111 | mockInputs({ 112 | sstPath: './__test_environments__/with-npm', 113 | lockfilePath: '', 114 | platformOnly: false 115 | }) 116 | await expect(async () => mainImpl.mainImpl()).rejects.toThrow( 117 | 'SST module is not on package-lock.json, install it first' 118 | ) 119 | expect(runMock).toHaveReturned() 120 | expect(errorMock).not.toHaveBeenCalled() 121 | }) 122 | 123 | it('with invalid lockfile should fail with node_modules not found', async () => { 124 | mockInputs({ lockfilePath: '/invalid/invalid_folder', platformOnly: false }) 125 | await expect(async () => mainImpl.mainImpl()).rejects.toThrow( 126 | 'node_modules folder not found, please run npm install first' 127 | ) 128 | expect(runMock).toHaveReturned() 129 | expect(errorMock).not.toHaveBeenCalled() 130 | }) 131 | 132 | it('with SST folder and bun lockfile and cache hit should not install SST', async () => { 133 | mockInputs({ 134 | sstPath: './__test_environments__/with-bun', 135 | lockfilePath: './__test_environments__/with-bun/bun.lockb', 136 | platformOnly: false 137 | }) 138 | 139 | restoreCache.mockImplementation(async () => { 140 | return 'some-cache-key' 141 | }) 142 | 143 | await mainImpl.mainImpl() 144 | expect(runMock).toHaveReturned() 145 | 146 | expect(errorMock).not.toHaveBeenCalled() 147 | expect(saveCache).not.toHaveBeenCalled() 148 | expect(restoreCache).toHaveBeenCalledTimes(1) 149 | }) 150 | }) 151 | -------------------------------------------------------------------------------- /__tests__/post.test.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Unit tests for the action's entrypoint, src/index.ts 3 | */ 4 | 5 | import * as postImpl from '../src/postImpl' 6 | 7 | // Mock the action's entrypoint 8 | const runMock = jest.spyOn(postImpl, 'postRun').mockImplementation() 9 | 10 | describe('post', () => { 11 | it('calls run when imported', async () => { 12 | // eslint-disable-next-line @typescript-eslint/no-require-imports 13 | require('../src/post') 14 | 15 | expect(runMock).toHaveBeenCalled() 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/postImpl.test.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Unit tests for the action's main functionality, src/main.ts 3 | * 4 | * These should be run as if the action was called from a workflow. 5 | * Specifically, the inputs listed in `action.yml` should be set as environment 6 | * variables following the pattern `INPUT_`. 7 | */ 8 | 9 | import * as core from '@actions/core' 10 | import * as cache from '@actions/cache' 11 | import * as postImpl from '../src/postImpl' 12 | import { State } from '../src/contants' 13 | 14 | // Mock the action's main function 15 | const runMock = jest.spyOn(postImpl, 'postImpl') 16 | 17 | // Mock the GitHub Actions core library 18 | let errorMock: jest.SpiedFunction 19 | let restoreCache: jest.SpiedFunction 20 | let saveCache: jest.SpiedFunction 21 | let getState: jest.SpiedFunction 22 | 23 | describe('post action', () => { 24 | beforeEach(() => { 25 | jest.clearAllMocks() 26 | 27 | errorMock = jest.spyOn(core, 'error').mockImplementation() 28 | restoreCache = jest.spyOn(cache, 'restoreCache').mockImplementation() 29 | saveCache = jest.spyOn(cache, 'saveCache').mockImplementation() 30 | getState = jest.spyOn(core, 'getState').mockImplementation() 31 | }) 32 | 33 | it('should save cache without matched key', async () => { 34 | getState.mockImplementation(name => { 35 | switch (name) { 36 | case State.CacheMatchedKey: 37 | return '' 38 | case State.CachePaths: 39 | return '["folder1", "folder2"]' 40 | default: 41 | return '' 42 | } 43 | }) 44 | await postImpl.postImpl() 45 | expect(runMock).toHaveReturned() 46 | 47 | expect(errorMock).not.toHaveBeenCalled() 48 | expect(saveCache).toHaveBeenCalled() 49 | expect(restoreCache).not.toHaveBeenCalled() 50 | }) 51 | 52 | it('should not save cache with matched key', async () => { 53 | getState.mockImplementation(name => { 54 | switch (name) { 55 | case State.CacheMatchedKey: 56 | return 'some-matched-key' 57 | default: 58 | return '' 59 | } 60 | }) 61 | await postImpl.postImpl() 62 | expect(runMock).toHaveReturned() 63 | 64 | expect(errorMock).not.toHaveBeenCalled() 65 | expect(saveCache).not.toHaveBeenCalled() 66 | expect(restoreCache).not.toHaveBeenCalled() 67 | }) 68 | 69 | it('should skip save cache with empty paths', async () => { 70 | getState.mockImplementation(name => { 71 | switch (name) { 72 | case State.CacheMatchedKey: 73 | return '' 74 | case State.CachePaths: 75 | return '' 76 | default: 77 | return '' 78 | } 79 | }) 80 | await postImpl.postImpl() 81 | expect(runMock).toHaveReturned() 82 | 83 | expect(errorMock).not.toHaveBeenCalled() 84 | expect(saveCache).not.toHaveBeenCalled() 85 | expect(restoreCache).not.toHaveBeenCalled() 86 | }) 87 | }) 88 | -------------------------------------------------------------------------------- /action.yml: -------------------------------------------------------------------------------- 1 | name: 'setup-sst-v3' 2 | description: 'Setup SST with caching enabled' 3 | author: 'Bruno Leite' 4 | 5 | # Add your action's branding here. This will appear on the GitHub Marketplace. 6 | branding: 7 | icon: 'zap' 8 | color: 'blue' 9 | 10 | # Define your inputs here. 11 | inputs: 12 | sst-path: 13 | description: 'The SST folder path. `sst.config.ts` should be here.' 14 | default: './' 15 | lockfile-path: 16 | description: 17 | "the 'lockfile' file location. Defaults to './package-lock.json'" 18 | default: './package-lock.json' 19 | platform-only: 20 | description: 21 | "Only caches the SST platform files on '.sst/platform'. Useful for a 22 | linting-only run that will not deploy." 23 | default: 'false' 24 | debug: 25 | description: 'Prints SST installation logs to the console' 26 | default: 'false' 27 | 28 | runs: 29 | using: node20 30 | main: dist/main/index.js 31 | post: dist/post/index.js 32 | -------------------------------------------------------------------------------- /badges/coverage.svg: -------------------------------------------------------------------------------- 1 | Coverage: 74.16%Coverage74.16% -------------------------------------------------------------------------------- /dist/main/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 | @azure/abort-controller 87 | MIT 88 | The MIT License (MIT) 89 | 90 | Copyright (c) 2020 Microsoft 91 | 92 | Permission is hereby granted, free of charge, to any person obtaining a copy 93 | of this software and associated documentation files (the "Software"), to deal 94 | in the Software without restriction, including without limitation the rights 95 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 96 | copies of the Software, and to permit persons to whom the Software is 97 | furnished to do so, subject to the following conditions: 98 | 99 | The above copyright notice and this permission notice shall be included in all 100 | copies or substantial portions of the Software. 101 | 102 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 103 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 104 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 105 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 106 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 107 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 108 | SOFTWARE. 109 | 110 | 111 | @azure/core-auth 112 | MIT 113 | The MIT License (MIT) 114 | 115 | Copyright (c) 2020 Microsoft 116 | 117 | Permission is hereby granted, free of charge, to any person obtaining a copy 118 | of this software and associated documentation files (the "Software"), to deal 119 | in the Software without restriction, including without limitation the rights 120 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 121 | copies of the Software, and to permit persons to whom the Software is 122 | furnished to do so, subject to the following conditions: 123 | 124 | The above copyright notice and this permission notice shall be included in all 125 | copies or substantial portions of the Software. 126 | 127 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 128 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 129 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 130 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 131 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 132 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 133 | SOFTWARE. 134 | 135 | 136 | @azure/core-client 137 | MIT 138 | The MIT License (MIT) 139 | 140 | Copyright (c) 2020 Microsoft 141 | 142 | Permission is hereby granted, free of charge, to any person obtaining a copy 143 | of this software and associated documentation files (the "Software"), to deal 144 | in the Software without restriction, including without limitation the rights 145 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 146 | copies of the Software, and to permit persons to whom the Software is 147 | furnished to do so, subject to the following conditions: 148 | 149 | The above copyright notice and this permission notice shall be included in all 150 | copies or substantial portions of the Software. 151 | 152 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 153 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 154 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 155 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 156 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 157 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 158 | SOFTWARE. 159 | 160 | 161 | @azure/core-http-compat 162 | MIT 163 | The MIT License (MIT) 164 | 165 | Copyright (c) 2020 Microsoft 166 | 167 | Permission is hereby granted, free of charge, to any person obtaining a copy 168 | of this software and associated documentation files (the "Software"), to deal 169 | in the Software without restriction, including without limitation the rights 170 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 171 | copies of the Software, and to permit persons to whom the Software is 172 | furnished to do so, subject to the following conditions: 173 | 174 | The above copyright notice and this permission notice shall be included in all 175 | copies or substantial portions of the Software. 176 | 177 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 178 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 179 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 180 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 181 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 182 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 183 | SOFTWARE. 184 | 185 | 186 | @azure/core-lro 187 | MIT 188 | The MIT License (MIT) 189 | 190 | Copyright (c) 2020 Microsoft 191 | 192 | Permission is hereby granted, free of charge, to any person obtaining a copy 193 | of this software and associated documentation files (the "Software"), to deal 194 | in the Software without restriction, including without limitation the rights 195 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 196 | copies of the Software, and to permit persons to whom the Software is 197 | furnished to do so, subject to the following conditions: 198 | 199 | The above copyright notice and this permission notice shall be included in all 200 | copies or substantial portions of the Software. 201 | 202 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 203 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 204 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 205 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 206 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 207 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 208 | SOFTWARE. 209 | 210 | 211 | @azure/core-rest-pipeline 212 | MIT 213 | The MIT License (MIT) 214 | 215 | Copyright (c) 2020 Microsoft 216 | 217 | Permission is hereby granted, free of charge, to any person obtaining a copy 218 | of this software and associated documentation files (the "Software"), to deal 219 | in the Software without restriction, including without limitation the rights 220 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 221 | copies of the Software, and to permit persons to whom the Software is 222 | furnished to do so, subject to the following conditions: 223 | 224 | The above copyright notice and this permission notice shall be included in all 225 | copies or substantial portions of the Software. 226 | 227 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 228 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 229 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 230 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 231 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 232 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 233 | SOFTWARE. 234 | 235 | 236 | @azure/core-tracing 237 | MIT 238 | The MIT License (MIT) 239 | 240 | Copyright (c) 2020 Microsoft 241 | 242 | Permission is hereby granted, free of charge, to any person obtaining a copy 243 | of this software and associated documentation files (the "Software"), to deal 244 | in the Software without restriction, including without limitation the rights 245 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 246 | copies of the Software, and to permit persons to whom the Software is 247 | furnished to do so, subject to the following conditions: 248 | 249 | The above copyright notice and this permission notice shall be included in all 250 | copies or substantial portions of the Software. 251 | 252 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 253 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 254 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 255 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 256 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 257 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 258 | SOFTWARE. 259 | 260 | 261 | @azure/core-util 262 | MIT 263 | The MIT License (MIT) 264 | 265 | Copyright (c) 2020 Microsoft 266 | 267 | Permission is hereby granted, free of charge, to any person obtaining a copy 268 | of this software and associated documentation files (the "Software"), to deal 269 | in the Software without restriction, including without limitation the rights 270 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 271 | copies of the Software, and to permit persons to whom the Software is 272 | furnished to do so, subject to the following conditions: 273 | 274 | The above copyright notice and this permission notice shall be included in all 275 | copies or substantial portions of the Software. 276 | 277 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 278 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 279 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 280 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 281 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 282 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 283 | SOFTWARE. 284 | 285 | 286 | @azure/core-xml 287 | MIT 288 | The MIT License (MIT) 289 | 290 | Copyright (c) 2020 Microsoft 291 | 292 | Permission is hereby granted, free of charge, to any person obtaining a copy 293 | of this software and associated documentation files (the "Software"), to deal 294 | in the Software without restriction, including without limitation the rights 295 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 296 | copies of the Software, and to permit persons to whom the Software is 297 | furnished to do so, subject to the following conditions: 298 | 299 | The above copyright notice and this permission notice shall be included in all 300 | copies or substantial portions of the Software. 301 | 302 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 303 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 304 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 305 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 306 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 307 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 308 | SOFTWARE. 309 | 310 | 311 | @azure/logger 312 | MIT 313 | The MIT License (MIT) 314 | 315 | Copyright (c) 2020 Microsoft 316 | 317 | Permission is hereby granted, free of charge, to any person obtaining a copy 318 | of this software and associated documentation files (the "Software"), to deal 319 | in the Software without restriction, including without limitation the rights 320 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 321 | copies of the Software, and to permit persons to whom the Software is 322 | furnished to do so, subject to the following conditions: 323 | 324 | The above copyright notice and this permission notice shall be included in all 325 | copies or substantial portions of the Software. 326 | 327 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 328 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 329 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 330 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 331 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 332 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 333 | SOFTWARE. 334 | 335 | 336 | @azure/storage-blob 337 | MIT 338 | The MIT License (MIT) 339 | 340 | Copyright (c) 2020 Microsoft 341 | 342 | Permission is hereby granted, free of charge, to any person obtaining a copy 343 | of this software and associated documentation files (the "Software"), to deal 344 | in the Software without restriction, including without limitation the rights 345 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 346 | copies of the Software, and to permit persons to whom the Software is 347 | furnished to do so, subject to the following conditions: 348 | 349 | The above copyright notice and this permission notice shall be included in all 350 | copies or substantial portions of the Software. 351 | 352 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 353 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 354 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 355 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 356 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 357 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 358 | SOFTWARE. 359 | 360 | 361 | @fastify/busboy 362 | MIT 363 | Copyright Brian White. All rights reserved. 364 | 365 | Permission is hereby granted, free of charge, to any person obtaining a copy 366 | of this software and associated documentation files (the "Software"), to 367 | deal in the Software without restriction, including without limitation the 368 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 369 | sell copies of the Software, and to permit persons to whom the Software is 370 | furnished to do so, subject to the following conditions: 371 | 372 | The above copyright notice and this permission notice shall be included in 373 | all copies or substantial portions of the Software. 374 | 375 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 376 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 377 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 378 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 379 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 380 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 381 | IN THE SOFTWARE. 382 | 383 | agent-base 384 | MIT 385 | (The MIT License) 386 | 387 | Copyright (c) 2013 Nathan Rajlich 388 | 389 | Permission is hereby granted, free of charge, to any person obtaining 390 | a copy of this software and associated documentation files (the 391 | 'Software'), to deal in the Software without restriction, including 392 | without limitation the rights to use, copy, modify, merge, publish, 393 | distribute, sublicense, and/or sell copies of the Software, and to 394 | permit persons to whom the Software is furnished to do so, subject to 395 | the following conditions: 396 | 397 | The above copyright notice and this permission notice shall be 398 | included in all copies or substantial portions of the Software. 399 | 400 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 401 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 402 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 403 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 404 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 405 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 406 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 407 | 408 | balanced-match 409 | MIT 410 | (MIT) 411 | 412 | Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> 413 | 414 | Permission is hereby granted, free of charge, to any person obtaining a copy of 415 | this software and associated documentation files (the "Software"), to deal in 416 | the Software without restriction, including without limitation the rights to 417 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 418 | of the Software, and to permit persons to whom the Software is furnished to do 419 | so, subject to the following conditions: 420 | 421 | The above copyright notice and this permission notice shall be included in all 422 | copies or substantial portions of the Software. 423 | 424 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 425 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 426 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 427 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 428 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 429 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 430 | SOFTWARE. 431 | 432 | 433 | brace-expansion 434 | MIT 435 | MIT License 436 | 437 | Copyright (c) 2013 Julian Gruber 438 | 439 | Permission is hereby granted, free of charge, to any person obtaining a copy 440 | of this software and associated documentation files (the "Software"), to deal 441 | in the Software without restriction, including without limitation the rights 442 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 443 | copies of the Software, and to permit persons to whom the Software is 444 | furnished to do so, subject to the following conditions: 445 | 446 | The above copyright notice and this permission notice shall be included in all 447 | copies or substantial portions of the Software. 448 | 449 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 450 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 451 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 452 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 453 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 454 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 455 | SOFTWARE. 456 | 457 | 458 | concat-map 459 | MIT 460 | This software is released under the MIT license: 461 | 462 | Permission is hereby granted, free of charge, to any person obtaining a copy of 463 | this software and associated documentation files (the "Software"), to deal in 464 | the Software without restriction, including without limitation the rights to 465 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 466 | the Software, and to permit persons to whom the Software is furnished to do so, 467 | subject to the following conditions: 468 | 469 | The above copyright notice and this permission notice shall be included in all 470 | copies or substantial portions of the Software. 471 | 472 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 473 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 474 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 475 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 476 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 477 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 478 | 479 | 480 | debug 481 | MIT 482 | (The MIT License) 483 | 484 | Copyright (c) 2014-2017 TJ Holowaychuk 485 | Copyright (c) 2018-2021 Josh Junon 486 | 487 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software 488 | and associated documentation files (the 'Software'), to deal in the Software without restriction, 489 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 490 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 491 | subject to the following conditions: 492 | 493 | The above copyright notice and this permission notice shall be included in all copies or substantial 494 | portions of the Software. 495 | 496 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 497 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 498 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 499 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 500 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 501 | 502 | 503 | 504 | fast-xml-parser 505 | MIT 506 | MIT License 507 | 508 | Copyright (c) 2017 Amit Kumar Gupta 509 | 510 | Permission is hereby granted, free of charge, to any person obtaining a copy 511 | of this software and associated documentation files (the "Software"), to deal 512 | in the Software without restriction, including without limitation the rights 513 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 514 | copies of the Software, and to permit persons to whom the Software is 515 | furnished to do so, subject to the following conditions: 516 | 517 | The above copyright notice and this permission notice shall be included in all 518 | copies or substantial portions of the Software. 519 | 520 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 521 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 522 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 523 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 524 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 525 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 526 | SOFTWARE. 527 | 528 | 529 | has-flag 530 | MIT 531 | MIT License 532 | 533 | Copyright (c) Sindre Sorhus (sindresorhus.com) 534 | 535 | 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: 536 | 537 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 538 | 539 | 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. 540 | 541 | 542 | http-proxy-agent 543 | MIT 544 | (The MIT License) 545 | 546 | Copyright (c) 2013 Nathan Rajlich 547 | 548 | Permission is hereby granted, free of charge, to any person obtaining 549 | a copy of this software and associated documentation files (the 550 | 'Software'), to deal in the Software without restriction, including 551 | without limitation the rights to use, copy, modify, merge, publish, 552 | distribute, sublicense, and/or sell copies of the Software, and to 553 | permit persons to whom the Software is furnished to do so, subject to 554 | the following conditions: 555 | 556 | The above copyright notice and this permission notice shall be 557 | included in all copies or substantial portions of the Software. 558 | 559 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 560 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 561 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 562 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 563 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 564 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 565 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 566 | 567 | 568 | https-proxy-agent 569 | MIT 570 | (The MIT License) 571 | 572 | Copyright (c) 2013 Nathan Rajlich 573 | 574 | Permission is hereby granted, free of charge, to any person obtaining 575 | a copy of this software and associated documentation files (the 576 | 'Software'), to deal in the Software without restriction, including 577 | without limitation the rights to use, copy, modify, merge, publish, 578 | distribute, sublicense, and/or sell copies of the Software, and to 579 | permit persons to whom the Software is furnished to do so, subject to 580 | the following conditions: 581 | 582 | The above copyright notice and this permission notice shall be 583 | included in all copies or substantial portions of the Software. 584 | 585 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 586 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 587 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 588 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 589 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 590 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 591 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 592 | 593 | minimatch 594 | ISC 595 | The ISC License 596 | 597 | Copyright (c) Isaac Z. Schlueter and Contributors 598 | 599 | Permission to use, copy, modify, and/or distribute this software for any 600 | purpose with or without fee is hereby granted, provided that the above 601 | copyright notice and this permission notice appear in all copies. 602 | 603 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 604 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 605 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 606 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 607 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 608 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 609 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 610 | 611 | 612 | ms 613 | MIT 614 | The MIT License (MIT) 615 | 616 | Copyright (c) 2016 Zeit, Inc. 617 | 618 | Permission is hereby granted, free of charge, to any person obtaining a copy 619 | of this software and associated documentation files (the "Software"), to deal 620 | in the Software without restriction, including without limitation the rights 621 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 622 | copies of the Software, and to permit persons to whom the Software is 623 | furnished to do so, subject to the following conditions: 624 | 625 | The above copyright notice and this permission notice shall be included in all 626 | copies or substantial portions of the Software. 627 | 628 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 629 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 630 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 631 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 632 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 633 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 634 | SOFTWARE. 635 | 636 | 637 | semver 638 | ISC 639 | The ISC License 640 | 641 | Copyright (c) Isaac Z. Schlueter and Contributors 642 | 643 | Permission to use, copy, modify, and/or distribute this software for any 644 | purpose with or without fee is hereby granted, provided that the above 645 | copyright notice and this permission notice appear in all copies. 646 | 647 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 648 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 649 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 650 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 651 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 652 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 653 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 654 | 655 | 656 | strnum 657 | MIT 658 | MIT License 659 | 660 | Copyright (c) 2021 Natural Intelligence 661 | 662 | Permission is hereby granted, free of charge, to any person obtaining a copy 663 | of this software and associated documentation files (the "Software"), to deal 664 | in the Software without restriction, including without limitation the rights 665 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 666 | copies of the Software, and to permit persons to whom the Software is 667 | furnished to do so, subject to the following conditions: 668 | 669 | The above copyright notice and this permission notice shall be included in all 670 | copies or substantial portions of the Software. 671 | 672 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 673 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 674 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 675 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 676 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 677 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 678 | SOFTWARE. 679 | 680 | 681 | supports-color 682 | MIT 683 | MIT License 684 | 685 | Copyright (c) Sindre Sorhus (sindresorhus.com) 686 | 687 | 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: 688 | 689 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 690 | 691 | 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. 692 | 693 | 694 | tslib 695 | 0BSD 696 | Copyright (c) Microsoft Corporation. 697 | 698 | Permission to use, copy, modify, and/or distribute this software for any 699 | purpose with or without fee is hereby granted. 700 | 701 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 702 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 703 | AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 704 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 705 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 706 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 707 | PERFORMANCE OF THIS SOFTWARE. 708 | 709 | tunnel 710 | MIT 711 | The MIT License (MIT) 712 | 713 | Copyright (c) 2012 Koichi Kobayashi 714 | 715 | Permission is hereby granted, free of charge, to any person obtaining a copy 716 | of this software and associated documentation files (the "Software"), to deal 717 | in the Software without restriction, including without limitation the rights 718 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 719 | copies of the Software, and to permit persons to whom the Software is 720 | furnished to do so, subject to the following conditions: 721 | 722 | The above copyright notice and this permission notice shall be included in 723 | all copies or substantial portions of the Software. 724 | 725 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 726 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 727 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 728 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 729 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 730 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 731 | THE SOFTWARE. 732 | 733 | 734 | undici 735 | MIT 736 | MIT License 737 | 738 | Copyright (c) Matteo Collina and Undici contributors 739 | 740 | Permission is hereby granted, free of charge, to any person obtaining a copy 741 | of this software and associated documentation files (the "Software"), to deal 742 | in the Software without restriction, including without limitation the rights 743 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 744 | copies of the Software, and to permit persons to whom the Software is 745 | furnished to do so, subject to the following conditions: 746 | 747 | The above copyright notice and this permission notice shall be included in all 748 | copies or substantial portions of the Software. 749 | 750 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 751 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 752 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 753 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 754 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 755 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 756 | SOFTWARE. 757 | 758 | 759 | uuid 760 | MIT 761 | The MIT License (MIT) 762 | 763 | Copyright (c) 2010-2020 Robert Kieffer and other contributors 764 | 765 | 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: 766 | 767 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 768 | 769 | 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. 770 | -------------------------------------------------------------------------------- /dist/main/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})(); -------------------------------------------------------------------------------- /dist/post/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 | @azure/abort-controller 87 | MIT 88 | The MIT License (MIT) 89 | 90 | Copyright (c) 2020 Microsoft 91 | 92 | Permission is hereby granted, free of charge, to any person obtaining a copy 93 | of this software and associated documentation files (the "Software"), to deal 94 | in the Software without restriction, including without limitation the rights 95 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 96 | copies of the Software, and to permit persons to whom the Software is 97 | furnished to do so, subject to the following conditions: 98 | 99 | The above copyright notice and this permission notice shall be included in all 100 | copies or substantial portions of the Software. 101 | 102 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 103 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 104 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 105 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 106 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 107 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 108 | SOFTWARE. 109 | 110 | 111 | @azure/core-auth 112 | MIT 113 | The MIT License (MIT) 114 | 115 | Copyright (c) 2020 Microsoft 116 | 117 | Permission is hereby granted, free of charge, to any person obtaining a copy 118 | of this software and associated documentation files (the "Software"), to deal 119 | in the Software without restriction, including without limitation the rights 120 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 121 | copies of the Software, and to permit persons to whom the Software is 122 | furnished to do so, subject to the following conditions: 123 | 124 | The above copyright notice and this permission notice shall be included in all 125 | copies or substantial portions of the Software. 126 | 127 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 128 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 129 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 130 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 131 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 132 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 133 | SOFTWARE. 134 | 135 | 136 | @azure/core-client 137 | MIT 138 | The MIT License (MIT) 139 | 140 | Copyright (c) 2020 Microsoft 141 | 142 | Permission is hereby granted, free of charge, to any person obtaining a copy 143 | of this software and associated documentation files (the "Software"), to deal 144 | in the Software without restriction, including without limitation the rights 145 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 146 | copies of the Software, and to permit persons to whom the Software is 147 | furnished to do so, subject to the following conditions: 148 | 149 | The above copyright notice and this permission notice shall be included in all 150 | copies or substantial portions of the Software. 151 | 152 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 153 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 154 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 155 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 156 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 157 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 158 | SOFTWARE. 159 | 160 | 161 | @azure/core-http-compat 162 | MIT 163 | The MIT License (MIT) 164 | 165 | Copyright (c) 2020 Microsoft 166 | 167 | Permission is hereby granted, free of charge, to any person obtaining a copy 168 | of this software and associated documentation files (the "Software"), to deal 169 | in the Software without restriction, including without limitation the rights 170 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 171 | copies of the Software, and to permit persons to whom the Software is 172 | furnished to do so, subject to the following conditions: 173 | 174 | The above copyright notice and this permission notice shall be included in all 175 | copies or substantial portions of the Software. 176 | 177 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 178 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 179 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 180 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 181 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 182 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 183 | SOFTWARE. 184 | 185 | 186 | @azure/core-lro 187 | MIT 188 | The MIT License (MIT) 189 | 190 | Copyright (c) 2020 Microsoft 191 | 192 | Permission is hereby granted, free of charge, to any person obtaining a copy 193 | of this software and associated documentation files (the "Software"), to deal 194 | in the Software without restriction, including without limitation the rights 195 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 196 | copies of the Software, and to permit persons to whom the Software is 197 | furnished to do so, subject to the following conditions: 198 | 199 | The above copyright notice and this permission notice shall be included in all 200 | copies or substantial portions of the Software. 201 | 202 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 203 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 204 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 205 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 206 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 207 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 208 | SOFTWARE. 209 | 210 | 211 | @azure/core-rest-pipeline 212 | MIT 213 | The MIT License (MIT) 214 | 215 | Copyright (c) 2020 Microsoft 216 | 217 | Permission is hereby granted, free of charge, to any person obtaining a copy 218 | of this software and associated documentation files (the "Software"), to deal 219 | in the Software without restriction, including without limitation the rights 220 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 221 | copies of the Software, and to permit persons to whom the Software is 222 | furnished to do so, subject to the following conditions: 223 | 224 | The above copyright notice and this permission notice shall be included in all 225 | copies or substantial portions of the Software. 226 | 227 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 228 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 229 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 230 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 231 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 232 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 233 | SOFTWARE. 234 | 235 | 236 | @azure/core-tracing 237 | MIT 238 | The MIT License (MIT) 239 | 240 | Copyright (c) 2020 Microsoft 241 | 242 | Permission is hereby granted, free of charge, to any person obtaining a copy 243 | of this software and associated documentation files (the "Software"), to deal 244 | in the Software without restriction, including without limitation the rights 245 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 246 | copies of the Software, and to permit persons to whom the Software is 247 | furnished to do so, subject to the following conditions: 248 | 249 | The above copyright notice and this permission notice shall be included in all 250 | copies or substantial portions of the Software. 251 | 252 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 253 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 254 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 255 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 256 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 257 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 258 | SOFTWARE. 259 | 260 | 261 | @azure/core-util 262 | MIT 263 | The MIT License (MIT) 264 | 265 | Copyright (c) 2020 Microsoft 266 | 267 | Permission is hereby granted, free of charge, to any person obtaining a copy 268 | of this software and associated documentation files (the "Software"), to deal 269 | in the Software without restriction, including without limitation the rights 270 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 271 | copies of the Software, and to permit persons to whom the Software is 272 | furnished to do so, subject to the following conditions: 273 | 274 | The above copyright notice and this permission notice shall be included in all 275 | copies or substantial portions of the Software. 276 | 277 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 278 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 279 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 280 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 281 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 282 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 283 | SOFTWARE. 284 | 285 | 286 | @azure/core-xml 287 | MIT 288 | The MIT License (MIT) 289 | 290 | Copyright (c) 2020 Microsoft 291 | 292 | Permission is hereby granted, free of charge, to any person obtaining a copy 293 | of this software and associated documentation files (the "Software"), to deal 294 | in the Software without restriction, including without limitation the rights 295 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 296 | copies of the Software, and to permit persons to whom the Software is 297 | furnished to do so, subject to the following conditions: 298 | 299 | The above copyright notice and this permission notice shall be included in all 300 | copies or substantial portions of the Software. 301 | 302 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 303 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 304 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 305 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 306 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 307 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 308 | SOFTWARE. 309 | 310 | 311 | @azure/logger 312 | MIT 313 | The MIT License (MIT) 314 | 315 | Copyright (c) 2020 Microsoft 316 | 317 | Permission is hereby granted, free of charge, to any person obtaining a copy 318 | of this software and associated documentation files (the "Software"), to deal 319 | in the Software without restriction, including without limitation the rights 320 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 321 | copies of the Software, and to permit persons to whom the Software is 322 | furnished to do so, subject to the following conditions: 323 | 324 | The above copyright notice and this permission notice shall be included in all 325 | copies or substantial portions of the Software. 326 | 327 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 328 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 329 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 330 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 331 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 332 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 333 | SOFTWARE. 334 | 335 | 336 | @azure/storage-blob 337 | MIT 338 | The MIT License (MIT) 339 | 340 | Copyright (c) 2020 Microsoft 341 | 342 | Permission is hereby granted, free of charge, to any person obtaining a copy 343 | of this software and associated documentation files (the "Software"), to deal 344 | in the Software without restriction, including without limitation the rights 345 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 346 | copies of the Software, and to permit persons to whom the Software is 347 | furnished to do so, subject to the following conditions: 348 | 349 | The above copyright notice and this permission notice shall be included in all 350 | copies or substantial portions of the Software. 351 | 352 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 353 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 354 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 355 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 356 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 357 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 358 | SOFTWARE. 359 | 360 | 361 | @fastify/busboy 362 | MIT 363 | Copyright Brian White. All rights reserved. 364 | 365 | Permission is hereby granted, free of charge, to any person obtaining a copy 366 | of this software and associated documentation files (the "Software"), to 367 | deal in the Software without restriction, including without limitation the 368 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 369 | sell copies of the Software, and to permit persons to whom the Software is 370 | furnished to do so, subject to the following conditions: 371 | 372 | The above copyright notice and this permission notice shall be included in 373 | all copies or substantial portions of the Software. 374 | 375 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 376 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 377 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 378 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 379 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 380 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 381 | IN THE SOFTWARE. 382 | 383 | agent-base 384 | MIT 385 | (The MIT License) 386 | 387 | Copyright (c) 2013 Nathan Rajlich 388 | 389 | Permission is hereby granted, free of charge, to any person obtaining 390 | a copy of this software and associated documentation files (the 391 | 'Software'), to deal in the Software without restriction, including 392 | without limitation the rights to use, copy, modify, merge, publish, 393 | distribute, sublicense, and/or sell copies of the Software, and to 394 | permit persons to whom the Software is furnished to do so, subject to 395 | the following conditions: 396 | 397 | The above copyright notice and this permission notice shall be 398 | included in all copies or substantial portions of the Software. 399 | 400 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 401 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 402 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 403 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 404 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 405 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 406 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 407 | 408 | balanced-match 409 | MIT 410 | (MIT) 411 | 412 | Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> 413 | 414 | Permission is hereby granted, free of charge, to any person obtaining a copy of 415 | this software and associated documentation files (the "Software"), to deal in 416 | the Software without restriction, including without limitation the rights to 417 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 418 | of the Software, and to permit persons to whom the Software is furnished to do 419 | so, subject to the following conditions: 420 | 421 | The above copyright notice and this permission notice shall be included in all 422 | copies or substantial portions of the Software. 423 | 424 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 425 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 426 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 427 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 428 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 429 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 430 | SOFTWARE. 431 | 432 | 433 | brace-expansion 434 | MIT 435 | MIT License 436 | 437 | Copyright (c) 2013 Julian Gruber 438 | 439 | Permission is hereby granted, free of charge, to any person obtaining a copy 440 | of this software and associated documentation files (the "Software"), to deal 441 | in the Software without restriction, including without limitation the rights 442 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 443 | copies of the Software, and to permit persons to whom the Software is 444 | furnished to do so, subject to the following conditions: 445 | 446 | The above copyright notice and this permission notice shall be included in all 447 | copies or substantial portions of the Software. 448 | 449 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 450 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 451 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 452 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 453 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 454 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 455 | SOFTWARE. 456 | 457 | 458 | concat-map 459 | MIT 460 | This software is released under the MIT license: 461 | 462 | Permission is hereby granted, free of charge, to any person obtaining a copy of 463 | this software and associated documentation files (the "Software"), to deal in 464 | the Software without restriction, including without limitation the rights to 465 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 466 | the Software, and to permit persons to whom the Software is furnished to do so, 467 | subject to the following conditions: 468 | 469 | The above copyright notice and this permission notice shall be included in all 470 | copies or substantial portions of the Software. 471 | 472 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 473 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 474 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 475 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 476 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 477 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 478 | 479 | 480 | debug 481 | MIT 482 | (The MIT License) 483 | 484 | Copyright (c) 2014-2017 TJ Holowaychuk 485 | Copyright (c) 2018-2021 Josh Junon 486 | 487 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software 488 | and associated documentation files (the 'Software'), to deal in the Software without restriction, 489 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 490 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 491 | subject to the following conditions: 492 | 493 | The above copyright notice and this permission notice shall be included in all copies or substantial 494 | portions of the Software. 495 | 496 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 497 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 498 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 499 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 500 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 501 | 502 | 503 | 504 | fast-xml-parser 505 | MIT 506 | MIT License 507 | 508 | Copyright (c) 2017 Amit Kumar Gupta 509 | 510 | Permission is hereby granted, free of charge, to any person obtaining a copy 511 | of this software and associated documentation files (the "Software"), to deal 512 | in the Software without restriction, including without limitation the rights 513 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 514 | copies of the Software, and to permit persons to whom the Software is 515 | furnished to do so, subject to the following conditions: 516 | 517 | The above copyright notice and this permission notice shall be included in all 518 | copies or substantial portions of the Software. 519 | 520 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 521 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 522 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 523 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 524 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 525 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 526 | SOFTWARE. 527 | 528 | 529 | has-flag 530 | MIT 531 | MIT License 532 | 533 | Copyright (c) Sindre Sorhus (sindresorhus.com) 534 | 535 | 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: 536 | 537 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 538 | 539 | 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. 540 | 541 | 542 | http-proxy-agent 543 | MIT 544 | (The MIT License) 545 | 546 | Copyright (c) 2013 Nathan Rajlich 547 | 548 | Permission is hereby granted, free of charge, to any person obtaining 549 | a copy of this software and associated documentation files (the 550 | 'Software'), to deal in the Software without restriction, including 551 | without limitation the rights to use, copy, modify, merge, publish, 552 | distribute, sublicense, and/or sell copies of the Software, and to 553 | permit persons to whom the Software is furnished to do so, subject to 554 | the following conditions: 555 | 556 | The above copyright notice and this permission notice shall be 557 | included in all copies or substantial portions of the Software. 558 | 559 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 560 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 561 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 562 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 563 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 564 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 565 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 566 | 567 | 568 | https-proxy-agent 569 | MIT 570 | (The MIT License) 571 | 572 | Copyright (c) 2013 Nathan Rajlich 573 | 574 | Permission is hereby granted, free of charge, to any person obtaining 575 | a copy of this software and associated documentation files (the 576 | 'Software'), to deal in the Software without restriction, including 577 | without limitation the rights to use, copy, modify, merge, publish, 578 | distribute, sublicense, and/or sell copies of the Software, and to 579 | permit persons to whom the Software is furnished to do so, subject to 580 | the following conditions: 581 | 582 | The above copyright notice and this permission notice shall be 583 | included in all copies or substantial portions of the Software. 584 | 585 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 586 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 587 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 588 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 589 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 590 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 591 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 592 | 593 | minimatch 594 | ISC 595 | The ISC License 596 | 597 | Copyright (c) Isaac Z. Schlueter and Contributors 598 | 599 | Permission to use, copy, modify, and/or distribute this software for any 600 | purpose with or without fee is hereby granted, provided that the above 601 | copyright notice and this permission notice appear in all copies. 602 | 603 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 604 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 605 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 606 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 607 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 608 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 609 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 610 | 611 | 612 | ms 613 | MIT 614 | The MIT License (MIT) 615 | 616 | Copyright (c) 2016 Zeit, Inc. 617 | 618 | Permission is hereby granted, free of charge, to any person obtaining a copy 619 | of this software and associated documentation files (the "Software"), to deal 620 | in the Software without restriction, including without limitation the rights 621 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 622 | copies of the Software, and to permit persons to whom the Software is 623 | furnished to do so, subject to the following conditions: 624 | 625 | The above copyright notice and this permission notice shall be included in all 626 | copies or substantial portions of the Software. 627 | 628 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 629 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 630 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 631 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 632 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 633 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 634 | SOFTWARE. 635 | 636 | 637 | semver 638 | ISC 639 | The ISC License 640 | 641 | Copyright (c) Isaac Z. Schlueter and Contributors 642 | 643 | Permission to use, copy, modify, and/or distribute this software for any 644 | purpose with or without fee is hereby granted, provided that the above 645 | copyright notice and this permission notice appear in all copies. 646 | 647 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 648 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 649 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 650 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 651 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 652 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 653 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 654 | 655 | 656 | strnum 657 | MIT 658 | MIT License 659 | 660 | Copyright (c) 2021 Natural Intelligence 661 | 662 | Permission is hereby granted, free of charge, to any person obtaining a copy 663 | of this software and associated documentation files (the "Software"), to deal 664 | in the Software without restriction, including without limitation the rights 665 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 666 | copies of the Software, and to permit persons to whom the Software is 667 | furnished to do so, subject to the following conditions: 668 | 669 | The above copyright notice and this permission notice shall be included in all 670 | copies or substantial portions of the Software. 671 | 672 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 673 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 674 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 675 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 676 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 677 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 678 | SOFTWARE. 679 | 680 | 681 | supports-color 682 | MIT 683 | MIT License 684 | 685 | Copyright (c) Sindre Sorhus (sindresorhus.com) 686 | 687 | 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: 688 | 689 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 690 | 691 | 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. 692 | 693 | 694 | tslib 695 | 0BSD 696 | Copyright (c) Microsoft Corporation. 697 | 698 | Permission to use, copy, modify, and/or distribute this software for any 699 | purpose with or without fee is hereby granted. 700 | 701 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 702 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 703 | AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 704 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 705 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 706 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 707 | PERFORMANCE OF THIS SOFTWARE. 708 | 709 | tunnel 710 | MIT 711 | The MIT License (MIT) 712 | 713 | Copyright (c) 2012 Koichi Kobayashi 714 | 715 | Permission is hereby granted, free of charge, to any person obtaining a copy 716 | of this software and associated documentation files (the "Software"), to deal 717 | in the Software without restriction, including without limitation the rights 718 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 719 | copies of the Software, and to permit persons to whom the Software is 720 | furnished to do so, subject to the following conditions: 721 | 722 | The above copyright notice and this permission notice shall be included in 723 | all copies or substantial portions of the Software. 724 | 725 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 726 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 727 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 728 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 729 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 730 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 731 | THE SOFTWARE. 732 | 733 | 734 | undici 735 | MIT 736 | MIT License 737 | 738 | Copyright (c) Matteo Collina and Undici contributors 739 | 740 | Permission is hereby granted, free of charge, to any person obtaining a copy 741 | of this software and associated documentation files (the "Software"), to deal 742 | in the Software without restriction, including without limitation the rights 743 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 744 | copies of the Software, and to permit persons to whom the Software is 745 | furnished to do so, subject to the following conditions: 746 | 747 | The above copyright notice and this permission notice shall be included in all 748 | copies or substantial portions of the Software. 749 | 750 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 751 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 752 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 753 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 754 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 755 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 756 | SOFTWARE. 757 | 758 | 759 | uuid 760 | MIT 761 | The MIT License (MIT) 762 | 763 | Copyright (c) 2010-2020 Robert Kieffer and other contributors 764 | 765 | 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: 766 | 767 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 768 | 769 | 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. 770 | -------------------------------------------------------------------------------- /dist/post/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})(); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "setup-sst-v3", 3 | "description": "GitHub Actions to setup SST v3 with caching enabled", 4 | "version": "0.1.4", 5 | "author": "", 6 | "private": true, 7 | "homepage": "https://github.com/brunocleite/setup-sst", 8 | "repository": { 9 | "type": "git", 10 | "url": "git+https://github.com/brunocleite/setup-sst.git" 11 | }, 12 | "bugs": { 13 | "url": "https://github.com/brunocleite/setup-sst/issues" 14 | }, 15 | "keywords": [ 16 | "actions", 17 | "node", 18 | "setup", 19 | "sst", 20 | "iac", 21 | "pulumi" 22 | ], 23 | "exports": { 24 | ".": "./dist/index.js" 25 | }, 26 | "engines": { 27 | "node": ">=21" 28 | }, 29 | "scripts": { 30 | "prerelease": "npm run all && npm version patch --no-git-tag-version && echo '\n\n-=-= COMMIT FILES NOW =-=-\n'", 31 | "release": "bash ./script/release", 32 | "bundle": "npm run format:write && npm run package", 33 | "ci-test": "npx jest", 34 | "coverage": "npx make-coverage-badge --output-path ./badges/coverage.svg", 35 | "format:write": "npx prettier --write .", 36 | "format:check": "npx prettier --check .", 37 | "lint": "npx eslint . -c ./.github/linters/.eslintrc.yml", 38 | "super-lint": "docker run -e LOG_LEVEL=DEBUG -e RUN_LOCAL=true --env-file \".github/linters/super-linter.env\" -v \"$(pwd)\":/tmp/lint --rm ghcr.io/super-linter/super-linter:V7", 39 | "package": "npx ncc build src/main.ts -o dist/main --source-map --license licenses.txt", 40 | "package:post": "npx ncc build src/post.ts -o dist/post --source-map --license licenses.txt", 41 | "package:watch": "npm run package -- --watch", 42 | "package:post:watch": "npm run package -- --watch", 43 | "test": "npx jest", 44 | "all": "npm run format:write && npm run lint && npm run test && npm run coverage && npm run super-lint && npm run package && npm run package:post" 45 | }, 46 | "license": "MIT", 47 | "jest": { 48 | "preset": "ts-jest", 49 | "verbose": true, 50 | "clearMocks": true, 51 | "testEnvironment": "node", 52 | "moduleFileExtensions": [ 53 | "js", 54 | "ts" 55 | ], 56 | "testMatch": [ 57 | "**/*.test.ts" 58 | ], 59 | "testPathIgnorePatterns": [ 60 | "/node_modules/", 61 | "/dist/" 62 | ], 63 | "transform": { 64 | "^.+\\.ts$": "ts-jest" 65 | }, 66 | "coverageReporters": [ 67 | "json-summary", 68 | "text", 69 | "lcov" 70 | ], 71 | "collectCoverage": true, 72 | "collectCoverageFrom": [ 73 | "./src/**" 74 | ] 75 | }, 76 | "dependencies": { 77 | "@actions/cache": "^3.2.4", 78 | "@actions/core": "^1.10.1", 79 | "@actions/exec": "^1.1.1", 80 | "@actions/glob": "^0.5.0" 81 | }, 82 | "devDependencies": { 83 | "@jest/globals": "^29.7.0", 84 | "@types/jest": "^29.5.12", 85 | "@types/node": "^22.5.3", 86 | "@typescript-eslint/eslint-plugin": "^8.4.0", 87 | "@typescript-eslint/parser": "^8.4.0", 88 | "@vercel/ncc": "^0.38.1", 89 | "eslint": "^8.57.0", 90 | "eslint-plugin-jest": "^28.8.2", 91 | "eslint-plugin-jsonc": "^2.16.0", 92 | "eslint-plugin-prettier": "^5.2.1", 93 | "jest": "^29.7.0", 94 | "make-coverage-badge": "^1.2.0", 95 | "prettier": "^3.3.3", 96 | "prettier-eslint": "^16.3.0", 97 | "ts-jest": "^29.2.5", 98 | "typescript": "^5.5.4" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /script/release: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Exit early 4 | # See: https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#The-Set-Builtin 5 | set -e 6 | 7 | # About: 8 | # 9 | # This is a helper script to tag and push a new release. GitHub Actions use 10 | # release tags to allow users to select a specific version of the action to use. 11 | # 12 | # See: https://github.com/actions/typescript-action#publishing-a-new-release 13 | # See: https://github.com/actions/toolkit/blob/master/docs/action-versioning.md#recommendations 14 | # 15 | # This script will do the following: 16 | # 17 | # 1. Retrieve the latest release tag 18 | # 2. Display the latest release tag 19 | # 3. Prompt the user for a new release tag 20 | # 4. Validate the new release tag 21 | # 5. Remind user to update the version field in package.json 22 | # 6. Tag a new release 23 | # 7. Set 'is_major_release' variable 24 | # 8. Point separate major release tag (e.g. v1, v2) to the new release 25 | # 9. Push the new tags (with commits, if any) to remote 26 | # 10. If this is a major release, create a 'releases/v#' branch and push 27 | # 28 | # Usage: 29 | # 30 | # script/release 31 | 32 | # Variables 33 | semver_tag_regex='v[0-9]+\.[0-9]+\.[0-9]+$' 34 | semver_tag_glob='v[0-9].[0-9].[0-9]*' 35 | git_remote='origin' 36 | major_semver_tag_regex='\(v[0-9]*\)' 37 | 38 | # Terminal colors 39 | OFF='\033[0m' 40 | BOLD_RED='\033[1;31m' 41 | BOLD_GREEN='\033[1;32m' 42 | BOLD_BLUE='\033[1;34m' 43 | BOLD_PURPLE='\033[1;35m' 44 | BOLD_UNDERLINED='\033[1;4m' 45 | BOLD='\033[1m' 46 | 47 | # 1. Retrieve the latest release tag 48 | if ! latest_tag=$(git describe --abbrev=0 --match="$semver_tag_glob"); then 49 | # There are no existing release tags 50 | echo -e "No tags found (yet) - Continue to create and push your first tag" 51 | latest_tag="[unknown]" 52 | fi 53 | 54 | # 2. Display the latest release tag 55 | echo -e "The latest release tag is: ${BOLD_BLUE}${latest_tag}${OFF}" 56 | 57 | # 3. Prompt the user for a new release tag 58 | read -r -p 'Enter a new release tag (vX.X.X format): ' new_tag 59 | 60 | # 4. Validate the new release tag 61 | if echo "$new_tag" | grep -q -E "$semver_tag_regex"; then 62 | # Release tag is valid 63 | echo -e "Tag: ${BOLD_BLUE}$new_tag${OFF} is valid syntax" 64 | else 65 | # Release tag is not in `vX.X.X` format 66 | echo -e "Tag: ${BOLD_BLUE}$new_tag${OFF} is ${BOLD_RED}not valid${OFF} (must be in ${BOLD}vX.X.X${OFF} format)" 67 | exit 1 68 | fi 69 | 70 | # 5. Remind user to update the version field in package.json 71 | echo -e -n "Make sure the version field in package.json is ${BOLD_BLUE}$new_tag${OFF}. Yes? [Y/${BOLD_UNDERLINED}n${OFF}] " 72 | read -r YN 73 | 74 | if [[ ! ($YN == "y" || $YN == "Y") ]]; then 75 | # Package.json version field is not up to date 76 | echo -e "Please update the package.json version to ${BOLD_PURPLE}$new_tag${OFF} and commit your changes" 77 | exit 1 78 | fi 79 | 80 | # 6. Tag a new release 81 | git tag "$new_tag" --annotate --message "$new_tag Release" 82 | echo -e "Tagged: ${BOLD_GREEN}$new_tag${OFF}" 83 | 84 | # 7. Set 'is_major_release' variable 85 | latest_major_release_tag=$(expr "$latest_tag" : "$major_semver_tag_regex") 86 | new_major_release_tag=$(expr "$new_tag" : "$major_semver_tag_regex") 87 | 88 | if ! [[ "$new_major_release_tag" = "$latest_major_release_tag" ]]; then 89 | is_major_release='yes' 90 | else 91 | is_major_release='no' 92 | fi 93 | 94 | # 8. Point separate major release tag (e.g. v1, v2) to the new release 95 | if [ $is_major_release = 'yes' ]; then 96 | # Create a new major verison tag and point it to this release 97 | git tag "$new_major_release_tag" --annotate --message "$new_major_release_tag Release" 98 | echo -e "New major version tag: ${BOLD_GREEN}$new_major_release_tag${OFF}" 99 | else 100 | # Update the major verison tag to point it to this release 101 | git tag "$latest_major_release_tag" --force --annotate --message "Sync $latest_major_release_tag tag with $new_tag" 102 | echo -e "Synced ${BOLD_GREEN}$latest_major_release_tag${OFF} with ${BOLD_GREEN}$new_tag${OFF}" 103 | fi 104 | 105 | # 9. Push the new tags (with commits, if any) to remote 106 | git push --follow-tags 107 | 108 | if [ $is_major_release = 'yes' ]; then 109 | # New major version tag is pushed with the '--follow-tags' flags 110 | echo -e "Tags: ${BOLD_GREEN}$new_major_release_tag${OFF} and ${BOLD_GREEN}$new_tag${OFF} pushed to remote" 111 | else 112 | # Force push the updated major version tag 113 | git push $git_remote "$latest_major_release_tag" --force 114 | echo -e "Tags: ${BOLD_GREEN}$latest_major_release_tag${OFF} and ${BOLD_GREEN}$new_tag${OFF} pushed to remote" 115 | fi 116 | 117 | # 10. If this is a major release, create a 'releases/v#' branch and push 118 | if [ $is_major_release = 'yes' ]; then 119 | git branch "releases/$latest_major_release_tag" "$latest_major_release_tag" 120 | echo -e "Branch: ${BOLD_BLUE}releases/$latest_major_release_tag${OFF} created from ${BOLD_BLUE}$latest_major_release_tag${OFF} tag" 121 | git push --set-upstream $git_remote "releases/$latest_major_release_tag" 122 | echo -e "Branch: ${BOLD_GREEN}releases/$latest_major_release_tag${OFF} pushed to remote" 123 | fi 124 | 125 | # Completed 126 | echo -e "${BOLD_GREEN}Done!${OFF}" 127 | -------------------------------------------------------------------------------- /src/contants.ts: -------------------------------------------------------------------------------- 1 | export enum State { 2 | CacheKey = 'CACHE_KEY', 3 | CacheMatchedKey = 'CACHE_MATCHED_KEY', 4 | CachePaths = 'CACHE_PATHS', 5 | Failed = 'FAILED' 6 | } 7 | 8 | export enum Input { 9 | SstPath = 'sst-path', 10 | LockfilePath = 'lockfile-path', 11 | PlatformOnly = 'platform-only', 12 | Debug = 'debug' 13 | } 14 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { mainRun } from './mainImpl' 2 | 3 | // eslint-disable-next-line @typescript-eslint/no-floating-promises 4 | mainRun(true) 5 | -------------------------------------------------------------------------------- /src/mainImpl.ts: -------------------------------------------------------------------------------- 1 | import * as core from '@actions/core' 2 | import * as exec from '@actions/exec' 3 | import * as cache from '@actions/cache' 4 | import * as glob from '@actions/glob' 5 | import * as fs from 'fs' 6 | import * as path from 'path' 7 | import { Input, State } from './contants' 8 | 9 | /** 10 | * The main function for the action. 11 | * @returns {Promise} Resolves when the action is complete. 12 | */ 13 | export async function mainImpl(): Promise { 14 | // SST Folder 15 | const sstFolder = path.resolve(core.getInput(Input.SstPath) || './') 16 | const sstConfigPath = path.resolve(sstFolder, 'sst.config.ts') 17 | core.info(`'sst.config.ts' path: ${sstConfigPath}`) 18 | const lockfilePath = path.resolve( 19 | core.getInput(Input.LockfilePath) || './package-lock.json' 20 | ) 21 | 22 | const lockFileFolder = path.dirname(lockfilePath) 23 | const nodeModulesPath = findFile('node_modules', lockFileFolder) 24 | core.info('node_modules path: ' + nodeModulesPath) 25 | if (!nodeModulesPath) { 26 | throw new Error( 27 | 'node_modules folder not found, please run npm install first' 28 | ) 29 | } 30 | 31 | // Lockfile verification 32 | let sstVersion 33 | let packageManagerRunCommand 34 | if (lockfilePath.endsWith('package-lock.json')) { 35 | packageManagerRunCommand = 'npx' 36 | //NPM lockfile 37 | // SST dependency present 38 | const packageLock = JSON.parse(fs.readFileSync(lockfilePath, 'utf-8')) 39 | const nodeModulesSst = packageLock?.packages['node_modules/sst'] 40 | if (!nodeModulesSst) { 41 | throw new Error( 42 | 'SST module is not on package-lock.json, install it first' 43 | ) 44 | } 45 | // SST version 46 | sstVersion = nodeModulesSst.version 47 | if (!sstVersion) { 48 | throw new Error('SST version could not be parsed') 49 | } 50 | core.info(`SST version v${sstVersion} found`) 51 | } else if (lockfilePath.endsWith('bun.lockb')) { 52 | packageManagerRunCommand = 'bunx' 53 | //Use the full 'bun.lockb' as the sst version, can't parse as it is binary 54 | sstVersion = await glob.hashFiles(lockfilePath) 55 | } else { 56 | throw new Error('Unsupported lockfile format') 57 | } 58 | 59 | // Home folder 60 | const homeFolder = process.env.HOME 61 | if (!homeFolder) { 62 | throw new Error('Failed to get HOME folder') 63 | } 64 | 65 | //Paths 66 | const platformPath = path.resolve(sstFolder, '.sst/platform') 67 | const pluginsPath = path.resolve(homeFolder, '.config/sst/plugins') 68 | const binPath = path.resolve(homeFolder, '.config/sst/bin') 69 | 70 | // Caching 71 | const sstConfigHash = await glob.hashFiles(sstConfigPath) 72 | const platformOnly = strictParseBoolean(core.getInput(Input.PlatformOnly)) 73 | let cacheKey 74 | let cachePaths 75 | if (platformOnly) { 76 | cachePaths = [platformPath] 77 | cacheKey = `${process.env.RUNNER_OS}-sst-platform-${sstVersion}-${sstConfigHash}` 78 | } else { 79 | cachePaths = [platformPath, pluginsPath, binPath] 80 | cacheKey = `${process.env.RUNNER_OS}-sst-${sstVersion}-${sstConfigHash}` 81 | } 82 | core.saveState(State.CacheKey, cacheKey) 83 | core.saveState(State.CachePaths, cachePaths) 84 | core.info(`SST cache paths: ${cachePaths.join(', ')}`) 85 | 86 | // Restore cache 87 | const cacheMatchedKey = await cache.restoreCache(cachePaths, cacheKey) 88 | if (cacheMatchedKey) { 89 | core.info(`SST cache key: ${cacheMatchedKey}`) 90 | core.saveState(State.CacheMatchedKey, cacheMatchedKey) 91 | } else { 92 | core.info(`SST cache not found, installing SST...`) 93 | const printLogs = 94 | core.getInput(Input.Debug) === 'true' ? ['--print-logs'] : [] 95 | await exec.exec( 96 | packageManagerRunCommand, 97 | ['sst', 'install', ...printLogs], 98 | { 99 | cwd: sstFolder 100 | } 101 | ) 102 | } 103 | } 104 | 105 | function findFile( 106 | fileName: string, 107 | currentDir: string = __dirname 108 | ): string | null { 109 | const currentPath = path.join(currentDir, fileName) 110 | 111 | if (fs.existsSync(currentPath)) { 112 | return currentPath 113 | } else { 114 | const parentDir = path.dirname(currentDir) 115 | 116 | if (parentDir === currentDir) { 117 | // reached the root 118 | return null 119 | } 120 | 121 | return findFile(fileName, parentDir) 122 | } 123 | } 124 | 125 | export async function mainRun(earlyExit?: boolean | undefined): Promise { 126 | try { 127 | await mainImpl() 128 | } catch (error) { 129 | core.saveState(State.Failed, 'true') 130 | if (error instanceof Error) core.setFailed(error.message) 131 | if (earlyExit) process.exit(1) 132 | throw error 133 | } 134 | if (earlyExit) process.exit(0) 135 | } 136 | 137 | function strictParseBoolean(value: string | null | undefined): boolean { 138 | if (value === null || value === undefined) { 139 | throw new Error('Invalid boolean value: null or undefined') 140 | } 141 | 142 | const lowerValue = value.toLowerCase().trim() 143 | 144 | if (lowerValue === 'true' || lowerValue === '1' || lowerValue === 'yes') { 145 | return true 146 | } else if ( 147 | lowerValue === 'false' || 148 | lowerValue === '0' || 149 | lowerValue === 'no' 150 | ) { 151 | return false 152 | } else { 153 | throw new Error(`Invalid boolean value: ${value}`) 154 | } 155 | } 156 | -------------------------------------------------------------------------------- /src/post.ts: -------------------------------------------------------------------------------- 1 | import { postRun } from './postImpl' 2 | 3 | // eslint-disable-next-line @typescript-eslint/no-floating-promises 4 | postRun(true) 5 | -------------------------------------------------------------------------------- /src/postImpl.ts: -------------------------------------------------------------------------------- 1 | import * as core from '@actions/core' 2 | import * as cache from '@actions/cache' 3 | import { State } from './contants' 4 | 5 | /** 6 | * The post function for the action. 7 | * @returns {Promise} Resolves when the action is complete. 8 | */ 9 | export async function postImpl(): Promise { 10 | const failed = core.getState(State.Failed) 11 | const cacheMatchedKey = core.getState(State.CacheMatchedKey) 12 | if (failed || (cacheMatchedKey && cacheMatchedKey.length > 0)) return 13 | 14 | const cacheKey = core.getState(State.CacheKey) 15 | const cachePaths = JSON.parse(core.getState(State.CachePaths) || '[]') 16 | if (cachePaths && cachePaths.length > 0) 17 | await cache.saveCache(cachePaths, cacheKey) 18 | } 19 | 20 | export async function postRun(earlyExit?: boolean | undefined): Promise { 21 | try { 22 | await postImpl() 23 | } catch (error) { 24 | if (error instanceof Error) core.setFailed(error.message) 25 | if (earlyExit) process.exit(1) 26 | throw error 27 | } 28 | if (earlyExit) process.exit(0) 29 | } 30 | -------------------------------------------------------------------------------- /src/sst.ts: -------------------------------------------------------------------------------- 1 | import path from 'path' 2 | 3 | export const sstCachePaths = ( 4 | sstFolder: string, 5 | homeFolder: string 6 | ): string[] => { 7 | return [ 8 | path.resolve(sstFolder, '.sst/platform'), 9 | path.resolve(homeFolder, '.config/sst/plugins'), 10 | path.resolve(homeFolder, '.config/sst/bin') 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /tips.md: -------------------------------------------------------------------------------- 1 | # Developers guide 2 | 3 | How to release? 4 | 5 | Run `npm run release` (remind to commit files before entering version number) 6 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "compilerOptions": { 4 | "target": "ES2022", 5 | "module": "NodeNext", 6 | "rootDir": "./src", 7 | "moduleResolution": "NodeNext", 8 | "baseUrl": "./", 9 | "sourceMap": true, 10 | "outDir": "./dist", 11 | "noImplicitAny": true, 12 | "esModuleInterop": true, 13 | "forceConsistentCasingInFileNames": true, 14 | "strict": true, 15 | "skipLibCheck": true, 16 | "newLine": "lf" 17 | }, 18 | "exclude": [ 19 | "./dist", 20 | "./node_modules", 21 | "./__test_environments__", 22 | "./__tests__", 23 | "./coverage" 24 | ] 25 | } 26 | --------------------------------------------------------------------------------