Releases: techouse/qs
Releases · techouse/qs
1.7.3
1.7.3
- [PERF] speed up decode for flat and mixed query workloads via structured-key pre-scan, flat-query early return, and parse/merge bypass when safe
- [PERF] optimize decode tokenization/list hot paths with capped splitting for String/RegExp/Pattern delimiters, capped comma splitting, and lower-overhead substring/index usage
- [FIX] tighten strict list-limit behavior and list-growth detection (including root
[]map input, scalar→list transitions, and ignoring[]=substrings inside values) - [CHORE] add targeted decode regression coverage for new fast paths and delimiter/list-limit edge cases
- [CHORE] add
tool/decode_perf_snapshot.dartfor repeatable decode perf snapshots and remove obsolete JS-styleslicelist/string extensions
1.7.2
1.7.2
- [PERF] optimize deep
encode=falseworkloads with a guarded single-key linear map fast path, segment-string reuse, and lower-allocation top-level fragment assembly - [PERF] refactor iterative encoder traversal to phase-driven frames, removing per-child callback allocation and preserving existing cycle/null/comma semantics
- [PERF] make
KeyPathNode.materialize()linear-time by replacing per-steptoString()materialization with one final string build - [CHORE] add
tool/perf_snapshot.dartfor repeatable deep encode snapshots (2000/5000/12000, median-of-7 with warmup) - [CHORE] expand encode/key-path regression coverage for deep chains and fast-path fallback scenarios
1.7.1
1.7.1
- [FIX] restore robust cyclic detection when
filtercallbacks wrap values in fresh containers by tracking object identity before filter/date transformations - [FIX] improve deep path handling in encoder key materialization/dot-encoding via iterative
KeyPathNodecaching (avoids recursive overflow risk and reuses ancestor caches) - [CHORE] refactor encoder internals to share immutable frame config through new
EncodeConfigand reduce per-frame option duplication - [CHORE] replace
weak_mapusage in encode cycle tracking with identity-basedSet<Object>side-channel and removeweak_mapdependency - [CHORE] expand encoder regression coverage with new tests for filter-wrapped cycles,
KeyPathNodecaching/encoding edge cases, andEncodeConfig.copyWithsentinel behavior - [CHORE] refine decode internals with clearer duplicate-handling branching and a small dot-decoding fast-path guard (
cleanRoot.contains('%2'))
1.7.0
1.7.0
- [FEAT] add
DecodeOptions.throwOnLimitExceededfor strict limit enforcement on parameter, list, and depth overflows - [FIX] tolerate malformed UTF-8 when encoding
ByteBuffervalues to match NodeBuffer.toString('utf8') - [FIX] encode
ByteBuffervalues via charset even whenencode=false(avoidInstance of 'ByteBuffer'output) - [FIX] ensure invalid charset in
Utils.encodeconsistently throwsArgumentError - [FIX] improve merge semantics for lists/maps (hole replacement, undefined normalization under
parseLists=false, and non-mutating list/set merges) - [FIX] add runtime validation and DecodeOptions constructor asserts for invalid charsets and inconsistent dot options
- [CHORE] refactor encode/merge internals to stack-based frames (
EncodeFrame,MergeFrame,MergePhase) for deep-nesting safety - [CHORE] expand coverage for encode/decode/merge edge cases and add a shared
FakeEncodingtest helper
1.6.1
1.6.1
- [FIX] prevent
DecodeOptions.listLimitbypass in bracket notation to mitigate potential DoS via memory exhaustion
1.6.0
1.6.0
- [FEAT] add
EncodeOptions.commaCompactNulls, allowing omission ofnullentries in lists when using theListFormat.comma. This results in cleaner output (e.g.,[true, false, null, true]becomes"true,false,true").
1.5.6
1.5.6
- [CHORE] add highlights section outlining key features to README
1.5.5
1.5.5
- [CHORE] add screenshots section with package logo to pubspec.yaml
1.5.4
1.5.4
- [CHORE] add issue tracker and funding links to pubspec.yaml
1.5.3
1.5.3
- [FIX] fix handling of degenerate dot cases in key splitting logic
- [FIX] fix bracketed key detection in dot decoding logic
- [FIX] fix normalization of synthetic bracket segments for unterminated groups in key decoding
- [FIX] fix list limit error messaging and improve bracket counting logic in key decoding
- [FIX] fix list parsing logic by removing unnecessary bracketed check for index assignment
- [CHORE] add comprehensive tests for encoded dot behavior in key decoding
- [CHORE] add tests for key splitting behavior with depth remainder and strictDepth options
- [CHORE] add tests for leading and encoded dot handling in key decoding