graphql 1.9.21 → 1.10.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/graphql/core.rb +0 -1
  3. data/lib/generators/graphql/install_generator.rb +0 -1
  4. data/lib/generators/graphql/mutation_generator.rb +1 -1
  5. data/lib/generators/graphql/templates/base_field.erb +4 -0
  6. data/lib/generators/graphql/templates/graphql_controller.erb +0 -5
  7. data/lib/generators/graphql/templates/mutation.erb +1 -1
  8. data/lib/generators/graphql/templates/schema.erb +1 -1
  9. data/lib/graphql.rb +1 -11
  10. data/lib/graphql/analysis/ast.rb +2 -2
  11. data/lib/graphql/analysis/ast/analyzer.rb +4 -23
  12. data/lib/graphql/analysis/ast/max_query_complexity.rb +3 -3
  13. data/lib/graphql/analysis/ast/max_query_depth.rb +3 -7
  14. data/lib/graphql/analysis/ast/query_complexity.rb +2 -2
  15. data/lib/graphql/argument.rb +6 -2
  16. data/lib/graphql/backtrace/table.rb +10 -2
  17. data/lib/graphql/base_type.rb +5 -1
  18. data/lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb +5 -9
  19. data/lib/graphql/define/assign_object_field.rb +2 -2
  20. data/lib/graphql/define/defined_object_proxy.rb +0 -3
  21. data/lib/graphql/define/instance_definable.rb +3 -14
  22. data/lib/graphql/enum_type.rb +4 -0
  23. data/lib/graphql/execution/directive_checks.rb +2 -2
  24. data/lib/graphql/execution/errors.rb +14 -15
  25. data/lib/graphql/execution/execute.rb +1 -1
  26. data/lib/graphql/execution/interpreter/runtime.rb +17 -39
  27. data/lib/graphql/execution/multiplex.rb +3 -3
  28. data/lib/graphql/field.rb +8 -0
  29. data/lib/graphql/filter.rb +1 -1
  30. data/lib/graphql/function.rb +1 -1
  31. data/lib/graphql/input_object_type.rb +1 -2
  32. data/lib/graphql/introspection/entry_points.rb +1 -2
  33. data/lib/graphql/introspection/input_value_type.rb +27 -9
  34. data/lib/graphql/introspection/schema_type.rb +1 -2
  35. data/lib/graphql/language/block_string.rb +2 -2
  36. data/lib/graphql/language/document_from_schema_definition.rb +5 -11
  37. data/lib/graphql/language/lexer.rb +48 -49
  38. data/lib/graphql/language/lexer.rl +48 -49
  39. data/lib/graphql/language/nodes.rb +11 -14
  40. data/lib/graphql/language/parser.rb +645 -650
  41. data/lib/graphql/language/parser.y +7 -8
  42. data/lib/graphql/language/token.rb +1 -1
  43. data/lib/graphql/non_null_type.rb +0 -10
  44. data/lib/graphql/pagination.rb +6 -0
  45. data/lib/graphql/pagination/active_record_relation_connection.rb +35 -0
  46. data/lib/graphql/pagination/array_connection.rb +78 -0
  47. data/lib/graphql/pagination/connection.rb +150 -0
  48. data/lib/graphql/pagination/connections.rb +103 -0
  49. data/lib/graphql/pagination/mongoid_relation_connection.rb +25 -0
  50. data/lib/graphql/pagination/relation_connection.rb +157 -0
  51. data/lib/graphql/pagination/sequel_dataset_connection.rb +28 -0
  52. data/lib/graphql/query.rb +1 -7
  53. data/lib/graphql/query/arguments.rb +3 -9
  54. data/lib/graphql/query/context.rb +9 -31
  55. data/lib/graphql/query/literal_input.rb +29 -10
  56. data/lib/graphql/query/null_context.rb +0 -4
  57. data/lib/graphql/query/variable_validation_error.rb +1 -1
  58. data/lib/graphql/query/variables.rb +2 -4
  59. data/lib/graphql/relay/base_connection.rb +7 -3
  60. data/lib/graphql/relay/edges_instrumentation.rb +1 -1
  61. data/lib/graphql/relay/node.rb +2 -2
  62. data/lib/graphql/relay/relation_connection.rb +5 -9
  63. data/lib/graphql/schema.rb +27 -68
  64. data/lib/graphql/schema/argument.rb +31 -5
  65. data/lib/graphql/schema/base_64_bp.rb +2 -3
  66. data/lib/graphql/schema/build_from_definition.rb +113 -179
  67. data/lib/graphql/schema/build_from_definition/resolve_map.rb +10 -4
  68. data/lib/graphql/schema/build_from_definition/resolve_map/default_resolve.rb +1 -1
  69. data/lib/graphql/schema/directive.rb +6 -7
  70. data/lib/graphql/schema/directive/feature.rb +1 -1
  71. data/lib/graphql/schema/enum.rb +1 -0
  72. data/lib/graphql/schema/enum_value.rb +4 -1
  73. data/lib/graphql/schema/field.rb +37 -39
  74. data/lib/graphql/schema/field/connection_extension.rb +11 -1
  75. data/lib/graphql/schema/input_object.rb +2 -5
  76. data/lib/graphql/schema/interface.rb +2 -0
  77. data/lib/graphql/schema/introspection_system.rb +1 -4
  78. data/lib/graphql/schema/loader.rb +6 -12
  79. data/lib/graphql/schema/member.rb +2 -0
  80. data/lib/graphql/schema/member/base_dsl_methods.rb +2 -2
  81. data/lib/graphql/schema/member/build_type.rb +4 -0
  82. data/lib/graphql/schema/member/cached_graphql_definition.rb +5 -0
  83. data/lib/graphql/schema/member/has_ast_node.rb +17 -0
  84. data/lib/graphql/schema/member/has_fields.rb +10 -16
  85. data/lib/graphql/schema/member/instrumentation.rb +1 -6
  86. data/lib/graphql/schema/member/type_system_helpers.rb +1 -1
  87. data/lib/graphql/schema/mutation.rb +1 -1
  88. data/lib/graphql/schema/object.rb +5 -6
  89. data/lib/graphql/schema/possible_types.rb +3 -3
  90. data/lib/graphql/schema/printer.rb +1 -3
  91. data/lib/graphql/schema/relay_classic_mutation.rb +2 -6
  92. data/lib/graphql/schema/resolver.rb +5 -35
  93. data/lib/graphql/schema/scalar.rb +1 -0
  94. data/lib/graphql/schema/subscription.rb +6 -6
  95. data/lib/graphql/schema/timeout_middleware.rb +2 -3
  96. data/lib/graphql/schema/type_expression.rb +27 -17
  97. data/lib/graphql/schema/union.rb +7 -26
  98. data/lib/graphql/schema/validation.rb +1 -17
  99. data/lib/graphql/schema/warden.rb +3 -77
  100. data/lib/graphql/schema/wrapper.rb +1 -1
  101. data/lib/graphql/static_validation/definition_dependencies.rb +12 -21
  102. data/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb +9 -4
  103. data/lib/graphql/static_validation/rules/arguments_are_defined.rb +10 -7
  104. data/lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb +1 -1
  105. data/lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb +5 -5
  106. data/lib/graphql/static_validation/rules/fields_will_merge.rb +4 -4
  107. data/lib/graphql/static_validation/rules/required_input_object_attributes_are_present.rb +3 -3
  108. data/lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed.rb +3 -3
  109. data/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb +5 -6
  110. data/lib/graphql/static_validation/rules/variables_are_input_types.rb +1 -1
  111. data/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb +1 -1
  112. data/lib/graphql/subscriptions.rb +7 -7
  113. data/lib/graphql/subscriptions/action_cable_subscriptions.rb +2 -2
  114. data/lib/graphql/subscriptions/event.rb +5 -19
  115. data/lib/graphql/subscriptions/instrumentation.rb +9 -4
  116. data/lib/graphql/subscriptions/subscription_root.rb +2 -10
  117. data/lib/graphql/tracing/skylight_tracing.rb +0 -1
  118. data/lib/graphql/types/int.rb +1 -1
  119. data/lib/graphql/types/relay/base_connection.rb +3 -1
  120. data/lib/graphql/union_type.rb +23 -58
  121. data/lib/graphql/upgrader/member.rb +1 -1
  122. data/lib/graphql/version.rb +1 -1
  123. metadata +20 -13
  124. data/lib/generators/graphql/templates/base_mutation.erb +0 -8
  125. data/lib/graphql/schema/type_membership.rb +0 -34
