graphql 0.16.1 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/lib/graphql/analysis/query_complexity.rb +20 -13
  3. data/lib/graphql/analysis/query_depth.rb +2 -2
  4. data/lib/graphql/argument.rb +7 -2
  5. data/lib/graphql/base_type.rb +2 -1
  6. data/lib/graphql/boolean_type.rb +1 -0
  7. data/lib/graphql/define/assign_object_field.rb +19 -6
  8. data/lib/graphql/define/instance_definable.rb +44 -3
  9. data/lib/graphql/directive.rb +2 -6
  10. data/lib/graphql/enum_type.rb +11 -14
  11. data/lib/graphql/field.rb +47 -12
  12. data/lib/graphql/field/resolve.rb +57 -0
  13. data/lib/graphql/float_type.rb +2 -0
  14. data/lib/graphql/id_type.rb +2 -0
  15. data/lib/graphql/input_object_type.rb +5 -1
  16. data/lib/graphql/int_type.rb +2 -0
  17. data/lib/graphql/interface_type.rb +1 -1
  18. data/lib/graphql/internal_representation/node.rb +18 -29
  19. data/lib/graphql/internal_representation/rewrite.rb +7 -4
  20. data/lib/graphql/introspection/field_type.rb +1 -1
  21. data/lib/graphql/introspection/input_value_type.rb +1 -1
  22. data/lib/graphql/language/parser.rb +161 -136
  23. data/lib/graphql/language/parser.y +9 -1
  24. data/lib/graphql/object_type.rb +2 -2
  25. data/lib/graphql/query.rb +4 -4
  26. data/lib/graphql/query/directive_resolution.rb +2 -2
  27. data/lib/graphql/query/serial_execution/execution_context.rb +3 -2
  28. data/lib/graphql/query/serial_execution/field_resolution.rb +2 -5
  29. data/lib/graphql/query/serial_execution/selection_resolution.rb +1 -1
  30. data/lib/graphql/query/serial_execution/value_resolution.rb +2 -2
  31. data/lib/graphql/scalar_type.rb +2 -0
  32. data/lib/graphql/schema/timeout_middleware.rb +1 -0
  33. data/lib/graphql/string_type.rb +2 -0
  34. data/lib/graphql/union_type.rb +1 -1
  35. data/lib/graphql/version.rb +1 -1
  36. data/readme.md +1 -3
  37. data/spec/graphql/analysis/query_complexity_spec.rb +41 -5
  38. data/spec/graphql/define/instance_definable_spec.rb +2 -2
  39. data/spec/graphql/field_spec.rb +18 -0
  40. data/spec/graphql/internal_representation/rewrite_spec.rb +7 -6
  41. data/spec/graphql/language/parser_spec.rb +5 -0
  42. data/spec/graphql/query/serial_execution/execution_context_spec.rb +2 -1
  43. data/spec/graphql/schema/timeout_middleware_spec.rb +29 -28
  44. data/spec/support/dairy_app.rb +12 -10
  45. metadata +3 -3
  46. data/lib/graphql/internal_representation/definition.rb +0 -0
@@ -1,5 +1,7 @@
1
1
  GraphQL::FLOAT_TYPE = GraphQL::ScalarType.define do
2
2
  name "Float"
3
+ description "Represents signed double-precision fractional values as specified by [IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point)."
4
+
3
5
  coerce_input -> (value) { value.is_a?(Numeric) ? value.to_f : nil }
4
6
  coerce_result -> (value) { value.to_f }
5
7
  end
@@ -1,5 +1,7 @@
1
1
  GraphQL::ID_TYPE = GraphQL::ScalarType.define do
2
2
  name "ID"
3
+ description "Represents a unique identifier that is Base64 obfuscated. It is often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `\"VXNlci0xMA==\"`) or integer (such as `4`) input value will be accepted as an ID."
4
+
3
5
  coerce_result -> (value) { value.to_s }
4
6
  coerce_input -> (value) {
5
7
  case value
@@ -15,7 +15,11 @@ module GraphQL
15
15
  )
16
16
 
17
17
  # @return [Hash<String => GraphQL::Argument>] Map String argument names to their {GraphQL::Argument} implementations
18
- attr_accessor :arguments
18
+ def arguments
19
+ ensure_defined
20
+ @arguments
21
+ end
22
+ attr_writer :arguments
19
23
 
20
24
  alias :input_fields :arguments
21
25
 
@@ -1,5 +1,7 @@
1
1
  GraphQL::INT_TYPE = GraphQL::ScalarType.define do
2
2
  name "Int"
3
+ description "Represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1."
4
+
3
5
  coerce_input -> (value) { value.is_a?(Numeric) ? value.to_i : nil }
