graphql 1.9.21 → 1.10.0.pre1

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.
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