@@ -2,7 +2,7 @@
2
2
  module GraphQL
3
3
  module StaticValidation
4
4
  # The problem is
5
- # - Variable usage must be determined at the OperationDefinition level
5
+ # - Variable $usage must be determined at the OperationDefinition level
6
6
  # - You can't tell how fragments use variables until you visit FragmentDefinitions (which may be at the end of the document)
7
7
  #
8
8
  # So, this validator includes some crazy logic to follow fragment spreads recursively, while avoiding infinite loops.
@@ -20,7 +20,7 @@ module GraphQL
20
20
  def self.use(defn, options = {})
21
21
  schema = defn.target
22
22
  options[:schema] = schema
23
- schema.subscriptions = self.new(**options)
23
+ schema.subscriptions = self.new(options)
24
24
  instrumentation = Subscriptions::Instrumentation.new(schema: schema)
25
25
  defn.instrument(:field, instrumentation)
26
26
  defn.instrument(:query, instrumentation)
@@ -90,7 +90,7 @@ module GraphQL
90
90
  operation_name = query_data.fetch(:operation_name)
91
91
  # Re-evaluate the saved query
92
92
  result = @schema.execute(
93
- **{
93
+ {
94
94
  query: query_string,
95
95
  context: context,
96
96
  subscription_topic: event.topic,
@@ -124,7 +124,7 @@ module GraphQL
124
124
  # @yieldparam subscription_id [String]
125
125
  # @return [void]
126
126
  def each_subscription_id(event)
127
- raise GraphQL::RequiredImplementationMissingError
127
+ raise NotImplementedError
128
128
  end
129
129
 
130
130
  # The system wants to send an update to this subscription.
@@ -132,7 +132,7 @@ module GraphQL
132
132
  # @param subscription_id [String]
133
133
  # @return [Hash] Containing required keys
134
134
  def read_subscription(subscription_id)
135
- raise GraphQL::RequiredImplementationMissingError
135
+ raise NotImplementedError
136
136
  end
137
137
 
138
138
  # A subscription query was re-evaluated, returning `result`.
@@ -141,7 +141,7 @@ module GraphQL
141
141
  # @param result [Hash]
142
142
  # @return [void]
143
143
  def deliver(subscription_id, result)
144
- raise GraphQL::RequiredImplementationMissingError
144
+ raise NotImplementedError
145
145
  end
146
146
 
147
147
  # `query` was executed and found subscriptions to `events`.
@@ -150,7 +150,7 @@ module GraphQL
150
150
  # @param events [Array<GraphQL::Subscriptions::Event>]
151
151
  # @return [void]
152
152
  def write_subscription(query, events)
153
- raise GraphQL::RequiredImplementationMissingError
153
+ raise NotImplementedError
154
154
  end
155
155
 
156
156
  # A subscription was terminated server-side.
@@ -158,7 +158,7 @@ module GraphQL
158
158
  # @param subscription_id [String]
159
159
  # @return void.
160
160
  def delete_subscription(subscription_id)
161
- raise GraphQL::RequiredImplementationMissingError
161
+ raise NotImplementedError
162
162
  end
163
163
 
164
164
  # @return [String] A new unique identifier for a subscription
@@ -26,7 +26,7 @@ module GraphQL
26
26
  # variables = ensure_hash(data["variables"])
27
27
  # operation_name = data["operationName"]
28
28
  # context = {
29
- # # Re-implement whatever context methods you need
29
+ # # Re-implement whatever context methods you need
30
30
  # # in this channel or ApplicationCable::Channel
31
31
  # # current_user: current_user,
32
32
  # # Make sure the channel is in the context
@@ -41,7 +41,7 @@ module GraphQL
41
41
  # })
42
42
  #
43
43
  # payload = {
44
- # result: result.subscription? ? { data: nil } : result.to_h,
44
+ # result: result.to_h,
45
45
  # more: result.subscription?,
46
46
  # }
47
47
  #
@@ -37,7 +37,7 @@ module GraphQL
37
37
  arguments
38
38
  when Hash
39
39
  if field.is_a?(GraphQL::Schema::Field)
40
- stringify_args(field, arguments)
40
+ stringify_args(arguments)
41
41
  else
42
42
  GraphQL::Query::LiteralInput.from_arguments(
43
43
  arguments,
@@ -55,35 +55,21 @@ module GraphQL
55
55
 
56
56
  class << self
57
57
  private
58
- def stringify_args(arg_owner, args)
58
+ def stringify_args(args)
59
59
  case args
60
60
  when Hash
61
61
  next_args = {}
62
62
  args.each do |k, v|
63
- arg_name = k.to_s
64
- camelized_arg_name = GraphQL::Schema::Member::BuildType.camelize(arg_name)
65
- arg_defn = get_arg_definition(arg_owner, camelized_arg_name)
66
-
67
- if arg_defn
68
- normalized_arg_name = camelized_arg_name
69
- else
70
- normalized_arg_name = arg_name
71
- arg_defn = get_arg_definition(arg_owner, normalized_arg_name)
72
- end
73
-
74
- next_args[normalized_arg_name] = stringify_args(arg_defn[1].type, v)
63
+ str_k = GraphQL::Schema::Member::BuildType.camelize(k.to_s)
64
+ next_args[str_k] = stringify_args(v)
75
65
  end
76
66
  next_args
77
67
  when Array
78
- args.map { |a| stringify_args(arg_owner, a) }
68
+ args.map { |a| stringify_args(a) }
79
69
  else
80
70
  args
81
71
  end
82
72
  end
83
-
84
- def get_arg_definition(arg_owner, arg_name)
85
- arg_owner.arguments.find { |k, v| k == arg_name || v.keyword.to_s == arg_name }
86
- end
87
73
  end
88
74
  end
89
75
  end
@@ -44,7 +44,10 @@ module GraphQL
44
44
 
45
45
  # Wrap the proc with subscription registration logic
46
46
  def call(obj, args, ctx)
47
- @inner_proc.call(obj, args, ctx) if @inner_proc && !@inner_proc.is_a?(GraphQL::Field::Resolve::BuiltInResolve)
47
+ result = nil
48
+ if @inner_proc && !@inner_proc.is_a?(GraphQL::Field::Resolve::BuiltInResolve)
49
+ result = @inner_proc.call(obj, args, ctx)
50
+ end
48
51
 
49
52
  events = ctx.namespace(:subscriptions)[:events]
50
53
 
@@ -56,10 +59,12 @@ module GraphQL
56
59
  arguments: args,
57
60
  context: ctx,
58
61
  )
59
- ctx.skip
62
+ result
60
63
  elsif ctx.irep_node.subscription_topic == ctx.query.subscription_topic
61
- # The root object is _already_ the subscription update:
62
- if obj.is_a?(GraphQL::Schema::Object)
64
+ if !result.nil?
65
+ result
66
+ elsif obj.is_a?(GraphQL::Schema::Object)
67
+ # The root object is _already_ the subscription update:
63
68
  obj.object
64
69
  else
65
70
  obj
@@ -40,7 +40,7 @@ module GraphQL
40
40
  # for the backend to register:
41
41
  events << Subscriptions::Event.new(
42
42
  name: field.name,
43
- arguments: arguments_without_field_extras(arguments: arguments),
43
+ arguments: arguments,
44
44
  context: context,
45
45
  field: field,
46
46
  )
@@ -48,7 +48,7 @@ module GraphQL
48
48
  value
49
49
  elsif context.query.subscription_topic == Subscriptions::Event.serialize(
50
50
  field.name,
51
- arguments_without_field_extras(arguments: arguments),
51
+ arguments,
52
52
  field,
53
53
  scope: (field.subscription_scope ? context[field.subscription_scope] : nil),
54
54
  )
@@ -60,14 +60,6 @@ module GraphQL
60
60
  context.skip
61
61
  end
62
62
  end
63
-
64
- private
65
-
66
- def arguments_without_field_extras(arguments:)
67
- arguments.dup.tap do |event_args|
68
- field.extras.each { |k| event_args.delete(k) }
69
- end
70
- end
71
63
  end
72
64
  end
73
65
  end
@@ -18,7 +18,6 @@ module GraphQL
18
18
  # This is not advised if you run more than one query per HTTP request, for example, with `graphql-client` or multiplexing.
19
19
  # It can also be specified per-query with `context[:set_skylight_endpoint_name]`.
20
20
  def initialize(options = {})
21
- warn("GraphQL::Tracing::SkylightTracing is deprecated, please enable Skylight's GraphQL probe instead: https://www.skylight.io/support/getting-more-from-skylight#graphql.")
22
21
  @set_endpoint_name = options.fetch(:set_endpoint_name, false)
23
22
  super
24
23
  end
@@ -10,7 +10,7 @@ module GraphQL
10
10
  MAX = (2**31) - 1
11
11
 
12
12
  def self.coerce_input(value, _ctx)
13
- value.is_a?(Numeric) ? value.to_i : nil
13
+ value.is_a?(Integer) ? value : nil
14
14
  end
15
15
 
16
16
  def self.coerce_result(value, ctx)
@@ -106,7 +106,9 @@ module GraphQL
106
106
  end
107
107
 
108
108
  def edges
109
- if context.interpreter?
109
+ if @object.is_a?(GraphQL::Pagination::Connection)
110
+ @object.edges
111
+ elsif context.interpreter?
110
112
  context.schema.after_lazy(object.edge_nodes) do |nodes|
111
113
  nodes.map { |n| self.class.edge_class.new(n, object) }
112
114
  end
@@ -24,34 +24,22 @@ module GraphQL
24
24
  # }
25
25
  #
26
26
  class UnionType < GraphQL::BaseType
27
- # Rubocop was unhappy about the syntax when this was a proc literal
28
- class AcceptPossibleTypesDefinition
29
- def self.call(target, possible_types, options = {})
30
- target.add_possible_types(possible_types, **options)
31
- end
32
- end
33
-
34
- accepts_definitions :resolve_type, :type_membership_class,
35
- possible_types: AcceptPossibleTypesDefinition
36
- ensure_defined :possible_types, :resolve_type, :resolve_type_proc, :type_membership_class
27
+ accepts_definitions :possible_types, :resolve_type
28
+ ensure_defined :possible_types, :resolve_type, :resolve_type_proc
37
29
 
38
30
  attr_accessor :resolve_type_proc
39
- attr_reader :type_memberships
40
- attr_accessor :type_membership_class
41
31
 
42
32
  def initialize
43
33
  super
44
- @type_membership_class = GraphQL::Schema::TypeMembership
45
- @type_memberships = []
46
- @cached_possible_types = nil
34
+ @dirty_possible_types = []
35
+ @clean_possible_types = nil
47
36
  @resolve_type_proc = nil
48
37
  end
49
38
 
50
39
  def initialize_copy(other)
51
40
  super
52
- @type_membership_class = other.type_membership_class
53
- @type_memberships = other.type_memberships.dup
54
- @cached_possible_types = nil
41
+ @clean_possible_types = nil
42
+ @dirty_possible_types = other.dirty_possible_types.dup
55
43
  end
56
44
 
57
45
  def kind
@@ -59,35 +47,24 @@ module GraphQL
59
47
  end
60
48
 
61
49
  # @return [Boolean] True if `child_type_defn` is a member of this {UnionType}
62
- def include?(child_type_defn, ctx = GraphQL::Query::NullContext)
63
- possible_types(ctx).include?(child_type_defn)
64
- end
65
-
66
- # @return [Array<GraphQL::ObjectType>] Types which may be found in this union
67
- def possible_types(ctx = GraphQL::Query::NullContext)
68
- if ctx == GraphQL::Query::NullContext
69
- # Only cache the default case; if we cached for every `ctx`, it would be a memory leak
70
- # (The warden should cache calls to this method, so it's called only once per query,
71
- # unless user code calls it directly.)
72
- @cached_possible_types ||= possible_types_for_context(ctx)
73
- else
74
- possible_types_for_context(ctx)
75
- end
50
+ def include?(child_type_defn)
51
+ possible_types.include?(child_type_defn)
76
52
  end
77
53
 
78
- def possible_types=(types)
79
- # This is a re-assignment, so clear the previous values
80
- @type_memberships = []
81
- @cached_possible_types = nil
82
- add_possible_types(types, **{})
54
+ def possible_types=(new_possible_types)
55
+ @clean_possible_types = nil
56
+ @dirty_possible_types = new_possible_types
83
57
  end
84
58
 
85
- def add_possible_types(types, **options)
86
- @type_memberships ||= []
87
- Array(types).each { |t|
88
- @type_memberships << self.type_membership_class.new(self, t, **options)
89
- }
90
- nil
59
+ # @return [Array<GraphQL::ObjectType>] Types which may be found in this union
60
+ def possible_types
61
+ @clean_possible_types ||= begin
62
+ if @dirty_possible_types.respond_to?(:map)
63
+ @dirty_possible_types.map { |type| GraphQL::BaseType.resolve_related_type(type) }
64
+ else
65
+ @dirty_possible_types
66
+ end
67
+ end
91
68
  end
92
69
 
93
70
  # Get a possible type of this {UnionType} by type name
@@ -96,7 +73,7 @@ module GraphQL
96
73
  # @return [GraphQL::ObjectType, nil] The type named `type_name` if it exists and is a member of this {UnionType}, (else `nil`)
97
74
  def get_possible_type(type_name, ctx)
98
75
  type = ctx.query.get_type(type_name)
99
- type if type && ctx.query.schema.possible_types(self, ctx).include?(type)
76
+ type if type && ctx.query.warden.possible_types(self).include?(type)
100
77
  end
101
78
 
102
79
  # Check if a type is a possible type of this {UnionType}
@@ -116,20 +93,8 @@ module GraphQL
116
93
  @resolve_type_proc = new_resolve_type_proc
117
94
  end
118
95
 
119
- def type_memberships=(type_memberships)
120
- @type_memberships = type_memberships
121
- end
122
-
123
- private
96
+ protected
124
97
 
125
- def possible_types_for_context(ctx)
126
- visible_types = []
127
- @type_memberships.each do |type_membership|
128
- if type_membership.visible?(ctx)
129
- visible_types << BaseType.resolve_related_type(type_membership.object_type)
130
- end
131
- end
132
- visible_types
133
- end
98
+ attr_reader :dirty_possible_types
134
99
  end
135
100
  end
@@ -13,7 +13,7 @@ module GraphQL
13
13
  # @param input_text [String] Untransformed GraphQL-Ruby code
14
14
  # @return [String] The input text, with a transformation applied if necessary
15
15
  def apply(input_text)
16
- raise GraphQL::RequiredImplementationMissingError, "Return transformed text here"
16
+ raise NotImplementedError, "Return transformed text here"
17
17
  end
18
18
 
19
19
  # Recursively transform a `.define`-DSL-based type expression into a class-ready expression, for example:
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module GraphQL
3
- VERSION = "1.9.21"
3
+ VERSION = "1.10.0.pre1"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.21
4
+ version: 1.10.0.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Mosolgo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-12 00:00:00.000000000 Z
11
+ date: 2019-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ips
@@ -182,30 +182,30 @@ dependencies:
182
182
  name: racc
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - "~>"
185
+ - - '='
186
186
  - !ruby/object:Gem::Version
187
- version: '1.4'
187
+ version: 1.4.15
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - "~>"
192
+ - - '='
193
193
  - !ruby/object:Gem::Version
194
- version: '1.4'
194
+ version: 1.4.15
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: rake
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: '12'
201
+ version: '11'
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: '12'
208
+ version: '11'
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: rubocop
211
211
  requirement: !ruby/object:Gem::Requirement
@@ -340,7 +340,6 @@ files:
340
340
  - lib/generators/graphql/templates/base_field.erb
341
341
  - lib/generators/graphql/templates/base_input_object.erb
342
342
  - lib/generators/graphql/templates/base_interface.erb
343
- - lib/generators/graphql/templates/base_mutation.erb
344
343
  - lib/generators/graphql/templates/base_object.erb
345
344
  - lib/generators/graphql/templates/base_scalar.erb
346
345
  - lib/generators/graphql/templates/base_union.erb
@@ -484,6 +483,14 @@ files:
484
483
  - lib/graphql/name_validator.rb
485
484
  - lib/graphql/non_null_type.rb
486
485
  - lib/graphql/object_type.rb
486
+ - lib/graphql/pagination.rb
487
+ - lib/graphql/pagination/active_record_relation_connection.rb
488
+ - lib/graphql/pagination/array_connection.rb
489
+ - lib/graphql/pagination/connection.rb
490
+ - lib/graphql/pagination/connections.rb
491
+ - lib/graphql/pagination/mongoid_relation_connection.rb
492
+ - lib/graphql/pagination/relation_connection.rb
493
+ - lib/graphql/pagination/sequel_dataset_connection.rb
487
494
  - lib/graphql/parse_error.rb
488
495
  - lib/graphql/query.rb
489
496
  - lib/graphql/query/arguments.rb
@@ -565,6 +572,7 @@ files:
565
572
  - lib/graphql/schema/member/cached_graphql_definition.rb
566
573
  - lib/graphql/schema/member/graphql_type_names.rb
567
574
  - lib/graphql/schema/member/has_arguments.rb
575
+ - lib/graphql/schema/member/has_ast_node.rb
568
576
  - lib/graphql/schema/member/has_fields.rb
569
577
  - lib/graphql/schema/member/has_path.rb
570
578
  - lib/graphql/schema/member/instrumentation.rb
@@ -588,7 +596,6 @@ files:
588
596
  - lib/graphql/schema/timeout_middleware.rb
589
597
  - lib/graphql/schema/traversal.rb
590
598
  - lib/graphql/schema/type_expression.rb
591
- - lib/graphql/schema/type_membership.rb
592
599
  - lib/graphql/schema/union.rb
593
600
  - lib/graphql/schema/unique_within_type.rb
594
601
  - lib/graphql/schema/validation.rb
@@ -727,11 +734,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
727
734
  version: 2.2.0
728
735
  required_rubygems_version: !ruby/object:Gem::Requirement
729
736
  requirements:
730
- - - ">="
737
+ - - ">"
731
738
  - !ruby/object:Gem::Version
732
- version: '0'
739
+ version: 1.3.1
733
740
  requirements: []
734
- rubygems_version: 3.1.2
741
+ rubygems_version: 3.0.3
735
742
  signing_key:
736
743
  specification_version: 4
737
744
  summary: A GraphQL language and runtime for Ruby