4
6
  coerce_result -> (value) { value.to_i }
5
7
  end
@@ -15,7 +15,7 @@ module GraphQL
15
15
  include GraphQL::BaseType::HasPossibleTypes
16
16
  accepts_definitions :resolve_type, field: GraphQL::Define::AssignObjectField
17
17
 
18
- attr_accessor :fields
18
+ lazy_defined_attr_accessor :fields
19
19
 
20
20
  def initialize
21
21
  @fields = {}
@@ -3,12 +3,13 @@ require "set"
3
3
  module GraphQL
4
4
  module InternalRepresentation
5
5
  class Node
6
- def initialize(ast_node:, return_type: nil, on_types: Set.new, name: nil, definition: nil, children: {}, spreads: [], directives: Set.new)
6
+ def initialize(ast_node: nil, return_type: nil, name: nil, definition_name: nil, definitions: {}, children: {}, spreads: [], directives: Set.new)
7
+ # Make sure these are kept in sync with #dup
7
8
  @ast_node = ast_node
8
9
  @return_type = return_type
9
- @on_types = on_types
10
10
  @name = name
11
- @definition = definition
11
+ @definition_name = definition_name
12
+ @definitions = definitions
12
13
  @children = children
13
14
  @spreads = spreads
14
15
  @directives = directives
@@ -22,32 +23,33 @@ module GraphQL
22
23
  # @return [Set<GraphQL::Language::Nodes::Directive>]
23
24
  attr_reader :directives
24
25
 
25
- # @return [GraphQL::Field, GraphQL::Directive] The definition to use to execute this node
26
- attr_reader :definition
26
+ # @return [String] the name for this node's definition ({#name} may be a field's alias, this is always the name)
27
+ attr_reader :definition_name
27
28
 
28
- # @return [String] the name to use for the result in the response hash
29
- attr_reader :name
30
-
31
- # @return [GraphQL::Language::Nodes::AbstractNode] The AST node (or one of the nodes) where this was derived from
32
- attr_reader :ast_node
33
-
34
- # This may come from the previous field's return value or an explicitly-typed fragment
29
+ # A cache of type-field pairs for executing & analyzing this node
30
+ #
35
31
  # @example On-type from previous return value
36
32
  # {
37
33
  # person(id: 1) {
38
- # firstName # => on_type is person
34
+ # firstName # => defined type is person
39
35
  # }
40
36
  # }
41
37
  # @example On-type from explicit type condition
42
38
  # {
43
39
  # node(id: $nodeId) {
44
40
  # ... on Nameable {
45
- # firstName # => on_type is Nameable
41
+ # firstName # => defined type is Nameable
46
42
  # }
47
43
  # }
48
44
  # }
49
- # @return [Set<GraphQL::ObjectType, GraphQL::InterfaceType>] the types this field applies to
50
- attr_reader :on_types
45
+ # @return [Hash<GraphQL::BaseType => GraphQL::Field>] definitions to use for each possible type
46
+ attr_reader :definitions
47
+
48
+ # @return [String] the name to use for the result in the response hash
49
+ attr_reader :name
50
+
51
+ # @return [GraphQL::Language::Nodes::AbstractNode] The AST node (or one of the nodes) where this was derived from
52
+ attr_reader :ast_node
51
53
 
52
54
  # @return [GraphQL::BaseType]
53
55
  attr_reader :return_type
@@ -63,19 +65,6 @@ module GraphQL
63
65
  end
64
66
  self_inspect
65
67
  end
66
-
67
- def dup
68
- self.class.new({
69
- ast_node: ast_node,
70
- return_type: return_type,
71
- on_types: on_types,
72
- name: name,
73
- definition: definition,
74
- children: children,
75
- spreads: spreads,
76
- directives: directives,
77
- })
78
- end
79
68
  end
80
69
  end
81
70
  end
@@ -35,6 +35,7 @@ module GraphQL
35
35
  node = Node.new(
36
36
  return_type: context.type_definition.unwrap,
37
37
  ast_node: ast_node,
38
+ name: ast_node.name,
38
39
  )
39
40
  @nodes.push(node)
40
41
  @operations[ast_node.name] = node
@@ -51,10 +52,11 @@ module GraphQL
51
52
  return_type: context.type_definition && context.type_definition.unwrap,
52
53
  ast_node: ast_node,
53
54
  name: node_name,
54
- definition: context.field_definition,
55
+ definition_name: ast_node.name,
55
56
  )
56
57
  end
57
- node.on_types.add(context.parent_type_definition.unwrap)
58
+ object_type = context.parent_type_definition.unwrap
59
+ node.definitions[object_type] = context.field_definition
58
60
  @nodes.push(node)
