changelog.md for @push.rocks/smartjson 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 Implement stableOneWayStringify in ts/index.ts: produces deterministic JSON, encodes buffers, replaces circular references with "cycle" and marks unserializable values as "unserializable". Update README: add documentation and examples for stableOneWayStringify, clarify JSONL wording, and update performance/migration notes. Add unit test to verify stableOneWayStringify handles circular references without throwing. Add .claude/settings.local.json (local settings/config) as part of the change set. 2025-09-12 - 5.1.0 - feat(smartjson) Add JSONL stringify and ordering comparator; fix empty buffer handling; refactor Smartjson folding/enfolding Export stringifyJsonL(items: any[]) and add README documentation for JSONL stringification stringify(obj, simpleOrderArray) now derives a stable-json comparator from simpleOrderArray when no custom cmp is provided, ensuring predictable key ordering Fix buffer handling: empty Uint8Array values are preserved (no longer serialized to an empty string) and encoding/decoding logic improved Refactor Smartjson.enfoldFromObject to safely use saveableProperties and avoid repeated property access Simplify Smartjson.foldToObject to delegate to an internal foldToObjectInternal with cycle detection and correct nested instance handling Add unit tests for empty buffers, JSONL parse/stringify, deepEqualJsonLStrings, and simpleOrderArray comparator behavior 2025-09-12 - 5.0.21 - fix(Smartjson) Cross-platform buffer/base64 handling, safer folding with cycle detection, parsing fixes, docs and dependency updates bufferhandling: prefer Node Buffer for base64 encode/decode when available and fall back to browser APIs for cross-platform support parseJsonL: more robust parsing of JSON Lines (trim lines and use smartjson.parse to restore buffers/typed arrays) parseBase64: use smartstring.base64.decodeUri or decode fallback before parsing, then parse result via smartjson.parse Smartjson class: add TypeScript generics to enfold methods, introduce foldToObjectInternal and robust cycle detection using Set, properly handle arrays and deep-clone values Tests: updated tap import path to @git.zone/tstest/tapbundle package.json: bumped several devDependencies and dependency versions and added packageManager pin Documentation: expanded README with examples, API reference and usage guidance Repo config: added pnpm-workspace.yaml and .claude/settings.local.json 2024-05-29 - 5.0.20 - docs Update package description. Update package description text. 2024-05-27 - 5.0.19 - core Core fixes. Miscellaneous core updates and fixes. 2024-04-17 - 5.0.18 - core Core fixes. Miscellaneous core updates and fixes. 2024-04-17 - 5.0.17 - core Core fixes. Miscellaneous core updates and fixes. 2024-04-17 - 5.0.16 - build/core Build/config updates and core fixes. Updated tsconfig configuration (2024-04-14). Updated npmextra.json githost entries (multiple updates in early April). Miscellaneous core updates and fixes. 2024-03-19 - 5.0.15 - core Core fixes. Miscellaneous core updates and fixes. 2024-03-19 - 5.0.14 - core Core fixes. Miscellaneous core updates and fixes. 2024-03-03 - 5.0.13 - core Core fixes. Miscellaneous core updates and fixes. 2024-03-03 - 5.0.12 - core Core fixes. Miscellaneous core updates and fixes. 2024-03-03 - 5.0.11 - core Core fixes. Miscellaneous core updates and fixes. 2024-02-25 - 5.0.10 - core Core fixes. Miscellaneous core updates and fixes. 2023-08-24 - 5.0.9 - core Core fixes. Miscellaneous core updates and fixes. 2023-08-19 - 5.0.8 - core Core fixes. Miscellaneous core updates and fixes. 2023-08-19 - 5.0.7 - core Core fixes. Miscellaneous core updates and fixes. 2023-07-10 - 5.0.6 - infra/core Organization and core updates. Switched to new organization scheme. Miscellaneous core updates and fixes. 2023-06-03 - 5.0.5 - core Core fixes. Miscellaneous core updates and fixes. 2022-10-26 - 5.0.4 - core Core fixes. Miscellaneous core updates and fixes. 2022-10-26 - 5.0.3 - core Core fixes. Miscellaneous core updates and fixes. 2022-10-26 - 5.0.2 - core Core fixes. Miscellaneous core updates and fixes. 2022-09-13 - 5.0.1 - core Core fixes. Miscellaneous core updates and fixes. 2022-06-26 - 5.0.0 - core Core fixes. Miscellaneous core updates and fixes. 2022-06-09 - 4.0.7 - core (BREAKING CHANGE) Breaking change in core. BREAKING CHANGE: core-related update (see code/compat notes). Miscellaneous core updates. 2022-06-09 - 4.0.6 - core Core fixes. Miscellaneous core updates and fixes. 2020-10-05 - 4.0.4 - core Core fixes. Miscellaneous core updates and fixes. 2020-10-05 - 4.0.3 - core Core fixes. Miscellaneous core updates and fixes. 2020-10-05 - 4.0.2 - core Core fixes. Miscellaneous core updates and fixes. 2020-10-05 - 4.0.1 - core Core fixes. Miscellaneous core updates and fixes. 2020-10-05 - 4.0.0 - core Core fixes. Miscellaneous core updates and fixes. 2020-10-05 - 3.0.12 - core (BREAKING CHANGE) Breaking change in core. BREAKING CHANGE: core-related update (see migration notes). Miscellaneous core updates. 2020-10-03 - 3.0.11 - core Core fixes. Miscellaneous core updates and fixes. 2020-10-03 - 3.0.10 - core Core fixes. Miscellaneous core updates and fixes. 2019-02-14 - 3.0.0 - security Security-related update. Added snyk policy for security scanning. 2019-02-14 - 2.0.2 - core (BREAKING CHANGE) Breaking change in core API. BREAKING CHANGE: renamed Folable to Smartjson and added deterministic stringify. Update consumers accordingly. 2018-09-05 - 2.0.1 - core Core fixes. Miscellaneous core updates and fixes. 2018-07-23 - 1.0.1 - scope (BREAKING CHANGE) Scope change. BREAKING CHANGE: changed package scope. See migration notes for scope changes. 2017-02-27 - 1.0.0 - docs/init Initial release. Added README. Initial project files and setup. 2018-07-23 — 2019-12-15 - 2.0.0, 3.0.1, 3.0.9 - version-only releases Version-only tags / non-descriptive releases. These releases are recorded as version bumps without additional changelog details. Affected tags: 2.0.0, 3.0.1, 3.0.9.