paulmillr/micro-packed
Define complex binary structures using composable primitives
📋 Changes
- April 2026 self-audit (all files): no major issues found
- Audited for security
- Hardened all the loose bits
- Fix all Byte Array types, to ensure proper work in both TypeScript 5.6 & TypeScript 5.9+
- TS 5.6 has `Uint8Array`, while TS 5.9+ made it generic `Uint8Array<ArrayBuffer>`
- This creates incompatibility of code between versions
- Previously, it was hard to use and constantly emitted errors similar to `TS2345`
- See [typescript#62240](https://github.com/microsoft/TypeScript/issues/62240) for more context
- + 1 more
📋 Changes
- The package is now ESM-only. ESM can finally be loaded from common.js on node v20.19+
- Node v20.19 is now the minimum required version
- Package imports now work correctly in bundler-less environments, such as browsers
📋 Changes
- Bump devdeps and typescript compiler version to 5.8
- Typescript source can now be used without compilation in node.js v24, due to [erasableSyntaxOnly](https://devblogs.microsoft.com/typescript/announcing-typescript-5-8/#the---erasablesyntaxonly-option)
- Single-file build is now available
📋 Changes
- Use typescript verbatimModuleSyntax to support future node.js type stripping
📋 Changes
- Publish [to jsr](https://jsr.io/@paulmillr/micro-packed)
- Use typescript isolatedDeclarations.
📋 Changes
- Speed-up hex check
- Make package sideEffects: false
- Rename some methods to be minifier-friendly
- Remove unnecessary PURE annotation. Closes gh-10
- Update scure-base to 1.2.1
Fix stack overflow **Full Changelog**: https://github.com/paulmillr/micro-packed/compare/0.6.2...0.6.3
📋 Changes
- Export `utils.checkBounds`
- Fix type of `hex`
📋 Changes
- Remove unnecessary dependency that is just devDependency
📋 Changes
- Move concatBytes and isBytes to `utils`
- Rename coders.number to coders.numberBigint
- Remove bytesFormatted coder
- Remove base64armor coder
Tree-shaking improvements. **Full Changelog**: https://github.com/paulmillr/micro-packed/compare/0.5.2...0.5.3
📋 Changes
- Add reverse coder, sized ints, fix bigint behavior
- concatBytes, isBytes: copy new versions from noble
Improve security. Add bitsets. Add opts allowUnreadBytes, allowMultipleReads **Full Changelog**: https://github.com/paulmillr/micro-packed/compare/0.5.0...0.5.1
📋 Changes
- Switch to hybrid common.js-ESM package.
- Integrate debugger, in separate file `micro-packed/debugger`.
- Fix `sizeof`
📋 Changes
- Improve tree-shaking support
- Export missing types
- Bump scure-base and typescript used to build the package
📋 What's Changed
- Fixes broken type definition. by @MicahZoltu in https://github.com/paulmillr/micro-packed/pull/4
- Full Changelog: https://github.com/paulmillr/micro-packed/compare/0.3.1...0.3.2
Improve debugging **Full Changelog**: https://github.com/paulmillr/micro-packed/compare/0.3.0...0.3.1
New primitives: Array, Bytes, String, Lazy, Dict, Validate, Debug
📋 Changes
- Drop common.js support, only ESM is now supported
- Add declaration maps for simple debugging
Initial release