59
61
  @parent_directives.push([])
60
62
  }
@@ -68,8 +70,9 @@ module GraphQL
68
70
  if @parent_directives.any?
69
71
  @parent_directives.last << Node.new(
70
72
  name: ast_node.name,
73
+ definition_name: ast_node.name,
71
74
  ast_node: ast_node,
72
- definition: context.directive_definition,
75
+ definitions: [context.directive_definition]
73
76
  )
74
77
  end
75
78
  }
@@ -167,7 +170,7 @@ module GraphQL
167
170
  # Merge `node` into `parent_node`'s children, as `name`, applying `extra_directives`
168
171
  def deep_merge_child(parent_node, name, node, extra_directives)
169
172
  child_node = parent_node.children[name] ||= node.dup
170
- child_node.on_types.merge(node.on_types)
173
+ child_node.definitions.merge!(node.definitions)
171
174
  node.children.each do |merge_child_name, merge_child_node|
172
175
  deep_merge_child(child_node, merge_child_name, merge_child_node, [])
173
176
  end
@@ -7,6 +7,6 @@ GraphQL::Introspection::FieldType = GraphQL::ObjectType.define do
7
7
  field :isDeprecated, !types.Boolean, "Is this field deprecated?" do
8
8
  resolve -> (obj, a, c) { !!obj.deprecation_reason }
9
9
  end
10
- field :args, field: GraphQL::Introspection::ArgumentsField
10
+ field :args, GraphQL::Introspection::ArgumentsField
11
11
  field :deprecationReason, types.String, "Why this field was deprecated", property: :deprecation_reason
12
12
  end
@@ -3,7 +3,7 @@ GraphQL::Introspection::InputValueType = GraphQL::ObjectType.define do
3
3
  description "An input for a field or InputObject"
4
4
  field :name, !types.String, "The key for this value"
5
5
  field :description, types.String, "What this value is used for"
6
- field :type, -> { !GraphQL::Introspection::TypeType }, "The expected type for this value"
6
+ field :type, !GraphQL::Introspection::TypeType, "The expected type for this value"
7
7
  field :defaultValue, types.String, "The value applied if no other value is provided" do
8
8
  resolve -> (obj, args, ctx) {
9
9
  value = obj.default_value
@@ -12,7 +12,7 @@ module GraphQL
12
12
  module Language
13
13
  class Parser < Racc::Parser
14
14
 
15
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 222)
15
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 230)
16
16
 
17
17
  def initialize(query_string)
18
18
  @query_string = query_string
@@ -75,136 +75,142 @@ end
75
75
  ##### State transition tables begin ###
76
76
 
