Files
bookorbit/client
dependabot[bot] 0f2a679339 chore(deps): bump the production-dependencies group with 27 updates (#1542)
Bumps the production-dependencies group with 27 updates:

| Package | From | To |
| --- | --- | --- |
| [@embedpdf/engines](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/engines) | `2.15.0` | `2.15.1` |
| [@embedpdf/models](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/models) | `2.15.0` | `2.15.1` |
| [@embedpdf/pdfium](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/pdfium) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-annotation](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-annotation) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-bookmark](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-bookmark) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-document-manager](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-document-manager) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-history](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-history) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-interaction-manager](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-interaction-manager) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-pan](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-pan) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-render](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-render) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-rotate](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-rotate) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-search](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-search) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-selection](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-selection) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-spread](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-spread) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-thumbnail](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-thumbnail) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-tiling](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-tiling) | `2.15.0` | `2.15.1` |
| [@embedpdf/plugin-viewport](https://github.com/embedpdf/embed-pdf-viewer/tree/HEAD/packages/plugin-viewport) | `2.15.0` | `2.15.1` |
| [@formatjs/icu-messageformat-parser](https://github.com/formatjs/formatjs/tree/HEAD/packages/icu-messageformat-parser) | `3.5.18` | `3.5.20` |
| [@lucide/vue](https://github.com/lucide-icons/lucide/tree/HEAD/packages/vue) | `1.46.0` | `1.47.0` |
| [cronstrue](https://github.com/bradymholt/cRonstrue) | `3.26.0` | `3.27.0` |
| [reka-ui](https://github.com/unovue/reka-ui) | `2.10.4` | `2.10.5` |
| [vue](https://github.com/vuejs/core) | `3.5.42` | `3.5.43` |
| [vue-i18n](https://github.com/intlify/vue-i18n/tree/HEAD/packages/vue-i18n) | `11.4.10` | `11.4.12` |
| [@fastify/static](https://github.com/fastify/fastify-static) | `10.1.3` | `10.1.4` |
| [@nestjs/throttler](https://github.com/nestjs/throttler) | `6.5.0` | `6.7.0` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.45.2` | `0.45.3` |
| [fastify](https://github.com/fastify/fastify) | `5.12.4` | `5.12.5` |


Updates `@embedpdf/engines` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/engines)

Updates `@embedpdf/models` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/models)

Updates `@embedpdf/pdfium` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/pdfium)

Updates `@embedpdf/plugin-annotation` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-annotation)

Updates `@embedpdf/plugin-bookmark` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-bookmark)

Updates `@embedpdf/plugin-document-manager` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-document-manager)

Updates `@embedpdf/plugin-history` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-history)

Updates `@embedpdf/plugin-interaction-manager` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-interaction-manager)

Updates `@embedpdf/plugin-pan` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-pan)

Updates `@embedpdf/plugin-render` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-render)

Updates `@embedpdf/plugin-rotate` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-rotate)

Updates `@embedpdf/plugin-search` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-search)

Updates `@embedpdf/plugin-selection` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-selection)

Updates `@embedpdf/plugin-spread` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-spread)

Updates `@embedpdf/plugin-thumbnail` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-thumbnail)

Updates `@embedpdf/plugin-tiling` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-tiling)

