Added
- Add the
@namespace
directive as a replacement for the removed@group
directive #768 - The
@defer
extension now supports deferring nested fields of mutations #855 - Add a simple way to define complex validation directives by extending
\Nuwave\Lighthouse\Schema\Directives\ValidationDirective
#846
Fixed
- Avoid growing the memory extensively when doing complex AST manipulation #768
- Make nested mutations work with subclassed relationship types #825
- Allow empty arrays and other falsy values as input for nested mutation operations like "sync" #830
- Use
Illuminate\Contracts\Config\Repository
instead ofIlluminate\Config\Repository
#832 - Allow checking the abilities with
@can
when issuing mass updates on multiple models #838 - Allow use of
private
in@cache
directive even when the user is not authenticated #843 - Fix Lumen route registration #853
- Fix handling of
@include
directive, it is semantically opposite to@skip
, when using it with@defer
#855
Changed
- Bumped the requirement on
webonyx/graphql-php
to^0.13.2
#768 - Rename directive interfaces dealing with types from
Node*
toType*
#768 - Change the signature of the AST manipulating directive interfaces:
TypeManipulator
,FieldManipulator
andArgManipulator
#768 - Change the API of the
DocumentAST
class to enable a more performant implementation #768 - Enable the schema caching option
lighthouse.cache.enable
by default #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 #768 - Simplify the default route configuration.
Make sure to review yourconfig/lighthouse.php
and bring it up to date
with the latest changes in the base configuration file #820 - Move
SubscriptionExceptionHandler
into namespaceNuwave\Lighthouse\Subscriptions\Contracts
#819 - The pagination field argument that controls the amount of results
now default tosfirst
instead ofcount
. The configpagination_amount_argument
can be used to change the argument name #852 - Rename
ArgValidationDirective
toProvidesRules
and dropget
prefix from the methods within #846 - Make the argument used for finding a model to check @can against configurable.
The previous behaviour of implicitely using theid
argument for finding a specific
model to authorize against now no longer works. #856
Removed
- Remove
@group
directive in favour of@middleware
and@namespace
#768 - Remove the
ArgFilterDirective
interface in favour of theArgBuilderDirective
interface #821 - Remove the old style
@whereBetween
and@whereNotBetween
directives #821 - Use the
@spread
directive instead of theflatten
argument of@create
/@update
#822 - Remove
dispatch
aliasesfire
andclass
for dispatching through@event
#823 - Remove the
GraphQL
facade and the container aliasgraphql
#824 - Remove the alias
if
for specifying theability
that has to be met in@can
#838
Deprecated
- The configuration option
pagination_amount_argument
will be removed in v5