77
77
  racc_action_table = [
78
- 24, 25, 26, 111, 43, 46, 112, 42, 76, 24,
79
- 25, 26, 39, 19, 20, 21, 22, 23, 24, 25,
80
- 26, 43, 34, 20, 21, 22, 23, 111, 46, 120,
81
- 27, 19, 20, 21, 22, 23, 24, 25, 26, 46,
82
- 34, 68, 54, 80, 50, 24, 25, 26, 43, 48,
83
- 20, 21, 22, 23, 12, 12, 12, 46, 19, 20,
84
- 21, 22, 23, 24, 25, 26, 12, 38, 24, 25,
85
- 26, 100, 46, 36, 12, 46, 19, 20, 21, 22,
86
- 23, 19, 20, 21, 22, 23, 24, 25, 26, 12,
87
- 14, 24, 25, 26, 118, 54, 46, 46, 106, 19,
88
- 20, 21, 22, 23, 19, 20, 21, 22, 23, 24,
89
- 25, 26, nil, nil, nil, nil, nil, nil, nil, 24,
90
- 25, 26, 19, 20, 21, 22, 23, 100, 24, 25,
91
- 26, nil, 19, 20, 21, 22, 23, nil, nil, nil,
92
- 116, 19, 20, 21, 22, 23, 24, 25, 26, nil,
93
- 74, 24, 25, 26, nil, nil, 24, 25, 26, 19,
94
- 20, 21, 22, 23, 19, 20, 21, 22, 23, 19,
95
- 20, 21, 22, 23, 24, 25, 26, nil, nil, 24,
96
- 25, 26, nil, 57, nil, nil, nil, 19, 20, 21,
97
- 22, 23, 19, 20, 21, 22, 23, 9, 10, 11,
98
- nil, nil, nil, nil, 92, nil, nil, 93, 12, nil,
99
- 94, nil, 13, 95, nil, 86, 87, 83, 84, 85,
100
- 92, nil, nil, 93, 103, nil, 94, nil, nil, 95,
101
- nil, 86, 87, 83, 84, 85, 92, nil, nil, 93,
102
- nil, nil, 94, nil, nil, 95, nil, 86, 87, 83,
103
- 84, 85, 92, nil, nil, 93, 114, nil, 94, nil,
104
- nil, 95, nil, 86, 87, 83, 84, 85, 9, 10,
105
- 11, nil, nil, nil, nil, 92, nil, nil, 93, 12,
106
- nil, 94, nil, 13, 95, nil, 86, 87, 83, 84,
107
- 85 ]
78
+ 24, 25, 26, 43, 117, 12, 42, 118, 76, 24,
79
+ 25, 26, 27, 19, 20, 21, 22, 23, 24, 25,
80
+ 26, 43, 34, 20, 21, 22, 23, 117, 46, 126,
81
+ 39, 19, 20, 21, 22, 23, 24, 25, 26, 46,
82
+ 34, 68, 54, 80, 46, 46, 46, 12, 54, 48,
83
+ 20, 21, 22, 23, 99, 100, 101, 46, 12, 92,
84
+ 46, 50, 93, 43, 12, 94, 38, 98, 96, 97,
85
+ 86, 87, 83, 84, 85, 99, 100, 101, 36, 46,
86
+ 92, 124, 14, 93, 120, 12, 94, 12, 98, 96,
87
+ 97, 86, 87, 83, 84, 85, 99, 100, 101, nil,
88
+ nil, 92, nil, nil, 93, nil, nil, 94, nil, 98,
89
+ 96, 97, 86, 87, 83, 84, 85, 99, 100, 101,
90
+ nil, nil, 92, nil, nil, 93, 109, nil, 94, nil,
91
+ 98, 96, 97, 86, 87, 83, 84, 85, 99, 100,
92
+ 101, nil, nil, 92, nil, nil, 93, nil, nil, 94,
93
+ nil, 98, 96, 97, 86, 87, 83, 84, 85, 24,
94
+ 25, 26, nil, nil, nil, 24, 25, 26, nil, nil,
95
+ nil, nil, 19, 20, 21, 22, 23, 112, 19, 20,
96
+ 21, 22, 23, 24, 25, 26, nil, nil, nil, 24,
97
+ 25, 26, nil, nil, nil, nil, 19, 20, 21, 22,
98
+ 23, 122, 19, 20, 21, 22, 23, 24, 25, 26,
99
+ nil, nil, nil, nil, nil, 106, nil, 24, 25, 26,
100
+ 19, 20, 21, 22, 23, 106, 24, 25, 26, nil,
101
+ 19, 20, 21, 22, 23, 24, 25, 26, nil, 19,
102
+ 20, 21, 22, 23, nil, nil, nil, nil, 19, 20,
103
+ 21, 22, 23, 24, 25, 26, nil, 57, 24, 25,
104
+ 26, nil, 74, 24, 25, 26, 19, 20, 21, 22,
105
+ 23, 19, 20, 21, 22, 23, 19, 20, 21, 22,
106
+ 23, 24, 25, 26, nil, nil, 24, 25, 26, nil,
107
+ nil, nil, nil, nil, 19, 20, 21, 22, 23, 19,
108
+ 20, 21, 22, 23, 9, 10, 11, 9, 10, 11,
109
+ nil, nil, nil, nil, nil, 12, nil, nil, 12, 13,
110
+ nil, nil, 13 ]
108
111
 
