graphql 1.9.0.pre1 → 1.9.0.pre2
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.
- checksums.yaml +4 -4
- data/lib/graphql.rb +5 -1
- data/lib/graphql/analysis/ast/analyzer.rb +1 -1
- data/lib/graphql/analysis/ast/visitor.rb +6 -1
- data/lib/graphql/backwards_compatibility.rb +1 -1
- data/lib/graphql/dig.rb +19 -0
- data/lib/graphql/directive.rb +13 -1
- data/lib/graphql/directive/include_directive.rb +1 -7
- data/lib/graphql/directive/skip_directive.rb +1 -8
- data/lib/graphql/execution/interpreter.rb +23 -13
- data/lib/graphql/execution/interpreter/resolve.rb +56 -0
- data/lib/graphql/execution/interpreter/runtime.rb +174 -74
- data/lib/graphql/execution/lazy.rb +7 -1
- data/lib/graphql/execution/lookahead.rb +71 -6
- data/lib/graphql/execution_error.rb +1 -1
- data/lib/graphql/introspection/entry_points.rb +5 -1
- data/lib/graphql/introspection/type_type.rb +4 -4
- data/lib/graphql/language.rb +0 -1
- data/lib/graphql/language/block_string.rb +37 -0
- data/lib/graphql/language/document_from_schema_definition.rb +1 -1
- data/lib/graphql/language/lexer.rb +55 -36
- data/lib/graphql/language/lexer.rl +8 -3
- data/lib/graphql/language/nodes.rb +27 -4
- data/lib/graphql/language/parser.rb +55 -55
- data/lib/graphql/language/parser.y +11 -11
- data/lib/graphql/language/printer.rb +1 -1
- data/lib/graphql/language/visitor.rb +22 -13
- data/lib/graphql/literal_validation_error.rb +6 -0
- data/lib/graphql/query.rb +13 -0
- data/lib/graphql/query/arguments.rb +2 -1
- data/lib/graphql/query/context.rb +3 -10
- data/lib/graphql/query/executor.rb +1 -1
- data/lib/graphql/query/validation_pipeline.rb +1 -1
- data/lib/graphql/relay/connection_resolve.rb +1 -1
- data/lib/graphql/relay/relation_connection.rb +1 -1
- data/lib/graphql/schema.rb +81 -11
- data/lib/graphql/schema/argument.rb +1 -1
- data/lib/graphql/schema/build_from_definition.rb +2 -4
- data/lib/graphql/schema/directive.rb +103 -0
- data/lib/graphql/schema/directive/feature.rb +66 -0
- data/lib/graphql/schema/directive/include.rb +25 -0
- data/lib/graphql/schema/directive/skip.rb +25 -0
- data/lib/graphql/schema/directive/transform.rb +48 -0
- data/lib/graphql/schema/enum_value.rb +2 -2
- data/lib/graphql/schema/field.rb +63 -17
- data/lib/graphql/schema/input_object.rb +1 -0
- data/lib/graphql/schema/member/base_dsl_methods.rb +4 -2
- data/lib/graphql/schema/member/build_type.rb +33 -1
- data/lib/graphql/schema/member/has_fields.rb +8 -73
- data/lib/graphql/schema/relay_classic_mutation.rb +6 -1
- data/lib/graphql/schema/resolver.rb +1 -1
- data/lib/graphql/static_validation.rb +2 -1
- data/lib/graphql/static_validation/all_rules.rb +1 -0
- data/lib/graphql/static_validation/base_visitor.rb +25 -10
- data/lib/graphql/static_validation/definition_dependencies.rb +3 -3
- data/lib/graphql/static_validation/{message.rb → error.rb} +11 -11
- data/lib/graphql/static_validation/interpreter_visitor.rb +14 -0
- data/lib/graphql/static_validation/literal_validator.rb +54 -11
- data/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb +34 -5
- data/lib/graphql/static_validation/rules/argument_literals_are_compatible_error.rb +31 -0
- data/lib/graphql/static_validation/rules/argument_names_are_unique.rb +2 -2
- data/lib/graphql/static_validation/rules/argument_names_are_unique_error.rb +30 -0
- data/lib/graphql/static_validation/rules/arguments_are_defined.rb +7 -1
- data/lib/graphql/static_validation/rules/arguments_are_defined_error.rb +35 -0
- data/lib/graphql/static_validation/rules/directives_are_defined.rb +5 -1
- data/lib/graphql/static_validation/rules/directives_are_defined_error.rb +29 -0
- data/lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb +11 -2
- data/lib/graphql/static_validation/rules/directives_are_in_valid_locations_error.rb +31 -0
- data/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb +11 -2
- data/lib/graphql/static_validation/rules/fields_are_defined_on_type_error.rb +32 -0
- data/lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb +14 -2
- data/lib/graphql/static_validation/rules/fields_have_appropriate_selections_error.rb +31 -0
- data/lib/graphql/static_validation/rules/fields_will_merge.rb +24 -6
- data/lib/graphql/static_validation/rules/fields_will_merge_error.rb +32 -0
- data/lib/graphql/static_validation/rules/fragment_names_are_unique.rb +5 -1
- data/lib/graphql/static_validation/rules/fragment_names_are_unique_error.rb +29 -0
- data/lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb +8 -1
- data/lib/graphql/static_validation/rules/fragment_spreads_are_possible_error.rb +35 -0
- data/lib/graphql/static_validation/rules/fragment_types_exist.rb +5 -1
- data/lib/graphql/static_validation/rules/fragment_types_exist_error.rb +29 -0
- data/lib/graphql/static_validation/rules/fragments_are_finite.rb +6 -1
- data/lib/graphql/static_validation/rules/fragments_are_finite_error.rb +29 -0
- data/lib/graphql/static_validation/rules/fragments_are_named.rb +4 -1
- data/lib/graphql/static_validation/rules/fragments_are_named_error.rb +26 -0
- data/lib/graphql/static_validation/rules/fragments_are_on_composite_types.rb +5 -1
- data/lib/graphql/static_validation/rules/fragments_are_on_composite_types_error.rb +30 -0
- data/lib/graphql/static_validation/rules/fragments_are_used.rb +13 -3
- data/lib/graphql/static_validation/rules/fragments_are_used_error.rb +29 -0
- data/lib/graphql/static_validation/rules/mutation_root_exists.rb +4 -1
- data/lib/graphql/static_validation/rules/mutation_root_exists_error.rb +26 -0
- data/lib/graphql/static_validation/rules/no_definitions_are_present.rb +2 -2
- data/lib/graphql/static_validation/rules/no_definitions_are_present_error.rb +25 -0
- data/lib/graphql/static_validation/rules/operation_names_are_valid.rb +9 -2
- data/lib/graphql/static_validation/rules/operation_names_are_valid_error.rb +28 -0
- data/lib/graphql/static_validation/rules/required_arguments_are_present.rb +7 -1
- data/lib/graphql/static_validation/rules/required_arguments_are_present_error.rb +35 -0
- data/lib/graphql/static_validation/rules/required_input_object_attributes_are_present.rb +47 -0
- data/lib/graphql/static_validation/rules/required_input_object_attributes_are_present_error.rb +35 -0
- data/lib/graphql/static_validation/rules/subscription_root_exists.rb +4 -1
- data/lib/graphql/static_validation/rules/subscription_root_exists_error.rb +26 -0
- data/lib/graphql/static_validation/rules/unique_directives_per_location.rb +4 -3
- data/lib/graphql/static_validation/rules/unique_directives_per_location_error.rb +29 -0
- data/lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed.rb +20 -6
- data/lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed_error.rb +39 -0
- data/lib/graphql/static_validation/rules/variable_names_are_unique.rb +5 -1
- data/lib/graphql/static_validation/rules/variable_names_are_unique_error.rb +29 -0
- data/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb +8 -1
- data/lib/graphql/static_validation/rules/variable_usages_are_allowed_error.rb +38 -0
- data/lib/graphql/static_validation/rules/variables_are_input_types.rb +12 -2
- data/lib/graphql/static_validation/rules/variables_are_input_types_error.rb +32 -0
- data/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb +18 -2
- data/lib/graphql/static_validation/rules/variables_are_used_and_defined_error.rb +37 -0
- data/lib/graphql/static_validation/validator.rb +24 -14
- data/lib/graphql/tracing/new_relic_tracing.rb +2 -2
- data/lib/graphql/tracing/skylight_tracing.rb +2 -2
- data/lib/graphql/unauthorized_field_error.rb +23 -0
- data/lib/graphql/version.rb +1 -1
- data/spec/graphql/analysis/ast_spec.rb +40 -0
- data/spec/graphql/authorization_spec.rb +93 -20
- data/spec/graphql/base_type_spec.rb +3 -1
- data/spec/graphql/execution/interpreter_spec.rb +127 -4
- data/spec/graphql/execution/lazy_spec.rb +49 -0
- data/spec/graphql/execution/lookahead_spec.rb +113 -21
- data/spec/graphql/execution/multiplex_spec.rb +2 -1
- data/spec/graphql/introspection/type_type_spec.rb +1 -1
- data/spec/graphql/language/lexer_spec.rb +72 -3
- data/spec/graphql/language/printer_spec.rb +18 -6
- data/spec/graphql/query/arguments_spec.rb +21 -0
- data/spec/graphql/query/context_spec.rb +10 -0
- data/spec/graphql/schema/build_from_definition_spec.rb +144 -29
- data/spec/graphql/schema/directive/feature_spec.rb +81 -0
- data/spec/graphql/schema/directive/transform_spec.rb +39 -0
- data/spec/graphql/schema/enum_spec.rb +5 -3
- data/spec/graphql/schema/field_extension_spec.rb +3 -3
- data/spec/graphql/schema/field_spec.rb +19 -0
- data/spec/graphql/schema/input_object_spec.rb +81 -0
- data/spec/graphql/schema/member/build_type_spec.rb +46 -0
- data/spec/graphql/schema/member/scoped_spec.rb +3 -3
- data/spec/graphql/schema/printer_spec.rb +244 -96
- data/spec/graphql/schema/relay_classic_mutation_spec.rb +26 -0
- data/spec/graphql/schema/resolver_spec.rb +1 -1
- data/spec/graphql/schema/warden_spec.rb +35 -11
- data/spec/graphql/static_validation/rules/argument_literals_are_compatible_spec.rb +212 -72
- data/spec/graphql/static_validation/rules/argument_names_are_unique_spec.rb +2 -2
- data/spec/graphql/static_validation/rules/arguments_are_defined_spec.rb +72 -29
- data/spec/graphql/static_validation/rules/directives_are_defined_spec.rb +4 -2
- data/spec/graphql/static_validation/rules/directives_are_in_valid_locations_spec.rb +4 -2
- data/spec/graphql/static_validation/rules/fields_are_defined_on_type_spec.rb +10 -5
- data/spec/graphql/static_validation/rules/fields_have_appropriate_selections_spec.rb +10 -5
- data/spec/graphql/static_validation/rules/fields_will_merge_spec.rb +2 -1
- data/spec/graphql/static_validation/rules/fragment_names_are_unique_spec.rb +2 -1
- data/spec/graphql/static_validation/rules/fragment_spreads_are_possible_spec.rb +6 -3
- data/spec/graphql/static_validation/rules/fragment_types_exist_spec.rb +4 -2
- data/spec/graphql/static_validation/rules/fragments_are_finite_spec.rb +4 -2
- data/spec/graphql/static_validation/rules/fragments_are_named_spec.rb +2 -1
- data/spec/graphql/static_validation/rules/fragments_are_on_composite_types_spec.rb +6 -3
- data/spec/graphql/static_validation/rules/fragments_are_used_spec.rb +22 -2
- data/spec/graphql/static_validation/rules/mutation_root_exists_spec.rb +2 -1
- data/spec/graphql/static_validation/rules/operation_names_are_valid_spec.rb +6 -3
- data/spec/graphql/static_validation/rules/required_arguments_are_present_spec.rb +13 -4
- data/spec/graphql/static_validation/rules/required_input_object_attributes_are_present_spec.rb +58 -0
- data/spec/graphql/static_validation/rules/subscription_root_exists_spec.rb +2 -1
- data/spec/graphql/static_validation/rules/unique_directives_per_location_spec.rb +14 -7
- data/spec/graphql/static_validation/rules/variable_default_values_are_correctly_typed_spec.rb +14 -7
- data/spec/graphql/static_validation/rules/variable_usages_are_allowed_spec.rb +8 -4
- data/spec/graphql/static_validation/rules/variables_are_input_types_spec.rb +8 -4
- data/spec/graphql/static_validation/rules/variables_are_used_and_defined_spec.rb +6 -3
- data/spec/graphql/static_validation/validator_spec.rb +6 -4
- data/spec/graphql/tracing/new_relic_tracing_spec.rb +10 -0
- data/spec/graphql/tracing/skylight_tracing_spec.rb +10 -0
- data/spec/graphql/types/iso_8601_date_time_spec.rb +1 -2
- data/spec/integration/mongoid/star_trek/schema.rb +5 -5
- data/spec/integration/rails/graphql/relay/relation_connection_spec.rb +37 -8
- data/spec/integration/rails/graphql/schema_spec.rb +2 -2
- data/spec/integration/rails/spec_helper.rb +10 -0
- data/spec/integration/tmp/app/graphql/types/bird_type.rb +7 -0
- data/spec/integration/tmp/dummy/Gemfile +45 -0
- data/spec/integration/tmp/dummy/README.rdoc +28 -0
- data/spec/integration/tmp/dummy/Rakefile +6 -0
- data/spec/integration/tmp/dummy/app/assets/javascripts/application.js +16 -0
- data/spec/integration/tmp/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/integration/tmp/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/integration/tmp/dummy/app/controllers/graphql_controller.rb +43 -0
- data/spec/integration/tmp/dummy/app/graphql/dummy_schema.rb +34 -0
- data/spec/integration/tmp/dummy/app/graphql/types/base_enum.rb +4 -0
- data/spec/integration/tmp/dummy/app/graphql/types/base_input_object.rb +4 -0
- data/spec/integration/tmp/dummy/app/graphql/types/base_interface.rb +5 -0
- data/spec/integration/tmp/dummy/app/graphql/types/base_object.rb +4 -0
- data/spec/integration/tmp/dummy/app/graphql/types/base_scalar.rb +4 -0
- data/spec/integration/tmp/dummy/app/graphql/types/base_union.rb +4 -0
- data/spec/integration/tmp/dummy/app/graphql/types/mutation_type.rb +10 -0
- data/spec/integration/tmp/dummy/app/graphql/types/query_type.rb +15 -0
- data/spec/integration/tmp/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/integration/tmp/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/integration/tmp/dummy/bin/bundle +3 -0
- data/spec/integration/tmp/dummy/bin/rails +4 -0
- data/spec/integration/tmp/dummy/bin/rake +4 -0
- data/spec/integration/tmp/dummy/bin/setup +29 -0
- data/spec/integration/tmp/dummy/config.ru +4 -0
- data/spec/integration/tmp/dummy/config/application.rb +32 -0
- data/spec/integration/tmp/dummy/config/boot.rb +3 -0
- data/spec/integration/tmp/dummy/config/environment.rb +5 -0
- data/spec/integration/tmp/dummy/config/environments/development.rb +38 -0
- data/spec/integration/tmp/dummy/config/environments/production.rb +76 -0
- data/spec/integration/tmp/dummy/config/environments/test.rb +42 -0
- data/spec/integration/tmp/dummy/config/initializers/assets.rb +11 -0
- data/spec/integration/tmp/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/integration/tmp/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/integration/tmp/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/integration/tmp/dummy/config/initializers/inflections.rb +16 -0
- data/spec/integration/tmp/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/integration/tmp/dummy/config/initializers/session_store.rb +3 -0
- data/spec/integration/tmp/dummy/config/initializers/to_time_preserves_timezone.rb +10 -0
- data/spec/integration/tmp/dummy/config/initializers/wrap_parameters.rb +9 -0
- data/spec/integration/tmp/dummy/config/locales/en.yml +23 -0
- data/spec/integration/tmp/dummy/config/routes.rb +61 -0
- data/spec/integration/tmp/dummy/config/secrets.yml +22 -0
- data/spec/integration/tmp/dummy/db/seeds.rb +7 -0
- data/spec/integration/tmp/dummy/public/404.html +67 -0
- data/spec/integration/tmp/dummy/public/422.html +67 -0
- data/spec/integration/tmp/dummy/public/500.html +66 -0
- data/spec/integration/tmp/dummy/public/favicon.ico +0 -0
- data/spec/integration/tmp/dummy/public/robots.txt +5 -0
- data/spec/support/dummy/schema.rb +2 -2
- data/spec/support/error_bubbling_helpers.rb +23 -0
- data/spec/support/jazz.rb +53 -6
- data/spec/support/lazy_helpers.rb +26 -8
- data/spec/support/new_relic.rb +3 -0
- data/spec/support/skylight.rb +3 -0
- data/spec/support/star_wars/schema.rb +13 -9
- data/spec/support/static_validation_helpers.rb +3 -1
- metadata +145 -22
- data/lib/graphql/language/comments.rb +0 -45
- data/spec/graphql/schema/member/has_fields_spec.rb +0 -132
- data/spec/integration/tmp/app/graphql/types/family_type.rb +0 -9
@@ -37,9 +37,9 @@
|
|
37
37
|
QUOTE = '"';
|
38
38
|
BLOCK_QUOTE = '"""';
|
39
39
|
ESCAPED_BLOCK_QUOTE = '\\"""';
|
40
|
-
BLOCK_STRING_CHAR = (ESCAPED_BLOCK_QUOTE | ^
|
40
|
+
BLOCK_STRING_CHAR = (ESCAPED_BLOCK_QUOTE | ^QUOTE | QUOTE{1,2} ^QUOTE);
|
41
41
|
ESCAPED_QUOTE = '\\"';
|
42
|
-
STRING_CHAR = (ESCAPED_QUOTE | ^
|
42
|
+
STRING_CHAR = (ESCAPED_QUOTE | ^QUOTE);
|
43
43
|
VAR_SIGN = '$';
|
44
44
|
DIR_SIGN = '@';
|
45
45
|
ELLIPSIS = '...';
|
@@ -49,7 +49,7 @@
|
|
49
49
|
AMP = '&';
|
50
50
|
|
51
51
|
QUOTED_STRING = QUOTE STRING_CHAR* QUOTE;
|
52
|
-
BLOCK_STRING = BLOCK_QUOTE BLOCK_STRING_CHAR* BLOCK_QUOTE;
|
52
|
+
BLOCK_STRING = BLOCK_QUOTE BLOCK_STRING_CHAR* QUOTE{0,2} BLOCK_QUOTE;
|
53
53
|
# catch-all for anything else. must be at the bottom for precedence.
|
54
54
|
UNKNOWN_CHAR = /./;
|
55
55
|
|
@@ -200,9 +200,13 @@ module GraphQL
|
|
200
200
|
quotes_length = block ? 3 : 1
|
201
201
|
ts += quotes_length
|
202
202
|
value = meta[:data][ts...te - quotes_length].pack(PACK_DIRECTIVE).force_encoding(UTF_8_ENCODING)
|
203
|
+
line_incr = 0
|
203
204
|
if block
|
205
|
+
line_incr = value.count("\n")
|
204
206
|
value = GraphQL::Language::BlockString.trim_whitespace(value)
|
205
207
|
end
|
208
|
+
# TODO: replace with `String#match?` when we support only Ruby 2.4+
|
209
|
+
# (It's faster: https://bugs.ruby-lang.org/issues/8110)
|
206
210
|
if value !~ VALID_STRING
|
207
211
|
meta[:tokens] << token = GraphQL::Language::Token.new(
|
208
212
|
name: :BAD_UNICODE_ESCAPE,
|
@@ -225,6 +229,7 @@ module GraphQL
|
|
225
229
|
|
226
230
|
meta[:previous_token] = token
|
227
231
|
meta[:col] += te - ts
|
232
|
+
meta[:line] += line_incr
|
228
233
|
end
|
229
234
|
end
|
230
235
|
end
|
@@ -8,8 +8,18 @@ module GraphQL
|
|
8
8
|
# - `children` returns all AST nodes attached to this one. Used for tree traversal.
|
9
9
|
# - `scalars` returns all scalar (Ruby) values attached to this one. Used for comparing nodes.
|
10
10
|
# - `to_query_string` turns an AST node into a GraphQL string
|
11
|
-
|
12
11
|
class AbstractNode
|
12
|
+
module DefinitionNode
|
13
|
+
# This AST node's {#line} returns the first line, which may be the description.
|
14
|
+
# @return [Integer] The first line of the definition (not the description)
|
15
|
+
attr_reader :definition_line
|
16
|
+
|
17
|
+
def initialize(options = {})
|
18
|
+
@definition_line = options.delete(:definition_line)
|
19
|
+
super(options)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
13
23
|
attr_reader :line, :col, :filename
|
14
24
|
|
15
25
|
# Initialize a node by extracting its position,
|
@@ -35,14 +45,16 @@ module GraphQL
|
|
35
45
|
other.children.eql?(self.children)
|
36
46
|
end
|
37
47
|
|
48
|
+
NO_CHILDREN = [].freeze
|
49
|
+
|
38
50
|
# @return [Array<GraphQL::Language::Nodes::AbstractNode>] all nodes in the tree below this one
|
39
51
|
def children
|
40
|
-
|
52
|
+
NO_CHILDREN
|
41
53
|
end
|
42
54
|
|
43
55
|
# @return [Array<Integer, Float, String, Boolean, Array>] Scalar values attached to this node
|
44
56
|
def scalars
|
45
|
-
|
57
|
+
NO_CHILDREN
|
46
58
|
end
|
47
59
|
|
48
60
|
# This might be unnecessary, but its easiest to add it here.
|
@@ -267,7 +279,7 @@ module GraphQL
|
|
267
279
|
# @return [String, Float, Integer, Boolean, Array, InputObject] The value passed for this key
|
268
280
|
|
269
281
|
def children
|
270
|
-
|
282
|
+
@children ||= Array(value).flatten.select { |v| v.is_a?(AbstractNode) }
|
271
283
|
end
|
272
284
|
end
|
273
285
|
|
@@ -280,6 +292,7 @@ module GraphQL
|
|
280
292
|
end
|
281
293
|
|
282
294
|
class DirectiveDefinition < AbstractNode
|
295
|
+
include DefinitionNode
|
283
296
|
attr_reader :description
|
284
297
|
scalar_methods :name
|
285
298
|
children_methods(
|
@@ -507,6 +520,7 @@ module GraphQL
|
|
507
520
|
end
|
508
521
|
|
509
522
|
class SchemaDefinition < AbstractNode
|
523
|
+
include DefinitionNode
|
510
524
|
scalar_methods :query, :mutation, :subscription
|
511
525
|
children_methods({
|
512
526
|
directives: GraphQL::Language::Nodes::Directive,
|
@@ -527,6 +541,7 @@ module GraphQL
|
|
527
541
|
end
|
528
542
|
|
529
543
|
class ScalarTypeDefinition < AbstractNode
|
544
|
+
include DefinitionNode
|
530
545
|
attr_reader :description
|
531
546
|
scalar_methods :name
|
532
547
|
children_methods({
|
@@ -548,6 +563,7 @@ module GraphQL
|
|
548
563
|
end
|
549
564
|
|
550
565
|
class InputValueDefinition < AbstractNode
|
566
|
+
include DefinitionNode
|
551
567
|
attr_reader :description
|
552
568
|
scalar_methods :name, :type, :default_value
|
553
569
|
children_methods({
|
@@ -559,6 +575,7 @@ module GraphQL
|
|
559
575
|
end
|
560
576
|
|
561
577
|
class FieldDefinition < AbstractNode
|
578
|
+
include DefinitionNode
|
562
579
|
attr_reader :description
|
563
580
|
scalar_methods :name, :type
|
564
581
|
children_methods({
|
@@ -581,6 +598,7 @@ module GraphQL
|
|
581
598
|
end
|
582
599
|
|
583
600
|
class ObjectTypeDefinition < AbstractNode
|
601
|
+
include DefinitionNode
|
584
602
|
attr_reader :description
|
585
603
|
scalar_methods :name, :interfaces
|
586
604
|
children_methods({
|
@@ -604,6 +622,7 @@ module GraphQL
|
|
604
622
|
end
|
605
623
|
|
606
624
|
class InterfaceTypeDefinition < AbstractNode
|
625
|
+
include DefinitionNode
|
607
626
|
attr_reader :description
|
608
627
|
scalar_methods :name
|
609
628
|
children_methods({
|
@@ -627,6 +646,7 @@ module GraphQL
|
|
627
646
|
end
|
628
647
|
|
629
648
|
class UnionTypeDefinition < AbstractNode
|
649
|
+
include DefinitionNode
|
630
650
|
attr_reader :description, :types
|
631
651
|
scalar_methods :name
|
632
652
|
children_methods({
|
@@ -649,6 +669,7 @@ module GraphQL
|
|
649
669
|
end
|
650
670
|
|
651
671
|
class EnumValueDefinition < AbstractNode
|
672
|
+
include DefinitionNode
|
652
673
|
attr_reader :description
|
653
674
|
scalar_methods :name
|
654
675
|
children_methods({
|
@@ -660,6 +681,7 @@ module GraphQL
|
|
660
681
|
end
|
661
682
|
|
662
683
|
class EnumTypeDefinition < AbstractNode
|
684
|
+
include DefinitionNode
|
663
685
|
attr_reader :description
|
664
686
|
scalar_methods :name
|
665
687
|
children_methods({
|
@@ -683,6 +705,7 @@ module GraphQL
|
|
683
705
|
end
|
684
706
|
|
685
707
|
class InputObjectTypeDefinition < AbstractNode
|
708
|
+
include DefinitionNode
|
686
709
|
attr_reader :description
|
687
710
|
scalar_methods :name
|
688
711
|
children_methods({
|
@@ -476,24 +476,24 @@ racc_action_default = [
|
|
476
476
|
-93, -97, -99, -99, -165, -160 ]
|
477
477
|
|
478
478
|
racc_goto_table = [
|
479
|
-
10, 72, 59, 10, 91, 195, 129,
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
171,
|
484
|
-
|
485
|
-
|
486
|
-
117,
|
487
|
-
|
488
|
-
148, 150, 151,
|
489
|
-
|
490
|
-
|
491
|
-
nil, nil, 172, 180,
|
492
|
-
nil, 202,
|
493
|
-
nil, nil,
|
494
|
-
202, nil, nil, 202, nil, nil, nil, nil, nil,
|
495
|
-
nil, nil, nil,
|
496
|
-
nil, nil, nil,
|
479
|
+
10, 72, 59, 10, 91, 195, 129, 164, 133, 68,
|
480
|
+
102, 203, 283, 259, 227, 202, 92, 175, 119, 37,
|
481
|
+
125, 235, 37, 274, 182, 270, 245, 135, 271, 99,
|
482
|
+
274, 274, 301, 140, 118, 271, 141, 132, 304, 153,
|
483
|
+
171, 139, 152, 143, 145, 147, 149, 161, 97, 2,
|
484
|
+
167, 134, 288, 236, 311, 103, 88, 159, 246, 175,
|
485
|
+
95, 256, 99, 231, 177, 202, 266, 240, 4, 313,
|
486
|
+
117, 39, 247, 165, 121, 281, 241, 127, 179, 1,
|
487
|
+
276, 248, 249, 252, 40, 202, 183, 3, 144, 146,
|
488
|
+
148, 150, 151, 258, 154, 155, 156, 157, 286, 99,
|
489
|
+
292, 137, 202, 99, 255, 99, 251, 99, 124, 99,
|
490
|
+
221, 170, 294, 224, 67, 173, nil, 91, nil, nil,
|
491
|
+
nil, nil, 172, 180, 264, nil, 41, 65, nil, nil,
|
492
|
+
nil, 202, 264, nil, 189, 137, nil, 202, 137, 99,
|
493
|
+
nil, nil, 264, nil, nil, nil, nil, 197, nil, nil,
|
494
|
+
202, nil, nil, 202, nil, nil, nil, nil, nil, nil,
|
495
|
+
nil, nil, nil, 264, nil, nil, nil, nil, 201, nil,
|
496
|
+
nil, nil, nil, 264, nil, 65, nil, 137, nil, nil,
|
497
497
|
nil, nil, nil, nil, nil, nil, nil, 100, nil, nil,
|
498
498
|
104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
|
499
499
|
114, 115, nil, nil, nil, nil, 238, 242, 308, 122,
|
@@ -520,24 +520,24 @@ racc_goto_table = [
|
|
520
520
|
nil, nil, nil, nil, nil, nil, 309, nil, 293 ]
|
521
521
|
|
522
522
|
racc_goto_check = [
|
523
|
-
10, 13, 15, 10, 23, 79, 19,
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
19,
|
528
|
-
|
529
|
-
|
530
|
-
13,
|
531
|
-
|
532
|
-
13, 13, 13,
|
533
|
-
|
534
|
-
|
535
|
-
nil, nil, 15, 13,
|
536
|
-
nil, 29,
|
537
|
-
nil, nil,
|
538
|
-
29, nil, nil, 29, nil, nil, nil, nil, nil,
|
539
|
-
nil, nil, nil,
|
540
|
-
nil, nil, nil,
|
523
|
+
10, 13, 15, 10, 23, 79, 19, 22, 19, 28,
|
524
|
+
48, 36, 20, 45, 71, 29, 27, 55, 18, 32,
|
525
|
+
35, 71, 32, 78, 76, 30, 71, 54, 31, 49,
|
526
|
+
78, 78, 21, 70, 17, 31, 72, 14, 21, 70,
|
527
|
+
19, 48, 72, 48, 48, 48, 48, 18, 13, 2,
|
528
|
+
35, 27, 45, 73, 21, 13, 12, 14, 73, 55,
|
529
|
+
28, 36, 49, 76, 54, 29, 71, 33, 4, 20,
|
530
|
+
13, 4, 33, 27, 13, 81, 74, 13, 48, 1,
|
531
|
+
71, 74, 74, 22, 11, 29, 77, 3, 13, 13,
|
532
|
+
13, 13, 13, 44, 13, 13, 13, 13, 36, 49,
|
533
|
+
47, 10, 29, 49, 43, 49, 19, 49, 34, 49,
|
534
|
+
14, 13, 79, 14, 50, 13, nil, 23, nil, nil,
|
535
|
+
nil, nil, 15, 13, 80, nil, 16, 16, nil, nil,
|
536
|
+
nil, 29, 80, nil, 13, 10, nil, 29, 10, 49,
|
537
|
+
nil, nil, 80, nil, nil, nil, nil, 13, nil, nil,
|
538
|
+
29, nil, nil, 29, nil, nil, nil, nil, nil, nil,
|
539
|
+
nil, nil, nil, 80, nil, nil, nil, nil, 10, nil,
|
540
|
+
nil, nil, nil, 80, nil, 16, nil, 10, nil, nil,
|
541
541
|
nil, nil, nil, nil, nil, nil, nil, 16, nil, nil,
|
542
542
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
|
543
543
|
16, 16, nil, nil, nil, nil, 32, 32, 19, 16,
|
@@ -564,15 +564,15 @@ racc_goto_check = [
|
|
564
564
|
nil, nil, nil, nil, nil, nil, 16, nil, 16 ]
|
565
565
|
|
566
566
|
racc_goto_pointer = [
|
567
|
-
nil,
|
568
|
-
0,
|
569
|
-
-
|
570
|
-
-
|
571
|
-
nil, nil, nil, -
|
572
|
-
|
567
|
+
nil, 79, 49, 87, 68, nil, nil, nil, nil, nil,
|
568
|
+
0, 74, 16, -18, -60, -9, 116, -55, -71, -90,
|
569
|
+
-239, -252, -114, -55, nil, nil, nil, -49, -6, -153,
|
570
|
+
-213, -212, 19, -120, 14, -74, -157, nil, nil, nil,
|
571
|
+
nil, nil, nil, -114, -126, -206, nil, -161, -63, -40,
|
572
|
+
99, nil, nil, nil, -74, -118, nil, nil, nil, nil,
|
573
573
|
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
574
|
-
-
|
575
|
-
-
|
574
|
+
-72, -164, -69, -133, -112, nil, -118, -56, -218, -153,
|
575
|
+
-103, -175 ]
|
576
576
|
|
577
577
|
racc_goto_default = [
|
578
578
|
nil, nil, nil, nil, nil, 5, 6, 7, 8, 9,
|
@@ -1246,7 +1246,7 @@ module_eval(<<'.,.,', 'parser.y', 116)
|
|
1246
1246
|
|
1247
1247
|
module_eval(<<'.,.,', 'parser.y', 159)
|
1248
1248
|
def _reduce_60(val, _values, result)
|
1249
|
-
return make_node(:EnumValueDefinition, name: val[1], directives: val[2], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
1249
|
+
return make_node(:EnumValueDefinition, name: val[1], directives: val[2], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
1250
1250
|
result
|
1251
1251
|
end
|
1252
1252
|
.,.,
|
@@ -1572,7 +1572,7 @@ module_eval(<<'.,.,', 'parser.y', 273)
|
|
1572
1572
|
|
1573
1573
|
module_eval(<<'.,.,', 'parser.y', 282)
|
1574
1574
|
def _reduce_113(val, _values, result)
|
1575
|
-
return make_node(:SchemaDefinition, position_source: val[0], directives: val[1], **val[3])
|
1575
|
+
return make_node(:SchemaDefinition, position_source: val[0], definition_line: val[0].line, directives: val[1], **val[3])
|
1576
1576
|
result
|
1577
1577
|
end
|
1578
1578
|
.,.,
|
@@ -1734,7 +1734,7 @@ module_eval(<<'.,.,', 'parser.y', 338)
|
|
1734
1734
|
|
1735
1735
|
module_eval(<<'.,.,', 'parser.y', 348)
|
1736
1736
|
def _reduce_149(val, _values, result)
|
1737
|
-
return make_node(:ScalarTypeDefinition, name: val[2], directives: val[3], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
1737
|
+
return make_node(:ScalarTypeDefinition, name: val[2], directives: val[3], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
1738
1738
|
|
1739
1739
|
result
|
1740
1740
|
end
|
@@ -1742,7 +1742,7 @@ module_eval(<<'.,.,', 'parser.y', 348)
|
|
1742
1742
|
|
1743
1743
|
module_eval(<<'.,.,', 'parser.y', 353)
|
1744
1744
|
def _reduce_150(val, _values, result)
|
1745
|
-
return make_node(:ObjectTypeDefinition, name: val[2], interfaces: val[3], directives: val[4], fields: val[6], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
1745
|
+
return make_node(:ObjectTypeDefinition, name: val[2], interfaces: val[3], directives: val[4], fields: val[6], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
1746
1746
|
|
1747
1747
|
result
|
1748
1748
|
end
|
@@ -1808,7 +1808,7 @@ module_eval(<<'.,.,', 'parser.y', 371)
|
|
1808
1808
|
|
1809
1809
|
module_eval(<<'.,.,', 'parser.y', 375)
|
1810
1810
|
def _reduce_160(val, _values, result)
|
1811
|
-
return make_node(:InputValueDefinition, name: val[1], type: val[3], default_value: val[4], directives: val[5], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
1811
|
+
return make_node(:InputValueDefinition, name: val[1], type: val[3], default_value: val[4], directives: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
1812
1812
|
|
1813
1813
|
result
|
1814
1814
|
end
|
@@ -1844,7 +1844,7 @@ module_eval(<<'.,.,', 'parser.y', 384)
|
|
1844
1844
|
|
1845
1845
|
module_eval(<<'.,.,', 'parser.y', 388)
|
1846
1846
|
def _reduce_165(val, _values, result)
|
1847
|
-
return make_node(:FieldDefinition, name: val[1], arguments: val[2], type: val[4], directives: val[5], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
1847
|
+
return make_node(:FieldDefinition, name: val[1], arguments: val[2], type: val[4], directives: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
1848
1848
|
|
1849
1849
|
result
|
1850
1850
|
end
|
@@ -1873,7 +1873,7 @@ module_eval(<<'.,.,', 'parser.y', 394)
|
|
1873
1873
|
|
1874
1874
|
module_eval(<<'.,.,', 'parser.y', 398)
|
1875
1875
|
def _reduce_169(val, _values, result)
|
1876
|
-
return make_node(:InterfaceTypeDefinition, name: val[2], directives: val[3], fields: val[5], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
1876
|
+
return make_node(:InterfaceTypeDefinition, name: val[2], directives: val[3], fields: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
1877
1877
|
|
1878
1878
|
result
|
1879
1879
|
end
|
@@ -1895,7 +1895,7 @@ module_eval(<<'.,.,', 'parser.y', 403)
|
|
1895
1895
|
|
1896
1896
|
module_eval(<<'.,.,', 'parser.y', 407)
|
1897
1897
|
def _reduce_172(val, _values, result)
|
1898
|
-
return make_node(:UnionTypeDefinition, name: val[2], directives: val[3], types: val[5], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
1898
|
+
return make_node(:UnionTypeDefinition, name: val[2], directives: val[3], types: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
1899
1899
|
|
1900
1900
|
result
|
1901
1901
|
end
|
@@ -1903,7 +1903,7 @@ module_eval(<<'.,.,', 'parser.y', 407)
|
|
1903
1903
|
|
1904
1904
|
module_eval(<<'.,.,', 'parser.y', 412)
|
1905
1905
|
def _reduce_173(val, _values, result)
|
1906
|
-
return make_node(:EnumTypeDefinition, name: val[2], directives: val[3], values: val[5], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
1906
|
+
return make_node(:EnumTypeDefinition, name: val[2], directives: val[3], values: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
1907
1907
|
|
1908
1908
|
result
|
1909
1909
|
end
|
@@ -1911,7 +1911,7 @@ module_eval(<<'.,.,', 'parser.y', 412)
|
|
1911
1911
|
|
1912
1912
|
module_eval(<<'.,.,', 'parser.y', 417)
|
1913
1913
|
def _reduce_174(val, _values, result)
|
1914
|
-
return make_node(:InputObjectTypeDefinition, name: val[2], directives: val[3], fields: val[5], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
1914
|
+
return make_node(:InputObjectTypeDefinition, name: val[2], directives: val[3], fields: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
1915
1915
|
|
1916
1916
|
result
|
1917
1917
|
end
|
@@ -1919,7 +1919,7 @@ module_eval(<<'.,.,', 'parser.y', 417)
|
|
1919
1919
|
|
1920
1920
|
module_eval(<<'.,.,', 'parser.y', 422)
|
1921
1921
|
def _reduce_175(val, _values, result)
|
1922
|
-
return make_node(:DirectiveDefinition, name: val[3], arguments: val[4], locations: val[6], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
1922
|
+
return make_node(:DirectiveDefinition, name: val[3], arguments: val[4], locations: val[6], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
1923
1923
|
|
1924
1924
|
result
|
1925
1925
|
end
|
@@ -157,7 +157,7 @@ rule
|
|
157
157
|
| schema_keyword
|
158
158
|
|
159
159
|
enum_value_definition:
|
160
|
-
description_opt enum_name directives_list_opt { return make_node(:EnumValueDefinition, name: val[1], directives: val[2], description: val[0] || get_description(val[1]), position_source: val[0] || val[1]) }
|
160
|
+
description_opt enum_name directives_list_opt { return make_node(:EnumValueDefinition, name: val[1], directives: val[2], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1]) }
|
161
161
|
|
162
162
|
enum_value_definitions:
|
163
163
|
enum_value_definition { return [val[0]] }
|
@@ -280,7 +280,7 @@ rule
|
|
280
280
|
| directive_definition
|
281
281
|
|
282
282
|
schema_definition:
|
283
|
-
SCHEMA directives_list_opt LCURLY operation_type_definition_list RCURLY { return make_node(:SchemaDefinition, position_source: val[0], directives: val[1], **val[3]) }
|
283
|
+
SCHEMA directives_list_opt LCURLY operation_type_definition_list RCURLY { return make_node(:SchemaDefinition, position_source: val[0], definition_line: val[0].line, directives: val[1], **val[3]) }
|
284
284
|
|
285
285
|
operation_type_definition_list:
|
286
286
|
operation_type_definition
|
@@ -346,12 +346,12 @@ rule
|
|
346
346
|
|
347
347
|
scalar_type_definition:
|
348
348
|
description_opt SCALAR name directives_list_opt {
|
349
|
-
return make_node(:ScalarTypeDefinition, name: val[2], directives: val[3], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
349
|
+
return make_node(:ScalarTypeDefinition, name: val[2], directives: val[3], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
350
350
|
}
|
351
351
|
|
352
352
|
object_type_definition:
|
353
353
|
description_opt TYPE name implements_opt directives_list_opt LCURLY field_definition_list RCURLY {
|
354
|
-
return make_node(:ObjectTypeDefinition, name: val[2], interfaces: val[3], directives: val[4], fields: val[6], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
354
|
+
return make_node(:ObjectTypeDefinition, name: val[2], interfaces: val[3], directives: val[4], fields: val[6], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
355
355
|
}
|
356
356
|
|
357
357
|
implements_opt:
|
@@ -373,7 +373,7 @@ rule
|
|
373
373
|
|
374
374
|
input_value_definition:
|
375
375
|
description_opt name COLON type default_value_opt directives_list_opt {
|
376
|
-
return make_node(:InputValueDefinition, name: val[1], type: val[3], default_value: val[4], directives: val[5], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
376
|
+
return make_node(:InputValueDefinition, name: val[1], type: val[3], default_value: val[4], directives: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
377
377
|
}
|
378
378
|
|
379
379
|
input_value_definition_list:
|
@@ -386,7 +386,7 @@ rule
|
|
386
386
|
|
387
387
|
field_definition:
|
388
388
|
description_opt name arguments_definitions_opt COLON type directives_list_opt {
|
389
|
-
return make_node(:FieldDefinition, name: val[1], arguments: val[2], type: val[4], directives: val[5], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
389
|
+
return make_node(:FieldDefinition, name: val[1], arguments: val[2], type: val[4], directives: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
390
390
|
}
|
391
391
|
|
392
392
|
field_definition_list:
|
@@ -396,7 +396,7 @@ rule
|
|
396
396
|
|
397
397
|
interface_type_definition:
|
398
398
|
description_opt INTERFACE name directives_list_opt LCURLY field_definition_list RCURLY {
|
399
|
-
return make_node(:InterfaceTypeDefinition, name: val[2], directives: val[3], fields: val[5], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
399
|
+
return make_node(:InterfaceTypeDefinition, name: val[2], directives: val[3], fields: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
400
400
|
}
|
401
401
|
|
402
402
|
union_members:
|
@@ -405,22 +405,22 @@ rule
|
|
405
405
|
|
406
406
|
union_type_definition:
|
407
407
|
description_opt UNION name directives_list_opt EQUALS union_members {
|
408
|
-
return make_node(:UnionTypeDefinition, name: val[2], directives: val[3], types: val[5], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
408
|
+
return make_node(:UnionTypeDefinition, name: val[2], directives: val[3], types: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
409
409
|
}
|
410
410
|
|
411
411
|
enum_type_definition:
|
412
412
|
description_opt ENUM name directives_list_opt LCURLY enum_value_definitions RCURLY {
|
413
|
-
return make_node(:EnumTypeDefinition, name: val[2], directives: val[3], values: val[5], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
413
|
+
return make_node(:EnumTypeDefinition, name: val[2], directives: val[3], values: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
414
414
|
}
|
415
415
|
|
416
416
|
input_object_type_definition:
|
417
417
|
description_opt INPUT name directives_list_opt LCURLY input_value_definition_list RCURLY {
|
418
|
-
return make_node(:InputObjectTypeDefinition, name: val[2], directives: val[3], fields: val[5], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
418
|
+
return make_node(:InputObjectTypeDefinition, name: val[2], directives: val[3], fields: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
419
419
|
}
|
420
420
|
|
421
421
|
directive_definition:
|
422
422
|
description_opt DIRECTIVE DIR_SIGN name arguments_definitions_opt ON directive_locations {
|
423
|
-
return make_node(:DirectiveDefinition, name: val[3], arguments: val[4], locations: val[6], description: val[0] || get_description(val[1]), position_source: val[0] || val[1])
|
423
|
+
return make_node(:DirectiveDefinition, name: val[3], arguments: val[4], locations: val[6], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
|
424
424
|
}
|
425
425
|
|
426
426
|
directive_locations:
|