diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 0000000..eeea278 --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,473 @@ +# yaml-language-server: $schema=https://json.schemastore.org/eslintrc.json +# ESLint v8.50.0 +env: + browser: true + node: true + commonjs: true + shared-node-browser: true + es6: true + es2016: true + es2017: true + es2018: true + es2019: true + es2020: true + es2021: true + es2022: true + es2023: true + es2024: true + worker: true + amd: true + mocha: true + jasmine: true + jest: true + phantomjs: true + protractor: true + qunit: true + jquery: true + prototypejs: true + shelljs: true + meteor: true + mongo: true + applescript: true + nashorn: true + serviceworker: true + atomtest: true + embertest: true + webextensions: true + greasemonkey: true +extends: + - "eslint:recommended" + - "plugin:@typescript-eslint/recommended" +parser: "@typescript-eslint/parser" +parserOptions: + ecmaVersion: "latest" + sourceType: "module" + allowReserved: false + ecmaFeatures: + arrowFunctions: true + classes: true + defaultParams: true + destructuring: true + experimentalObjectRestSpread: true + forOf: true + generators: true + globalReturn: false + impliedStrict: true + jsx: true + modules: true + objectLiteralComputedProperties: true + objectLiteralDuplicateProperties: true + objectLiteralShorthandMethods: true + objectLiteralShorthandProperties: true + regexUFlag: true + regexYFlag: true + restParams: true + spread: true + superInFunctions: false + templateStrings: true + unicodeCodePointEscapes: true +plugins: + - "@typescript-eslint" + - "only-warn" +rules: + array-callback-return: + - "warn" + - allowImplicit: true + checkForEach: true + no-cond-assign: + - "warn" + - "always" + no-constant-binary-expression: + - "warn" + no-constructor-return: + - "warn" + no-duplicate-imports: + - "warn" + no-new-native-nonconstructor: + - "warn" + no-promise-executor-return: + - "warn" + no-self-compare: + - "warn" + no-unmodified-loop-condition: + - "warn" + no-unreachable-loop: + - "warn" + no-unused-private-class-members: + - "warn" + no-use-before-define: + - "warn" + require-atomic-updates: + - "warn" + use-isnan: + - "warn" + - enforceForSwitchCase: true + enforceForIndexOf: true + arrow-body-style: + - "warn" + - "always" + class-methods-use-this: + - "warn" + curly: + - "warn" + - "all" + default-case: + - "warn" + default-case-last: + - "warn" + default-param-last: + - "warn" + eqeqeq: + - "warn" + - "always" + func-names: + - "warn" + - "as-needed" + func-style: + - "warn" + - "declaration" + - allowArrowFunctions: true + grouped-accessor-pairs: + - "warn" + guard-for-in: + - "warn" + new-cap: + - "warn" + - newIsCap: true + capIsNew: false + properties: true + no-array-constructor: + - "warn" + no-caller: + - "warn" + no-confusing-arrow: + - "warn" + no-div-regex: + - "warn" + no-else-return: + - "warn" + no-empty-function: + - "warn" + no-empty-static-block: + - "warn" + no-eq-null: + - "warn" + no-eval: + - "warn" + no-extend-native: + - "warn" + no-extra-bind: + - "warn" + no-extra-label: + - "warn" + no-floating-decimal: + - "warn" + no-implicit-coercion: + - "warn" + no-invalid-this: + - "warn" + no-iterator: + - "warn" + no-label-var: + - "warn" + no-lone-blocks: + - "warn" + no-loop-func: + - "warn" + no-mixed-operators: + - "warn" + no-multi-assign: + - "warn" + no-multi-str: + - "warn" + no-negated-condition: + - "warn" + no-new: + - "warn" + no-new-func: + - "warn" + no-new-wrappers: + - "warn" + no-object-constructor: + - "warn" + no-octal-escape: + - "warn" + no-param-reassign: + - "warn" + no-proto: + - "warn" + no-regex-spaces: + - "warn" + no-return-assign: + - "warn" + - "always" + no-script-url: + - "warn" + no-sequences: + - "warn" + no-shadow: + - "warn" + no-unneeded-ternary: + - "warn" + - defaultAssignment: true + no-unused-expressions: + - "warn" + - allowShortCircuit: false + allowTernary: false + allowTaggedTemplates: true + enforceForJSX: false + no-useless-call: + - "warn" + no-useless-computed-key: + - "warn" + no-useless-concat: + - "warn" + no-useless-constructor: + - "warn" + no-useless-rename: + - "warn" + no-useless-return: + - "warn" + no-void: + - "warn" + one-var-declaration-per-line: + - "warn" + - "always" + prefer-const: + - "warn" + prefer-named-capture-group: + - "warn" + prefer-numeric-literals: + - "warn" + prefer-object-has-own: + - "warn" + prefer-object-spread: + - "warn" + prefer-regex-literals: + - "warn" + - disallowRedundantWrapping: true + prefer-rest-params: + - "warn" + prefer-spread: + - "warn" + prefer-template: + - "warn" + radix: + - "warn" + require-await: + - "warn" + require-unicode-regexp: + - "warn" + strict: + - "warn" + - "never" + yoda: + - "warn" + - "never" + - exceptRange: true + array-bracket-spacing: + - "warn" + - "never" + - singleValue: false + objectsInArrays: false + arraysInArrays: false + array-element-newline: + - "warn" + - "consistent" + arrow-parens: + - "warn" + - "always" + arrow-spacing: + - "warn" + - before: true + after: true + block-spacing: + - "warn" + - "always" + brace-style: + - "warn" + - "1tbs" + - allowSingleLine: false + comma-dangle: + - "warn" + - "never" + comma-spacing: + - "warn" + - before: false + after: true + comma-style: + - "warn" + - "last" + computed-property-spacing: + - "warn" + - "never" + - enforceForClassMembers: true + dot-location: + - "warn" + - "object" + eol-last: + - "warn" + - "always" + func-call-spacing: + - "warn" + - "never" + function-call-argument-newline: + - "warn" + - "consistent" + function-paren-newline: + - "warn" + - "multiline-arguments" + generator-star-spacing: + - "warn" + - before: false + after: true + implicit-arrow-linebreak: + - "warn" + - "beside" + indent: + - "warn" + - "tab" + - SwitchCase: 1 + VariableDeclarator: 1 + outerIIFEBody: 1 + MemberExpression: 1 + FunctionDeclaration: + parameters: 1 + body: 1 + FunctionExpression: + parameters: 1 + body: 1 + StaticBlock: + body: 1 + CallExpression: + arguments: 1 + ArrayExpression: 1 + ObjectExpression: 1 + ImportDeclaration: 1 + flatTernaryExpressions: true + offsetTernaryExpressions: false + ignoreComments: false + jsx-quotes: + - "warn" + - "prefer-double" + key-spacing: + - "warn" + - beforeColon: false + afterColon: true + mode: "strict" + keyword-spacing: + - "warn" + - before: true + after: true + multiline-ternary: + - "warn" + - "always-multiline" + new-parens: + - "warn" + - "always" + no-extra-parens: + - "warn" + - "all" + - conditionalAssign: false + returnAssign: false + nestedBinaryExpressions: false + ternaryOperandBinaryExpressions: false + ignoreJSX: "multi-line" + enforceForArrowConditionals: false + enforceForSequenceExpressions: false + enforceForNewInMemberExpressions: true + enforceForFunctionPrototypeMethods: true + no-multi-spaces: + - "warn" + no-multiple-empty-lines: + - "warn" + - max: 1 + no-tabs: + - "warn" + - allowIndentationTabs: true + no-trailing-spaces: + - "warn" + - skipBlankLines: false + ignoreComments: false + no-whitespace-before-property: + - "warn" + nonblock-statement-body-position: + - "warn" + - "beside" + object-curly-newline: + - "warn" + - multiline: true + consistent: true + object-curly-spacing: + - "warn" + - "always" + operator-linebreak: + - "warn" + padded-blocks: + - "warn" + - "never" + - allowSingleLineBlocks: false + padding-line-between-statements: + - "warn" + quotes: + - "warn" + - "double" + - avoidEscape: false + allowTemplateLiterals: true + rest-spread-spacing: + - "warn" + - "never" + semi: + - "warn" + - "always" + - omitLastInOneLineBlock: false + omitLastInOneLineClassBody: false + semi-spacing: + - "warn" + - before: false + after: true + semi-style: + - "warn" + - "last" + space-before-blocks: + - "warn" + - "always" + space-before-function-paren: + - "warn" + - anonymous: "always" + named: "never" + asyncArrow: "always" + space-in-parens: + - "warn" + - "never" + space-infix-ops: + - "warn" + space-unary-ops: + - "warn" + switch-colon-spacing: + - "warn" + - before: false + after: true + template-curly-spacing: + - "warn" + - "never" + template-tag-spacing: + - "warn" + - "never" + wrap-iife: + - "warn" + - "any" + yield-star-spacing: + - "warn" + - before: false + after: true + "@typescript-eslint/adjacent-overload-signatures": + - "warn" + "@typescript-eslint/ban-ts-comment": + - "warn" + - ts-expect-error: "allow-with-description" + ts-ignore: "allow-with-description" + ts-nocheck: "allow-with-description" + ts-check: "allow-with-description" + "@typescript-eslint/ban-tslint-comment": + - "warn" diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 0000000..14b61c4 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,22 @@ +# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json +name: "CodeQL - Analysis" +on: + push: + branches: + - "**" + pull_request: + branches: + - "**" + types: + - "edited" + - "opened" + - "reopened" + - "synchronize" + workflow_dispatch: +permissions: + contents: "read" + security-events: "write" +jobs: + main: + name: "Main" + uses: "hugoalh/hugoalh/.github/workflows/call-codeql-analysis-0.yml@main" diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..325503d --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +git-tag-version=false +lockfile-version=2 diff --git a/README.md b/README.md index bc43be1..9c1d68b 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ |:-:|:-:|:-:| | [![GitHub](https://img.shields.io/badge/GitHub-181717?logo=github&logoColor=ffffff&style=flat-square "GitHub")](https://github.com/hugoalh/disk-space-optimizer-ghaction) | ![GitHub Latest Release Version](https://img.shields.io/github/release/hugoalh/disk-space-optimizer-ghaction?sort=semver&label=&style=flat-square "GitHub Latest Release Version") (![GitHub Latest Release Date](https://img.shields.io/github/release-date/hugoalh/disk-space-optimizer-ghaction?label=&style=flat-square "GitHub Latest Release Date")) | ![GitHub Latest Pre-Release Version](https://img.shields.io/github/release/hugoalh/disk-space-optimizer-ghaction?include_prereleases&sort=semver&label=&style=flat-square "GitHub Latest Pre-Release Version") (![GitHub Latest Pre-Release Date](https://img.shields.io/github/release-date-pre/hugoalh/disk-space-optimizer-ghaction?label=&style=flat-square "GitHub Latest Pre-Release Date")) | -A GitHub Action to optimize disk space for GitHub hosted runner. +A GitHub Action to optimize disk space for GitHub-hosted runner. This project is inspired from: @@ -19,7 +19,7 @@ This project is inspired from: - [ShubhamTatvamasi/free-disk-space-action](https://github.com/ShubhamTatvamasi/free-disk-space-action) - [ThewApp/free-actions](https://github.com/ThewApp/free-actions) -> **โš ๏ธ Important:** This documentation is v0.7.1 based; To view other version's documentation, please visit the [versions list](https://github.com/hugoalh/disk-space-optimizer-ghaction/tags) and select the correct version. +> **โš ๏ธ Important:** This documentation is v0.8.0 based; To view other version's documentation, please visit the [versions list](https://github.com/hugoalh/disk-space-optimizer-ghaction/tags) and select the correct version. ## ๐ŸŒŸ Feature @@ -44,8 +44,8 @@ This project is inspired from: ### GitHub Actions -- **Target Version:** Runner >= v2.308.0, &: - - PowerShell >= v7.2.0 +- **Target Version:** Runner >= v2.311.0, &: + - NodeJS ^ v20.9.0 - **Require Permission:** *N/A* ```yml @@ -68,35 +68,35 @@ jobs: > **๐Ÿงช Experimental:** This is in testing, maybe available in the latest version and/or future version. -`` Whether to operate in asynchronously to reduce the operation duration. +`` Whether to operate in asynchronously to reduce the operation duration. ### `operate_sudo` -`` Whether to execute this action in sudo mode on non-Windows environment. This can set to `True` in order to able operate protected resources on non-Windows environment. +`` Whether to execute this action in sudo mode on non-Windows environment. This can set to `true` in order to able operate protected resources on non-Windows environment. ### `general_include` -`` Remove general item, by regular expression and [general list][list], separate each value per line. +`` Remove general item, by regular expression and [general list][list], separate each value per line. ### `general_exclude` -`` Exclude remove general item, by regular expression and [general list][list], separate each value per line. +`` Exclude remove general item, by regular expression and [general list][list], separate each value per line. ### `docker_include` -`` Remove Docker image, by regular expression, separate each value per line. +`` Remove Docker image, by regular expression, separate each value per line. ### `docker_exclude` -`` Exclude remove Docker image, by regular expression, separate each value per line. +`` Exclude remove Docker image, by regular expression, separate each value per line. ### `docker_prune` -`` Whether to prune Docker all of the dangling images. +`` Whether to prune Docker all of the dangling images. ### `docker_clean` -`` Whether to remove Docker cache, include all of the: +`` Whether to remove Docker cache, include all of the: - build caches - stopped/unused containers @@ -105,37 +105,37 @@ jobs: ### `apt_enable` -**๐Ÿ”€{E}** `` Whether to optimize via APT. Only affect general optimization. +**๐Ÿ”€{E}** `` Whether to optimize via APT. Only affect general optimization. -If all of the inputs inside this switch group are `False`, this input will default to `True`. +If all of the inputs inside this switch group are `false`, this input will default to `true`. ### `apt_prune` -`` Whether to prune APT (Advanced Packaging Tools) all of the packages that were automatically installed to satisfy dependencies for other packages and are now no longer needed. +`` Whether to prune APT (Advanced Packaging Tools) all of the packages that were automatically installed to satisfy dependencies for other packages and are now no longer needed. ### `apt_clean` -`` Whether to remove APT (Advanced Packaging Tools) cache, include the local repository of retrieved package files. +`` Whether to remove APT (Advanced Packaging Tools) cache, include the local repository of retrieved package files. ### `chocolatey_enable` -**๐Ÿ”€{E}** `` Whether to optimize via Chocolatey. Only affect general optimization. +**๐Ÿ”€{E}** `` Whether to optimize via Chocolatey. Only affect general optimization. -If all of the inputs inside this switch group are `False`, this input will default to `True`. +If all of the inputs inside this switch group are `false`, this input will default to `true`. ### `homebrew_enable` -**๐Ÿ”€{E}** `` Whether to optimize via Homebrew. Only affect general optimization. +**๐Ÿ”€{E}** `` Whether to optimize via Homebrew. Only affect general optimization. -If all of the inputs inside this switch group are `False`, this input will default to `True`. +If all of the inputs inside this switch group are `false`, this input will default to `true`. ### `homebrew_prune` -`` Whether to prune Homebrew all of the packages that were only installed as a dependency of other packages and are now no longer needed. +`` Whether to prune Homebrew all of the packages that were only installed as a dependency of other packages and are now no longer needed. ### `homebrew_clean` -`` Whether to remove Homebrew cache, include all of the: +`` Whether to remove Homebrew cache, include all of the: - outdated downloads - old versions of installed formulae @@ -143,39 +143,39 @@ If all of the inputs inside this switch group are `False`, this input will defau ### `npm_enable` -**๐Ÿ”€{E}** `` Whether to optimize via NPM. Only affect general optimization. +**๐Ÿ”€{E}** `` Whether to optimize via NPM. Only affect general optimization. -If all of the inputs inside this switch group are `False`, this input will default to `True`. +If all of the inputs inside this switch group are `false`, this input will default to `true`. ### `npm_prune` -`` Whether to prune NPM (NodeJS Package Manager) all of the extraneous packages. +`` Whether to prune NPM (NodeJS Package Manager) all of the extraneous packages. ### `npm_clean` -`` Whether to remove NPM (NodeJS Package Manager) cache. +`` Whether to remove NPM (NodeJS Package Manager) cache. ### `pipx_enable` -**๐Ÿ”€{E}** `` Whether to optimize via Pipx. Only affect general optimization. +**๐Ÿ”€{E}** `` Whether to optimize via Pipx. Only affect general optimization. -If all of the inputs inside this switch group are `False`, this input will default to `True`. +If all of the inputs inside this switch group are `false`, this input will default to `true`. ### `wmic_enable` -**๐Ÿ”€{E}** `` Whether to optimize via WMIC. Only affect general optimization. +**๐Ÿ”€{E}** `` Whether to optimize via WMIC. Only affect general optimization. -If all of the inputs inside this switch group are `False`, this input will default to `True`. +If all of the inputs inside this switch group are `false`, this input will default to `true`. ### `fs_enable` -**๐Ÿ”€{E}** `` Whether to optimize via file system. +**๐Ÿ”€{E}** `` Whether to optimize via file system. -If all of the inputs inside this switch group are `False`, this input will default to `True`. +If all of the inputs inside this switch group are `false`, this input will default to `true`. ### `os_swap` -`` Whether to remove system page/swap file. +`` Whether to remove system page/swap file. ## ๐Ÿงฉ Output @@ -189,20 +189,20 @@ If all of the inputs inside this switch group are `False`, this input will defau runs-on: "ubuntu-latest" steps: - name: "Optimize Disk Space" - uses: "hugoalh/disk-space-optimizer-ghaction@v0.7.0" + uses: "hugoalh/disk-space-optimizer-ghaction@v0.8.0" with: - operate_sudo: "True" + operate_sudo: "true" general_include: ".+" docker_include: ".+" - docker_prune: "True" - docker_clean: "True" - apt_prune: "True" - apt_clean: "True" - homebrew_prune: "True" - homebrew_clean: "True" - npm_prune: "True" - npm_clean: "True" - os_swap: "True" + docker_prune: "true" + docker_clean: "true" + apt_prune: "true" + apt_clean: "true" + homebrew_prune: "true" + homebrew_clean: "true" + npm_prune: "true" + npm_clean: "true" + os_swap: "true" ``` ## ๐Ÿ“š Guide diff --git a/action.yml b/action.yml index fa63df1..6d5f95c 100644 --- a/action.yml +++ b/action.yml @@ -1,16 +1,16 @@ # yaml-language-server: $schema=https://json.schemastore.org/github-action.json name: "Disk Space Optimizer" author: "hugoalh" -description: "Optimize disk space for GitHub hosted runner." +description: "Optimize disk space for GitHub-hosted runner." inputs: operate_async: - description: "[EXPERIMENTAL] {Boolean} Whether to operate in asynchronously to reduce the operation duration." + description: "[EXPERIMENTAL] {boolean} Whether to operate in asynchronously to reduce the operation duration." required: false - default: "False" + default: "false" operate_sudo: - description: "{Boolean} Whether to execute this action in sudo mode on non-Windows environment." + description: "{boolean} Whether to execute this action in sudo mode on non-Windows environment." required: false - default: "False" + default: "false" general_include: description: "{RegEx[]} Remove general item." required: false @@ -28,152 +28,73 @@ inputs: required: false default: "" docker_prune: - description: "{Boolean} Whether to prune Docker all of the dangling images." + description: "{boolean} Whether to prune Docker all of the dangling images." required: false - default: "False" + default: "false" docker_clean: - description: "{Boolean} Whether to remove Docker cache." + description: "{boolean} Whether to remove Docker cache." required: false - default: "False" + default: "false" apt_enable: - description: "{Boolean} Whether to optimize via APT." + description: "{boolean} Whether to optimize via APT." required: false - default: "False" + default: "false" apt_prune: - description: "{Boolean} Whether to prune APT package." + description: "{boolean} Whether to prune APT package." required: false - default: "False" + default: "false" apt_clean: - description: "{Boolean} Whether to remove APT cache." + description: "{boolean} Whether to remove APT cache." required: false - default: "False" + default: "false" chocolatey_enable: - description: "{Boolean} Whether to optimize via Chocolatey." + description: "{boolean} Whether to optimize via Chocolatey." required: false - default: "False" + default: "false" homebrew_enable: - description: "{Boolean} Whether to optimize via Homebrew." + description: "{boolean} Whether to optimize via Homebrew." required: false - default: "False" + default: "false" homebrew_prune: - description: "{Boolean} Whether to prune Homebrew package." + description: "{boolean} Whether to prune Homebrew package." required: false - default: "False" + default: "false" homebrew_clean: - description: "{Boolean} Whether to remove Homebrew cache." + description: "{boolean} Whether to remove Homebrew cache." required: false - default: "False" + default: "false" npm_enable: - description: "{Boolean} Whether to optimize via NPM." + description: "{boolean} Whether to optimize via NPM." required: false - default: "False" + default: "false" npm_prune: - description: "{Boolean} Whether to prune NPM package." + description: "{boolean} Whether to prune NPM package." required: false - default: "False" + default: "false" npm_clean: - description: "{Boolean} Whether to remove NPM cache." + description: "{boolean} Whether to remove NPM cache." required: false - default: "False" + default: "false" pipx_enable: - description: "{Boolean} Whether to optimize via Pipx." + description: "{boolean} Whether to optimize via Pipx." required: false - default: "False" + default: "false" wmic_enable: - description: "{Boolean} Whether to optimize via WMIC." + description: "{boolean} Whether to optimize via WMIC." required: false - default: "False" + default: "false" fs_enable: - description: "{Boolean} Whether to optimize via file system." + description: "{boolean} Whether to optimize via file system." required: false - default: "False" + default: "false" os_swap: - description: "{Boolean} Whether to remove system page/swap file." + description: "{boolean} Whether to remove system page/swap file." required: false - default: "False" + default: "false" runs: - using: "composite" - steps: - - name: "Setup PowerShell Toolkit (Sudo)" - if: "${{inputs.operate_sudo == 'True'}}" - uses: "hugoalh-studio/setup-powershell-toolkit-ghaction@v1.6.0" - with: - sudo: "${{inputs.operate_sudo}}" - version: "^1.7.2" - scope: "AllUsers" - keepsetting: "False" - continue-on-error: true - - name: "Setup PowerShell Toolkit" - if: "${{inputs.operate_sudo != 'True'}}" - uses: "hugoalh-studio/setup-powershell-toolkit-ghaction@v1.6.0" - with: - sudo: "${{inputs.operate_sudo}}" - version: "^1.7.2" - scope: "CurrentUser" - keepsetting: "False" - continue-on-error: true - - name: "Main" - run: | - #Requires -PSEdition Core -Version 7.2 - $Script:ErrorActionPreference = 'Stop' - Get-Alias -Scope 'Local' -ErrorAction 'SilentlyContinue' | - Remove-Alias -Scope 'Local' -Force -ErrorAction 'SilentlyContinue' - Import-Module -Name 'hugoalh.GitHubActionsToolkit' -Scope 'Local' - Test-GitHubActionsEnvironment -Mandatory - [String]$MainScriptPath = Join-Path -Path $Env:GITHUB_ACTION_PATH -ChildPath 'main.ps1' - If (!(Test-Path -LiteralPath $MainScriptPath -PathType 'Leaf')) { - Write-GitHubActionsFail -Message 'Invalid script path!' - } - [Boolean]$InputOperateSudo = [Boolean]::Parse($Env:INPUT_OPERATE_SUDO) - If ($InputOperateSudo -and $Env:RUNNER_OS -iin @('Linux', 'MacOS')) { - sudo --non-interactive --preserve-env pwsh -NonInteractive $MainScriptPath - } - Else { - pwsh -NonInteractive $MainScriptPath - } - shell: "pwsh" - env: - INPUT_APT_CLEAN: "${{inputs.apt_clean}}" - INPUT_APT_ENABLE: "${{inputs.apt_enable}}" - INPUT_APT_PRUNE: "${{inputs.apt_prune}}" - INPUT_CHOCOLATEY_ENABLE: "${{inputs.chocolatey_enable}}" - INPUT_DOCKER_CLEAN: "${{inputs.docker_clean}}" - INPUT_DOCKER_EXCLUDE: "${{inputs.docker_exclude}}" - INPUT_DOCKER_INCLUDE: "${{inputs.docker_include}}" - INPUT_DOCKER_PRUNE: "${{inputs.docker_prune}}" - INPUT_FS_ENABLE: "${{inputs.fs_enable}}" - INPUT_GENERAL_EXCLUDE: "${{inputs.general_exclude}}" - INPUT_GENERAL_INCLUDE: "${{inputs.general_include}}" - INPUT_HOMEBREW_CLEAN: "${{inputs.homebrew_clean}}" - INPUT_HOMEBREW_ENABLE: "${{inputs.homebrew_enable}}" - INPUT_HOMEBREW_PRUNE: "${{inputs.homebrew_prune}}" - INPUT_NPM_CLEAN: "${{inputs.npm_clean}}" - INPUT_NPM_ENABLE: "${{inputs.npm_enable}}" - INPUT_NPM_PRUNE: "${{inputs.npm_prune}}" - INPUT_OPERATE_ASYNC: "${{inputs.operate_async}}" - INPUT_OPERATE_SUDO: "${{inputs.operate_sudo}}" - INPUT_OS_SWAP: "${{inputs.os_swap}}" - INPUT_PIPX_ENABLE: "${{inputs.pipx_enable}}" - INPUT_WMIC_ENABLE: "${{inputs.wmic_enable}}" - continue-on-error: true - - name: "Setup PowerShell Toolkit (Sudo)" - if: "${{inputs.operate_sudo == 'True'}}" - uses: "hugoalh-studio/setup-powershell-toolkit-ghaction@v1.6.0" - with: - sudo: "${{inputs.operate_sudo}}" - version: "False" - scope: "AllUsers" - keepsetting: "False" - continue-on-error: true - - name: "Setup PowerShell Toolkit" - if: "${{inputs.operate_sudo != 'True'}}" - uses: "hugoalh-studio/setup-powershell-toolkit-ghaction@v1.6.0" - with: - sudo: "${{inputs.operate_sudo}}" - version: "False" - scope: "CurrentUser" - keepsetting: "False" - continue-on-error: true + using: "node20" + pre: "dist/pre.js" + main: "dist/main.js" branding: icon: "hard-drive" color: "green" diff --git a/bundler.js b/bundler.js new file mode 100644 index 0000000..48cce6b --- /dev/null +++ b/bundler.js @@ -0,0 +1,34 @@ +import { mkdir as fsMkdir, readdir as fsReaddir, rm as fsRm, writeFile as fsWriteFile } from "node:fs/promises"; +import { dirname as pathDirname, join as pathJoin } from "node:path"; +import { fileURLToPath } from "node:url"; +import ncc from "@vercel/ncc"; +const workspace = pathDirname(fileURLToPath(import.meta.url)); +const directoryInput = pathJoin(workspace, "temp"); +const directoryOutput = pathJoin(workspace, "dist"); +const scripts = new Set([ + "main.js" +]); + +// Initialize output directory. +await fsMkdir(directoryOutput, { recursive: true }); +for (const fileName of await fsReaddir(directoryOutput)) { + await fsRm(pathJoin(directoryOutput, fileName), { maxRetries: 4, recursive: true }); +} + +// Create bundle. +for (const script of scripts.values()) { + const { code } = await ncc(pathJoin(directoryInput, script), { + assetBuilds: false, + cache: false, + debugLog: false, + license: "", + minify: true, + quiet: false, + sourceMap: false, + sourceMapRegister: false, + target: "es2022", + v8cache: false, + watch: false + }); + await fsWriteFile(pathJoin(directoryOutput, script), code, { encoding: "utf8" }); +} diff --git a/list.json b/list.json deleted file mode 100644 index 41610e3..0000000 --- a/list.json +++ /dev/null @@ -1,1666 +0,0 @@ -{ - "$schema": "./list.schema.json", - "Collection": [ - { - "Name": "AliYun", - "Description": "AliYun (Alibaba Cloud)", - "Postpone": 0, - "Homebrew": [ - "aliyun-cli" - ], - "PathLinux": [ - "/usr/local/bin/aliyun" - ], - "PathWindows": [ - "C:\\aliyun-cli" - ] - }, - { - "Name": "AndroidNDK", - "Description": "Android NDK", - "Postpone": 0, - "Homebrew": [ - "android-ndk" - ], - "Env": [ - "ANDROID_HOME", - "ANDROID_NDK_ROOT", - "ANDROID_ROOT", - "ANDROID_SDK_ROOT" - ], - "PathLinux": [ - "/usr/local/lib/android" - ], - "PathMacOS": [ - "/Users/runner/.android", - "/Users/runner/Library/Android" - ], - "PathWindows": [ - "C:\\Android", - "C:\\Program Files (x86)\\Android" - ] - }, - { - "Name": "Ansible", - "Description": "Ansible", - "Postpone": 0, - "Homebrew": [ - "ansible" - ], - "Pipx": [ - "ansible-core" - ], - "PathLinux": [ - "/opt/pipx_bin/ansible*" - ] - }, - { - "Name": "ApacheAnt", - "Description": "Apache Ant", - "Postpone": 0, - "APT": [ - "ant-optional", - "ant" - ], - "Chocolatey": [ - "ant" - ], - "Homebrew": [ - "ant" - ], - "Env": [ - "ANT_HOME" - ], - "PathLinux": [ - "/usr/share/ant" - ] - }, - { - "Name": "ApacheHTTPD", - "Description": "Apache HTTPD", - "Postpone": 0, - "APT": [ - "^apache2-.*", - "apache2" - ], - "Chocolatey": [ - "apache-httpd" - ], - "Homebrew": [ - "httpd" - ], - "PathLinux": [ - "/usr/lib/apache2", - "/usr/share/apache2" - ], - "PathMacOS": [ - "/usr/local/etc/httpd" - ], - "PathWindows": [ - "C:\\tools\\Apache*" - ] - }, - { - "Name": "AWS", - "Description": "AWS (Amazon Web Service)", - "Postpone": 0, - "Chocolatey": [ - "awscli" - ], - "Homebrew": [ - "aws-sam-cli", - "session-manager-plugin" - ], - "PowerShellGet": [ - "AWSPowershell" - ], - "WMIC": [ - "AWS SAM Command Line Interface" - ], - "PathLinux": [ - "/usr/local/aws-cli", - "/usr/local/aws-sam-cli", - "/usr/local/bin/aws" - ] - }, - { - "Name": "AzCopy", - "Description": "AzCopy", - "Postpone": 0, - "Chocolatey": [ - "azcopy10" - ], - "Homebrew": [ - "azcopy" - ], - "PathLinux": [ - "/usr/local/bin/azcopy", - "/usr/local/bin/azcopy10" - ], - "PathMacOS": [ - "/Users/runner/.azcopy", - "/usr/local/bin/azcopy" - ] - }, - { - "Name": "Azure", - "Description": "Azure", - "Postpone": 1, - "APT": [ - "azure-cli" - ], - "Homebrew": [ - "azure-cli" - ], - "WMIC": [ - "Azure Cosmos DB Emulator", - "Microsoft Azure*" - ], - "Env": [ - "AZURE_EXTENSION_DIR" - ], - "PathLinux": [ - "/opt/az", - "/usr/lib/linux-azure-tools-*", - "/usr/lib/modules/*-azure", - "/usr/share/az_*" - ], - "PathMacOS": [ - "/Users/runner/.Azure" - ] - }, - { - "Name": "Bazel", - "Description": "Bazel", - "Postpone": 0, - "Chocolatey": [ - "bazel" - ], - "Homebrew": [ - "bazel", - "bazelisk" - ], - "NPM": [ - "@bazel/bazelisk" - ], - "PathLinux": [ - "/usr/local/bin/bazel", - "/usr/local/lib/node_modules/@bazel" - ] - }, - { - "Name": "Bicep", - "Description": "Azure Bicep", - "Postpone": 0, - "Chocolatey": [ - "bicep" - ], - "Homebrew": [ - "bicep" - ], - "PathLinux": [ - "/usr/local/bin/bicep" - ], - "PathMacOS": [ - "/Users/runner/.net/bicep" - ] - }, - { - "Name": "Chromium", - "Description": "Chromium", - "Postpone": 0, - "Homebrew": [ - "chromium" - ], - "Env": [ - "CHROMIUM_DIR" - ], - "PathLinux": [ - "/usr/bin/chromium-browser", - "/usr/bin/chromium", - "/usr/local/share/chromium" - ] - }, - { - "Name": "Clang", - "Description": "Clang", - "Postpone": 0, - "APT": [ - "^clang-.*", - "^clang-format-.*", - "^clang-tidy-.*", - "^lld-.*", - "^lldb-.*" - ], - "PathLinux": [ - "/usr/bin/clang*", - "/usr/bin/lld-*", - "/usr/bin/lldb-*", - "/usr/lib/clang", - "/usr/share/clang" - ] - }, - { - "Name": "CloudFoundry", - "Description": "Cloud Foundry", - "Postpone": 0, - "PathWindows": [ - "C:\\cf-cli" - ] - }, - { - "Name": "CodeQL", - "Description": "CodeQL", - "Postpone": 0, - "Homebrew": [ - "codeql" - ], - "PathLinux": [ - "$Env:AGENT_TOOLSDIRECTORY/CodeQL", - "/opt/hostedtoolcache/CodeQL" - ], - "PathMacOS": [ - "$Env:AGENT_TOOLSDIRECTORY/CodeQL", - "/Users/runner/hostedtoolcache/CodeQL" - ], - "PathWindows": [ - "$Env:AGENT_TOOLSDIRECTORY\\CodeQL" - ] - }, - { - "Name": "DotNet", - "Description": ".Net", - "Postpone": 0, - "APT": [ - "^aspnetcore-.*", - "^dotnet-.*" - ], - "Homebrew": [ - "dotnet" - ], - "WMIC": [ - "Microsoft .NET*", - "Microsoft ASP.NET*" - ], - "PathLinux": [ - "/usr/bin/dotnet", - "/usr/share/dotnet" - ], - "PathMacOS": [ - "$Env:HOME/.dotnet", - "/Users/runner/.dotnet", - "/usr/local/bin/dotnet" - ], - "PathWindows": [ - "C:\\Program Files\\dotnet", - "C:\\Program Files (x86)\\dotnet", - "C:\\Users\\Default\\.dotnet" - ] - }, - { - "Name": "EpicGames", - "Description": "Epic Games", - "Postpone": 0, - "WMIC": [ - "Epic Games Launcher", - "Epic Online Services" - ], - "PathWindows": [ - "C:\\Program Files (x86)\\Epic Games" - ] - }, - { - "Name": "Erlang", - "Description": "Erlang", - "Postpone": 0, - "APT": [ - "esl-erlang" - ], - "Homebrew": [ - "erlang", - "rebar3" - ], - "PathLinux": [ - "/usr/local/bin/rebar3" - ] - }, - { - "Name": "Firefox", - "Description": "Mozilla Firefox Browser", - "Postpone": 0, - "APT": [ - "firefox" - ], - "Homebrew": [ - "firefox" - ], - "WMIC": [ - "Mozilla Firefox*" - ], - "PathLinux": [ - "/usr/lib/firefox-addons", - "/usr/lib/firefox" - ], - "PathMacOS": [ - "/Applications/Firefox.app" - ] - }, - { - "Name": "G++", - "Description": "GNU C++ compiler", - "Postpone": 0, - "APT": [ - "^g\\+\\+.*" - ], - "PathLinux": [ - "/usr/bin/g++*", - "/usr/bin/x86_64-linux-gnu-g++*" - ] - }, - { - "Name": "GCC", - "Description": "GNU C compiler", - "Postpone": 0, - "APT": [ - "^gcc-.*", - "gcc" - ], - "Homebrew": [ - "gcc" - ], - "PathLinux": [ - "/usr/bin/gcc*", - "/usr/bin/x86_64-linux-gnu-gcc*", - "/usr/lib/gcc", - "/usr/share/gcc" - ] - }, - { - "Name": "GeckoWebDriver", - "Description": "Gecko Web Driver", - "Postpone": 0, - "Homebrew": [ - "geckodriver" - ], - "Env": [ - "GECKOWEBDRIVER" - ], - "PathLinux": [ - "/usr/local/share/gecko_driver" - ], - "PathMacOS": [ - "/usr/local/opt/geckodriver" - ], - "PathWindows": [ - "C:\\SeleniumWebDrivers\\GeckoDriver" - ] - }, - { - "Name": "GFortran", - "Description": "GNU Fortran", - "Postpone": 0, - "APT": [ - "^gfortran-.*", - "gfortran" - ], - "PathLinux": [ - "/usr/bin/gfortran*", - "/usr/bin/x86_64-linux-gnu-gfortran*" - ] - }, - { - "Name": "Go", - "Description": "Go", - "Postpone": 0, - "Homebrew": [ - "go" - ], - "PathLinux": [ - "$Env:AGENT_TOOLSDIRECTORY/go", - "/opt/hostedtoolcache/go" - ], - "PathMacOS": [ - "$Env:AGENT_TOOLSDIRECTORY/go", - "/Users/runner/hostedtoolcache/go" - ], - "PathWindows": [ - "$Env:AGENT_TOOLSDIRECTORY\\go" - ] - }, - { - "Name": "GoogleChrome", - "Description": "Google Chrome Browser", - "Postpone": 0, - "APT": [ - "google-chrome-stable" - ], - "Homebrew": [ - "google-chrome" - ], - "WMIC": [ - "Google Chrome" - ], - "Env": [ - "CHROME_BIN" - ], - "PathLinux": [ - "/opt/google/chrome", - "/usr/bin/google-chrome-stable", - "/usr/bin/google-chrome" - ], - "PathMacOS": [ - "/Applications/Google Chrome.app" - ] - }, - { - "Name": "GoogleChromeWebDriver", - "Description": "Google Chrome Web Driver", - "Postpone": 0, - "Homebrew": [ - "chromedriver" - ], - "Env": [ - "CHROMEWEBDRIVER", - "CHROMEDRIVER_DIR" - ], - "PathLinux": [ - "/usr/bin/chromedriver", - "/usr/local/share/chromedriver-linux64", - "/usr/local/share/chrome_driver" - ], - "PathMacOS": [ - "/usr/local/Caskroom/chromedriver" - ], - "PathWindows": [ - "C:\\SeleniumWebDrivers\\ChromeDriver" - ] - }, - { - "Name": "GoogleCloudSDK", - "Description": "Google Cloud SDK", - "Postpone": 0, - "APT": [ - "google-cloud-sdk" - ], - "Homebrew": [ - "google-cloud-sdk" - ], - "PathLinux": [ - "/usr/bin/gcloud*", - "/usr/lib/google-cloud-sdk", - "/usr/share/google-cloud-sdk" - ] - }, - { - "Name": "Gradle", - "Description": "Gradle", - "Postpone": 0, - "Chocolatey": [ - "gradle" - ], - "Homebrew": [ - "gradle" - ], - "PathLinux": [ - "/usr/bin/gradle", - "/usr/share/gradle-*" - ] - }, - { - "Name": "Grunt", - "Description": "Grunt", - "Postpone": 0, - "Homebrew": [ - "grunt-cli" - ], - "NPM": [ - "grunt-cli", - "grunt" - ], - "PathLinux": [ - "/usr/local/lib/node_modules/grunt-cli", - "/usr/local/lib/node_modules/grunt" - ] - }, - { - "Name": "Gulp", - "Description": "Gulp", - "Postpone": 0, - "Homebrew": [ - "gulp-cli" - ], - "NPM": [ - "gulp-cli", - "gulp" - ], - "PathLinux": [ - "/usr/local/lib/node_modules/gulp-cli", - "/usr/local/lib/node_modules/gulp" - ] - }, - { - "Name": "HaskellGHC", - "Description": "Haskell GHC", - "Postpone": 0, - "PathLinux": [ - "/opt/ghc", - "/usr/local/.ghcup/ghc" - ], - "PathMacOS": [ - "/Users/runner/.ghcup" - ] - }, - { - "Name": "Heroku", - "Description": "Heroku", - "Postpone": 0, - "PathLinux": [ - "/usr/local/lib/heroku" - ], - "PathMacOS": [ - "/usr/local/lib/heroku" - ] - }, - { - "Name": "HHVM", - "Description": "HipHop Virtual Machine", - "Postpone": 0, - "APT": [ - "hhvm" - ] - }, - { - "Name": "IIS", - "Description": "IIS", - "Postpone": 0, - "PathWindows": [ - "C:\\Program Files (x86)\\IIS Express", - "C:\\Program Files (x86)\\IIS" - ] - }, - { - "Name": "ImageMagick", - "Description": "ImageMagick", - "Postpone": 0, - "APT": [ - "imagemagick", - "^imagemagick-.*" - ] - }, - { - "Name": "InnoSetup", - "Description": "Inno Setup", - "Postpone": 0, - "PathWindows": [ - "C:\\Program Files (x86)\\Inno Setup*" - ] - }, - { - "Name": "Java/8", - "Description": "Java 8", - "Postpone": 0, - "APT": [ - "temurin-8-jdk" - ], - "Env": [ - "JAVA_HOME_8_X64" - ], - "PathLinux": [ - "$Env:AGENT_TOOLSDIRECTORY/Java_*_jdk/8.*", - "/opt/hostedtoolcache/Java_*_jdk/8.*", - "/usr/lib/jvm/*-8-jdk-*" - ], - "PathMacOS": [ - "$Env:AGENT_TOOLSDIRECTORY/Java_*_jdk/8.*", - "/Users/runner/hostedtoolcache/Java_*_jdk/8.*" - ], - "PathWindows": [ - "$Env:AGENT_TOOLSDIRECTORY\\Java_*_jdk\\8.*" - ] - }, - { - "Name": "Java/11", - "Description": "Java 11", - "Postpone": 0, - "APT": [ - "temurin-11-jdk" - ], - "WMIC": [ - "Microsoft Build of OpenJDK with Hotspot 11*" - ], - "Env": [ - "JAVA_HOME_11_X64" - ], - "PathLinux": [ - "$Env:AGENT_TOOLSDIRECTORY/Java_*_jdk/11.*", - "/opt/hostedtoolcache/Java_*_jdk/11.*", - "/usr/lib/jvm/*-11-jdk-*" - ], - "PathMacOS": [ - "$Env:AGENT_TOOLSDIRECTORY/Java_*_jdk/11.*", - "/Users/runner/hostedtoolcache/Java_*_jdk/11.*" - ], - "PathWindows": [ - "$Env:AGENT_TOOLSDIRECTORY\\Java_*_jdk\\11.*" - ] - }, - { - "Name": "Java/13", - "Description": "Java 13", - "Postpone": 0, - "Env": [ - "JAVA_HOME_13_X64" - ], - "PathLinux": [ - "$Env:AGENT_TOOLSDIRECTORY/Java_*_jdk/13.*", - "/opt/hostedtoolcache/Java_*_jdk/13.*", - "/usr/lib/jvm/*-13-jdk-*" - ], - "PathMacOS": [ - "$Env:AGENT_TOOLSDIRECTORY/Java_*_jdk/13.*", - "/Users/runner/hostedtoolcache/Java_*_jdk/13.*" - ], - "PathWindows": [ - "$Env:AGENT_TOOLSDIRECTORY\\Java_*_jdk\\13.*" - ] - }, - { - "Name": "Java/17", - "Description": "Java 17", - "Postpone": 0, - "APT": [ - "temurin-17-jdk" - ], - "Env": [ - "JAVA_HOME_17_X64" - ], - "PathLinux": [ - "$Env:AGENT_TOOLSDIRECTORY/Java_*_jdk/17.*", - "/opt/hostedtoolcache/Java_*_jdk/17.*", - "/usr/lib/jvm/*-17-jdk-*" - ], - "PathMacOS": [ - "$Env:AGENT_TOOLSDIRECTORY/Java_*_jdk/17.*", - "/Users/runner/hostedtoolcache/Java_*_jdk/17.*" - ], - "PathWindows": [ - "$Env:AGENT_TOOLSDIRECTORY\\Java_*_jdk\\17.*" - ] - }, - { - "Name": "Java/21", - "Description": "Java 21", - "Postpone": 0, - "APT": [ - "temurin-21-jdk" - ], - "Env": [ - "JAVA_HOME_21_X64" - ], - "PathLinux": [ - "$Env:AGENT_TOOLSDIRECTORY/Java_*_jdk/21.*", - "/opt/hostedtoolcache/Java_*_jdk/21.*", - "/usr/lib/jvm/*-21-jdk-*" - ], - "PathMacOS": [ - "$Env:AGENT_TOOLSDIRECTORY/Java_*_jdk/21.*", - "/Users/runner/hostedtoolcache/Java_*_jdk/21.*" - ], - "PathWindows": [ - "$Env:AGENT_TOOLSDIRECTORY\\Java_*_jdk\\21.*" - ] - }, - { - "Name": "Java/All", - "Description": "Java (All)", - "Postpone": 1, - "APT": [ - "^java-.*", - ".*-jdk$" - ], - "Env": [ - "JAVA_HOME" - ], - "PathLinux": [ - "$Env:AGENT_TOOLSDIRECTORY/Java_*_jdk", - "/opt/hostedtoolcache/Java_*_jdk", - "/usr/lib/jvm" - ], - "PathMacOS": [ - "$Env:AGENT_TOOLSDIRECTORY/Java_*_jdk", - "/Users/runner/hostedtoolcache/Java_*_jdk" - ], - "PathWindows": [ - "$Env:AGENT_TOOLSDIRECTORY\\Java_*_jdk" - ] - }, - { - "Name": "Julia", - "Description": "Julia", - "Postpone": 0, - "Chocolatey": [ - "julia" - ], - "Homebrew": [ - "julia" - ], - "PathLinux": [ - "/usr/local/julia*", - "/usr/bin/julia" - ], - "PathMacOS": [ - "/Applications/Julia*.app" - ], - "PathWindows": [ - "C:\\Julia" - ] - }, - { - "Name": "Kotlin", - "Description": "Kotlin", - "Postpone": 0, - "Homebrew": [ - "kotlin" - ], - "PathLinux": [ - "/usr/share/kotlinc" - ] - }, - { - "Name": "Leiningen", - "Description": "Leiningen", - "Postpone": 0, - "Env": [ - "LEIN_HOME" - ], - "PathLinux": [ - "/usr/local/bin/lein" - ] - }, - { - "Name": "Lerna", - "Description": "Lerna", - "Postpone": 0, - "Homebrew": [ - "lerna" - ], - "NPM": [ - "lerna" - ], - "PathLinux": [ - "/usr/local/lib/node_modules/lerna" - ] - }, - { - "Name": "Lintian", - "Description": "Lintian", - "Postpone": 8, - "PathLinux": [ - "/usr/share/linda", - "/usr/share/lintian" - ] - }, - { - "Name": "LLVM", - "Description": "LLVM", - "Postpone": 0, - "APT": [ - "^llvm-.*" - ], - "Chocolatey": [ - "llvm" - ], - "Homebrew": [ - "llvm" - ], - "PathLinux": [ - "/usr/bin/llvm-*", - "/usr/lib/llvm-*" - ] - }, - { - "Name": "Maven", - "Description": "Maven", - "Postpone": 0, - "Chocolatey": [ - "maven" - ], - "Homebrew": [ - "maven" - ], - "PathLinux": [ - "/usr/bin/mvn", - "/usr/share/apache-maven-*" - ] - }, - { - "Name": "MicrosoftEdge", - "Description": "Microsoft Edge", - "Postpone": 0, - "APT": [ - "microsoft-edge-stable" - ], - "Homebrew": [ - "microsoft-edge" - ], - "WMIC": [ - "Microsoft Edge" - ], - "PathLinux": [ - "/opt/microsoft/msedge", - "/usr/bin/microsoft-edge-stable", - "/usr/bin/microsoft-edge" - ], - "PathMacOS": [ - "/Applications/Microsoft Edge.app" - ] - }, - { - "Name": "MicrosoftEdgeWebDriver", - "Description": "Microsoft Edge Web Driver", - "Postpone": 0, - "WMIC": [ - "Microsoft Edge WebView2 Runtime" - ], - "Env": [ - "EDGEWEBDRIVER" - ], - "PathLinux": [ - "/usr/bin/edgedriver", - "/usr/bin/msedgedriver", - "/usr/local/share/edge_driver" - ], - "PathMacOS": [ - "/usr/local/bin/msedgedriver", - "/usr/local/share/edge_driver" - ], - "PathWindows": [ - "C:\\SeleniumWebDrivers\\EdgeDriver" - ] - }, - { - "Name": "MicrosoftInternetExplorer", - "Description": "Microsoft Internet Explorer", - "Postpone": 0, - "PathWindows": [ - "C:\\Program Files (x86)\\Internet Explorer" - ] - }, - { - "Name": "MicrosoftInternetExplorerWebDriver", - "Description": "Microsoft Internet Explorer Web Driver", - "Postpone": 0, - "Env": [ - "IEWEBDRIVER" - ], - "PathWindows": [ - "C:\\SeleniumWebDrivers\\IEDriver" - ] - }, - { - "Name": "Miniconda", - "Description": "Mini Conda", - "Postpone": 0, - "Homebrew": [ - "miniconda" - ], - "WMIC": [ - "Miniconda*" - ], - "Env": [ - "CONDA" - ], - "PathLinux": [ - "/usr/bin/conda", - "/usr/share/miniconda" - ], - "PathMacOS": [ - "/usr/local/bin/conda", - "/usr/local/miniconda", - "$Env:HOME/.conda" - ], - "PathWindows": [ - "C:\\Miniconda" - ] - }, - { - "Name": "MongoDB", - "Description": "MongoDB", - "Postpone": 0, - "APT": [ - "^mongodb-.*" - ], - "Chocolatey": [ - "mongodb.install", - "mongodb" - ] - }, - { - "Name": "Mono", - "Description": "Mono", - "Postpone": 0, - "APT": [ - "^mono-.*", - "^monodoc-.*" - ], - "Homebrew": [ - "mono" - ], - "PathLinux": [ - "/usr/bin/mono-*", - "/usr/bin/mono", - "/usr/lib/mono-source-libs", - "/usr/lib/mono", - "/usr/lib/monodoc", - "/usr/share/mono-*", - "/usr/share/mono", - "/usr/share/monodoc" - ] - }, - { - "Name": "MSSQL", - "Description": "MS SQL", - "Postpone": 0, - "APT": [ - "mssql-tools", - "unixodbc-dev" - ], - "PowerShellGet": [ - "SqlServer" - ], - "PathLinux": [ - "/opt/mssql-tools" - ], - "PathWindows": [ - "$Env:PROGRAMFILES\\Microsoft SQL Server", - "C:\\Program Files\\Microsoft SQL Server" - ] - }, - { - "Name": "MySQL", - "Description": "MySQL", - "Postpone": 0, - "APT": [ - "^mysql-.*", - "libmysqlclient-dev" - ], - "Homebrew": [ - "mysql-client", - "mysql" - ], - "PathLinux": [ - "/usr/bin/mysql*", - "/usr/lib/mysql", - "/usr/share/mysql-*", - "/usr/share/mysql" - ] - }, - { - "Name": "Netlify", - "Description": "Netlify", - "Postpone": 0, - "Homebrew": [ - "netlify-cli" - ], - "NPM": [ - "netlify-cli", - "netlify" - ], - "PathLinux": [ - "/usr/local/lib/node_modules/netlify", - "/usr/local/lib/node_modules/netlify-cli" - ] - }, - { - "Name": "Newman", - "Description": "Newman", - "Postpone": 0, - "NPM": [ - "newman" - ], - "PathLinux": [ - "/usr/local/lib/node_modules/newman" - ] - }, - { - "Name": "Nginx", - "Description": "Nginx", - "Postpone": 0, - "APT": [ - "nginx" - ], - "Homebrew": [ - "nginx" - ], - "PathMacOS": [ - "/usr/local/etc/nginx" - ], - "PathWindows": [ - "C:\\tools\\nginx*" - ] - }, - { - "Name": "NVMBuild", - "Description": "NVM (NodeJS Version Manager) Build", - "Postpone": 0, - "PathLinux": [ - "/home/runner/.nvm/.dockerignore", - "/home/runner/.nvm/.editorconfig", - "/home/runner/.nvm/.git", - "/home/runner/.nvm/.github", - "/home/runner/.nvm/.gitignore", - "/home/runner/.nvm/.mailmap", - "/home/runner/.nvm/.npmrc", - "/home/runner/.nvm/.travis.yml", - "/home/runner/.nvm/CODE_OF_CONDUCT.md", - "/home/runner/.nvm/CONTRIBUTING.md", - "/home/runner/.nvm/Dockerfile", - "/home/runner/.nvm/GOVERNANCE.md", - "/home/runner/.nvm/ROADMAP.md", - "/home/runner/.nvm/test" - ], - "PathMacOS": [ - "/Users/runner/.nvm/.dockerignore", - "/Users/runner/.nvm/.editorconfig", - "/Users/runner/.nvm/.git", - "/Users/runner/.nvm/.github", - "/Users/runner/.nvm/.gitignore", - "/Users/runner/.nvm/.mailmap", - "/Users/runner/.nvm/.npmrc", - "/Users/runner/.nvm/.travis.yml", - "/Users/runner/.nvm/CODE_OF_CONDUCT.md", - "/Users/runner/.nvm/CONTRIBUTING.md", - "/Users/runner/.nvm/Dockerfile", - "/Users/runner/.nvm/GOVERNANCE.md", - "/Users/runner/.nvm/ROADMAP.md", - "/Users/runner/.nvm/test" - ] - }, - { - "Name": "OpenGLDRI", - "Description": "OpenGL API DRI Modules", - "Postpone": 0, - "APT": [ - "libgl1-mesa-dri" - ] - }, - { - "Name": "OpenShiftClient", - "Description": "OpenShift Client", - "Postpone": 0, - "PathLinux": [ - "/usr/local/bin/oc" - ] - }, - { - "Name": "Packer", - "Description": "Packer", - "Postpone": 0, - "PathLinux": [ - "/usr/local/bin/packer" - ] - }, - { - "Name": "Parcel", - "Description": "Parcel", - "Postpone": 0, - "NPM": [ - "parcel" - ], - "PathLinux": [ - "/usr/local/lib/node_modules/parcel" - ] - }, - { - "Name": "Perl", - "Description": "Perl", - "Postpone": 0, - "APT": [ - "^perl.*" - ], - "PathLinux": [ - "/usr/bin/perl*", - "/usr/share/perl*" - ] - }, - { - "Name": "Pester", - "Description": "Pester", - "Postpone": 0, - "PowerShellGet": [ - "Pester" - ] - }, - { - "Name": "PhantomJS", - "Description": "Phantom JS", - "Postpone": 0, - "APT": [ - "phantomjs" - ], - "PathLinux": [ - "/usr/local/bin/phantomjs", - "/usr/local/share/phantomjs*" - ] - }, - { - "Name": "PHP", - "Description": "PHP", - "Postpone": 0, - "APT": [ - "^php.*", - "snmp" - ], - "Chocolatey": [ - "php" - ], - "PathLinux": [ - "/usr/bin/php*", - "/usr/local/bin/phpunit", - "/usr/lib/php", - "/usr/share/php*" - ], - "PathWindows": [ - "C:\\tools\\php" - ] - }, - { - "Name": "Pipx", - "Description": "Pipx", - "Postpone": 9, - "Env": [ - "PIPX_BIN_DIR", - "PIPX_HOME" - ], - "PathLinux": [ - "/opt/pipx_bin", - "/opt/pipx", - "/usr/local/bin/pipx" - ], - "PathMacOS": [ - "/opt/pipx_bin" - ], - "PathWindows": [ - "C:\\Program Files (x86)\\pipx_bin", - "C:\\Program Files (x86)\\pipx" - ] - }, - { - "Name": "PostgreSQL", - "Description": "PostgreSQL", - "Postpone": 0, - "APT": [ - "^postgresql-.*", - "libpq-dev" - ], - "WMIC": [ - "PostgreSQL*" - ], - "Env": [ - "PGBIN", - "PGDATA", - "PGROOT" - ], - "PathLinux": [ - "/usr/lib/postgresql", - "/usr/share/postgresql-*", - "/usr/share/postgresql" - ], - "PathWindows": [ - "C:\\Program Files\\PostgreSQL" - ] - }, - { - "Name": "Pulumi", - "Description": "Pulumi", - "Postpone": 0, - "Chocolatey": [ - "pulumi" - ], - "PathLinux": [ - "/usr/local/bin/pulumi*" - ] - }, - { - "Name": "PSScriptAnalyzer", - "Description": "PowerShell Script Analyzer", - "Postpone": 0, - "PowerShellGet": [ - "PSScriptAnalyzer" - ] - }, - { - "Name": "PSWindowsUpdate", - "Description": "PowerShell Windows Update", - "Postpone": 0, - "PowerShellGet": [ - "PSWindowsUpdate" - ] - }, - { - "Name": "R", - "Description": "R", - "Postpone": 0, - "APT": [ - "r-base", - "^r-base-.*" - ], - "PathLinux": [ - "/usr/bin/R", - "/usr/lib/R", - "/usr/local/lib/R", - "/usr/share/R" - ], - "PathWindows": [ - "C:\\Program Files\\R" - ] - }, - { - "Name": "Ruby", - "Description": "Ruby", - "Postpone": 0, - "APT": [ - "ruby", - "ruby3.0", - "^ruby-.*", - "^ruby3.0-.*" - ], - "PathLinux": [ - "$Env:AGENT_TOOLSDIRECTORY/Ruby", - "/opt/hostedtoolcache/Ruby", - "/usr/bin/ruby*", - "/usr/lib/ruby" - ], - "PathMacOS": [ - "$Env:AGENT_TOOLSDIRECTORY/Ruby", - "/Users/runner/hostedtoolcache/Ruby" - ], - "PathWindows": [ - "$Env:AGENT_TOOLSDIRECTORY\\Ruby" - ] - }, - { - "Name": "Rust", - "Description": "Rust", - "Postpone": 0, - "Homebrew": [ - "rustup-init" - ], - "Env": [ - "CARGO_HOME", - "RUSTUP_HOME" - ] - }, - { - "Name": "Selenium", - "Description": "Selenium", - "Postpone": 0, - "Env": [ - "SELENIUM_JAR_PATH" - ], - "PathLinux": [ - "/usr/share/java/selenium-server.jar" - ], - "PathWindows": [ - "C:\\selenium\\selenium-server.jar" - ] - }, - { - "Name": "Sphinx", - "Description": "Sphinx", - "Postpone": 0, - "APT": [ - "sphinxsearch" - ] - }, - { - "Name": "SQLPackage", - "Description": "SQL Package", - "Postpone": 0, - "PathLinux": [ - "/usr/local/bin/sqlpackage", - "/usr/local/sqlpackage" - ] - }, - { - "Name": "Stack", - "Description": "Stack", - "Postpone": 0, - "PathLinux": [ - "$Env:AGENT_TOOLSDIRECTORY/stack", - "/opt/hostedtoolcache/stack" - ], - "PathMacOS": [ - "$Env:AGENT_TOOLSDIRECTORY/stack" - ], - "PathWindows": [ - "$Env:AGENT_TOOLSDIRECTORY\\stack" - ] - }, - { - "Name": "Swift", - "Description": "Swift", - "Postpone": 0, - "Homebrew": [ - "swiftformat" - ], - "Env": [ - "SWIFT_PATH" - ], - "PathLinux": [ - "/usr/local/bin/swift", - "/usr/local/bin/swiftc", - "/usr/share/swift", - "/usr/share/swiftc" - ] - }, - { - "Name": "Terraform", - "Description": "Terraform", - "Postpone": 0, - "PathLinux": [ - "/usr/local/bin/terraform" - ] - }, - { - "Name": "TypeScript", - "Description": "TypeScript", - "Postpone": 0, - "NPM": [ - "typescript" - ], - "PathLinux": [ - "/usr/local/lib/node_modules/typescript" - ] - }, - { - "Name": "VCPkg", - "Description": "VCPkg", - "Postpone": 9, - "Env": [ - "VCPKG_INSTALLATION_ROOT" - ], - "PathLinux": [ - "/usr/local/share/vcpkg", - "/root/.vcpkg" - ], - "PathMacOS": [ - "/Users/runner/.vcpkg", - "/usr/local/bin/vcpkg", - "/usr/local/share/vcpkg" - ], - "PathWindows": [ - "C:\\vcpkg" - ] - }, - { - "Name": "Vercel", - "Description": "Vercel", - "Postpone": 0, - "NPM": [ - "vercel" - ], - "PathLinux": [ - "/usr/local/lib/node_modules/vercel" - ] - }, - { - "Name": "VisualStudio/2019", - "Description": "Visual Studio 2019", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Visual Studio 2019.app" - ], - "PathWindows": [ - "C:\\Program Files\\Microsoft Visual Studio\\2019" - ] - }, - { - "Name": "VisualStudio/2022", - "Description": "Visual Studio 2022", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Visual Studio 2022.app" - ], - "PathWindows": [ - "C:\\Program Files\\Microsoft Visual Studio\\2022" - ] - }, - { - "Name": "VisualStudio/All", - "Description": "Visual Studio", - "Postpone": 1, - "PathMacOS": [ - "/Applications/Visual Studio*.app" - ], - "PathWindows": [ - "C:\\Program Files\\Microsoft Visual Studio", - "C:\\ProgramData\\Microsoft\\VisualStudio" - ] - }, - { - "Name": "Webpack", - "Description": "Webpack", - "Postpone": 0, - "NPM": [ - "webpack-cli", - "webpack" - ], - "PathLinux": [ - "/usr/local/lib/node_modules/webpack-cli", - "/usr/local/lib/node_modules/webpack" - ] - }, - { - "Name": "Xcode/8", - "Description": "Xcode 8", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_8.app", - "/Applications/Xcode8.app" - ] - }, - { - "Name": "Xcode/8.1", - "Description": "Xcode 8.1", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_8.1.app", - "/Applications/Xcode81.app" - ] - }, - { - "Name": "Xcode/9", - "Description": "Xcode 9", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_9.app", - "/Applications/Xcode9.app" - ] - }, - { - "Name": "Xcode/9.1", - "Description": "Xcode 9.1", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_9.1.app", - "/Applications/Xcode91.app" - ] - }, - { - "Name": "Xcode/9.2", - "Description": "Xcode 9.2", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_9.2.app", - "/Applications/Xcode92.app" - ] - }, - { - "Name": "Xcode/9.3", - "Description": "Xcode 9.3", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_9.3_beta.app", - "/Applications/Xcode_9.3.app", - "/Applications/Xcode93.app" - ] - }, - { - "Name": "Xcode/9.4", - "Description": "Xcode 9.4", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_9.4_beta_2.app", - "/Applications/Xcode_9.4_beta.app", - "/Applications/Xcode_9.4-beta.app", - "/Applications/Xcode_9.4.app" - ] - }, - { - "Name": "Xcode/11.7", - "Description": "Xcode 11.7", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_11.7.app" - ] - }, - { - "Name": "Xcode/12.4", - "Description": "Xcode 12.4", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_12.4.app" - ] - }, - { - "Name": "Xcode/12.5.1", - "Description": "Xcode 12.5.1", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_12.5.1.app" - ] - }, - { - "Name": "Xcode/13.0", - "Description": "Xcode 13.0", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_13.0.app" - ] - }, - { - "Name": "Xcode/13.1", - "Description": "Xcode 13.1", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_13.1.app" - ] - }, - { - "Name": "Xcode/13.2.1", - "Description": "Xcode 13.2.1", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_13.2.1.app" - ] - }, - { - "Name": "Xcode/13.3.1", - "Description": "Xcode 13.3.1", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_13.3.1.app" - ] - }, - { - "Name": "Xcode/13.4.1", - "Description": "Xcode 13.4.1", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_13.4.1.app" - ] - }, - { - "Name": "Xcode/14.0.1", - "Description": "Xcode 14.0.1", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_14.0.1.app" - ] - }, - { - "Name": "Xcode/14.1", - "Description": "Xcode 14.1", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_14.1.app" - ] - }, - { - "Name": "Xcode/14.2", - "Description": "Xcode 14.2", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_14.2.app" - ] - }, - { - "Name": "Xcode/14.3", - "Description": "Xcode 14.3", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_14.3.app" - ] - }, - { - "Name": "Xcode/14.3.1", - "Description": "Xcode 14.3.1", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_14.3.1.app" - ] - }, - { - "Name": "Xcode/15.0", - "Description": "Xcode 15.0", - "Postpone": 0, - "PathMacOS": [ - "/Applications/Xcode_15.0.app" - ] - }, - { - "Name": "Xcode/All", - "Description": "Xcode (All)", - "Postpone": 1, - "PathMacOS": [ - "/Applications/Xcode*.app" - ] - }, - { - "Name": "YAMLLint", - "Description": "YAML Lint", - "Postpone": 0, - "Pipx": [ - "yamllint" - ], - "PathLinux": [ - "/opt/pipx_bin/yamllint" - ] - }, - { - "Name": "Yarn", - "Description": "Yarn", - "Postpone": 0, - "NPM": [ - "yarn" - ], - "PathLinux": [ - "/usr/local/lib/node_modules/yarn" - ], - "PathMacOS": [ - "/Users/runner/.yarn" - ] - } - ] -} diff --git a/list.schema.json b/list.schema.json index 6a3d808..6c287ef 100644 --- a/list.schema.json +++ b/list.schema.json @@ -1,154 +1,146 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "Disk Space Optimizer (GitHub Action) List Schema Version 2.1", - "type": "object", - "properties": { - "Collection": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Name": { - "type": "string", - "description": "Name.", - "minLength": 1, - "pattern": "^[\\dA-Za-z/+._-]+$" - }, - "Description": { - "type": "string", - "description": "Description.", - "minLength": 1 - }, - "Postpone": { - "type": "integer", - "description": "Level of defer.", - "maximum": 9, - "minimum": 0 - }, - "APT": { - "type": "array", - "description": "Names in the APT registry.", - "items": { - "type": "string", - "minLength": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "Chocolatey": { - "type": "array", - "description": "Names in the Chocolatey registry.", - "items": { - "type": "string", - "minLength": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "Homebrew": { - "type": "array", - "description": "Names in the Homebrew registry.", - "items": { - "type": "string", - "minLength": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "NPM": { - "type": "array", - "description": "Names in the NPM registry.", - "items": { - "type": "string", - "minLength": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "Pipx": { - "type": "array", - "description": "Names in the Pipx registry.", - "items": { - "type": "string", - "minLength": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "PowerShellGet": { - "type": "array", - "description": "Names in the PowerShellGet registry.", - "items": { - "type": "string", - "minLength": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "WMIC": { - "type": "array", - "description": "Names in the WMIC registry.", - "items": { - "type": "string", - "minLength": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "Env": { - "type": "array", - "description": "Paths from environment variables.", - "items": { - "type": "string", - "minLength": 1, - "pattern": "^[\\dA-Z](?:[\\dA-Z_]*[\\dA-Z])?$" - }, - "minItems": 1, - "uniqueItems": true - }, - "PathLinux": { - "type": "array", - "description": "Paths for Linux.", - "items": { - "type": "string", - "minLength": 1, - "pattern": "^(?:\\/|\\$Env:)[^\\\\]+$" - }, - "minItems": 1, - "uniqueItems": true - }, - "PathMacOS": { - "type": "array", - "description": "Paths for MacOS.", - "items": { - "type": "string", - "minLength": 1, - "pattern": "^(?:\\/|\\$Env:)[^\\\\]+$" - }, - "minItems": 1, - "uniqueItems": true - }, - "PathWindows": { - "type": "array", - "description": "Paths for Windows.", - "items": { - "type": "string", - "minLength": 1, - "pattern": "^(?:[A-Z]:\\\\|\\$Env:)[^\\/]+$" - }, - "minItems": 1, - "uniqueItems": true - } + "title": "Disk Space Optimizer (GitHub Action) List Schema Version 3.0", + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name.", + "minLength": 1, + "pattern": "^[\\dA-Za-z/+._-]+$" + }, + "description": { + "type": "string", + "description": "Description.", + "minLength": 1 + }, + "postpone": { + "type": "integer", + "description": "Level of defer.", + "maximum": 9, + "minimum": 0 + }, + "apt": { + "type": "array", + "description": "Names in the APT registry.", + "items": { + "type": "string", + "minLength": 1 }, - "required": [ - "Name", - "Description", - "Postpone" - ] + "minItems": 1, + "uniqueItems": true + }, + "chocolatey": { + "type": "array", + "description": "Names in the Chocolatey registry.", + "items": { + "type": "string", + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "homebrew": { + "type": "array", + "description": "Names in the Homebrew registry.", + "items": { + "type": "string", + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "npm": { + "type": "array", + "description": "Names in the NPM registry.", + "items": { + "type": "string", + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "pipx": { + "type": "array", + "description": "Names in the Pipx registry.", + "items": { + "type": "string", + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "powershellGet": { + "type": "array", + "description": "Names in the PowerShellGet registry.", + "items": { + "type": "string", + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "wmic": { + "type": "array", + "description": "Names in the WMIC registry.", + "items": { + "type": "string", + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "env": { + "type": "array", + "description": "Paths from environment variables.", + "items": { + "type": "string", + "minLength": 1, + "pattern": "^[\\dA-Z](?:[\\dA-Z_]*[\\dA-Z])?$" + }, + "minItems": 1, + "uniqueItems": true + }, + "pathLinux": { + "type": "array", + "description": "Paths for Linux.", + "items": { + "type": "string", + "minLength": 1, + "pattern": "^(?:\\/|%[\\d\\w]+%)[^\\\\]+$" + }, + "minItems": 1, + "uniqueItems": true + }, + "pathMacOS": { + "type": "array", + "description": "Paths for MacOS.", + "items": { + "type": "string", + "minLength": 1, + "pattern": "^(?:\\/|%[\\d\\w]+%)[^\\\\]+$" + }, + "minItems": 1, + "uniqueItems": true + }, + "pathWindows": { + "type": "array", + "description": "Paths for Windows.", + "items": { + "type": "string", + "minLength": 1, + "pattern": "^(?:[A-Z]:\\\\|%[\\d\\w]+%)[^\\/]+$" + }, + "minItems": 1, + "uniqueItems": true } - } - }, - "required": [ - "Collection" - ] + }, + "required": [ + "name", + "description", + "postpone" + ] + } } diff --git a/list.yml b/list.yml new file mode 100644 index 0000000..7895aad --- /dev/null +++ b/list.yml @@ -0,0 +1,1133 @@ +# yaml-language-server: $schema=./list.schema.json +- name: "AliYun" + description: "AliYun (Alibaba Cloud)" + postpone: 0 + homebrew: + - "aliyun-cli" + pathLinux: + - "/usr/local/bin/aliyun" + pathWindows: + - "C:\\aliyun-cli" +- name: "AndroidNDK" + description: "Android NDK" + postpone: 0 + homebrew: + - "android-ndk" + env: + - "ANDROID_HOME" + - "ANDROID_NDK_ROOT" + - "ANDROID_ROOT" + - "ANDROID_SDK_ROOT" + pathLinux: + - "/usr/local/lib/android" + pathMacOS: + - "/Users/runner/.android" + - "/Users/runner/Library/Android" + pathWindows: + - "C:\\Android" + - "C:\\Program Files (x86)\\Android" +- name: "Ansible" + description: "Ansible" + postpone: 0 + homebrew: + - "ansible" + pipx: + - "ansible-core" + pathLinux: + - "/opt/pipx_bin/ansible*" +- name: "ApacheAnt" + description: "Apache Ant" + postpone: 0 + apt: + - "ant-optional" + - "ant" + chocolatey: + - "ant" + homebrew: + - "ant" + env: + - "ANT_HOME" + pathLinux: + - "/usr/share/ant" +- name: "ApacheHTTPD" + description: "Apache HTTPD" + postpone: 0 + apt: + - "^apache2-.*" + - "apache2" + chocolatey: + - "apache-httpd" + homebrew: + - "httpd" + pathLinux: + - "/usr/lib/apache2" + - "/usr/share/apache2" + pathMacOS: + - "/usr/local/etc/httpd" + pathWindows: + - "C:\\tools\\Apache*" +- name: "AWS" + description: "AWS (Amazon Web Service)" + postpone: 0 + chocolatey: + - "awscli" + homebrew: + - "aws-sam-cli" + - "session-manager-plugin" + powershellGet: + - "AWSPowershell" + wmic: + - "AWS SAM Command Line Interface" + pathLinux: + - "/usr/local/aws-cli" + - "/usr/local/aws-sam-cli" + - "/usr/local/bin/aws" +- name: "AzCopy" + description: "AzCopy" + postpone: 0 + chocolatey: + - "azcopy10" + homebrew: + - "azcopy" + pathLinux: + - "/usr/local/bin/azcopy" + - "/usr/local/bin/azcopy10" + pathMacOS: + - "/Users/runner/.azcopy" + - "/usr/local/bin/azcopy" +- name: "Azure" + description: "Azure" + postpone: 1 + apt: + - "azure-cli" + homebrew: + - "azure-cli" + wmic: + - "Azure Cosmos DB Emulator" + - "Microsoft Azure*" + env: + - "AZURE_EXTENSION_DIR" + pathLinux: + - "/opt/az" + - "/usr/lib/linux-azure-tools-*" + - "/usr/lib/modules/*-azure" + - "/usr/share/az_*" + pathMacOS: + - "/Users/runner/.Azure" +- name: "Bazel" + description: "Bazel" + postpone: 0 + chocolatey: + - "bazel" + homebrew: + - "bazel" + - "bazelisk" + npm: + - "'@bazel/bazelisk'" + pathLinux: + - "/usr/local/bin/bazel" + - "/usr/local/lib/node_modules/@bazel" +- name: "Bicep" + description: "Azure Bicep" + postpone: 0 + chocolatey: + - "bicep" + homebrew: + - "bicep" + pathLinux: + - "/usr/local/bin/bicep" + pathMacOS: + - "/Users/runner/.net/bicep" +- name: "Chromium" + description: "Chromium" + postpone: 0 + homebrew: + - "chromium" + env: + - "CHROMIUM_DIR" + pathLinux: + - "/usr/bin/chromium-browser" + - "/usr/bin/chromium" + - "/usr/local/share/chromium" +- name: "Clang" + description: "Clang" + postpone: 0 + apt: + - "^clang-.*" + - "^clang-format-.*" + - "^clang-tidy-.*" + - "^lld-.*" + - "^lldb-.*" + pathLinux: + - "/usr/bin/clang*" + - "/usr/bin/lld-*" + - "/usr/bin/lldb-*" + - "/usr/lib/clang" + - "/usr/share/clang" +- name: "CloudFoundry" + description: "Cloud Foundry" + postpone: 0 + pathWindows: + - "C:\\cf-cli" +- name: "CodeQL" + description: "CodeQL" + postpone: 0 + homebrew: + - "codeql" + pathLinux: + - "%AGENT_TOOLSDIRECTORY%/CodeQL" + - "/opt/hostedtoolcache/CodeQL" + pathMacOS: + - "%AGENT_TOOLSDIRECTORY%/CodeQL" + - "/Users/runner/hostedtoolcache/CodeQL" + pathWindows: + - "%AGENT_TOOLSDIRECTORY%\\CodeQL" +- name: "DotNet" + description: ".Net" + postpone: 0 + apt: + - "^aspnetcore-.*" + - "^dotnet-.*" + homebrew: + - "dotnet" + wmic: + - "Microsoft .NET*" + - "Microsoft ASP.NET*" + pathLinux: + - "/usr/bin/dotnet" + - "/usr/share/dotnet" + pathMacOS: + - "%HOME%/.dotnet" + - "/Users/runner/.dotnet" + - "/usr/local/bin/dotnet" + pathWindows: + - "C:\\Program Files\\dotnet" + - "C:\\Program Files (x86)\\dotnet" + - "C:\\Users\\Default\\.dotnet" +- name: "EpicGames" + description: "Epic Games" + postpone: 0 + wmic: + - "Epic Games Launcher" + - "Epic Online Services" + pathWindows: + - "C:\\Program Files (x86)\\Epic Games" +- name: "Erlang" + description: "Erlang" + postpone: 0 + apt: + - "esl-erlang" + homebrew: + - "erlang" + - "rebar3" + pathLinux: + - "/usr/local/bin/rebar3" +- name: "Firefox" + description: "Mozilla Firefox Browser" + postpone: 0 + apt: + - "firefox" + homebrew: + - "firefox" + wmic: + - "Mozilla Firefox*" + pathLinux: + - "/usr/lib/firefox-addons" + - "/usr/lib/firefox" + pathMacOS: + - "/Applications/Firefox.app" +- name: "G++" + description: "GNU C++ compiler" + postpone: 0 + apt: + - "^g\\+\\+.*" + pathLinux: + - "/usr/bin/g++*" + - "/usr/bin/x86_64-linux-gnu-g++*" +- name: "GCC" + description: "GNU C compiler" + postpone: 0 + apt: + - "^gcc-.*" + - "gcc" + homebrew: + - "gcc" + pathLinux: + - "/usr/bin/gcc*" + - "/usr/bin/x86_64-linux-gnu-gcc*" + - "/usr/lib/gcc" + - "/usr/share/gcc" +- name: "GeckoWebDriver" + description: "Gecko Web Driver" + postpone: 0 + homebrew: + - "geckodriver" + env: + - "GECKOWEBDRIVER" + pathLinux: + - "/usr/local/share/gecko_driver" + pathMacOS: + - "/usr/local/opt/geckodriver" + pathWindows: + - "C:\\SeleniumWebDrivers\\GeckoDriver" +- name: "GFortran" + description: "GNU Fortran" + postpone: 0 + apt: + - "^gfortran-.*" + - "gfortran" + pathLinux: + - "/usr/bin/gfortran*" + - "/usr/bin/x86_64-linux-gnu-gfortran*" +- name: "Go" + description: "Go" + postpone: 0 + homebrew: + - "go" + pathLinux: + - "%AGENT_TOOLSDIRECTORY%/go" + - "/opt/hostedtoolcache/go" + pathMacOS: + - "%AGENT_TOOLSDIRECTORY%/go" + - "/Users/runner/hostedtoolcache/go" + pathWindows: + - "%AGENT_TOOLSDIRECTORY%\\go" +- name: "GoogleChrome" + description: "Google Chrome Browser" + postpone: 0 + apt: + - "google-chrome-stable" + homebrew: + - "google-chrome" + wmic: + - "Google Chrome" + env: + - "CHROME_BIN" + pathLinux: + - "/opt/google/chrome" + - "/usr/bin/google-chrome-stable" + - "/usr/bin/google-chrome" + pathMacOS: + - "/Applications/Google Chrome.app" +- name: "GoogleChromeWebDriver" + description: "Google Chrome Web Driver" + postpone: 0 + homebrew: + - "chromedriver" + env: + - "CHROMEWEBDRIVER" + - "CHROMEDRIVER_DIR" + pathLinux: + - "/usr/bin/chromedriver" + - "/usr/local/share/chromedriver-linux64" + - "/usr/local/share/chrome_driver" + pathMacOS: + - "/usr/local/Caskroom/chromedriver" + pathWindows: + - "C:\\SeleniumWebDrivers\\ChromeDriver" +- name: "GoogleCloudSDK" + description: "Google Cloud SDK" + postpone: 0 + apt: + - "google-cloud-sdk" + homebrew: + - "google-cloud-sdk" + pathLinux: + - "/usr/bin/gcloud*" + - "/usr/lib/google-cloud-sdk" + - "/usr/share/google-cloud-sdk" +- name: "Gradle" + description: "Gradle" + postpone: 0 + chocolatey: + - "gradle" + homebrew: + - "gradle" + pathLinux: + - "/usr/bin/gradle" + - "/usr/share/gradle-*" +- name: "Grunt" + description: "Grunt" + postpone: 0 + homebrew: + - "grunt-cli" + npm: + - "grunt-cli" + - "grunt" + pathLinux: + - "/usr/local/lib/node_modules/grunt-cli" + - "/usr/local/lib/node_modules/grunt" +- name: "Gulp" + description: "Gulp" + postpone: 0 + homebrew: + - "gulp-cli" + npm: + - "gulp-cli" + - "gulp" + pathLinux: + - "/usr/local/lib/node_modules/gulp-cli" + - "/usr/local/lib/node_modules/gulp" +- name: "HaskellGHC" + description: "Haskell GHC" + postpone: 0 + pathLinux: + - "/opt/ghc" + - "/usr/local/.ghcup/ghc" + pathMacOS: + - "/Users/runner/.ghcup" +- name: "Heroku" + description: "Heroku" + postpone: 0 + pathLinux: + - "/usr/local/lib/heroku" + pathMacOS: + - "/usr/local/lib/heroku" +- name: "HHVM" + description: "HipHop Virtual Machine" + postpone: 0 + apt: + - "hhvm" +- name: "IIS" + description: "IIS" + postpone: 0 + pathWindows: + - "C:\\Program Files (x86)\\IIS Express" + - "C:\\Program Files (x86)\\IIS" +- name: "ImageMagick" + description: "ImageMagick" + postpone: 0 + apt: + - "imagemagick" + - "^imagemagick-.*" +- name: "InnoSetup" + description: "Inno Setup" + postpone: 0 + pathWindows: + - "C:\\Program Files (x86)\\Inno Setup*" +- name: "Java/8" + description: "Java 8" + postpone: 0 + apt: + - "temurin-8-jdk" + env: + - "JAVA_HOME_8_X64" + pathLinux: + - "%AGENT_TOOLSDIRECTORY%/Java_*_jdk/8.*" + - "/opt/hostedtoolcache/Java_*_jdk/8.*" + - "/usr/lib/jvm/*-8-jdk-*" + pathMacOS: + - "%AGENT_TOOLSDIRECTORY%/Java_*_jdk/8.*" + - "/Users/runner/hostedtoolcache/Java_*_jdk/8.*" + pathWindows: + - "%AGENT_TOOLSDIRECTORY%\\Java_*_jdk\\8.*" +- name: "Java/11" + description: "Java 11" + postpone: 0 + apt: + - "temurin-11-jdk" + wmic: + - "Microsoft Build of OpenJDK with Hotspot 11*" + env: + - "JAVA_HOME_11_X64" + pathLinux: + - "%AGENT_TOOLSDIRECTORY%/Java_*_jdk/11.*" + - "/opt/hostedtoolcache/Java_*_jdk/11.*" + - "/usr/lib/jvm/*-11-jdk-*" + pathMacOS: + - "%AGENT_TOOLSDIRECTORY%/Java_*_jdk/11.*" + - "/Users/runner/hostedtoolcache/Java_*_jdk/11.*" + pathWindows: + - "%AGENT_TOOLSDIRECTORY%\\Java_*_jdk\\11.*" +- name: "Java/13" + description: "Java 13" + postpone: 0 + env: + - "JAVA_HOME_13_X64" + pathLinux: + - "%AGENT_TOOLSDIRECTORY%/Java_*_jdk/13.*" + - "/opt/hostedtoolcache/Java_*_jdk/13.*" + - "/usr/lib/jvm/*-13-jdk-*" + pathMacOS: + - "%AGENT_TOOLSDIRECTORY%/Java_*_jdk/13.*" + - "/Users/runner/hostedtoolcache/Java_*_jdk/13.*" + pathWindows: + - "%AGENT_TOOLSDIRECTORY%\\Java_*_jdk\\13.*" +- name: "Java/17" + description: "Java 17" + postpone: 0 + apt: + - "temurin-17-jdk" + env: + - "JAVA_HOME_17_X64" + pathLinux: + - "%AGENT_TOOLSDIRECTORY%/Java_*_jdk/17.*" + - "/opt/hostedtoolcache/Java_*_jdk/17.*" + - "/usr/lib/jvm/*-17-jdk-*" + pathMacOS: + - "%AGENT_TOOLSDIRECTORY%/Java_*_jdk/17.*" + - "/Users/runner/hostedtoolcache/Java_*_jdk/17.*" + pathWindows: + - "%AGENT_TOOLSDIRECTORY%\\Java_*_jdk\\17.*" +- name: "Java/21" + description: "Java 21" + postpone: 0 + apt: + - "temurin-21-jdk" + env: + - "JAVA_HOME_21_X64" + pathLinux: + - "%AGENT_TOOLSDIRECTORY%/Java_*_jdk/21.*" + - "/opt/hostedtoolcache/Java_*_jdk/21.*" + - "/usr/lib/jvm/*-21-jdk-*" + pathMacOS: + - "%AGENT_TOOLSDIRECTORY%/Java_*_jdk/21.*" + - "/Users/runner/hostedtoolcache/Java_*_jdk/21.*" + pathWindows: + - "%AGENT_TOOLSDIRECTORY%\\Java_*_jdk\\21.*" +- name: "Java/All" + description: "Java (All)" + postpone: 1 + apt: + - "^java-.*" + - ".*-jdk$" + env: + - "JAVA_HOME" + pathLinux: + - "%AGENT_TOOLSDIRECTORY%/Java_*_jdk" + - "/opt/hostedtoolcache/Java_*_jdk" + - "/usr/lib/jvm" + pathMacOS: + - "%AGENT_TOOLSDIRECTORY%/Java_*_jdk" + - "/Users/runner/hostedtoolcache/Java_*_jdk" + pathWindows: + - "%AGENT_TOOLSDIRECTORY%\\Java_*_jdk" +- name: "Julia" + description: "Julia" + postpone: 0 + chocolatey: + - "julia" + homebrew: + - "julia" + pathLinux: + - "/usr/local/julia*" + - "/usr/bin/julia" + pathMacOS: + - "/Applications/Julia*.app" + pathWindows: + - "C:\\Julia" +- name: "Kotlin" + description: "Kotlin" + postpone: 0 + homebrew: + - "kotlin" + pathLinux: + - "/usr/share/kotlinc" +- name: "Leiningen" + description: "Leiningen" + postpone: 0 + env: + - "LEIN_HOME" + pathLinux: + - "/usr/local/bin/lein" +- name: "Lerna" + description: "Lerna" + postpone: 0 + homebrew: + - "lerna" + npm: + - "lerna" + pathLinux: + - "/usr/local/lib/node_modules/lerna" +- name: "Lintian" + description: "Lintian" + postpone: 8 + pathLinux: + - "/usr/share/linda" + - "/usr/share/lintian" +- name: "LLVM" + description: "LLVM" + postpone: 0 + apt: + - "^llvm-.*" + chocolatey: + - "llvm" + homebrew: + - "llvm" + pathLinux: + - "/usr/bin/llvm-*" + - "/usr/lib/llvm-*" +- name: "Maven" + description: "Maven" + postpone: 0 + chocolatey: + - "maven" + homebrew: + - "maven" + pathLinux: + - "/usr/bin/mvn" + - "/usr/share/apache-maven-*" +- name: "MicrosoftEdge" + description: "Microsoft Edge" + postpone: 0 + apt: + - "microsoft-edge-stable" + homebrew: + - "microsoft-edge" + wmic: + - "Microsoft Edge" + pathLinux: + - "/opt/microsoft/msedge" + - "/usr/bin/microsoft-edge-stable" + - "/usr/bin/microsoft-edge" + pathMacOS: + - "/Applications/Microsoft Edge.app" +- name: "MicrosoftEdgeWebDriver" + description: "Microsoft Edge Web Driver" + postpone: 0 + wmic: + - "Microsoft Edge WebView2 Runtime" + env: + - "EDGEWEBDRIVER" + pathLinux: + - "/usr/bin/edgedriver" + - "/usr/bin/msedgedriver" + - "/usr/local/share/edge_driver" + pathMacOS: + - "/usr/local/bin/msedgedriver" + - "/usr/local/share/edge_driver" + pathWindows: + - "C:\\SeleniumWebDrivers\\EdgeDriver" +- name: "MicrosoftInternetExplorer" + description: "Microsoft Internet Explorer" + postpone: 0 + pathWindows: + - "C:\\Program Files (x86)\\Internet Explorer" +- name: "MicrosoftInternetExplorerWebDriver" + description: "Microsoft Internet Explorer Web Driver" + postpone: 0 + env: + - "IEWEBDRIVER" + pathWindows: + - "C:\\SeleniumWebDrivers\\IEDriver" +- name: "Miniconda" + description: "Mini Conda" + postpone: 0 + homebrew: + - "miniconda" + wmic: + - "Miniconda*" + env: + - "CONDA" + pathLinux: + - "/usr/bin/conda" + - "/usr/share/miniconda" + pathMacOS: + - "/usr/local/bin/conda" + - "/usr/local/miniconda" + - "%HOME%/.conda" + pathWindows: + - "C:\\Miniconda" +- name: "MongoDB" + description: "MongoDB" + postpone: 0 + apt: + - "^mongodb-.*" + chocolatey: + - "mongodb.install" + - "mongodb" +- name: "Mono" + description: "Mono" + postpone: 0 + apt: + - "^mono-.*" + - "^monodoc-.*" + homebrew: + - "mono" + pathLinux: + - "/usr/bin/mono-*" + - "/usr/bin/mono" + - "/usr/lib/mono-source-libs" + - "/usr/lib/mono" + - "/usr/lib/monodoc" + - "/usr/share/mono-*" + - "/usr/share/mono" + - "/usr/share/monodoc" +- name: "MSSQL" + description: "MS SQL" + postpone: 0 + apt: + - "mssql-tools" + - "unixodbc-dev" + powershellGet: + - "SqlServer" + pathLinux: + - "/opt/mssql-tools" + pathWindows: + - "%PROGRAMFILES%\\Microsoft SQL Server" + - "C:\\Program Files\\Microsoft SQL Server" +- name: "MySQL" + description: "MySQL" + postpone: 0 + apt: + - "^mysql-.*" + - "libmysqlclient-dev" + homebrew: + - "mysql-client" + - "mysql" + pathLinux: + - "/usr/bin/mysql*" + - "/usr/lib/mysql" + - "/usr/share/mysql-*" + - "/usr/share/mysql" +- name: "Netlify" + description: "Netlify" + postpone: 0 + homebrew: + - "netlify-cli" + npm: + - "netlify-cli" + - "netlify" + pathLinux: + - "/usr/local/lib/node_modules/netlify" + - "/usr/local/lib/node_modules/netlify-cli" +- name: "Newman" + description: "Newman" + postpone: 0 + npm: + - "newman" + pathLinux: + - "/usr/local/lib/node_modules/newman" +- name: "Nginx" + description: "Nginx" + postpone: 0 + apt: + - "nginx" + homebrew: + - "nginx" + pathMacOS: + - "/usr/local/etc/nginx" + pathWindows: + - "C:\\tools\\nginx*" +- name: "NVMBuild" + description: "NVM (NodeJS Version Manager) Build" + postpone: 0 + pathLinux: + - "/home/runner/.nvm/.dockerignore" + - "/home/runner/.nvm/.editorconfig" + - "/home/runner/.nvm/.git" + - "/home/runner/.nvm/.github" + - "/home/runner/.nvm/.gitignore" + - "/home/runner/.nvm/.mailmap" + - "/home/runner/.nvm/.npmrc" + - "/home/runner/.nvm/.travis.yml" + - "/home/runner/.nvm/CODE_OF_CONDUCT.md" + - "/home/runner/.nvm/CONTRIBUTING.md" + - "/home/runner/.nvm/Dockerfile" + - "/home/runner/.nvm/GOVERNANCE.md" + - "/home/runner/.nvm/ROADMAP.md" + - "/home/runner/.nvm/test" + pathMacOS: + - "/Users/runner/.nvm/.dockerignore" + - "/Users/runner/.nvm/.editorconfig" + - "/Users/runner/.nvm/.git" + - "/Users/runner/.nvm/.github" + - "/Users/runner/.nvm/.gitignore" + - "/Users/runner/.nvm/.mailmap" + - "/Users/runner/.nvm/.npmrc" + - "/Users/runner/.nvm/.travis.yml" + - "/Users/runner/.nvm/CODE_OF_CONDUCT.md" + - "/Users/runner/.nvm/CONTRIBUTING.md" + - "/Users/runner/.nvm/Dockerfile" + - "/Users/runner/.nvm/GOVERNANCE.md" + - "/Users/runner/.nvm/ROADMAP.md" + - "/Users/runner/.nvm/test" +- name: "OpenGLDRI" + description: "OpenGL API DRI Modules" + postpone: 0 + apt: + - "libgl1-mesa-dri" +- name: "OpenShiftClient" + description: "OpenShift Client" + postpone: 0 + pathLinux: + - "/usr/local/bin/oc" +- name: "Packer" + description: "Packer" + postpone: 0 + pathLinux: + - "/usr/local/bin/packer" +- name: "Parcel" + description: "Parcel" + postpone: 0 + npm: + - "parcel" + pathLinux: + - "/usr/local/lib/node_modules/parcel" +- name: "Perl" + description: "Perl" + postpone: 0 + apt: + - "^perl.*" + pathLinux: + - "/usr/bin/perl*" + - "/usr/share/perl*" +- name: "Pester" + description: "Pester" + postpone: 0 + powershellGet: + - "Pester" +- name: "PhantomJS" + description: "Phantom JS" + postpone: 0 + apt: + - "phantomjs" + pathLinux: + - "/usr/local/bin/phantomjs" + - "/usr/local/share/phantomjs*" +- name: "PHP" + description: "PHP" + postpone: 0 + apt: + - "^php.*" + - "snmp" + chocolatey: + - "php" + pathLinux: + - "/usr/bin/php*" + - "/usr/local/bin/phpunit" + - "/usr/lib/php" + - "/usr/share/php*" + pathWindows: + - "C:\\tools\\php" +- name: "pipx" + description: "pipx" + postpone: 9 + env: + - "PIPX_BIN_DIR" + - "PIPX_HOME" + pathLinux: + - "/opt/pipx_bin" + - "/opt/pipx" + - "/usr/local/bin/pipx" + pathMacOS: + - "/opt/pipx_bin" + pathWindows: + - "C:\\Program Files (x86)\\pipx_bin" + - "C:\\Program Files (x86)\\pipx" +- name: "PostgreSQL" + description: "PostgreSQL" + postpone: 0 + apt: + - "^postgresql-.*" + - "libpq-dev" + wmic: + - "PostgreSQL*" + env: + - "PGBIN" + - "PGDATA" + - "PGROOT" + pathLinux: + - "/usr/lib/postgresql" + - "/usr/share/postgresql-*" + - "/usr/share/postgresql" + pathWindows: + - "C:\\Program Files\\PostgreSQL" +- name: "Pulumi" + description: "Pulumi" + postpone: 0 + chocolatey: + - "pulumi" + pathLinux: + - "/usr/local/bin/pulumi*" +- name: "PSScriptAnalyzer" + description: "PowerShell Script Analyzer" + postpone: 0 + powershellGet: + - "PSScriptAnalyzer" +- name: "PSWindowsUpdate" + description: "PowerShell Windows Update" + postpone: 0 + powershellGet: + - "PSWindowsUpdate" +- name: "R" + description: "R" + postpone: 0 + apt: + - "r-base" + - "^r-base-.*" + pathLinux: + - "/usr/bin/R" + - "/usr/lib/R" + - "/usr/local/lib/R" + - "/usr/share/R" + pathWindows: + - "C:\\Program Files\\R" +- name: "Ruby" + description: "Ruby" + postpone: 0 + apt: + - "ruby" + - "ruby3.0" + - "^ruby-.*" + - "^ruby3.0-.*" + pathLinux: + - "%AGENT_TOOLSDIRECTORY%/Ruby" + - "/opt/hostedtoolcache/Ruby" + - "/usr/bin/ruby*" + - "/usr/lib/ruby" + pathMacOS: + - "%AGENT_TOOLSDIRECTORY%/Ruby" + - "/Users/runner/hostedtoolcache/Ruby" + pathWindows: + - "%AGENT_TOOLSDIRECTORY%\\Ruby" +- name: "Rust" + description: "Rust" + postpone: 0 + homebrew: + - "rustup-init" + env: + - "CARGO_HOME" + - "RUSTUP_HOME" +- name: "Selenium" + description: "Selenium" + postpone: 0 + env: + - "SELENIUM_JAR_PATH" + pathLinux: + - "/usr/share/java/selenium-server.jar" + pathWindows: + - "C:\\selenium\\selenium-server.jar" +- name: "Sphinx" + description: "Sphinx" + postpone: 0 + apt: + - "sphinxsearch" +- name: "SQLPackage" + description: "SQL Package" + postpone: 0 + pathLinux: + - "/usr/local/bin/sqlpackage" + - "/usr/local/sqlpackage" +- name: "Stack" + description: "Stack" + postpone: 0 + pathLinux: + - "%AGENT_TOOLSDIRECTORY%/stack" + - "/opt/hostedtoolcache/stack" + pathMacOS: + - "%AGENT_TOOLSDIRECTORY%/stack" + pathWindows: + - "%AGENT_TOOLSDIRECTORY%\\stack" +- name: "Swift" + description: "Swift" + postpone: 0 + homebrew: + - "swiftformat" + env: + - "SWIFT_PATH" + pathLinux: + - "/usr/local/bin/swift" + - "/usr/local/bin/swiftc" + - "/usr/share/swift" + - "/usr/share/swiftc" +- name: "Terraform" + description: "Terraform" + postpone: 0 + pathLinux: + - "/usr/local/bin/terraform" +- name: "TypeScript" + description: "TypeScript" + postpone: 0 + npm: + - "typescript" + pathLinux: + - "/usr/local/lib/node_modules/typescript" +- name: "VCPkg" + description: "VCPkg" + postpone: 9 + env: + - "VCPKG_INSTALLATION_ROOT" + pathLinux: + - "/usr/local/share/vcpkg" + - "/root/.vcpkg" + pathMacOS: + - "/Users/runner/.vcpkg" + - "/usr/local/bin/vcpkg" + - "/usr/local/share/vcpkg" + pathWindows: + - "C:\\vcpkg" +- name: "Vercel" + description: "Vercel" + postpone: 0 + npm: + - "vercel" + pathLinux: + - "/usr/local/lib/node_modules/vercel" +- name: "VisualStudio/2019" + description: "Visual Studio 2019" + postpone: 0 + pathMacOS: + - "/Applications/Visual Studio 2019.app" + pathWindows: + - "C:\\Program Files\\Microsoft Visual Studio\\2019" +- name: "VisualStudio/2022" + description: "Visual Studio 2022" + postpone: 0 + pathMacOS: + - "/Applications/Visual Studio 2022.app" + pathWindows: + - "C:\\Program Files\\Microsoft Visual Studio\\2022" +- name: "VisualStudio/All" + description: "Visual Studio" + postpone: 1 + pathMacOS: + - "/Applications/Visual Studio*.app" + pathWindows: + - "C:\\Program Files\\Microsoft Visual Studio" + - "C:\\ProgramData\\Microsoft\\VisualStudio" +- name: "Webpack" + description: "Webpack" + postpone: 0 + npm: + - "webpack-cli" + - "webpack" + pathLinux: + - "/usr/local/lib/node_modules/webpack-cli" + - "/usr/local/lib/node_modules/webpack" +- name: "Xcode/8" + description: "Xcode 8" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_8.app" + - "/Applications/Xcode8.app" +- name: "Xcode/8.1" + description: "Xcode 8.1" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_8.1.app" + - "/Applications/Xcode81.app" +- name: "Xcode/9" + description: "Xcode 9" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_9.app" + - "/Applications/Xcode9.app" +- name: "Xcode/9.1" + description: "Xcode 9.1" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_9.1.app" + - "/Applications/Xcode91.app" +- name: "Xcode/9.2" + description: "Xcode 9.2" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_9.2.app" + - "/Applications/Xcode92.app" +- name: "Xcode/9.3" + description: "Xcode 9.3" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_9.3_beta.app" + - "/Applications/Xcode_9.3.app" + - "/Applications/Xcode93.app" +- name: "Xcode/9.4" + description: "Xcode 9.4" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_9.4_beta_2.app" + - "/Applications/Xcode_9.4_beta.app" + - "/Applications/Xcode_9.4-beta.app" + - "/Applications/Xcode_9.4.app" +- name: "Xcode/11.7" + description: "Xcode 11.7" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_11.7.app" +- name: "Xcode/12.4" + description: "Xcode 12.4" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_12.4.app" +- name: "Xcode/12.5.1" + description: "Xcode 12.5.1" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_12.5.1.app" +- name: "Xcode/13.0" + description: "Xcode 13.0" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_13.0.app" +- name: "Xcode/13.1" + description: "Xcode 13.1" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_13.1.app" +- name: "Xcode/13.2.1" + description: "Xcode 13.2.1" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_13.2.1.app" +- name: "Xcode/13.3.1" + description: "Xcode 13.3.1" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_13.3.1.app" +- name: "Xcode/13.4.1" + description: "Xcode 13.4.1" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_13.4.1.app" +- name: "Xcode/14.0.1" + description: "Xcode 14.0.1" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_14.0.1.app" +- name: "Xcode/14.1" + description: "Xcode 14.1" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_14.1.app" +- name: "Xcode/14.2" + description: "Xcode 14.2" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_14.2.app" +- name: "Xcode/14.3" + description: "Xcode 14.3" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_14.3.app" +- name: "Xcode/14.3.1" + description: "Xcode 14.3.1" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_14.3.1.app" +- name: "Xcode/15.0" + description: "Xcode 15.0" + postpone: 0 + pathMacOS: + - "/Applications/Xcode_15.0.app" +- name: "Xcode/All" + description: "Xcode (All)" + postpone: 1 + pathMacOS: + - "/Applications/Xcode*.app" +- name: "YAMLLint" + description: "YAML Lint" + postpone: 0 + pipx: + - "yamllint" + pathLinux: + - "/opt/pipx_bin/yamllint" +- name: "Yarn" + description: "Yarn" + postpone: 0 + npm: + - "yarn" + pathLinux: + - "/usr/local/lib/node_modules/yarn" + pathMacOS: + - "/Users/runner/.yarn" diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c0f529f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2881 @@ +{ + "name": "@hugoalh/disk-space-optimizer-ghaction", + "version": "0.8.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@hugoalh/disk-space-optimizer-ghaction", + "version": "0.8.0", + "license": "MIT", + "dependencies": { + "@actions/core": "^1.10.1", + "@actions/glob": "^0.4.0", + "which": "^4.0.0", + "yaml": "^2.3.4" + }, + "devDependencies": { + "@types/node": "^20.10.5", + "@types/which": "^3.0.3", + "@typescript-eslint/eslint-plugin": "^6.15.0", + "@typescript-eslint/parser": "^6.15.0", + "@vercel/ncc": "^0.38.1", + "eslint": "^8.56.0", + "eslint-plugin-only-warn": "^1.1.0", + "typescript": "^5.3.3" + }, + "engines": { + "node": "^20.9.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@actions/core": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", + "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", + "dependencies": { + "@actions/http-client": "^2.0.1", + "uuid": "^8.3.2" + } + }, + "node_modules/@actions/glob": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.4.0.tgz", + "integrity": "sha512-+eKIGFhsFa4EBwaf/GMyzCdWrXWymGXfFmZU3FHQvYS8mPcHtTtZONbkcqqUMzw9mJ/pImEBFET1JNifhqGsAQ==", + "dependencies": { + "@actions/core": "^1.9.1", + "minimatch": "^3.0.4" + } + }, + "node_modules/@actions/http-client": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", + "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", + "dependencies": { + "tunnel": "^0.0.6", + "undici": "^5.25.4" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", + "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true + }, + "node_modules/@types/which": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/which/-/which-3.0.3.tgz", + "integrity": "sha512-2C1+XoY0huExTbs8MQv1DuS5FS86+SEjdM9F/+GS61gg5Hqbtj8ZiDSx8MfWcyei907fIPbfPGCOrNUTnVHY1g==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz", + "integrity": "sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/type-utils": "6.15.0", + "@typescript-eslint/utils": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.15.0.tgz", + "integrity": "sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz", + "integrity": "sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz", + "integrity": "sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/utils": "6.15.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.15.0.tgz", + "integrity": "sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz", + "integrity": "sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.15.0.tgz", + "integrity": "sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz", + "integrity": "sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.15.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vercel/ncc": { + "version": "0.38.1", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz", + "integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==", + "dev": true, + "bin": { + "ncc": "dist/ncc/cli.js" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-only-warn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-only-warn/-/eslint-plugin-only-warn-1.1.0.tgz", + "integrity": "sha512-2tktqUAT+Q3hCAU0iSf4xAN1k9zOpjK5WO8104mB0rT/dGhOa09582HN5HlbxNbPRZ0THV7nLGvzugcNOSjzfA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "engines": { + "node": ">=16" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici": { + "version": "5.28.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz", + "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, + "@actions/core": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", + "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", + "requires": { + "@actions/http-client": "^2.0.1", + "uuid": "^8.3.2" + } + }, + "@actions/glob": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.4.0.tgz", + "integrity": "sha512-+eKIGFhsFa4EBwaf/GMyzCdWrXWymGXfFmZU3FHQvYS8mPcHtTtZONbkcqqUMzw9mJ/pImEBFET1JNifhqGsAQ==", + "requires": { + "@actions/core": "^1.9.1", + "minimatch": "^3.0.4" + } + }, + "@actions/http-client": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", + "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", + "requires": { + "tunnel": "^0.0.6", + "undici": "^5.25.4" + } + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true + }, + "@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==" + }, + "@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "@types/node": { + "version": "20.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", + "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true + }, + "@types/which": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/which/-/which-3.0.3.tgz", + "integrity": "sha512-2C1+XoY0huExTbs8MQv1DuS5FS86+SEjdM9F/+GS61gg5Hqbtj8ZiDSx8MfWcyei907fIPbfPGCOrNUTnVHY1g==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz", + "integrity": "sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/type-utils": "6.15.0", + "@typescript-eslint/utils": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/parser": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.15.0.tgz", + "integrity": "sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz", + "integrity": "sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz", + "integrity": "sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/utils": "6.15.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/types": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.15.0.tgz", + "integrity": "sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz", + "integrity": "sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + } + }, + "@typescript-eslint/utils": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.15.0.tgz", + "integrity": "sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", + "semver": "^7.5.4" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz", + "integrity": "sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "6.15.0", + "eslint-visitor-keys": "^3.4.1" + } + }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "@vercel/ncc": { + "version": "0.38.1", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz", + "integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==", + "dev": true + }, + "acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "dependencies": { + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + } + }, + "eslint-plugin-only-warn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-only-warn/-/eslint-plugin-only-warn-1.1.0.tgz", + "integrity": "sha512-2tktqUAT+Q3hCAU0iSf4xAN1k9zOpjK5WO8104mB0rT/dGhOa09582HN5HlbxNbPRZ0THV7nLGvzugcNOSjzfA==", + "dev": true + }, + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + }, + "espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "requires": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "requires": {} + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true + }, + "undici": { + "version": "5.28.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz", + "integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==", + "requires": { + "@fastify/busboy": "^2.0.0" + } + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "requires": { + "isexe": "^3.1.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..4648edb --- /dev/null +++ b/package.json @@ -0,0 +1,48 @@ +{ + "name": "@hugoalh/disk-space-optimizer-ghaction", + "version": "0.8.0", + "description": "A GitHub Action to optimize disk space for GitHub-hosted runner.", + "keywords": [ + "disk", + "github-action", + "optimize" + ], + "homepage": "https://github.com/hugoalh/disk-space-optimizer-ghaction#readme", + "bugs": { + "url": "https://github.com/hugoalh/disk-space-optimizer-ghaction/issues" + }, + "license": "MIT", + "author": "hugoalh", + "type": "module", + "main": "./dist/main.js", + "exports": { + "import": "./dist/main.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/hugoalh/disk-space-optimizer-ghaction.git" + }, + "scripts": { + "build": "tsc && node bundler.js" + }, + "dependencies": { + "@actions/core": "^1.10.1", + "@actions/glob": "^0.4.0", + "which": "^4.0.0", + "yaml": "^2.3.4" + }, + "devDependencies": { + "@types/node": "^20.10.5", + "@types/which": "^3.0.3", + "@typescript-eslint/eslint-plugin": "^6.15.0", + "@typescript-eslint/parser": "^6.15.0", + "@vercel/ncc": "^0.38.1", + "eslint": "^8.56.0", + "eslint-plugin-only-warn": "^1.1.0", + "typescript": "^5.3.3" + }, + "engines": { + "node": "^20.9.0" + }, + "private": true +} diff --git a/src/execute.ts b/src/execute.ts new file mode 100644 index 0000000..e048dff --- /dev/null +++ b/src/execute.ts @@ -0,0 +1,46 @@ +import { ChildProcess, spawn } from "node:child_process"; +export interface ChildProcessResult { + /** + * Exit code of the process. + */ + code: number; + /** + * The `stderr` from the process. + */ + stderr: string; + /** + * The `stdout` from the process. + */ + stdout: string; + /** + * Whether the process exits with code `0`. + */ + success: boolean; +} +/** + * Execute child process. + * @param {string[]} command Command. + * @param {Parameters[2]} [options={}] Options. + * @returns {Promise} Result. + */ +export function executeChildProcess(command: string[], options: Parameters[2] = {}): Promise { + return new Promise((resolve: (value: ChildProcessResult) => void): void => { + const cp: ChildProcess = spawn(command[0], command.slice(1), options); + let stderr = ""; + let stdout = ""; + cp.stderr.on("data", (chunk: string): void => { + stderr += chunk; + }); + cp.stdout.on("data", (chunk: string): void => { + stdout += chunk; + }); + cp.on("close", (code: number): void => { + resolve({ + code, + stderr, + stdout, + success: code === 0 + }); + }); + }); +} diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/pre.ts b/src/pre.ts new file mode 100644 index 0000000..0abe0da --- /dev/null +++ b/src/pre.ts @@ -0,0 +1,4 @@ +import { getBooleanInput as ghactionsGetBooleanInput } from "@actions/core"; +if (ghactionsGetBooleanInput("operate_pre", { required: true })) { + +} diff --git a/src/worker.ts b/src/worker.ts new file mode 100644 index 0000000..d9c979b --- /dev/null +++ b/src/worker.ts @@ -0,0 +1,90 @@ +import { getInput as ghactionsGetInput, getBooleanInput as ghactionsGetBooleanInput, getMultilineInput as ghactionsGetMultilineInput } from "@actions/core"; +import yaml from "yaml"; +import which from "which"; +import { executeChildProcess, type ChildProcessResult } from "./execute.js"; +function getBooleanInputRequire(name: string): boolean { + return ghactionsGetBooleanInput(name, { + required: true, + trimWhitespace: false + }); +} +function getRegExpInputOptional(name: string): RegExp | undefined { + const raw: string = ghactionsGetInput(name, { trimWhitespace: false }).split(/\r?\n/gu).filter((value: string): boolean => { + return (value.length > 0); + }).join("|"); + return ((raw.length > 0) ? new RegExp(raw, "u") : undefined); +} +interface DSOListElement { + name: string; + description: string; + postpone: number; + apt?: string[]; + chocolatey?: string[]; + homebrew?: string[]; + npm?: string[]; + pipx?: string[]; + powershellGet?: string[]; + wmic?: string[]; + env?: string[]; + pathLinux?: string[]; + pathMacOS?: string[]; + pathWindows?: string[]; +} +let inputAptClean: boolean = getBooleanInputRequire("apt_clean"); +let inputAptEnable: boolean = getBooleanInputRequire("apt_enable"); +let inputAptPrune: boolean = getBooleanInputRequire("apt_prune"); +let inputChocolateyEnable: boolean = getBooleanInputRequire("chocolatey_enable"); +let inputDockerClean: boolean = getBooleanInputRequire("docker_clean"); +const inputDockerExclude: RegExp | undefined = getRegExpInputOptional("docker_exclude"); +const inputDockerInclude: RegExp | undefined = getRegExpInputOptional("docker_include"); +let inputDockerPrune: boolean = getBooleanInputRequire("docker_prune"); +let inputFsEnable: boolean = getBooleanInputRequire("fs_enable"); +const inputGeneralExclude: RegExp | undefined = getRegExpInputOptional("general_exclude"); +const inputGeneralInclude: RegExp | undefined = getRegExpInputOptional("general_include"); +let inputHomebrewClean: boolean = getBooleanInputRequire("homebrew_clean"); +let inputHomebrewEnable: boolean = getBooleanInputRequire("homebrew_enable"); +let inputHomebrewPrune: boolean = getBooleanInputRequire("homebrew_prune"); +let inputNpmClean: boolean = getBooleanInputRequire("npm_clean"); +let inputNpmEnable: boolean = getBooleanInputRequire("npm_enable"); +let inputNpmPrune: boolean = getBooleanInputRequire("npm_prune"); +let inputOperateAsync: boolean = getBooleanInputRequire("operate_async"); +let inputOperateSudo: boolean = getBooleanInputRequire("operate_sudo"); +let inputOsSwap: boolean = getBooleanInputRequire("os_swap"); +let inputPipxEnable: boolean = getBooleanInputRequire("pipx_enable"); +let inputWmicEnable: boolean = getBooleanInputRequire("wmic_enable"); +if (!inputAptEnable && !inputChocolateyEnable && !inputFsEnable && !inputHomebrewEnable && !inputNpmEnable && !inputPipxEnable && !inputWmicEnable) { + inputAptEnable = true; + inputChocolateyEnable = true; + inputFsEnable = true; + inputHomebrewEnable = true; + inputNpmEnable = true; + inputPipxEnable = true; + inputWmicEnable = true; +} +interface DSORegistryMeta { + isExist: boolean; + list?: () => Promise; + remove: (packages: string[], sudo: boolean) => Promise; +} +const registries: Record = { + apt: { + isExist: typeof await which("apt-get", { nothrow: true }) === "string", + remove: (packages: string[], sudo: boolean): Promise => { + const command: string[] = ["apt-get", "--assume-yes", "remove", ...packages, "*>&1"]; + if (sudo) { + return executeChildProcess(["sudo", ...command]); + } + return executeChildProcess(command); + } + }, + chocolatey: { + isExist: typeof await which("choco", { nothrow: true }) === "string", + remove: (packages: string[], sudo: boolean): Promise => { + const command: string[] = ["choco", "uninstall", "remove", ...packages, "*>&1"]; + if (sudo) { + return executeChildProcess(["sudo", ...command]); + } + return executeChildProcess(command); + } + } +}; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..6cda66f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compileOnSave": true, + "compilerOptions": { + "allowJs": true, + "declaration": false, + "declarationMap": false, + "emitBOM": false, + "emitDeclarationOnly": false, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "module": "NodeNext", + "moduleResolution": "NodeNext", + "outDir": "./temp", + "target": "ES2022" + }, + "include": [ + "./src/**/*.ts" + ] +}