## 1.0.0-alpha.6

 - **FIX**(fl_query): use sync connection checker instead of async in every operation.
 - **FEAT**(fl_query_connectivity_plus_adapter): lookup based offline detection.

## 1.0.0-alpha.5

 - **FIX**(query): isLoading & isRefreshing not working as expected.
 - **FIX**(mutation): isMutating not working.
 - **FEAT**(infinite_query): add isLoadingNextPage & remove isLoadingPage.

## 1.0.0-alpha.4

 - **FIX**: mutation onSuccess doesn't refresh all pages of infinite queries.
 - **FIX**: no refreshing stale queries with error.

## 1.0.0-alpha.3

 - **REFACTOR**: directory restructure revamp.
 - **REFACTOR**: more convenient ways customizing config.
 - **REFACTOR**: stale logic to separate mixin.
 - **REFACTOR**: remove KyeType and use String for queryKey and mutationKey.
 - **REFACTOR**(example): package specific examples instead of a single example.
 - **REFACTOR**(QueryBowl): query bowl logic as a separate class instead of a stateful widget.
 - **REFACTOR**: move devtools to separate library.
 - **FIX**(fl_query_hooks): unneeded empty instances of query/mutation.
 - **FIX**(base_query): onData callback getting called with null #17.
 - **FIX**(fl_query_hooks): newest query/mutation/infinite-query instance not getting returned.
 - **FIX**: fetch query and infinite query resolving immediately without proper result.
 - **FIX**: refetchOnExternalDataChange isn't working #18.
 - **FIX**: mutation context param clashing with BuildContext.
 - **FIX**: query, infinite_query fetching/refetching when offline.
 - **FIX**: state update on unmounted hook and infinite query cache refetch not working.
 - **FIX**(client): check for error out put in fetch query and infinite query and mutateMutation immediate resolve.
 - **FIX**: not updating queryFn on create query's old query and checking stale status after updating queryFn instead of storing the status before.
 - **FIX**(InfiniteQueryJob): remove unneeded `keepPreviousData` property.
 - **FEAT**: add mutation and mutation builder with example.
 - **FEAT**: infinite query listenable add and cache event stream.
 - **FEAT**: add infinite query builder with example.
 - **FEAT**: new widget query listable builder.
 - **FEAT**: safe setState for builders, separate cache box for query and infinite query and update state before _operate to indicate loading state.
 - **FEAT**: working query builder, remove timeout from retryConfig.
 - **FEAT**: cache, client, query builder add and refreshOnQueryFnChange option.
 - **FEAT**: infinite query implementation.
 - **FEAT**: safe cancellation of running operation on reset.
 - **FEAT**: initial query and retryer implementation.
 - **FEAT**: clean old junk.
 - **FEAT**: useQuery hook with working example.
 - **FEAT**: useInfiniteQuery hook add.
 - **FEAT**: add query and infinite query disk caching support.
 - **FEAT**: use function hooks instead of class hooks.
 - **FEAT**: new next_page signature, query/mutation fn in notifier and safe update in use_updater.
 - **FEAT**(QueryClientProvider): add config parameters and override-able client parameter.
 - **FEAT**: add devtools (WIP).
 - **FEAT**: add ability to get, refresh query and infinite queries using prefix.
 - **FEAT**: connectivity adapter package for connectivity_plus.
 - **FEAT**: refresh on network state change and cancel retry when offline.
 - **FEAT**: add support for keepPreviousData & examples regarding this.
 - **FEAT**: resolve and resolveWith helper support.
 - **FEAT**: add initial support for `InfiniteQuery`.
 - **FEAT**(infinite-query): onData and onError listener support.
 - **FEAT**(infinite-query): add `useInfiniteQuery` hook with example.
 - **FEAT**(infinite-query): add setInfiniteQueryData support.
 - **FEAT**(infinite-query): add refetchPages, refetchOnStale, refetchOnMount support.
 - **FEAT**(infinite-query): add all the features of query in infinite query.
 - **FEAT**: implement refetchOnApplicationResume and refetchOnWindowFocus.
 - **DOCS**: add dynamic query & mutation section.
 - **DOCS**: add paginated-query section and update optimistc update section.
 - **DOCS**: update according to the new query bowl refactor.
 - **DOCS**: Front page Images added.
 - **DOCS**: add infinite query page.

# Changelog

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

## [1.0.0-alpha.2](https://github.com/KRTirtho/fl-query/compare/v1.0.0-alpha.1...v1.0.0-alpha.2) (2023-03-12)


### Features