109
112
  racc_action_check = [
110
- 28, 28, 28, 98, 33, 73, 98, 33, 60, 50,
111
- 50, 50, 28, 28, 28, 28, 28, 28, 12, 12,
112
- 12, 62, 28, 50, 50, 50, 50, 113, 64, 113,
113
- 12, 12, 12, 12, 12, 12, 34, 34, 34, 66,
114
- 12, 52, 52, 70, 35, 54, 54, 54, 56, 34,
115
- 34, 34, 34, 34, 78, 79, 55, 34, 54, 54,
116
- 54, 54, 54, 100, 100, 100, 81, 16, 13, 13,
117
- 13, 100, 44, 14, 51, 37, 100, 100, 100, 100,
118
- 100, 13, 13, 13, 13, 13, 94, 94, 94, 49,
119
- 1, 92, 92, 92, 109, 38, 47, 41, 94, 94,
120
- 94, 94, 94, 94, 92, 92, 92, 92, 92, 7,
121
- 7, 7, nil, nil, nil, nil, nil, nil, nil, 80,
122
- 80, 80, 7, 7, 7, 7, 7, 80, 107, 107,
123
- 107, nil, 80, 80, 80, 80, 80, nil, nil, nil,
124
- 107, 107, 107, 107, 107, 107, 58, 58, 58, nil,
125
- 58, 48, 48, 48, nil, nil, 46, 46, 46, 58,
126
- 58, 58, 58, 58, 48, 48, 48, 48, 48, 46,
127
- 46, 46, 46, 46, 42, 42, 42, nil, nil, 43,
128
- 43, 43, nil, 43, nil, nil, nil, 42, 42, 42,
129
- 42, 42, 43, 43, 43, 43, 43, 0, 0, 0,
130
- nil, nil, nil, nil, 118, nil, nil, 118, 0, nil,
131
- 118, nil, 0, 118, nil, 118, 118, 118, 118, 118,
132
- 93, nil, nil, 93, 93, nil, 93, nil, nil, 93,
133
- nil, 93, 93, 93, 93, 93, 112, nil, nil, 112,
134
- nil, nil, 112, nil, nil, 112, nil, 112, 112, 112,
135
- 112, 112, 104, nil, nil, 104, 104, nil, 104, nil,
136
- nil, 104, nil, 104, 104, 104, 104, 104, 3, 3,
137
- 3, nil, nil, nil, nil, 76, nil, nil, 76, 3,
138
- nil, 76, nil, 3, 76, nil, 76, 76, 76, 76,
139
- 76 ]
113
+ 12, 12, 12, 33, 104, 78, 33, 104, 60, 50,
114
+ 50, 50, 12, 12, 12, 12, 12, 12, 28, 28,
115
+ 28, 62, 12, 50, 50, 50, 50, 119, 64, 119,
116
+ 28, 28, 28, 28, 28, 28, 34, 34, 34, 66,
117
+ 28, 52, 52, 70, 73, 41, 44, 79, 38, 34,
118
+ 34, 34, 34, 34, 124, 124, 124, 34, 81, 124,
119
+ 37, 35, 124, 56, 55, 124, 16, 124, 124, 124,
120
+ 124, 124, 124, 124, 124, 110, 110, 110, 14, 47,
121
+ 110, 115, 1, 110, 110, 51, 110, 49, 110, 110,
122
+ 110, 110, 110, 110, 110, 110, 76, 76, 76, nil,
123
+ nil, 76, nil, nil, 76, nil, nil, 76, nil, 76,
124
+ 76, 76, 76, 76, 76, 76, 76, 93, 93, 93,
125
+ nil, nil, 93, nil, nil, 93, 93, nil, 93, nil,
126
+ 93, 93, 93, 93, 93, 93, 93, 93, 118, 118,
127
+ 118, nil, nil, 118, nil, nil, 118, nil, nil, 118,
128
+ nil, 118, 118, 118, 118, 118, 118, 118, 118, 92,
129
+ 92, 92, nil, nil, nil, 94, 94, 94, nil, nil,
130
+ nil, nil, 92, 92, 92, 92, 92, 94, 94, 94,
131
+ 94, 94, 94, 7, 7, 7, nil, nil, nil, 113,
132
+ 113, 113, nil, nil, nil, nil, 7, 7, 7, 7,
133
+ 7, 113, 113, 113, 113, 113, 113, 106, 106, 106,
134
+ nil, nil, nil, nil, nil, 106, nil, 80, 80, 80,
135
+ 106, 106, 106, 106, 106, 80, 13, 13, 13, nil,
136
+ 80, 80, 80, 80, 80, 42, 42, 42, nil, 13,
137
+ 13, 13, 13, 13, nil, nil, nil, nil, 42, 42,
138
+ 42, 42, 42, 43, 43, 43, nil, 43, 58, 58,
139
+ 58, nil, 58, 46, 46, 46, 43, 43, 43, 43,
140
+ 43, 58, 58, 58, 58, 58, 46, 46, 46, 46,
141
+ 46, 48, 48, 48, nil, nil, 54, 54, 54, nil,
142
+ nil, nil, nil, nil, 48, 48, 48, 48, 48, 54,
143
+ 54, 54, 54, 54, 0, 0, 0, 3, 3, 3,
144
+ nil, nil, nil, nil, nil, 0, nil, nil, 3, 0,
145
+ nil, nil, 3 ]
140
146
 