Updates `@embedpdf/plugin-viewport` from 2.15.0 to 2.15.1
- [Release notes](https://github.com/embedpdf/embed-pdf-viewer/releases)
- [Commits](https://github.com/embedpdf/embed-pdf-viewer/commits/v2.15.1/packages/plugin-viewport)

Updates `@formatjs/icu-messageformat-parser` from 3.5.18 to 3.5.20
- [Release notes](https://github.com/formatjs/formatjs/releases)
- [Changelog](https://github.com/formatjs/formatjs/blob/main/packages/icu-messageformat-parser/CHANGELOG.md)
- [Commits](https://github.com/formatjs/formatjs/commits/@formatjs/icu-messageformat-parser@3.5.20/packages/icu-messageformat-parser)

Updates `@lucide/vue` from 1.46.0 to 1.47.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.47.0/packages/vue)

Updates `cronstrue` from 3.26.0 to 3.27.0
- [Release notes](https://github.com/bradymholt/cRonstrue/releases)
- [Changelog](https://github.com/bradymholt/cRonstrue/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bradymholt/cRonstrue/compare/v3.26.0...v3.27.0)

Updates `reka-ui` from 2.10.4 to 2.10.5
- [Release notes](https://github.com/unovue/reka-ui/releases)
- [Commits](https://github.com/unovue/reka-ui/compare/v2.10.4...v2.10.5)

Updates `vue` from 3.5.42 to 3.5.43
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.5.42...v3.5.43)

Updates `vue-i18n` from 11.4.10 to 11.4.12
- [Release notes](https://github.com/intlify/vue-i18n/releases)
- [Changelog](https://github.com/intlify/vue-i18n/blob/v11.4.12/CHANGELOG.md)
- [Commits](https://github.com/intlify/vue-i18n/commits/v11.4.12/packages/vue-i18n)

Updates `@fastify/static` from 10.1.3 to 10.1.4
- [Release notes](https://github.com/fastify/fastify-static/releases)
- [Commits](https://github.com/fastify/fastify-static/compare/v10.1.3...v10.1.4)

Updates `@nestjs/throttler` from 6.5.0 to 6.7.0
- [Release notes](https://github.com/nestjs/throttler/releases)
- [Changelog](https://github.com/nestjs/throttler/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nestjs/throttler/compare/v6.5.0...v6.7.0)

Updates `drizzle-orm` from 0.45.2 to 0.45.3
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.45.2...0.45.3)

Updates `fastify` from 5.12.4 to 5.12.5
- [Release notes](https://github.com/fastify/fastify/releases)
- [Commits](https://github.com/fastify/fastify/compare/v5.12.4...v5.12.5)

---
updated-dependencies:
- dependency-name: "@embedpdf/engines"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/models"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/pdfium"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-annotation"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-bookmark"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-document-manager"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-history"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-interaction-manager"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-pan"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-render"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-rotate"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-search"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-selection"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-spread"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-thumbnail"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-tiling"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@embedpdf/plugin-viewport"
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@formatjs/icu-messageformat-parser"
  dependency-version: 3.5.20
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@lucide/vue"
  dependency-version: 1.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: cronstrue
  dependency-version: 3.27.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: reka-ui
  dependency-version: 2.10.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: vue
  dependency-version: 3.5.43
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: vue-i18n
  dependency-version: 11.4.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@fastify/static"
  dependency-version: 10.1.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: "@nestjs/throttler"
  dependency-version: 6.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-dependencies
- dependency-name: drizzle-orm
  dependency-version: 0.45.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
- dependency-name: fastify
  dependency-version: 5.12.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-25 18:38:43 -06:00
..

BookOrbit - Client

Vue 3 SPA built with Vite and Tailwind CSS v4.

Running

From the repo root: pnpm dev (starts both server and client).

Client only: pnpm dev (from this directory). Runs at http://localhost:6263.

The Vite dev server proxies /api and /socket.io requests to the backend at localhost:6262.

IDE setup

  • VS Code: Install the Vue (Official) extension. Disable Vetur if installed.
  • WebStorm / IntelliJ: Vue support is built in. Enable TypeScript service for .vue files.
  • Browser: Install Vue.js devtools and enable Custom Object Formatters in DevTools settings.

Project layout

src/
├── features/           Feature modules (one folder per domain)
│   ├── auth/           Login, registration, password reset
│   ├── book/           Book detail, covers, metadata
│   ├── library/        Library management
│   ├── collection/     Book collections
│   ├── smart-scope/           Saved search views
│   ├── scanner/        Scan progress UI
│   ├── reader/         Book reader (epub, pdf, cbz)
│   ├── settings/       User settings
│   └── admin/          Admin panel (users, roles, settings)
├── components/         Shared components (header, sidebar, icons)
│   └── ui/             Reusable UI primitives (button, dialog, etc.)
├── composables/        Global composables
├── views/              Route-level page components
├── router/             Vue Router config and guards
├── lib/                Utilities (api client, helpers)
├── stores/             Pinia stores (theme only - prefer composables)
└── assets/             CSS, fonts, static assets

Testing

pnpm test:unit          # run unit tests
pnpm test:cov           # run unit tests with coverage

Key conventions

  • All components use <script setup lang="ts"> (Composition API only).
  • Feature state lives in composables (features/<name>/composables/use*.ts), not global stores.
  • HTTP calls use the native fetch API via src/lib/api.ts.
  • Styling with Tailwind CSS v4 utility classes. Theme tokens are CSS variables in src/assets/main.css.
  • Icons from @lucide/vue only.
  • Shared types imported from @bookorbit/types.