diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..df63051 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,32 @@ +# .github/workflows/ci.yml +name: CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: '22.5' + + - name: Install dependencies + run: npm install + + - name: Run lint + run: npm run lint + + - name: Run tests + run: xvfb-run -a npm test diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..f791318 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,2 @@ +npm run openapi-ts +npx lint-staged diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..6db6c15 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,80 @@ +import typescriptEslint from '@typescript-eslint/eslint-plugin'; +import prettier from 'eslint-plugin-prettier'; +import tsParser from '@typescript-eslint/parser'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import js from '@eslint/js'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +export default [ + { + ignores: ['**/out', '**/dist', '**/*.d.ts'], + }, + ...compat.extends( + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:prettier/recommended', + 'prettier' + ), + { + plugins: { + '@typescript-eslint': typescriptEslint, + prettier, + }, + + languageOptions: { + globals: { + console: 'readonly', + __dirname: 'readonly', + module: 'readonly', + require: 'readonly', + }, + + parser: tsParser, + ecmaVersion: 6, + sourceType: 'module', + }, + + rules: { + '@typescript-eslint/naming-convention': [ + 'warn', + { + selector: 'import', + format: ['camelCase', 'PascalCase'], + }, + ], + curly: 'warn', + 'no-throw-literal': 'warn', + semi: ['error', 'always'], + + quotes: [ + 'error', + 'single', + { + avoidEscape: true, + }, + ], + + indent: [ + 'error', + 4, + { + SwitchCase: 1, + }, + ], + + 'no-unused-vars': 'off', + eqeqeq: ['error', 'always'], + 'no-console': 'warn', + 'prettier/prettier': ['error'], + }, + }, +]; diff --git a/package-lock.json b/package-lock.json index 8658dbc..cc8d18e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,43 +1,49 @@ { "name": "scalr", - "version": "0.0.3", + "version": "0.0.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "scalr", - "version": "0.0.3", + "version": "0.0.5", "license": "MPL-2.0", "dependencies": { - "@hey-api/client-fetch": "^0.1.13", + "@hey-api/client-fetch": "^0.2.4", "date-fns": "^3.6.0" }, "devDependencies": { - "@hey-api/openapi-ts": "^0.51.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.10.0", + "@hey-api/openapi-ts": "^0.53.0", "@types/mocha": "^10.0.7", - "@types/node": "20.x", + "@types/node": "^22.5.4", "@types/vscode": "^1.91.0", - "@typescript-eslint/eslint-plugin": "^7.14.1", - "@typescript-eslint/parser": "^7.11.0", - "@vscode/test-cli": "^0.0.9", + "@typescript-eslint/eslint-plugin": "^8.5.0", + "@typescript-eslint/parser": "^8.5.0", + "@vscode/test-cli": "^0.0.10", "@vscode/test-electron": "^2.4.0", - "eslint": "^8.57.0", + "clean-webpack-plugin": "^4.0.0", + "eslint": "^9.10.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", + "husky": "^8.0.0", + "lint-staged": "^15.2.10", "prettier": "^3.3.3", "ts-loader": "^9.5.1", "typescript": "^5.5.4", "webpack": "^5.92.1", - "webpack-cli": "^5.1.4" + "webpack-cli": "^5.1.4", + "webpack-merge": "^6.0.1" }, "engines": { "vscode": "^1.91.0" } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.6.4", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.4.tgz", - "integrity": "sha512-9K6xOqeevacvweLGik6LnZCb1fBtCOSIWQs8d096XGeqoLKC33UVMGz9+77Gw44KvbH4pKcQPWo4ZpxkXYj05w==", + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.0.tgz", + "integrity": "sha512-pRrmXMCwnmrkS3MLgAIW5dXRzeTv6GLjkjb4HmxNnvAKXN1Nfzp4KmGADBQvlVUcqi+a5D+hfGDLLnd5NnYxog==", "dev": true, "license": "MIT", "dependencies": { @@ -95,17 +101,42 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.6.0.tgz", + "integrity": "sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -113,62 +144,60 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/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==", + "node_modules/@eslint/js": { + "version": "9.11.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.11.1.tgz", + "integrity": "sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, + "license": "Apache-2.0", "engines": { - "node": "*" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "node_modules/@eslint/plugin-kit": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", + "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@hey-api/client-fetch": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/@hey-api/client-fetch/-/client-fetch-0.1.14.tgz", - "integrity": "sha512-6RoO2prOVrQfx2wClJ7DkeIVWQokiRLIdqiuxvFTfWEQVfOc+hQhAw6/IijYrSM9cA7A7DzmHpzTLc/gbQ7/2Q==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@hey-api/client-fetch/-/client-fetch-0.2.4.tgz", + "integrity": "sha512-SGTVAVw3PlKDLw+IyhNhb/jCH3P1P2xJzLxA8Kyz1g95HrkYOJdRpl9F5I7LLwo9aCIB7nwR2NrSeX7QaQD7vQ==", "license": "MIT" }, "node_modules/@hey-api/openapi-ts": { - "version": "0.51.0", - "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.51.0.tgz", - "integrity": "sha512-ODZyPrUIVeufqPr6A2MEuLlk+UtaPQT40sgDD2OyfpK5gYFXS+/3A11guQoTX+wdgUgM6CR+cNh4MDXAScAlKg==", + "version": "0.53.5", + "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.53.5.tgz", + "integrity": "sha512-8IeY4J3Mbb6B/8Za5CGzxpqkDLsYLJ4cKLGIuGh6y3PQXMXOXjLxJOa6NfM+kky6SNpeoPGC4ZP6depy8EJWtg==", "dev": true, "license": "MIT", "dependencies": { - "@apidevtools/json-schema-ref-parser": "11.6.4", - "c12": "1.11.1", - "camelcase": "8.0.0", + "@apidevtools/json-schema-ref-parser": "11.7.0", + "c12": "1.11.2", "commander": "12.1.0", "handlebars": "4.7.8" }, @@ -182,46 +211,6 @@ "typescript": "^5.x" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -236,13 +225,19 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", "dev": true, - "license": "BSD-3-Clause" + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -435,12 +430,23 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true, "license": "MIT" }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -455,6 +461,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/mocha": { "version": "10.0.8", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.8.tgz", @@ -463,9 +476,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.16.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.5.tgz", - "integrity": "sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==", + "version": "22.7.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.4.tgz", + "integrity": "sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==", "dev": true, "license": "MIT", "dependencies": { @@ -480,32 +493,32 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.7.0.tgz", + "integrity": "sha512-RIHOoznhA3CCfSTFiB6kBGLQtB/sox+pJ6jeFu6FxJvqL8qRxq/FfGO/UhsGgQM9oGdXkV4xUgli+dt26biB6A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.7.0", + "@typescript-eslint/type-utils": "8.7.0", + "@typescript-eslint/utils": "8.7.0", + "@typescript-eslint/visitor-keys": "8.7.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -514,27 +527,27 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.7.0.tgz", + "integrity": "sha512-lN0btVpj2unxHlNYLI//BQ7nzbMJYBVQX5+pbNXvGYazdlgYonMn4AhhHifQ+J4fGRYA/m1DjaQjx+fDetqBOQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.7.0", + "@typescript-eslint/types": "8.7.0", + "@typescript-eslint/typescript-estree": "8.7.0", + "@typescript-eslint/visitor-keys": "8.7.0", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -543,17 +556,17 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.7.0.tgz", + "integrity": "sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" + "@typescript-eslint/types": "8.7.0", + "@typescript-eslint/visitor-keys": "8.7.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -561,27 +574,24 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.7.0.tgz", + "integrity": "sha512-tl0N0Mj3hMSkEYhLkjREp54OSb/FI6qyCzfiiclvJvOqre6hsZTGSnHtmFLDU8TIM62G7ygEa1bI08lcuRwEnQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/typescript-estree": "8.7.0", + "@typescript-eslint/utils": "8.7.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependencies": { - "eslint": "^8.56.0" - }, "peerDependenciesMeta": { "typescript": { "optional": true @@ -589,13 +599,13 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.7.0.tgz", + "integrity": "sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w==", "dev": true, "license": "MIT", "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -603,23 +613,23 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.7.0.tgz", + "integrity": "sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/types": "8.7.0", + "@typescript-eslint/visitor-keys": "8.7.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -631,58 +641,77 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.7.0.tgz", + "integrity": "sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" + "@typescript-eslint/scope-manager": "8.7.0", + "@typescript-eslint/types": "8.7.0", + "@typescript-eslint/typescript-estree": "8.7.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.7.0.tgz", + "integrity": "sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/types": "8.7.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.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, - "license": "ISC" - }, "node_modules/@vscode/test-cli": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@vscode/test-cli/-/test-cli-0.0.9.tgz", - "integrity": "sha512-vsl5/ueE3Jf0f6XzB0ECHHMsd5A0Yu6StElb8a+XsubZW7kHNAOw4Y3TSSuDzKEpLnJ92nbMy1Zl+KLGCE6NaA==", + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/@vscode/test-cli/-/test-cli-0.0.10.tgz", + "integrity": "sha512-B0mMH4ia+MOOtwNiLi79XhA+MLmUItIC8FckEuKrVAVriIuSWjt7vv4+bF8qVFiNFe4QRfzPaIZk39FZGWEwHA==", "dev": true, "license": "MIT", "dependencies": { @@ -703,6 +732,32 @@ "node": ">=18" } }, + "node_modules/@vscode/test-cli/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vscode/test-cli/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@vscode/test-electron": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.4.1.tgz", @@ -1025,6 +1080,22 @@ "node": ">=6" } }, + "node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1073,13 +1144,26 @@ "license": "Python-2.0" }, "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==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "dev": true, "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, "node_modules/balanced-match": { @@ -1151,13 +1235,14 @@ } }, "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/braces": { @@ -1181,9 +1266,9 @@ "license": "ISC" }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "funding": [ { @@ -1201,8 +1286,8 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", "node-releases": "^2.0.18", "update-browserslist-db": "^1.1.0" }, @@ -1246,9 +1331,9 @@ "license": "MIT" }, "node_modules/c12": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/c12/-/c12-1.11.1.tgz", - "integrity": "sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==", + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/c12/-/c12-1.11.2.tgz", + "integrity": "sha512-oBs8a4uvSDO9dm8b7OCFW7+dgtVrwmwnrVXYzLm43ta7ep2jCn/0MhoUFygIWtxhyy6+/MG7/agvpY0U1Iemew==", "dev": true, "license": "MIT", "dependencies": { @@ -1262,7 +1347,7 @@ "ohash": "^1.1.3", "pathe": "^1.1.2", "perfect-debounce": "^1.0.0", - "pkg-types": "^1.1.1", + "pkg-types": "^1.2.0", "rc9": "^2.1.2" }, "peerDependencies": { @@ -1311,22 +1396,22 @@ } }, "node_modules/camelcase": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", - "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "license": "MIT", "engines": { - "node": ">=16" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001660", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz", - "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==", + "version": "1.0.30001664", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz", + "integrity": "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==", "dev": true, "funding": [ { @@ -1429,17 +1514,33 @@ "consola": "^3.2.3" } }, - "node_modules/cli-cursor": { + "node_modules/clean-webpack-plugin": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", "dev": true, "license": "MIT", "dependencies": { - "restore-cursor": "^4.0.0" + "del": "^4.1.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.0 <6.0.0" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1458,46 +1559,127 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", "dev": true, "license": "MIT" }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/cli-truncate/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", @@ -1673,6 +1855,25 @@ "dev": true, "license": "MIT" }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/destr": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", @@ -1690,32 +1891,6 @@ "node": ">=0.3.1" } }, - "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, - "license": "MIT", - "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, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dotenv": { "version": "16.4.5", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", @@ -1737,9 +1912,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.24", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.24.tgz", - "integrity": "sha512-0x0wLCmpdKFCi9ulhvYZebgcPmHTkFVUfU2wzDykadkslKwT4oAmDTHEKLnlrDsMGZe4B+ksn8quZfZjYsBetA==", + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.29.tgz", + "integrity": "sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==", "dev": true, "license": "ISC" }, @@ -1777,6 +1952,19 @@ "node": ">=4" } }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/es-module-lexer": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", @@ -1808,44 +1996,43 @@ } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "version": "9.11.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.11.1.tgz", + "integrity": "sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.6.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.11.1", + "@eslint/plugin-kit": "^0.2.0", "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "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", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "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", @@ -1857,10 +2044,18 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-config-prettier": { @@ -1908,9 +2103,9 @@ } }, "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==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -1918,7 +2113,7 @@ "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -1937,15 +2132,17 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/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==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/glob-parent": { @@ -1961,32 +2158,32 @@ "node": ">=10.13.0" } }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/espree": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", "dev": true, - "license": "ISC", + "license": "BSD-2-Clause", "dependencies": { - "brace-expansion": "^1.1.7" + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.1.0" }, "engines": { - "node": "*" + "node": "^18.18.0 || ^20.9.0 || >=21.1.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==", + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, + "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2038,6 +2235,13 @@ "node": ">=0.10.0" } }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -2138,16 +2342,16 @@ } }, "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==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -2191,18 +2395,17 @@ } }, "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==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { @@ -2297,6 +2500,19 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-stream": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", @@ -2371,41 +2587,92 @@ "dev": true, "license": "BSD-2-Clause" }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" }, "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==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", "dev": true, "license": "MIT", "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" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "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/sindresorhus" + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, "node_modules/graceful-fs": { @@ -2522,6 +2789,22 @@ "node": ">=16.17.0" } }, + "node_modules/husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -2676,13 +2959,16 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-glob": { @@ -2721,24 +3007,60 @@ "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==", + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/is-plain-obj": { + "node_modules/is-path-in-cwd": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "dev": true, "license": "MIT", + "dependencies": { + "is-path-inside": "^2.1.0" + }, "engines": { - "node": ">=8" + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd/node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, "node_modules/is-plain-object": { @@ -3011,6 +3333,163 @@ "immediate": "~3.0.5" } }, + "node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lint-staged": { + "version": "15.2.10", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.10.tgz", + "integrity": "sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "~5.3.0", + "commander": "~12.1.0", + "debug": "~4.3.6", + "execa": "~8.0.1", + "lilconfig": "~3.1.2", + "listr2": "~8.2.4", + "micromatch": "~4.0.8", + "pidtree": "~0.6.0", + "string-argv": "~0.3.2", + "yaml": "~2.5.0" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/listr2": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", + "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -3061,6 +3540,144 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", @@ -3151,20 +3768,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "*" } }, "node_modules/minimist": { @@ -3276,6 +3903,16 @@ "node": ">= 14.0.0" } }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/mocha/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -3316,6 +3953,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/mocha/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/mocha/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -3482,9 +4129,9 @@ } }, "node_modules/nypm": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.11.tgz", - "integrity": "sha512-E5GqaAYSnbb6n1qZyik2wjPDZON43FqOJO59+3OkWrnmQtjggrMOVnsyzfjxp/tS6nlYJBA4zRA5jSM2YaadMg==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.12.tgz", + "integrity": "sha512-D3pzNDWIvgA+7IORhD/IuWzEk4uXv6GsgOxiid4UU3h9oq5IqV1KtPDi63n4sZJ/xcWlr88c0QM2RgN5VbOhFA==", "dev": true, "license": "MIT", "dependencies": { @@ -3502,6 +4149,16 @@ "node": "^14.16.0 || >=16.10.0" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ohash": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.4.tgz", @@ -3603,6 +4260,22 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/ora/node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ora/node_modules/emoji-regex": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", @@ -3610,36 +4283,86 @@ "dev": true, "license": "MIT" }, - "node_modules/ora/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, "engines": { - "node": ">=12" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "node_modules/ora/node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": ">=12" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ora/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, "node_modules/ora/node_modules/string-width": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz", @@ -3706,6 +4429,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -3717,9 +4450,9 @@ } }, "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true, "license": "BlueOak-1.0.0" }, @@ -3763,6 +4496,13 @@ "node": ">=0.10.0" } }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true, + "license": "(WTFPL OR MIT)" + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -3797,16 +4537,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "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, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/pathe": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", @@ -3841,6 +4571,52 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -4124,55 +4900,38 @@ } }, "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/restore-cursor/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -4184,10 +4943,17 @@ "node": ">=0.10.0" } }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", @@ -4196,20 +4962,6 @@ }, "bin": { "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" } }, "node_modules/rimraf/node_modules/glob": { @@ -4234,19 +4986,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -4376,14 +5115,34 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/source-map": { @@ -4433,6 +5192,16 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -4474,6 +5243,16 @@ "dev": true, "license": "MIT" }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/string-width/node_modules/ansi-regex": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", @@ -4638,9 +5417,9 @@ } }, "node_modules/terser": { - "version": "5.32.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.32.0.tgz", - "integrity": "sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==", + "version": "5.34.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", + "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4713,17 +5492,6 @@ "node": ">=8" } }, - "node_modules/test-exclude/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/test-exclude/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -4746,19 +5514,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -4843,19 +5598,6 @@ "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, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typescript": { "version": "5.6.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz", @@ -4899,9 +5641,9 @@ "license": "MIT" }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -4919,8 +5661,8 @@ ], "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -4976,9 +5718,9 @@ } }, "node_modules/webpack": { - "version": "5.94.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "version": "5.95.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", + "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5078,7 +5820,7 @@ "node": ">=14" } }, - "node_modules/webpack-merge": { + "node_modules/webpack-cli/node_modules/webpack-merge": { "version": "5.10.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", @@ -5093,6 +5835,21 @@ "node": ">=10.0.0" } }, + "node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", @@ -5218,6 +5975,16 @@ "dev": true, "license": "MIT" }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -5299,6 +6066,19 @@ "dev": true, "license": "ISC" }, + "node_modules/yaml": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", + "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -5344,19 +6124,6 @@ "node": ">=10" } }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -5364,6 +6131,16 @@ "dev": true, "license": "MIT" }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", diff --git a/package.json b/package.json index 4dd27f8..6522826 100644 --- a/package.json +++ b/package.json @@ -169,39 +169,52 @@ }, "scripts": { "vscode:prepublish": "npm run package", - "compile": "webpack", - "watch": "webpack --watch", + "build": "webpack --config webpack.prod.js", + "watch": "webpack --watch --config webpack.dev.js", "package": "webpack --mode production --devtool hidden-source-map", "compile-tests": "tsc -p . --outDir out", "watch-tests": "tsc -p . -w --outDir out", - "pretest": "npm run compile-tests && npm run compile && npm run lint", - "lint": "eslint src --ext ts --fix", + "pretest": "npm run compile-tests && npm run build && npm run lint", + "lint": "eslint 'src/**/*.ts' --fix", "test": "vscode-test", "openapi-ts": "openapi-ts", - "format": "prettier --write ." + "format": "prettier --write .", + "prepare": "husky" }, "devDependencies": { - "@hey-api/openapi-ts": "^0.51.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.10.0", + "@hey-api/openapi-ts": "^0.53.0", "@types/mocha": "^10.0.7", - "@types/node": "20.x", + "@types/node": "^22.5.4", "@types/vscode": "^1.91.0", - "@typescript-eslint/eslint-plugin": "^7.14.1", - "@typescript-eslint/parser": "^7.11.0", - "@vscode/test-cli": "^0.0.9", + "@typescript-eslint/eslint-plugin": "^8.5.0", + "@typescript-eslint/parser": "^8.5.0", + "@vscode/test-cli": "^0.0.10", "@vscode/test-electron": "^2.4.0", - "eslint": "^8.57.0", + "clean-webpack-plugin": "^4.0.0", + "eslint": "^9.10.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", + "husky": "^8.0.0", + "lint-staged": "^15.2.10", "prettier": "^3.3.3", "ts-loader": "^9.5.1", "typescript": "^5.5.4", "webpack": "^5.92.1", - "webpack-cli": "^5.1.4" + "webpack-cli": "^5.1.4", + "webpack-merge": "^6.0.1" }, "dependencies": { - "@hey-api/client-fetch": "^0.1.13", + "@hey-api/client-fetch": "^0.2.4", "date-fns": "^3.6.0" }, + "lint-staged": { + "*.ts": [ + "eslint --fix", + "prettier --write" + ] + }, "repository": { "type": "git", "url": "https://github.com/Scalr/scalr-vscode.git" diff --git a/src/api/init.ts b/src/api/init.ts index 21718f0..9e0d90d 100644 --- a/src/api/init.ts +++ b/src/api/init.ts @@ -1,7 +1,7 @@ -import { createClient } from '@hey-api/client-fetch'; +import { client } from '../api/services.gen'; export const initClient = (accountName: string, token: string) => { - return createClient({ + client.setConfig({ baseUrl: `https://${accountName}.scalr.io/api/iacp/v3/`, headers: { Authorization: `Bearer ${token}`, diff --git a/src/api/schemas.gen.ts b/src/api/schemas.gen.ts index d71997a..590bad8 100644 --- a/src/api/schemas.gen.ts +++ b/src/api/schemas.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -export const $AWSEventBridgeIntegration = { +export const AWSEventBridgeIntegrationSchema = { properties: { attributes: { properties: { @@ -96,7 +96,7 @@ export const $AWSEventBridgeIntegration = { type: 'object', } as const; -export const $AWSEventBridgeIntegrationDocument = { +export const AWSEventBridgeIntegrationDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -119,7 +119,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $AWSEventBridgeIntegrationListingDocument = { +export const AWSEventBridgeIntegrationListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -152,7 +152,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $AccessPolicy = { +export const AccessPolicySchema = { description: `Grants the permissions declared in a role to a user, team, or service account. An access policy is applied to an environment or a specific workspace.`, @@ -341,7 +341,7 @@ An access policy is applied to an environment or a specific workspace.`, type: 'object', } as const; -export const $AccessPolicyDocument = { +export const AccessPolicyDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -364,7 +364,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $AccessPolicyListingDocument = { +export const AccessPolicyListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -397,7 +397,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $AccessToken = { +export const AccessTokenSchema = { description: 'Access Token for the Scalr API.', properties: { attributes: { @@ -481,7 +481,7 @@ header. Available only in the [Create an Access Token](#create-an-access-token) type: 'object', } as const; -export const $AccessTokenDocument = { +export const AccessTokenDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -504,7 +504,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $AccessTokenListingDocument = { +export const AccessTokenListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -537,7 +537,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Account = { +export const AccountSchema = { description: 'API Resource for the account.', properties: { attributes: { @@ -741,7 +741,7 @@ export const $Account = { type: 'object', } as const; -export const $AccountBlobSettings = { +export const AccountBlobSettingsSchema = { description: `API resource describing the external blob storage setting, where Scalr will store this account blobs: e.g. source code, terraform state, and logs.`, properties: { @@ -853,7 +853,7 @@ NfsPPHBVNlU8ZLBU9BeBIoL29rqtduyQAEw3vxf6kaY= type: 'object', } as const; -export const $AccountBlobSettingsDocument = { +export const AccountBlobSettingsDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -876,7 +876,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $AccountDocument = { +export const AccountDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -899,7 +899,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $AccountListingDocument = { +export const AccountListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -932,7 +932,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $AccountMetrics = { +export const AccountMetricsSchema = { description: 'Represents account metrics.', properties: { 'billings-flex-runs-count': { @@ -987,7 +987,7 @@ export const $AccountMetrics = { type: 'object', } as const; -export const $AccountUser = { +export const AccountUserSchema = { description: 'Represents an account-user relation.', properties: { attributes: { @@ -1087,7 +1087,7 @@ export const $AccountUser = { type: 'object', } as const; -export const $AccountUserDocument = { +export const AccountUserDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -1110,7 +1110,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $AccountUserListingDocument = { +export const AccountUserListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -1143,7 +1143,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Agent = { +export const AgentSchema = { description: `An agent represents a single instance of self-hosted runner installed on a customer's on-prem infrastructure. @@ -1252,7 +1252,7 @@ The attribute \`error-message\` has the details. type: 'object', } as const; -export const $AgentDocument = { +export const AgentDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -1275,7 +1275,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $AgentListingDocument = { +export const AgentListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -1308,7 +1308,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $AgentPool = { +export const AgentPoolSchema = { description: `With the agent pool resource you can manage a pool of [self-hosted agents](../../agent_pools.html) A workspace may be configured to use an agent pool to execute terraform [runs](runs.html). @@ -1452,7 +1452,7 @@ Agents could be hosted on a physical or virtual machines within the customer's n type: 'object', } as const; -export const $AgentPoolDocument = { +export const AgentPoolDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -1475,7 +1475,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $AgentPoolListingDocument = { +export const AgentPoolListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -1508,7 +1508,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Apply = { +export const ApplySchema = { description: `Applies are the details of a request to apply a Terraform plan. An apply may or may not be successful as indicated by the \`status\` attribute.`, @@ -1591,7 +1591,7 @@ Final states: type: 'object', } as const; -export const $ApplyDocument = { +export const ApplyDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -1614,7 +1614,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $BillingPlan = { +export const BillingPlanSchema = { properties: { attributes: { properties: { @@ -1707,7 +1707,7 @@ export const $BillingPlan = { type: 'object', } as const; -export const $BillingPlanDocument = { +export const BillingPlanDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -1730,12 +1730,12 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $BuiltInProviderTypes = { +export const BuiltInProviderTypesSchema = { enum: ['aws', 'azurerm', 'google', 'scalr'], type: 'string', } as const; -export const $Comment = { +export const CommentSchema = { description: 'An optional explanation for why run action was done.', properties: { comment: { @@ -1747,7 +1747,7 @@ export const $Comment = { type: 'object', } as const; -export const $ConfigurationVersion = { +export const ConfigurationVersionSchema = { description: `A Configuration Version describes the version of a Terraform configuration files. Each run is associated with a configuration version. It provides details of the source of the configuration files, @@ -1920,7 +1920,7 @@ With this set to \`true\` the configuration cannot be used for an apply and neve type: 'object', } as const; -export const $ConfigurationVersionDocument = { +export const ConfigurationVersionDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -1943,7 +1943,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ConfigurationVersionListingDocument = { +export const ConfigurationVersionListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -1976,7 +1976,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ConfirmRequest = { +export const ConfirmRequestSchema = { description: 'A request to confirm a run. Includes optional time when apply should be queued.', properties: { 'apply-at': { @@ -1994,7 +1994,7 @@ export const $ConfirmRequest = { type: 'object', } as const; -export const $CostEstimate = { +export const CostEstimateSchema = { description: `A Cost Estimate is the details of the cost estimation phase of a \`run\` in Scalr. Cost estimation is optional and is enabled/disable per \`environment\`. If enabled a cost estimation @@ -2102,7 +2102,7 @@ Final states: type: 'object', } as const; -export const $CostEstimateDocument = { +export const CostEstimateDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -2125,7 +2125,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $CreateUser = { +export const CreateUserSchema = { description: 'Represents a request to create an [IAM](https://docs.scalr.io/docs/identity-and-access-management) user.', properties: { @@ -2217,7 +2217,7 @@ export const $CreateUser = { type: 'object', } as const; -export const $CreateUserDocument = { +export const CreateUserDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -2240,7 +2240,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $DatadogIntegration = { +export const DatadogIntegrationSchema = { properties: { attributes: { properties: { @@ -2325,7 +2325,7 @@ export const $DatadogIntegration = { type: 'object', } as const; -export const $DatadogIntegrationDocument = { +export const DatadogIntegrationDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -2348,7 +2348,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $DatadogIntegrationListingDocument = { +export const DatadogIntegrationListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -2381,7 +2381,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Environment = { +export const EnvironmentSchema = { description: `Environments are collections of related workspaces that correspond to functional areas, SDLC stages, projects or any grouping that is required. @@ -2596,7 +2596,7 @@ that are available to every workspace.`, type: 'object', } as const; -export const $EnvironmentDocument = { +export const EnvironmentDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -2619,7 +2619,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $EnvironmentListingDocument = { +export const EnvironmentListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -2652,7 +2652,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Error = { +export const ErrorSchema = { description: `JSON:API Error object. see: https://jsonapi.org/format/#errors`, @@ -2686,7 +2686,7 @@ see: https://jsonapi.org/format/#errors`, type: 'object', } as const; -export const $ErrorDocument = { +export const ErrorDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -2701,7 +2701,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $EventDefinition = { +export const EventDefinitionSchema = { description: `Represents a Webhook Event Definition. Use [List Event Definitions](event-definitions.html#list-event-definitions) to obtain @@ -2744,7 +2744,7 @@ within \`webhook.event\` relationship in [Create Webook](webhooks.html#create-we type: 'object', } as const; -export const $EventDefinitionDocument = { +export const EventDefinitionDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -2767,7 +2767,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $EventDefinitionListingDocument = { +export const EventDefinitionListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -2800,7 +2800,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $IdentityProvider = { +export const IdentityProviderSchema = { description: 'The Identity Provider (IdP).', properties: { attributes: { @@ -2871,7 +2871,7 @@ export const $IdentityProvider = { type: 'object', } as const; -export const $IdentityProviderDocument = { +export const IdentityProviderDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -2894,7 +2894,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Module = { +export const ModuleSchema = { description: 'A terraform module in the [Private Module Registry](../../module.html).', properties: { attributes: { @@ -3173,7 +3173,7 @@ is \`my-module/\`.`, type: 'object', } as const; -export const $ModuleDocument = { +export const ModuleDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -3196,7 +3196,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ModuleListingDocument = { +export const ModuleListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -3229,7 +3229,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ModuleResyncRequest = { +export const ModuleResyncRequestSchema = { description: 'Represents a request to resync the object.', properties: { force: { @@ -3242,7 +3242,7 @@ will be synchronized.`, type: 'object', } as const; -export const $ModuleUsageNamespace = { +export const ModuleUsageNamespaceSchema = { description: 'Represents terraform module usage namespace instance.', properties: { attributes: { @@ -3346,7 +3346,7 @@ export const $ModuleUsageNamespace = { type: 'object', } as const; -export const $ModuleUsageNamespaceDocument = { +export const ModuleUsageNamespaceDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -3369,7 +3369,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ModuleUsageNamespaceListingDocument = { +export const ModuleUsageNamespaceListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -3402,7 +3402,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ModuleVersion = { +export const ModuleVersionSchema = { description: "A terraform module's version in the [Private Module Registry](../../module.html).", properties: { attributes: { @@ -3642,7 +3642,7 @@ Attribute \`error-message\` contains the details.`, type: 'object', } as const; -export const $ModuleVersionDocument = { +export const ModuleVersionDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -3665,7 +3665,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ModuleVersionListingDocument = { +export const ModuleVersionListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -3698,7 +3698,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Permission = { +export const PermissionSchema = { description: `The ability to perform an action on an object, enabling the corresponding functionality in the UI and API. e.g. \`workspaces:create\`, \`vcs-providers:read\`. @@ -3753,7 +3753,7 @@ Use [List Permissions](permissions.html#list-permissions) to obtain all possible type: 'object', } as const; -export const $PermissionDocument = { +export const PermissionDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -3776,7 +3776,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $PermissionListingDocument = { +export const PermissionListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -3809,7 +3809,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Plan = { +export const PlanSchema = { description: 'Provides details of a Terraform plan operation.', properties: { attributes: { @@ -3899,7 +3899,7 @@ Final states: type: 'object', } as const; -export const $PlanDocument = { +export const PlanDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -3922,7 +3922,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Policy = { +export const PolicySchema = { description: `A policy provides details of a single OPA policy as declared in [scalr-policy.hcl](../../opa.html#creating-policy-groups).`, properties: { @@ -4002,7 +4002,7 @@ and other authorized roles. type: 'object', } as const; -export const $PolicyCheck = { +export const PolicyCheckSchema = { description: `A policy check contains the details of the policy check phase of a run in Scalr. Policy check is performed immediately after Terraform plan and cost estimation have completed for every run @@ -4144,7 +4144,7 @@ Final states: type: 'object', } as const; -export const $PolicyCheckDocument = { +export const PolicyCheckDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -4167,7 +4167,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $PolicyCheckListingDocument = { +export const PolicyCheckListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -4200,7 +4200,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $PolicyCheckResult = { +export const PolicyCheckResultSchema = { description: 'Represents a terraform policy check result.', properties: { attributes: { @@ -4344,7 +4344,7 @@ export const $PolicyCheckResult = { type: 'object', } as const; -export const $PolicyCheckResultListingDocument = { +export const PolicyCheckResultListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -4377,7 +4377,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $PolicyDocument = { +export const PolicyDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -4400,7 +4400,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $PolicyGroup = { +export const PolicyGroupSchema = { description: `A policy group represents the collection of [OPA](../../opa.html) policies stored in a VCS repository. @@ -4421,6 +4421,12 @@ the policy group will participate in the policy check phase of every run in that readOnly: true, type: 'string', }, + 'execute-as': { + default: 'policy_check', + description: 'The stage of the run to evaluate the policy group.', + enum: ['pre_plan_check', 'policy_check'], + type: 'string', + }, 'is-enforced': { default: false, description: 'Indicates whether the policy group is enforced in all environments.', @@ -4623,7 +4629,7 @@ If omitted or submitted as an empty string, this defaults to the repository's ro type: 'object', } as const; -export const $PolicyGroupDocument = { +export const PolicyGroupDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -4646,7 +4652,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $PolicyGroupEnvironmentRelationship = { +export const PolicyGroupEnvironmentRelationshipSchema = { properties: { id: { type: 'string', @@ -4660,7 +4666,7 @@ export const $PolicyGroupEnvironmentRelationship = { type: 'object', } as const; -export const $PolicyGroupEnvironmentRelationshipFieldsetsListingDocument = { +export const PolicyGroupEnvironmentRelationshipFieldsetsListingDocumentSchema = { description: 'Document Listing.', properties: { data: { @@ -4691,7 +4697,7 @@ export const $PolicyGroupEnvironmentRelationshipFieldsetsListingDocument = { type: 'object', } as const; -export const $PolicyGroupListingDocument = { +export const PolicyGroupListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -4724,7 +4730,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ProviderConfiguration = { +export const ProviderConfigurationSchema = { description: 'The configuration of provider. Provider configuration is managed on the account scope and can be linked to environments or workspaces.', properties: { @@ -5037,7 +5043,7 @@ export const $ProviderConfiguration = { type: 'object', } as const; -export const $ProviderConfigurationDocument = { +export const ProviderConfigurationDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -5060,7 +5066,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ProviderConfigurationLink = { +export const ProviderConfigurationLinkSchema = { description: 'The provider configuration link attaches the provider configuration to an environment or workspace.', properties: { attributes: { @@ -5172,7 +5178,7 @@ export const $ProviderConfigurationLink = { type: 'object', } as const; -export const $ProviderConfigurationLinkDocument = { +export const ProviderConfigurationLinkDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -5195,7 +5201,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ProviderConfigurationLinkListingDocument = { +export const ProviderConfigurationLinkListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -5228,7 +5234,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ProviderConfigurationListingDocument = { +export const ProviderConfigurationListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -5261,7 +5267,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ProviderConfigurationParameter = { +export const ProviderConfigurationParameterSchema = { description: 'The argument of the provider configuration.', properties: { attributes: { @@ -5338,7 +5344,7 @@ export const $ProviderConfigurationParameter = { type: 'object', } as const; -export const $ProviderConfigurationParameterDocument = { +export const ProviderConfigurationParameterDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -5361,7 +5367,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ProviderConfigurationParameterListingDocument = { +export const ProviderConfigurationParameterListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -5394,7 +5400,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Reason = { +export const ReasonSchema = { properties: { reason: { default: '', @@ -5405,7 +5411,7 @@ export const $Reason = { type: 'object', } as const; -export const $RegistryInputOptional = { +export const RegistryInputOptionalSchema = { properties: { default: { anyOf: [ @@ -5451,7 +5457,7 @@ export const $RegistryInputOptional = { type: 'object', } as const; -export const $RegistryInputRequired = { +export const RegistryInputRequiredSchema = { properties: { description: { nullable: true, @@ -5473,7 +5479,7 @@ export const $RegistryInputRequired = { type: 'object', } as const; -export const $RemoteStateConsumerRelationship = { +export const RemoteStateConsumerRelationshipSchema = { description: "Represents remote state consumers' relationship.", properties: { id: { @@ -5488,7 +5494,7 @@ export const $RemoteStateConsumerRelationship = { type: 'object', } as const; -export const $RemoteStateConsumerRelationshipFieldsetsListingDocument = { +export const RemoteStateConsumerRelationshipFieldsetsListingDocumentSchema = { description: 'Document Listing.', properties: { data: { @@ -5519,7 +5525,7 @@ export const $RemoteStateConsumerRelationshipFieldsetsListingDocument = { type: 'object', } as const; -export const $Role = { +export const RoleSchema = { description: 'A collection of permissions that can be assigned to a user, team, or service account via an [access policy](access-policies.html).', properties: { @@ -5618,7 +5624,7 @@ export const $Role = { type: 'object', } as const; -export const $RoleDocument = { +export const RoleDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -5641,7 +5647,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $RoleListingDocument = { +export const RoleListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -5674,7 +5680,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Run = { +export const RunSchema = { description: `A Run provides details of an entire run operation potentially comprising \`plan\`, \`cost-estimation\`, \`policy-check\` and \`apply\`.`, properties: { @@ -5861,21 +5867,31 @@ This is the final state for dry run. * \`canceled\` - A user interrupted the run from any active stage.`, enum: [ 'pending', + 'pre_plan_queued', + 'pre_plan_running', + 'pre_plan_finished', 'plan_queued', 'planning', 'planned', - 'planned_and_finished', 'confirmed', + 'discarded', + 'planned_and_finished', + 'post_plan_running', + 'post_plan_finished', 'cost_estimating', 'cost_estimated', 'policy_checking', 'policy_override', 'policy_checked', + 'pre_apply_queued', + 'pre_apply_running', + 'pre_apply_finished', 'apply_queued', 'applying', 'applied', + 'post_apply_running', + 'post_apply_finished', 'errored', - 'discarded', 'canceled', ], readOnly: true, @@ -6226,7 +6242,7 @@ This is the final state for dry run. type: 'object', } as const; -export const $RunDocument = { +export const RunDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -6249,7 +6265,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $RunListingDocument = { +export const RunListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -6282,7 +6298,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $RunScheduleRule = { +export const RunScheduleRuleSchema = { description: `A RunScheduleRule resource represents a rule for scheduling runs in a workspace. Each RunScheduleRule is associated with a workspace and has a schedule and a schedule mode. @@ -6353,7 +6369,7 @@ The schedule mode determines whether the triggered run is an 'apply' 'destroy' o type: 'object', } as const; -export const $RunScheduleRuleDocument = { +export const RunScheduleRuleDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -6376,7 +6392,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $RunScheduleRuleListingDocument = { +export const RunScheduleRuleListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -6409,7 +6425,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $RunTrigger = { +export const RunTriggerSchema = { description: `Run triggers allow runs to queue automatically in downstream workspace on successful apply of runs in any of the upstream workspaces.`, properties: { @@ -6493,7 +6509,7 @@ successful apply of runs in any of the upstream workspaces.`, type: 'object', } as const; -export const $RunTriggerDocument = { +export const RunTriggerDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -6516,7 +6532,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $SamlIntegration = { +export const SamlIntegrationSchema = { properties: { attributes: { properties: { @@ -6864,7 +6880,7 @@ export const $SamlIntegration = { type: 'object', } as const; -export const $SamlIntegrationDocument = { +export const SamlIntegrationDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -6887,7 +6903,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $SamlIntegrationListingDocument = { +export const SamlIntegrationListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -6920,7 +6936,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ServiceAccount = { +export const ServiceAccountSchema = { description: `Represents a service account definition. A service account is a special type of account intended to represent a non-human user @@ -7052,7 +7068,7 @@ that needs to authenticate and be authorized to access data in Scalr APIs.`, type: 'object', } as const; -export const $ServiceAccountDocument = { +export const ServiceAccountDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -7075,7 +7091,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $ServiceAccountListingDocument = { +export const ServiceAccountListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -7108,7 +7124,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $SlackChannel = { +export const SlackChannelSchema = { properties: { id: { type: 'string', @@ -7124,7 +7140,7 @@ export const $SlackChannel = { type: 'object', } as const; -export const $SlackChannelFieldsetsListingDocument = { +export const SlackChannelFieldsetsListingDocumentSchema = { description: 'Document Listing.', properties: { data: { @@ -7155,7 +7171,7 @@ export const $SlackChannelFieldsetsListingDocument = { type: 'object', } as const; -export const $SlackConnection = { +export const SlackConnectionSchema = { properties: { attributes: { properties: { @@ -7212,7 +7228,7 @@ export const $SlackConnection = { type: 'object', } as const; -export const $SlackConnectionDocument = { +export const SlackConnectionDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -7235,7 +7251,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $SlackIntegration = { +export const SlackIntegrationSchema = { properties: { attributes: { properties: { @@ -7399,7 +7415,7 @@ export const $SlackIntegration = { type: 'object', } as const; -export const $SlackIntegrationDocument = { +export const SlackIntegrationDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -7422,7 +7438,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $SlackIntegrationListingDocument = { +export const SlackIntegrationListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -7455,7 +7471,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $SoftwareVersion = { +export const SoftwareVersionSchema = { description: 'Represents a software version.', properties: { attributes: { @@ -7548,7 +7564,7 @@ for the given software-type.`, type: 'object', } as const; -export const $SoftwareVersionDocument = { +export const SoftwareVersionDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -7571,7 +7587,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $SoftwareVersionListingDocument = { +export const SoftwareVersionListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -7604,7 +7620,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Sources = { +export const SourcesSchema = { enum: [ 'api', 'cli', @@ -7632,7 +7648,7 @@ export const $Sources = { type: 'string', } as const; -export const $StateVersion = { +export const StateVersionSchema = { description: 'A State version is the version of a state file associated with a workspace.', properties: { attributes: { @@ -7887,7 +7903,7 @@ export const $StateVersion = { type: 'object', } as const; -export const $StateVersionDocument = { +export const StateVersionDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -7910,7 +7926,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $StateVersionListingDocument = { +export const StateVersionListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -7943,7 +7959,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $StatusTransition = { +export const StatusTransitionSchema = { description: 'Status transition of entity.', properties: { attributes: { @@ -8007,7 +8023,7 @@ export const $StatusTransition = { type: 'object', } as const; -export const $StatusTransitionDocument = { +export const StatusTransitionDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -8030,7 +8046,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Tag = { +export const TagSchema = { description: `Tag is a keyword or term associated with a Scalr resource. It is used to label resources across the account to help to identify them, improve searchability or can even participate in a terraform run e.g. as a part of metadata for policy decision. @@ -8098,7 +8114,7 @@ Tags are unique within the account. Deleted tags will be removed from associated type: 'object', } as const; -export const $TagDocument = { +export const TagDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -8121,7 +8137,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TagListingDocument = { +export const TagListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -8154,7 +8170,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TagRelationship = { +export const TagRelationshipSchema = { description: "Represents tags' relationship.", properties: { id: { @@ -8169,7 +8185,7 @@ export const $TagRelationship = { type: 'object', } as const; -export const $TagRelationshipFieldsetsListingDocument = { +export const TagRelationshipFieldsetsListingDocumentSchema = { description: 'Document Listing.', properties: { data: { @@ -8200,7 +8216,7 @@ export const $TagRelationshipFieldsetsListingDocument = { type: 'object', } as const; -export const $Team = { +export const TeamSchema = { description: `A [IAM](https://docs.scalr.io/docs/identity-and-access-management) team is used to organize users into logical units. A team can not be used to group service accounts, only standard users.`, @@ -8318,7 +8334,7 @@ A team can not be used to group service accounts, only standard users.`, type: 'object', } as const; -export const $TeamDocument = { +export const TeamDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -8341,7 +8357,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TeamListingDocument = { +export const TeamListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -8374,7 +8390,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TerraformModuleUsage = { +export const TerraformModuleUsageSchema = { description: 'Represents terraform module usage instance.', properties: { attributes: { @@ -8448,7 +8464,7 @@ export const $TerraformModuleUsage = { type: 'object', } as const; -export const $TerraformModuleUsageDocument = { +export const TerraformModuleUsageDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -8471,7 +8487,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TerraformModuleUsageListingDocument = { +export const TerraformModuleUsageListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -8504,7 +8520,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TerraformModuleUsageSource = { +export const TerraformModuleUsageSourceSchema = { description: 'Represents terraform module source', properties: { source: { @@ -8515,7 +8531,7 @@ export const $TerraformModuleUsageSource = { type: 'object', } as const; -export const $TerraformModuleUsageSourceFieldsetsListingDocument = { +export const TerraformModuleUsageSourceFieldsetsListingDocumentSchema = { description: 'Document Listing.', properties: { data: { @@ -8546,7 +8562,7 @@ export const $TerraformModuleUsageSourceFieldsetsListingDocument = { type: 'object', } as const; -export const $TerraformModuleUsageVersion = { +export const TerraformModuleUsageVersionSchema = { description: 'Represents terraform module version', properties: { version: { @@ -8556,7 +8572,7 @@ export const $TerraformModuleUsageVersion = { type: 'object', } as const; -export const $TerraformModuleUsageVersionFieldsetsListingDocument = { +export const TerraformModuleUsageVersionFieldsetsListingDocumentSchema = { description: 'Document Listing.', properties: { data: { @@ -8587,7 +8603,7 @@ export const $TerraformModuleUsageVersionFieldsetsListingDocument = { type: 'object', } as const; -export const $TerraformModuleVersionUsage = { +export const TerraformModuleVersionUsageSchema = { description: 'Represents terraform module version usage instance.', properties: { attributes: { @@ -8671,7 +8687,7 @@ export const $TerraformModuleVersionUsage = { type: 'object', } as const; -export const $TerraformModuleVersionUsageListingDocument = { +export const TerraformModuleVersionUsageListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -8704,7 +8720,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TerraformProviderUsage = { +export const TerraformProviderUsageSchema = { description: 'Represents terraform provider usage instance.', properties: { attributes: { @@ -8745,7 +8761,7 @@ export const $TerraformProviderUsage = { type: 'object', } as const; -export const $TerraformProviderUsageDocument = { +export const TerraformProviderUsageDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -8768,7 +8784,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TerraformProviderUsageListingDocument = { +export const TerraformProviderUsageListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -8801,7 +8817,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TerraformProviderUsageSource = { +export const TerraformProviderUsageSourceSchema = { description: 'Represents terraform provider source', properties: { source: { @@ -8812,7 +8828,7 @@ export const $TerraformProviderUsageSource = { type: 'object', } as const; -export const $TerraformProviderUsageSourceFieldsetsListingDocument = { +export const TerraformProviderUsageSourceFieldsetsListingDocumentSchema = { description: 'Document Listing.', properties: { data: { @@ -8843,7 +8859,7 @@ export const $TerraformProviderUsageSourceFieldsetsListingDocument = { type: 'object', } as const; -export const $TerraformProviderUsageVersion = { +export const TerraformProviderUsageVersionSchema = { description: 'Represents terraform provider version', properties: { version: { @@ -8854,7 +8870,7 @@ export const $TerraformProviderUsageVersion = { type: 'object', } as const; -export const $TerraformProviderUsageVersionFieldsetsListingDocument = { +export const TerraformProviderUsageVersionFieldsetsListingDocumentSchema = { description: 'Document Listing.', properties: { data: { @@ -8885,7 +8901,7 @@ export const $TerraformProviderUsageVersionFieldsetsListingDocument = { type: 'object', } as const; -export const $TerraformProviderVersionUsage = { +export const TerraformProviderVersionUsageSchema = { description: 'Represents terraform provider version usage.', properties: { attributes: { @@ -8969,7 +8985,7 @@ export const $TerraformProviderVersionUsage = { type: 'object', } as const; -export const $TerraformProviderVersionUsageListingDocument = { +export const TerraformProviderVersionUsageListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -9002,7 +9018,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TerraformResourceInstanceUsage = { +export const TerraformResourceInstanceUsageSchema = { description: 'Represents terraform resource instance usage', properties: { attributes: { @@ -9180,7 +9196,7 @@ export const $TerraformResourceInstanceUsage = { type: 'object', } as const; -export const $TerraformResourceInstanceUsageListingDocument = { +export const TerraformResourceInstanceUsageListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -9213,7 +9229,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TerraformResourceUsage = { +export const TerraformResourceUsageSchema = { description: 'Represents terraform resource usage instance', properties: { attributes: { @@ -9295,7 +9311,7 @@ export const $TerraformResourceUsage = { type: 'object', } as const; -export const $TerraformResourceUsageDocument = { +export const TerraformResourceUsageDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -9318,7 +9334,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TerraformResourceUsageListingDocument = { +export const TerraformResourceUsageListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -9351,7 +9367,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TerraformResourceUsageProviderType = { +export const TerraformResourceUsageProviderTypeSchema = { description: 'Represents terraform resource provider type', properties: { 'provider-type': { @@ -9363,7 +9379,7 @@ export const $TerraformResourceUsageProviderType = { type: 'object', } as const; -export const $TerraformResourceUsageProviderTypeFieldsetsListingDocument = { +export const TerraformResourceUsageProviderTypeFieldsetsListingDocumentSchema = { description: 'Document Listing.', properties: { data: { @@ -9394,7 +9410,7 @@ export const $TerraformResourceUsageProviderTypeFieldsetsListingDocument = { type: 'object', } as const; -export const $TerraformVersionUsage = { +export const TerraformVersionUsageSchema = { description: 'Represents terraform version usage instance.', properties: { attributes: { @@ -9503,7 +9519,7 @@ export const $TerraformVersionUsage = { type: 'object', } as const; -export const $TerraformVersionUsageListingDocument = { +export const TerraformVersionUsageListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -9536,7 +9552,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $TerraformVersionUsageVersion = { +export const TerraformVersionUsageVersionSchema = { description: 'Represents terraform version', properties: { version: { @@ -9547,7 +9563,7 @@ export const $TerraformVersionUsageVersion = { type: 'object', } as const; -export const $TerraformVersionUsageVersionFieldsetsListingDocument = { +export const TerraformVersionUsageVersionFieldsetsListingDocumentSchema = { description: 'Document Listing.', properties: { data: { @@ -9578,7 +9594,7 @@ export const $TerraformVersionUsageVersionFieldsetsListingDocument = { type: 'object', } as const; -export const $UsageStatistic = { +export const UsageStatisticSchema = { properties: { attributes: { properties: { @@ -9656,7 +9672,7 @@ export const $UsageStatistic = { type: 'object', } as const; -export const $UsageStatisticListingDocument = { +export const UsageStatisticListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -9689,7 +9705,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $User = { +export const UserSchema = { description: 'Represents a Scalr [IAM](https://docs.scalr.io/docs/identity-and-access-management) user.', properties: { attributes: { @@ -9798,7 +9814,7 @@ export const $User = { type: 'object', } as const; -export const $UserDocument = { +export const UserDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -9821,7 +9837,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $UserInvite = { +export const UserInviteSchema = { description: 'Represents an create [IAM](https://docs.scalr.io/docs/identity-and-access-management) account user request.', properties: { @@ -9912,7 +9928,7 @@ export const $UserInvite = { type: 'object', } as const; -export const $UserInviteDocument = { +export const UserInviteDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -9935,7 +9951,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $UserListingDocument = { +export const UserListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -9968,7 +9984,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Variable = { +export const VariableSchema = { description: `A Variable describes the configuration and value of a variable in a workspace. In Scalr there are "terraform" and "environment" variables. @@ -10121,7 +10137,7 @@ after being written.`, type: 'object', } as const; -export const $VariableDocument = { +export const VariableDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -10144,7 +10160,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $VariableListingDocument = { +export const VariableListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -10177,7 +10193,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $VcsProvider = { +export const VcsProviderSchema = { description: `The [VCS Provider](../../vcs_providers.html) resource represents a connection between a Scalr account and a VCS, such as GitHub, Gitlab, Bitbucket, and Azure DevOps.`, properties: { @@ -10363,7 +10379,7 @@ Required for GitHub Enterprise, GitLab Enterprise and Bitbucket Data Center.`, type: 'object', } as const; -export const $VcsProviderDocument = { +export const VcsProviderDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -10386,7 +10402,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $VcsProviderListingDocument = { +export const VcsProviderListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -10419,7 +10435,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $VcsRevision = { +export const VcsRevisionSchema = { description: 'Resource represents a VCS revision attributes.', properties: { attributes: { @@ -10479,7 +10495,7 @@ export const $VcsRevision = { type: 'object', } as const; -export const $VcsRevisionDocument = { +export const VcsRevisionDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -10502,7 +10518,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $VcsTaskRequest = { +export const VcsTaskRequestSchema = { description: 'Represents a request for creating a VCS task.', properties: { branch: { @@ -10525,7 +10541,7 @@ export const $VcsTaskRequest = { type: 'object', } as const; -export const $WebhookIntegration = { +export const WebhookIntegrationSchema = { description: `Represents the webhook integration The extra fields below are not available in response by default. Ask for them explicitly in the query parameter \`fields[webhook-integrations]\`: @@ -10767,7 +10783,7 @@ of all available events.`, type: 'object', } as const; -export const $WebhookIntegrationDelivery = { +export const WebhookIntegrationDeliverySchema = { description: 'Represents an IaCP Webhook integration delivery.', properties: { attributes: { @@ -10979,7 +10995,7 @@ export const $WebhookIntegrationDelivery = { type: 'object', } as const; -export const $WebhookIntegrationDeliveryDocument = { +export const WebhookIntegrationDeliveryDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -11002,7 +11018,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $WebhookIntegrationDeliveryListingDocument = { +export const WebhookIntegrationDeliveryListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -11035,7 +11051,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $WebhookIntegrationDocument = { +export const WebhookIntegrationDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -11058,7 +11074,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $WebhookIntegrationListingDocument = { +export const WebhookIntegrationListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -11091,7 +11107,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $Workspace = { +export const WorkspaceSchema = { description: `A Workspace is where Terraform runs are performed for a specific configuration, and where the resulting state file(s) are stored. @@ -11717,7 +11733,7 @@ If 'trigger-patterns' and 'trigger-prefixes' are omitted, any change in the conf type: 'object', } as const; -export const $WorkspaceDocument = { +export const WorkspaceDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -11740,7 +11756,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $WorkspaceListingDocument = { +export const WorkspaceListingDocumentSchema = { description: `JSON:API Document Listing see: https://jsonapi.org/format/#document-structure`, @@ -11773,7 +11789,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $WorkspaceOutput = { +export const WorkspaceOutputSchema = { description: 'Represents a run output.', properties: { name: { @@ -11792,7 +11808,7 @@ export const $WorkspaceOutput = { type: 'object', } as const; -export const $WorkspaceOutputFieldsetsListingDocument = { +export const WorkspaceOutputFieldsetsListingDocumentSchema = { description: 'Document Listing.', properties: { data: { @@ -11823,7 +11839,7 @@ export const $WorkspaceOutputFieldsetsListingDocument = { type: 'object', } as const; -export const $WorkspaceReadme = { +export const WorkspaceReadmeSchema = { description: 'A WorkspaceReadme resource represents the readme file for a workspace.', properties: { attributes: { @@ -11859,7 +11875,7 @@ export const $WorkspaceReadme = { type: 'object', } as const; -export const $WorkspaceReadmeDocument = { +export const WorkspaceReadmeDocumentSchema = { description: `JSON:API Document. see: https://jsonapi.org/format/#document-structure`, @@ -11882,7 +11898,7 @@ see: https://jsonapi.org/format/#document-structure`, type: 'object', } as const; -export const $WorkspaceSchedule = { +export const WorkspaceScheduleSchema = { properties: { 'apply-schedule': { nullable: true, diff --git a/src/api/services.gen.ts b/src/api/services.gen.ts index 485a99f..91ff14f 100644 --- a/src/api/services.gen.ts +++ b/src/api/services.gen.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -import { client, type Options } from '@hey-api/client-fetch'; +import { createClient, createConfig, type Options } from '@hey-api/client-fetch'; import type { GetAccountsData, GetAccountsError, @@ -172,11 +172,13 @@ import type { AddWorkspaceTagsResponse, } from './types.gen'; +export const client = createClient(createConfig()); + /** * List Accounts */ -export const getAccounts = (options?: Options) => { - return (options?.client ?? client).get({ +export const getAccounts = (options?: Options) => { + return (options?.client ?? client).get({ ...options, url: '/accounts', }); @@ -186,8 +188,8 @@ export const getAccounts = (options?: Options) => { * Get an Account * Show details of a specific account. */ -export const getAccount = (options: Options) => { - return (options?.client ?? client).get({ +export const getAccount = (options: Options) => { + return (options?.client ?? client).get({ ...options, url: '/accounts/{account}', }); @@ -196,8 +198,10 @@ export const getAccount = (options: Options) => { /** * Update Account */ -export const updateAccount = (options: Options) => { - return (options?.client ?? client).patch({ +export const updateAccount = ( + options: Options +) => { + return (options?.client ?? client).patch({ ...options, url: '/accounts/{account}', }); @@ -214,8 +218,10 @@ export const updateAccount = (options: Options) => { * This is the preferred way to create users. * */ -export const inviteUserToAccount = (options: Options) => { - return (options?.client ?? client).post({ +export const inviteUserToAccount = ( + options: Options +) => { + return (options?.client ?? client).post({ ...options, url: '/accounts/{account}/actions/invite', }); @@ -227,8 +233,10 @@ export const inviteUserToAccount = (options: Options) = * associated with the account. * */ -export const removeUserFromAccount = (options: Options) => { - return (options?.client ?? client).delete({ +export const removeUserFromAccount = ( + options: Options +) => { + return (options?.client ?? client).delete({ ...options, url: '/accounts/{account}/actions/remove/{user}', }); @@ -243,8 +251,14 @@ export const removeUserFromAccount = (options: Options) => { - return (options?.client ?? client).delete({ +export const deleteAccountBlobSettings = ( + options: Options +) => { + return (options?.client ?? client).delete< + DeleteAccountBlobSettingsResponse, + DeleteAccountBlobSettingsError, + ThrowOnError + >({ ...options, url: '/accounts/{account}/blob-settings', }); @@ -254,8 +268,10 @@ export const deleteAccountBlobSettings = (options: Options) => { - return (options?.client ?? client).get({ +export const getAccountBlobSettings = ( + options: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/accounts/{account}/blob-settings', }); @@ -273,8 +289,14 @@ export const getAccountBlobSettings = (options: Options) => { - return (options?.client ?? client).patch({ +export const updateAccountBlobSettings = ( + options: Options +) => { + return (options?.client ?? client).patch< + UpdateAccountBlobSettingsResponse, + UpdateAccountBlobSettingsError, + ThrowOnError + >({ ...options, url: '/accounts/{account}/blob-settings', }); @@ -289,8 +311,14 @@ export const updateAccountBlobSettings = (options: Options) => { - return (options?.client ?? client).put({ +export const replaceAccountBlobSettings = ( + options: Options +) => { + return (options?.client ?? client).put< + ReplaceAccountBlobSettingsResponse, + ReplaceAccountBlobSettingsError, + ThrowOnError + >({ ...options, url: '/accounts/{account}/blob-settings', }); @@ -299,8 +327,8 @@ export const replaceAccountBlobSettings = (options: Options) => { - return (options?.client ?? client).get({ +export const getMetrics = (options: Options) => { + return (options?.client ?? client).get({ ...options, url: '/accounts/{account}/metrics', }); @@ -310,8 +338,8 @@ export const getMetrics = (options: Options) => { * Get an Apply * Show details of a specific Terraform Apply stage. */ -export const getApply = (options: Options) => { - return (options?.client ?? client).get({ +export const getApply = (options: Options) => { + return (options?.client ?? client).get({ ...options, url: '/applies/{apply}', }); @@ -321,8 +349,8 @@ export const getApply = (options: Options) => { * Apply Log * Download the raw output of the terraform apply stage. */ -export const getApplyLog = (options: Options) => { - return (options?.client ?? client).get({ +export const getApplyLog = (options: Options) => { + return (options?.client ?? client).get({ ...options, url: '/applies/{apply}/output', }); @@ -332,8 +360,10 @@ export const getApplyLog = (options: Options) => { * List Environments * This endpoint lists account environments. */ -export const listEnvironments = (options?: Options) => { - return (options?.client ?? client).get({ +export const listEnvironments = ( + options?: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/environments', }); @@ -343,8 +373,10 @@ export const listEnvironments = (options?: Options) => { * Create an Environment * Create a new environment in the account. */ -export const createEnvironment = (options?: Options) => { - return (options?.client ?? client).post({ +export const createEnvironment = ( + options?: Options +) => { + return (options?.client ?? client).post({ ...options, url: '/environments', }); @@ -353,8 +385,10 @@ export const createEnvironment = (options?: Options) => { /** * Delete an Environment */ -export const deleteEnvironment = (options: Options) => { - return (options?.client ?? client).delete({ +export const deleteEnvironment = ( + options: Options +) => { + return (options?.client ?? client).delete({ ...options, url: '/environments/{environment}', }); @@ -364,8 +398,10 @@ export const deleteEnvironment = (options: Options) => { * Get an Environment * Show details of a specific environment. */ -export const getEnvironment = (options: Options) => { - return (options?.client ?? client).get({ +export const getEnvironment = ( + options: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/environments/{environment}', }); @@ -374,8 +410,10 @@ export const getEnvironment = (options: Options) => { /** * Update Environment */ -export const updateEnvironment = (options: Options) => { - return (options?.client ?? client).patch({ +export const updateEnvironment = ( + options: Options +) => { + return (options?.client ?? client).patch({ ...options, url: '/environments/{environment}', }); @@ -386,8 +424,10 @@ export const updateEnvironment = (options: Options) => { * This endpoint removes given [tags](tags.html#the-tag-resource) from the environment. * */ -export const deleteEnvironmentTags = (options: Options) => { - return (options?.client ?? client).delete({ +export const deleteEnvironmentTags = ( + options: Options +) => { + return (options?.client ?? client).delete({ ...options, url: '/environments/{environment}/relationships/tags', }); @@ -399,8 +439,10 @@ export const deleteEnvironmentTags = (options: Options) => { - return (options?.client ?? client).get({ +export const listEnvironmentTags = ( + options: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/environments/{environment}/relationships/tags', }); @@ -411,11 +453,15 @@ export const listEnvironmentTags = (options: Options) = * This endpoint completely replaces environment's tags with provided list. * */ -export const replaceEnvironmentTags = (options: Options) => { - return (options?.client ?? client).patch({ - ...options, - url: '/environments/{environment}/relationships/tags', - }); +export const replaceEnvironmentTags = ( + options: Options +) => { + return (options?.client ?? client).patch( + { + ...options, + url: '/environments/{environment}/relationships/tags', + } + ); }; /** @@ -423,8 +469,10 @@ export const replaceEnvironmentTags = (options: Options) => { - return (options?.client ?? client).post({ +export const addEnvironmentTags = ( + options: Options +) => { + return (options?.client ?? client).post({ ...options, url: '/environments/{environment}/relationships/tags', }); @@ -434,8 +482,8 @@ export const addEnvironmentTags = (options: Options) => * Get a Plan * Show details of a specific Terraform Plan stage. */ -export const getPlan = (options: Options) => { - return (options?.client ?? client).get({ +export const getPlan = (options: Options) => { + return (options?.client ?? client).get({ ...options, url: '/plans/{plan}', }); @@ -445,8 +493,10 @@ export const getPlan = (options: Options) => { * JSON Output * Download JSON formatted execution plan. */ -export const getJsonOutput = (options: Options) => { - return (options?.client ?? client).get({ +export const getJsonOutput = ( + options: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/plans/{plan}/json-output', }); @@ -456,8 +506,8 @@ export const getJsonOutput = (options: Options) => { * Plan Log * Download the raw output of the terraform plan stage. */ -export const getPlanLog = (options: Options) => { - return (options?.client ?? client).get({ +export const getPlanLog = (options: Options) => { + return (options?.client ?? client).get({ ...options, url: '/plans/{plan}/output', }); @@ -467,8 +517,10 @@ export const getPlanLog = (options: Options) => { * Sanitized JSON Output * Download plan file in machine-readable format with sanitized sensitive values. */ -export const getSanitizedJsonOutput = (options: Options) => { - return (options?.client ?? client).get({ +export const getSanitizedJsonOutput = ( + options: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/plans/{plan}/sanitized-json-output', }); @@ -478,8 +530,8 @@ export const getSanitizedJsonOutput = (options: Options) => { - return (options?.client ?? client).get({ +export const getRuns = (options?: Options) => { + return (options?.client ?? client).get({ ...options, url: '/runs', }); @@ -494,8 +546,8 @@ export const getRuns = (options?: Options) => { * in the relationships. * */ -export const createRun = (options?: Options) => { - return (options?.client ?? client).post({ +export const createRun = (options?: Options) => { + return (options?.client ?? client).post({ ...options, url: '/runs', }); @@ -506,8 +558,10 @@ export const createRun = (options?: Options) => { * This endpoint lists Runs Queue on allowed scopes. * */ -export const getRunsQueue = (options?: Options) => { - return (options?.client ?? client).get({ +export const getRunsQueue = ( + options?: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/runs-queue', }); @@ -517,8 +571,8 @@ export const getRunsQueue = (options?: Options) => { * Get a Run * Show details of a specific run. */ -export const getRun = (options: Options) => { - return (options?.client ?? client).get({ +export const getRun = (options: Options) => { + return (options?.client ?? client).get({ ...options, url: '/runs/{run}', }); @@ -531,8 +585,8 @@ export const getRun = (options: Options) => { * This includes runs in the `planned` and `policy_checked` states. * This action is only required for runs that can't be auto-applied. */ -export const confirmRun = (options: Options) => { - return (options?.client ?? client).post({ +export const confirmRun = (options: Options) => { + return (options?.client ?? client).post({ ...options, url: '/runs/{run}/actions/apply', }); @@ -546,8 +600,8 @@ export const confirmRun = (options: Options) => { * apply on the CLI. The running Terraform process is sent an `INT` signal, which instructs * Terraform to end its work and wrap up in the safest way possible. */ -export const cancelRun = (options: Options) => { - return (options?.client ?? client).post({ +export const cancelRun = (options: Options) => { + return (options?.client ?? client).post({ ...options, url: '/runs/{run}/actions/cancel', }); @@ -559,8 +613,8 @@ export const cancelRun = (options: Options) => { * * This includes runs in the `pending`, `planned`, `policy_checked` and `policy_override` states. */ -export const discardRun = (options: Options) => { - return (options?.client ?? client).post({ +export const discardRun = (options: Options) => { + return (options?.client ?? client).post({ ...options, url: '/runs/{run}/actions/discard', }); @@ -571,8 +625,8 @@ export const discardRun = (options: Options) => { * Cancel all previous runs in pending or waiting for confirmation statuses. * */ -export const forceRun = (options: Options) => { - return (options?.client ?? client).post({ +export const forceRun = (options: Options) => { + return (options?.client ?? client).post({ ...options, url: '/runs/{run}/actions/force', }); @@ -582,8 +636,10 @@ export const forceRun = (options: Options) => { * List Policy Checks * List policy checks for a specific run. */ -export const listPolicyChecks = (options: Options) => { - return (options?.client ?? client).get({ +export const listPolicyChecks = ( + options: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/runs/{run}/policy-checks', }); @@ -595,8 +651,10 @@ export const listPolicyChecks = (options: Options) => { * * See [Policy Input](https://docs.scalr.io/docs/policy-as-code) data structure. */ -export const downloadPolicyInput = (options: Options) => { - return (options?.client ?? client).get({ +export const downloadPolicyInput = ( + options: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/runs/{run}/policy-input', }); @@ -605,8 +663,10 @@ export const downloadPolicyInput = (options: Options) = /** * List Workspaces */ -export const getWorkspaces = (options?: Options) => { - return (options?.client ?? client).get({ +export const getWorkspaces = ( + options?: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/workspaces', }); @@ -622,8 +682,10 @@ export const getWorkspaces = (options?: Options) => { * in the workspace. * */ -export const createWorkspace = (options?: Options) => { - return (options?.client ?? client).post({ +export const createWorkspace = ( + options?: Options +) => { + return (options?.client ?? client).post({ ...options, url: '/workspaces', }); @@ -632,8 +694,10 @@ export const createWorkspace = (options?: Options) => { /** * Delete a Workspace */ -export const deleteWorkspace = (options: Options) => { - return (options?.client ?? client).delete({ +export const deleteWorkspace = ( + options: Options +) => { + return (options?.client ?? client).delete({ ...options, url: '/workspaces/{workspace}', }); @@ -643,8 +707,10 @@ export const deleteWorkspace = (options: Options) => { * Get a Workspace * Show details of a specific workspace. */ -export const getWorkspace = (options: Options) => { - return (options?.client ?? client).get({ +export const getWorkspace = ( + options: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/workspaces/{workspace}', }); @@ -653,8 +719,10 @@ export const getWorkspace = (options: Options) => { /** * Update a Workspace */ -export const updateWorkspace = (options: Options) => { - return (options?.client ?? client).patch({ +export const updateWorkspace = ( + options: Options +) => { + return (options?.client ?? client).patch({ ...options, url: '/workspaces/{workspace}', }); @@ -664,8 +732,10 @@ export const updateWorkspace = (options: Options) => { * Lock a Workspace * This endpoint locks a workspace. */ -export const lockWorkspace = (options: Options) => { - return (options?.client ?? client).post({ +export const lockWorkspace = ( + options: Options +) => { + return (options?.client ?? client).post({ ...options, url: '/workspaces/{workspace}/actions/lock', }); @@ -676,8 +746,10 @@ export const lockWorkspace = (options: Options) => { * This endpoint triggers a Configuration Version resync for a Workspace * associated with a VCS repository. */ -export const resyncWorkspace = (options: Options) => { - return (options?.client ?? client).post({ +export const resyncWorkspace = ( + options: Options +) => { + return (options?.client ?? client).post({ ...options, url: '/workspaces/{workspace}/actions/resync', }); @@ -686,8 +758,8 @@ export const resyncWorkspace = (options: Options) => { /** * Set scheduled runs for the workspace */ -export const setSchedule = (options: Options) => { - return (options?.client ?? client).post({ +export const setSchedule = (options: Options) => { + return (options?.client ?? client).post({ ...options, url: '/workspaces/{workspace}/actions/set-schedule', }); @@ -697,8 +769,10 @@ export const setSchedule = (options: Options) => { * Unlock a Workspace * This endpoint unlocks a workspace. */ -export const unlockWorkspace = (options: Options) => { - return (options?.client ?? client).post({ +export const unlockWorkspace = ( + options: Options +) => { + return (options?.client ?? client).post({ ...options, url: '/workspaces/{workspace}/actions/unlock', }); @@ -710,8 +784,10 @@ export const unlockWorkspace = (options: Options) => { * * This state version will be the input state when running terraform operations. */ -export const getCurrentStateVersion = (options: Options) => { - return (options?.client ?? client).get({ +export const getCurrentStateVersion = ( + options: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/workspaces/{workspace}/current-state-version', }); @@ -722,8 +798,10 @@ export const getCurrentStateVersion = (options: Options) => { - return (options?.client ?? client).get({ +export const getWorkspaceOutputs = ( + options: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/workspaces/{workspace}/outputs', }); @@ -734,13 +812,17 @@ export const getWorkspaceOutputs = (options: Options) = * This endpoint returns a list of Provider configuration links or configurations that are used during the workspace runs. * */ -export const listProviderConfigurationLinks = (options: Options) => { - return (options?.client ?? client).get( - { - ...options, - url: '/workspaces/{workspace}/provider-configuration-links', - } - ); +export const listProviderConfigurationLinks = ( + options: Options +) => { + return (options?.client ?? client).get< + ListProviderConfigurationLinksResponse, + ListProviderConfigurationLinksError, + ThrowOnError + >({ + ...options, + url: '/workspaces/{workspace}/provider-configuration-links', + }); }; /** @@ -748,10 +830,13 @@ export const listProviderConfigurationLinks = (options: Options) => { +export const createProviderConfigurationLink = ( + options: Options +) => { return (options?.client ?? client).post< CreateProviderConfigurationLinkResponse, - CreateProviderConfigurationLinkError + CreateProviderConfigurationLinkError, + ThrowOnError >({ ...options, url: '/workspaces/{workspace}/provider-configuration-links', @@ -764,8 +849,14 @@ export const createProviderConfigurationLink = (options: Options) => { - return (options?.client ?? client).delete({ +export const deleteRemoteStateConsumers = ( + options: Options +) => { + return (options?.client ?? client).delete< + DeleteRemoteStateConsumersResponse, + DeleteRemoteStateConsumersError, + ThrowOnError + >({ ...options, url: '/workspaces/{workspace}/relationships/remote-state-consumers', }); @@ -777,8 +868,14 @@ export const deleteRemoteStateConsumers = (options: Options) => { - return (options?.client ?? client).get({ +export const listRemoteStateConsumers = ( + options: Options +) => { + return (options?.client ?? client).get< + ListRemoteStateConsumersResponse, + ListRemoteStateConsumersError, + ThrowOnError + >({ ...options, url: '/workspaces/{workspace}/relationships/remote-state-consumers', }); @@ -789,8 +886,14 @@ export const listRemoteStateConsumers = (options: Options) => { - return (options?.client ?? client).patch({ +export const replaceRemoteStateConsumers = ( + options: Options +) => { + return (options?.client ?? client).patch< + ReplaceRemoteStateConsumersResponse, + ReplaceRemoteStateConsumersError, + ThrowOnError + >({ ...options, url: '/workspaces/{workspace}/relationships/remote-state-consumers', }); @@ -802,8 +905,14 @@ export const replaceRemoteStateConsumers = (options: Options) => { - return (options?.client ?? client).post({ +export const addRemoteStateConsumers = ( + options: Options +) => { + return (options?.client ?? client).post< + AddRemoteStateConsumersResponse, + AddRemoteStateConsumersError, + ThrowOnError + >({ ...options, url: '/workspaces/{workspace}/relationships/remote-state-consumers', }); @@ -814,8 +923,10 @@ export const addRemoteStateConsumers = (options: Options) => { - return (options?.client ?? client).delete({ +export const deleteWorkspaceTags = ( + options: Options +) => { + return (options?.client ?? client).delete({ ...options, url: '/workspaces/{workspace}/relationships/tags', }); @@ -827,8 +938,10 @@ export const deleteWorkspaceTags = (options: Options) = * assigned to a workspace. * */ -export const listWorkspaceTags = (options: Options) => { - return (options?.client ?? client).get({ +export const listWorkspaceTags = ( + options: Options +) => { + return (options?.client ?? client).get({ ...options, url: '/workspaces/{workspace}/relationships/tags', }); @@ -839,8 +952,10 @@ export const listWorkspaceTags = (options: Options) => { * This endpoint completely replaces workspace's tags with provided list. * */ -export const replaceWorkspaceTags = (options: Options) => { - return (options?.client ?? client).patch({ +export const replaceWorkspaceTags = ( + options: Options +) => { + return (options?.client ?? client).patch({ ...options, url: '/workspaces/{workspace}/relationships/tags', }); @@ -851,8 +966,10 @@ export const replaceWorkspaceTags = (options: Options) * This endpoint assigns the list of [tags](tags.html#the-tag-resource) to the workspace. * */ -export const addWorkspaceTags = (options: Options) => { - return (options?.client ?? client).post({ +export const addWorkspaceTags = ( + options: Options +) => { + return (options?.client ?? client).post({ ...options, url: '/workspaces/{workspace}/relationships/tags', }); diff --git a/src/api/types.gen.ts b/src/api/types.gen.ts index 1c45a20..974a134 100644 --- a/src/api/types.gen.ts +++ b/src/api/types.gen.ts @@ -2204,11 +2204,13 @@ export type ModuleVersion = { name?: string; sensitive?: boolean; value?: - | string - | { - [key: string]: unknown; - } - | Array + | ( + | string + | { + [key: string]: unknown; + } + | Array + ) | null; }> | null; /** @@ -2930,6 +2932,10 @@ export type PolicyGroup = { * This field contains the error description when the group's status is `errored`. */ readonly 'error-message'?: string | null; + /** + * The stage of the run to evaluate the policy group. + */ + 'execute-as'?: 'pre_plan_check' | 'policy_check'; /** * Indicates whether the policy group is enforced in all environments. */ @@ -3030,6 +3036,19 @@ export type PolicyGroup = { type: 'policy-groups'; }; +/** + * The stage of the run to evaluate the policy group. + */ +export type execute_as = 'pre_plan_check' | 'policy_check'; + +/** + * The stage of the run to evaluate the policy group. + */ +export const execute_as = { + PRE_PLAN_CHECK: 'pre_plan_check', + POLICY_CHECK: 'policy_check', +} as const; + /** * Policy group current status. * @@ -3118,7 +3137,7 @@ export type ProviderConfiguration = { /** * The type of AWS account, available options: `regular`, `gov-cloud`, `cn-cloud`. */ - 'aws-account-type'?: 'regular' | 'gov-cloud' | 'cn-cloud' | null; + 'aws-account-type'?: ('regular' | 'gov-cloud' | 'cn-cloud') | null; /** * The value of the aud claim for the identity token. */ @@ -3126,7 +3145,7 @@ export type ProviderConfiguration = { /** * The type of AWS credential, available options: `access_keys`, `role_delegation`, `oidc`. */ - 'aws-credentials-type'?: 'role_delegation' | 'access_keys' | 'oidc' | null; + 'aws-credentials-type'?: ('role_delegation' | 'access_keys' | 'oidc') | null; /** * External identifier to use when assuming the role. This option is required with the `role_delegation` credential type. */ @@ -3142,7 +3161,7 @@ export type ProviderConfiguration = { /** * Trusted entity type, available options: `aws_account`, `aws_service`. This option is required with the `role_delegation` credential type. */ - 'aws-trusted-entity-type'?: 'aws_account' | 'aws_service' | null; + 'aws-trusted-entity-type'?: ('aws_account' | 'aws_service') | null; /** * The value of the aud claim for the identity token. */ @@ -3150,7 +3169,7 @@ export type ProviderConfiguration = { /** * The type of azurerm credentials, available options: `client-secrets`, `oidc`. */ - 'azurerm-auth-type'?: 'client-secrets' | 'oidc' | null; + 'azurerm-auth-type'?: ('client-secrets' | 'oidc') | null; /** * The Client ID which should be used. */ @@ -3178,7 +3197,7 @@ export type ProviderConfiguration = { /** * Authentication type to access GCP. */ - 'google-auth-type'?: 'service-account-key' | 'oidc' | null; + 'google-auth-type'?: ('service-account-key' | 'oidc') | null; /** * Service account key file in JSON format. */ @@ -3549,13 +3568,15 @@ export type Reason = { export type RegistryInputOptional = { default: - | boolean - | number - | string - | Array - | { - [key: string]: unknown; - } + | ( + | boolean + | number + | string + | Array + | { + [key: string]: unknown; + } + ) | null; description?: string | null; name: string; @@ -3718,13 +3739,15 @@ export type Run = { name?: string; sensitive?: boolean; value?: - | boolean - | number - | string - | Array - | { - [key: string]: unknown; - } + | ( + | boolean + | number + | string + | Array + | { + [key: string]: unknown; + } + ) | null; }> | null; /** @@ -3803,21 +3826,31 @@ export type Run = { */ readonly status?: | 'pending' + | 'pre_plan_queued' + | 'pre_plan_running' + | 'pre_plan_finished' | 'plan_queued' | 'planning' | 'planned' - | 'planned_and_finished' | 'confirmed' + | 'discarded' + | 'planned_and_finished' + | 'post_plan_running' + | 'post_plan_finished' | 'cost_estimating' | 'cost_estimated' | 'policy_checking' | 'policy_override' | 'policy_checked' + | 'pre_apply_queued' + | 'pre_apply_running' + | 'pre_apply_finished' | 'apply_queued' | 'applying' | 'applied' + | 'post_apply_running' + | 'post_apply_finished' | 'errored' - | 'discarded' | 'canceled'; /** * Timestamps of transition to prior and current statuses. @@ -4008,21 +4041,31 @@ export const iac_platform = { */ export type status13 = | 'pending' + | 'pre_plan_queued' + | 'pre_plan_running' + | 'pre_plan_finished' | 'plan_queued' | 'planning' | 'planned' - | 'planned_and_finished' | 'confirmed' + | 'discarded' + | 'planned_and_finished' + | 'post_plan_running' + | 'post_plan_finished' | 'cost_estimating' | 'cost_estimated' | 'policy_checking' | 'policy_override' | 'policy_checked' + | 'pre_apply_queued' + | 'pre_apply_running' + | 'pre_apply_finished' | 'apply_queued' | 'applying' | 'applied' + | 'post_apply_running' + | 'post_apply_finished' | 'errored' - | 'discarded' | 'canceled'; /** @@ -4067,21 +4110,31 @@ export type status13 = */ export const status13 = { PENDING: 'pending', + PRE_PLAN_QUEUED: 'pre_plan_queued', + PRE_PLAN_RUNNING: 'pre_plan_running', + PRE_PLAN_FINISHED: 'pre_plan_finished', PLAN_QUEUED: 'plan_queued', PLANNING: 'planning', PLANNED: 'planned', - PLANNED_AND_FINISHED: 'planned_and_finished', CONFIRMED: 'confirmed', + DISCARDED: 'discarded', + PLANNED_AND_FINISHED: 'planned_and_finished', + POST_PLAN_RUNNING: 'post_plan_running', + POST_PLAN_FINISHED: 'post_plan_finished', COST_ESTIMATING: 'cost_estimating', COST_ESTIMATED: 'cost_estimated', POLICY_CHECKING: 'policy_checking', POLICY_OVERRIDE: 'policy_override', POLICY_CHECKED: 'policy_checked', + PRE_APPLY_QUEUED: 'pre_apply_queued', + PRE_APPLY_RUNNING: 'pre_apply_running', + PRE_APPLY_FINISHED: 'pre_apply_finished', APPLY_QUEUED: 'apply_queued', APPLYING: 'applying', APPLIED: 'applied', + POST_APPLY_RUNNING: 'post_apply_running', + POST_APPLY_FINISHED: 'post_apply_finished', ERRORED: 'errored', - DISCARDED: 'discarded', CANCELED: 'canceled', } as const; @@ -4372,9 +4425,11 @@ export type SamlIntegration = { * Algorithm that Scalr will use on digest process. */ 'security-digest-algorithm'?: - | 'http://www.w3.org/2001/04/xmlenc#sha256' - | 'http://www.w3.org/2001/04/xmldsig-more#sha384' - | 'http://www.w3.org/2001/04/xmlenc#sha512' + | ( + | 'http://www.w3.org/2001/04/xmlenc#sha256' + | 'http://www.w3.org/2001/04/xmldsig-more#sha384' + | 'http://www.w3.org/2001/04/xmlenc#sha512' + ) | null; /** * Indicates whether the messages sent by Scalr will be signed. @@ -5083,11 +5138,13 @@ export type StateVersion = { name?: string; sensitive?: boolean; value?: - | string - | { - [key: string]: unknown; - } - | Array + | ( + | string + | { + [key: string]: unknown; + } + | Array + ) | null; }> | null; /** @@ -5103,7 +5160,7 @@ export type StateVersion = { */ readonly resources?: Array<{ address?: string; - index?: string | number | null; + index?: (string | number) | null; module?: string | null; type?: string; }>; @@ -6763,10 +6820,12 @@ export type WebhookIntegrationDelivery = { * The data (JSON or plain text) received in the response body from the external system. */ 'response-body'?: - | { - [key: string]: unknown; - } - | string + | ( + | { + [key: string]: unknown; + } + | string + ) | null; /** * The HTTP status code returned by the external system. @@ -6940,7 +6999,7 @@ export type Workspace = { /** * How many days should the workspace exist. */ - 'auto-destroy-days'?: 1 | 2 | 7 | 14 | null; + 'auto-destroy-days'?: (1 | 2 | 7 | 14) | null; /** * The status of scheduled destruction of the workspace. */ @@ -9052,1420 +9111,3 @@ export type AddWorkspaceTagsData = { export type AddWorkspaceTagsResponse = void; export type AddWorkspaceTagsError = unknown; - -export type $OpenApiTs = { - '/accounts': { - get: { - req: GetAccountsData; - res: { - /** - * Success. - */ - '200': AccountListingDocument; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/accounts/{account}': { - get: { - req: GetAccountData; - res: { - /** - * Success. - */ - '200': AccountDocument; - /** - * Account not found or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - patch: { - req: UpdateAccountData; - res: { - /** - * Successfully updated the account. - */ - '200': AccountDocument; - /** - * Account or relationship not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Invalid arguments. - */ - '422': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/accounts/{account}/actions/invite': { - post: { - req: InviteUserToAccountData; - res: { - /** - * Success. - */ - '201': AccountUserDocument; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * User, Account, not found. - */ - '404': unknown; - /** - * Invalid team or role. - */ - '422': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/accounts/{account}/actions/remove/{user}': { - delete: { - req: RemoveUserFromAccountData; - res: { - /** - * Successfully removed. - */ - '204': void; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * The user or account not found. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/accounts/{account}/blob-settings': { - delete: { - req: DeleteAccountBlobSettingsData; - res: { - /** - * Success. - */ - '204': void; - /** - * Cannot delete settings in a current state. - */ - '409': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - get: { - req: GetAccountBlobSettingsData; - res: { - /** - * Success. - */ - '200': AccountBlobSettingsDocument; - /** - * Account not found or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - patch: { - req: UpdateAccountBlobSettingsData; - res: { - /** - * Success. - */ - '200': AccountBlobSettingsDocument; - /** - * Custom blob settings are not set. Do `PUT` to create them. - */ - '404': unknown; - /** - * Cannot update settings in a current state. - */ - '409': unknown; - /** - * Invalid arguments. - */ - '422': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - put: { - req: ReplaceAccountBlobSettingsData; - res: { - /** - * Success. - */ - '200': AccountBlobSettingsDocument; - /** - * Cannot replace settings in a current state. - */ - '409': unknown; - /** - * Invalid arguments. - */ - '422': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/accounts/{account}/metrics': { - get: { - req: GetMetricsData; - res: { - /** - * Success. - */ - '200': AccountMetrics; - /** - * Account or relationship not found, or user unauthorized to perform an action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/applies/{apply}': { - get: { - req: GetApplyData; - res: { - /** - * Success. - */ - '200': ApplyDocument; - /** - * Apply not found or user unauthorized to perform action. - */ - '403': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/applies/{apply}/output': { - get: { - req: GetApplyLogData; - res: { - /** - * Apply log. - */ - '200': unknown; - /** - * Apply has not yet completed or can't be served. - */ - '204': void; - /** - * The location of the temporary download link. - */ - '302': unknown; - /** - * Apply not found or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/environments': { - get: { - req: ListEnvironmentsData; - res: { - /** - * Success. - */ - '200': EnvironmentListingDocument; - /** - * Account not found or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - post: { - req: CreateEnvironmentData; - res: { - /** - * The environment was created. - */ - '201': EnvironmentDocument; - /** - * Account relationship not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Invalid arguments. - */ - '422': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/environments/{environment}': { - delete: { - req: DeleteEnvironmentData; - res: { - /** - * Successfully deleted the environment. - */ - '204': void; - /** - * Environment deletion is forbidden. - */ - '403': unknown; - /** - * Environment not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - get: { - req: GetEnvironmentData; - res: { - /** - * Success. - */ - '200': EnvironmentDocument; - /** - * Environment not found or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - patch: { - req: UpdateEnvironmentData; - res: { - /** - * Successfully updated the environment. - */ - '200': EnvironmentDocument; - /** - * Environment or relationship not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Invalid arguments. - */ - '422': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/environments/{environment}/relationships/tags': { - delete: { - req: DeleteEnvironmentTagsData; - res: { - /** - * Success. - */ - '204': void; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - get: { - req: ListEnvironmentTagsData; - res: { - /** - * Success. - */ - '200': TagRelationshipFieldsetsListingDocument; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - patch: { - req: ReplaceEnvironmentTagsData; - res: { - /** - * Success. - */ - '204': void; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - post: { - req: AddEnvironmentTagsData; - res: { - /** - * Success. - */ - '204': void; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/plans/{plan}': { - get: { - req: GetPlanData; - res: { - /** - * Success. - */ - '200': PlanDocument; - /** - * Plan not found or user unauthorized to perform action. - */ - '403': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/plans/{plan}/json-output': { - get: { - req: GetJsonOutputData; - res: { - /** - * Terraform json plan. - */ - '200': unknown; - /** - * Plan has not yet completed. - */ - '204': void; - /** - * Plan not found or user unauthorized to perform action. - */ - '404': unknown; - /** - * Plan cannot be served due to size limitations. - */ - '413': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/plans/{plan}/output': { - get: { - req: GetPlanLogData; - res: { - /** - * Plan log. - */ - '200': unknown; - /** - * Plan has not yet completed or can't be served. - */ - '204': void; - /** - * The location of the temporary download link. - */ - '302': unknown; - /** - * Plan not found or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/plans/{plan}/sanitized-json-output': { - get: { - req: GetSanitizedJsonOutputData; - res: { - /** - * Sanitized terraform json plan. - */ - '200': unknown; - /** - * Plan has not yet completed or can't be served. - */ - '204': void; - /** - * Redirects to JSON Output if the API server is not sure - * that the plan can be correctly sanitized and a user permissions - * allow to read sensitive plan values. - */ - '307': unknown; - /** - * Plan not found or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/runs': { - get: { - req: GetRunsData; - res: { - /** - * Success. - */ - '200': RunListingDocument; - /** - * Workspace not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - post: { - req: CreateRunData; - res: { - /** - * Successfully created a run. - */ - '201': RunDocument; - /** - * Environment or workspace not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Invalid attributes. - */ - '422': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/runs-queue': { - get: { - req: GetRunsQueueData; - res: { - /** - * Success. - */ - '200': RunListingDocument; - /** - * User unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/runs/{run}': { - get: { - req: GetRunData; - res: { - /** - * Success. - */ - '200': RunDocument; - /** - * Run not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/runs/{run}/actions/apply': { - post: { - req: ConfirmRunData; - res: { - /** - * Successfully queued an apply request. - */ - '202': unknown; - /** - * Run not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Run was not paused for confirmation. Apply not allowed. - */ - '409': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/runs/{run}/actions/cancel': { - post: { - req: CancelRunData; - res: { - /** - * Successfully queued a cancel request. - */ - '202': unknown; - /** - * Run is already cancelled, nothing should be done. - */ - '204': void; - /** - * Run not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Run was not planning or applying. Cancel not allowed. - */ - '409': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/runs/{run}/actions/discard': { - post: { - req: DiscardRunData; - res: { - /** - * Successfully queued a discard request. - */ - '202': unknown; - /** - * Run not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Run was not paused for confirmation or priority. Discard not allowed. - */ - '409': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/runs/{run}/actions/force': { - post: { - req: ForceRunData; - res: { - /** - * Successfully forced a run. - */ - '202': unknown; - /** - * Run not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Workspace force_latest_run enabled or status is not pending. Force not allowed. - */ - '409': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/runs/{run}/policy-checks': { - get: { - req: ListPolicyChecksData; - res: { - /** - * Success. - */ - '200': PolicyCheckListingDocument; - /** - * Plan not found or user unauthorized to perform action. - */ - '403': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/runs/{run}/policy-input': { - get: { - req: DownloadPolicyInputData; - res: { - /** - * Successfully generated input archive. - */ - '200': unknown; - /** - * Run was not found, plan wasn't completed or user unauthorized to perform the action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/workspaces': { - get: { - req: GetWorkspacesData; - res: { - /** - * Success. - */ - '200': WorkspaceListingDocument; - /** - * Environment not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - post: { - req: CreateWorkspaceData; - res: { - /** - * Success. - */ - '201': WorkspaceDocument; - /** - * Environment not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Malformed request body (missing attributes, wrong types, etc.). - */ - '422': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/workspaces/{workspace}': { - delete: { - req: DeleteWorkspaceData; - res: { - /** - * Successfully deleted the workspace. - */ - '204': void; - /** - * Workspace not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Workspace can't be deleted because it has managed resources - * and deletion protection is enabled. - */ - '409': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - get: { - req: GetWorkspaceData; - res: { - /** - * Success. - */ - '200': WorkspaceDocument; - /** - * Workspace not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - patch: { - req: UpdateWorkspaceData; - res: { - /** - * Success. - */ - '200': WorkspaceDocument; - /** - * Workspace not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Malformed request body (missing attributes, wrong types, etc.). - */ - '422': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/workspaces/{workspace}/actions/lock': { - post: { - req: LockWorkspaceData; - res: { - /** - * Successfully locked the workspace. - */ - '200': WorkspaceDocument; - /** - * Workspace not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Workspace already locked. - */ - '409': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/workspaces/{workspace}/actions/resync': { - post: { - req: ResyncWorkspaceData; - res: { - /** - * Success. - */ - '201': ConfigurationVersionDocument; - /** - * Workspace not found or user unauthorized to perform action. - */ - '404': unknown; - /** - * Workspace is not bound to any repository. - */ - '409': unknown; - /** - * Malformed request body (missing attributes, wrong types, etc.). - */ - '422': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/workspaces/{workspace}/actions/set-schedule': { - post: { - req: SetScheduleData; - res: { - /** - * Success. - */ - '200': WorkspaceDocument; - /** - * Workspace not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Malformed request body (missing attributes, wrong types, etc.). - */ - '422': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/workspaces/{workspace}/actions/unlock': { - post: { - req: UnlockWorkspaceData; - res: { - /** - * Successfully unlocked the workspace. - */ - '200': WorkspaceDocument; - /** - * Workspace not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Workspace already unlocked, or locked by a different user. - */ - '409': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/workspaces/{workspace}/current-state-version': { - get: { - req: GetCurrentStateVersionData; - res: { - /** - * Successfully returned current state version for the given workspace. - */ - '200': StateVersionDocument; - /** - * Workspace not found, workspace does not have a current state version, - * or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/workspaces/{workspace}/outputs': { - get: { - req: GetWorkspaceOutputsData; - res: { - /** - * Success. - */ - '200': WorkspaceOutputFieldsetsListingDocument; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/workspaces/{workspace}/provider-configuration-links': { - get: { - req: ListProviderConfigurationLinksData; - res: { - /** - * Success. - */ - '200': ProviderConfigurationLinkListingDocument; - /** - * User unauthorized to perform action. - */ - '403': unknown; - /** - * Workspace not found. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - post: { - req: CreateProviderConfigurationLinkData; - res: { - /** - * Created. - */ - '201': ProviderConfigurationLinkDocument; - /** - * User unauthorized to perform action. - */ - '403': unknown; - /** - * Workspace or Provider configuration not found. - */ - '404': unknown; - /** - * Malformed request body (missing attributes, wrong types, etc.). - */ - '422': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/workspaces/{workspace}/relationships/remote-state-consumers': { - delete: { - req: DeleteRemoteStateConsumersData; - res: { - /** - * Success. - */ - '204': void; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * Workspace not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Not allowed. `global-remote-state` is enabled for the workspace. - */ - '409': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - get: { - req: ListRemoteStateConsumersData; - res: { - /** - * Request was successful. - */ - '200': RemoteStateConsumerRelationshipFieldsetsListingDocument; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * Workspace not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - patch: { - req: ReplaceRemoteStateConsumersData; - res: { - /** - * Success. - */ - '204': void; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * Workspace not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Not allowed. `global-remote-state` is enabled for the workspace. - */ - '409': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - post: { - req: AddRemoteStateConsumersData; - res: { - /** - * Success. - */ - '204': void; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * Workspace not found, or user unauthorized to perform action. - */ - '404': unknown; - /** - * Not allowed. `global-remote-state` is enabled for the workspace. - */ - '409': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; - '/workspaces/{workspace}/relationships/tags': { - delete: { - req: DeleteWorkspaceTagsData; - res: { - /** - * Success. - */ - '204': void; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - get: { - req: ListWorkspaceTagsData; - res: { - /** - * Success. - */ - '200': TagRelationshipFieldsetsListingDocument; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - patch: { - req: ReplaceWorkspaceTagsData; - res: { - /** - * Success. - */ - '204': void; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - post: { - req: AddWorkspaceTagsData; - res: { - /** - * Success. - */ - '204': void; - /** - * User unauthorized to perform this action. - */ - '403': unknown; - /** - * Client error. - */ - '4XX': unknown; - /** - * Server error. - */ - '5XX': unknown; - }; - }; - }; -}; diff --git a/src/git.ts b/src/git.ts index 81c4e85..a509051 100644 --- a/src/git.ts +++ b/src/git.ts @@ -1,6 +1,6 @@ import { API as GitApi, GitExtension } from './@types/git'; import { Extension, extensions } from 'vscode'; -import console = require('console'); +import * as console from 'console'; async function getGitApi(): Promise { try { diff --git a/src/providers/authenticationProvider.ts b/src/providers/authenticationProvider.ts index a8881db..7a19f4a 100644 --- a/src/providers/authenticationProvider.ts +++ b/src/providers/authenticationProvider.ts @@ -51,7 +51,7 @@ export class ScalrAuthenticationProvider implements vscode.AuthenticationProvide return this._onDidChangeSessions.event; } - // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars + // eslint-disable-next-line @typescript-eslint/no-unused-vars async getSessions(scopes: string[]): Promise { const session = await this.getSession(); diff --git a/src/providers/logProvider.ts b/src/providers/logProvider.ts index e8545be..f6a8249 100644 --- a/src/providers/logProvider.ts +++ b/src/providers/logProvider.ts @@ -9,7 +9,7 @@ export class LogProvider implements vscode.TextDocumentContentProvider, vscode.D onDidChange = this._onDidChange.event; private interval: { [key: string]: NodeJS.Timeout } = {}; private finalStatuses = ['canceled', 'errored', 'finished', 'unreachable']; - // eslint-disable-next-line no-unused-vars + async provideTextDocumentContent(uri: vscode.Uri): Promise { await vscode.authentication.getSession(ScalrAuthenticationProvider.id, [], { createIfNone: false, diff --git a/src/providers/workspaceProvider.ts b/src/providers/workspaceProvider.ts index 5dc4bf9..264170e 100644 --- a/src/providers/workspaceProvider.ts +++ b/src/providers/workspaceProvider.ts @@ -1,5 +1,5 @@ import * as vscode from 'vscode'; -import { Workspace, Environment, Run, WorkspaceListingDocument, EnvironmentListingDocument } from '../api/types.gen'; +import { Workspace, Environment, Run, WorkspaceListingDocument } from '../api/types.gen'; import { getWorkspaces, listEnvironments } from '../api/services.gen'; import { ScalrAuthenticationProvider, ScalrSession } from './authenticationProvider'; import { getRunStatusIcon, RunTreeDataProvider } from './runProvider'; @@ -259,7 +259,6 @@ export class WorkspaceTreeDataProvider implements vscode.TreeDataProvider https://webpack.js.org/configuration/node/ + mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production') + + entry: { + 'extension-node': './src/extension.ts', + }, + output: { + // the bundle is stored in the 'dist' folder (check package.json), 📖 -> https://webpack.js.org/configuration/output/ + path: path.resolve(__dirname, 'dist'), + filename: '[name].js', + libraryTarget: 'commonjs2', + }, + externals: { + vscode: 'commonjs vscode', // the vscode-module is created on-the-fly and must be excluded. Add other modules that cannot be webpack'ed, 📖 -> https://webpack.js.org/configuration/externals/ + // modules added here also need to be added in the .vscodeignore file + }, + resolve: { + // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader + extensions: ['.ts', '.js'], + }, + module: { + rules: [ + { + test: /\.ts$/, + exclude: /node_modules/, + use: [ + { + loader: 'ts-loader', + }, + ], + }, + ], + }, + infrastructureLogging: { + level: 'log', // enables logging required for problem matchers + }, +}; + +module.exports = extensionConfig; diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 30188f9..0000000 --- a/webpack.config.js +++ /dev/null @@ -1,105 +0,0 @@ -'use strict'; - -/* eslint-disable @typescript-eslint/no-var-requires */ -const path = require('path'); -const webpack = require('webpack'); - -//@ts-check -/** @typedef {import('webpack').Configuration} WebpackConfig **/ -/** @type WebpackConfig */ -const webConfig = { - target: 'webworker', // extensions run in a webworker context - mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production') - - entry: { - 'extension-web': './src/extension.ts', - }, - output: { - // the bundle is stored in the 'dist' folder (check package.json), 📖 -> https://webpack.js.org/configuration/output/' - path: path.resolve(__dirname, 'dist'), - filename: '[name].js', - libraryTarget: 'commonjs2', - }, - externals: { - vscode: 'commonjs vscode', // the vscode-module is created on-the-fly and must be excluded. Add other modules that cannot be webpack'ed, 📖 -> https://webpack.js.org/configuration/externals/ - // modules added here also need to be added in the .vscodeignore file - }, - resolve: { - mainFields: ['browser', 'module', 'main'], // look for `browser` entry point in imported node modules - // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader - extensions: ['.ts', '.js'], - fallback: { - // Webpack 5 no longer polyfills Node.js core modules automatically. - // see https://webpack.js.org/configuration/resolve/#resolvefallback - // for the list of Node.js core module polyfills. - assert: require.resolve('assert'), - }, - }, - module: { - rules: [ - { - test: /\.ts$/, - exclude: /node_modules/, - use: [ - { - loader: 'ts-loader', - }, - ], - }, - ], - }, - plugins: [ - new webpack.ProvidePlugin({ - process: 'process/browser', // provide a shim for the global `process` variable - }), - ], - devtool: 'nosources-source-map', - performance: { - hints: false, - }, -}; - -/** @type WebpackConfig */ -const nodeConfig = { - target: 'node', // VS Code extensions run in a Node.js-context 📖 -> https://webpack.js.org/configuration/node/ - mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production') - - entry: { - 'extension-node': './src/extension.ts', - }, - output: { - // the bundle is stored in the 'dist' folder (check package.json), 📖 -> https://webpack.js.org/configuration/output/ - path: path.resolve(__dirname, 'dist'), - filename: '[name].js', - libraryTarget: 'commonjs2', - }, - externals: { - vscode: 'commonjs vscode', // the vscode-module is created on-the-fly and must be excluded. Add other modules that cannot be webpack'ed, 📖 -> https://webpack.js.org/configuration/externals/ - // modules added here also need to be added in the .vscodeignore file - }, - resolve: { - // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader - extensions: ['.ts', '.js'], - }, - module: { - rules: [ - { - test: /\.ts$/, - exclude: /node_modules/, - use: [ - { - loader: 'ts-loader', - }, - ], - }, - ], - }, - devtool: 'nosources-source-map', - infrastructureLogging: { - level: 'log', // enables logging required for problem matchers - }, - performance: { - hints: false, - }, -}; -module.exports = [nodeConfig, webConfig]; diff --git a/webpack.dev.js b/webpack.dev.js new file mode 100644 index 0000000..3e296f6 --- /dev/null +++ b/webpack.dev.js @@ -0,0 +1,10 @@ +/* eslint-disable @typescript-eslint/no-require-imports */ +const { merge } = require('webpack-merge'); +const common = require('./webpack.common.js'); +const { CleanWebpackPlugin } = require('clean-webpack-plugin'); + +module.exports = merge(common, { + mode: 'development', + devtool: 'eval-cheap-source-map', + plugins: [new CleanWebpackPlugin()], +}); diff --git a/webpack.prod.js b/webpack.prod.js new file mode 100644 index 0000000..17b6e9c --- /dev/null +++ b/webpack.prod.js @@ -0,0 +1,34 @@ +/* eslint-disable @typescript-eslint/no-require-imports */ +const { merge } = require('webpack-merge'); +const common = require('./webpack.common.js'); +const webpack = require('webpack'); + +const node = merge(common, { + mode: 'production', +}); + +const web = merge(common, { + mode: 'production', + target: 'webworker', + entry: { + 'extension-web': './src/extension.ts', + }, + plugins: [ + new webpack.ProvidePlugin({ + process: 'process/browser', // provide a shim for the global `process` variable + }), + ], + resolve: { + mainFields: ['browser', 'module', 'main'], // look for `browser` entry point in imported node modules + // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader + extensions: ['.ts', '.js'], + fallback: { + // Webpack 5 no longer polyfills Node.js core modules automatically. + // see https://webpack.js.org/configuration/resolve/#resolvefallback + // for the list of Node.js core module polyfills. + assert: require.resolve('assert'), + }, + }, +}); + +module.exports = [node, web];