141
147
  racc_action_pointer = [
142
- 195, 90, nil, 266, nil, nil, nil, 107, nil, nil,
143
- nil, nil, 16, 66, 73, nil, 62, nil, nil, nil,
144
- nil, nil, nil, nil, nil, nil, nil, nil, -2, nil,
145
- nil, nil, nil, -1, 34, 29, nil, 52, 88, nil,
146
- nil, 74, 172, 177, 49, nil, 154, 73, 149, 76,
147
- 7, 61, 35, nil, 43, 43, 43, nil, 144, nil,
148
+ 302, 82, nil, 305, nil, nil, nil, 181, nil, nil,
149
+ nil, nil, -2, 224, 78, nil, 61, nil, nil, nil,
150
+ nil, nil, nil, nil, nil, nil, nil, nil, 16, nil,
151
+ nil, nil, nil, -2, 34, 46, nil, 37, 41, nil,
152
+ nil, 22, 233, 251, 23, nil, 261, 56, 279, 74,
153
+ 7, 72, 35, nil, 284, 51, 58, nil, 256, nil,
148
154
  0, nil, 16, nil, 5, nil, 16, nil, nil, nil,
149
- 35, nil, nil, -18, nil, nil, 268, nil, 41, 42,
150
- 117, 53, nil, nil, nil, nil, nil, nil, nil, nil,
151
- nil, nil, 89, 213, 84, nil, nil, nil, -6, nil,
152
- 61, nil, nil, nil, 245, nil, nil, 126, nil, 86,
153
- nil, nil, 229, 18, nil, nil, nil, nil, 197, nil,
154
- nil, nil ]
155
+ 35, nil, nil, 21, nil, nil, 94, nil, -8, 34,
156
+ 215, 45, nil, nil, nil, nil, nil, nil, nil, nil,
157
+ nil, nil, 157, 115, 163, nil, nil, nil, nil, nil,
158
+ nil, nil, nil, nil, -5, nil, 205, nil, nil, nil,
159
+ 73, nil, nil, 187, nil, 73, nil, nil, 136, 18,
160
+ nil, nil, nil, nil, 52, nil, nil, nil ]
155
161
 
156
162
  racc_action_default = [
157
- -79, -79, -1, -2, -3, -5, -6, -12, -8, -9,
158
- -10, -11, -79, -79, -79, -4, -14, -13, -35, -36,
159
- -37, -38, -39, -40, -41, -42, -43, -24, -79, -28,
160
- -30, -31, -32, -44, -70, -79, 122, -70, -79, -25,
161
- -29, -70, -79, -79, -71, -72, -79, -70, -79, -79,
162
- -79, -79, -79, -16, -79, -26, -44, -45, -79, -47,
163
- -79, -73, -44, -75, -70, -77, -70, -7, -15, -17,
164
- -79, -27, -33, -70, -46, -48, -79, -74, -79, -79,
165
- -79, -26, -49, -50, -51, -52, -53, -54, -55, -56,
166
- -57, -58, -79, -79, -79, -69, -76, -78, -22, -19,
167
- -79, -34, -59, -60, -79, -62, -64, -79, -66, -79,
168
- -18, -20, -79, -79, -61, -63, -65, -67, -79, -23,
169
- -21, -68 ]
163
+ -85, -85, -1, -2, -3, -5, -6, -12, -8, -9,
164
+ -10, -11, -85, -85, -85, -4, -14, -13, -35, -36,
165
+ -37, -38, -39, -40, -41, -42, -43, -24, -85, -28,
166
+ -30, -31, -32, -44, -76, -85, 128, -76, -85, -25,
167
+ -29, -76, -85, -85, -77, -78, -85, -76, -85, -85,
168
+ -85, -85, -85, -16, -85, -26, -44, -45, -85, -47,
169
+ -85, -79, -44, -81, -76, -83, -76, -7, -15, -17,
170
+ -85, -27, -33, -76, -46, -48, -85, -80, -85, -85,
171
+ -85, -26, -49, -50, -51, -52, -53, -54, -55, -56,
172
+ -57, -58, -85, -85, -85, -69, -70, -71, -72, -73,
173
+ -74, -75, -82, -84, -22, -19, -85, -34, -59, -60,
174
+ -85, -62, -64, -85, -66, -85, -18, -20, -85, -85,
175
+ -61, -63, -65, -67, -85, -23, -21, -68 ]
170
176
 
