vexana 6.0.1 copy "vexana: ^6.0.1" to clipboard
vexana: ^6.0.1 copied to clipboard

Manage your network layer with dio. You will be able to use it very easily network operations.

6.0.1 #

Fixed #

  • The cache key now includes the path and query. It used to be baseUrl-METHOD, so every cached GET on one manager shared a single entry: after GET /posts was cached, GET /posts/1 or GET /users returned the /posts body. The key is now baseUrl-METHOD-path?query, with query keys sorted so their order does not matter. removeAll() still clears every entry of the manager. Entries written by 6.0.0 are no longer read and expire on their own.
  • LocalFile: writing a key that was already cached kept the old value instead of the new one.
  • LocalFile drops expired entries whenever it writes, so entries for paths or queries that are never requested again no longer pile up in the cache file.

6.0.0 #

If you use caching, upgrade. The first two entries under Fixed had been broken for several releases: cache reads never succeeded, and clearing the cache could delete unrelated application files.

Breaking #

  • SDK constraint raised to ^3.6.0 (required by pub workspaces).
  • cache.removeAll() with the LocalFile manager now removes only the entries belonging to the calling manager's base URL. It previously deleted the whole application documents directory. LocalPreferences already behaved this way; both file managers now share one contract.
  • sendPrimitive and downloadFileSimple now go through the manager's own request pipeline. They used to build a fresh Dio internally, which silently skipped the manager's interceptors, adapter and base options. If you relied on those calls bypassing your interceptors — refresh-token handling included — they no longer do.
  • package:dio/src/... paths are no longer re-exported. Everything they held is already exported by package:dio/dio.dart, so imports keep working. The only symbols that disappear are dio's internal InterceptorState and InterceptorResultType, which dio itself hides from its public surface.

