# Packages URL: /docs/guide/packages Official Docyrus NPM packages for authentication, API integration, code generation, and developer tooling. All `@docyrus/*` packages are published on [NPM](https://www.npmjs.com/org/docyrus) and designed to work together. They cover authentication, API integration, code generation, and developer tooling for Docyrus-powered applications. ## Core ### @docyrus/api-client A modern, type-safe API client for JavaScript and TypeScript with support for multiple backend types, streaming, error handling, and token management. [npm](https://www.npmjs.com/package/@docyrus/api-client) ```bash tab="pnpm" pnpm add @docyrus/api-client ``` ```bash tab="npm" npm install @docyrus/api-client ``` ```bash tab="yarn" yarn add @docyrus/api-client ``` ```bash tab="bun" bun add @docyrus/api-client ``` --- ### @docyrus/signin Authentication provider for Docyrus apps. Supports React, Vue, Electron, and Next.js SSR with OAuth2 and session management. [npm](https://www.npmjs.com/package/@docyrus/signin) ```bash tab="pnpm" pnpm add @docyrus/signin ``` ```bash tab="npm" npm install @docyrus/signin ``` ```bash tab="yarn" yarn add @docyrus/signin ``` ```bash tab="bun" bun add @docyrus/signin ``` --- ### @docyrus/i18n Internationalization provider with API-based and static translation support, cookie-based locale persistence, and variable interpolation. Works across **Web**, **React Native**, and **Vue**. [npm](https://www.npmjs.com/package/@docyrus/i18n) ```bash tab="pnpm" pnpm add @docyrus/i18n ``` ```bash tab="npm" npm install @docyrus/i18n ``` ```bash tab="yarn" yarn add @docyrus/i18n ``` ```bash tab="bun" bun add @docyrus/i18n ``` #### Web Usage Wrap your app with `DocyrusI18nProvider`: ```tsx import { DocyrusI18nProvider } from '@docyrus/i18n'; ; } ``` **Key differences from web:** | Feature | Web | React Native | |---------|-----|-------------| | Import | `@docyrus/i18n` | `@docyrus/i18n/rn` | | Provider | `DocyrusI18nProvider` | `DocyI18nProvider` | | Hook | `useTranslation()`, `useDocyrusI18n()` | `useI18n()`, `useTranslation()` | | Storage | Cookie (`CookieStorageAdapter`) | MMKV / AsyncStorage (`getString`/`setString`) | | Languages | Any locale string | `'en'` \| `'tr'` | | Translation format | Flat dictionary | Nested (`{ en: { common: { key: 'val' } } }`) | | Fallback without provider | Throws | Graceful (returns key) | --- ## Dev Tools ### @docyrus/tanstack-db-generator Code generator for TanStack Query and database integration. Generates typed collections from OpenAPI specs for the Docyrus API. [npm](https://www.npmjs.com/package/@docyrus/tanstack-db-generator) ```bash tab="pnpm" pnpm add -D @docyrus/tanstack-db-generator ``` ```bash tab="npm" npm install -D @docyrus/tanstack-db-generator ``` ```bash tab="yarn" yarn add -D @docyrus/tanstack-db-generator ``` ```bash tab="bun" bun add -D @docyrus/tanstack-db-generator ``` --- ### @docyrus/rules Shared ESLint and Biome configurations for Docyrus projects. Provides consistent linting and formatting rules across your codebase. [npm](https://www.npmjs.com/package/@docyrus/rules) ```bash tab="pnpm" pnpm add -D @docyrus/rules ``` ```bash tab="npm" npm install -D @docyrus/rules ``` ```bash tab="yarn" yarn add -D @docyrus/rules ``` ```bash tab="bun" bun add -D @docyrus/rules ``` #### ESLint Configs Each config is composable — combine them based on your stack: | Config | Import | Use for | |--------|--------|---------| | `baseConfig` | `@docyrus/rules/eslint` | All projects (TypeScript, import ordering, stylistic) | | `reactConfig` | `@docyrus/rules/eslint` | React projects (hooks, react-refresh) | | `nextjsConfig` | `@docyrus/rules/eslint` | Next.js projects (core-web-vitals) | | `reactNativeConfig` | `@docyrus/rules/eslint` | React Native / Expo projects | | `vueConfig` | `@docyrus/rules/eslint` | Vue 3 projects | | `astroConfig` | `@docyrus/rules/eslint` | Astro projects | | `electronConfig` | `@docyrus/rules/eslint` | Electron projects | | `aiConfig` | `@docyrus/rules/eslint` | AI/LLM integrations | **Next.js setup** (`eslint.config.mjs`): ```js import { baseConfig, reactConfig, nextjsConfig } from '@docyrus/rules/eslint'; export default [ ...baseConfig, ...reactConfig, ...nextjsConfig, ]; ``` **React + Vite setup:** ```js import { baseConfig, reactConfig } from '@docyrus/rules/eslint'; export default [ ...baseConfig, ...reactConfig, ]; ``` **Expo / React Native setup:** ```js import { baseConfig, reactConfig, reactNativeConfig } from '@docyrus/rules/eslint'; export default [ ...baseConfig, ...reactConfig, ...reactNativeConfig, ]; ``` **Key rules enforced by `baseConfig`:** | Rule | Behavior | |------|----------| | TypeScript | Consistent type imports (`import type`), no unused vars | | Import ordering | `type → builtin → external → internal → sibling` with blank lines | | Unused imports | Error on unused imports | | Stylistic | 2-space indent, single quotes, semicolons, trailing commas | | React named imports | `React.*` namespace access forbidden — use named imports | | No `console.log` | Warning (allows `warn`, `error`, `info`) | | `prefer-const` | Error | #### Biome Configs Available as JSON preset files: | Config | Path | |--------|------| | Base | `@docyrus/rules/biome/base` | | React | `@docyrus/rules/biome/react` | | Next.js | `@docyrus/rules/biome/nextjs` | | Vue | `@docyrus/rules/biome/vue` | | Astro | `@docyrus/rules/biome/astro` | | Cloudflare | `@docyrus/rules/biome/cloudflare` | | Electron | `@docyrus/rules/biome/electron` | **Biome setup** (`biome.json`): ```json { "extends": ["@docyrus/rules/biome/nextjs"] } ``` ## Utilities ### @docyrus/addin-client Client for embedded add-ins to communicate with the host app from an iframe using postMessage. Handles handshake, RPC calls, and event dispatching. [npm](https://www.npmjs.com/package/@docyrus/addin-client) ```bash tab="pnpm" pnpm add @docyrus/addin-client ``` ```bash tab="npm" npm install @docyrus/addin-client ``` ```bash tab="yarn" yarn add @docyrus/addin-client ``` ```bash tab="bun" bun add @docyrus/addin-client ``` --- ### @docyrus/logo-asset-generator CLI tool to generate favicon and app icons from a source logo. Produces all required sizes for web, iOS, and Android. [npm](https://www.npmjs.com/package/@docyrus/logo-asset-generator) ```bash tab="pnpm" pnpm add -D @docyrus/logo-asset-generator ``` ```bash tab="npm" npm install -D @docyrus/logo-asset-generator ``` ```bash tab="yarn" yarn add -D @docyrus/logo-asset-generator ``` ```bash tab="bun" bun add -D @docyrus/logo-asset-generator ``` --- ### @docyrus/dom-selector-client DOM selector CLI client for programmatic element selection and inspection in web pages. [npm](https://www.npmjs.com/package/@docyrus/dom-selector-client) ```bash tab="pnpm" pnpm add @docyrus/dom-selector-client ``` ```bash tab="npm" npm install @docyrus/dom-selector-client ``` ```bash tab="yarn" yarn add @docyrus/dom-selector-client ``` ```bash tab="bun" bun add @docyrus/dom-selector-client ```