OUI_XFAB documentation

Dependency Handbook

Authority and maintenance

This handbook owns the purpose, maintenance owner, declared range, resolved version, compatibility constraints, and audit policy/status for every direct package in package.json.

Update the relevant row whenever package.json or package-lock.json changes. The owner column identifies the repository area responsible for compatibility review.

Runtime baseline

Runtime dependencies

Package Kind Declared range Resolved version Purpose Owner Official documentation
@mdi/font runtime ^7.4.47 7.4.47 Material Design Icons font used by the UI icon classes src/main.ts and UI component owners Material Design Icons
pinia runtime ^4.0.2 4.0.3 Application and feature state management src/app/bootstrap/pinia.ts and owning stores Pinia
vue runtime ^3.5.30 3.5.41 Application framework and single-file component runtime src/main.ts, app bootstrap, and all UI owners Vue
vue-router runtime ^5.0.4 5.2.0 Route definitions, navigation, and lazy page composition src/router/ Vue Router
vuetify runtime ^4.1.10 4.1.10 Material Design component library src/main.ts, src/shared/ui/vuetify.ts, and UI component owners Vuetify

Development dependencies

Package Kind Declared range Resolved version Purpose Owner Official documentation
@11ty/eleventy development ^3.1.6 3.1.6 Static documentation site generation .eleventy.js and docs/ Eleventy
@playwright/test development ^1.62.0 1.62.1 Production-preview browser verification tests/e2e/ and playwright.config.ts Playwright Test
@types/node development ^24.12.0 24.13.3 Node API types aligned with Node 24 LTS TypeScript configuration and Node scripts DefinitelyTyped Node
@typescript-eslint/eslint-plugin development ^8.32.0 8.67.0 TypeScript lint rules eslint.config.js typescript-eslint
@typescript-eslint/parser development ^8.32.0 8.67.0 TypeScript parser for ESLint eslint.config.js typescript-eslint parser
@vitejs/plugin-vue development ^6.0.5 6.0.8 Vue single-file component compilation in Vite vite.config.ts and vitest.config.ts Vite Vue plugin
@vitest/coverage-v8 development ^4.1.4 4.1.11 V8 coverage collection and threshold enforcement vitest.config.ts Vitest coverage
@vue/test-utils development ^2.4.6 2.4.11 Vue component mounting and interaction tests Co-located Vue component tests Vue Test Utils
autoprefixer development ^10.4.27 10.5.4 CSS vendor prefixing postcss.config.js Autoprefixer
eslint development ^10.0.3 10.8.1 Source and architecture lint enforcement eslint.config.js and architecture tests ESLint
eslint-config-prettier development ^10.1.8 10.1.8 Disables ESLint rules that conflict with Prettier eslint.config.js eslint-config-prettier
eslint-plugin-vue development ^10.8.0 10.10.0 Vue template and script lint rules eslint.config.js eslint-plugin-vue
jsdom development ^30.0.0 30.0.1 Browser-like DOM environment for Vitest vitest.config.ts and component tests jsdom
postcss development ^8.5.22 8.5.26 CSS transformation pipeline postcss.config.js PostCSS
postcss-selector-parser development ^7.1.1 7.1.5 Architecture and style-selector validation src/architecture/ Selector parser
prettier development ^3.8.1 3.9.6 Repository formatting Root formatting configuration and scripts Prettier
sass-embedded development ^1.98.0 1.102.0 SCSS compilation through the embedded Sass protocol Vite CSS pipeline and stylesheet owners Dart Sass
terser development ^5.46.1 5.50.0 Production JavaScript minification vite.config.ts Terser
typescript development 6.0.3 6.0.3 TypeScript 6 compiler tsconfig.json and all TypeScript owners TypeScript
vite development ^8.0.1 8.2.1 Development server and production build vite.config.ts Vite
vite-plugin-vuetify development ^2.1.3 2.1.3 Vuetify component transformation and auto-import support vite.config.ts Vuetify plugin
vitest development ^4.1.0 4.1.11 Unit, integration, architecture, and release tests vitest.config.ts and all test owners Vitest
vue-eslint-parser development ^10.4.0 10.4.1 Vue template and script parsing for ESLint eslint.config.js vue-eslint-parser
vue-tsc development ^3.2.6 3.3.10 Strict Vue and TypeScript type checking tsconfig.json and npm run type-check vue-tsc
wrangler development ^4.124.0 4.124.0 Authenticated Cloudflare Pages documentation deployment docs:deploy package script Wrangler

Transitive dependency inspection

The independently deployed services/oui-access-service package deliberately owns mssql ^12.7.0 (resolved 12.7.0) for parameterized SQL Server access. Its package-lock.json is authoritative for that service graph. mssql supports Node >=18.19.0, including the repository's required Node 24 line. The browser application does not import this dependency.

Do not copy the transitive package list into documentation. Inspect the authoritative lockfile graph with:

npm ls --all
npm explain <package>
npm outdated
npm audit
npm audit --omit=dev

Use npm ci to prove that a lockfile change installs reproducibly before committing it.

Upgrade cohorts and compatibility constraints

Audit status

There are currently no accepted audit exceptions. Both npm audit --omit=dev and the full npm audit must report zero vulnerabilities. Do not use npm audit fix --force; apply compatible lockfile updates deliberately and verify them with npm ci and the repository gates.

Update workflow

  1. Change one dependency cohort at a time.
  2. Regenerate package-lock.json with the validated Node 24/npm 11 toolchain.
  3. Update the affected handbook rows and compatibility notes.
  4. Run npm run validate:dependencies.
  5. Run focused tests for the affected owner, followed by lint, strict type-check, coverage, production build, and browser verification required by AGENTS.md.
  6. Run npm audit --omit=dev and npm audit; never force-fix a breaking downgrade.
  7. Commit each verified cohort independently so it can be reverted without disturbing later work.