Skip to content

Tags: techouse/qs

Tags

v1.7.6

Toggle v1.7.6's commit message

Verified

This commit was signed with the committer’s verified signature.
techouse Klemen Tusar
🔖 release v1.7.6

v1.7.5

Toggle v1.7.5's commit message

Verified

This commit was signed with the committer’s verified signature.
techouse Klemen Tusar
🔖 release v1.7.5

v1.7.4

Toggle v1.7.4's commit message

Verified

This commit was signed with the committer’s verified signature.
techouse Klemen Tusar
🔖 release v1.7.4

## 1.7.4

* [FIX] restore Dart 3.0.0 test compatibility by materializing `ByteBuffer` fixtures via `_byteBufferFrom` instead of relying on `List<int>.buffer`
* [CHORE] widen the `lints` dev dependency range to support versions from 3.0.0 up to 7.0.0

v1.7.3

Toggle v1.7.3's commit message

Verified

This commit was signed with the committer’s verified signature.
techouse Klemen Tusar
🔖 release v1.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.dart` for repeatable decode perf snapshots and remove obsolete JS-style `slice` list/string extensions

v1.7.2

Toggle v1.7.2's commit message

Verified

This commit was signed with the committer’s verified signature.
techouse Klemen Tusar
🔖 release v1.7.2

## 1.7.2

* [PERF] optimize deep `encode=false` workloads 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-step `toString()` materialization with one final string build
* [CHORE] add `tool/perf_snapshot.dart` for 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

v1.7.1

Toggle v1.7.1's commit message

Verified

This commit was signed with the committer’s verified signature.
techouse Klemen Tusar
🔖 release v1.7.1

## 1.7.1

* [FIX] restore robust cyclic detection when `filter` callbacks 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 `KeyPathNode` caching (avoids recursive overflow risk and reuses ancestor caches)
* [CHORE] refactor encoder internals to share immutable frame config through new `EncodeConfig` and reduce per-frame option duplication
* [CHORE] replace `weak_map` usage in encode cycle tracking with identity-based `Set<Object>` side-channel and remove `weak_map` dependency
* [CHORE] expand encoder regression coverage with new tests for filter-wrapped cycles, `KeyPathNode` caching/encoding edge cases, and `EncodeConfig.copyWith` sentinel behavior
* [CHORE] refine decode internals with clearer duplicate-handling branching and a small dot-decoding fast-path guard (`cleanRoot.contains('%2')`)

v1.7.0

Toggle v1.7.0's commit message

Verified

This commit was signed with the committer’s verified signature.
techouse Klemen Tusar
🔖 release v1.7.0

## 1.7.0

* [FEAT] add `DecodeOptions.throwOnLimitExceeded` for strict limit enforcement on parameter, list, and depth overflows
* [FIX] tolerate malformed UTF-8 when encoding `ByteBuffer` values to match Node `Buffer.toString('utf8')`
* [FIX] encode `ByteBuffer` values via charset even when `encode=false` (avoid `Instance of 'ByteBuffer'` output)
* [FIX] ensure invalid charset in `Utils.encode` consistently throws `ArgumentError`
* [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 `FakeEncoding` test helper

v1.6.1

Toggle v1.6.1's commit message

Verified

This commit was signed with the committer’s verified signature.
techouse Klemen Tusar
🔖 release v1.6.1

## 1.6.1

* [FIX] prevent `DecodeOptions.listLimit` bypass in bracket notation to mitigate potential DoS via memory exhaustion

v1.6.0

Toggle v1.6.0's commit message

Verified

This commit was signed with the committer’s verified signature.
techouse Klemen Tusar
🔖 release v1.6.0

## 1.6.0

* [FEAT] add `EncodeOptions.commaCompactNulls`, allowing omission of `null` entries in lists when using the `ListFormat.comma`. This results in cleaner output (e.g., `[true, false, null, true]` becomes `"true,false,true"`).

v1.5.6

Toggle v1.5.6's commit message

Verified

This commit was signed with the committer’s verified signature.
techouse Klemen Tusar
🔖 release v1.5.6

## 1.5.6

* [CHORE] add highlights section outlining key features to README