Fixed #

  • Every cache hit failed since 4.0.0. fetchDataFromCache and loadFromCache passed the Future returned by decodeBodyWithCompute straight into the parser instead of awaiting it. The parameter is dynamic, so nothing complained: the parser received Instance of 'Future<dynamic>', send answered JSON Decode Error and sendRequest returned NetworkErrorResult whenever a fresh cache entry existed. With a nullable result type the failure was quieter still — NetworkSuccessResult(null). A corrupted entry is now treated as a miss and falls back to the network. Thanks to @Yusufihsangorgel (#133).
  • cache.removeAll() deleted the whole application documents directory. With the LocalFile manager it called clearAllDirectoryItems, which removed getApplicationDocumentsDirectory() recursively — databases, downloaded files and everything else the app stored there — even though the cache lives in a single vexana.json. Thanks to @Yusufihsangorgel (#134).
  • NetworkManager.download() crashed with StackOverflowError. It overrode DioMixin.download but called this.download(...) in its body; virtual dispatch resolves that to the most derived implementation — itself — so the method recursed until the stack overflowed. It never worked in 5.0.3, where it was introduced. DioMixin.download throws UnimplementedError, so delegating to super is not possible either. The call is now delegated through DioMixin.clone(), which carries the manager's base options, interceptor chain, transformer and HTTP adapter, and drops the default ImplyContentTypeInterceptor that a plain Dio() would add. Native and web regression tests from @Yusufihsangorgel (#135).
  • sendPrimitive built its URL as baseUrl + path. When the base URL ended with a slash this produced https://host//path, which servers read as a scheme-relative request target — the path arrived empty. dio's own URL resolution now handles the join.
  • JsonDecodeUtil.safeJsonDecodeCompute returned the compute future without awaiting it, so a decode error escaped its try and was thrown instead of returning null.

Changed #

  • Migrated to a Melos monorepo with Dart pub workspaces. The published package now lives in packages/vexana/. (#65)
  • NetworkCheck no longer sends an HTTPS request to google.com on every check. That leaked a signal to a third party whenever a request failed, reported "no internet" on networks where Google is unreachable, and had no timeout at all. It now uses the platform's own facilities: a DNS lookup (or an interface check when no host is known) on IO, navigator.onLine on web, both behind a timeout. isNetworkAvailable takes optional host and timeout arguments, and NoNetworkManager takes an optional host, so the check can target the server the request was actually going to.
  • download now reuses a single delegate instead of building a new Dio — and therefore a new HttpClient, connection pool and TLS handshake — on every call.

Web #

  • WebAssembly compatible. Every if (dart.library.html) condition is now if (dart.library.js_interop). The old condition evaluates to false under wasm, which made the compiler fall through to the dart:io branch — and dart:io does not exist on wasm. HttpStatus moved to a pure-Dart shim because it exists only in dart:io (never in dart:html). Verified by flutter build web --wasm in CI.

Internal #

  • Analyzer and formatter issues cleared; dart format is enforced in CI.
  • CI now runs analyze, format check, coverage and a wasm build. The PR-comment step that failed on fork PRs with "Resource not accessible by integration" was removed (#121).
  • Test coverage is measured in CI with a 75% floor instead of being estimated in the README. Measured at 77.5% on 2026-08-10.
  • Publishing moved to pub.dev's OIDC automated publishing via Dart's official reusable workflow; no credentials are stored in the repo.
  • Added a benchmark harness (benchmark/) with baseline measurements.
  • The example app is deployed to https://vb10.github.io/vexana/ on every push to master.
  • Renamed two misspelled internals (neither is exported): file_manager_not_foud_exception.dart → file_manager_not_found_exception.dart and NetworkManagerUtil.isRequestHasSurceased → isRequestSucceeded. Rename contributed by @mehmetfiskindal (#132).
  • Added a script/verify.sh entry point that runs analyze, tests and the web and wasm builds in one command.

5.0.3 #

  • Updated dio package to 5.8.0
  • Added download method for newer dio version

5.0.0 #

  • Added new method for sending request it is enable to "fold" option for every response

5.0.2 #

5.0.1 #

4.1.0 #

  • Refresh Token Dart Code example update #106 from @behzodfaiziev
  • fix formData finalized exception #105 from @aligconnectinno
  • Refactor NetworkManagerErrorInterceptor to handle null onResponseParse #100 from @aligconnectinno
  • updated issue_tracker link #94 from @behzodfaiziev
  • Updated unit test capabilities

4.0.4 #

  • Removed transformer custom implementation

4.0.2 #

  • Removed unused code with package (Native adapter)

4.0.3 #

  • Updated readme with some invited social media links

4.0.1 06/04/2024 #

  • The new version has been released with many new coding updates
  • Package and many dependencies has been updated
  • Removed unused code with package
  • Added new unit test
  • Added new documentation
  • Updated example project

4.0.0-dev5 20/12/2023 #

  • Coding improvement for test coverage

4.0.0-dev4 19/12/2023 #

  • Coding improvement with documentation
  • Fixed refresh token issues

4.0.0-dev3 21/02/2023 #

  • Parallel request problem has fixed with cancel token.

4.0.0-dev2 21/02/2023 #

  • Refresh token issue has fixed.

4.0.0-dev1 21/02/2023 #

  • The new version has been released with may new coding updates
  • Package and many dependencies has been updated
  • Added new unit test
  • Added new documentation

3.5.2 21/02/2023 #

  • Dio package update 3.5.2
  • Added some documentation with fix some issues.

3.5.1 21/02/2023 #

  • Updated code documentation

3.5.0 21/02/2023 #

  • Updated some packages
  • Package minimum target to dart3
  • Fixed issue primitive error parse

3.4.3 21/02/2023 #

  • Dio package updated to 5.2.0
  • Fixed dio error instance

3.4.0 21/02/2023 #

  • Dio package updated to 5.0.0
  • Added some fixes with coding improvement.

3.3.1 21/01/2023 #

  • Fixed web platform issues from pub dev
  • Added custom path provider for web

3.3.0 15/01/2023 #

  • Fixed web platform issues

3.2.1 15/01/2023 #

  • Fixed analyze issue

3.2.0 15/01/2023 #

  • Added little improvement for sembast and etc.
  • Fixed web support problem

3.1.1 15/06/2022 #

  • Generic error model added on network manager. NetworkManager

3.0.1 15/06/2022 #

  • Fixed U8IntList problem.

3.0.0 15/06/2022 #

  • Error widget mechanism added when your network is gone.

2.8.1 15/06/2022 #

  • Error model parser added

2.8.0 12/03/2022 #

  • Force parser added with parameter.
  • Coding improvement for decode

2.7.0 04/12/2021 #

  • Request can cancelable.
  • HttpCertificate added
  • Some readme problems fixed.
  • A little improvement about parser etc.

2.6.0 04/12/2021 #

  • Added new feature as a primitive send, It will be provide primitive service response.
  • Cancellation support added for very request.

2.5.0 04/12/2021 #

  • Updated to new dio version 4.0.+
  • Retry mechanism has changed by google retry package.
  • QueuedInterceptorsWrapper used instead of lock mechanism. (dio #590)

2.4.3 29/09/2021 #

  • Empty model compare problems has fixed.

2.4.2 29/09/2021 #

  • Error log has linked to enable logger property.

2.4.1 29/09/2021 #

  • error model parse has added.

2.4.0 29/09/2021 #

  • uploadFile method added, it able to upload file.

2.3.5 29/09/2021 #

  • Every multipart file exported for Multipart request.

2.3.4 29/08/2021 #

  • Formdata exported for public access.

2.3.3 29/08/2021 #

  • MultipartFile options exported to outside.

2.3.2 21/08/2021 #

  • INetwork Model problem fixed so it's accept null return.

2.3.1 21/08/2021 #

  • Parse exception log added.
  • Network Model accept to nullable map object.
  • Flutter lints improvement.

2.3.0 21/08/2021 #

  • Base headers control has added.
  • File download options has return byte array fixed.
  • Web export problem fixed.

2.2.2 30/07/2021 #

  • Successful response code range added.(200> &300<)

2.2.1 20/06/2021 #

  • Refresh token veriable problem has fixed

2.2.0 30/05/2021 #

  • File download wih progress callback.
  • Error log message added with logger package

2.1.5 15/04/2021 #

  • Added simple download manager

2.1.0 15/04/2021 #

  • Cache operation has fixed for null safety.

2.0.0-nullsafety.10 15/04/2021 #

  • Some bug fix lasttt :)

2.0.0-nullsafety.9 15/04/2021 #

  • Some bug fix.

2.0.0-nullsafety.8 10/01/2021 #

  • Export to interceptors values
  • Add more public documentation

2.0.0-nullsafety.7 10/01/2021 #

  • Dio null safety migration

2.0.0-nullsafety.6 10/01/2021 #

  • Interceptor export add library.

2.0.0-nullsafety.5 10/01/2021 #

  • Object mapper fixed

2.0.0-nullsafety.4 05/01/2021 #

  • Object type conver to dynamic.

2.0.0-nullsafety.3 05/01/2021 #

  • To json and From Json Model architecture fixed.

2.0.0-nullsafety.2 05/01/2021 #

  • Map parsing error has fixed with null safety.

2.0.0-nullsafety.1 05/01/2021 #

  • Vexana adapt to null safety.

1.3.1 05/01/2021 #

  • Fixed primitive type response and added test.

1.3.0 05/01/2021 #

  • Response and Request preview on editor null fixed.

1.2.2 20/11/2020 #

  • Minor fix and export options added.

1.2.1 20/11/2020 #

  • Cache use detail added to the documentation.

1.2.0 20/11/2020 #

  • Network cache options added project.
  • Remove all cache options added.

1.1.5 18/11/2020 #

  • Retry options add on refresh token mechanism
  • On Refresh Fail added.

1.1.0 17/11/2020 #

  • The user gave logging options
  • Refresh token options added.

1.0.0 22/10/2020 #

  • Version 1.0.0 updated.
  • Readme and todos prepared.
  • Wiki Created.

0.0.1 20/10/2020 #

  • Project template created.
  • Base models has been defined.
  • Logger options added,
  • User custom error model added.
295
likes
130
points
947
downloads

Documentation

API reference

Publisher

verified publishervb10.dev

Weekly Downloads

Manage your network layer with dio. You will be able to use it very easily network operations.

Repository (GitHub)
View/report issues

Topics

#dio #refreshtoken #withoutnetwork #networkmanager #networkcache

Funding

Consider supporting this project:

github.com

License

MIT (license)

Dependencies

collection, dio, dio_web_adapter, equatable, flutter, logger, path_provider, retry, shared_preferences

More

Packages that depend on vexana