# 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.
[
](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.
[
](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**.
[
](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.
[
](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.
[
](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.
[
](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.
[
](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.
[
](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
```