@czap/canonical
Advanced tools
+50
| # @czap/canonical | ||
| The sync bytes kernel — deterministic CBOR encoding, FNV-1a content labels, and addressed digests, with no Effect runtime and no `@czap/core` graph behind it. | ||
| > You usually don't install this directly — `@czap/core` re-exports these surfaces at its public boundary, so app authors who already depend on core get them for free. Reach for `@czap/canonical` standalone only when core is too heavy: an upstream factory or WASM-side path that needs stable bytes without pulling the full graph. | ||
| ## Install | ||
| ```bash | ||
| pnpm add @czap/core # brings @czap/canonical with it | ||
| ``` | ||
| If you do need the kernel standalone, install it directly: `pnpm add @czap/canonical`. Its only third-party dependency is `@noble/hashes` (for the sha256/blake3 digests) — no Effect, no peer setup. | ||
| ## 30 seconds | ||
| ```ts | ||
| import { CanonicalCbor, AddressedDigest, fnv1a } from '@czap/canonical'; | ||
| // Key-permuted objects encode to byte-identical output (RFC 8949 §4.2.1). | ||
| const bytes = CanonicalCbor.encode({ title: 'hello', n: 42 }); | ||
| const digest = AddressedDigest.of(bytes); | ||
| console.log(digest.display_id); // 'fnv1a:xxxxxxxx' — sync identity label | ||
| console.log(digest.integrity_digest); // 'sha256:...' — cryptographic digest | ||
| console.log(digest.algo); // 'sha256' (pass 'blake3' for the blake3 digest) | ||
| console.log(fnv1a('any string')); // 'fnv1a:xxxxxxxx' | ||
| ``` | ||
| `CanonicalCbor.encode` produces a stable `Uint8Array` for any JSON-shaped value; `decode` is its strict inverse, accepting only the canonical subset the encoder emits. `AddressedDigest.of` pairs a sync FNV-1a `display_id` with a cryptographic `integrity_digest` over the very same bytes, so identity and integrity can never disagree. | ||
| ## Where it sits | ||
| This package is a standalone leaf — it carries no `@czap/core`, no Effect, and no spine imports, which is exactly why upstream and WASM-side code can address content without dragging in the full graph. `@czap/core` re-anchors `ContentAddress` / `IntegrityDigest` to spine brands at its own boundary (ADR-0012); here they are kept local. See the [package surfaces map](https://github.com/heyoub/LiteShip/blob/main/PACKAGE-SURFACES.md) for the full layout. | ||
| ## If encoding throws | ||
| Only the JSON-shaped value subset encodes: numbers, strings, booleans, `null`, `Uint8Array`, arrays, and plain objects. Functions, symbols, `bigint`, `Map`, `Set`, and `Date` raise an `UnsupportedError` rather than emit ambiguous bytes — determinism is the whole point. Plain-object properties whose value is `undefined` are skipped, matching JSON semantics. | ||
| ## Docs | ||
| - [Getting started](https://github.com/heyoub/LiteShip/blob/main/GETTING-STARTED.md) | ||
| - [ADR-0013 — the canonical package](https://github.com/heyoub/LiteShip/blob/main/docs/adr/0013-canonical-package.md) — why the bytes kernel is a standalone leaf | ||
| - [Glossary](https://github.com/heyoub/LiteShip/blob/main/GLOSSARY.md) — the vocabulary used above | ||
| - [API reference](https://github.com/heyoub/LiteShip/tree/main/docs/api/canonical/src/) — generated from source | ||
| --- | ||
| Part of [LiteShip](https://github.com/heyoub/LiteShip#readme) — powered by the CZAP engine (Content-Zoned Adaptive Projection), distributed as `@czap/*` packages. |
+17
-2
@@ -8,2 +8,7 @@ /** | ||
| * | ||
| * The constructors are VALIDATING smart constructors (parse-don't-validate): | ||
| * each throws `ValidationError` on input that does not match the brand's | ||
| * real runtime shape, so a branded value is a proof of that shape. `@czap/error` | ||
| * is a zero-dep foundational package, so importing it here introduces no cycle. | ||
| * | ||
| * @module | ||
@@ -15,6 +20,16 @@ */ | ||
| export type IntegrityDigest = `sha256:${string}` | `blake3:${string}`; | ||
| /** Wrap a plain string as a {@link ContentAddress}. */ | ||
| /** Type guard: `s` is a syntactically valid {@link ContentAddress}. */ | ||
| export declare const isContentAddress: (s: string) => s is ContentAddress; | ||
| /** Type guard: `s` is a syntactically valid {@link IntegrityDigest}. */ | ||
| export declare const isIntegrityDigest: (s: string) => s is IntegrityDigest; | ||
| /** | ||
| * Parse a plain string into a {@link ContentAddress}. | ||
| * @throws `ValidationError` when `value` is not `fnv1a:` + 8 lowercase hex. | ||
| */ | ||
| export declare const ContentAddress: (value: string) => ContentAddress; | ||
| /** Wrap a plain string as an {@link IntegrityDigest}. */ | ||
| /** | ||
| * Parse a plain string into an {@link IntegrityDigest}. | ||
| * @throws `ValidationError` when `value` is not `sha256:`/`blake3:` + 64 lowercase hex. | ||
| */ | ||
| export declare const IntegrityDigest: (value: string) => IntegrityDigest; | ||
| //# sourceMappingURL=brands.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"brands.d.ts","sourceRoot":"","sources":["../src/brands.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,SAAS,MAAM,EAAE,CAAC;AAE/C,kFAAkF;AAClF,MAAM,MAAM,eAAe,GAAG,UAAU,MAAM,EAAE,GAAG,UAAU,MAAM,EAAE,CAAC;AAEtE,uDAAuD;AACvD,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,cAAyC,CAAC;AAEzF,yDAAyD;AACzD,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,eAA2C,CAAC"} | ||
| {"version":3,"file":"brands.d.ts","sourceRoot":"","sources":["../src/brands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,SAAS,MAAM,EAAE,CAAC;AAE/C,kFAAkF;AAClF,MAAM,MAAM,eAAe,GAAG,UAAU,MAAM,EAAE,GAAG,UAAU,MAAM,EAAE,CAAC;AAgBtE,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,cAA4C,CAAC;AAE/F,wEAAwE;AACxE,eAAO,MAAM,iBAAiB,GAAI,GAAG,MAAM,KAAG,CAAC,IAAI,eAA8C,CAAC;AAElG;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,cAK9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,eAQ/C,CAAC"} |
+42
-4
@@ -8,8 +8,46 @@ /** | ||
| * | ||
| * The constructors are VALIDATING smart constructors (parse-don't-validate): | ||
| * each throws `ValidationError` on input that does not match the brand's | ||
| * real runtime shape, so a branded value is a proof of that shape. `@czap/error` | ||
| * is a zero-dep foundational package, so importing it here introduces no cycle. | ||
| * | ||
| * @module | ||
| */ | ||
| /** Wrap a plain string as a {@link ContentAddress}. */ | ||
| export const ContentAddress = (value) => value; | ||
| /** Wrap a plain string as an {@link IntegrityDigest}. */ | ||
| export const IntegrityDigest = (value) => value; | ||
| import { ValidationError } from '@czap/error'; | ||
| /** | ||
| * A {@link ContentAddress} is the `fnv1a:` prefix followed by exactly 8 lowercase | ||
| * hex digits — the full width of the FNV-1a 32-bit output ({@link fnv.ts} pads to | ||
| * 8 via `(h >>> 0).toString(16).padStart(8, '0')`). | ||
| */ | ||
| const CONTENT_ADDRESS_RE = /^fnv1a:[0-9a-f]{8}$/; | ||
| /** | ||
| * An {@link IntegrityDigest} is `sha256:` or `blake3:` followed by exactly 64 | ||
| * lowercase hex digits — the full width of a 256-bit cryptographic digest | ||
| * (ADR-0011). Only these two algorithms are sanctioned. | ||
| */ | ||
| const INTEGRITY_DIGEST_RE = /^(?:sha256|blake3):[0-9a-f]{64}$/; | ||
| /** Type guard: `s` is a syntactically valid {@link ContentAddress}. */ | ||
| export const isContentAddress = (s) => CONTENT_ADDRESS_RE.test(s); | ||
| /** Type guard: `s` is a syntactically valid {@link IntegrityDigest}. */ | ||
| export const isIntegrityDigest = (s) => INTEGRITY_DIGEST_RE.test(s); | ||
| /** | ||
| * Parse a plain string into a {@link ContentAddress}. | ||
| * @throws `ValidationError` when `value` is not `fnv1a:` + 8 lowercase hex. | ||
| */ | ||
| export const ContentAddress = (value) => { | ||
| if (!isContentAddress(value)) { | ||
| throw ValidationError('ContentAddress', `expected fnv1a:<8 lowercase hex>, got ${JSON.stringify(value)}`); | ||
| } | ||
| return value; | ||
| }; | ||
| /** | ||
| * Parse a plain string into an {@link IntegrityDigest}. | ||
| * @throws `ValidationError` when `value` is not `sha256:`/`blake3:` + 64 lowercase hex. | ||
| */ | ||
| export const IntegrityDigest = (value) => { | ||
| if (!isIntegrityDigest(value)) { | ||
| throw ValidationError('IntegrityDigest', `expected (sha256|blake3):<64 lowercase hex>, got ${JSON.stringify(value)}`); | ||
| } | ||
| return value; | ||
| }; | ||
| //# sourceMappingURL=brands.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"brands.js","sourceRoot":"","sources":["../src/brands.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,uDAAuD;AACvD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAkB,EAAE,CAAC,KAAuB,CAAC;AAEzF,yDAAyD;AACzD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAmB,EAAE,CAAC,KAAwB,CAAC"} | ||
| {"version":3,"file":"brands.js","sourceRoot":"","sources":["../src/brands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAQ9C;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AAE/D,uEAAuE;AACvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAuB,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAE/F,wEAAwE;AACxE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAS,EAAwB,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAElG;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAkB,EAAE;IAC9D,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,eAAe,CAAC,gBAAgB,EAAE,yCAAyC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAmB,EAAE;IAChE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,eAAe,CACnB,iBAAiB,EACjB,oDAAoD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC5E,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"} |
@@ -6,4 +6,5 @@ /** | ||
| * encoder (`./cbor.ts`) emits, and rejects everything else with a typed | ||
| * {@link CborDecodeError}. This is the reader the encoder's bytes have | ||
| * lacked: a persisted DocumentGraph (content-addressed via the encoder) | ||
| * `ParseError` (source `'cbor'`, `code` = the reason discriminant, | ||
| * `offset` = the byte position). This is the reader the encoder's bytes | ||
| * have lacked: a persisted DocumentGraph (content-addressed via the encoder) | ||
| * can now be re-read without a third-party CBOR library that would accept | ||
@@ -21,3 +22,3 @@ * non-canonical encodings. | ||
| * | ||
| * Rejected (typed `CborDecodeError`): | ||
| * Rejected (typed `ParseError`, `code` carries the reason): | ||
| * - non-shortest integer/length encodings (`'non_canonical'`). | ||
@@ -33,11 +34,2 @@ * - float16 (ai=25) and float32 (ai=26) in major 7 (`'non_canonical'`). | ||
| */ | ||
| /** Reason a {@link CborDecodeError} was raised. */ | ||
| export type CborDecodeErrorReason = 'non_canonical' | 'malformed' | 'unexpected_eof'; | ||
| /** Typed error for any input outside the canonical subset. */ | ||
| export declare class CborDecodeError extends Error { | ||
| readonly reason: CborDecodeErrorReason; | ||
| /** Byte offset where decoding failed (best effort). */ | ||
| readonly offset: number; | ||
| constructor(reason: CborDecodeErrorReason, message: string, offset: number); | ||
| } | ||
| /** | ||
@@ -48,7 +40,8 @@ * Decode a canonical CBOR byte sequence produced by {@link CanonicalCbor.encode}. | ||
| * encoder emits (non-shortest forms, float16/32, indefinite lengths, | ||
| * out-of-order map keys, trailing bytes) raises a typed {@link CborDecodeError}. | ||
| * out-of-order map keys, trailing bytes) raises a typed `ParseError` | ||
| * (source `'cbor'`, `code` = the reason discriminant). | ||
| * | ||
| * @throws {CborDecodeError} | ||
| * @throws A `@czap/error` `ParseError` (`source` `'cbor'`). | ||
| */ | ||
| export declare function decode(bytes: Uint8Array): unknown; | ||
| //# sourceMappingURL=cbor-decode.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"cbor-decode.d.ts","sourceRoot":"","sources":["../src/cbor-decode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,mDAAmD;AACnD,MAAM,MAAM,qBAAqB,GAAG,eAAe,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAErF,8DAA8D;AAC9D,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAM3E;AAkOD;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAUjD"} | ||
| {"version":3,"file":"cbor-decode.d.ts","sourceRoot":"","sources":["../src/cbor-decode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAuOH;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAUjD"} |
+32
-37
@@ -6,4 +6,5 @@ /** | ||
| * encoder (`./cbor.ts`) emits, and rejects everything else with a typed | ||
| * {@link CborDecodeError}. This is the reader the encoder's bytes have | ||
| * lacked: a persisted DocumentGraph (content-addressed via the encoder) | ||
| * `ParseError` (source `'cbor'`, `code` = the reason discriminant, | ||
| * `offset` = the byte position). This is the reader the encoder's bytes | ||
| * have lacked: a persisted DocumentGraph (content-addressed via the encoder) | ||
| * can now be re-read without a third-party CBOR library that would accept | ||
@@ -21,3 +22,3 @@ * non-canonical encodings. | ||
| * | ||
| * Rejected (typed `CborDecodeError`): | ||
| * Rejected (typed `ParseError`, `code` carries the reason): | ||
| * - non-shortest integer/length encodings (`'non_canonical'`). | ||
@@ -33,13 +34,6 @@ * - float16 (ai=25) and float32 (ai=26) in major 7 (`'non_canonical'`). | ||
| */ | ||
| /** Typed error for any input outside the canonical subset. */ | ||
| export class CborDecodeError extends Error { | ||
| reason; | ||
| /** Byte offset where decoding failed (best effort). */ | ||
| offset; | ||
| constructor(reason, message, offset) { | ||
| super(`CborDecodeError[${reason}] @${offset}: ${message}`); | ||
| this.name = 'CborDecodeError'; | ||
| this.reason = reason; | ||
| this.offset = offset; | ||
| } | ||
| import { ParseError } from '@czap/error'; | ||
| /** Raise a canonical-CBOR `ParseError`: `code` = reason, `offset` = byte position. */ | ||
| function fail(reason, message, offset) { | ||
| throw ParseError('cbor', message, { code: reason, offset }); | ||
| } | ||
@@ -66,3 +60,3 @@ const textDecoder = new TextDecoder('utf-8', { fatal: true }); | ||
| if (this.pos + n > this.bytes.length) { | ||
| throw new CborDecodeError('unexpected_eof', `need ${n} byte(s) but only ${this.bytes.length - this.pos} remain`, this.pos); | ||
| fail('unexpected_eof', `need ${n} byte(s) but only ${this.bytes.length - this.pos} remain`, this.pos); | ||
| } | ||
@@ -95,3 +89,3 @@ } | ||
| if (v < 24) { | ||
| throw new CborDecodeError('non_canonical', `1-byte argument ${v} should be inlined`, headOffset); | ||
| fail('non_canonical', `1-byte argument ${v} should be inlined`, headOffset); | ||
| } | ||
@@ -105,3 +99,3 @@ return v; | ||
| if (v < 0x100) { | ||
| throw new CborDecodeError('non_canonical', `2-byte argument ${v} should use a shorter head`, headOffset); | ||
| fail('non_canonical', `2-byte argument ${v} should use a shorter head`, headOffset); | ||
| } | ||
@@ -117,3 +111,3 @@ return v; | ||
| if (v < 0x10000) { | ||
| throw new CborDecodeError('non_canonical', `4-byte argument ${v} should use a shorter head`, headOffset); | ||
| fail('non_canonical', `4-byte argument ${v} should use a shorter head`, headOffset); | ||
| } | ||
@@ -127,6 +121,6 @@ return v; | ||
| if (hi === 0 && lo < 0x100000000) { | ||
| throw new CborDecodeError('non_canonical', `8-byte argument ${v} should use a shorter head`, headOffset); | ||
| fail('non_canonical', `8-byte argument ${v} should use a shorter head`, headOffset); | ||
| } | ||
| if (!Number.isSafeInteger(v)) { | ||
| throw new CborDecodeError('malformed', `integer ${v} exceeds the encoder's safe-integer range`, headOffset); | ||
| fail('malformed', `integer ${v} exceeds the encoder's safe-integer range`, headOffset); | ||
| } | ||
@@ -137,5 +131,5 @@ return v; | ||
| if (ai === 31) { | ||
| throw new CborDecodeError('non_canonical', 'indefinite-length items are not canonical', headOffset); | ||
| fail('non_canonical', 'indefinite-length items are not canonical', headOffset); | ||
| } | ||
| throw new CborDecodeError('malformed', `reserved additional-info value ${ai}`, headOffset); | ||
| fail('malformed', `reserved additional-info value ${ai}`, headOffset); | ||
| } | ||
@@ -161,3 +155,3 @@ function decodeFloat64(r) { | ||
| if (!Number.isSafeInteger(v)) { | ||
| throw new CborDecodeError('malformed', `negative integer ${v} out of safe range`, headOffset); | ||
| fail('malformed', `negative integer ${v} out of safe range`, headOffset); | ||
| } | ||
@@ -180,3 +174,3 @@ return v; | ||
| catch { | ||
| throw new CborDecodeError('malformed', 'invalid UTF-8 in text string', headOffset); | ||
| fail('malformed', 'invalid UTF-8 in text string', headOffset); | ||
| } | ||
@@ -203,3 +197,3 @@ } | ||
| if (keyHead === undefined || keyHead >> 5 !== 3) { | ||
| throw new CborDecodeError('malformed', 'map keys must be text strings', keyOffset); | ||
| fail('malformed', 'map keys must be text strings', keyOffset); | ||
| } | ||
@@ -212,6 +206,6 @@ const keyStart = r.pos; | ||
| if (cmp > 0) { | ||
| throw new CborDecodeError('non_canonical', 'map keys are not in canonical byte order', keyOffset); | ||
| fail('non_canonical', 'map keys are not in canonical byte order', keyOffset); | ||
| } | ||
| if (cmp === 0) { | ||
| throw new CborDecodeError('non_canonical', 'duplicate map key', keyOffset); | ||
| fail('non_canonical', 'duplicate map key', keyOffset); | ||
| } | ||
@@ -246,14 +240,14 @@ } | ||
| case 25: | ||
| throw new CborDecodeError('non_canonical', 'float16 is not in the canonical subset', headOffset); | ||
| return fail('non_canonical', 'float16 is not in the canonical subset', headOffset); | ||
| case 26: | ||
| throw new CborDecodeError('non_canonical', 'float32 is not in the canonical subset', headOffset); | ||
| return fail('non_canonical', 'float32 is not in the canonical subset', headOffset); | ||
| case 27: | ||
| return decodeFloat64(r); | ||
| case 31: | ||
| throw new CborDecodeError('non_canonical', 'indefinite-length break is not canonical', headOffset); | ||
| return fail('non_canonical', 'indefinite-length break is not canonical', headOffset); | ||
| case 23: | ||
| // `undefined` (simple 23) is never emitted — encoder coerces it to null. | ||
| throw new CborDecodeError('non_canonical', 'simple value `undefined` is not in the canonical subset', headOffset); | ||
| return fail('non_canonical', 'simple value `undefined` is not in the canonical subset', headOffset); | ||
| default: | ||
| throw new CborDecodeError('malformed', `unsupported simple/float value (ai=${ai})`, headOffset); | ||
| return fail('malformed', `unsupported simple/float value (ai=${ai})`, headOffset); | ||
| } | ||
@@ -263,3 +257,3 @@ } | ||
| // Major 6 (tags) is not part of the encoder's output. | ||
| throw new CborDecodeError('malformed', `unsupported major type ${major}`, headOffset); | ||
| return fail('malformed', `unsupported major type ${major}`, headOffset); | ||
| } | ||
@@ -272,9 +266,10 @@ } | ||
| * encoder emits (non-shortest forms, float16/32, indefinite lengths, | ||
| * out-of-order map keys, trailing bytes) raises a typed {@link CborDecodeError}. | ||
| * out-of-order map keys, trailing bytes) raises a typed `ParseError` | ||
| * (source `'cbor'`, `code` = the reason discriminant). | ||
| * | ||
| * @throws {CborDecodeError} | ||
| * @throws A `@czap/error` `ParseError` (`source` `'cbor'`). | ||
| */ | ||
| export function decode(bytes) { | ||
| if (!(bytes instanceof Uint8Array)) { | ||
| throw new CborDecodeError('malformed', 'input must be a Uint8Array', 0); | ||
| fail('malformed', 'input must be a Uint8Array', 0); | ||
| } | ||
@@ -284,3 +279,3 @@ const r = new Reader(bytes); | ||
| if (r.pos !== bytes.length) { | ||
| throw new CborDecodeError('malformed', `trailing ${bytes.length - r.pos} byte(s) after top-level item`, r.pos); | ||
| fail('malformed', `trailing ${bytes.length - r.pos} byte(s) after top-level item`, r.pos); | ||
| } | ||
@@ -287,0 +282,0 @@ return value; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"cbor-decode.js","sourceRoot":"","sources":["../src/cbor-decode.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"cbor-decode.js","sourceRoot":"","sources":["../src/cbor-decode.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"cbor.d.ts","sourceRoot":"","sources":["../src/cbor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAqKH,2DAA2D;AAC3D,eAAO,MAAM,aAAa;6BA1BF,OAAO,KAAG,UAAU;CA0Ba,CAAC;AAE1D,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC,wDAAwD;IACxD,KAAY,OAAO,GAAG,UAAU,CAAC;CAClC"} | ||
| {"version":3,"file":"cbor.d.ts","sourceRoot":"","sources":["../src/cbor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA0KH,2DAA2D;AAC3D,eAAO,MAAM,aAAa;6BA1BF,OAAO,KAAG,UAAU;CA0Ba,CAAC;AAE1D,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC,wDAAwD;IACxD,KAAY,OAAO,GAAG,UAAU,CAAC;CAClC"} |
+3
-2
@@ -25,2 +25,3 @@ /** | ||
| */ | ||
| import { UnsupportedError, ValidationError } from '@czap/error'; | ||
| const MAJOR_UNSIGNED = 0 << 5; | ||
@@ -41,3 +42,3 @@ const MAJOR_NEGATIVE = 1 << 5; | ||
| if (value < 0 || !Number.isFinite(value)) { | ||
| throw new RangeError(`CanonicalCbor: head argument must be a non-negative finite integer, got ${value}`); | ||
| throw ValidationError('CanonicalCbor.encodeHead', `head argument must be a non-negative finite integer, got ${value}`); | ||
| } | ||
@@ -175,3 +176,3 @@ if (value < 24) { | ||
| } | ||
| throw new TypeError(`CanonicalCbor: unsupported value type ${typeof value}`); | ||
| throw UnsupportedError('CBOR value type', `${typeof value} cannot be canonically encoded`); | ||
| }; | ||
@@ -178,0 +179,0 @@ /** Canonical CBOR encoder namespace (ADR-0001 pattern). */ |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"cbor.js","sourceRoot":"","sources":["../src/cbor.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"cbor.js","sourceRoot":"","sources":["../src/cbor.ts"],"names":[],"mappings":"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"} |
+1
-2
@@ -7,4 +7,3 @@ /** | ||
| export { CanonicalCbor } from './cbor.js'; | ||
| export { decode, CborDecodeError } from './cbor-decode.js'; | ||
| export type { CborDecodeErrorReason } from './cbor-decode.js'; | ||
| export { decode } from './cbor-decode.js'; | ||
| export { ContentAddress, IntegrityDigest } from './brands.js'; | ||
@@ -11,0 +10,0 @@ export { fnv1a, fnv1aBytes } from './fnv.js'; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC3D,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"} |
+1
-1
@@ -7,3 +7,3 @@ /** | ||
| export { CanonicalCbor } from './cbor.js'; | ||
| export { decode, CborDecodeError } from './cbor-decode.js'; | ||
| export { decode } from './cbor-decode.js'; | ||
| export { ContentAddress, IntegrityDigest } from './brands.js'; | ||
@@ -10,0 +10,0 @@ export { fnv1a, fnv1aBytes } from './fnv.js'; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"} |
+4
-3
| { | ||
| "name": "@czap/canonical", | ||
| "version": "0.3.1", | ||
| "description": "Self-contained canonical bytes kernel — deterministic CBOR, FNV-1a, and sync digests", | ||
| "version": "0.4.0", | ||
| "description": "Self-contained bytes kernel: RFC 8949 §4.2.1 CBOR, FNV-1a labels, sync `AddressedDigest` (no Effect/spine in-package)", | ||
| "license": "MIT", | ||
@@ -38,3 +38,4 @@ "author": "Eassa Ayoub <eassa@heyoub.dev>", | ||
| "dependencies": { | ||
| "@noble/hashes": "^1.8.0" | ||
| "@noble/hashes": "^1.8.0", | ||
| "@czap/error": "0.4.0" | ||
| }, | ||
@@ -41,0 +42,0 @@ "engines": { |
+50
-4
@@ -8,5 +8,12 @@ /** | ||
| * | ||
| * The constructors are VALIDATING smart constructors (parse-don't-validate): | ||
| * each throws `ValidationError` on input that does not match the brand's | ||
| * real runtime shape, so a branded value is a proof of that shape. `@czap/error` | ||
| * is a zero-dep foundational package, so importing it here introduces no cycle. | ||
| * | ||
| * @module | ||
| */ | ||
| import { ValidationError } from '@czap/error'; | ||
| /** Content-addressed hash. Format: `fnv1a:XXXXXXXX` (8 hex digits). */ | ||
@@ -18,6 +25,45 @@ export type ContentAddress = `fnv1a:${string}`; | ||
| /** Wrap a plain string as a {@link ContentAddress}. */ | ||
| export const ContentAddress = (value: string): ContentAddress => value as ContentAddress; | ||
| /** | ||
| * A {@link ContentAddress} is the `fnv1a:` prefix followed by exactly 8 lowercase | ||
| * hex digits — the full width of the FNV-1a 32-bit output ({@link fnv.ts} pads to | ||
| * 8 via `(h >>> 0).toString(16).padStart(8, '0')`). | ||
| */ | ||
| const CONTENT_ADDRESS_RE = /^fnv1a:[0-9a-f]{8}$/; | ||
| /** Wrap a plain string as an {@link IntegrityDigest}. */ | ||
| export const IntegrityDigest = (value: string): IntegrityDigest => value as IntegrityDigest; | ||
| /** | ||
| * An {@link IntegrityDigest} is `sha256:` or `blake3:` followed by exactly 64 | ||
| * lowercase hex digits — the full width of a 256-bit cryptographic digest | ||
| * (ADR-0011). Only these two algorithms are sanctioned. | ||
| */ | ||
| const INTEGRITY_DIGEST_RE = /^(?:sha256|blake3):[0-9a-f]{64}$/; | ||
| /** Type guard: `s` is a syntactically valid {@link ContentAddress}. */ | ||
| export const isContentAddress = (s: string): s is ContentAddress => CONTENT_ADDRESS_RE.test(s); | ||
| /** Type guard: `s` is a syntactically valid {@link IntegrityDigest}. */ | ||
| export const isIntegrityDigest = (s: string): s is IntegrityDigest => INTEGRITY_DIGEST_RE.test(s); | ||
| /** | ||
| * Parse a plain string into a {@link ContentAddress}. | ||
| * @throws `ValidationError` when `value` is not `fnv1a:` + 8 lowercase hex. | ||
| */ | ||
| export const ContentAddress = (value: string): ContentAddress => { | ||
| if (!isContentAddress(value)) { | ||
| throw ValidationError('ContentAddress', `expected fnv1a:<8 lowercase hex>, got ${JSON.stringify(value)}`); | ||
| } | ||
| return value; | ||
| }; | ||
| /** | ||
| * Parse a plain string into an {@link IntegrityDigest}. | ||
| * @throws `ValidationError` when `value` is not `sha256:`/`blake3:` + 64 lowercase hex. | ||
| */ | ||
| export const IntegrityDigest = (value: string): IntegrityDigest => { | ||
| if (!isIntegrityDigest(value)) { | ||
| throw ValidationError( | ||
| 'IntegrityDigest', | ||
| `expected (sha256|blake3):<64 lowercase hex>, got ${JSON.stringify(value)}`, | ||
| ); | ||
| } | ||
| return value; | ||
| }; |
+38
-47
@@ -6,4 +6,5 @@ /** | ||
| * encoder (`./cbor.ts`) emits, and rejects everything else with a typed | ||
| * {@link CborDecodeError}. This is the reader the encoder's bytes have | ||
| * lacked: a persisted DocumentGraph (content-addressed via the encoder) | ||
| * `ParseError` (source `'cbor'`, `code` = the reason discriminant, | ||
| * `offset` = the byte position). This is the reader the encoder's bytes | ||
| * have lacked: a persisted DocumentGraph (content-addressed via the encoder) | ||
| * can now be re-read without a third-party CBOR library that would accept | ||
@@ -21,3 +22,3 @@ * non-canonical encodings. | ||
| * | ||
| * Rejected (typed `CborDecodeError`): | ||
| * Rejected (typed `ParseError`, `code` carries the reason): | ||
| * - non-shortest integer/length encodings (`'non_canonical'`). | ||
@@ -34,16 +35,13 @@ * - float16 (ai=25) and float32 (ai=26) in major 7 (`'non_canonical'`). | ||
| /** Reason a {@link CborDecodeError} was raised. */ | ||
| export type CborDecodeErrorReason = 'non_canonical' | 'malformed' | 'unexpected_eof'; | ||
| import { ParseError } from '@czap/error'; | ||
| /** Typed error for any input outside the canonical subset. */ | ||
| export class CborDecodeError extends Error { | ||
| readonly reason: CborDecodeErrorReason; | ||
| /** Byte offset where decoding failed (best effort). */ | ||
| readonly offset: number; | ||
| constructor(reason: CborDecodeErrorReason, message: string, offset: number) { | ||
| super(`CborDecodeError[${reason}] @${offset}: ${message}`); | ||
| this.name = 'CborDecodeError'; | ||
| this.reason = reason; | ||
| this.offset = offset; | ||
| } | ||
| /** | ||
| * The reason a canonical-CBOR `ParseError` was raised. Carried in the | ||
| * error's `code` field; kept local to constrain the value at every throw site. | ||
| */ | ||
| type CborDecodeErrorReason = 'non_canonical' | 'malformed' | 'unexpected_eof'; | ||
| /** Raise a canonical-CBOR `ParseError`: `code` = reason, `offset` = byte position. */ | ||
| function fail(reason: CborDecodeErrorReason, message: string, offset: number): never { | ||
| throw ParseError('cbor', message, { code: reason, offset }); | ||
| } | ||
@@ -73,7 +71,3 @@ | ||
| if (this.pos + n > this.bytes.length) { | ||
| throw new CborDecodeError( | ||
| 'unexpected_eof', | ||
| `need ${n} byte(s) but only ${this.bytes.length - this.pos} remain`, | ||
| this.pos, | ||
| ); | ||
| fail('unexpected_eof', `need ${n} byte(s) but only ${this.bytes.length - this.pos} remain`, this.pos); | ||
| } | ||
@@ -109,3 +103,3 @@ } | ||
| if (v < 24) { | ||
| throw new CborDecodeError('non_canonical', `1-byte argument ${v} should be inlined`, headOffset); | ||
| fail('non_canonical', `1-byte argument ${v} should be inlined`, headOffset); | ||
| } | ||
@@ -119,3 +113,3 @@ return v; | ||
| if (v < 0x100) { | ||
| throw new CborDecodeError('non_canonical', `2-byte argument ${v} should use a shorter head`, headOffset); | ||
| fail('non_canonical', `2-byte argument ${v} should use a shorter head`, headOffset); | ||
| } | ||
@@ -131,3 +125,3 @@ return v; | ||
| if (v < 0x10000) { | ||
| throw new CborDecodeError('non_canonical', `4-byte argument ${v} should use a shorter head`, headOffset); | ||
| fail('non_canonical', `4-byte argument ${v} should use a shorter head`, headOffset); | ||
| } | ||
@@ -141,6 +135,6 @@ return v; | ||
| if (hi === 0 && lo < 0x100000000) { | ||
| throw new CborDecodeError('non_canonical', `8-byte argument ${v} should use a shorter head`, headOffset); | ||
| fail('non_canonical', `8-byte argument ${v} should use a shorter head`, headOffset); | ||
| } | ||
| if (!Number.isSafeInteger(v)) { | ||
| throw new CborDecodeError('malformed', `integer ${v} exceeds the encoder's safe-integer range`, headOffset); | ||
| fail('malformed', `integer ${v} exceeds the encoder's safe-integer range`, headOffset); | ||
| } | ||
@@ -151,5 +145,5 @@ return v; | ||
| if (ai === 31) { | ||
| throw new CborDecodeError('non_canonical', 'indefinite-length items are not canonical', headOffset); | ||
| fail('non_canonical', 'indefinite-length items are not canonical', headOffset); | ||
| } | ||
| throw new CborDecodeError('malformed', `reserved additional-info value ${ai}`, headOffset); | ||
| fail('malformed', `reserved additional-info value ${ai}`, headOffset); | ||
| } | ||
@@ -178,3 +172,3 @@ | ||
| if (!Number.isSafeInteger(v)) { | ||
| throw new CborDecodeError('malformed', `negative integer ${v} out of safe range`, headOffset); | ||
| fail('malformed', `negative integer ${v} out of safe range`, headOffset); | ||
| } | ||
@@ -196,3 +190,3 @@ return v; | ||
| } catch { | ||
| throw new CborDecodeError('malformed', 'invalid UTF-8 in text string', headOffset); | ||
| fail('malformed', 'invalid UTF-8 in text string', headOffset); | ||
| } | ||
@@ -219,3 +213,3 @@ } | ||
| if (keyHead === undefined || keyHead >> 5 !== 3) { | ||
| throw new CborDecodeError('malformed', 'map keys must be text strings', keyOffset); | ||
| fail('malformed', 'map keys must be text strings', keyOffset); | ||
| } | ||
@@ -228,6 +222,6 @@ const keyStart = r.pos; | ||
| if (cmp > 0) { | ||
| throw new CborDecodeError('non_canonical', 'map keys are not in canonical byte order', keyOffset); | ||
| fail('non_canonical', 'map keys are not in canonical byte order', keyOffset); | ||
| } | ||
| if (cmp === 0) { | ||
| throw new CborDecodeError('non_canonical', 'duplicate map key', keyOffset); | ||
| fail('non_canonical', 'duplicate map key', keyOffset); | ||
| } | ||
@@ -261,18 +255,14 @@ } | ||
| case 25: | ||
| throw new CborDecodeError('non_canonical', 'float16 is not in the canonical subset', headOffset); | ||
| return fail('non_canonical', 'float16 is not in the canonical subset', headOffset); | ||
| case 26: | ||
| throw new CborDecodeError('non_canonical', 'float32 is not in the canonical subset', headOffset); | ||
| return fail('non_canonical', 'float32 is not in the canonical subset', headOffset); | ||
| case 27: | ||
| return decodeFloat64(r); | ||
| case 31: | ||
| throw new CborDecodeError('non_canonical', 'indefinite-length break is not canonical', headOffset); | ||
| return fail('non_canonical', 'indefinite-length break is not canonical', headOffset); | ||
| case 23: | ||
| // `undefined` (simple 23) is never emitted — encoder coerces it to null. | ||
| throw new CborDecodeError( | ||
| 'non_canonical', | ||
| 'simple value `undefined` is not in the canonical subset', | ||
| headOffset, | ||
| ); | ||
| return fail('non_canonical', 'simple value `undefined` is not in the canonical subset', headOffset); | ||
| default: | ||
| throw new CborDecodeError('malformed', `unsupported simple/float value (ai=${ai})`, headOffset); | ||
| return fail('malformed', `unsupported simple/float value (ai=${ai})`, headOffset); | ||
| } | ||
@@ -282,3 +272,3 @@ } | ||
| // Major 6 (tags) is not part of the encoder's output. | ||
| throw new CborDecodeError('malformed', `unsupported major type ${major}`, headOffset); | ||
| return fail('malformed', `unsupported major type ${major}`, headOffset); | ||
| } | ||
@@ -292,9 +282,10 @@ } | ||
| * encoder emits (non-shortest forms, float16/32, indefinite lengths, | ||
| * out-of-order map keys, trailing bytes) raises a typed {@link CborDecodeError}. | ||
| * out-of-order map keys, trailing bytes) raises a typed `ParseError` | ||
| * (source `'cbor'`, `code` = the reason discriminant). | ||
| * | ||
| * @throws {CborDecodeError} | ||
| * @throws A `@czap/error` `ParseError` (`source` `'cbor'`). | ||
| */ | ||
| export function decode(bytes: Uint8Array): unknown { | ||
| if (!(bytes instanceof Uint8Array)) { | ||
| throw new CborDecodeError('malformed', 'input must be a Uint8Array', 0); | ||
| fail('malformed', 'input must be a Uint8Array', 0); | ||
| } | ||
@@ -304,5 +295,5 @@ const r = new Reader(bytes); | ||
| if (r.pos !== bytes.length) { | ||
| throw new CborDecodeError('malformed', `trailing ${bytes.length - r.pos} byte(s) after top-level item`, r.pos); | ||
| fail('malformed', `trailing ${bytes.length - r.pos} byte(s) after top-level item`, r.pos); | ||
| } | ||
| return value; | ||
| } |
+7
-2
@@ -26,2 +26,4 @@ /** | ||
| import { UnsupportedError, ValidationError } from '@czap/error'; | ||
| const MAJOR_UNSIGNED = 0 << 5; | ||
@@ -45,3 +47,6 @@ const MAJOR_NEGATIVE = 1 << 5; | ||
| if (value < 0 || !Number.isFinite(value)) { | ||
| throw new RangeError(`CanonicalCbor: head argument must be a non-negative finite integer, got ${value}`); | ||
| throw ValidationError( | ||
| 'CanonicalCbor.encodeHead', | ||
| `head argument must be a non-negative finite integer, got ${value}`, | ||
| ); | ||
| } | ||
@@ -188,3 +193,3 @@ if (value < 24) { | ||
| } | ||
| throw new TypeError(`CanonicalCbor: unsupported value type ${typeof value}`); | ||
| throw UnsupportedError('CBOR value type', `${typeof value} cannot be canonically encoded`); | ||
| }; | ||
@@ -191,0 +196,0 @@ |
+1
-2
@@ -8,6 +8,5 @@ /** | ||
| export { CanonicalCbor } from './cbor.js'; | ||
| export { decode, CborDecodeError } from './cbor-decode.js'; | ||
| export type { CborDecodeErrorReason } from './cbor-decode.js'; | ||
| export { decode } from './cbor-decode.js'; | ||
| export { ContentAddress, IntegrityDigest } from './brands.js'; | ||
| export { fnv1a, fnv1aBytes } from './fnv.js'; | ||
| export { AddressedDigest, addressedDigestOf } from './addressed-digest.js'; |
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
74982
10.01%33
3.13%1298
6.13%0
-100%51
Infinity%2
100%+ Added
+ Added