Alexandro.Net

Version 1.0.2

@stackline/unified-engine

Process files with unified plugins, configuration, and ignore rules using the unified-engine 10 callback API

Installation

npm install @stackline/unified-engine@1.0.2

Node.js: ^20.19.0 || >=22.12.0. Read the compatibility and maintenance notes before migrating.

Usage and API

@stackline/unified-engine

Process files with unified plugins, configuration, and ignore rules using the unified-engine 10 callback API.

npm version license GitHub repository

Documentation | npm | Issues | Repository

Package version: 1.0.2

Why this package?

Maintained MIT-licensed fork of unified-engine@10.1.0, retaining its callback API and unified 10 / vfile 5 type model. Requires Node.js 20.19+ on the 20.x line, or Node.js 22.12+.

The file finder uses glob 13 with brace-aware magic detection and a Promise-to-callback bridge. @stackline/load-plugin removes obsolete glob/inflight dependencies from the plugin-resolution path while preserving the original options.

Development: npm ci, npm run build, npm test, npm run lint. npm run build validates the preserved published declarations with modern TypeScript; it does not regenerate unrelated legacy JSDoc. See UPSTREAM-TYPES.md. Tests include the upstream integration suite and focused glob regressions.

unified engine to process multiple files, lettings users configure from the file system.

What is this?

This package is the engine. It’s what you use underneath when you use remark-cli or a language server. Compared to unified, this deals with multiple files, often from the file system, and with configuration files and ignore files.

When should I use this?

You typically use something that wraps this, such as:

You can use this to make such things.

Compatibility

Item Value
Package @stackline/unified-engine@1.0.2
Supported Node.js `^20.19.0
Module entry index.js (ES modules)
Runtime dependencies 22 direct dependencies
Types index.d.ts

This fork supports Node.js 20.19+ on the 20.x line, and Node.js 22.12+. The callback API and unified 10 / vfile 5 type model are preserved.

Installation

npm install @stackline/unified-engine

This package is ESM only. In Node.js (20.19+ on the 20.x line, or 22.12+), install with npm:

npm install @stackline/unified-engine

Usage

The following example processes all files in the current directory with a markdown extension with remark, allows configuration from .remarkrc and package.json files, ignoring files from .remarkignore files, and more.

/**
 * @typedef {import('unified-engine').Callback} Callback
 */

import {engine} from '@stackline/unified-engine'
import {remark} from 'remark'

engine(
  {
    processor: remark,
    files: ['.'],
    extensions: ['md', 'markdown', 'mkd', 'mkdn', 'mkdown'],
    pluginPrefix: 'remark',
    rcName: '.remarkrc',
    packageField: 'remarkConfig',
    ignoreName: '.remarkignore',
    color: true
  },
  done
)

/** @type {Callback} */
function done(error) {
  if (error) throw error
}

Security

Plugins and JavaScript configuration can execute code. Review the existing security guidance before processing an untrusted project.

unified-engine loads and evaluates configuration files, plugins, and presets from the file system (often from node_modules/). That means code that is on your file system runs. Make sure you trust the workspace where you run unified-engine and be careful with packages from npm and changes made by contributors.

API Surface

This package exports the identifier engine. There is no default export.

engine(options, callback)

Process files according to options and call callback when done.

options

function callback(error[, code, context])

Called when processing is complete, either with a fatal error if processing went horribly wrong (probably due to incorrect configuration on your part as a developer), or a status code and the processing context.

Parameters

Plugins

doc/plugins.md describes in detail how plugins can add more files to be processed and handle all transformed files.

Configuration

doc/configure.md describes in detail how configuration files work.

Ignoring

doc/ignore.md describes in detail how ignore files work.

Types

This package is fully typed with TypeScript. It additionally exports the following types:

Local Development

Clone the repository and run the following commands from its root:

npm ci
npm run build
npm test
npm run lint
npm run test:types

The retained upstream development notes below include historical tooling; the commands above are the maintained package checks.

Contribute

See contributing.md in unifiedjs/.github for ways to get started. See support.md for ways to get help.

This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.

Release Checklist

  1. Update the package version, lockfile, generated version fields, and changelog together.
  2. Run the development checks above and audit both npm audit and npm audit --omit=dev.
  3. Use the GitHub publish workflow with its Prod environment to publish the exact CI tarball.
  4. Verify public npm bytes, package identity, provenance, and the immutable GitHub release evidence.

Community and Support

Report reproducible package issues in the issue tracker.

License

MIT. Original copyright notices and upstream attribution are retained.

MIT © Titus Wormer

See NOTICE for retained attribution.

Release changes

Changelog

1.0.2 - 2026-09-28

1.0.1 (2026-09-28)

1.0.0

Release files and references

Package bytes, npm provenance and the immutable GitHub release were verified for this version. Security checks describe the reviewed release; documented compatibility risks and upstream reports are not blanket claims of resolution.