171
177
  racc_goto_table = [
172
- 17, 82, 65, 47, 67, 98, 35, 72, 71, 59,
173
- 49, 29, 53, 51, 110, 41, 28, 55, 105, 66,
174
- 52, 37, 16, 63, 75, 113, 69, 40, 1, 115,
175
- 58, 96, 97, 101, 71, 56, 60, 119, 73, 62,
176
- 78, 64, 79, 121, 77, 108, 3, 70, 104, 81,
177
- 4, 60, 107, 15, 2, 61, nil, nil, 117, nil,
178
+ 17, 65, 116, 67, 82, 41, 35, 71, 114, 47,
179
+ 49, 72, 53, 51, 59, 28, 29, 55, 104, 4,
180
+ 52, 111, 15, 63, 37, 66, 69, 123, 73, 75,
181
+ 102, 103, 40, 71, 77, 56, 60, 107, 121, 62,
182
+ 78, 64, 79, 16, 119, 1, 125, 70, 58, 81,
183
+ 3, 60, 127, 110, 113, 2, 61, nil, nil, nil,
178
184
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
179
- nil, nil, nil, 99, nil, nil, nil, nil, nil, nil,
180
- nil, nil, nil, nil, nil, 102, nil, 109, nil, nil,
181
- nil, nil, nil, 99, nil, nil, nil, nil, nil, nil,
182
- 109 ]
185
+ nil, nil, nil, 105, nil, nil, nil, nil, nil, nil,
186
+ nil, nil, nil, nil, nil, 108, nil, 115, nil, nil,
187
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 105,
188
+ nil, nil, nil, nil, nil, nil, 115 ]
183
189
 
184
190
  racc_goto_check = [
185
- 12, 17, 11, 25, 11, 15, 12, 19, 11, 27,
186
- 10, 20, 14, 10, 16, 24, 18, 10, 17, 25,
187
- 13, 9, 8, 10, 27, 15, 14, 20, 1, 17,
188
- 26, 11, 11, 19, 11, 12, 12, 17, 24, 12,
189
- 10, 12, 10, 17, 24, 34, 3, 12, 32, 10,
190
- 4, 12, 33, 4, 2, 36, nil, nil, 34, nil,
191
+ 12, 11, 16, 11, 17, 24, 12, 11, 34, 25,
192
+ 10, 19, 14, 10, 27, 18, 20, 10, 15, 4,
193
+ 13, 17, 4, 10, 9, 25, 14, 34, 24, 27,
194
+ 11, 11, 20, 11, 24, 12, 12, 19, 17, 12,
195
+ 10, 12, 10, 8, 15, 1, 17, 12, 26, 10,
196
+ 3, 12, 17, 32, 33, 2, 37, nil, nil, nil,
191
197
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
192
198
  nil, nil, nil, 12, nil, nil, nil, nil, nil, nil,
193
199
  nil, nil, nil, nil, nil, 12, nil, 12, nil, nil,
194
- nil, nil, nil, 12, nil, nil, nil, nil, nil, nil,
195
- 12 ]
200
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 12,
201
+ nil, nil, nil, nil, nil, nil, 12 ]
196
202
 
197
203
  racc_goto_pointer = [
198
- nil, 28, 54, 46, 50, nil, nil, nil, 15, 5,
199
- -24, -47, -7, -18, -26, -75, -84, -75, 4, -48,
200
- -1, nil, nil, nil, -18, -31, -13, -34, nil, nil,
201
- nil, nil, -45, -42, -49, nil, 11 ]
204
+ nil, 45, 55, 50, 19, nil, nil, nil, 36, 8,
205
+ -24, -48, -7, -18, -26, -62, -102, -72, 3, -44,
206
+ 4, nil, nil, nil, -28, -25, 5, -29, nil, nil,
207
+ nil, nil, -40, -40, -86, nil, nil, 12 ]
202
208
 
203
209
  racc_goto_default = [
204
210
  nil, nil, nil, nil, nil, 5, 6, 7, nil, nil,
205
211
  nil, 8, 33, nil, nil, nil, nil, nil, nil, nil,
206
212
  nil, 30, 31, 32, nil, 18, nil, nil, 88, 89,
207
- 90, 91, nil, nil, nil, 44, 45 ]
213
+ 90, 91, nil, nil, nil, 95, 44, 45 ]
208
214
 
209
215
  racc_reduce_table = [
210
216
  0, 0, :racc_error,
@@ -277,19 +283,25 @@ racc_reduce_table = [
277
283
  2, 58, :_reduce_67,
278
284
  3, 59, :_reduce_68,
279
285
  1, 56, :_reduce_69,
280
- 0, 35, :_reduce_70,
286
+ 1, 60, :_reduce_none,
287
+ 1, 60, :_reduce_none,
288
+ 1, 60, :_reduce_none,
289
+ 1, 60, :_reduce_none,
290
+ 1, 60, :_reduce_none,
291
+ 1, 60, :_reduce_none,
292
+ 0, 35, :_reduce_76,
281
293
  1, 35, :_reduce_none,
282
- 1, 60, :_reduce_72,
283
- 2, 60, :_reduce_73,
284
- 3, 61, :_reduce_74,
285
- 3, 47, :_reduce_75,
286
- 5, 48, :_reduce_76,
287
- 3, 48, :_reduce_77,
288
- 6, 31, :_reduce_78 ]
294
+ 1, 61, :_reduce_78,
295
+ 2, 61, :_reduce_79,
296
+ 3, 62, :_reduce_80,
297
+ 3, 47, :_reduce_81,
298
+ 5, 48, :_reduce_82,
299
+ 3, 48, :_reduce_83,
300
+ 6, 31, :_reduce_84 ]
289
301
 
