# @diplodoc/ajv

> Diplodoc JSON schemas (toc, presets, frontmatter, page-constructor, and more) with editor enrichment

Latest version **0.11.0** (published 2026-10-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install @diplodoc/ajv
pnpm add @diplodoc/ajv
yarn add @diplodoc/ajv
bun add @diplodoc/ajv
```

Provides the command `diplodoc-ajv-build-schemas`.

## Health

**Score 75/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads; large bundle; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.11.0 |
| Published | 2026-10-16 |
| First published | 2026-06-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 9.8 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| Maintainers | rndnm, robot-dataui-npm, alexey_w100, martyanov-av, makhnatkin, diplodoc-bot, reazy015, goldserg, separatrix |

## Links

- npm: https://www.npmjs.com/package/@diplodoc/ajv
- Repository: https://github.com/diplodoc-platform/ajv
- Homepage: https://diplodoc.com/
- Issues: https://github.com/diplodoc-platform/ajv/issues
- npm.io page: https://npm.io/package/@diplodoc/ajv

## Dependencies (1)

- [js-yaml](https://npm.io/package/js-yaml.md) ^4.1.0

## Recent versions

- 0.11.0 (latest) — 2026-10-16
- 0.10.0 — 2026-09-30
- 0.9.0 — 2026-09-24
- 0.8.0 — 2026-09-21
- 0.7.0 — 2026-09-17
- 0.6.1 — 2026-09-16
- 0.6.0 — 2026-09-16
- 0.5.0 — 2026-09-14
- 0.4.4 — 2026-08-13
- 0.4.3 — 2026-08-10
- 0.4.2 — 2026-08-10
- 0.4.1 — 2026-08-07
- 0.4.0 — 2026-08-07
- 0.3.0 — 2026-08-06
- 0.2.1 — 2026-08-04
- … 13 more at https://npm.io/package/@diplodoc/ajv/versions

## README

**english** | [русский](https://github.com/diplodoc-platform/ajv/blob/master/README.ru.md)

---

[![NPM version](https://img.shields.io/npm/v/@diplodoc/ajv.svg?style=flat)](https://www.npmjs.org/package/@diplodoc/ajv)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=diplodoc-platform_ajv&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=diplodoc-platform_ajv)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=diplodoc-platform_ajv&metric=coverage)](https://sonarcloud.io/summary/new_code?id=diplodoc-platform_ajv)
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=diplodoc-platform_ajv&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=diplodoc-platform_ajv)
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=diplodoc-platform_ajv&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=diplodoc-platform_ajv)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=diplodoc-platform_ajv&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=diplodoc-platform_ajv)

# @diplodoc/ajv

JSON schemas for Diplodoc configuration files (`toc.yaml`, `presets.yaml`, frontmatter,
page-constructor, theme, redirects, leading pages, `.yfm`, `.yfmlint`). The schemas are
enriched with editor metadata (`markdownDescription`, `defaultSnippets`, titles) so they
power autocompletion and inline docs in editors such as the Diplodoc VS Code extension.

## Install

```sh
npm install @diplodoc/ajv
```

## Usage

```ts
import {schemas, tocSchema, type SchemaName} from '@diplodoc/ajv';

// the toc.yaml schema
console.log(tocSchema.title);

// or look one up by name
const name: SchemaName = 'presets-schema';
const schema = schemas[name];
```

The raw JSON files are also published and can be imported directly:

```ts
import tocSchema from '@diplodoc/ajv/schemas/toc-schema.json';
```

## How schemas are maintained

- **Source of truth:** `src/yaml/*.yaml` — full, ready-to-use schemas. **Edit only the YAML.**
- **Generated output:** `src/json/*.json` — produced from the YAML by the build script.
  These are committed and shipped.

The build script does one thing: parse YAML and write JSON (formatted with Prettier).
No overlays, no transformations.

```sh
npm run build:schemas          # regenerate src/json from src/yaml
# or, the exported CLI:
npx diplodoc-ajv-build-schemas
```

You never edit the JSON by hand. On every pull request the
[`sync-schemas`](.github/workflows/sync-schemas.yml) workflow regenerates the JSON from the
YAML and commits the result back to the PR branch, so the JSON always matches the YAML.

## Development

```sh
npm install
npm run build      # build:schemas + bundle + d.ts
npm test
npm run typecheck
npm run lint
```

---
_Source: https://npm.io/package/@diplodoc/ajv · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
