vuejs/vuex
61.0
Adequate · 25 September 2026
4.1k
lines of production code
JavaScript
primary language
4
measurements over time
What this system is
Features
Add TypeScript declarations for Vuex
This change introduces the complete TypeScript type definitions for Vuex, including the core Store class, helper functions (mapState, mapGetters, mapActions, mapMutations, createNamespacedHelpers), and the logger plugin. It also includes type augmentations for Vue.js components and a tsconfig for type checking.
types · high confidence
Add Vue 3 composition API examples
Added new examples for the composition API, including a chat app, a hot-reloadable counter, a shopping cart, and a TodoMVC app. These examples demonstrate the use of Vue 3's composition API and Vuex 4's \createStore\ and \useStore\ patterns.
examples/composition · high confidence
Add classic Vue 3 examples
Added classic examples for a chat application, a hot-reloadable counter, a shopping cart, and a TodoMVC app, all updated to use Vue 3's createApp API and the Vuex 4 store creation pattern.
examples/classic · high confidence
Added devtools and logger plugins for debugging
The Vuex store now includes built-in plugins for developer tooling. The new \devtool.js\ plugin integrates with the Vue Devtools to provide an inspector for the store's state tree and a timeline for mutations and actions. Additionally, a \logger.js\ plugin has been added, which logs mutations and actions to the console with configurable filtering, transformation, and formatting options.
src/plugins · high confidence
New examples landing page and dev server setup
The examples directory now includes a new index.html landing page that lists all available examples, organized into 'Classic API' and 'Composition API' sections. A global CSS file (global.css) provides consistent styling for the examples. A custom Express server (server.js) has been added to serve the examples with hot-reload support, using webpack-dev-middleware and webpack-hot-middleware. The webpack configuration (webpack.config.js) is updated to support both classic and composition API examples, with hot-reload client integration and shared chunking.
examples · medium confidence
Rewrite of Vuex core to support Vue 3 and Composition API
The core implementation has been rewritten to support Vue 3, replacing the previous Vue 2-specific architecture. The \Vuex\ class, \Cursor\, and \mixin\ have been removed in favor of a new \Store\ class and a \createStore\ factory function. The library now utilizes Vue's Composition API, introducing \useStore\ for accessing the store in the Composition API and \storeKey\ for dependency injection. Additionally, the \helpers.js\ module now provides \mapState\, \mapMutations\, \mapGetters\, \mapActions\, and \createNamespacedHelpers\ using the new namespace normalization logic, and the \index.js\ entry point now exports these new APIs alongside \createLogger\.
src · high confidence
Removals
Removed legacy Vuex example files
The todomvc/vuex example directory has been removed, including actions, mutations, and middleware files that defined the state management logic for this demo. This eliminates the outdated implementation from the codebase.
examples/todomvc/vuex · high confidence
Behavioural changes
Introduce module collection and module classes for state management
The internal state management system now uses dedicated \ModuleCollection\ and \Module\ classes to handle module registration, namespacing, and hot-reloading updates. This refactors how modules are stored and accessed, introducing a \getNamespace\ method to compute module paths and an \isRegistered\ check that prevents errors when unregistering non-existent modules. The \Module\ class now explicitly manages child modules, state initialization (supporting functions for state), and updates for hot reloading, ensuring that only registered modules are affected during updates.
src/module · medium confidence
New build and release automation scripts
The project introduces new Node.js scripts to automate the build and release processes. The build script (scripts/build.js) now handles Rollup compilation, copies the ESM module, and reports file sizes in KB (including gzip and Brotli compression). The release script (scripts/release.js) provides an interactive workflow for versioning, testing, building, generating changelogs, and publishing to npm with configurable tags.
scripts · high confidence
Pinia is now the new default state management library for Vue
The README has been updated to announce that Pinia is now the recommended state management library for Vue, with Vuex 3 and 4 still maintained but unlikely to receive new features. The update also includes a new LICENSE file, a CHANGELOG.md, and configuration files (.babelrc, .eslintrc.json, jest.config.js, rollup.config.js) that reflect the project's transition to a new build system and testing framework (Jest replacing Mocha/Chai).
(repo-wide) · high confidence
Removed legacy entry point and build configuration for the TodoMVC example
The main.js entry point and webpack.config.js build configuration for the TodoMVC example have been removed. This indicates a shift away from the previous bundling and initialization approach for this example, likely as part of a broader update to the example folder structure.
examples/todomvc · high confidence
Test coverage
Added ESM import tests for Node.js 14+; Added comprehensive TypeScript type tests for Vuex core and helpers; Added comprehensive unit tests for Vuex core functionality; Added unit tests for module and module-collection; Migrate end-to-end tests to Puppeteer; Migrate end-to-end tests to Puppeteer and Jest.
Dependencies
Upgrade to Vuex 4.1.0 with Vue 3 support and modern build system
Vuex has been updated to version 4.1.0, introducing support for Vue 3 as a peer dependency and adopting a modern ES module build system. The package now exports ES modules for browser and Node.js environments, includes TypeScript declarations, and utilizes Rollup for bundling. Development dependencies have been updated to use Jest, Puppeteer, and VitePress, replacing older tooling like Webpack 1 and Babel 6.
(dependencies) · medium confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 41 → 61 (+20.5)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 65 → 73 (+7.8)
- Architecture 91 (new)
- Maturity 57 → 54 (-3.3)
- Readiness 21 → 57 (+36.8)
- Security 62 → 77 (+14.7)
Resolved (63)
- Change coupling: helpers.js ↔ index.js (src/helpers.js)
- Change coupling: index.js ↔ util.js (src/index.js)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Dimension evaluation failed
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- …and 43 more
New (84)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical CVE: [GHSA redacted] (yarn.lock)
- Critical vulnerability: [GHSA redacted] (yarn.lock)
- Documentation: no installation or build instructions (docs/guide/index.md)
- Documentation: no installation or build instructions (docs/installation.md)
- Documentation: no project overview (docs/guide/index.md)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- High CVE: [GHSA redacted] (yarn.lock)
- …and 64 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
vuejs/vuex was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 25 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit bd907467b8392d6671bb115738285ff7f63d0cf6 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-dd72cc24c749.