Skip to content

Latest commit

 

History

History
257 lines (180 loc) · 15.7 KB

CHANGELOG.md

File metadata and controls

257 lines (180 loc) · 15.7 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Added

  • Add the @namespace directive as a replacement for the removed @group directive nuwave#768
  • The @defer extension now supports deferring nested fields of mutations nuwave#855
  • Add a simple way to define complex validation directives by extending \Nuwave\Lighthouse\Schema\Directives\ValidationDirective nuwave#846
  • Extend the @belongsToMany directive to support pivot data on a custom Relay style Edge type nuwave#871
  • Implement connect, disconnect and delete operations for nested mutations upon MorphTo relationships nuwave#879

Fixed

  • Avoid growing the memory extensively when doing complex AST manipulation nuwave#768
  • Make nested mutations work with subclassed relationship types nuwave#825
  • Allow empty arrays and other falsy values as input for nested mutation operations like "sync" nuwave#830
  • Use Illuminate\Contracts\Config\Repository instead of Illuminate\Config\Repository nuwave#832
  • Allow checking the abilities with @can when issuing mass updates on multiple models nuwave#838
  • Allow use of private in @cache directive even when the user is not authenticated nuwave#843
  • Fix Lumen route registration nuwave#853
  • Fix handling of @include directive, it is semantically opposite to @skip, when using it with @defer nuwave#855
  • Allow querying for null values using @whereConstraints nuwave#872

Changed

  • Bumped the requirement on webonyx/graphql-php to ^0.13.2 nuwave#768
  • Rename directive interfaces dealing with types from Node* to Type* nuwave#768
  • Change the signature of the AST manipulating directive interfaces: TypeManipulator, FieldManipulator and ArgManipulator nuwave#768
  • Change the API of the DocumentAST class to enable a more performant implementation nuwave#768
  • Enable the schema caching option lighthouse.cache.enable by default nuwave#768
  • Lazily load types from the schema. Directives defined on parts of the schema that are not used within the current query are no longer run on every request nuwave#768
  • Simplify the default route configuration. Make sure to review your config/lighthouse.php and bring it up to date with the latest changes in the base configuration file nuwave#820
  • Move SubscriptionExceptionHandler into namespace Nuwave\Lighthouse\Subscriptions\Contracts nuwave#819
  • The pagination field argument that controls the amount of results now default tos first instead of count. The config pagination_amount_argument can be used to change the argument name nuwave#852
  • Rename ArgValidationDirective to ProvidesRules and drop get prefix from the methods within nuwave#846
  • Make the argument used for finding a model to check @can against configurable. The previous behaviour of implicitely using the id argument for finding a specific model to authorize against now no longer works. nuwave#856
  • Change the Nuwave\Lighthouse\Schema\Types\LaravelEnumType wrapper to map to Enum instances internally nuwave#908

Removed

  • Remove @group directive in favour of @middleware and @namespace nuwave#768
  • Remove the ArgFilterDirective interface in favour of the ArgBuilderDirective interface nuwave#821
  • Remove the old style @whereBetween and @whereNotBetween directives nuwave#821
  • Use the @spread directive instead of the flatten argument of @create/@update nuwave#822
  • Remove dispatch aliases fire and class for dispatching through @event nuwave#823
  • Remove the GraphQL facade and the container alias graphql nuwave#824
  • Remove the alias if for specifying the ability that has to be met in @can nuwave#838

Deprecated

  • The configuration option pagination_amount_argument will be removed in v5

Added

  • Add compatibility layer to allow @middleware to support Lumen nuwave#786
  • Add option decode to @globaldId to control the result of decoding nuwave#796
  • Add config option cache.ttl for customizing expiration time of schema cache nuwave#801
  • Extract test helpers into a reusable trait \Nuwave\Lighthouse\Testing\MakesGraphQLRequests nuwave#802
  • Support custom rule classes in @rules and @rulesForArray nuwave#812

Fixed

  • Fix querying for falsy values through @whereConstraints nuwave#800
  • Use Illuminate\Contracts\Events\Dispatcher instead of concrete implementation in SubscriptionBroadcaster nuwave#805

Deprecated

  • The GraphQL facade and the container alias graphql will be removed in v4

Fixed

  • Use the spec-compliant default deprecation reason for @deprecate directive nuwave#787

Added

Deprecated

  • The controller config option will be removed in v4 nuwave#781

Fixed

  • Respect the model's connection for database transaction during @create and @update nuwave#777

Fixed

  • You can now omit an input argument from a query that uses the @spread directive without getting an error nuwave#774

Deprecated

  • The class SubscriptionExceptionHandler will be moved to the namespace Nuwave\Lighthouse\Subscriptions\Contracts

Fixed

  • Throw error if pagination amount <= 0 is requested nuwave#765

Changed

  • Default the config to always set the Accept: application/json header nuwave#743
  • Declare a single named route which handles POST/GET instead of 2 separate routes nuwave#738
  • Apply the nested operations within a nested mutation in a consistent order that makes sense nuwave#754

