chore(deps): update dependencies, take eslint-plugin-unicorn 76 and @astrojs/react 7 - #779
Conversation
|
To use Codex here, create an environment for this repo. |
Bundle ReportChanges will decrease total bundle size by 20.79MB (-37.99%) ⬇️. This is within the configured threshold ✅ Detailed changes
Affected Assets, Files, and Routes:view changes for bundle: site-server-esmAssets Changed:
App Routes Affected:
view changes for bundle: exo-esm-modules-esmAssets Changed:
Files in
Files in
Files in
Files in
Files in
view changes for bundle: exo-iife-Exo-iifeAssets Changed:
Files in
view changes for bundle: exojs-lighting-esmAssets Changed:
Files in
view changes for bundle: exo-full-iife-Exo-iifeAssets Changed:
Files in
|
Refreshes the workspace dependencies to the newest versions the 3-day
minimumReleaseAgecutoff admits, and takes the major updates whose migration is small. The remaining majors are listed below with the reason they stay behind.Updated
Majors:
eslint-plugin-unicorn74 → 76 (root and@codexo/exojs-config).unicorn/prefer-ternaryis switched off: since 75 it also folds anif (...) return a;guard into thereturnafter it, 196 hits acrosssrc/andpackages/*/src, and its autofix turns boolean guards intocond ? false : expr.only-single-linedoes not narrow it. The reason is recorded with the other rejected rules incorrectness.js. The five newprefer-logical-operator-over-ternaryhits (x ? true : yshapes) are rewritten to||/&&.@astrojs/react6 → 7. The only breaking change removes thebabelintegration option, which the site does not use.@astrojs/mdx7 → 8.size-limitand@size-limit/preset-small-lib13 → 14 (rolldown is now the default bundler). Every budget still holds. 14.0.1, which fixes an inflated rolldown measurement, is still inside the release-age cutoff.vite7 → 8 in@codexo/exojs-build(dev dependency for the external-consumer test only).Minor and patch:
typescript-eslint~8.68.0 → ~8.70.1 (stays tilde-pinned). 8.70 extends@typescript-eslint/no-meaningless-void-operatortovoidon anything that is not a call. The sites that usedvoid xto silence an unused binding now usex satisfies neverfor exhaustiveness checks,true satisfies Assertionfor compile-time guards, and a_-prefixed name for unused parameters.isEffectReadykeeps itsvoid effect.inputNodegetter probe under a scoped disable, since reading the getter is the probe.eslint~10.9.1 → ~10.11.0.@codexo/eslint-plugin-exojsis back on the tilde pin the rest of the workspace uses.vitestand@vitest/*4.1.7 → 4.1.11,playwright1.62.1 → 1.63.0,astro7.2.2 → 7.3.4,react/react-dom19.2.7 → 19.3.0,@types/react19.2.17 → 19.3.0,@types/react-dom19.2.3 → 19.3.0,@types/node26.4.0 → 26.6.2,@webgpu/types0.1.69 → 0.1.74,@eslint-react/eslint-plugin5.9.0 → 5.20.5,@vitest/eslint-plugin1.6.20 → 1.6.27,typedoc0.28.19 → 0.28.20,typedoc-plugin-markdown4.12.0 → 4.13.1,sass1.101.0 → 1.105.0,rollup4.63.1 → 4.63.4,tsx4.23.12 → 4.23.15,lint-staged17.4.1 → 17.5.1,globals17.11.0 → 17.12.0,eslint-plugin-security4.0.0 → 4.0.1,@testing-library/dom10.4.1 → 10.4.2,@testing-library/react16.3.2 → 16.3.3,@fontsource/jetbrains-monoand@fontsource/space-grotesk→ 5.3.0.Deliberately left behind
typescript6.0.3 → 7.0.2: 7.0 has no stable programmatic API, so typescript-eslint, TypeDoc andastro checkcannot run on it. The move waits for 7.1, which ships the API.vitestand@vitest/*4 → 5: removes the WebdriverIO provider package the Safari parity project uses, makes inline projects extend the root config by default, and shares one Vite server between projects. Each of these changes how the unit, browser, alloc and physics-perf projects are configured, so it gets its own PR.jsdom29 → 30 and@types/jsdom28 → 30: Vitest 4's jsdom environment wrapsURL.createObjectURLwith a Blob shim that reads jsdom internals jsdom 30 no longer has (Cannot read properties of undefined (reading '_buffer'), 51 failing tests across the asset factories andHtmlText). It moves together with Vitest 5.monaco-editor0.55.1 → 0.56.0 (exact pin): 0.56 reorganises the ESM entry points, and the playground loads a vendor-synced copy. Hover, typings and diagnostics in the editor are not covered by any gate, so this needs its own PR with a manual check in the browser.Known leftovers
@codecov/astro-plugin2.0.1 (latest) still declaresastro: 4.x || 5.xas its peer range. This mismatch already existed with Astro 7.2 and there is no newer release that fixes it.Validation
The pre-push hook ran
verify:quickand every lane the lockfile change selects: unit, webgl, webgpu, audio, tilemap, bench structural, and the site build with example smoke. All passed.pnpm sizeholds every budget under size-limit 14.