Skip to content

Latest commit

 

History

History
717 lines (354 loc) · 32.3 KB

File metadata and controls

717 lines (354 loc) · 32.3 KB

5.1.1 (2026-04-28)

Trivial Changes

  • deps: bump actions/setup-node from 6.3.0 to 6.4.0 (#175) (0378c7f)

5.1.0 (2026-04-07)

Features

  • add Tagged class for one-off tag emission and round-trip preservation (#174) (e2e7c20)

5.0.1 (2026-04-02)

Bug Fixes

  • types: re-export TagDecodeControl off main export (0d9f25a)

5.0.0 (2026-03-31)

⚠ BREAKING CHANGES

  • extended: Tag decoder signature changed from receiving the decoded value to receiving a decode control object. See migration guide below.

Add new cborg/extended entry point providing encode/decode with built-in support for Date, RegExp, Set, Map, BigInt, Error, and all TypedArrays using standard CBOR tags. Type support is similar to the browser's structured clone algorithm.

Key features:

  • Date (Tag 1), RegExp (Tag 21066), Set (Tag 258), Map (Tag 259)
  • BigInt always tagged (Tags 2/3) for round-trip fidelity
  • All TypedArrays via RFC 8746 tags (64-87)
  • Error types via Tag 27 (Error, TypeError, RangeError, etc.)
  • Negative zero (-0) round-trips correctly
  • Objects round-trip as objects, Maps round-trip as Maps
  • Map and object key insertion order preserved (not sorted)
  • Mixed structures like { myMap: new Map([[1, 'a']]) } work correctly

The Map/object fidelity is achieved through a new tag decoder API that gives decoders control over how their content is decoded. Tag 259 (Map) uses decode.entries() to preserve key types regardless of the useMaps setting, while plain CBOR maps decode as objects.

Extends cborg/taglib with encoders and decoders for all supported types (previously only BigInt). Moves taglib.js to lib/taglib.js for consistency (external API unchanged via package.json exports).

Also fixes a bug in lib/7float.js where -0 lost its sign bit during half-precision float encoding (bitwise ops on floats convert to int32).

Features

  • extended: add cborg/extended module with full JavaScript type fidelity (#168) (652730e)

Trivial Changes

  • deps-dev: bump typescript from 5.9.3 to 6.0.2 (5382bfa)
  • deps: bump actions/setup-node from 6.2.0 to 6.3.0 (#171) (a2525b9)
  • update deps and upgrade to typescript 6 (463bdfd)

4.5.8 (2026-01-21)

Bug Fixes

  • cli: don't omit array length bytes in diagnostic output (b8dacb6)
  • test: add CLI tests to npm test (b19bc87)

4.5.7 (2026-01-21)

4.5.6 (2026-01-21)

4.5.5 (2026-01-20)

Trivial Changes

  • bench: output json to file (ca32690)

4.5.4 (2026-01-20)

4.5.3 (2026-01-20)

4.5.2 (2026-01-20)

4.5.1 (2026-01-20)

4.5.0 (2026-01-20)

Features

  • add encodeInto() for BYO buffer encoding (a577843)
  • bench: add realistic IPLD workload benchmarks (07d9618)

4.4.1 (2026-01-19)

Trivial Changes

4.4.0 (2026-01-19)

Features

  • encode: Allow ignoring undefined plain object properties (a0db184), closes #155
  • token: add Type.equals() for bundler-safe type comparison (#159) (b3e7cf4), closes #136

Bug Fixes

  • encode: replace unpaired surrogates with U+FFFD in utf8ToBytes (#157) (362856c)

Trivial Changes

  • ci: OIDC publishing (743ecc3)
  • deps-dev: bump @types/node from 24.10.3 to 25.0.0 (#153) (20f9e4f)
  • deps: bump actions/setup-node from 6.1.0 to 6.2.0 (#158) (feafeb2)
  • minor optimisation & test additions for ignoreUndefinedProperties (55f653c)

4.3.2 (2025-12-04)

Trivial Changes

  • deps: bump actions/setup-node from 6.0.0 to 6.1.0 (#152) (03ac095)

4.3.1 (2025-11-24)

Trivial Changes

  • deps: bump actions/checkout from 5 to 6 (#151) (13b5cb2)

4.3.0 (2025-11-05)

Features

  • support RFC8949 deterministic encoding (#150) (6d44cc0)

4.2.18 (2025-10-16)

Trivial Changes

  • deps-dev: bump @semantic-release/github from 11.0.6 to 12.0.0 (#148) (de5cbf2)
  • deps-dev: bump semantic-release from 24.2.9 to 25.0.0 (#149) (4820969)

4.2.17 (2025-10-15)

Trivial Changes

  • deps: bump actions/setup-node from 5.0.0 to 6.0.0 (#147) (e112d5c)

4.2.16 (2025-10-14)

Trivial Changes

  • deps-dev: bump @semantic-release/npm from 12.0.2 to 13.0.0 (#146) (4899130)

4.2.15 (2025-09-05)

Trivial Changes

  • deps: bump actions/setup-node from 4.4.0 to 5.0.0 (#145) (2340c82)

4.2.14 (2025-08-25)

Trivial Changes

  • deps-dev: bump chai from 5.3.3 to 6.0.1 (#144) (2af5395)

4.2.13 (2025-08-12)

Trivial Changes

  • deps: bump actions/checkout from 4 to 5 (#143) (1de06aa)

4.2.12 (2025-06-11)

Trivial Changes

  • deps-dev: bump @types/node from 22.15.31 to 24.0.0 (#142) (b75bc12)
  • remove Node.js 18 and 20 from CI matrix (8be14cc)

4.2.11 (2025-05-20)

Trivial Changes

  • deps-dev: bump conventional-changelog-conventionalcommits (#141) (3943947)

4.2.10 (2025-04-14)

Trivial Changes

  • deps: bump actions/setup-node from 4.3.0 to 4.4.0 (525e3e3)

4.2.9 (2025-03-18)

Trivial Changes

  • deps: bump actions/setup-node from 4.2.0 to 4.3.0 (062b59a)

4.2.8 (2025-01-28)

Trivial Changes

  • deps: bump actions/setup-node from 4.1.0 to 4.2.0 (2af0b3f)

4.2.7 (2024-12-04)

Bug Fixes

  • types: address type incompatibilities, regen types (e9b9260)

Trivial Changes

  • deps-dev: bump mocha from 10.8.2 to 11.0.1 (98bddb9)

4.2.6 (2024-10-25)

Trivial Changes

  • deps: bump actions/setup-node from 4.0.4 to 4.1.0 (5e9f374)

4.2.5 (2024-10-25)

Trivial Changes

  • ci: bump Node.js test versions (6082d02)

4.2.4 (2024-09-25)

Trivial Changes

  • deps-dev: bump @types/node from 20.14.13 to 22.0.0 (f4d71a8)
  • deps: bump actions/setup-node from 4.0.3 to 4.0.4 (9a0bfc4)
  • update dependencies (c75a059)

4.2.3 (2024-07-10)

Trivial Changes

  • deps: bump actions/setup-node from 4.0.2 to 4.0.3 (690f073)

4.2.2 (2024-06-24)

Trivial Changes

  • deps-dev: bump @semantic-release/commit-analyzer (195e3f1)
  • deps-dev: bump @semantic-release/release-notes-generator (83bd83b)
  • deps-dev: bump conventional-changelog-conventionalcommits (12a46e2)
  • deps-dev: bump semantic-release from 23.1.1 to 24.0.0 (5fd66b9)

4.2.1 (2024-06-10)

Trivial Changes

  • deps-dev: bump c8 from 9.1.0 to 10.0.0 (c66487e)

4.2.0 (2024-04-05)

Features

  • cli argument to set width of diagnostic output (#118) (4891cb8)

4.1.4 (2024-03-26)

Trivial Changes

  • deps-dev: bump @semantic-release/release-notes-generator (0d61874)

4.1.3 (2024-03-18)

Trivial Changes

  • deps-dev: bump @semantic-release/commit-analyzer (9160309)
  • deps-dev: bump @semantic-release/npm from 11.0.3 to 12.0.0 (2e6f5e0)

4.1.2 (2024-03-16)

Trivial Changes

  • deps-dev: bump @semantic-release/github from 9.2.6 to 10.0.0 (accb364)

4.1.1 (2024-03-11)

Trivial Changes

  • add byte strings example using tags to retain typedarray types (5bf989b)

4.1.0 (2024-02-29)

Features

  • export Tokenizer, document how it can be used (fbba395)

Bug Fixes

  • update tyupes for new exports (986035d)

4.0.9 (2024-02-07)

Trivial Changes

  • deps: bump actions/setup-node from 4.0.1 to 4.0.2 (5abab22)

4.0.8 (2024-01-15)

Trivial Changes

  • deps-dev: bump semantic-release from 22.0.12 to 23.0.0 (5e40a65)

4.0.7 (2024-01-10)

Trivial Changes

  • deps-dev: bump chai from 4.3.10 to 5.0.0 (e6ec5a8)
  • deps: bump actions/setup-node from 4.0.0 to 4.0.1 (e61b03e)

4.0.6 (2024-01-04)

Trivial Changes

  • deps-dev: bump c8 from 8.0.1 to 9.0.0 (fa88236)

4.0.5 (2023-10-25)

Trivial Changes

  • deps: bump actions/setup-node from 3.8.1 to 4.0.0 (0a2b063)

4.0.4 (2023-10-23)

Bug Fixes

4.0.3 (2023-09-19)

Trivial Changes

  • dev-deps: upgrade devDeps (84527a4)

4.0.2 (2023-09-18)

Trivial Changes

  • deps-dev: bump @semantic-release/npm from 10.0.6 to 11.0.0 (9b07df9)

4.0.1 (2023-09-12)

4.0.0 (2023-09-12)

⚠ BREAKING CHANGES

  • decodeFirst(), & require DecodeTokenizer to implement pos()

Features

  • add decodeFirst to json decoder (a1bd349)
  • decodeFirst(), & require DecodeTokenizer to implement pos() (1b35871)

Bug Fixes

  • make semantic-release work again (7ab7a4e)

Trivial Changes

2.0.5 (2023-08-25)

Trivial Changes

  • deps-dev: bump typescript from 5.1.6 to 5.2.2 (4518600)
  • deps: bump actions/setup-node from 3.8.0 to 3.8.1 (148013b)

2.0.4 (2023-08-14)

Trivial Changes

  • deps: bump actions/setup-node from 3.7.0 to 3.8.0 (3c5c865)

2.0.3 (2023-07-07)

Trivial Changes

  • deps: bump actions/setup-node from 3.6.0 to 3.7.0 (6dccb1c)

2.0.2 (2023-06-28)

Trivial Changes

  • deps-dev: bump typescript from 5.0.4 to 5.1.5 (e5ed650)
  • deps: bump gozala/typescript-error-reporter-action (9ac5f4a)

2.0.1 (2023-06-14)

Trivial Changes

  • deps-dev: bump c8 from 7.14.0 to 8.0.0 (26e0a62)

2.0.0 (2023-06-14)

⚠ BREAKING CHANGES

  • drop Node.js 14.x support

Trivial Changes

  • drop Node.js 14.x support (cc28594)

1.10.2 (2023-05-17)

Trivial Changes

  • deps-dev: bump polendina from 3.1.0 to 3.2.1 (6098702)

1.10.1 (2023-03-17)

Bug Fixes

  • release with Node.js 18 (e1de3dc)

Trivial Changes

  • deps-dev: bump typescript from 4.9.5 to 5.0.2 (46974d7)

1.10.0 (2023-01-06)

Features

  • add rejectDuplicateMapKeys option (default false) (450bc8c)

Trivial Changes

  • no-release: bump actions/setup-node from 3.5.1 to 3.6.0 (#73) (a7d9e99)
  • no-release: update node.js versions in CI (6fe4131)

1.9.6 (2022-11-15)

Trivial Changes

  • deps-dev: bump typescript from 4.8.4 to 4.9.3 (#66) (38fc1c8)
  • no-release: bump actions/setup-node from 3.4.1 to 3.5.0 (#64) (927189a)
  • no-release: bump actions/setup-node from 3.5.0 to 3.5.1 (#65) (d06f0c9)

1.9.5 (2022-08-26)

Trivial Changes

  • deps-dev: bump typescript from 4.7.4 to 4.8.2 (#63) (b28e7de)
  • no-release: bump actions/setup-node from 3.2.0 to 3.3.0 (#59) (5f317db)
  • no-release: bump actions/setup-node from 3.3.0 to 3.4.0 (#61) (a104eb7)
  • no-release: bump actions/setup-node from 3.4.0 to 3.4.1 (#62) (883b273)
  • no-release: bump ipld-garbage from 4.0.10 to 5.0.0 (#60) (42e6f9a)

1.9.4 (2022-05-25)

Trivial Changes

  • deps-dev: bump typescript from 4.6.4 to 4.7.2 (b3a63e5)

1.9.3 (2022-05-19)

Bug Fixes

  • allow diag output to deal with integers outside of safe range (5d4ed2c)

Trivial Changes

  • no-release: bump actions/setup-node from 3.1.1 to 3.2.0 (#57) (9594b16)

1.9.2 (2022-05-12)

Bug Fixes

  • rework lib/bin.js inclusion in ipjx compile chain (7b3cd32)

Trivial Changes

  • deps-dev: bump mocha from 9.2.2 to 10.0.0 (67db9a3)
  • no-release: bump polendina from 2.0.15 to 3.0.0 (#54) (84e8037)
  • no-release: bump polendina from 3.0.0 to 3.1.0 (#55) (57a47f8)

1.9.1 (2022-04-20)

Bug Fixes

  • standard@17 getting picky about ternaries (5069065)

Trivial Changes

  • deps-dev: bump standard from 16.0.4 to 17.0.0 (291c6ca)
  • no-release: bump actions/setup-node from 3.0.0 to 3.1.0 (#49) (61e25e0)
  • no-release: bump actions/setup-node from 3.1.0 to 3.1.1 (#51) (2993a82)

1.9.0 (2022-03-30)

Features

1.8.1 (2022-03-02)

Trivial Changes

  • deps-dev: bump typescript from 4.5.5 to 4.6.2 (#46) (cfe6aab)
  • no-release: bump actions/checkout from 2.4.0 to 3 (#45) (6620054)

1.8.0 (2022-02-25)

Features

  • string: add retainStringBytes decode option, better non-unicode & non-printable diag output (770dd6e)

Trivial Changes

  • no-release: bump actions/setup-node from 2.5.1 to 3.0.0 (#44) (149afe0)

1.7.0 (2022-02-21)

Features

  • cli: add diag2* commands, minor diag fixes, README update (bb52262)

1.6.2 (2022-02-21)

Bug Fixes

  • diagnostic: rework indenting algorithm to better handle recursives (af47da1)

1.6.1 (2022-01-17)

Bug Fixes

  • diagnostic: handle zero-length recursives properly in diag output (38ec7ea)

Trivial Changes

  • no-release: bump actions/setup-node from 2.5.0 to 2.5.1 (#38) (d46fae2)

1.6.0 (2021-12-13)

Features

  • add support for coerceUndefinedToNull option (fd61bbe)

Trivial Changes

  • test and document coerceUndefinedToNull (61fd015)
  • update deps & test setup (1246122)

1.5.4 (2021-12-08)

Bug Fixes

  • remove 'util' dependency (875d5ea)

Trivial Changes

  • deps-dev: bump polendina from 1.1.1 to 2.0.0 (9aeed6b)
  • expand browser testing to esm (cc2a626)
  • no-release: bump actions/setup-node from 2.4.1 to 2.5.0 (#32) (5f7dba1)

1.5.3 (2021-11-04)

Trivial Changes

  • deps: bump actions/checkout from 2.3.5 to 2.4.0 (8a76824)

1.5.2 (2021-10-18)

Trivial Changes

  • deps,no-release: bump actions/checkout from 2.3.4 to 2.3.5 (#29) (fd0db75)

1.5.1 (2021-09-28)

Trivial Changes

  • deps: bump actions/setup-node from 2.4.0 to 2.4.1 (a7a1d0c)

1.5.0 (2021-08-25)

Features

  • enhance CLI - more commands & accept stdin (333b379)

1.4.2 (2021-08-23)

Bug Fixes

  • add a decimal point for whole number float tokens (3a18861)

1.4.1 (2021-08-05)

Trivial Changes

  • deps: bump actions/setup-node from 2.3.2 to 2.4.0 (eda1936)

1.4.0 (2021-08-05)

Features

  • handle JSON decoding of large integers as BigInt (dc87eb4)
  • use allowBigInt option so BigInt handling isn't a breaking change (66d61b5)

1.3.8 (2021-08-05)

Trivial Changes

  • deps: bump actions/setup-node from 2.3.1 to 2.3.2 (3a3cdc1)

1.3.7 (2021-08-03)

Trivial Changes

  • deps: bump actions/setup-node from 2.3.0 to 2.3.1 (8cd4583)

1.3.6 (2021-07-20)

Trivial Changes

  • deps: bump actions/setup-node from 2.2.0 to 2.3.0 (7d4a786)

1.3.5 (2021-07-01)

Trivial Changes

  • deps: bump actions/setup-node from 2.1.5 to 2.2.0 (661f195)

1.3.4 (2021-06-08)

Trivial Changes

  • deps-dev: bump mocha from 8.4.0 to 9.0.0 (8ad0905)

1.3.3 (2021-05-31)

Trivial Changes

  • deps-dev: bump ipld-garbage from 3.0.6 to 4.0.1 (1615ec2)

1.3.2 (2021-05-28)

Bug Fixes

  • handle tag indenting properly with diagnostic output (5312923)

Trivial Changes

  • add semantic-release for auto-releases (155de4c)
  • s/15/16 in node test matrix (363920f)
  • deps: bump actions/checkout from 2 to 2.3.4 (0846f50)