jala_dio 0.8.2
jala_dio: ^0.8.2 copied to clipboard
Dio interceptor for Jala: capture, one-tap replay, and network throttling (latency, drop, stream bandwidth pacing).
0.8.2 — 2026-08-11 #
- Lockstep release. No changes in this package;
jala_coregainsJalaConfig.localeand the inspector UI ships in Indonesian — see thejalaandjala_uichangelogs.
0.8.1 — not published separately #
Prepared in the repo, then folded into 0.8.2 before it reached pub.dev. Everything below shipped in 0.8.2; there is no 0.8.1 on pub.dev.
- Lockstep release. No changes in this package; see the
jalaandjala_uichangelogs for the Android input/back fixes and the new file-backed export destination.
0.8.0 — 2026-08-03 #
Fixed #
- Request and response bodies are now redacted on Dio's default paths.
Redaction was applied only to bodies that were already
String, sodata: <String, dynamic>{...}requests and the defaultResponseType.jsonresponses — both decodedMaps — were stored verbatim.redactedBodyPatternsand the built-in JSON secret-key patterns silently did nothing for the majority of Dio traffic. - Bandwidth throttling applies to buffered responses and requests.
downloadBytesPerSecpreviously only affectedResponseType.streamresponses anduploadBytesPerSecwas never applied at all, so picking "Slow 3G" on a normal Dio app honored its latency and drop rate but ignored its 50 KB/s cap. A buffered body cannot be delivered progressively, so it is held for the time those bytes would have taken; end-to-end timing now matches the streamed path. JalaDioReplayerrefuses to replay an entry whose request body was truncated at capture time instead of resending the retained prefix.
0.7.0 #
- Sensitive query-parameter values (
?access_token=…) are masked at capture time viaJalaRedactor.redactUri, so the real value never reaches the store or any export. The outgoing request and mock matching still see the real URL. - Replay drops query parameters whose value was masked, mirroring how it already drops redacted headers rather than resending the mask.
0.6.0 #
- Lockstep release with jala_core 0.6.0 (call diff + import codecs).
0.5.3 #
- Lockstep release with jala_core 0.5.3 security defaults.
0.5.2 #
- Lockstep release; no functional changes.
0.5.1 #
- Pub metadata:
homepage,issue_tracker, clearer description. - Docs: multi-client replay ownership (last
JalaDio.attachwins); lockstep 0.5.x note; link to ADOPTION guide.
0.5.0 #
- Network throttling:
onRequestconsultsJalaBinding.instance .throttleRegistry— a 100%-drop profile rejects with a connection-errorDioException(captured as a normal error entry, taggedthrottledBy: <profileId>); otherwise the configured latency (+ jitter) delays the request before it's forwarded. Only applied when a profile is active and the request's host matches the profile's host pattern. - Bandwidth pacing (
downloadBytesPerSec) delays each chunk of aResponseType.streamresponse. Dio's default (buffered) response types resolve to bytes entirely inside Dio's own transformer, off a stream this interceptor never sees — those responses get latency/drop only, never pacing (documented in the README). - Zero overhead when no profile is active: the throttle check is a cheap null/host-pattern check on the existing hot path, no behavior change.
0.4.0 #
- Lockstep release; no functional changes. Bumped for the
jala_core0.4.0 dependency (GraphQL metadata + WebSocket models, unused by this package directly).
0.3.0 #
- Rule-based request mocking: after capture, match
JalaMockRegistryand short-circuit with canned response, synthetic failure, or delay (only when Jala is enabled). - Edit-and-resend:
JalaDioReplayer.replayModifiedrebuildsRequestOptionswith method/URL/headers/body overrides.
0.2.0 #
- Capture
FormDataas structured multipart parts (@multipartconvention) without reading file bytes. - Capture
ResponseType.bytesimage responses asBodyKind.imagewhen withinmaxBodyBytesandcaptureImageBodiesis enabled. - Upload/download progress: wrap
Streamrequest bodies andResponseType.streamresponse bodies to emitNetworkProgressEvent(plain Map/JSON bodies remain no-progress by design — see interceptor docs).
0.1.1 #
- Add pub.dev topics.
0.1.0 #
JalaDioInterceptorcapturing request/response/error/cancel events for anyDioinstance, with headers redacted at capture time.JalaDio.attach(dio)convenience that adds the interceptor and registers a replayer fordioin one call.JalaDioReplayer— one-tap in-app replay by rebuildingRequestOptionsand re-issuing viadio.fetch, tagging the new entry withreplayOf.FormDatafields and file names/sizes are summarized without ever reading file bytes;ResponseType.stream/bytesresponses are captured as metadata only.- Every interceptor hook checks
JalaBinding.instance.isEnabledfirst and is wrapped in try/catch, so a disabled Jala or a capture bug can never affect app networking.