# @ckeditor/typedoc-plugins

> Various TypeDoc plugins developed by the CKEditor 5 team.

Latest version **62.3.0** (published 2026-10-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install @ckeditor/typedoc-plugins
pnpm add @ckeditor/typedoc-plugins
yarn add @ckeditor/typedoc-plugins
bun add @ckeditor/typedoc-plugins
```

## Health

**Score 55/100 (C)** — status: active.

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

Warnings: low downloads.

Negative: declining downloads.

## Facts

| | |
|---|---|
| Version | 62.3.0 |
| Published | 2026-10-02 |
| First published | 2023-01-18 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=24.11.0 |
| Dependencies | 1 |
| Unpacked size | 81.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 45 |
| Author | CKSource |
| Maintainers | ckeditor |

## Links

- npm: https://www.npmjs.com/package/@ckeditor/typedoc-plugins
- Repository: https://github.com/ckeditor/ckeditor5-dev
- Homepage: https://github.com/ckeditor/ckeditor5-dev/tree/master/packages/typedoc-plugins
- Issues: https://github.com/ckeditor/ckeditor5/issues
- npm.io page: https://npm.io/package/@ckeditor/typedoc-plugins

## Dependencies (1)

- [upath](https://npm.io/package/upath.md) ^2.0.1

## Recent versions

- 62.3.0 (latest) — 2026-10-02
- 61.3.0 (latest-v61) — 2026-10-01
- 54.9.1 (latest-v54) — 2026-10-01
- 57.0.0-alpha.1 (alpha) — 2026-07-08
- 54.2.1 (next) — 2025-12-03
- 62.2.1 — 2026-10-01
- 54.9.0 — 2026-10-01
- 62.2.0 — 2026-10-01
- 62.1.0 — 2026-09-28
- 62.0.0 — 2026-09-09
- 61.2.0 — 2026-09-04
- 61.1.0 — 2026-08-21
- 61.0.0 — 2026-08-19
- 60.0.0 — 2026-08-17
- 59.1.0 — 2026-08-13
- … 194 more at https://npm.io/package/@ckeditor/typedoc-plugins/versions

## README

# TypeDoc plugins overview

[![npm version](https://badge.fury.io/js/%40ckeditor%2Ftypedoc-plugins.svg)](https://www.npmjs.com/package/@ckeditor/typedoc-plugins)
[![CircleCI](https://circleci.com/gh/ckeditor/ckeditor5-dev.svg?style=shield)](https://app.circleci.com/pipelines/github/ckeditor/ckeditor5-dev?branch=master)

## Overview

This repository consists of a few plugins which extend the capabilities of [TypeDoc](https://typedoc.org/).

> [!WARNING]
> The [`@ckeditor/typedoc-plugins`](https://www.npmjs.com/package/@ckeditor/typedoc-plugins) requires [`typedoc@0.28`](https://npmjs.com/package/typedoc).

Before enabling plugins from the package, you need to install it first.

```bash
npm install @ckeditor/typedoc-plugins
```

Below you can find the detailed overview of available plugins.

## Usage

To use the `typedoc-plugins`, you need to create an instance of the Typedoc application.

```js
import { Application } from 'typedoc';
import { typeDocSymbolFixer } from '@ckeditor/typedoc-plugins';

const app = await Application.bootstrapWithPlugins( { /* Typedoc options. */ } );

// It is essential to execute a plugin before converting the project.
typeDocSymbolFixer( app );

const conversionResult = await typeDoc.convert();
```

## Available plugins

- **Module fixer** &mdash; `typeDocModuleFixer()`

  The plugin reads the module name specified in the `@module` annotation.

  ```ts
  import type { TypeDefinition } from '...';
  
  /**
   * @module package/file
   */
  ```

  For the example specified above, the name of the parsed module should be equal to `package/file`.

  The `import` statements may be specified above the "@module" block code. In such a case, the default module parser from `typedoc` returns the module name based on a path relative to the project root.

- **Symbol fixer** &mdash; `typeDocSymbolFixer()`

  The plugin renames `Symbol.*` definitions with the JSDoc style.

  - Typedoc: `[iterator]() → Iterator`
  - JSDoc: `Symbol.iterator() → Iterator`

- **Interface augmentation fixer** &mdash; `typeDocInterfaceAugmentationFixer()`

  The plugin tries to fix an interface, that has been extended (augmented) from the outside (from another module) in the re-exported `index.ts` file. When the extending "declare module ..." declaration contains the full package name, it points to the `index.ts` file instead of the actual source file. The goal is to add missing properties from interfaces to their source locations.

- **Event parameter fixer** &mdash; `typeDocEventParamFixer()`

  The plugin injects the `eventInfo` parameter (an instance of the `EventInfo` class) as the first parameter for each event reflection.

- **Events inheritance fixer** &mdash; `typeDocEventInheritanceFixer()`

  The plugin takes care of inheriting events, which are created manually via the [`@eventName`](#tag-eventname) annotation.

- **Hierarchy fixer** &mdash; `typeDocHierarchyFixer()`

  The plugin restores the class hierarchy broken by extending an intermediate mixin constant, e.g. `const ClassicEditorBase = ElementApiMixin( Editor )`. It replaces the unresolvable base class reference with the actual base class, restores the "Subclasses" relation on the base class, and lists the mixin interfaces as implemented by the extending class. It also removes references pointing to reflections purged from private packages.

  The plugin must be executed after `typeDocEventInheritanceFixer()`, because inheriting events resolves the original (broken) references replaced by this plugin.

- **Purge private API** &mdash; `typeDocPurgePrivateApiDocs()`

  The plugin removes reflections collected from private packages (marked as `"private": true` in their `package.json`). To disable the mechanism, add the `@publicApi` annotation at the beginning of a file.
    
- **Tag `@error`** &mdash; `typeDocTagError()`

  The plugin collects error definitions from the `@error` annotation.
    
- **Tag `@eventName`** &mdash; `typeDocTagEvent()`

  The plugin collects event definitions from the `@eventName` annotation and assigns them as the children of the class or the `Observable` interface.

  We are not using the [`@event`](https://typedoc.org/tags/event/) annotation, known from the JSDoc specification, because it has a special meaning in the TypeDoc, and it would be difficult to get it to work as we expect.

- **Tag `@observable`** &mdash; `typeDocTagObservable()`

  Adds support for creating CKEditor 5 events from properties marked as `@observable`.

- **Restore program after conversion** &mdash; `typeDocRestoreProgramAfterConversion()`

  The plugin restores the TypeScript program used for the source conversion. TypeDoc deletes the `context.program` property once the conversion is finished, which prevents other plugins listening to the `EVENT_END` event from using the TypeScript API.

- **Reference fixer** &mdash; `typeDocReferenceFixer()`

  The plugin fixes reflections that are re-exported from another file as a default export. In such a case TypeDoc adds the reflection declaration to the file containing the re-export, while the actual source file contains only a reference. The plugin moves the declarations back to their source locations.

- **Output clean-up** &mdash; `typeDocOutputCleanUp()`

  The plugin removes unnecessary properties from reflections to decrease the size of the generated output.

- **Validators** &mdash; `validate()`

  Validates the CKEditor 5 documentation. It verifies the `@see` and `@link` references and the events specified in the `@fires` annotation. Optionally, when the `enableOverloadValidator` option is enabled, it also verifies whether overloaded signatures use the `@label` annotation.

------------------------------------------------------------------------------------

## Changelog

See the [`CHANGELOG.md`](https://github.com/ckeditor/ckeditor5-dev/blob/master/packages/typedoc-plugins/CHANGELOG.md) file.

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