All notable changes to @babelqueue/core are documented here.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
The envelope wire format is versioned separately by meta.schema_version
(currently 1) — see the contract at babelqueue.com.
1.0.0 - 2026-06-07
1.0.0 — the public API is now SemVer-stable: breaking changes require a MAJOR,
following the deprecation policy. The wire envelope is unchanged
(schema_version: 1). Full reference at babelqueue.com.
- CI adds ESLint (
@eslint/js+typescript-eslint) and a c8 coverage gate (npm run coverage, ≥90% lines/functions, ≥85% branches) as separate jobs;tsc --stricttypecheck already ran.npm run lintfor local use. - GR-8 latency benchmark (
test/overhead.test.ts) — asserts the envelope encode/decode path adds ≤2% over plain-JSON serialization vs a conservative 750µs broker round-trip.
0.1.0 - 2026-06-06
EnvelopeCodec— builds (make,fromMessage), encodes and decodes the canonical{job, trace_id, data, meta, attempts}envelope (schema_version1). The single Node/TypeScript implementation of the wire format.EnvelopeCodec.encodeemits compact UTF-8 JSON (slashes/unicode unescaped) — the canonical wire form shared by every SDK.EnvelopeCodec.urn()— resolve the URN (job, acceptingurnas an alias).EnvelopeCodec.accepts()— consumer-side validation (rejects empty URN, unsupportedmeta.schema_version, non-objectdata, non-integerattempts, blanktrace_id); acts as a TypeScript type guard narrowing toEnvelope.makeoptionsqueueandtraceId(trace continuation).annotate/deadLetter.annotate— additivedead_letterblock builder.- Contracts
PolyglotMessage/HasTraceId. UnknownUrnStrategy(FAIL/DELETE/RELEASE/DEAD_LETTER);BabelQueueError/UnknownUrnError.- Shipped as a dual ESM + CommonJS package with bundled type declarations.
- Shared cross-SDK conformance suite under
test/conformance/(vendored from the canonicalconformance/set) plus a runner.
- Pre-1.0: the public API may change before the
1.0.0tag. - Zero runtime dependencies; Node
>=18.