Skip to content

Releases: techouse/qs-swift

1.1.6

26 Sep 01:46
5e33716

Choose a tag to compare

1.1.6

  • [FEAT] add support in QsBridge._bridgeInputForEncode for handling OrderedDictionary<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

17 Sep 23:36
07e651a

Choose a tag to compare

1.1.5

  • [FEAT] add experimental Linux support

1.1.4

26 Aug 10:08
dea09a8

Choose a tag to compare

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

26 Aug 00:37
4b01152

Choose a tag to compare

1.1.3

  • [CHORE] refactor code and improve variable naming for clarity and consistency
  • [CHORE] add QsSwift <-> qs.js comparison tests

1.1.2

25 Aug 00:17
5418e24

Choose a tag to compare

1.1.2

  • [FEAT] Introduce DecodeKind to distinguish key vs value decoding; add Objective‑C mirror QsDecodeKind.
  • [FEAT] Unify scalar decoding via ScalarDecoder (KEY/VALUE‑aware). Add DecodeOptions.decodeKey / decodeValue helpers.
  • [DEPRECATION] Deprecate ValueDecoder, legacy decoder, and getDecoder(_:charset:). The Obj‑C bridge provides a temporary legacyDecoderBlock, but decoderBlock now takes precedence.
  • [FEAT][ObjC] Add KEY/VALUE‑aware decoderBlock to QsDecodeOptions; Swift bridging prefers it over valueDecoderBlock.
  • [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‑local seen sets.
  • [FIX] Custom decoder: preserve element‑level nil as NSNull inside arrays; charset mock updated to ScalarDecoder 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

15 Aug 22:58
2f723cd

Choose a tag to compare

1.1.1

  • [FEAT] add Objective-C bridge
  • [CHORE] various bug fixes and improvements

1.1.0

13 Aug 21:40
1e74bb4

Choose a tag to compare

1.1.0

  • [CHORE] Rename package to QsSwift

1.0.0

13 Aug 23:30
1edf24d

Choose a tag to compare

  • [CHORE] Initial release of the project.