diff --git a/CHANGELOG.md b/CHANGELOG.md index 05484f53..9dae5cc5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline Packages with breaking changes: + - [`ferry_exec` - `v0.4.0`](#ferry_exec---v040) Packages with other changes: @@ -36,6 +37,13 @@ Packages with dependency updates only: #### `ferry_exec` - `v0.4.0` - **BREAKING** **FEAT**(ferry_exec): add `varToJson()` method to OperationRequest and FragmentRequest in order to make the cache work without casts to dynamic. + - `ferry_flutter` - `v0.8.1-dev.4` + +--- + +#### `ferry_cache` - `v0.7.1-dev.4` + + - **FEAT**(ferry_generator): add option to reuse data classes for fragments with a single inline fragment spread as selection (#530). ## 2023-08-13 diff --git a/examples/auth_token_with_isolate/client/pubspec.yaml b/examples/auth_token_with_isolate/client/pubspec.yaml index c0637cb1..f0173a4a 100644 --- a/examples/auth_token_with_isolate/client/pubspec.yaml +++ b/examples/auth_token_with_isolate/client/pubspec.yaml @@ -35,7 +35,7 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - ferry: ^0.15.0-dev.3 + ferry: ^0.15.0-dev.4 hive: ferry_hive_store: path_provider: diff --git a/examples/pokemon_explorer/lib/src/client_isolate.dart b/examples/pokemon_explorer/lib/src/client_isolate.dart index 5c3eb92c..688cd233 100644 --- a/examples/pokemon_explorer/lib/src/client_isolate.dart +++ b/examples/pokemon_explorer/lib/src/client_isolate.dart @@ -38,6 +38,8 @@ Future _initClientIsolate( final box = await Hive.openBox>("graphql"); + /// This deletes all cached content. useful for an example, not so much for a real-world app + /// Remove this line when you copy this code for your app. await box.clear(); final store = HiveStore(box); diff --git a/examples/pokemon_explorer/pubspec.yaml b/examples/pokemon_explorer/pubspec.yaml index 1ede18a7..9ecf1348 100644 --- a/examples/pokemon_explorer/pubspec.yaml +++ b/examples/pokemon_explorer/pubspec.yaml @@ -6,9 +6,9 @@ environment: dependencies: gql_link: '>=0.5.0 <2.0.0' gql_http_link: '>=0.4.0 <2.0.0' - ferry: ^0.15.0-dev.3 + ferry: ^0.15.0-dev.4 ferry_hive_store: ^0.5.1 - ferry_flutter: ^0.8.1-dev.3 + ferry_flutter: ^0.8.1-dev.4 hive: ^2.0.0 hive_flutter: ^1.1.0 get_it: ^7.1.3 diff --git a/packages/ferry/CHANGELOG.md b/packages/ferry/CHANGELOG.md index 1059b227..9fe986de 100644 --- a/packages/ferry/CHANGELOG.md +++ b/packages/ferry/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.15.0-dev.4 + + - Update a dependency to the latest release. + ## 0.15.0-dev.3 - Update a dependency to the latest release. diff --git a/packages/ferry/pubspec.yaml b/packages/ferry/pubspec.yaml index a49fa02d..ea17a3b0 100644 --- a/packages/ferry/pubspec.yaml +++ b/packages/ferry/pubspec.yaml @@ -1,5 +1,5 @@ name: ferry -version: 0.15.0-dev.3 +version: 0.15.0-dev.4 homepage: https://ferrygraphql.com/ description: Ferry is a simple, powerful GraphQL Client for Flutter and Dart. repository: https://github.com/gql-dart/ferry @@ -16,7 +16,7 @@ dependencies: built_value: ^8.0.4 ferry_exec: ^0.4.0 normalize: ^0.9.0-dev.2 - ferry_cache: ^0.7.1-dev.3 + ferry_cache: ^0.7.1-dev.4 dev_dependencies: test: ^1.16.8 mockito: ^5.3.1 diff --git a/packages/ferry_cache/CHANGELOG.md b/packages/ferry_cache/CHANGELOG.md index 86ac7310..13ce97a0 100644 --- a/packages/ferry_cache/CHANGELOG.md +++ b/packages/ferry_cache/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.7.1-dev.4 + + - **FEAT**(ferry_generator): add option to reuse data classes for fragments with a single inline fragment spread as selection (#530). + ## 0.7.1-dev.3 - **FIX**(normalize): When there are dangling references in child objects of a list, by default do not treat the whole entity as partial data, but remove it from the list. This can be configured using the allowDanglingReference parameter. diff --git a/packages/ferry_cache/lib/src/cache.dart b/packages/ferry_cache/lib/src/cache.dart index bd89e5d6..4097921f 100644 --- a/packages/ferry_cache/lib/src/cache.dart +++ b/packages/ferry_cache/lib/src/cache.dart @@ -127,7 +127,7 @@ class Cache { document: request.operation.document, addTypename: addTypename, operationName: request.operation.operationName, - variables: request.varsToJson, + variables: request.varsToJson(), typePolicies: typePolicies, dataIdFromObject: dataIdFromObject, possibleTypes: possibleTypes, @@ -146,7 +146,7 @@ class Cache { document: request.document, idFields: request.idFields, fragmentName: request.fragmentName, - variables: request.varsToJson, + variables: request.varsToJson(), typePolicies: typePolicies, addTypename: addTypename, dataIdFromObject: dataIdFromObject, @@ -177,7 +177,7 @@ class Cache { ), document: request.operation.document, operationName: request.operation.operationName, - variables: request.varsToJson, + variables: request.varsToJson(), data: (data as dynamic)?.toJson(), typePolicies: typePolicies, addTypename: addTypename, @@ -209,7 +209,7 @@ class Cache { document: request.document, idFields: request.idFields, fragmentName: request.fragmentName, - variables: request.varsToJson, + variables: request.varsToJson(), data: (data as dynamic)?.toJson(), typePolicies: typePolicies, addTypename: addTypename, diff --git a/packages/ferry_cache/lib/src/fragment_data_change_stream.dart b/packages/ferry_cache/lib/src/fragment_data_change_stream.dart index 996928d3..1690ee66 100644 --- a/packages/ferry_cache/lib/src/fragment_data_change_stream.dart +++ b/packages/ferry_cache/lib/src/fragment_data_change_stream.dart @@ -36,7 +36,7 @@ Stream> fragmentDataChangeStream( idFields: request.idFields, fragmentName: request.fragmentName, document: request.document, - variables: request.varsToJson, + variables: request.varsToJson(), typePolicies: typePolicies, addTypename: addTypename, returnPartialData: true, diff --git a/packages/ferry_cache/lib/src/operation_data_change_stream.dart b/packages/ferry_cache/lib/src/operation_data_change_stream.dart index 42c90e1c..0b4d35da 100644 --- a/packages/ferry_cache/lib/src/operation_data_change_stream.dart +++ b/packages/ferry_cache/lib/src/operation_data_change_stream.dart @@ -45,7 +45,7 @@ Stream> operationDataChangeStream( }, document: request.operation.document, operationName: request.operation.operationName, - variables: request.varsToJson, + variables: request.varsToJson(), typePolicies: typePolicies, addTypename: addTypename, returnPartialData: true, diff --git a/packages/ferry_cache/pubspec.yaml b/packages/ferry_cache/pubspec.yaml index 2074d7fb..9cd41e0b 100644 --- a/packages/ferry_cache/pubspec.yaml +++ b/packages/ferry_cache/pubspec.yaml @@ -1,5 +1,5 @@ name: ferry_cache -version: 0.7.1-dev.3 +version: 0.7.1-dev.4 homepage: https://ferrygraphql.com/ description: A normalized, strongly typed, optimistic cache for GraphQL Operations and Fragments repository: https://github.com/gql-dart/ferry diff --git a/packages/ferry_flutter/CHANGELOG.md b/packages/ferry_flutter/CHANGELOG.md index 0e5da1f5..a08764f4 100644 --- a/packages/ferry_flutter/CHANGELOG.md +++ b/packages/ferry_flutter/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.8.1-dev.4 + + - Update a dependency to the latest release. + ## 0.8.1-dev.3 - Update a dependency to the latest release. diff --git a/packages/ferry_flutter/pubspec.yaml b/packages/ferry_flutter/pubspec.yaml index 763a5626..a320247c 100644 --- a/packages/ferry_flutter/pubspec.yaml +++ b/packages/ferry_flutter/pubspec.yaml @@ -1,12 +1,12 @@ name: ferry_flutter -version: 0.8.1-dev.3 +version: 0.8.1-dev.4 homepage: https://ferrygraphql.com/ description: Flutter widgets for the Ferry GraphQL client repository: https://github.com/gql-dart/ferry environment: sdk: '>=2.12.0 <3.0.0' dependencies: - ferry: ^0.15.0-dev.3 + ferry: ^0.15.0-dev.4 gql_exec: '>=0.4.0 <2.0.0' ferry_exec: ^0.4.0 flutter: diff --git a/packages/ferry_test_graphql3/.gitignore b/packages/ferry_test_graphql3/.gitignore deleted file mode 100644 index d01c064a..00000000 --- a/packages/ferry_test_graphql3/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -# Dart -.dart_tool -.packages -pubspec.lock - -# Documentation -doc/api - -build/ \ No newline at end of file diff --git a/packages/ferry_test_graphql3/CHANGELOG.md b/packages/ferry_test_graphql3/CHANGELOG.md deleted file mode 100644 index 87e50531..00000000 --- a/packages/ferry_test_graphql3/CHANGELOG.md +++ /dev/null @@ -1,222 +0,0 @@ -## 0.2.4-dev.0 - - - **FEAT**(ferry_generator): add option to reuse data classes for fragments with a single inline fragment spread as selection (#530). - -## 0.2.3 - - - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. - -## 0.2.3-dev.0 - - - **REFACTOR**: fix dependencies. - - **REFACTOR**(ferry_exec): remove cyclic dependency ferry_exec <-> ferry_test_graphql. - - **FEAT**: support stable 1.0.0 versions of depenencies gql, gql_exec, gql_link (#521). - - **FEAT**(ferry_generator): when/maybeWhen extensions (#470). - -## 0.2.2 - - - Bump "ferry_test_graphql2" to `0.2.2`. - -## 0.2.1-dev.4 - - - **REFACTOR**: fix dependencies. - - **REFACTOR**(ferry_exec): remove cyclic dependency ferry_exec <-> ferry_test_graphql. - - **FEAT**: support stable 1.0.0 versions of depenencies gql, gql_exec, gql_link (#521). - - **FEAT**(ferry_generator): when/maybeWhen extensions (#470). - -## 0.2.1-dev.3 - - - **REFACTOR**: fix dependencies. - - **REFACTOR**(ferry_exec): remove cyclic dependency ferry_exec <-> ferry_test_graphql. - - **FEAT**(ferry_generator): when/maybeWhen extensions (#470). - - **DOCS**(website): improve custom scalars documention (#517). - -## 0.2.1-dev.2 - - - **REFACTOR**(ferry_exec): remove cyclic dependency ferry_exec <-> ferry_test_graphql. - - **FEAT**(ferry_generator): when/maybeWhen extensions (#470). - -## 0.2.1-dev.1 - - - **REFACTOR**: fix dependencies. - - **REFACTOR**(ferry_exec): remove cyclic dependency ferry_exec <-> ferry_test_graphql. - - **FEAT**(ferry_generator): when/maybeWhen extensions (#470). - -## 0.2.1-dev.0+2 - - - **DOCS**: add basic documentation for field policy (#494). - -## 0.2.1+1 - - - Update a dependency to the latest release. - -## 0.2.1 - - - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. - -## 0.2.1-dev.2 - - - **REFACTOR**: fix dependencies. - -## 0.2.1-dev.1 - - - **REFACTOR**: fix dependencies. - - **REFACTOR**: remove cyclic dependency ferry_exec <-> ferry_test_graphql. - -## 0.2.1-dev.1 - - - **REFACTOR**: remove cyclic dependency ferry_exec <-> ferry_test_graphql. - -## 0.2.1-dev.0 - - - **FEAT**: when/maybeWhen extensions (#470). - -## 0.2.0 - - - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. - -## 0.2.0-dev.0 - -> Note: This release has breaking changes. - - - **BREAKING** **FIX**: properly generate nullable types for nullable elements in Lists (#445). - -## 0.1.5 - - - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. - -## 0.1.5-dev.6 - - - Update a dependency to the latest release. - -## 0.1.5-dev.5 - -> Note: This release has breaking changes. - - - **FIX**: call cache handlers for every response from DataSource.Link. - - **FIX**: disable test. - - **FEAT**: add IsolateClient (#405). - - **FEAT**: generate possibleTypesMap in ferry_generator (#371). - - **FEAT**: add Reviews subscription to test graphql. - - **BREAKING** **CHORE**: update gql_code_builder, gql_exec and vestigial analyzer pubspec entry. - -## 0.1.5-dev.4 - - - Update a dependency to the latest release. - -## 0.1.5-dev.3 - -> Note: This release has breaking changes. - - - **BREAKING** **CHORE**: update gql_code_builder, gql_exec and vestigial analyzer pubspec entry. - -## 0.1.5-dev.2 - - - **TEST**: add back test. - - **FIX**: call cache handlers for every response from DataSource.Link. - - **CHORE**: publish packages. - - **CHORE**: publish packages. - -## 0.1.5-dev.1 - - - **FIX**: disable test. - - **FEAT**: add Reviews subscription to test graphql. - - **CHORE**: publish packages. - - **CHORE**: publish packages. - - **CHORE**: restructure repo (#269). - -## 0.1.4-dev.8 - - - **DOCS**: remove stale code (#271). - -## 0.1.4-dev.7 - - - **FIX**: add dispose method to TypedLinks (#272). - -## 0.1.4-dev.6 - - - **FIX**: add missing dependencies (#268). - -## 0.1.4-dev.5 - - - **FIX**: add missing dependencies (#267). - -## 0.1.4-dev.4 - - - **FIX**: add missing override annotations (#261). - -## 0.1.4-dev.3 - - - **FEAT**: add github action for validating formatting (#260). - -## 0.1.4-dev.2 - - - **FEAT**: add extensions to response (#259). - -## 0.1.4-dev.1 - -> Note: This release has breaking changes. - - - **BREAKING** **FEAT**: build generated files to __generated__ subdirectory. - -## 0.1.4-dev.0+1 - - - **FIX**: move pedantic to dependency (#257). - -## 0.1.4 - - - **FEAT**: update dependences. - - **FEAT**: update dependences. - - **CHORE**: publish packages. - - **CHORE**: publish packages. - -## 0.1.3 - - - **FEAT**: update dependences. - - **CHORE**: publish packages. - - **CHORE**: publish packages. - - **CHORE**: publish packages. - - **CHORE**: publish packages. - -## 0.1.2 - - - **FEAT**: migrate to null safety. - - **FEAT**: migrate to null safety. - - **CHORE**: publish packages. - - **CHORE**: publish packages. - -## 0.1.1 - - - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. - -## 0.1.1-0.1.nullsafety.1 - - - **FIX**: update build_runner. - -## 0.1.1-0.1.nullsafety.0 - - - **FEAT**: migrate to null safety. - - **CHORE**: bump versions to match melos style. - - **CHORE**: prepare changelogs for melos. - -## [0.1.0-nullsafety.1] - -- allow fragment names to be nullable - -## [0.1.0-nullsafety.0] - -- add initial null safety support - -## [0.0.3] - -- update hero fragment - -## [0.0.2] - -- update dependencies - -## [0.0.1] - 2020-08-23 - -### Added - -- package added diff --git a/packages/ferry_test_graphql3/LICENSE b/packages/ferry_test_graphql3/LICENSE deleted file mode 100644 index f0f701a1..00000000 --- a/packages/ferry_test_graphql3/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2020 Sat Mandir Khalsa - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/packages/ferry_test_graphql3/README.md b/packages/ferry_test_graphql3/README.md deleted file mode 100644 index fb2b8236..00000000 --- a/packages/ferry_test_graphql3/README.md +++ /dev/null @@ -1 +0,0 @@ -Example GraphQL Operations, used in Ferry tests \ No newline at end of file diff --git a/packages/ferry_test_graphql3/analysis_options.yaml b/packages/ferry_test_graphql3/analysis_options.yaml deleted file mode 100644 index 108d1058..00000000 --- a/packages/ferry_test_graphql3/analysis_options.yaml +++ /dev/null @@ -1 +0,0 @@ -include: package:pedantic/analysis_options.yaml diff --git a/packages/ferry_test_graphql3/build.yaml b/packages/ferry_test_graphql3/build.yaml deleted file mode 100644 index 13715e4d..00000000 --- a/packages/ferry_test_graphql3/build.yaml +++ /dev/null @@ -1,15 +0,0 @@ -targets: - $default: - builders: - ferry_generator|graphql_builder: - enabled: true - options: - schema: ferry_test_graphql2|lib/schema/schema.graphql - - - ferry_generator|serializer_builder: - enabled: true - options: - schema: ferry_test_graphql2|lib/schema/schema.graphql - - diff --git a/packages/ferry_test_graphql3/lib/main.dart b/packages/ferry_test_graphql3/lib/main.dart deleted file mode 100644 index 977f47ce..00000000 --- a/packages/ferry_test_graphql3/lib/main.dart +++ /dev/null @@ -1,64 +0,0 @@ - - -import 'dart:convert'; - -import 'package:ferry/ferry.dart'; -import 'package:ferry_cache/ferry_cache.dart'; -import 'package:ferry_test_graphql2/queries/__generated__/reviews.data.gql.dart'; -import 'package:ferry_test_graphql2/queries/__generated__/reviews.req.gql.dart'; -import 'package:ferry_test_graphql2/schema/__generated__/schema.schema.gql.dart'; -import 'package:gql_exec/gql_exec.dart'; - - -void main() async { - - - const responseJson = """ - { - "getExploreVideos": [ - { - "__typename": "PositionVideoViewType", - "id": "2", - "thumbnail": "https://img.youtube.com/vi/2/mqdefault.jpg", - "video": "https://www.youtube.com/watch?v=2", - "likeCount": 2, - "company": { - "__typename": "Company", - "id": "2", - "name": "Company 2" - }, - "position": { - "__typename": "Position", - "id": "1", - "title": "Position 1" - } - } - ] - } - """; - final client = Client( - link: Link.function((request, [forward]) => Stream.value(Response( - data: json.decode(responseJson), - response: json.decode(responseJson)))), - cache: Cache( - possibleTypes: possibleTypesMap - ), - ); - - final res = await client.request(GGetExploreVideosReq()).first; - - - - print(res.graphqlErrors); - print(res.linkException); - print(res.data?.toJson()); - - final scnd = res.data!.getExploreVideos![0]; - - print(scnd.G__typename); - print(scnd.runtimeType); - - print(scnd.toJson()); - - -} \ No newline at end of file diff --git a/packages/ferry_test_graphql3/lib/queries/fragments.graphql b/packages/ferry_test_graphql3/lib/queries/fragments.graphql deleted file mode 100644 index e03c6a63..00000000 --- a/packages/ferry_test_graphql3/lib/queries/fragments.graphql +++ /dev/null @@ -1,22 +0,0 @@ - -fragment VideoViewFields on VideoInterface { - id - thumbnail - video - likeCount - company { - id - name - username - } -} - - -fragment VideoViewFragment on VideoInterface { - ...VideoViewFields - ... on PositionVideoViewType { - position { - title - } - } -} \ No newline at end of file diff --git a/packages/ferry_test_graphql3/lib/queries/reviews.graphql b/packages/ferry_test_graphql3/lib/queries/reviews.graphql deleted file mode 100644 index 1025c1c0..00000000 --- a/packages/ferry_test_graphql3/lib/queries/reviews.graphql +++ /dev/null @@ -1,7 +0,0 @@ -# import "./fragments.graphql" - -query GetExploreVideos { - getExploreVideos{ - ...VideoViewFragment - } -} \ No newline at end of file diff --git a/packages/ferry_test_graphql3/lib/schema/schema.graphql b/packages/ferry_test_graphql3/lib/schema/schema.graphql deleted file mode 100644 index aa5d19b7..00000000 --- a/packages/ferry_test_graphql3/lib/schema/schema.graphql +++ /dev/null @@ -1,44 +0,0 @@ -schema { - query: Query -} - -interface VideoInterface { - id: ID! - thumbnail: String! - video: String! - likeCount: Int! - company: CompanyType! -} - -type CompanyType { - id: String - name: String - username: String - other: String -} - -type PositionType { - id: ID! - title: String - startDate: String - duration: Int -} - - -type PositionVideoViewType implements VideoInterface { - id: ID! - thumbnail: String! - video: String! - likeCount: Int! - company: CompanyType! - position: PositionType! -} - - -type Query { - getExploreVideos: [VideoInterface!]! -} - -enum A{ - a,b -} \ No newline at end of file diff --git a/packages/ferry_test_graphql3/pubspec.yaml b/packages/ferry_test_graphql3/pubspec.yaml deleted file mode 100644 index b6909ea6..00000000 --- a/packages/ferry_test_graphql3/pubspec.yaml +++ /dev/null @@ -1,33 +0,0 @@ -name: ferry_test_graphql2 -version: 0.2.4-dev.0 -description: Example GraphQL Operations, used in Ferry tests -repository: https://github.com/gql-dart/ferry -environment: - sdk: '>=3.0.0 <4.0.0' -dependencies: - async: ^2.0.0 - gql: '>=0.14.0 <2.0.0' - gql_exec: '>=0.4.0 <2.0.0' - gql_link: '>=0.5.0 <2.0.0' - ferry_exec: ^0.3.1 - built_value: ^8.0.4 - built_collection: ^5.0.0 - gql_code_builder: - git: - url: https://github.com/fersonality/flutter_gql.git - path: codegen/gql_code_builder - ferry: - ferry_cache: -dev_dependencies: - test: ^1.16.8 - build_runner: ^2.0.2 - pedantic: ^1.11.0 - built_value_generator: ^8.1.1 - dart_style: ^2.3.2 - ferry_generator: - -dependency_overrides: - gql_code_builder: - git: - url: https://github.com/fersonality/flutter_gql.git - path: codegen/gql_code_builder