graphql 1.12.25 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of graphql might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/generators/graphql/mutation_generator.rb +1 -1
- data/lib/generators/graphql/type_generator.rb +0 -1
- data/lib/graphql/analysis/ast/field_usage.rb +4 -8
- data/lib/graphql/analysis/ast/query_complexity.rb +10 -14
- data/lib/graphql/analysis/ast/visitor.rb +4 -4
- data/lib/graphql/backtrace/table.rb +1 -1
- data/lib/graphql/dataloader.rb +55 -22
- data/lib/graphql/directive.rb +0 -4
- data/lib/graphql/enum_type.rb +5 -1
- data/lib/graphql/execution/errors.rb +1 -0
- data/lib/graphql/execution/interpreter/arguments.rb +1 -1
- data/lib/graphql/execution/interpreter/arguments_cache.rb +2 -2
- data/lib/graphql/execution/interpreter/runtime.rb +20 -12
- data/lib/graphql/execution/lookahead.rb +2 -2
- data/lib/graphql/execution/multiplex.rb +1 -1
- data/lib/graphql/introspection/directive_type.rb +1 -1
- data/lib/graphql/introspection/entry_points.rb +2 -2
- data/lib/graphql/introspection/enum_value_type.rb +2 -2
- data/lib/graphql/introspection/field_type.rb +2 -2
- data/lib/graphql/introspection/input_value_type.rb +4 -4
- data/lib/graphql/introspection/schema_type.rb +2 -2
- data/lib/graphql/introspection/type_type.rb +10 -10
- data/lib/graphql/language/block_string.rb +0 -4
- data/lib/graphql/language/document_from_schema_definition.rb +4 -2
- data/lib/graphql/language/lexer.rb +0 -3
- data/lib/graphql/language/lexer.rl +0 -4
- data/lib/graphql/language/nodes.rb +3 -14
- data/lib/graphql/language/parser.rb +442 -434
- data/lib/graphql/language/parser.y +5 -4
- data/lib/graphql/language/printer.rb +6 -1
- data/lib/graphql/language/sanitized_printer.rb +5 -5
- data/lib/graphql/language/token.rb +0 -4
- data/lib/graphql/name_validator.rb +0 -4
- data/lib/graphql/query/arguments.rb +1 -1
- data/lib/graphql/query/arguments_cache.rb +1 -1
- data/lib/graphql/query/context.rb +5 -2
- data/lib/graphql/query/literal_input.rb +1 -1
- data/lib/graphql/query/null_context.rb +12 -7
- data/lib/graphql/query/serial_execution/field_resolution.rb +1 -1
- data/lib/graphql/query/variables.rb +5 -1
- data/lib/graphql/relay/edges_instrumentation.rb +0 -1
- data/lib/graphql/rubocop/graphql/base_cop.rb +36 -0
- data/lib/graphql/rubocop/graphql/default_null_true.rb +43 -0
- data/lib/graphql/rubocop/graphql/default_required_true.rb +43 -0
- data/lib/graphql/rubocop.rb +4 -0
- data/lib/graphql/schema/addition.rb +37 -28
- data/lib/graphql/schema/argument.rb +11 -9
- data/lib/graphql/schema/build_from_definition.rb +12 -13
- data/lib/graphql/schema/directive/feature.rb +1 -1
- data/lib/graphql/schema/directive/flagged.rb +2 -2
- data/lib/graphql/schema/directive/include.rb +1 -1
- data/lib/graphql/schema/directive/skip.rb +1 -1
- data/lib/graphql/schema/directive/transform.rb +1 -1
- data/lib/graphql/schema/directive.rb +2 -6
- data/lib/graphql/schema/enum.rb +57 -9
- data/lib/graphql/schema/enum_value.rb +5 -1
- data/lib/graphql/schema/field/connection_extension.rb +1 -1
- data/lib/graphql/schema/field.rb +92 -18
- data/lib/graphql/schema/find_inherited_value.rb +1 -0
- data/lib/graphql/schema/finder.rb +5 -5
- data/lib/graphql/schema/input_object.rb +11 -13
- data/lib/graphql/schema/interface.rb +8 -19
- data/lib/graphql/schema/member/accepts_definition.rb +8 -1
- data/lib/graphql/schema/member/build_type.rb +0 -4
- data/lib/graphql/schema/member/has_arguments.rb +55 -13
- data/lib/graphql/schema/member/has_deprecation_reason.rb +1 -1
- data/lib/graphql/schema/member/has_fields.rb +76 -18
- data/lib/graphql/schema/member/has_interfaces.rb +90 -0
- data/lib/graphql/schema/member.rb +1 -0
- data/lib/graphql/schema/object.rb +7 -74
- data/lib/graphql/schema/printer.rb +1 -1
- data/lib/graphql/schema/relay_classic_mutation.rb +29 -3
- data/lib/graphql/schema/resolver/has_payload_type.rb +27 -2
- data/lib/graphql/schema/resolver.rb +19 -5
- data/lib/graphql/schema/subscription.rb +11 -1
- data/lib/graphql/schema/type_expression.rb +1 -1
- data/lib/graphql/schema/type_membership.rb +18 -4
- data/lib/graphql/schema/union.rb +6 -1
- data/lib/graphql/schema/validator/format_validator.rb +0 -4
- data/lib/graphql/schema/validator/numericality_validator.rb +1 -0
- data/lib/graphql/schema/warden.rb +116 -52
- data/lib/graphql/schema.rb +87 -15
- data/lib/graphql/static_validation/base_visitor.rb +5 -5
- data/lib/graphql/static_validation/definition_dependencies.rb +0 -1
- data/lib/graphql/static_validation/literal_validator.rb +1 -1
- data/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb +1 -1
- data/lib/graphql/static_validation/rules/fields_will_merge.rb +8 -15
- data/lib/graphql/static_validation/rules/required_arguments_are_present.rb +1 -3
- data/lib/graphql/static_validation/rules/required_input_object_attributes_are_present.rb +4 -4
- data/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb +7 -7
- data/lib/graphql/subscriptions/action_cable_subscriptions.rb +6 -4
- data/lib/graphql/subscriptions/event.rb +20 -12
- data/lib/graphql/subscriptions.rb +17 -19
- data/lib/graphql/types/relay/has_node_field.rb +1 -1
- data/lib/graphql/types/relay/has_nodes_field.rb +1 -1
- data/lib/graphql/version.rb +1 -1
- data/lib/graphql.rb +9 -31
- metadata +14 -6
@@ -34,6 +34,7 @@ module GraphQL
|
|
34
34
|
schema: @schema,
|
35
35
|
context: schema_context,
|
36
36
|
)
|
37
|
+
schema_context.warden = @warden
|
37
38
|
end
|
38
39
|
|
39
40
|
def document
|
@@ -87,6 +88,7 @@ module GraphQL
|
|
87
88
|
def build_interface_type_node(interface_type)
|
88
89
|
GraphQL::Language::Nodes::InterfaceTypeDefinition.new(
|
89
90
|
name: interface_type.graphql_name,
|
91
|
+
interfaces: warden.interfaces(interface_type).sort_by(&:graphql_name).map { |type| build_type_name_node(type) },
|
90
92
|
description: interface_type.description,
|
91
93
|
fields: build_field_nodes(warden.fields(interface_type)),
|
92
94
|
directives: directives(interface_type),
|
@@ -194,7 +196,7 @@ module GraphQL
|
|
194
196
|
when "INPUT_OBJECT"
|
195
197
|
GraphQL::Language::Nodes::InputObject.new(
|
196
198
|
arguments: default_value.to_h.map do |arg_name, arg_value|
|
197
|
-
arg_type =
|
199
|
+
arg_type = @warden.arguments(type).find { |a| a.graphql_name == arg_name.to_s }.type
|
198
200
|
GraphQL::Language::Nodes::Argument.new(
|
199
201
|
name: arg_name.to_s,
|
200
202
|
value: build_default_value(arg_value, arg_type)
|
@@ -295,7 +297,7 @@ module GraphQL
|
|
295
297
|
else
|
296
298
|
member.directives.map do |dir|
|
297
299
|
args = []
|
298
|
-
dir.arguments.argument_values.each_value do |arg_value|
|
300
|
+
dir.arguments.argument_values.each_value do |arg_value| # rubocop:disable Development/ContextIsPassedCop -- directive instance method
|
299
301
|
arg_defn = arg_value.definition
|
300
302
|
if arg_defn.default_value? && arg_value.value == arg_defn.default_value
|
301
303
|
next
|
@@ -133,8 +133,6 @@ module GraphQL
|
|
133
133
|
end
|
134
134
|
|
135
135
|
class << self
|
136
|
-
# rubocop:disable Development/NoEvalCop This eval takes static inputs at load-time
|
137
|
-
|
138
136
|
# Add a default `#visit_method` and `#children_method_name` using the class name
|
139
137
|
def inherited(child_class)
|
140
138
|
super
|
@@ -199,16 +197,7 @@ module GraphQL
|
|
199
197
|
else
|
200
198
|
module_eval <<-RUBY, __FILE__, __LINE__
|
201
199
|
def children
|
202
|
-
@children ||=
|
203
|
-
if #{children_of_type.keys.map { |k| "@#{k}.any?" }.join(" || ")}
|
204
|
-
new_children = []
|
205
|
-
#{children_of_type.keys.map { |k| "new_children.concat(@#{k})" }.join("; ")}
|
206
|
-
new_children.freeze
|
207
|
-
new_children
|
208
|
-
else
|
209
|
-
NO_CHILDREN
|
210
|
-
end
|
211
|
-
end
|
200
|
+
@children ||= (#{children_of_type.keys.map { |k| "@#{k}" }.join(" + ")}).freeze
|
212
201
|
end
|
213
202
|
RUBY
|
214
203
|
end
|
@@ -278,7 +267,6 @@ module GraphQL
|
|
278
267
|
RUBY
|
279
268
|
end
|
280
269
|
end
|
281
|
-
# rubocop:enable Development/NoEvalCop
|
282
270
|
end
|
283
271
|
end
|
284
272
|
|
@@ -479,7 +467,6 @@ module GraphQL
|
|
479
467
|
end
|
480
468
|
end
|
481
469
|
|
482
|
-
|
483
470
|
# A list type definition, denoted with `[...]` (used for variable type definitions)
|
484
471
|
class ListType < WrapperType
|
485
472
|
end
|
@@ -630,6 +617,7 @@ module GraphQL
|
|
630
617
|
attr_reader :description
|
631
618
|
scalar_methods :name
|
632
619
|
children_methods({
|
620
|
+
interfaces: GraphQL::Language::Nodes::TypeName,
|
633
621
|
directives: GraphQL::Language::Nodes::Directive,
|
634
622
|
fields: GraphQL::Language::Nodes::FieldDefinition,
|
635
623
|
})
|
@@ -639,6 +627,7 @@ module GraphQL
|
|
639
627
|
class InterfaceTypeExtension < AbstractNode
|
640
628
|
scalar_methods :name
|
641
629
|
children_methods({
|
630
|
+
interfaces: GraphQL::Language::Nodes::TypeName,
|
642
631
|
directives: GraphQL::Language::Nodes::Directive,
|
643
632
|
fields: GraphQL::Language::Nodes::FieldDefinition,
|
644
633
|
})
|