290
- racc_reduce_n = 79
302
+ racc_reduce_n = 85
291
303
 
292
- racc_shift_n = 122
304
+ racc_shift_n = 128
293
305
 
294
306
  racc_token_table = {
295
307
  false => 0,
@@ -399,6 +411,7 @@ Racc_token_to_s_table = [
399
411
  "list_value_list",
400
412
  "object_value_list",
401
413
  "object_value_field",
414
+ "enum_name",
402
415
  "directives_list",
403
416
  "directive" ]
404
417
 
@@ -817,45 +830,57 @@ module_eval(<<'.,.,', 'parser.y', 171)
817
830
  end
818
831
  .,.,
819
832
 
820
- module_eval(<<'.,.,', 'parser.y', 174)
821
- def _reduce_70(val, _values, result)
833
+ # reduce 70 omitted
834
+
835
+ # reduce 71 omitted
836
+
837
+ # reduce 72 omitted
838
+
839
+ # reduce 73 omitted
840
+
841
+ # reduce 74 omitted
842
+
843
+ # reduce 75 omitted
844
+
845
+ module_eval(<<'.,.,', 'parser.y', 182)
846
+ def _reduce_76(val, _values, result)
822
847
  return []
823
848
  result
824
849
  end
825
850
  .,.,
826
851
 
827
- # reduce 71 omitted
852
+ # reduce 77 omitted
828
853
 
829
- module_eval(<<'.,.,', 'parser.y', 178)
830
- def _reduce_72(val, _values, result)
854
+ module_eval(<<'.,.,', 'parser.y', 186)
855
+ def _reduce_78(val, _values, result)
831
856
  return [val[0]]
832
857
  result
833
858
  end
834
859
  .,.,
835
860
 
836
- module_eval(<<'.,.,', 'parser.y', 179)
837
- def _reduce_73(val, _values, result)
861
+ module_eval(<<'.,.,', 'parser.y', 187)
862
+ def _reduce_79(val, _values, result)
838
863
  val[0] << val[1]
839
864
  result
840
865
  end
841
866
  .,.,
842
867
 
843
- module_eval(<<'.,.,', 'parser.y', 181)
844
- def _reduce_74(val, _values, result)
868
+ module_eval(<<'.,.,', 'parser.y', 189)
869
+ def _reduce_80(val, _values, result)
845
870
  return make_node(:Directive, name: val[1], arguments: val[2], position_source: val[0])
846
871
  result
847
872
  end
848
873
  .,.,
849
874
 
850
- module_eval(<<'.,.,', 'parser.y', 184)
851
- def _reduce_75(val, _values, result)
875
+ module_eval(<<'.,.,', 'parser.y', 192)
876
+ def _reduce_81(val, _values, result)
852
877
  return make_node(:FragmentSpread, name: val[1], directives: val[2], position_source: val[0])
853
878
  result
854
879
  end
855
880
  .,.,
856
881
 
857
- module_eval(<<'.,.,', 'parser.y', 188)
858
- def _reduce_76(val, _values, result)
882
+ module_eval(<<'.,.,', 'parser.y', 196)
883
+ def _reduce_82(val, _values, result)
859
884
  return make_node(:InlineFragment, {
860
885
  type: val[2],
861
886
  directives: val[3],
@@ -867,8 +892,8 @@ module_eval(<<'.,.,', 'parser.y', 188)
867
892
  end
868
893
  .,.,
869
894
 
870
- module_eval(<<'.,.,', 'parser.y', 196)
871
- def _reduce_77(val, _values, result)
895
+ module_eval(<<'.,.,', 'parser.y', 204)
896
+ def _reduce_83(val, _values, result)
872
897
  return make_node(:InlineFragment, {
873
898
  type: nil,
874
899
  directives: val[1],
@@ -880,8 +905,8 @@ module_eval(<<'.,.,', 'parser.y', 196)
880
905
  end
881
906
  .,.,
882
907
 
883
- module_eval(<<'.,.,', 'parser.y', 206)
884
- def _reduce_78(val, _values, result)
908
+ module_eval(<<'.,.,', 'parser.y', 214)
909
+ def _reduce_84(val, _values, result)
885
910
  return make_node(:FragmentDefinition, {
886
911
  name: val[1],
887
912
  type: val[3],