diff --git a/.github/workflows/stalebot.yml b/.github/workflows/stalebot.yml index 9abdf847e5..d1d9ef5cf7 100644 --- a/.github/workflows/stalebot.yml +++ b/.github/workflows/stalebot.yml @@ -7,7 +7,7 @@ jobs: stale: runs-on: ubuntu-24.04 steps: - - uses: actions/stale@v6.0.1 + - uses: actions/stale@v9.0.0 with: exempt-issue-labels: 'WIP,security,action_item,never_stale' days-before-issue-stale: 365 diff --git a/.github/workflows/typescript-nudge.yml b/.github/workflows/typescript-nudge.yml index 36fb1d7a55..7948b44703 100644 --- a/.github/workflows/typescript-nudge.yml +++ b/.github/workflows/typescript-nudge.yml @@ -18,7 +18,7 @@ jobs: - name: 🔎 Get changed JavaScript files id: changed-javascript-files - uses: tj-actions/changed-files@v36 + uses: tj-actions/changed-files@v45 with: base_sha: ${{ github.event.pull_request.base.sha }} files: | diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 8466e715cc..b5bffec3e4 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -60,12 +60,6 @@ jobs: deno-version: 'v1.46.3' fail-fast: false steps: - # Increasing the maximum number of open files. See: - # https://github.com/actions/virtual-environments/issues/268 - - name: Increase open file limit - run: sudo ulimit -Sn 65536 - if: "${{ matrix.os == 'macos-14' }}" - - run: git config --global core.symlinks true # Sets an output parameter if this is a release PR - name: Check for release id: release-check @@ -109,13 +103,8 @@ jobs: run: npx nx affected --target=build if: ${{ !steps.release-check.outputs.IS_RELEASE }} - name: Tests - uses: nick-fields/retry@v3 + run: npx nx affected --target=test:ci --exclude=@netlify/build --parallel=3 if: ${{ !steps.release-check.outputs.IS_RELEASE }} - with: - timeout_minutes: 30 - max_attempts: 3 - retry_on: error - command: npx nx affected --target=test:ci --exclude=@netlify/build --parallel=3 test-build: runs-on: ${{ matrix.os }} @@ -193,17 +182,12 @@ jobs: run: npm run build if: ${{ !steps.release-check.outputs.IS_RELEASE }} - name: Tests - uses: nick-fields/retry@v3 + run: npx lerna run test:ci --scope @netlify/build if: ${{ !steps.release-check.outputs.IS_RELEASE }} env: # split tests across multiple machines CI_NODE_INDEX: ${{ matrix.machine }} - CI_NODE_TOTAL: 4 - with: - timeout_minutes: 30 - max_attempts: 3 - retry_on: error - command: npx lerna run test:ci --scope @netlify/build + CI_NODE_TOTAL: 5 - name: Get test coverage flags id: test-coverage-flags if: ${{ !steps.release-check.outputs.IS_RELEASE }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ca17ca38f1..d2cf50b80b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -51,12 +51,6 @@ See our [testing documentation](packages/build/tests/README.md) to learn about o After submitting the pull request, please make sure the Continuous Integration checks (GitHub actions) are passing. -### Testing in CI - -To speed up CI, we load balance the tests across multiple machines. The information required to load balance the tests -is stored in `tests-metadata.json`, and later used by our test [runner](ava.config.js#L10). To regenerate the data (e.g. -when adding a new test file) run `npm test:measure` and commit the changes to GitHub. - ### Testing locally The `@netlify/testing` package will need to be built regardless of which package you are working on. In order to do this diff --git a/ava.base.js b/ava.base.js index b2cac32a6f..b680051b08 100644 --- a/ava.base.js +++ b/ava.base.js @@ -1,8 +1,5 @@ -import fs, { existsSync } from 'fs' -import path from 'path' import process from 'process' -import { isCI } from 'ci-info' import * as execa from 'execa' const { execaCommand } = execa @@ -10,21 +7,6 @@ if (process.argv.includes('-w')) { execaCommand('tsc -w', { cleanup: true }) } -// `tests-metadata.json` is created by running `npx lerna run test:measure --scope @netlify/build` -const testData = existsSync('tests-metadata.json') ? JSON.parse(fs.readFileSync('tests-metadata.json', 'utf-8')) : {} - -const getOrder = (file) => { - const fileRelative = path.relative(process.cwd(), file).replace(/\\/g, '/') - if (testData[fileRelative]) { - return testData[fileRelative].order - } - - console.warn(`Missing test metadata for ${fileRelative}`) - return Number.MAX_SAFE_INTEGER -} - -const sortTestFiles = (file1, file2) => getOrder(file1) - getOrder(file2) - const config = { files: ['packages/**/tests/*.{cjs,mjs,js}', 'packages/**/tests/**/tests.{cjs,mjs,js}'], verbose: true, @@ -34,8 +16,6 @@ const config = { environmentVariables: { FORCE_COLOR: '1', }, - // we only sort in CI to split efficiently across machines - ...(isCI && { sortTestFiles }), } export default config diff --git a/package-lock.json b/package-lock.json index 41e74d8f9e..c39c0527ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,22 +9,21 @@ "version": "0.0.0", "license": "MIT", "workspaces": [ - "tools", "packages/*" ], "devDependencies": { "@commitlint/cli": "^17.1.2", "@commitlint/config-conventional": "^17.1.0", "@typescript-eslint/eslint-plugin": "^5.39.0", - "ci-info": "^3.3.0", + "ci-info": "^4.0.0", "eslint": "^8.24.0", - "eslint-config-prettier": "^8.5.0", + "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.26.0", "husky": "^8.0.0", "lerna": "^5.5.2", - "lint-staged": "^13.0.3", + "lint-staged": "^15.0.0", "nx": "^14.7.13", - "prettier": "^2.8.4" + "prettier": "^3.0.0" }, "engines": { "node": "^14.16.0 || >=16.0.0" @@ -1556,11 +1555,12 @@ "license": "MIT" }, "node_modules/@grpc/grpc-js": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.10.3.tgz", - "integrity": "sha512-qiO9MNgYnwbvZ8MK0YLWbnGrNX3zTcj6/Ef7UHu5ZofER3e2nF3Y35GaPo9qNJJ/UJQKa4KL+z/F4Q8Q+uCdUQ==", + "version": "1.12.5", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.5.tgz", + "integrity": "sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==", + "license": "Apache-2.0", "dependencies": { - "@grpc/proto-loader": "^0.7.10", + "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" }, "engines": { @@ -1568,13 +1568,14 @@ } }, "node_modules/@grpc/proto-loader": { - "version": "0.7.10", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.10.tgz", - "integrity": "sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ==", + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", + "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "license": "Apache-2.0", "dependencies": { "lodash.camelcase": "^4.3.0", "long": "^5.0.0", - "protobufjs": "^7.2.4", + "protobufjs": "^7.2.5", "yargs": "^17.7.2" }, "bin": { @@ -1807,6 +1808,15 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@jest/types/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, "node_modules/@jest/types/node_modules/ansi-styles": { "version": "4.3.0", "license": "MIT", @@ -1893,11 +1903,15 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2337,6 +2351,16 @@ "node": ">=10" } }, + "node_modules/@lerna/cli/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/@lerna/collect-uncommitted": { "version": "5.6.2", "dev": true, @@ -8640,10 +8664,11 @@ } }, "node_modules/@types/archiver": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-5.3.4.tgz", - "integrity": "sha512-Lj7fLBIMwYFgViVVZHEdExZC3lVYsl+QL0VmdNdIzGZH544jHveYWij6qdnBgJQDnR7pMKliN9z2cPZFEbhyPw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-6.0.3.tgz", + "integrity": "sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/readdir-glob": "*" } @@ -8692,7 +8717,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "license": "MIT" }, "node_modules/@types/glob": { @@ -8730,6 +8757,22 @@ "ci-info": "^3.1.0" } }, + "node_modules/@types/is-ci/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "license": "MIT" @@ -8809,9 +8852,9 @@ "license": "MIT" }, "node_modules/@types/picomatch": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/picomatch/-/picomatch-2.3.4.tgz", - "integrity": "sha512-0so8lU8O5zatZS/2Fi4zrwks+vZv7e0dygrgEZXljODXBig97l4cPQD+9LabXfGJOWwoRkTVz6Q4edZvD12UOA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-1MRgzpzY0hOp9pW/kLRxeQhUWwil6gnrUYd3oEpeYBqp/FexhaCPv3F8LsYr47gtUU45fO2cm1dbwkSrHEo8Uw==", "dev": true, "license": "MIT" }, @@ -8879,7 +8922,10 @@ "license": "MIT" }, "node_modules/@types/yargs": { - "version": "16.0.9", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, "license": "MIT", "dependencies": { "@types/yargs-parser": "*" @@ -9115,38 +9161,6 @@ "node": ">=16" } }, - "node_modules/@vitest/coverage-c8": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/@vitest/coverage-c8/-/coverage-c8-0.33.0.tgz", - "integrity": "sha512-DaF1zJz4dcOZS4k/neiQJokmOWqsGXwhthfmUdPGorXIQHjdPvV6JQSYhQDI41MyI8c+IieQUdIDs5XAMHtDDw==", - "deprecated": "v8 coverage is moved to @vitest/coverage-v8 package", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.1", - "c8": "^7.14.0", - "magic-string": "^0.30.1", - "picocolors": "^1.0.0", - "std-env": "^3.3.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "vitest": ">=0.30.0 <1" - } - }, - "node_modules/@vitest/coverage-c8/node_modules/magic-string": { - "version": "0.30.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", - "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/@vitest/coverage-v8": { "version": "0.34.6", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-0.34.6.tgz", @@ -9392,64 +9406,80 @@ "dev": true }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, "license": "MIT", "peer": true, @@ -9458,7 +9488,9 @@ } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -9467,84 +9499,100 @@ } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true, "license": "BSD-3-Clause", "peer": true }, "node_modules/@xtuc/long": { "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true, "license": "Apache-2.0", "peer": true @@ -9613,7 +9661,9 @@ } }, "node_modules/acorn": { - "version": "8.11.2", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -9729,6 +9779,39 @@ "ajv": "^8.0.1" } }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, "node_modules/all-node-versions": { "version": "9.0.0", "dev": true, @@ -10338,6 +10421,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ava/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/ava/node_modules/figures": { "version": "4.0.1", "dev": true, @@ -10353,6 +10452,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ava/node_modules/p-event": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^5.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ava/node_modules/p-map": { "version": "5.5.0", "dev": true, @@ -10416,10 +10531,12 @@ } }, "node_modules/axios": { - "version": "1.6.2", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -10907,6 +11024,16 @@ "node": ">=10" } }, + "node_modules/c8/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/c8/node_modules/yocto-queue": { "version": "0.1.0", "dev": true, @@ -11248,7 +11375,9 @@ "license": "MIT" }, "node_modules/ci-info": { - "version": "3.9.0", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz", + "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==", "dev": true, "funding": [ { @@ -11829,11 +11958,13 @@ } }, "node_modules/commander": { - "version": "11.0.0", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/common-ancestor-path": { @@ -12465,6 +12596,16 @@ "node": ">=10" } }, + "node_modules/copyfiles/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/core-util-is": { "version": "1.0.3", "license": "MIT" @@ -12531,6 +12672,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cp-file/node_modules/p-event": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", + "license": "MIT", + "dependencies": { + "p-timeout": "^5.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cpy": { "version": "9.0.1", "license": "MIT", @@ -12782,6 +12938,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cpy-cli/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/cpy-cli/node_modules/yocto-queue": { "version": "0.1.0", "dev": true, @@ -12836,6 +13002,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cpy/node_modules/p-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", + "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", + "license": "MIT", + "dependencies": { + "p-map": "^5.1.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cpy/node_modules/p-map": { "version": "5.5.0", "license": "MIT", @@ -12952,7 +13133,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -13067,10 +13250,12 @@ } }, "node_modules/debug": { - "version": "4.3.4", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -13081,10 +13266,6 @@ } } }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, "node_modules/debuglog": { "version": "1.0.1", "dev": true, @@ -13759,7 +13940,9 @@ "license": "MIT" }, "node_modules/ejs": { - "version": "3.1.9", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -13835,7 +14018,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.15.0", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "dev": true, "license": "MIT", "peer": true, @@ -13879,6 +14064,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/err-code": { "version": "2.0.3", "dev": true, @@ -13980,9 +14178,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", "license": "MIT" }, "node_modules/es-object-atoms": { @@ -14519,7 +14717,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.10.0", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "license": "MIT", "bin": { @@ -15825,7 +16025,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.3", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", @@ -16120,6 +16322,19 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-func-name": { "version": "2.0.2", "dev": true, @@ -16351,6 +16566,16 @@ "node": ">=10" } }, + "node_modules/get-pkg-repo/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/get-port": { "version": "6.1.2", "license": "MIT", @@ -16512,6 +16737,8 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true, "license": "BSD-2-Clause", "peer": true @@ -17376,7 +17603,9 @@ } }, "node_modules/ip": { - "version": "2.0.0", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", + "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", "dev": true, "license": "MIT" }, @@ -17470,11 +17699,19 @@ } }, "node_modules/is-ci": { - "version": "3.0.1", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-4.1.0.tgz", + "integrity": "sha512-Ab9bQDQ11lWootZUI5qxgN2ZXwxNI5hTwnsvOc1wyxQ7zQ8OkEDw79mI0+9jI3x432NfwbVRru+3noJfXF6lSQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], "license": "MIT", "dependencies": { - "ci-info": "^3.2.0" + "ci-info": "^4.1.0" }, "bin": { "is-ci": "bin.js" @@ -18202,6 +18439,8 @@ }, "node_modules/jest-worker": { "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "license": "MIT", "peer": true, @@ -18216,6 +18455,8 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", "peer": true, @@ -18789,11 +19030,16 @@ } }, "node_modules/lilconfig": { - "version": "2.1.0", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { @@ -18801,76 +19047,84 @@ "license": "MIT" }, "node_modules/lint-staged": { - "version": "13.3.0", + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.3.0.tgz", + "integrity": "sha512-vHFahytLoF2enJklgtOtCtIjZrKD/LoxlaUusd5nh7dWv/dkKQJY74ndFSzxCdv7g0ueGg1ORgTSt4Y9LPZn9A==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "5.3.0", - "commander": "11.0.0", - "debug": "4.3.4", - "execa": "7.2.0", - "lilconfig": "2.1.0", - "listr2": "6.6.1", - "micromatch": "4.0.5", - "pidtree": "0.6.0", - "string-argv": "0.3.2", - "yaml": "2.3.1" + "chalk": "~5.4.1", + "commander": "~12.1.0", + "debug": "~4.4.0", + "execa": "~8.0.1", + "lilconfig": "~3.1.3", + "listr2": "~8.2.5", + "micromatch": "~4.0.8", + "pidtree": "~0.6.0", + "string-argv": "~0.3.2", + "yaml": "~2.6.1" }, "bin": { "lint-staged": "bin/lint-staged.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "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/lint-staged/node_modules/execa": { - "version": "7.2.0", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", - "signal-exit": "^3.0.7", + "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/lint-staged/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lint-staged/node_modules/human-signals": { - "version": "4.3.1", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=14.18.0" + "node": ">=16.17.0" } }, "node_modules/lint-staged/node_modules/is-stream": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, "license": "MIT", "engines": { @@ -18880,22 +19134,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/lint-staged/node_modules/npm-run-path": { - "version": "5.1.0", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, "license": "MIT", "dependencies": { @@ -18910,6 +19152,8 @@ }, "node_modules/lint-staged/node_modules/onetime": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dev": true, "license": "MIT", "dependencies": { @@ -18922,21 +19166,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/lint-staged/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=8.6" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/lint-staged/node_modules/strip-final-newline": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, "license": "MIT", "engines": { @@ -18946,49 +19192,79 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/yaml": { - "version": "2.3.1", + "node_modules/listr2": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", "dev": true, - "license": "ISC", + "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": ">= 14" + "node": ">=18.0.0" } }, - "node_modules/listr2": { - "version": "6.6.1", + "node_modules/listr2/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": "MIT", "dependencies": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^5.0.1", - "rfdc": "^1.3.0", - "wrap-ansi": "^8.1.0" + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=18" }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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" }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/listr2/node_modules/wrap-ansi": { - "version": "8.1.0", + "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.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -19283,88 +19559,174 @@ } }, "node_modules/log-update": { - "version": "5.0.1", + "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": "^5.0.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^5.0.0", - "strip-ansi": "^7.0.1", - "wrap-ansi": "^8.0.1" + "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": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/ansi-escapes": { - "version": "5.0.0", + "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": { - "type-fest": "^1.0.2" + "environment": "^1.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/cli-cursor": { - "version": "4.0.0", + "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": "^4.0.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/onetime": { + "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-function": "^5.0.0" + }, + "engines": { + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/restore-cursor": { - "version": "4.0.0", + "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/log-update/node_modules/type-fest": { - "version": "1.4.0", + "node_modules/log-update/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "(MIT OR CC0-1.0)", + "license": "ISC", "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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/wrap-ansi": { - "version": "8.1.0", + "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.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -19611,6 +19973,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/meow/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/merge-options": { "version": "3.0.4", "license": "MIT", @@ -19699,6 +20071,19 @@ "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/mimic-response": { "version": "4.0.0", "license": "MIT", @@ -19955,7 +20340,6 @@ }, "node_modules/ms": { "version": "2.1.3", - "dev": true, "license": "MIT" }, "node_modules/multimatch": { @@ -20015,7 +20399,9 @@ "optional": true }, "node_modules/nanoid": { - "version": "3.3.7", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", @@ -21445,13 +21831,27 @@ } }, "node_modules/p-event": { - "version": "5.0.1", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.1.tgz", + "integrity": "sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==", "license": "MIT", "dependencies": { - "p-timeout": "^5.0.2" + "p-timeout": "^6.1.2" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-event/node_modules/p-timeout": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.3.tgz", + "integrity": "sha512-UJUyfKbwvr/uZSV6btANfb+0t/mOhKV/KXcCUTp8FcQI+v/0d+wXqH4htrW0E4rR6WiEO/EPvUFiV9D5OI4vlw==", + "license": "MIT", + "engines": { + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -21475,40 +21875,15 @@ } }, "node_modules/p-filter": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "p-map": "^5.1.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-filter/node_modules/aggregate-error": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-filter/node_modules/p-map": { - "version": "5.5.0", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", + "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==", "license": "MIT", "dependencies": { - "aggregate-error": "^4.0.0" + "p-map": "^7.0.1" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -21548,10 +21923,12 @@ } }, "node_modules/p-map": { - "version": "6.0.0", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", + "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -21650,10 +22027,12 @@ } }, "node_modules/p-wait-for": { - "version": "4.1.0", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-5.0.2.tgz", + "integrity": "sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA==", "license": "MIT", "dependencies": { - "p-timeout": "^5.0.0" + "p-timeout": "^6.0.0" }, "engines": { "node": ">=12" @@ -21662,6 +22041,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-wait-for/node_modules/p-timeout": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.3.tgz", + "integrity": "sha512-UJUyfKbwvr/uZSV6btANfb+0t/mOhKV/KXcCUTp8FcQI+v/0d+wXqH4htrW0E4rR6WiEO/EPvUFiV9D5OI4vlw==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-waterfall": { "version": "2.1.1", "dev": true, @@ -21887,7 +22278,9 @@ } }, "node_modules/path-to-regexp": { - "version": "1.8.0", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", "dev": true, "license": "MIT", "dependencies": { @@ -22249,14 +22642,16 @@ } }, "node_modules/prettier": { - "version": "2.8.8", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, "license": "MIT", "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -22521,6 +22916,8 @@ }, "node_modules/randombytes": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "license": "MIT", "peer": true, @@ -23179,7 +23576,9 @@ } }, "node_modules/rollup": { - "version": "3.29.4", + "version": "3.29.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", + "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", "devOptional": true, "license": "MIT", "bin": { @@ -23439,7 +23838,9 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.1", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "license": "BSD-3-Clause", "peer": true, @@ -24190,6 +24591,8 @@ }, "node_modules/tapable": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, "license": "MIT", "peer": true, @@ -24307,7 +24710,9 @@ } }, "node_modules/terser": { - "version": "5.26.0", + "version": "5.37.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", + "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", "dev": true, "license": "BSD-2-Clause", "peer": true, @@ -24325,16 +24730,18 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.9", + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -24358,49 +24765,21 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "dev": true, - "license": "MIT", - "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", @@ -24585,10 +24964,6 @@ "version": "3.0.0", "license": "MIT" }, - "node_modules/tools": { - "resolved": "tools", - "link": true - }, "node_modules/totalist": { "version": "3.0.1", "dev": true, @@ -24798,6 +25173,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/tsd/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/tslib": { "version": "2.6.2", "dev": true, @@ -25434,7 +25819,9 @@ "license": "ISC" }, "node_modules/watchpack": { - "version": "2.4.0", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, "license": "MIT", "peer": true, @@ -25466,34 +25853,35 @@ "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.89.0", + "version": "5.97.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", + "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -26143,11 +26531,12 @@ } }, "node_modules/yargs-parser": { - "version": "20.2.9", - "dev": true, + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "license": "ISC", "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs/node_modules/ansi-regex": { @@ -26240,13 +26629,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/yarn": { "version": "1.22.22", "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.22.tgz", @@ -26369,7 +26751,7 @@ "ansi-escapes": "^6.0.0", "chalk": "^5.0.0", "clean-stack": "^4.0.0", - "execa": "^6.0.0", + "execa": "^7.0.0", "fdir": "^6.0.1", "figures": "^5.0.0", "filter-obj": "^5.0.0", @@ -26386,11 +26768,11 @@ "minimatch": "^9.0.4", "node-fetch": "^3.3.2", "os-name": "^5.0.0", - "p-event": "^5.0.0", + "p-event": "^6.0.0", "p-every": "^2.0.0", - "p-filter": "^3.0.0", + "p-filter": "^4.0.0", "p-locate": "^6.0.0", - "p-map": "^6.0.0", + "p-map": "^7.0.0", "p-reduce": "^3.0.0", "path-exists": "^5.0.0", "path-type": "^5.0.0", @@ -26420,7 +26802,7 @@ "@opentelemetry/api": "~1.8.0", "@opentelemetry/sdk-trace-base": "~1.24.0", "@types/node": "^14.18.53", - "@vitest/coverage-c8": "^0.33.0", + "@vitest/coverage-v8": "^0.33.0", "atob": "^2.1.2", "ava": "^4.0.0", "c8": "^7.12.0", @@ -26478,9 +26860,9 @@ "@playwright/test": "^1.30.0", "@types/node": "^14.18.53", "@types/semver": "^7.3.13", - "@vitest/coverage-c8": "^0.33.0", + "@vitest/coverage-v8": "^0.33.0", "@vitest/ui": "^0.34.0", - "execa": "^6.0.0", + "execa": "^7.0.0", "memfs": "^3.4.7", "node-fetch": "^3.3.1", "typescript": "^5.0.0", @@ -26492,14 +26874,42 @@ "node": "^14.16.0 || >=16.0.0" } }, + "packages/build-info/node_modules/@vitest/coverage-v8": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-0.33.0.tgz", + "integrity": "sha512-Rj5IzoLF7FLj6yR7TmqsfRDSeaFki6NAJ/cQexqhbWkHEV2htlVGrmuOde3xzvFsCbLCagf4omhcIaVmfU8Okg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@bcoe/v8-coverage": "^0.2.3", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.1.5", + "magic-string": "^0.30.1", + "picocolors": "^1.0.0", + "std-env": "^3.3.3", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": ">=0.32.0 <1" + } + }, "packages/build-info/node_modules/execa": { - "version": "6.1.0", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "dev": true, "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -26508,18 +26918,20 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "packages/build-info/node_modules/human-signals": { - "version": "3.0.1", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "packages/build-info/node_modules/is-stream": { @@ -26533,6 +26945,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "packages/build-info/node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "packages/build-info/node_modules/npm-run-path": { "version": "5.1.0", "dev": true, @@ -26572,13 +26994,41 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "packages/build/node_modules/@vitest/coverage-v8": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-0.33.0.tgz", + "integrity": "sha512-Rj5IzoLF7FLj6yR7TmqsfRDSeaFki6NAJ/cQexqhbWkHEV2htlVGrmuOde3xzvFsCbLCagf4omhcIaVmfU8Okg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@bcoe/v8-coverage": "^0.2.3", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.1.5", + "magic-string": "^0.30.1", + "picocolors": "^1.0.0", + "std-env": "^3.3.3", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": ">=0.32.0 <1" + } + }, "packages/build/node_modules/execa": { - "version": "6.1.0", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -26587,17 +27037,19 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "packages/build/node_modules/human-signals": { - "version": "3.0.1", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "license": "Apache-2.0", "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "packages/build/node_modules/is-stream": { @@ -26610,6 +27062,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "packages/build/node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "packages/build/node_modules/npm-run-path": { "version": "5.1.0", "license": "MIT", @@ -26682,7 +27144,7 @@ "cron-parser": "^4.1.0", "deepmerge": "^4.2.2", "dot-prop": "^7.0.0", - "execa": "^6.0.0", + "execa": "^7.0.0", "fast-safe-stringify": "^2.0.7", "figures": "^5.0.0", "filter-obj": "^5.0.0", @@ -26708,7 +27170,7 @@ "ava": "^4.0.0", "c8": "^7.12.0", "has-ansi": "^5.0.0", - "is-ci": "^3.0.0", + "is-ci": "^4.0.0", "tmp-promise": "^3.0.2", "typescript": "^5.0.0" }, @@ -26717,12 +27179,14 @@ } }, "packages/config/node_modules/execa": { - "version": "6.1.0", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -26731,17 +27195,19 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "packages/config/node_modules/human-signals": { - "version": "3.0.1", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "license": "Apache-2.0", "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "packages/config/node_modules/is-stream": { @@ -26803,7 +27269,7 @@ "common-path-prefix": "^3.0.0", "env-paths": "^3.0.0", "esbuild": "0.21.2", - "execa": "^6.0.0", + "execa": "^7.0.0", "find-up": "^6.3.0", "get-package-name": "^2.2.0", "get-port": "^6.1.2", @@ -26812,7 +27278,7 @@ "node-fetch": "^3.1.1", "node-stream-zip": "^1.15.0", "p-retry": "^5.1.1", - "p-wait-for": "^4.1.0", + "p-wait-for": "^5.0.0", "path-key": "^4.0.0", "semver": "^7.3.8", "tmp-promise": "^3.0.3", @@ -26921,13 +27387,14 @@ } }, "packages/edge-bundler/node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -26936,18 +27403,19 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "packages/edge-bundler/node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "license": "Apache-2.0", "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "packages/edge-bundler/node_modules/is-stream": { @@ -27082,7 +27550,7 @@ "find-up": "^6.3.0", "is-plain-obj": "^4.0.0", "locate-path": "^7.0.0", - "p-filter": "^3.0.0", + "p-filter": "^4.0.0", "p-locate": "^6.0.0", "process": "^0.11.10", "read-package-up": "^11.0.0", @@ -27130,7 +27598,7 @@ "version": "5.2.0", "license": "MIT", "dependencies": { - "execa": "^6.0.0", + "execa": "^7.0.0", "map-obj": "^5.0.0", "micromatch": "^4.0.2", "moize": "^6.1.3", @@ -27146,12 +27614,14 @@ } }, "packages/git-utils/node_modules/execa": { - "version": "6.1.0", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -27160,17 +27630,19 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "packages/git-utils/node_modules/human-signals": { - "version": "3.0.1", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "license": "Apache-2.0", "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "packages/git-utils/node_modules/is-stream": { @@ -27250,7 +27722,7 @@ "micro-api-client": "^3.3.0", "node-fetch": "^3.0.0", "omit.js": "^2.0.2", - "p-wait-for": "^4.0.0", + "p-wait-for": "^5.0.0", "qs": "^6.9.6" }, "devDependencies": { @@ -27299,7 +27771,7 @@ "devDependencies": { "@opentelemetry/api": "~1.8.0", "@types/node": "^14.18.53", - "@vitest/coverage-c8": "^0.33.0", + "@vitest/coverage-v8": "^0.33.0", "@vitest/ui": "^0.34.0", "typescript": "^5.0.0", "vite": "^4.0.4", @@ -27312,11 +27784,40 @@ "@opentelemetry/api": "~1.8.0" } }, - "packages/opentelemetry-sdk-setup/node_modules/yargs-parser": { - "version": "21.1.1", - "license": "ISC", - "engines": { - "node": ">=12" + "packages/opentelemetry-sdk-setup/node_modules/@vitest/coverage-v8": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-0.33.0.tgz", + "integrity": "sha512-Rj5IzoLF7FLj6yR7TmqsfRDSeaFki6NAJ/cQexqhbWkHEV2htlVGrmuOde3xzvFsCbLCagf4omhcIaVmfU8Okg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@bcoe/v8-coverage": "^0.2.3", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.1.5", + "magic-string": "^0.30.1", + "picocolors": "^1.0.0", + "std-env": "^3.3.3", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": ">=0.32.0 <1" + } + }, + "packages/opentelemetry-sdk-setup/node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "packages/opentelemetry-utils": { @@ -27328,7 +27829,7 @@ "@opentelemetry/sdk-trace-base": "~1.24.0", "@opentelemetry/sdk-trace-node": "~1.24.0", "@types/node": "^14.18.53", - "@vitest/coverage-c8": "^0.33.0", + "@vitest/coverage-v8": "^0.33.0", "@vitest/ui": "^0.34.0", "typescript": "^5.0.0", "vite": "^4.0.4", @@ -27341,6 +27842,42 @@ "@opentelemetry/api": "~1.8.0" } }, + "packages/opentelemetry-utils/node_modules/@vitest/coverage-v8": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-0.33.0.tgz", + "integrity": "sha512-Rj5IzoLF7FLj6yR7TmqsfRDSeaFki6NAJ/cQexqhbWkHEV2htlVGrmuOde3xzvFsCbLCagf4omhcIaVmfU8Okg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@bcoe/v8-coverage": "^0.2.3", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.1.5", + "magic-string": "^0.30.1", + "picocolors": "^1.0.0", + "std-env": "^3.3.3", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": ">=0.32.0 <1" + } + }, + "packages/opentelemetry-utils/node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "packages/redirect-parser": { "name": "@netlify/redirect-parser", "version": "14.5.0", @@ -27367,7 +27904,7 @@ "version": "5.2.0", "license": "MIT", "dependencies": { - "execa": "^6.0.0" + "execa": "^7.0.0" }, "devDependencies": { "@types/node": "^14.18.53", @@ -27380,12 +27917,14 @@ } }, "packages/run-utils/node_modules/execa": { - "version": "6.1.0", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -27394,17 +27933,19 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "packages/run-utils/node_modules/human-signals": { - "version": "3.0.1", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "license": "Apache-2.0", "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "packages/run-utils/node_modules/is-stream": { @@ -27463,7 +28004,7 @@ "ava": "^4.0.0", "c8": "^7.12.0", "cpy": "^9.0.0", - "execa": "^6.0.0", + "execa": "^7.0.0", "fast-safe-stringify": "^2.0.7", "figures": "^5.0.0", "get-bin-path": "^11.0.0", @@ -27481,13 +28022,15 @@ } }, "packages/testing/node_modules/execa": { - "version": "6.1.0", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "dev": true, "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -27496,18 +28039,20 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "packages/testing/node_modules/human-signals": { - "version": "3.0.1", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "packages/testing/node_modules/is-stream": { @@ -27575,7 +28120,7 @@ "cp-file": "^10.0.0", "es-module-lexer": "^1.0.0", "esbuild": "0.19.11", - "execa": "^6.0.0", + "execa": "^7.0.0", "fast-glob": "^3.3.2", "filter-obj": "^5.0.0", "find-up": "^6.0.0", @@ -27587,7 +28132,7 @@ "merge-options": "^3.0.4", "minimatch": "^9.0.0", "normalize-path": "^3.0.0", - "p-map": "^5.0.0", + "p-map": "^7.0.0", "path-exists": "^5.0.0", "precinct": "^11.0.0", "require-package-name": "^2.0.1", @@ -27604,17 +28149,17 @@ "zip-it-and-ship-it": "bin.js" }, "devDependencies": { - "@types/archiver": "5.3.4", + "@types/archiver": "6.0.3", "@types/glob": "8.1.0", "@types/is-ci": "3.0.4", "@types/node": "20.12.11", "@types/normalize-path": "3.0.2", - "@types/picomatch": "2.3.4", + "@types/picomatch": "3.0.1", "@types/resolve": "1.20.6", "@types/semver": "7.5.8", "@types/tmp": "0.2.6", "@types/unixify": "1.0.2", - "@types/yargs": "17.0.32", + "@types/yargs": "17.0.33", "@vitest/coverage-v8": "0.34.6", "browserslist": "4.24.3", "cardinal": "2.1.1", @@ -27622,7 +28167,7 @@ "decompress": "4.2.1", "deepmerge": "^4.3.1", "get-stream": "8.0.1", - "is-ci": "3.0.1", + "is-ci": "4.1.0", "lambda-local": "2.2.0", "npm-run-all2": "5.0.0", "source-map-support": "0.5.21", @@ -27957,30 +28502,6 @@ "undici-types": "~5.26.4" } }, - "packages/zip-it-and-ship-it/node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "packages/zip-it-and-ship-it/node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/zip-it-and-ship-it/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -28048,13 +28569,14 @@ } }, "packages/zip-it-and-ship-it/node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -28063,7 +28585,7 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -28129,11 +28651,12 @@ "license": "ISC" }, "packages/zip-it-and-ship-it/node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "license": "Apache-2.0", "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "packages/zip-it-and-ship-it/node_modules/is-stream": { @@ -28264,20 +28787,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/zip-it-and-ship-it/node_modules/p-map": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", - "dependencies": { - "aggregate-error": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/zip-it-and-ship-it/node_modules/pidtree": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.5.0.tgz", @@ -28341,96 +28850,6 @@ "engines": { "node": ">=14.17" } - }, - "tools": { - "version": "1.0.0", - "license": "MIT", - "devDependencies": { - "@types/node": "^14.18.53", - "execa": "^6.1.0", - "globby": "^13.1.2", - "typescript": "^5.0.0" - } - }, - "tools/node_modules/execa": { - "version": "6.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "tools/node_modules/human-signals": { - "version": "3.0.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.20.0" - } - }, - "tools/node_modules/is-stream": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "tools/node_modules/npm-run-path": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "tools/node_modules/onetime": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "tools/node_modules/strip-final-newline": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } } } diff --git a/package.json b/package.json index d8a8edb26a..2fa8fa2cd6 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ "format:ci": "prettier --check ." }, "workspaces": [ - "tools", "packages/*" ], "keywords": [ @@ -51,15 +50,15 @@ "@commitlint/cli": "^17.1.2", "@commitlint/config-conventional": "^17.1.0", "@typescript-eslint/eslint-plugin": "^5.39.0", - "ci-info": "^3.3.0", + "ci-info": "^4.0.0", "eslint": "^8.24.0", - "eslint-config-prettier": "^8.5.0", + "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.26.0", "husky": "^8.0.0", "lerna": "^5.5.2", - "lint-staged": "^13.0.3", + "lint-staged": "^15.0.0", "nx": "^14.7.13", - "prettier": "^2.8.4" + "prettier": "^3.0.0" }, "engines": { "node": "^14.16.0 || >=16.0.0" diff --git a/packages/build-info/e2e/fixture/index.html b/packages/build-info/e2e/fixture/index.html index aaa8a8ddb7..a093835a91 100644 --- a/packages/build-info/e2e/fixture/index.html +++ b/packages/build-info/e2e/fixture/index.html @@ -1,4 +1,4 @@ - + diff --git a/packages/build-info/index.html b/packages/build-info/index.html index 02cee41633..bbfee57454 100644 --- a/packages/build-info/index.html +++ b/packages/build-info/index.html @@ -1,4 +1,4 @@ - + diff --git a/packages/build-info/package.json b/packages/build-info/package.json index a840d87b30..c7f0963bfb 100644 --- a/packages/build-info/package.json +++ b/packages/build-info/package.json @@ -60,9 +60,9 @@ "@playwright/test": "^1.30.0", "@types/node": "^14.18.53", "@types/semver": "^7.3.13", - "@vitest/coverage-c8": "^0.33.0", + "@vitest/coverage-v8": "^0.33.0", "@vitest/ui": "^0.34.0", - "execa": "^6.0.0", + "execa": "^7.0.0", "memfs": "^3.4.7", "node-fetch": "^3.3.1", "typescript": "^5.0.0", diff --git a/packages/build-info/src/browser/file-system.ts b/packages/build-info/src/browser/file-system.ts index 7fc854fdbe..27fcef2c46 100644 --- a/packages/build-info/src/browser/file-system.ts +++ b/packages/build-info/src/browser/file-system.ts @@ -2,7 +2,10 @@ import { DirType, Environment, FileSystem } from '../file-system.js' /** A sample implementation of a GitHub provider */ export class GithubProvider { - constructor(public repo: string, public branch?: string) {} + constructor( + public repo: string, + public branch?: string, + ) {} async dir(filePath = ''): Promise<{ path: string; type: 'file' | 'dir' }[]> { let path = `/repos/${this.repo}/contents${filePath}` diff --git a/packages/build-info/src/project.ts b/packages/build-info/src/project.ts index a528c047b4..9f3ca27f8d 100644 --- a/packages/build-info/src/project.ts +++ b/packages/build-info/src/project.ts @@ -103,7 +103,11 @@ export class Project { return await this.fs.fileExists(this.fs.resolve(this.fs.cwd, 'redwood.toml')) } - constructor(public fs: FileSystem, baseDirectory?: string, root?: string) { + constructor( + public fs: FileSystem, + baseDirectory?: string, + root?: string, + ) { this.baseDirectory = fs.resolve(root || '', baseDirectory !== undefined ? baseDirectory : fs.cwd) this.root = root ? fs.resolve(fs.cwd, root) : undefined diff --git a/packages/build-info/src/settings/get-build-settings.test.ts b/packages/build-info/src/settings/get-build-settings.test.ts index 8d81c05c9f..fa11ca52b7 100644 --- a/packages/build-info/src/settings/get-build-settings.test.ts +++ b/packages/build-info/src/settings/get-build-settings.test.ts @@ -59,22 +59,24 @@ test('retrieve Nx specific dist and commands for a framework', async (ctx) => { const project = new Project(ctx.fs, fixture.cwd) const settings = await project.getBuildSettings() - expect(settings).toEqual([ - expect.objectContaining({ - baseDirectory: '', // nx needs to be run from the root - buildCommand: 'nx run astro:build', - devCommand: 'nx run astro:dev', - dist: join('dist/packages/astro'), - frameworkPort: 3000, - }), - expect.objectContaining({ - baseDirectory: '', // nx needs to be run from the root - buildCommand: 'nx run website:build', - devCommand: 'nx run website:serve', - dist: join('dist/packages/website/.next'), - frameworkPort: 4200, - }), - ]) + expect(settings).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + baseDirectory: '', // nx needs to be run from the root + buildCommand: 'nx run astro:build', + devCommand: 'nx run astro:dev', + dist: join('dist/packages/astro'), + frameworkPort: 3000, + }), + expect.objectContaining({ + baseDirectory: '', // nx needs to be run from the root + buildCommand: 'nx run website:build', + devCommand: 'nx run website:serve', + dist: join('dist/packages/website/.next'), + frameworkPort: 4200, + }), + ]), + ) }) test('retrieve settings from the root for a base directory', async (ctx) => { @@ -128,22 +130,23 @@ test('get dev command from npm scripts if defined inside a workspace setup', asy fs.cwd = cwd const project = new Project(fs, cwd) const settings = await project.getBuildSettings() - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const sorted = settings.sort((a, b) => a.packagePath!.localeCompare(b.packagePath!)) - expect(sorted).toEqual([ - expect.objectContaining({ - baseDirectory: join('apps/next'), // not executed via npm run so we need to have a base directory - buildCommand: 'next build', - devCommand: 'next', - dist: join('apps/next/.next'), - }), - expect.objectContaining({ - baseDirectory: '', // executed via npm run so no base directory needed we can run from the root - buildCommand: 'npm --workspace svelte-app run site:build', - devCommand: 'npm --workspace svelte-app run site:start', - dist: join('apps/svelte/public'), - }), - ]) + + expect(settings).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + baseDirectory: join('apps/next'), // not executed via npm run so we need to have a base directory + buildCommand: 'next build', + devCommand: 'next', + dist: join('apps/next/.next'), + }), + expect.objectContaining({ + baseDirectory: '', // executed via npm run so no base directory needed we can run from the root + buildCommand: 'npm --workspace svelte-app run site:build', + devCommand: 'npm --workspace svelte-app run site:start', + dist: join('apps/svelte/public'), + }), + ]), + ) }) describe.each([ @@ -180,24 +183,25 @@ describe.each([ test(`should get the settings from the root of the project`, async ({ fs, cwd }) => { const project = new Project(fs, cwd) const settings = await project.getBuildSettings() - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const sorted = settings.sort((a, b) => a.packagePath!.localeCompare(b.packagePath!)) - expect(sorted).toEqual([ - expect.objectContaining({ - baseDirectory: '', - packagePath: platformJoin('packages/blog'), - buildCommand: 'npm --workspace @evilcorp/blog run build', - devCommand: 'npm --workspace @evilcorp/blog run dev', - dist: platformJoin('packages/blog/dist'), - }), - expect.objectContaining({ - baseDirectory: '', - packagePath: platformJoin('packages/website'), - buildCommand: 'npm --workspace @evilcorp/website run build', - devCommand: 'npm --workspace @evilcorp/website run dev', - dist: platformJoin('packages/website/.next'), - }), - ]) + + expect(settings).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + baseDirectory: '', + packagePath: platformJoin('packages/website'), + buildCommand: 'npm --workspace @evilcorp/website run build', + devCommand: 'npm --workspace @evilcorp/website run dev', + dist: platformJoin('packages/website/.next'), + }), + expect.objectContaining({ + baseDirectory: '', + packagePath: platformJoin('packages/blog'), + buildCommand: 'npm --workspace @evilcorp/blog run build', + devCommand: 'npm --workspace @evilcorp/blog run dev', + dist: platformJoin('packages/blog/dist'), + }), + ]), + ) }) test(`should get the settings from a package sub path`, async ({ fs, cwd }) => { @@ -225,25 +229,25 @@ describe.each([ test(`should get the settings from the root of the project`, async ({ fs, cwd }) => { const project = new Project(fs, cwd) const settings = await project.getBuildSettings() - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const sorted = settings.sort((a, b) => a.packagePath!.localeCompare(b.packagePath!)) - expect(sorted).toEqual([ - expect.objectContaining({ - baseDirectory: '', - packagePath: platformJoin('packages/blog'), - buildCommand: 'pnpm --filter @evilcorp/blog... run build', - devCommand: 'pnpm --filter @evilcorp/blog run dev', - dist: platformJoin('packages/blog/dist'), - }), - expect.objectContaining({ - baseDirectory: '', - packagePath: platformJoin('packages/website'), - buildCommand: 'pnpm --filter @evilcorp/website... run build', - devCommand: 'pnpm --filter @evilcorp/website run dev', - dist: platformJoin('packages/website/.next'), - }), - ]) + expect(settings).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + baseDirectory: '', + packagePath: platformJoin('packages/blog'), + buildCommand: 'pnpm --filter @evilcorp/blog... run build', + devCommand: 'pnpm --filter @evilcorp/blog run dev', + dist: platformJoin('packages/blog/dist'), + }), + expect.objectContaining({ + baseDirectory: '', + packagePath: platformJoin('packages/website'), + buildCommand: 'pnpm --filter @evilcorp/website... run build', + devCommand: 'pnpm --filter @evilcorp/website run dev', + dist: platformJoin('packages/website/.next'), + }), + ]), + ) }) test(`should get the settings from a package sub path`, async ({ fs, cwd }) => { @@ -271,25 +275,25 @@ describe.each([ test(`should get the settings from the root of the project`, async ({ fs, cwd }) => { const project = new Project(fs, cwd) const settings = await project.getBuildSettings() - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const sorted = settings.sort((a, b) => a.packagePath!.localeCompare(b.packagePath!)) - expect(sorted).toEqual([ - expect.objectContaining({ - baseDirectory: '', - packagePath: platformJoin('packages/blog'), - buildCommand: 'yarn workspace @evilcorp/blog build', - devCommand: 'yarn workspace @evilcorp/blog dev', - dist: platformJoin('packages/blog/dist'), - }), - expect.objectContaining({ - baseDirectory: '', - packagePath: platformJoin('packages/website'), - buildCommand: 'yarn workspace @evilcorp/website build', - devCommand: 'yarn workspace @evilcorp/website dev', - dist: platformJoin('packages/website/.next'), - }), - ]) + expect(settings).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + baseDirectory: '', + packagePath: platformJoin('packages/blog'), + buildCommand: 'yarn workspace @evilcorp/blog build', + devCommand: 'yarn workspace @evilcorp/blog dev', + dist: platformJoin('packages/blog/dist'), + }), + expect.objectContaining({ + baseDirectory: '', + packagePath: platformJoin('packages/website'), + buildCommand: 'yarn workspace @evilcorp/website build', + devCommand: 'yarn workspace @evilcorp/website dev', + dist: platformJoin('packages/website/.next'), + }), + ]), + ) }) test(`should get the settings from a package sub path`, async ({ fs, cwd }) => { @@ -317,25 +321,25 @@ describe.each([ test(`should get the settings from the root of the project`, async ({ fs, cwd }) => { const project = new Project(fs, cwd) const settings = await project.getBuildSettings() - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const sorted = settings.sort((a, b) => a.packagePath!.localeCompare(b.packagePath!)) - expect(sorted).toEqual([ - expect.objectContaining({ - baseDirectory: '', - packagePath: platformJoin('apps/docs'), - buildCommand: 'turbo run build --filter docs', - devCommand: 'turbo run dev --filter docs', - dist: platformJoin('apps/docs/.next'), - }), - expect.objectContaining({ - baseDirectory: '', - packagePath: platformJoin('apps/web'), - buildCommand: 'turbo run build --filter web', - devCommand: 'turbo run dev --filter web', - dist: platformJoin('apps/web/.next'), - }), - ]) + expect(settings).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + baseDirectory: '', + packagePath: platformJoin('apps/docs'), + buildCommand: 'turbo run build --filter docs', + devCommand: 'turbo run dev --filter docs', + dist: platformJoin('apps/docs/.next'), + }), + expect.objectContaining({ + baseDirectory: '', + packagePath: platformJoin('apps/web'), + buildCommand: 'turbo run build --filter web', + devCommand: 'turbo run dev --filter web', + dist: platformJoin('apps/web/.next'), + }), + ]), + ) }) test(`should get the settings from a package sub path`, async ({ fs, cwd }) => { @@ -363,25 +367,25 @@ describe.each([ test(`should get the settings from the root of the project`, async ({ fs, cwd }) => { const project = new Project(fs, cwd) const settings = await project.getBuildSettings() - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const sorted = settings.sort((a, b) => a.packagePath!.localeCompare(b.packagePath!)) - expect(sorted).toEqual([ - expect.objectContaining({ - baseDirectory: '', - packagePath: platformJoin('packages/astro'), - buildCommand: 'nx run astro:build', - devCommand: 'nx run astro:dev', - dist: platformJoin('dist/packages/astro'), - }), - expect.objectContaining({ - baseDirectory: '', - packagePath: platformJoin('packages/website'), - buildCommand: 'nx run website:build', - devCommand: 'nx run website:serve', - dist: platformJoin('dist/packages/website/.next'), - }), - ]) + expect(settings).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + baseDirectory: '', + packagePath: platformJoin('packages/astro'), + buildCommand: 'nx run astro:build', + devCommand: 'nx run astro:dev', + dist: platformJoin('dist/packages/astro'), + }), + expect.objectContaining({ + baseDirectory: '', + packagePath: platformJoin('packages/website'), + buildCommand: 'nx run website:build', + devCommand: 'nx run website:serve', + dist: platformJoin('dist/packages/website/.next'), + }), + ]), + ) }) test(`should get the settings from a package sub path`, async ({ fs, cwd }) => { @@ -409,32 +413,32 @@ describe.each([ test(`should get the settings from the root of the project`, async ({ fs, cwd }) => { const project = new Project(fs, cwd) const settings = await project.getBuildSettings() - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const sorted = settings.sort((a, b) => a.packagePath!.localeCompare(b.packagePath!)) - expect(sorted).toEqual([ - expect.objectContaining({ - baseDirectory: '', - packagePath: platformJoin('apps/nuxt-app'), - buildCommand: 'nx run nuxt-app:build', - devCommand: 'nx run nuxt-app:dev', - dist: platformJoin('apps/nuxt-app/dist'), - }), - expect.objectContaining({ - baseDirectory: '', - packagePath: platformJoin('apps/svelte-app'), - buildCommand: 'nx run svelte-app:build', - devCommand: 'nx run svelte-app:dev', - dist: platformJoin('apps/svelte-app/build'), - }), - expect.objectContaining({ - baseDirectory: '', - packagePath: platformJoin('packages/ui-components'), - buildCommand: 'nx run @my-org/ui-components:build', - devCommand: 'nx run @my-org/ui-components:start', - dist: platformJoin('packages/ui-components/www'), - }), - ]) + expect(settings).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + baseDirectory: '', + packagePath: platformJoin('apps/nuxt-app'), + buildCommand: 'nx run nuxt-app:build', + devCommand: 'nx run nuxt-app:dev', + dist: platformJoin('apps/nuxt-app/dist'), + }), + expect.objectContaining({ + baseDirectory: '', + packagePath: platformJoin('apps/svelte-app'), + buildCommand: 'nx run svelte-app:build', + devCommand: 'nx run svelte-app:dev', + dist: platformJoin('apps/svelte-app/build'), + }), + expect.objectContaining({ + baseDirectory: '', + packagePath: platformJoin('packages/ui-components'), + buildCommand: 'nx run @my-org/ui-components:build', + devCommand: 'nx run @my-org/ui-components:start', + dist: platformJoin('packages/ui-components/www'), + }), + ]), + ) }) test(`should get the settings from a package sub path`, async ({ fs, cwd }) => { diff --git a/packages/build-info/src/workspaces/get-workspace-packages.ts b/packages/build-info/src/workspaces/get-workspace-packages.ts index 59d0c163fa..eac0d43f9b 100644 --- a/packages/build-info/src/workspaces/get-workspace-packages.ts +++ b/packages/build-info/src/workspaces/get-workspace-packages.ts @@ -66,8 +66,8 @@ export async function findPackages( const startDir = project.jsWorkspaceRoot ? project.fs.resolve(project.jsWorkspaceRoot, dir) : project.root - ? project.fs.resolve(project.root, dir) - : project.fs.resolve(dir) + ? project.fs.resolve(project.root, dir) + : project.fs.resolve(dir) try { content = await project.fs.readDir(startDir, true) } catch (err) { diff --git a/packages/build/ava.config.js b/packages/build/ava.config.js index e6ffc4b66b..394e0048b8 100644 --- a/packages/build/ava.config.js +++ b/packages/build/ava.config.js @@ -1,8 +1,14 @@ +import { platform } from 'node:os' +import { env } from 'node:process' + import baseConfig from '../../ava.base.js' const config = { ...baseConfig, - files: ['tests/*.{cjs,mjs,js}', 'tests/**/tests.{cjs,mjs,js}'], + files: ['tests/**/tests.{cjs,mjs,js}'], + // github action runners for osx have lower memory than windows/linux + // https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories + serial: env.GITHUB_ACTIONS && platform() === 'darwin', } export default config diff --git a/packages/build/package.json b/packages/build/package.json index 1bc84d854d..665dfb818e 100644 --- a/packages/build/package.json +++ b/packages/build/package.json @@ -31,8 +31,7 @@ "test:ci": "run-p test:ci:*", "test:ci:types": "tsd", "test:ci:ava": "c8 -r lcovonly -r text -r json ava", - "test:ci:vitest": "vitest run", - "test:measure": "../../tools/tests-duration.js" + "test:ci:vitest": "vitest run" }, "keywords": [ "nodejs", @@ -83,7 +82,7 @@ "ansi-escapes": "^6.0.0", "chalk": "^5.0.0", "clean-stack": "^4.0.0", - "execa": "^6.0.0", + "execa": "^7.0.0", "fdir": "^6.0.1", "figures": "^5.0.0", "filter-obj": "^5.0.0", @@ -100,11 +99,11 @@ "minimatch": "^9.0.4", "node-fetch": "^3.3.2", "os-name": "^5.0.0", - "p-event": "^5.0.0", + "p-event": "^6.0.0", "p-every": "^2.0.0", - "p-filter": "^3.0.0", + "p-filter": "^4.0.0", "p-locate": "^6.0.0", - "p-map": "^6.0.0", + "p-map": "^7.0.0", "p-reduce": "^3.0.0", "path-exists": "^5.0.0", "path-type": "^5.0.0", @@ -131,7 +130,7 @@ "@opentelemetry/api": "~1.8.0", "@opentelemetry/sdk-trace-base": "~1.24.0", "@types/node": "^14.18.53", - "@vitest/coverage-c8": "^0.33.0", + "@vitest/coverage-v8": "^0.33.0", "atob": "^2.1.2", "ava": "^4.0.0", "c8": "^7.12.0", diff --git a/packages/build/tests-metadata.json b/packages/build/tests-metadata.json deleted file mode 100644 index 4f50c2c51e..0000000000 --- a/packages/build/tests-metadata.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "tests/env/tests.js": { - "order": 0, - "machine": 0 - }, - "tests/plugins_list/tests.js": { - "order": 1, - "machine": 0 - }, - "tests/telemetry/tests.js": { - "order": 2, - "machine": 0 - }, - "tests/unit/logger/tests.js": { - "order": 3, - "machine": 0 - }, - "tests/functions/tests.js": { - "order": 4, - "machine": 1 - }, - "tests/monitor/tests.js": { - "order": 5, - "machine": 1 - }, - "tests/mutate_headers_redirects/tests.js": { - "order": 6, - "machine": 1 - }, - "tests/plugins_events/tests.js": { - "order": 7, - "machine": 1 - }, - "tests/stack/tests.js": { - "order": 8, - "machine": 1 - }, - "tests/status/tests.js": { - "order": 9, - "machine": 1 - }, - "tests/time/tests.js": { - "order": 10, - "machine": 1 - }, - "tests/constants/tests.js": { - "order": 11, - "machine": 2 - }, - "tests/deploy/tests.js": { - "order": 12, - "machine": 2 - }, - "tests/error/tests.js": { - "order": 13, - "machine": 2 - }, - "tests/utils_build/tests.js": { - "order": 14, - "machine": 2 - }, - "tests/core/tests.js": { - "order": 15, - "machine": 3 - }, - "tests/edge_functions/tests.js": { - "order": 16, - "machine": 3 - }, - "tests/install/tests.js": { - "order": 17, - "machine": 3 - }, - "tests/log/tests.js": { - "order": 18, - "machine": 3 - }, - "tests/manifest/tests.js": { - "order": 19, - "machine": 3 - }, - "tests/plugins/tests.js": { - "order": 20, - "machine": 3 - }, - "tests/steps/tests.js": { - "order": 21, - "machine": 3 - }, - "tests/secrets_scanning/tests.js": { - "order": 22, - "machine": 4 - }, - "tests/mutate_save/tests.js": { - "order": 23, - "machine": 4 - }, - "tests/mutate/tests.js": { - "order": 24, - "machine": 4 - } -} diff --git a/packages/build/tests/install/snapshots/tests.js.md b/packages/build/tests/install/snapshots/tests.js.md index 5f3ce01703..c7f5e51fdc 100644 --- a/packages/build/tests/install/snapshots/tests.js.md +++ b/packages/build/tests/install/snapshots/tests.js.md @@ -673,8 +673,7 @@ Generated by [AVA](https://avajs.dev). repositoryRoot: packages/build/tests/install/fixtures/yarn␊ testOpts:␊ pluginsListUrl: test␊ - silentLingeringProcesses: true␊ - useBinary: true␊ + silentLingeringProcesses: 'true'␊ ␊ > Current directory␊ packages/build/tests/install/fixtures/yarn␊ @@ -730,13 +729,11 @@ Generated by [AVA](https://avajs.dev). ␊ > Flags␊ debug: true␊ - flags:␊ - mode: buildbot␊ + mode: buildbot␊ repositoryRoot: packages/build/tests/install/fixtures/yarn_ci␊ testOpts:␊ pluginsListUrl: test␊ - silentLingeringProcesses: true␊ - useBinary: true␊ + silentLingeringProcesses: 'true'␊ ␊ > Current directory␊ packages/build/tests/install/fixtures/yarn_ci␊ diff --git a/packages/build/tests/install/snapshots/tests.js.snap b/packages/build/tests/install/snapshots/tests.js.snap index 490600bcfb..d25b034968 100644 Binary files a/packages/build/tests/install/snapshots/tests.js.snap and b/packages/build/tests/install/snapshots/tests.js.snap differ diff --git a/packages/build/tests/install/tests.js b/packages/build/tests/install/tests.js index 1a81eb2ac4..0ff3427fce 100644 --- a/packages/build/tests/install/tests.js +++ b/packages/build/tests/install/tests.js @@ -112,14 +112,18 @@ test('Install local plugin dependencies: with npm', async (t) => { }) test('Install local plugin dependencies: with yarn locally', async (t) => { - await runInstallFixture(t, 'yarn', [`${FIXTURES_DIR}/yarn/plugin/node_modules/`], { useBinary: true }) + await runInstallFixture(t, 'yarn', [`${FIXTURES_DIR}/yarn/plugin/node_modules/`], {}, true, true) }) test('Install local plugin dependencies: with yarn in CI', async (t) => { - await runInstallFixture(t, 'yarn_ci', [`${FIXTURES_DIR}/yarn_ci/plugin/node_modules/`], { - useBinary: true, - flags: { mode: 'buildbot' }, - }) + await runInstallFixture( + t, + 'yarn_ci', + [`${FIXTURES_DIR}/yarn_ci/plugin/node_modules/`], + { mode: 'buildbot' }, + true, + true, + ) }) test('Install local plugin dependencies: propagate errors', async (t) => { diff --git a/packages/build/tests/plugins/tests.js b/packages/build/tests/plugins/tests.js index 0ddd21e14d..97f4b9ab46 100644 --- a/packages/build/tests/plugins/tests.js +++ b/packages/build/tests/plugins/tests.js @@ -368,7 +368,7 @@ test('Plugin errors that occur during the loading phase are piped to system logs t.snapshot(normalizeOutput(output)) }) -test('Plugins have a pre-populated Blobs context', async (t) => { +test.serial('Plugins have a pre-populated Blobs context', async (t) => { const serverPort = await getPort() const deployId = 'deploy123' const siteId = 'site321' diff --git a/packages/config/package.json b/packages/config/package.json index 6760bce574..02328ae574 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -63,7 +63,7 @@ "cron-parser": "^4.1.0", "deepmerge": "^4.2.2", "dot-prop": "^7.0.0", - "execa": "^6.0.0", + "execa": "^7.0.0", "fast-safe-stringify": "^2.0.7", "figures": "^5.0.0", "filter-obj": "^5.0.0", @@ -88,7 +88,7 @@ "ava": "^4.0.0", "c8": "^7.12.0", "has-ansi": "^5.0.0", - "is-ci": "^3.0.0", + "is-ci": "^4.0.0", "tmp-promise": "^3.0.2", "typescript": "^5.0.0" }, diff --git a/packages/config/src/env/main.ts b/packages/config/src/env/main.ts index 5ce066ba93..2c6ff08f94 100644 --- a/packages/config/src/env/main.ts +++ b/packages/config/src/env/main.ts @@ -130,12 +130,15 @@ const getGeneralEnv = async function ({ const getInternalEnv = function ( cachedEnv: Record, ): Record { - return Object.entries(cachedEnv).reduce((prev, [key, { sources, value }]) => { - if (sources.includes('internal')) { - prev[key] = value - } - return prev - }, {} as Record) + return Object.entries(cachedEnv).reduce( + (prev, [key, { sources, value }]) => { + if (sources.includes('internal')) { + prev[key] = value + } + return prev + }, + {} as Record, + ) } const getDeployUrls = function ({ diff --git a/packages/edge-bundler/node/bundler.ts b/packages/edge-bundler/node/bundler.ts index 4c001a4e62..6de583622c 100644 --- a/packages/edge-bundler/node/bundler.ts +++ b/packages/edge-bundler/node/bundler.ts @@ -241,14 +241,17 @@ interface CreateFunctionConfigOptions { } const createFunctionConfig = ({ internalFunctionsWithConfig, declarations }: CreateFunctionConfigOptions) => - Object.entries(internalFunctionsWithConfig).reduce((acc, [functionName, config]) => { - const mergedConfigFields = mergeWithDeclarationConfig({ functionName, config, declarations }) - - return { - ...acc, - [functionName]: addGeneratorFallback(mergedConfigFields), - } - }, {} as Record) + Object.entries(internalFunctionsWithConfig).reduce( + (acc, [functionName, config]) => { + const mergedConfigFields = mergeWithDeclarationConfig({ functionName, config, declarations }) + + return { + ...acc, + [functionName]: addGeneratorFallback(mergedConfigFields), + } + }, + {} as Record, + ) interface VendorNPMOptions { basePath: string diff --git a/packages/edge-bundler/package.json b/packages/edge-bundler/package.json index cd00447bf8..c6909d2962 100644 --- a/packages/edge-bundler/package.json +++ b/packages/edge-bundler/package.json @@ -68,7 +68,7 @@ "common-path-prefix": "^3.0.0", "env-paths": "^3.0.0", "esbuild": "0.21.2", - "execa": "^6.0.0", + "execa": "^7.0.0", "find-up": "^6.3.0", "get-package-name": "^2.2.0", "get-port": "^6.1.2", @@ -77,7 +77,7 @@ "node-fetch": "^3.1.1", "node-stream-zip": "^1.15.0", "p-retry": "^5.1.1", - "p-wait-for": "^4.1.0", + "p-wait-for": "^5.0.0", "path-key": "^4.0.0", "semver": "^7.3.8", "tmp-promise": "^3.0.3", diff --git a/packages/framework-info/index.html b/packages/framework-info/index.html index 677ac9d101..d1268d76ed 100644 --- a/packages/framework-info/index.html +++ b/packages/framework-info/index.html @@ -1,4 +1,4 @@ - + diff --git a/packages/framework-info/package.json b/packages/framework-info/package.json index 93471a9f82..bdbe6868f4 100644 --- a/packages/framework-info/package.json +++ b/packages/framework-info/package.json @@ -64,7 +64,7 @@ "find-up": "^6.3.0", "is-plain-obj": "^4.0.0", "locate-path": "^7.0.0", - "p-filter": "^3.0.0", + "p-filter": "^4.0.0", "p-locate": "^6.0.0", "process": "^0.11.10", "read-package-up": "^11.0.0", diff --git a/packages/git-utils/package.json b/packages/git-utils/package.json index 6ca9f0c030..2193a8c965 100644 --- a/packages/git-utils/package.json +++ b/packages/git-utils/package.json @@ -50,7 +50,7 @@ }, "license": "MIT", "dependencies": { - "execa": "^6.0.0", + "execa": "^7.0.0", "map-obj": "^5.0.0", "micromatch": "^4.0.2", "moize": "^6.1.3", diff --git a/packages/js-client/package.json b/packages/js-client/package.json index 3aad981a77..02d7fac910 100644 --- a/packages/js-client/package.json +++ b/packages/js-client/package.json @@ -46,7 +46,7 @@ "micro-api-client": "^3.3.0", "node-fetch": "^3.0.0", "omit.js": "^2.0.2", - "p-wait-for": "^4.0.0", + "p-wait-for": "^5.0.0", "qs": "^6.9.6" }, "devDependencies": { diff --git a/packages/opentelemetry-sdk-setup/package.json b/packages/opentelemetry-sdk-setup/package.json index 36be62ae15..aaa81a345a 100644 --- a/packages/opentelemetry-sdk-setup/package.json +++ b/packages/opentelemetry-sdk-setup/package.json @@ -43,7 +43,7 @@ "devDependencies": { "@opentelemetry/api": "~1.8.0", "@types/node": "^14.18.53", - "@vitest/coverage-c8": "^0.33.0", + "@vitest/coverage-v8": "^0.33.0", "@vitest/ui": "^0.34.0", "typescript": "^5.0.0", "vite": "^4.0.4", diff --git a/packages/opentelemetry-utils/package.json b/packages/opentelemetry-utils/package.json index 8cd5391831..3e1b0f919e 100644 --- a/packages/opentelemetry-utils/package.json +++ b/packages/opentelemetry-utils/package.json @@ -32,7 +32,7 @@ }, "devDependencies": { "@types/node": "^14.18.53", - "@vitest/coverage-c8": "^0.33.0", + "@vitest/coverage-v8": "^0.33.0", "@vitest/ui": "^0.34.0", "typescript": "^5.0.0", "vite": "^4.0.4", diff --git a/packages/run-utils/package.json b/packages/run-utils/package.json index d1b4a9d699..91d5971b1f 100644 --- a/packages/run-utils/package.json +++ b/packages/run-utils/package.json @@ -50,7 +50,7 @@ }, "license": "MIT", "dependencies": { - "execa": "^6.0.0" + "execa": "^7.0.0" }, "devDependencies": { "@types/node": "^14.18.53", diff --git a/packages/testing/package.json b/packages/testing/package.json index ee9008fb1e..94ea4668ae 100644 --- a/packages/testing/package.json +++ b/packages/testing/package.json @@ -23,7 +23,7 @@ "ava": "^4.0.0", "c8": "^7.12.0", "cpy": "^9.0.0", - "execa": "^6.0.0", + "execa": "^7.0.0", "fast-safe-stringify": "^2.0.7", "figures": "^5.0.0", "get-bin-path": "^11.0.0", diff --git a/packages/testing/src/fixture.ts b/packages/testing/src/fixture.ts index e498ff3620..440e59d331 100644 --- a/packages/testing/src/fixture.ts +++ b/packages/testing/src/fixture.ts @@ -4,6 +4,7 @@ import { normalize, delimiter } from 'path' import { env } from 'process' import { fileURLToPath } from 'url' +import { default as build, startDev } from '@netlify/build' import test from 'ava' import cpy from 'cpy' import { execa, execaCommand } from 'execa' @@ -194,7 +195,6 @@ export class Fixture { /** Runs @netlify/build main function programmatic with the provided flags */ async runBuildProgrammatic(): Promise { - const { default: build } = await import('@netlify/build') return await build(this.getBuildFlags()) } @@ -204,7 +204,6 @@ export class Fixture { } async runWithBuildAndIntrospect() { - const { default: build } = await import('@netlify/build') const buildResult = await build(this.getBuildFlags()) const output = [buildResult.logs?.stdout.join('\n'), buildResult.logs?.stderr.join('\n')] .filter(Boolean) @@ -218,7 +217,6 @@ export class Fixture { // TODO: provide better typing if we know what's possible async runDev(devCommand: unknown): Promise { - const { startDev } = await import('@netlify/build') const entryPoint = startDev.bind(null, devCommand) const { logs } = await entryPoint(this.getBuildFlags()) return [logs.stdout.join('\n'), logs.stderr.join('\n')].filter(Boolean).join('\n\n') diff --git a/packages/zip-it-and-ship-it/package.json b/packages/zip-it-and-ship-it/package.json index 060b713728..58965a8600 100644 --- a/packages/zip-it-and-ship-it/package.json +++ b/packages/zip-it-and-ship-it/package.json @@ -51,7 +51,7 @@ "cp-file": "^10.0.0", "es-module-lexer": "^1.0.0", "esbuild": "0.19.11", - "execa": "^6.0.0", + "execa": "^7.0.0", "fast-glob": "^3.3.2", "filter-obj": "^5.0.0", "find-up": "^6.0.0", @@ -63,7 +63,7 @@ "merge-options": "^3.0.4", "minimatch": "^9.0.0", "normalize-path": "^3.0.0", - "p-map": "^5.0.0", + "p-map": "^7.0.0", "path-exists": "^5.0.0", "precinct": "^11.0.0", "require-package-name": "^2.0.1", @@ -77,17 +77,17 @@ "zod": "^3.23.8" }, "devDependencies": { - "@types/archiver": "5.3.4", + "@types/archiver": "6.0.3", "@types/glob": "8.1.0", "@types/is-ci": "3.0.4", "@types/node": "20.12.11", "@types/normalize-path": "3.0.2", - "@types/picomatch": "2.3.4", + "@types/picomatch": "3.0.1", "@types/resolve": "1.20.6", "@types/semver": "7.5.8", "@types/tmp": "0.2.6", "@types/unixify": "1.0.2", - "@types/yargs": "17.0.32", + "@types/yargs": "17.0.33", "@vitest/coverage-v8": "0.34.6", "browserslist": "4.24.3", "cardinal": "2.1.1", @@ -95,7 +95,7 @@ "decompress": "4.2.1", "deepmerge": "^4.3.1", "get-stream": "8.0.1", - "is-ci": "3.0.1", + "is-ci": "4.1.0", "lambda-local": "2.2.0", "npm-run-all2": "5.0.0", "source-map-support": "0.5.21", diff --git a/packages/zip-it-and-ship-it/src/main.ts b/packages/zip-it-and-ship-it/src/main.ts index 9a81132629..8c2acd50ce 100644 --- a/packages/zip-it-and-ship-it/src/main.ts +++ b/packages/zip-it-and-ship-it/src/main.ts @@ -158,7 +158,7 @@ const getListedFunction = function ({ mainFile, name, runtime: runtime.name, - runtimeAPIVersion: staticAnalysisResult ? staticAnalysisResult?.runtimeAPIVersion ?? 1 : undefined, + runtimeAPIVersion: staticAnalysisResult ? (staticAnalysisResult?.runtimeAPIVersion ?? 1) : undefined, schedule: staticAnalysisResult?.config?.schedule ?? config.schedule, inputModuleFormat: staticAnalysisResult?.inputModuleFormat, } diff --git a/packages/zip-it-and-ship-it/src/runtimes/index.ts b/packages/zip-it-and-ship-it/src/runtimes/index.ts index 617a8f8329..c314d548eb 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/index.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/index.ts @@ -104,21 +104,27 @@ export const getFunctionsFromPaths = async ( // through `findFunctionsInRuntime`. For each iteration, we collect all the // functions found plus the list of paths that still need to be evaluated, // using them as the input for the next iteration until the last runtime. - const { functions } = await RUNTIMES.reduce(async (aggregate, runtime) => { - const { functions: aggregateFunctions, remainingPaths: aggregatePaths } = await aggregate - const { functions: runtimeFunctions, remainingPaths: runtimePaths } = await findFunctionsInRuntime({ - cache, - dedupe, - featureFlags, - paths: aggregatePaths, - runtime, - }) - - return { - functions: [...aggregateFunctions, ...runtimeFunctions], - remainingPaths: runtimePaths, - } - }, Promise.resolve({ functions: [], remainingPaths: paths } as { functions: FunctionTupleWithoutConfig[]; remainingPaths: string[] })) + const { functions } = await RUNTIMES.reduce( + async (aggregate, runtime) => { + const { functions: aggregateFunctions, remainingPaths: aggregatePaths } = await aggregate + const { functions: runtimeFunctions, remainingPaths: runtimePaths } = await findFunctionsInRuntime({ + cache, + dedupe, + featureFlags, + paths: aggregatePaths, + runtime, + }) + + return { + functions: [...aggregateFunctions, ...runtimeFunctions], + remainingPaths: runtimePaths, + } + }, + Promise.resolve({ functions: [], remainingPaths: paths } as { + functions: FunctionTupleWithoutConfig[] + remainingPaths: string[] + }), + ) const functionConfigs = await Promise.all( functions.map(([, func]) => getConfigForFunction({ config, configFileDirectories, func })), ) diff --git a/packages/zip-it-and-ship-it/src/runtimes/node/parser/exports.ts b/packages/zip-it-and-ship-it/src/runtimes/node/parser/exports.ts index caf2b7a253..79e320b52a 100644 --- a/packages/zip-it-and-ship-it/src/runtimes/node/parser/exports.ts +++ b/packages/zip-it-and-ship-it/src/runtimes/node/parser/exports.ts @@ -200,23 +200,26 @@ const parseConfigESMExport = (node: Statement) => { * and any others will be ignored and excluded from the resulting object. */ const parseObject = (node: ObjectExpression) => - node.properties.reduce((acc, property): Record => { - if (property.type === 'ObjectProperty' && property.key.type === 'Identifier') { - return { - ...acc, - [property.key.name]: parsePrimitive(property.value), + node.properties.reduce( + (acc, property): Record => { + if (property.type === 'ObjectProperty' && property.key.type === 'Identifier') { + return { + ...acc, + [property.key.name]: parsePrimitive(property.value), + } } - } - if (property.type === 'ObjectProperty' && property.key.type === 'StringLiteral') { - return { - ...acc, - [property.key.value]: parsePrimitive(property.value), + if (property.type === 'ObjectProperty' && property.key.type === 'StringLiteral') { + return { + ...acc, + [property.key.value]: parsePrimitive(property.value), + } } - } - return acc - }, {} as Record) + return acc + }, + {} as Record, + ) /** * Takes an expression and, if it matches a JavaScript primitive type, returns diff --git a/tools/package.json b/tools/package.json deleted file mode 100644 index 8bcf16cdeb..0000000000 --- a/tools/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "tools", - "version": "1.0.0", - "description": "Mono repository tooling", - "type": "module", - "private": true, - "author": "Lukas Holzer ", - "license": "MIT", - "devDependencies": { - "@types/node": "^14.18.53", - "execa": "^6.1.0", - "globby": "^13.1.2", - "typescript": "^5.0.0" - } -} diff --git a/tools/tests-duration.js b/tools/tests-duration.js deleted file mode 100755 index 27443ae468..0000000000 --- a/tools/tests-duration.js +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env node -import { promises as fs } from 'fs' -import { resolve } from 'path' - -import { execa } from 'execa' -import { globby } from 'globby' - -const CI_MACHINES = 4 - -const measureDurations = async () => { - const { default: config } = await import(resolve('ava.config.js')) - const testFiles = await globby(config.files) - - const durations = new Map() - for (const testFile of testFiles) { - const startTime = performance.now() - const { stdout } = await execa('ava', [testFile], { preferLocal: true, reject: false }) - console.log(stdout) - const endTime = performance.now() - - const duration = endTime - startTime - console.log(`Test file '${testFile}' finished running in ${duration} milliseconds.`) - durations.set(testFile, duration) - } - - return durations -} - -const distributeToMachines = (durations) => { - const filesMachines = new Map() - - // we implement a greedy algorithm to distribute the tests to the CI machines - const descendingDurations = [...durations.entries()].sort(([, duration1], [, duration2]) => duration2 - duration1) - const machinesSums = new Array(CI_MACHINES).fill(0) - for (const [file, duration] of descendingDurations) { - const machine = machinesSums.indexOf(Math.min(...machinesSums)) - machinesSums[machine] += duration - filesMachines.set(file, { machine, duration }) - } - - return filesMachines -} - -const getOrder = (filesMachines) => { - const orderArray = [...filesMachines.entries()] - .sort(([file1, { machine: machine1 }], [file2, { machine: machine2 }]) => { - if (machine1 === machine2) { - return file1.localeCompare(file2) - } - return machine1 - machine2 - }) - .map(([file, { machine }], index) => ({ file, order: index, machine })) - - return Object.fromEntries(orderArray.map(({ file, order, machine }) => [file, { order, machine }])) -} - -const main = async () => { - const durations = await measureDurations() - const filesMachines = distributeToMachines(durations) - const order = getOrder(filesMachines) - - await fs.writeFile('tests-metadata.json', `${JSON.stringify(order, null, 2)}\n`) -} - -main()