Deprecated

  • The pagination field argument that controls the amount of results will default to first instead of count in v4. The config pagination_amount_argument can be used to change the argument name now nuwave#752

Fixed

  • Instantiate the ErrorBuffer directly, its dependencies can not be resolved through the container nuwave#756
  • Refresh GraphQLRequest singleton between multiple requests to prevent a common error in test execution nuwave#761

3.4.0 - 2019-04-18

Added

  • Allow rebinding a custom GlobalId resolver nuwave#739

3.3.0 - 2019-04-15

Added

  • Sync existing models in belongsToMany relations using nested mutations when creating nuwave#707
  • Add @spread directive to reshape nested input arguments nuwave#680
  • Add flexible @builder directive to quickly specify a single method to apply constraints to the query builder nuwave#680
  • Add new_between_directives config to use the new between directives now nuwave#680

Deprecated

  • Use the @spread instead of the flatten argument of @create/@update nuwave#680
  • Prefer usage of the ArgBuilderDirective instead of the ArgFilterDirective nuwave#680
  • @whereBetween and @whereNotBetween will take a single input object instead of being spread across two args nuwave#680

3.2.1 - 2019-04-12

Changed

  • Flatten the namespace for the built-in directives nuwave#700

3.2.0 - 2019-04-10

Added

  • Sync and connect existing models in morphToMany relations using nested mutations nuwave#707

3.1.0 - 2019-04-07

Added

  • Adapt to the new Laravel way and add an alias dispatch for the @event directive nuwave#719

Deprecated

  • Aliases fire and class for dispatching through @event nuwave#719

3.0.0 - 2019-04-03

Added

  • Support Subscriptions nuwave#337
  • Support @defer client directive nuwave#422
  • Define validation for list arguments themselves through @rulesForArray nuwave#427
  • The @hasMany and @paginator directives now support an additional argument defaultCount that sets a default value for the generated field argument count nuwave#428
  • Allow user to be guest when using the @can directive nuwave#431
  • Add shortcut to get NodeValue type definition fields nuwave#432
  • Use @inject with dot notation to set nested value nuwave#511
  • Populate more relationship types through nested mutations nuwave#514 nuwave#549
  • Support the @deprecated directive nuwave#522
  • Allow defining default namespaces as an array nuwave#525
  • Add config & directive argument for @paginate to limit the maximum requested count nuwave#569
  • Add guard argument to @auth directive nuwave#584
  • Support Laravel 5.8 nuwave#626
  • Support File Uploads nuwave#628
  • Add lifecycle events to hook into the execution nuwave#645
  • Add @orderBy argument directive for client-side dynamic ordering nuwave#659
  • Enable passing in model instance to @can directive nuwave#684
  • Allow swapping out the default resolver nuwave#690

Changed

  • Change the default schema location, model and GraphQL namespaces nuwave#423
  • Construction and methods of the Field|Node|Arg-Value objects nuwave#425
  • The methods called with @method now receive the same 4 resolver arguments that all other resolvers do nuwave#486
  • Handle mutating directives transactional by default nuwave#512
  • Nested mutations for BelongsTo require wrapping the ID in a connect argument nuwave#514 nuwave#549
  • Make the error messages returned by @can more friendly nuwave#515
  • Bump requirements for webonyx/graphql-php to ^0.13 and PHP to >= 7.1 nuwave#517
  • Replace DirectiveRegistry with DirectiveFactory to lazy load directives nuwave#520
  • Extensions must registered through ServiceProviders instead of the config file nuwave#645
  • Increase tracing precision when nanoseconds are available nuwave#674

Fixed

  • Diverging paths of nested input objects can now have distinct validation rules nuwave#427
  • Distinguish between FieldDefinitions and InputObjectValues in AST handling nuwave#425
  • Set the date in the Date scalar to startOfDay, fixes equality checks nuwave#452
  • Use primary key defined in model to execute update nuwave#469
  • Consider batched queries when using BatchLoader nuwave#508
  • Refresh newly created models before returning them nuwave#509
  • Prevent name conflict between argument names and non-relation methods when executing nested mutations nuwave#519
  • Prevent crash when invalid JSON variables are given nuwave#581
  • Handle pagination with Laravel Scout correctly nuwave#661
  • Handle schema defined default values for enum types correctly nuwave#689

Removed

  • Remove the previously broken @validate directive in favour of @rules nuwave#427
  • Remove broken user mutations from the default schema nuwave#435
  • Remove deprecated methods nuwave#435
  • Limit the @field directive to using the resolver argument nuwave#435
  • Remove the @security directive in favour of defining security options through the config nuwave#435
  • Rename the resolver argument of @interface and @union to resolveType nuwave#435
  • Remove deprecated Traits nuwave#435

Pre-v3

We just started maintaining a changelog starting from v3.

If someone wants to make one for previous versions, PR's are welcome.