5.1.1 (2026-04-28)
5.1.0 (2026-04-07)
5.0.1 (2026-04-02)
- types: re-export TagDecodeControl off main export (0d9f25a)
5.0.0 (2026-03-31)
- 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).
- 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)
- 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)
- 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)
- add encodeInto() for BYO buffer encoding (a577843)
- bench: add realistic IPLD workload benchmarks (07d9618)
4.4.1 (2026-01-19)
- ci: add npm provenance (cca0a53)
4.4.0 (2026-01-19)
- encode: Allow ignoring
undefinedplain object properties (a0db184), closes #155 - token: add Type.equals() for bundler-safe type comparison (#159) (b3e7cf4), closes #136
- 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)
4.3.1 (2025-11-24)
4.3.0 (2025-11-05)
4.2.18 (2025-10-16)
- 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)
4.2.16 (2025-10-14)
4.2.15 (2025-09-05)
4.2.14 (2025-08-25)
4.2.13 (2025-08-12)
4.2.12 (2025-06-11)
- 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)
4.2.10 (2025-04-14)
- deps: bump actions/setup-node from 4.3.0 to 4.4.0 (525e3e3)
4.2.9 (2025-03-18)
- deps: bump actions/setup-node from 4.2.0 to 4.3.0 (062b59a)
4.2.8 (2025-01-28)
- deps: bump actions/setup-node from 4.1.0 to 4.2.0 (2af0b3f)
4.2.7 (2024-12-04)
- types: address type incompatibilities, regen types (e9b9260)
- deps-dev: bump mocha from 10.8.2 to 11.0.1 (98bddb9)
4.2.6 (2024-10-25)
- deps: bump actions/setup-node from 4.0.4 to 4.1.0 (5e9f374)
4.2.5 (2024-10-25)
- ci: bump Node.js test versions (6082d02)
4.2.4 (2024-09-25)
- 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)
- deps: bump actions/setup-node from 4.0.2 to 4.0.3 (690f073)
4.2.2 (2024-06-24)
- 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)
- deps-dev: bump c8 from 9.1.0 to 10.0.0 (c66487e)
4.2.0 (2024-04-05)
4.1.4 (2024-03-26)
- deps-dev: bump @semantic-release/release-notes-generator (0d61874)
4.1.3 (2024-03-18)
- 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)
- deps-dev: bump @semantic-release/github from 9.2.6 to 10.0.0 (accb364)
4.1.1 (2024-03-11)
- add byte strings example using tags to retain typedarray types (5bf989b)
4.1.0 (2024-02-29)
- export
Tokenizer, document how it can be used (fbba395)
- update tyupes for new exports (986035d)
4.0.9 (2024-02-07)
- deps: bump actions/setup-node from 4.0.1 to 4.0.2 (5abab22)
4.0.8 (2024-01-15)
- deps-dev: bump semantic-release from 22.0.12 to 23.0.0 (5e40a65)
4.0.7 (2024-01-10)
- 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)
- deps-dev: bump c8 from 8.0.1 to 9.0.0 (fa88236)
4.0.5 (2023-10-25)
- deps: bump actions/setup-node from 3.8.1 to 4.0.0 (0a2b063)
4.0.4 (2023-10-23)
4.0.3 (2023-09-19)
- dev-deps: upgrade devDeps (84527a4)
4.0.2 (2023-09-18)
- 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)
- decodeFirst(), & require DecodeTokenizer to implement pos()
- add decodeFirst to json decoder (a1bd349)
- decodeFirst(), & require DecodeTokenizer to implement pos() (1b35871)
- make semantic-release work again (7ab7a4e)
- recompile types (06133db)
2.0.5 (2023-08-25)
- 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)
- deps: bump actions/setup-node from 3.7.0 to 3.8.0 (3c5c865)
2.0.3 (2023-07-07)
- deps: bump actions/setup-node from 3.6.0 to 3.7.0 (6dccb1c)
2.0.2 (2023-06-28)
- 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)
- deps-dev: bump c8 from 7.14.0 to 8.0.0 (26e0a62)
2.0.0 (2023-06-14)
- drop Node.js 14.x support
- drop Node.js 14.x support (cc28594)
1.10.2 (2023-05-17)
- deps-dev: bump polendina from 3.1.0 to 3.2.1 (6098702)
1.10.1 (2023-03-17)
- release with Node.js 18 (e1de3dc)
- deps-dev: bump typescript from 4.9.5 to 5.0.2 (46974d7)
1.10.0 (2023-01-06)
- add rejectDuplicateMapKeys option (default false) (450bc8c)
- 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)
- 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)
- 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)
- deps-dev: bump typescript from 4.6.4 to 4.7.2 (b3a63e5)
1.9.3 (2022-05-19)
- allow diag output to deal with integers outside of safe range (5d4ed2c)
1.9.2 (2022-05-12)
- rework lib/bin.js inclusion in ipjx compile chain (7b3cd32)
- 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)
- standard@17 getting picky about ternaries (5069065)
- 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)
1.8.1 (2022-03-02)
- 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)
- string: add
retainStringBytesdecode option, better non-unicode & non-printable diag output (770dd6e)
1.7.0 (2022-02-21)
- cli: add diag2* commands, minor diag fixes, README update (bb52262)
1.6.2 (2022-02-21)
- diagnostic: rework indenting algorithm to better handle recursives (af47da1)
1.6.1 (2022-01-17)
- diagnostic: handle zero-length recursives properly in diag output (38ec7ea)
1.6.0 (2021-12-13)
- add support for coerceUndefinedToNull option (fd61bbe)
1.5.4 (2021-12-08)
- remove 'util' dependency (875d5ea)
- 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)
- deps: bump actions/checkout from 2.3.5 to 2.4.0 (8a76824)
1.5.2 (2021-10-18)
1.5.1 (2021-09-28)
- deps: bump actions/setup-node from 2.4.0 to 2.4.1 (a7a1d0c)
1.5.0 (2021-08-25)
- enhance CLI - more commands & accept stdin (333b379)
1.4.2 (2021-08-23)
- add a decimal point for whole number float tokens (3a18861)
1.4.1 (2021-08-05)
- deps: bump actions/setup-node from 2.3.2 to 2.4.0 (eda1936)
1.4.0 (2021-08-05)
- handle JSON decoding of large integers as BigInt (dc87eb4)
- use
allowBigIntoption so BigInt handling isn't a breaking change (66d61b5)
1.3.8 (2021-08-05)
- deps: bump actions/setup-node from 2.3.1 to 2.3.2 (3a3cdc1)
1.3.7 (2021-08-03)
- deps: bump actions/setup-node from 2.3.0 to 2.3.1 (8cd4583)
1.3.6 (2021-07-20)
- deps: bump actions/setup-node from 2.2.0 to 2.3.0 (7d4a786)
1.3.5 (2021-07-01)
- deps: bump actions/setup-node from 2.1.5 to 2.2.0 (661f195)
1.3.4 (2021-06-08)
- deps-dev: bump mocha from 8.4.0 to 9.0.0 (8ad0905)
1.3.3 (2021-05-31)
- deps-dev: bump ipld-garbage from 3.0.6 to 4.0.1 (1615ec2)
1.3.2 (2021-05-28)
- handle tag indenting properly with diagnostic output (5312923)