Skip to content
CAI
Software that uses CAICheck a score

vuejs/vuex

61.0

Adequate · 25 September 2026

4.1k

lines of production code

JavaScript

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

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.