BREAKING CHANGE(Smartjson): Require TC39 Stage 3 decorators for @foldDec (use accessor), switch foldDec to initializer-based implementation, improve buffer encode/decode handling, bump dependencies and update docs/tests.

This commit is contained in:
2025-12-10 00:16:00 +00:00
parent acf8cea099
commit 6fe5112bfb
10 changed files with 1889 additions and 1020 deletions

View File

@@ -1,5 +1,15 @@
# Changelog
## 2025-12-10 - 6.0.0 - BREAKING CHANGE(Smartjson)
Require TC39 Stage 3 decorators for @foldDec (use accessor), switch foldDec to initializer-based implementation, improve buffer encode/decode handling, bump dependencies and update docs/tests.
- foldDec now implements TC39 Stage 3 accessor decorators and must be used with the 'accessor' keyword (e.g. '@foldDec() accessor prop: T'). The decorator registers saveable properties via context.addInitializer so properties are tracked per-instance.
- Buffer handling rewritten: replacer/reviver handle Uint8Array and Buffer cross-platform; EncodedBuffer.data now uses a 'base64:' prefix and reviver returns a Uint8Array. This changes the serialized representation of buffers.
- tsconfig updated to remove experimentalDecorators and useDefineForClassFields overrides — project now targets modern TypeScript decorator support (ensure your toolchain supports Stage 3 decorators).
- Documentation (readme and hints) and tests updated to reflect accessor-based decorators and new buffer handling.
- Dependencies bumped: @push.rocks/smartenv -> ^6.0.0, dev deps @git.zone/tsbuild, @git.zone/tsrun, @git.zone/tstest upgraded, and @types/node -> ^24.0.0.
- Removed pnpm-workspace.yaml onlyBuiltDependencies entries.
## 2025-09-12 - 5.2.0 - feat(smartjson)
Implement stableOneWayStringify: deterministic, cycle-safe JSON for hashing/comparisons; update docs and tests