Releases: techouse/qs-swift
Releases · techouse/qs-swift
1.1.6
1.1.6
- [FEAT] add support in
QsBridge._bridgeInputForEncode
for handlingOrderedDictionary<AnyHashable, Any>
, converting keys to deterministic string representations to ensure consistent bridging of heterogeneous key types - [FIX] refine array handling in
Utils.compactValue
to better tolerate both [Any] and [Any?] array shapes, ensuring correct compaction and bridging of arrays with optional elements and nested containers - [CHORE] increase test coverage
1.1.5
1.1.5
- [FEAT] add experimental Linux support
1.1.4
1.1.4
- [FIX] remove redundant imports
- [CHORE] add exclusion of unnecessary files in
QsSwiftComparison
target - [CHORE] update build action entries and test action configurations for
QsSwiftComparison
scheme
1.1.3
1.1.3
- [CHORE] refactor code and improve variable naming for clarity and consistency
- [CHORE] add QsSwift <-> qs.js comparison tests
1.1.2
1.1.2
- [FEAT] Introduce
DecodeKind
to distinguish key vs value decoding; add Objective‑C mirrorQsDecodeKind
. - [FEAT] Unify scalar decoding via
ScalarDecoder
(KEY/VALUE‑aware). AddDecodeOptions.decodeKey
/decodeValue
helpers. - [DEPRECATION] Deprecate
ValueDecoder
, legacy decoder, andgetDecoder(_:charset:)
. The Obj‑C bridge provides a temporarylegacyDecoderBlock
, butdecoderBlock
now takes precedence. - [FEAT][ObjC] Add KEY/VALUE‑aware
decoderBlock
toQsDecodeOptions
; Swift bridging prefers it overvalueDecoderBlock
. - [FIX] Dot‑in‑keys decoding: correct handling for top‑level encoded/literal dots, bracket depth limits, leading/trailing/double dots; safer key‑segment splitting; list‑parsing guardrails; preserve
depth=0
semantics. - [FIX] Query parsing: only strip a leading
?
; normalize encoded brackets only inside key slices; correctly detect empty bracketed keys (including%5B%5D
); treat empty bracket keys as"0"
when list parsing is disabled; list‑limit checks consider current size and throw when exceeded. - [FIX] Bridging & cycles: robust identity tracking for Foundation containers (maps & arrays); fix crashes with cyclic arrays; handle non‑
AnyHashable
dictionary keys; maintain path‑localseen
sets. - [FIX] Custom decoder: preserve element‑level
nil
asNSNull
inside arrays; charset mock updated toScalarDecoder
signature. - [TEST] Comprehensive Swift & Obj‑C tests for dot decoding, depth behavior, decoder precedence, key‑segment splitting, charset handling, async delivery, and convenience helpers; added parity tests.
- [DOCS] Clarify dot semantics, depth rules, decoder precedence, and ISO‑8859‑1 +
interpretNumericEntities
behavior with comma lists. - [CI] Add Objective‑C end‑to‑end workflow with coverage upload; crash‑log collection script; faster, more reliable macOS builds (caching, signing/retry, safer symlink handling); streamlined permissions.
1.1.1
1.1.1
- [FEAT] add Objective-C bridge
- [CHORE] various bug fixes and improvements
1.1.0
1.1.0
- [CHORE] Rename package to QsSwift