From ce2e7221de13a348c05328cce27e2e4849ea2004 Mon Sep 17 00:00:00 2001 From: Declan Carroll Date: Tue, 23 Dec 2025 11:15:07 +0000 Subject: [PATCH] ci: Codecov bundle analysis (#23500) --- .bundlemonrc.json | 30 --- .github/workflows/ci-pull-requests.yml | 50 +--- codecov.yml | 8 + package.json | 1 - packages/frontend/editor-ui/package.json | 1 + packages/frontend/editor-ui/vite.config.mts | 11 + pnpm-lock.yaml | 282 +++++++++++++++----- turbo.json | 1 + 8 files changed, 233 insertions(+), 151 deletions(-) delete mode 100644 .bundlemonrc.json diff --git a/.bundlemonrc.json b/.bundlemonrc.json deleted file mode 100644 index 0bbf40d6bcc..00000000000 --- a/.bundlemonrc.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "baseDir": "packages/frontend/editor-ui/dist", - "defaultCompression": "gzip", - "reportOutput": [ - [ - "github", - { - "checkRun": true, - "commitStatus": "off", - "prComment": true - } - ] - ], - "files": [ - { - "path": "*.wasm", - "friendlyName": "WASM Dependencies" - } - ], - "groups": [ - { - "groupName": "Editor UI - Total JS Size", - "path": "**/*.js" - }, - { - "groupName": "Editor UI - Total CSS Size", - "path": "**/*.css" - } - ] -} diff --git a/.github/workflows/ci-pull-requests.yml b/.github/workflows/ci-pull-requests.yml index 2f7bceba7a6..b5c2bf44d07 100644 --- a/.github/workflows/ci-pull-requests.yml +++ b/.github/workflows/ci-pull-requests.yml @@ -17,8 +17,8 @@ jobs: runs-on: blacksmith-2vcpu-ubuntu-2204 env: NODE_OPTIONS: '--max-old-space-size=6144' + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} outputs: - frontend_changed: ${{ steps.paths-filter.outputs.frontend == 'true' }} non_python_changed: ${{ steps.paths-filter.outputs.non-python == 'true' }} workflows_changed: ${{ steps.paths-filter.outputs.workflows == 'true' }} commit_sha: ${{ steps.commit-sha.outputs.sha }} @@ -32,18 +32,11 @@ jobs: id: commit-sha run: echo "sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT" - - name: Check for frontend changes + - name: Check for relevant changes uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: paths-filter with: filters: | - frontend: - - packages/frontend/** - - packages/@n8n/design-system/** - - packages/@n8n/chat/** - - packages/@n8n/codemirror-lang/** - - .bundlemonrc.json - - .github/workflows/ci-pull-requests.yml non-python: - '**' - '!packages/@n8n/task-runner-python/**' @@ -57,45 +50,6 @@ jobs: if: steps.paths-filter.outputs.non-python == 'true' run: pnpm format:check - - name: Upload Frontend Build Artifacts - if: steps.paths-filter.outputs.frontend == 'true' - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 - with: - name: editor-ui-dist - path: packages/frontend/editor-ui/dist/ - retention-days: 1 - - bundle-size-check: - name: Bundle Size Check - needs: install-and-build - if: needs.install-and-build.outputs.frontend_changed == 'true' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - with: - ref: ${{ needs.install-and-build.outputs.commit_sha }} - - - name: Setup pnpm CLI - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 - - - name: Setup Node.js - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 - with: - node-version: '22.x' - cache: 'pnpm' - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Download Frontend Build Artifacts - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 - with: - name: editor-ui-dist - path: packages/frontend/editor-ui/dist/ - - - name: BundleMon - uses: lironer/bundlemon-action@cadbdd58f86faf1900725ef69d455444124b3748 # v1.3.0 - unit-test: name: Unit tests if: needs.install-and-build.outputs.non_python_changed == 'true' diff --git a/codecov.yml b/codecov.yml index fbc8437b534..e45ed1d9900 100644 --- a/codecov.yml +++ b/codecov.yml @@ -2,6 +2,14 @@ codecov: max_report_age: off require_ci_to_pass: true +bundle_analysis: + status: warning + warning_threshold: 1% + +comment: + require_bundle_changes: bundle_increase + bundle_change_threshold: 100Kb + coverage: status: patch: false diff --git a/package.json b/package.json index c0137782868..3249a26d9c2 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,6 @@ "@types/supertest": "^6.0.3", "@babel/preset-env": "^7.26.0", "babel-plugin-transform-import-meta": "^2.3.2", - "bundlemon": "^3.1.0", "cross-env": "^7.0.3", "eslint": "catalog:", "jest": "^29.6.2", diff --git a/packages/frontend/editor-ui/package.json b/packages/frontend/editor-ui/package.json index d635a5eb782..e988405d9c0 100644 --- a/packages/frontend/editor-ui/package.json +++ b/packages/frontend/editor-ui/package.json @@ -109,6 +109,7 @@ "xss": "catalog:" }, "devDependencies": { + "@codecov/vite-plugin": "^1.9.1", "@faker-js/faker": "^8.0.2", "@iconify/json": "^2.2.349", "@n8n/eslint-config": "workspace:*", diff --git a/packages/frontend/editor-ui/vite.config.mts b/packages/frontend/editor-ui/vite.config.mts index 257bdb7bc90..d81cdad6788 100644 --- a/packages/frontend/editor-ui/vite.config.mts +++ b/packages/frontend/editor-ui/vite.config.mts @@ -6,6 +6,7 @@ import { nodePolyfills } from 'vite-plugin-node-polyfills'; import svgLoader from 'vite-svg-loader'; import istanbul from 'vite-plugin-istanbul'; import { sentryVitePlugin } from '@sentry/vite-plugin'; +import { codecovVitePlugin } from '@codecov/vite-plugin'; import { vitestConfig } from '@n8n/vitest-config/frontend'; import icons from 'unplugin-icons/vite'; @@ -183,6 +184,16 @@ const plugins: UserConfig['plugins'] = [ }), ] : []), + ...(process.env.CODECOV_TOKEN + ? [ + codecovVitePlugin({ + enableBundleAnalysis: true, + bundleName: 'editor-ui', + uploadToken: process.env.CODECOV_TOKEN, + debug: true, + }), + ] + : []), ]; const target = browserslistToEsbuild(browsers); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3ad374e4a07..52222ef3691 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -300,9 +300,6 @@ importers: babel-plugin-transform-import-meta: specifier: ^2.3.2 version: 2.3.3(@babel/core@7.28.4) - bundlemon: - specifier: ^3.1.0 - version: 3.1.0(typescript@5.9.2) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -2773,6 +2770,9 @@ importers: specifier: 'catalog:' version: 1.0.15 devDependencies: + '@codecov/vite-plugin': + specifier: ^1.9.1 + version: 1.9.1(rolldown-vite@7.1.16(@types/node@20.19.21)(esbuild@0.25.10)(jiti@2.6.1)(sass@1.89.2)(terser@5.16.1)(tsx@4.19.3)) '@faker-js/faker': specifier: ^8.0.2 version: 8.4.1 @@ -3398,6 +3398,21 @@ packages: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} + '@actions/core@1.11.1': + resolution: {integrity: sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==} + + '@actions/exec@1.1.1': + resolution: {integrity: sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==} + + '@actions/github@6.0.1': + resolution: {integrity: sha512-xbZVcaqD4XnQAe35qSQqskb3SqIAfRyLBrHMd/8TuL7hJSz2QtbDwnNM8zWx4zO5l2fnGtseNE3MbEvD7BxVMw==} + + '@actions/http-client@2.2.3': + resolution: {integrity: sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==} + + '@actions/io@1.1.3': + resolution: {integrity: sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==} + '@acuminous/bitsyntax@0.1.2': resolution: {integrity: sha512-29lUK80d1muEQqiUsSo+3A0yP6CdspgC95EnKBMi22Xlwt79i/En4Vr67+cXhU+cZjbti3TgGGC5wy1stIywVQ==} engines: {node: '>=0.8'} @@ -4675,6 +4690,16 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} + '@codecov/bundler-plugin-core@1.9.1': + resolution: {integrity: sha512-dt3ic7gMswz4p/qdkYPVJwXlLiLsz55rBBn2I7mr0HTG8pCoLRqnANJIwo5WrqGBZgPyVSMPBqBra6VxLWfDyA==} + engines: {node: '>=18.0.0'} + + '@codecov/vite-plugin@1.9.1': + resolution: {integrity: sha512-S6Yne7comVulJ1jD3T7rCfYFHPR0zUjAYoLjUDPXNJCUrdzWJdf/ak/UepE7TicqQG+yBa6eb5WusqcPgg+1AQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + vite: 4.x || 5.x || 6.x + '@codemirror/autocomplete@6.16.0': resolution: {integrity: sha512-P/LeCTtZHRTCU4xQsa89vSKWecYv1ZqwzOd5topheGRf+qtacFgBeIMQi3eL8Kt/BUNvxUWkx+5qP2jlGoARrg==} peerDependencies: @@ -5190,6 +5215,10 @@ packages: resolution: {integrity: sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'} + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + '@floating-ui/core@1.7.0': resolution: {integrity: sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==} @@ -6452,6 +6481,54 @@ packages: peerDependencies: '@oclif/core': '>= 3.0.0' + '@octokit/auth-token@4.0.0': + resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + engines: {node: '>= 18'} + + '@octokit/core@5.2.2': + resolution: {integrity: sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==} + engines: {node: '>= 18'} + + '@octokit/endpoint@9.0.6': + resolution: {integrity: sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==} + engines: {node: '>= 18'} + + '@octokit/graphql@7.1.1': + resolution: {integrity: sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==} + engines: {node: '>= 18'} + + '@octokit/openapi-types@20.0.0': + resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} + + '@octokit/openapi-types@24.2.0': + resolution: {integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==} + + '@octokit/plugin-paginate-rest@9.2.2': + resolution: {integrity: sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + + '@octokit/plugin-rest-endpoint-methods@10.4.1': + resolution: {integrity: sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + + '@octokit/request-error@5.1.1': + resolution: {integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==} + engines: {node: '>= 18'} + + '@octokit/request@8.4.1': + resolution: {integrity: sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==} + engines: {node: '>= 18'} + + '@octokit/types@12.6.0': + resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} + + '@octokit/types@13.10.0': + resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} + '@one-ini/wasm@0.1.1': resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} @@ -9795,6 +9872,9 @@ packages: bcryptjs@2.4.3: resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} + before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + better-opn@3.0.2: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} @@ -9869,10 +9949,6 @@ packages: brorand@1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - brotli-size@4.0.0: - resolution: {integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==} - engines: {node: '>= 10.16.0'} - browser-or-node@2.1.1: resolution: {integrity: sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg==} @@ -9992,15 +10068,6 @@ packages: peerDependencies: esbuild: ^0.25.0 - bundlemon-utils@2.0.1: - resolution: {integrity: sha512-7wxHoOlzICvQyMRfVqoBpnM5pJt1JdcUxsYPNiFx3RlVmUEANh2xdEyoyTsVCqzeJC3rn+AbPuiermBwA3szAQ==} - engines: {node: '>=18'} - - bundlemon@3.1.0: - resolution: {integrity: sha512-8PAomH/fzAD/aXUKmphKmPm4Tl2L7mo51AAalO0EVAZE0cik58AM2x0CVdw4jutD069U2rSyRQstxHo2NEr+9Q==} - engines: {node: '>=18'} - hasBin: true - busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -10510,15 +10577,6 @@ packages: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: 5.9.2 - peerDependenciesMeta: - typescript: - optional: true - cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} @@ -10969,6 +11027,9 @@ packages: engines: {node: '>=18'} hasBin: true + deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -11185,9 +11246,6 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - duplexer@0.1.1: - resolution: {integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==} - duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -12277,10 +12335,6 @@ packages: resolution: {integrity: sha512-+CqsMbHPiSTdtSO14O51eMNlrp9N79gmeqmXeouJOhfucAedHw9noVe/n5uJk3tbKE6a+6ZCQg3RPhVhHByAIw==} engines: {node: '>=18'} - gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} - handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} @@ -17323,6 +17377,10 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + tunnel@0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + turbo-darwin-64@2.5.4: resolution: {integrity: sha512-ah6YnH2dErojhFooxEzmvsoZQTMImaruZhFPfMKPBq8sb+hALRdvBNLqfc8NWlZq576FkfRZ/MSi4SHvVFT9PQ==} cpu: [x64] @@ -17512,6 +17570,10 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici@5.29.0: + resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} + engines: {node: '>=14.0'} + undici@6.21.3: resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==} engines: {node: '>=18.17'} @@ -17550,6 +17612,9 @@ packages: unique-slug@2.0.2: resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} @@ -18456,6 +18521,32 @@ snapshots: '@aashutoshrathi/word-wrap@1.2.6': {} + '@actions/core@1.11.1': + dependencies: + '@actions/exec': 1.1.1 + '@actions/http-client': 2.2.3 + + '@actions/exec@1.1.1': + dependencies: + '@actions/io': 1.1.3 + + '@actions/github@6.0.1': + dependencies: + '@actions/http-client': 2.2.3 + '@octokit/core': 5.2.2 + '@octokit/plugin-paginate-rest': 9.2.2(@octokit/core@5.2.2) + '@octokit/plugin-rest-endpoint-methods': 10.4.1(@octokit/core@5.2.2) + '@octokit/request': 8.4.1 + '@octokit/request-error': 5.1.1 + undici: 5.29.0 + + '@actions/http-client@2.2.3': + dependencies: + tunnel: 0.0.6 + undici: 5.29.0 + + '@actions/io@1.1.3': {} + '@acuminous/bitsyntax@0.1.2': dependencies: buffer-more-ints: 1.0.0 @@ -21114,6 +21205,21 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 + '@codecov/bundler-plugin-core@1.9.1': + dependencies: + '@actions/core': 1.11.1 + '@actions/github': 6.0.1 + chalk: 4.1.2 + semver: 7.7.3 + unplugin: 1.11.0 + zod: 3.25.67 + + '@codecov/vite-plugin@1.9.1(rolldown-vite@7.1.16(@types/node@20.19.21)(esbuild@0.25.10)(jiti@2.6.1)(sass@1.89.2)(terser@5.16.1)(tsx@4.19.3))': + dependencies: + '@codecov/bundler-plugin-core': 1.9.1 + unplugin: 1.11.0 + vite: rolldown-vite@7.1.16(@types/node@20.19.21)(esbuild@0.25.10)(jiti@2.6.1)(sass@1.89.2)(terser@5.16.1)(tsx@4.19.3) + '@codemirror/autocomplete@6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1)': dependencies: '@codemirror/language': 6.10.1 @@ -21564,6 +21670,8 @@ snapshots: '@faker-js/faker@8.4.1': {} + '@fastify/busboy@2.1.1': {} + '@floating-ui/core@1.7.0': dependencies: '@floating-ui/utils': 0.2.9 @@ -22855,6 +22963,64 @@ snapshots: transitivePeerDependencies: - supports-color + '@octokit/auth-token@4.0.0': {} + + '@octokit/core@5.2.2': + dependencies: + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.1.1 + '@octokit/request': 8.4.1 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.10.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 + + '@octokit/endpoint@9.0.6': + dependencies: + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 + + '@octokit/graphql@7.1.1': + dependencies: + '@octokit/request': 8.4.1 + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 + + '@octokit/openapi-types@20.0.0': {} + + '@octokit/openapi-types@24.2.0': {} + + '@octokit/plugin-paginate-rest@9.2.2(@octokit/core@5.2.2)': + dependencies: + '@octokit/core': 5.2.2 + '@octokit/types': 12.6.0 + + '@octokit/plugin-rest-endpoint-methods@10.4.1(@octokit/core@5.2.2)': + dependencies: + '@octokit/core': 5.2.2 + '@octokit/types': 12.6.0 + + '@octokit/request-error@5.1.1': + dependencies: + '@octokit/types': 13.10.0 + deprecation: 2.3.1 + once: 1.4.0 + + '@octokit/request@8.4.1': + dependencies: + '@octokit/endpoint': 9.0.6 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.10.0 + universal-user-agent: 6.0.1 + + '@octokit/types@12.6.0': + dependencies: + '@octokit/openapi-types': 20.0.0 + + '@octokit/types@13.10.0': + dependencies: + '@octokit/openapi-types': 24.2.0 + '@one-ini/wasm@0.1.1': {} '@one-ini/wasm@0.2.0': {} @@ -26860,6 +27026,8 @@ snapshots: bcryptjs@2.4.3: {} + before-after-hook@2.2.3: {} + better-opn@3.0.2: dependencies: open: 8.4.0 @@ -26938,10 +27106,6 @@ snapshots: brorand@1.1.0: {} - brotli-size@4.0.0: - dependencies: - duplexer: 0.1.1 - browser-or-node@2.1.1: {} browser-request@0.3.3: {} @@ -27086,27 +27250,6 @@ snapshots: esbuild: 0.25.9 load-tsconfig: 0.2.5 - bundlemon-utils@2.0.1: - dependencies: - bytes: 3.1.2 - - bundlemon@3.1.0(typescript@5.9.2): - dependencies: - axios: 1.12.0(debug@4.4.1) - axios-retry: 4.5.0(axios@1.12.0) - brotli-size: 4.0.0 - bundlemon-utils: 2.0.1 - bytes: 3.1.2 - chalk: 4.1.2 - commander: 11.1.0 - cosmiconfig: 8.3.6(typescript@5.9.2) - gzip-size: 6.0.0 - micromatch: 4.0.8 - yup: 0.32.11 - transitivePeerDependencies: - - debug - - typescript - busboy@1.6.0: dependencies: streamsearch: 1.1.0 @@ -27680,15 +27823,6 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig@8.3.6(typescript@5.9.2): - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.1 - parse-json: 5.2.0 - path-type: 4.0.0 - optionalDependencies: - typescript: 5.9.2 - cosmiconfig@9.0.0(typescript@5.9.2): dependencies: env-paths: 2.2.1 @@ -28163,6 +28297,8 @@ snapshots: transitivePeerDependencies: - supports-color + deprecation@2.3.1: {} + dequal@2.0.3: {} des.js@1.1.0: @@ -28388,8 +28524,6 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - duplexer@0.1.1: {} - duplexer@0.1.2: {} duplexify@4.1.3: @@ -29934,10 +30068,6 @@ snapshots: transitivePeerDependencies: - supports-color - gzip-size@6.0.0: - dependencies: - duplexer: 0.1.2 - handlebars@4.7.8: dependencies: minimist: 1.2.8 @@ -36307,6 +36437,8 @@ snapshots: dependencies: safe-buffer: 5.2.1 + tunnel@0.0.6: {} + turbo-darwin-64@2.5.4: optional: true @@ -36503,6 +36635,10 @@ snapshots: undici-types@6.21.0: {} + undici@5.29.0: + dependencies: + '@fastify/busboy': 2.1.1 + undici@6.21.3: {} undici@7.10.0: {} @@ -36532,6 +36668,8 @@ snapshots: imurmurhash: 0.1.4 optional: true + universal-user-agent@6.0.1: {} + universalify@0.2.0: {} universalify@2.0.0: {} diff --git a/turbo.json b/turbo.json index fce1235fdb6..ce320035c21 100644 --- a/turbo.json +++ b/turbo.json @@ -1,5 +1,6 @@ { "globalEnv": ["CI", "COVERAGE_ENABLED", "BUILD_WITH_COVERAGE"], + "globalPassThroughEnv": ["CODECOV_TOKEN"], "tasks": { "clean": { "cache": false }, "build": {