2.2 KiB
2.2 KiB
OpenSpec Change: enterprise-barcode
- Change ID: enterprise-barcode
- Package:
@suaveplan/barcode - Category: universal
- Target path:
universal/media/barcode - Status: PROPOSED
- Date: 2026-04-19
- Reference spec:
/mnt/s/web/suaveplan/enterprise/barcode.md
Summary
Greenfield rebuild of @suaveplan/barcode — dependency-free barcode generator and reader with support for Code 39, Code 93, Code 128, ITF, EAN-13, UPC-A, Data Matrix, PDF417. Pure-TS encoders/decoders; no native bindings. Ships a BarcodeGenerator, readBarcode, and generateBatch.
Current-state audit (genesis)
Package does not exist yet — fresh build.
Dependencies
- Workspace:
@suaveplan/error,@suaveplan/types - External (via catalog):
zod,tslib,@opentelemetry/api - Dev (via catalog):
vitest,@vitest/coverage-istanbul,fast-check,mitata
Preserved public surface
Generator / reader
BarcodeGenerator,calculateEan13CheckDigit,calculateUpcaCheckDigitreadBarcode,ReadResultgenerateBatch,BatchItem,BatchItemResult,BatchOptions,BatchResult
Formats
- Code 93:
encodeCode93,validateCode93 - Data Matrix:
encodeDataMatrix,validateDataMatrix,DataMatrixOptions,DataMatrixResult - ITF:
calculateItfCheckDigit,encodeItf,validateItf - PDF417:
encodePdf417,validatePdf417,Pdf417Options,Pdf417Result
Errors
BarcodeError,BarcodeErrorCode,BarcodeErrorContext,BARCODE_ERROR_METADATA,registerBarcodeErrorCodeschecksumFailed,decodeFailed,encodeFailed,imageInvalid,invalidData,invalidFormat,unsupportedCharacter
Types / constants
BarcodeFormat, BarcodeOptions, BarcodeResult, CODE39_CHARS, DEFAULT_BARCODE_OPTIONS, VALID_FORMATS.
New genesis additions
- Extend code registry with
BARCODE.BATCH_PARTIALfor partial batch failures. - Zod schemas for every option type.
- OTel counter
barcode.encode.total{format, outcome},barcode.decode.total{format, outcome}; histograms for durations. - Property tests:
readBarcode(BarcodeGenerator.generate(x)) === xfor every format on valid payloads.
Impact
- Adds one new package:
universal/media/barcode - Adds one new spec capability:
barcode