npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@carbonenginejs/format-red

v0.1.1

Published

CarbonEngineJS Red format reader. Reads Red data - a type-discriminated, self-referential YAML object graph - and emits public payload JSON or caller-supplied classes.

Readme

@carbonenginejs/format-red

CarbonEngineJS-facing reader for Red data — a type-discriminated, self-referential YAML object graph (type: per node, YAML anchors/aliases for shared references). It emits a compact public payload by default, a cleaned raw graph, or caller-supplied runtime classes through the @carbonenginejs/core-types hydration adapter.

Any red or blue meta data should be stripped when publishing.

Provenance

CarbonEngine and Fenris Creations (CCP Games) are named in this package for interoperability and schema-provenance context only. This package contains CarbonEngineJS original code unless NOTICE is expanded; it is not affiliated with or endorsed by CCP Games.

Public API

The package root exports one public class: CjsFormatRed.

import CjsFormatRed from "@carbonenginejs/format-red";

const red = new CjsFormatRed({
  emit: "json",            // "json"/"payload" (default) | "runtime" | "raw"
  classes: { EveChildContainer, Tr2Effect, Tr2PointLight /* … by Red type */ },
});

const payload = red.Read(source);            // compact public payload
const text = JSON.stringify(red.ToJSON(payload));

source is either an already-parsed Red object graph, or a YAML string (parsed with the optional yaml dependency, or an options.parse(text) function you supply).

Static one-shot methods are also available:

const payload = CjsFormatRed.readPayload(source);
const runtime = CjsFormatRed.readRuntime(source, { classes });
const raw     = CjsFormatRed.readRaw(source);
const summary = CjsFormatRed.inspect(source);

Read modes

  • Read / readPayload — compact public payload: each node carries _type, repeated (aliased) nodes emit { _reference: id } after the first full emission (which gains _id lazily), so the result is a JSON-safe tree.
  • ReadRuntime / readRuntime — constructs caller classes (by Red type) via the core-types hydration adapter: construct → applyValues → finalize, with shared nodes resolving to one instance. Provide classes and/or a registry; pass adapter: createLifecycleAdapter() for SetValues/Initialize-style classes.
  • ReadRaw / readRaw — the cleaned parsed graph (metadata stripped, typed tables decoded), shared references preserved by identity.
  • Inspect / inspect — root type and a type histogram, without building the object graph.

Typed tables

Red's compact columnar encoding ({ structure, items }, used by curve keys, effect options, and samplerOverrides) decodes to an array of row objects keyed by column name — e.g. curve keys become [{ time, value, leftTangent, rightTangent, id, interpolation, tangentType }, …].

Options

  • emit, schema, classes, registry, family
  • adapter / adapters — hydration adapter(s) (see @carbonenginejs/core-types)
  • parse(text) => object YAML parser override
  • payloadTypeField / payloadIdField / payloadReferenceField — default _type / _id / _reference; set to false to omit.

Baseline Checks

npm test
npm run lint