* **QueryClientProvider:** add config parameters and override-able client parameter ([f8895e3](https://github.com/KRTirtho/fl-query/commit/f8895e338141488e5bce4401c80b491688932085))

### [1.0.0-alpha.1](https://github.com/KRTirtho/fl-query/compare/v0.3.0...v1.0.0-alpha.1) (2023-03-05)

> **BREAKING**
> - The Jobs API has been disabled. So there's no `QueryJob`, `MutationJob` and `InfiniteQueryJob` anymore. Instead, you can use the `QueryBuilder`, `MutationBuilder` and `InfiniteQueryBuilder`  directly
> - Some of classes were renamed to more mature names
>   - `QueryBowlProvider` -> `QueryClientProvider`
>   - `QueryBowl` -> `QueryClient`
> - The unnecessary `getPreviousPageParam` is now removed from `InfiniteQuery`
> - `getNextPageParam` has been renamed to `nextPage`
> - Also, `fetchNextPage` has been renamed to `fetchNext`
> - `Query` and `InfiniteQuery`'s `setQueryData` has been renamed to `setData` and it now accepts data directly instead of a call back function
> - Finally, `QueryClient`'s unneeded `prefetchQuery` method was eradicated


### Features

* add infinite query builder ([efa2c81](https://github.com/KRTirtho/fl-query/commit/efa2c81505385eba0ba45f50c0debb9e4708804b))
* add mutation and mutation builder ([6a90f84](https://github.com/KRTirtho/fl-query/commit/6a90f847c90c242ec089ab85f9ec7201a9aacd06))
* add query and infinite query disk caching support ([074175e](https://github.com/KRTirtho/fl-query/commit/074175ed392370d5165d0573977af8d83422ac31))
* add Cache, Client, QueryBuilder widget and refreshOnQueryFnChange support for queries ([18584a3](https://github.com/KRTirtho/fl-query/commit/18584a3c57dbb1538fc18a48b41be11fbc11d094))
* InfiniteQuery implementation ([45b6f92](https://github.com/KRTirtho/fl-query/commit/45b6f92316ca1496e47462eb67aea64f43f8d9c1))
* add InfiniteQueryListenable widget and cache event stream ([783a273](https://github.com/KRTirtho/fl-query/commit/783a2737b18283478d65082e236629188c124e6b))
* add Query and Retryer ([b304466](https://github.com/KRTirtho/fl-query/commit/b304466d73654a89c9582b8211b063ae8c661454))
* infinite query's nextPage method ([f2a23b0](https://github.com/KRTirtho/fl-query/commit/f2a23b085cd657a1612d87749f6592b4d67814c5))
* new QueryListableBuilder widget ([975f9ea](https://github.com/KRTirtho/fl-query/commit/975f9eafe14d2ae235a67c173622f16ef850e8e7))
* safe cancellation of running operation on reset ([5dde200](https://github.com/KRTirtho/fl-query/commit/5dde200c84836aba676708c2dd2682a861edb289))
* safe setState for builders, separate cache box for query and infinite query ([68e60c1](https://github.com/KRTirtho/fl-query/commit/68e60c1914d321bb8e23516966bafc990ea2bc31))
* add usMutation hook ([383d0e0](https://github.com/KRTirtho/fl-query/commit/383d0e0a85d7db6ee30bc336cb849f4ea401a8f1))
* add useInfiniteQuery hook ([f9a5207](https://github.com/KRTirtho/fl-query/commit/f9a520740321ababa3974e232562b32364062a35))
* add useQuery hook ([7fabf44](https://github.com/KRTirtho/fl-query/commit/7fabf44756ed36aaa4481583167735bc18f97ad1))


### [0.3.1](https://github.com/KRTirtho/fl-query/compare/v0.3.0...v0.3.1) (2022-10-03)

### Bug Fixes
* **infinite_query**: `getNextPageParam` & `getPreviousPageParam` cannot return null ([e9c8b79](https://github.com/KRTirtho/fl-query/commit/e9c8b7903b430187c802ad46b51447c0760f5e0d))
* **base_query**: `onData` callback getting called with null #17 ([664e90e](https://github.com/KRTirtho/fl-query/commit/664e90e60488e408bb76fa8681d6557528731259))



### [0.3.0](https://github.com/KRTirtho/fl-query/compare/v0.2.0...v0.3.0) (2022-09-23)


### Features

* add initial support for `InfiniteQuery` ([1452d7d](https://github.com/KRTirtho/fl-query/commit/1452d7d79e14ef933391221f245c8bff1e869af6))
* **infinite-query:** add `useInfiniteQuery` hook with example ([2a3ac29](https://github.com/KRTirtho/fl-query/commit/2a3ac29f64971fe534fa70600e8be4490429304e))
* **infinite-query:** add all the features of query in infinite query ([61958c7](https://github.com/KRTirtho/fl-query/commit/61958c7d9499921387c646cc27ab9d6202694804))
* **infinite-query:** add refetchPages, refetchOnStale, refetchOnMount support ([95b1837](https://github.com/KRTirtho/fl-query/commit/95b183762021b51df7225adb66f3330e8d84bd96))
* **infinite-query:** add setInfiniteQueryData support ([6eb7b2a](https://github.com/KRTirtho/fl-query/commit/6eb7b2a4293b64243e36307a70720601a76878a3))
* **infinite-query:** onData and onError listener support ([f47ca98](https://github.com/KRTirtho/fl-query/commit/f47ca98472ccd3eecf49ae348225332c8a2f61ea))
* **query_bowl:** `QueryBowl` as separate class
* **performance:** lazily update ListenerWidgets or listeners instead of triggering an update for whole widget tree


### Bug Fixes

* **InfiniteQueryJob:** remove unneeded `keepPreviousData` property ([8df1fc5](https://github.com/KRTirtho/fl-query/commit/8df1fc54c326b62ea1f4df0b4b472ef88198ef4d))

## v0.2.0

### New
- Paginated/Lagged Query support using `QueryJob`'s `keepPreviousData`
- Mutation event context (returned data from `onMutate` available in `onData` & `onError`)
- Support for `refetchOnMount`. Now query will be refetched when a new widget is mounted.

### Improvements
- Only one Query & Mutation instance in `QueryBuilder` & `MutationBuilder` which reduces memory usage
- Optimistic updates are now context driven


## v0.1.0

Initial Release

- `QueryBowl` & `QueryBowlScope` for managing & caching all the query data.
- `Query` for advanced fetch, refetch & data management APIs
- `Mutation` for advanced mutate (a function that modifies data somewhere) & post-mutation management APIs
- `QueryJob` for defining the logic of how data should be fetched or refetched or invalidated
- `MutationJob` for defining the logic of how data should be mutated
- `QueryBuilder` for binding the `Query` & `QueryJob` to a Flutter Widget
- `MutationBuilder` for binding the `Mutation` & `MutationJob` to a Flutter Widget