Files
smartjson/changelog.md

225 lines
6.3 KiB
Markdown
Raw Permalink Normal View History

# Changelog
## 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.