graphql 1.13.23 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of graphql might be problematic. Click here for more details.

Files changed (194) hide show
  1. checksums.yaml +4 -4
  2. data/lib/graphql/analysis/ast/query_complexity.rb +1 -1
  3. data/lib/graphql/analysis/ast/query_depth.rb +0 -1
  4. data/lib/graphql/analysis/ast/visitor.rb +1 -1
  5. data/lib/graphql/analysis/ast.rb +0 -10
  6. data/lib/graphql/analysis.rb +0 -7
  7. data/lib/graphql/backtrace/table.rb +0 -18
  8. data/lib/graphql/backtrace/tracer.rb +1 -2
  9. data/lib/graphql/backtrace.rb +2 -8
  10. data/lib/graphql/dig.rb +1 -1
  11. data/lib/graphql/execution/errors.rb +1 -9
  12. data/lib/graphql/execution/interpreter/runtime.rb +6 -13
  13. data/lib/graphql/execution/interpreter.rb +0 -22
  14. data/lib/graphql/execution/lazy.rb +1 -1
  15. data/lib/graphql/execution/lookahead.rb +6 -13
  16. data/lib/graphql/execution/multiplex.rb +50 -107
  17. data/lib/graphql/execution.rb +11 -3
  18. data/lib/graphql/introspection/directive_type.rb +2 -2
  19. data/lib/graphql/introspection/dynamic_fields.rb +3 -8
  20. data/lib/graphql/introspection/entry_points.rb +2 -15
  21. data/lib/graphql/introspection/field_type.rb +1 -1
  22. data/lib/graphql/introspection/schema_type.rb +2 -2
  23. data/lib/graphql/introspection/type_type.rb +5 -5
  24. data/lib/graphql/language/document_from_schema_definition.rb +0 -17
  25. data/lib/graphql/pagination/connections.rb +2 -28
  26. data/lib/graphql/query/context.rb +1 -185
  27. data/lib/graphql/query/input_validation_result.rb +0 -9
  28. data/lib/graphql/query/literal_input.rb +8 -13
  29. data/lib/graphql/query/validation_pipeline.rb +6 -34
  30. data/lib/graphql/query/variable_validation_error.rb +2 -2
  31. data/lib/graphql/query/variables.rb +8 -31
  32. data/lib/graphql/query.rb +5 -34
  33. data/lib/graphql/railtie.rb +0 -104
  34. data/lib/graphql/relay/range_add.rb +0 -4
  35. data/lib/graphql/relay.rb +0 -15
  36. data/lib/graphql/schema/addition.rb +1 -8
  37. data/lib/graphql/schema/argument.rb +1 -25
  38. data/lib/graphql/schema/build_from_definition.rb +0 -1
  39. data/lib/graphql/schema/directive.rb +1 -22
  40. data/lib/graphql/schema/enum.rb +3 -19
  41. data/lib/graphql/schema/enum_value.rb +0 -22
  42. data/lib/graphql/schema/field.rb +22 -220
  43. data/lib/graphql/schema/input_object.rb +11 -57
  44. data/lib/graphql/schema/interface.rb +1 -30
  45. data/lib/graphql/schema/introspection_system.rb +3 -8
  46. data/lib/graphql/schema/late_bound_type.rb +2 -2
  47. data/lib/graphql/schema/list.rb +3 -24
  48. data/lib/graphql/schema/loader.rb +0 -1
  49. data/lib/graphql/schema/member/base_dsl_methods.rb +1 -6
  50. data/lib/graphql/schema/member/build_type.rb +4 -6
  51. data/lib/graphql/schema/member/has_arguments.rb +16 -20
  52. data/lib/graphql/schema/member/has_fields.rb +3 -3
  53. data/lib/graphql/schema/member/has_interfaces.rb +1 -13
  54. data/lib/graphql/schema/member/validates_input.rb +2 -2
  55. data/lib/graphql/schema/member.rb +0 -6
  56. data/lib/graphql/schema/mutation.rb +0 -9
  57. data/lib/graphql/schema/non_null.rb +3 -9
  58. data/lib/graphql/schema/object.rb +0 -40
  59. data/lib/graphql/schema/relay_classic_mutation.rb +17 -28
  60. data/lib/graphql/schema/scalar.rb +1 -16
  61. data/lib/graphql/schema/union.rb +0 -16
  62. data/lib/graphql/schema/warden.rb +3 -12
  63. data/lib/graphql/schema/wrapper.rb +0 -5
  64. data/lib/graphql/schema.rb +106 -945
  65. data/lib/graphql/static_validation/base_visitor.rb +4 -21
  66. data/lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb +12 -12
  67. data/lib/graphql/static_validation/validator.rb +2 -24
  68. data/lib/graphql/static_validation.rb +0 -2
  69. data/lib/graphql/subscriptions/default_subscription_resolve_extension.rb +38 -1
  70. data/lib/graphql/subscriptions/event.rb +1 -1
  71. data/lib/graphql/subscriptions/instrumentation.rb +0 -51
  72. data/lib/graphql/subscriptions.rb +4 -13
  73. data/lib/graphql/tracing/data_dog_tracing.rb +16 -20
  74. data/lib/graphql/tracing/platform_tracing.rb +4 -32
  75. data/lib/graphql/tracing.rb +0 -1
  76. data/lib/graphql/types/relay/connection_behaviors.rb +2 -6
  77. data/lib/graphql/types/relay/default_relay.rb +0 -10
  78. data/lib/graphql/types/relay/node_behaviors.rb +5 -1
  79. data/lib/graphql/types/relay.rb +0 -2
  80. data/lib/graphql/types/string.rb +1 -1
  81. data/lib/graphql/version.rb +1 -1
  82. data/lib/graphql.rb +1 -66
  83. metadata +28 -167
  84. data/lib/graphql/analysis/analyze_query.rb +0 -98
  85. data/lib/graphql/analysis/field_usage.rb +0 -45
  86. data/lib/graphql/analysis/max_query_complexity.rb +0 -26
  87. data/lib/graphql/analysis/max_query_depth.rb +0 -26
  88. data/lib/graphql/analysis/query_complexity.rb +0 -88
  89. data/lib/graphql/analysis/query_depth.rb +0 -43
  90. data/lib/graphql/analysis/reducer_state.rb +0 -48
  91. data/lib/graphql/argument.rb +0 -131
  92. data/lib/graphql/authorization.rb +0 -82
  93. data/lib/graphql/backtrace/legacy_tracer.rb +0 -56
  94. data/lib/graphql/backwards_compatibility.rb +0 -61
  95. data/lib/graphql/base_type.rb +0 -232
  96. data/lib/graphql/boolean_type.rb +0 -2
  97. data/lib/graphql/compatibility/execution_specification/counter_schema.rb +0 -53
  98. data/lib/graphql/compatibility/execution_specification/specification_schema.rb +0 -200
  99. data/lib/graphql/compatibility/execution_specification.rb +0 -436
  100. data/lib/graphql/compatibility/lazy_execution_specification/lazy_schema.rb +0 -111
  101. data/lib/graphql/compatibility/lazy_execution_specification.rb +0 -215
  102. data/lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb +0 -87
  103. data/lib/graphql/compatibility/query_parser_specification/query_assertions.rb +0 -79
  104. data/lib/graphql/compatibility/query_parser_specification.rb +0 -266
  105. data/lib/graphql/compatibility/schema_parser_specification.rb +0 -682
  106. data/lib/graphql/compatibility.rb +0 -5
  107. data/lib/graphql/define/assign_argument.rb +0 -12
  108. data/lib/graphql/define/assign_connection.rb +0 -13
  109. data/lib/graphql/define/assign_enum_value.rb +0 -18
  110. data/lib/graphql/define/assign_global_id_field.rb +0 -11
  111. data/lib/graphql/define/assign_mutation_function.rb +0 -34
  112. data/lib/graphql/define/assign_object_field.rb +0 -42
  113. data/lib/graphql/define/defined_object_proxy.rb +0 -53
  114. data/lib/graphql/define/instance_definable.rb +0 -255
  115. data/lib/graphql/define/no_definition_error.rb +0 -7
  116. data/lib/graphql/define/non_null_with_bang.rb +0 -16
  117. data/lib/graphql/define/type_definer.rb +0 -31
  118. data/lib/graphql/define.rb +0 -31
  119. data/lib/graphql/deprecated_dsl.rb +0 -55
  120. data/lib/graphql/directive/deprecated_directive.rb +0 -2
  121. data/lib/graphql/directive/include_directive.rb +0 -2
  122. data/lib/graphql/directive/skip_directive.rb +0 -2
  123. data/lib/graphql/directive.rb +0 -107
  124. data/lib/graphql/enum_type.rb +0 -133
  125. data/lib/graphql/execution/execute.rb +0 -333
  126. data/lib/graphql/execution/flatten.rb +0 -40
  127. data/lib/graphql/execution/typecast.rb +0 -50
  128. data/lib/graphql/field/resolve.rb +0 -59
  129. data/lib/graphql/field.rb +0 -226
  130. data/lib/graphql/float_type.rb +0 -2
  131. data/lib/graphql/function.rb +0 -128
  132. data/lib/graphql/id_type.rb +0 -2
  133. data/lib/graphql/input_object_type.rb +0 -138
  134. data/lib/graphql/int_type.rb +0 -2
  135. data/lib/graphql/interface_type.rb +0 -72
  136. data/lib/graphql/internal_representation/document.rb +0 -27
  137. data/lib/graphql/internal_representation/node.rb +0 -206
  138. data/lib/graphql/internal_representation/print.rb +0 -51
  139. data/lib/graphql/internal_representation/rewrite.rb +0 -184
  140. data/lib/graphql/internal_representation/scope.rb +0 -88
  141. data/lib/graphql/internal_representation/visit.rb +0 -36
  142. data/lib/graphql/internal_representation.rb +0 -7
  143. data/lib/graphql/list_type.rb +0 -80
  144. data/lib/graphql/non_null_type.rb +0 -71
  145. data/lib/graphql/object_type.rb +0 -130
  146. data/lib/graphql/query/arguments.rb +0 -189
  147. data/lib/graphql/query/arguments_cache.rb +0 -24
  148. data/lib/graphql/query/executor.rb +0 -52
  149. data/lib/graphql/query/serial_execution/field_resolution.rb +0 -92
  150. data/lib/graphql/query/serial_execution/operation_resolution.rb +0 -19
  151. data/lib/graphql/query/serial_execution/selection_resolution.rb +0 -23
  152. data/lib/graphql/query/serial_execution/value_resolution.rb +0 -87
  153. data/lib/graphql/query/serial_execution.rb +0 -40
  154. data/lib/graphql/relay/array_connection.rb +0 -83
  155. data/lib/graphql/relay/base_connection.rb +0 -189
  156. data/lib/graphql/relay/connection_instrumentation.rb +0 -54
  157. data/lib/graphql/relay/connection_resolve.rb +0 -43
  158. data/lib/graphql/relay/connection_type.rb +0 -54
  159. data/lib/graphql/relay/edge.rb +0 -27
  160. data/lib/graphql/relay/edge_type.rb +0 -19
  161. data/lib/graphql/relay/edges_instrumentation.rb +0 -39
  162. data/lib/graphql/relay/global_id_resolve.rb +0 -17
  163. data/lib/graphql/relay/mongo_relation_connection.rb +0 -50
  164. data/lib/graphql/relay/mutation/instrumentation.rb +0 -23
  165. data/lib/graphql/relay/mutation/resolve.rb +0 -56
  166. data/lib/graphql/relay/mutation/result.rb +0 -38
  167. data/lib/graphql/relay/mutation.rb +0 -106
  168. data/lib/graphql/relay/node.rb +0 -39
  169. data/lib/graphql/relay/page_info.rb +0 -7
  170. data/lib/graphql/relay/relation_connection.rb +0 -188
  171. data/lib/graphql/relay/type_extensions.rb +0 -32
  172. data/lib/graphql/scalar_type.rb +0 -91
  173. data/lib/graphql/schema/catchall_middleware.rb +0 -35
  174. data/lib/graphql/schema/default_parse_error.rb +0 -10
  175. data/lib/graphql/schema/default_type_error.rb +0 -17
  176. data/lib/graphql/schema/member/accepts_definition.rb +0 -164
  177. data/lib/graphql/schema/member/cached_graphql_definition.rb +0 -58
  178. data/lib/graphql/schema/member/instrumentation.rb +0 -131
  179. data/lib/graphql/schema/middleware_chain.rb +0 -82
  180. data/lib/graphql/schema/possible_types.rb +0 -44
  181. data/lib/graphql/schema/rescue_middleware.rb +0 -60
  182. data/lib/graphql/schema/timeout_middleware.rb +0 -88
  183. data/lib/graphql/schema/traversal.rb +0 -228
  184. data/lib/graphql/schema/validation.rb +0 -313
  185. data/lib/graphql/static_validation/default_visitor.rb +0 -15
  186. data/lib/graphql/static_validation/no_validate_visitor.rb +0 -10
  187. data/lib/graphql/string_type.rb +0 -2
  188. data/lib/graphql/subscriptions/subscription_root.rb +0 -76
  189. data/lib/graphql/tracing/skylight_tracing.rb +0 -70
  190. data/lib/graphql/types/relay/node_field.rb +0 -24
  191. data/lib/graphql/types/relay/nodes_field.rb +0 -43
  192. data/lib/graphql/union_type.rb +0 -115
  193. data/lib/graphql/upgrader/member.rb +0 -937
  194. data/lib/graphql/upgrader/schema.rb +0 -38
data/lib/graphql.rb CHANGED
@@ -4,7 +4,6 @@ require "json"
4
4
  require "set"
5
5
  require "singleton"
6
6
  require "forwardable"
7
- require "ostruct"
8
7
 
9
8
  module GraphQL
10
9
  # forwards-compat for argument handling
@@ -82,27 +81,8 @@ require "graphql/integer_decoding_error"
82
81
  require "graphql/integer_encoding_error"
83
82
  require "graphql/string_encoding_error"
84
83
  require "graphql/date_encoding_error"
85
-
86
- require "graphql/define"
87
- require "graphql/deprecation"
88
- require "graphql/base_type"
89
- require "graphql/object_type"
90
- require "graphql/enum_type"
91
- require "graphql/input_object_type"
92
- require "graphql/interface_type"
93
- require "graphql/list_type"
94
- require "graphql/non_null_type"
95
- require "graphql/union_type"
96
-
97
- require "graphql/argument"
98
- require "graphql/field"
99
84
  require "graphql/type_kinds"
100
-
101
- require "graphql/backwards_compatibility"
102
- require "graphql/scalar_type"
103
-
104
85
  require "graphql/name_validator"
105
-
106
86
  require "graphql/language"
107
87
 
108
88
  require_relative "./graphql/railtie" if defined? Rails::Railtie
@@ -117,15 +97,8 @@ require "graphql/query"
117
97
  require "graphql/types"
118
98
  require "graphql/dataloader"
119
99
  require "graphql/filter"
120
- require "graphql/internal_representation"
121
- require "graphql/directive"
122
100
  require "graphql/static_validation"
123
101
  require "graphql/execution"
124
- require "graphql/boolean_type"
125
- require "graphql/float_type"
126
- require "graphql/id_type"
127
- require "graphql/int_type"
128
- require "graphql/string_type"
129
102
  require "graphql/schema/built_in_types"
130
103
  require "graphql/schema/loader"
131
104
  require "graphql/schema/printer"
@@ -133,49 +106,11 @@ require "graphql/introspection"
133
106
  require "graphql/relay"
134
107
 
135
108
  require "graphql/version"
136
- require "graphql/compatibility"
137
- require "graphql/function"
138
109
  require "graphql/subscriptions"
139
110
  require "graphql/parse_error"
140
111
  require "graphql/backtrace"
141
112
 
142
- require "graphql/deprecated_dsl"
143
- require "graphql/authorization"
144
113
  require "graphql/unauthorized_error"
145
114
  require "graphql/unauthorized_field_error"
146
115
  require "graphql/load_application_object_failed_error"
147
- require "graphql/directive/include_directive"
148
- require "graphql/directive/skip_directive"
149
- require "graphql/directive/deprecated_directive"
150
-
151
- module GraphQL
152
- # Ruby has `deprecate_constant`,
153
- # but I don't see a way to give a nice error message in that case,
154
- # so I'm doing this instead.
155
- DEPRECATED_INT_TYPE = INT_TYPE
156
- DEPRECATED_FLOAT_TYPE = FLOAT_TYPE
157
- DEPRECATED_STRING_TYPE = STRING_TYPE
158
- DEPRECATED_BOOLEAN_TYPE = BOOLEAN_TYPE
159
- DEPRECATED_ID_TYPE = ID_TYPE
160
-
161
- remove_const :INT_TYPE
162
- remove_const :FLOAT_TYPE
163
- remove_const :STRING_TYPE
164
- remove_const :BOOLEAN_TYPE
165
- remove_const :ID_TYPE
166
-
167
- def self.const_missing(const_name)
168
- deprecated_const_name = :"DEPRECATED_#{const_name}"
169
- if const_defined?(deprecated_const_name)
170
- deprecated_type = const_get(deprecated_const_name)
171
- deprecated_caller = caller(1, 1).first
172
- # Don't warn about internal uses, like `types.Int`
173
- if !deprecated_caller.include?("lib/graphql")
174
- warn "GraphQL::#{const_name} is deprecated and will be removed in GraphQL-Ruby 2.0, use GraphQL::Types::#{deprecated_type.graphql_name} instead. (from #{deprecated_caller})"
175
- end
176
- deprecated_type
177
- else
178
- super
179
- end
180
- end
181
- end
116
+ require "graphql/deprecation"
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.13.23
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Mosolgo
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-05 00:00:00.000000000 Z
11
+ date: 2022-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: base64
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: benchmark-ips
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -70,72 +56,72 @@ dependencies:
70
56
  name: minitest
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ">="
59
+ - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '0'
61
+ version: 5.9.0
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - ">="
66
+ - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: '0'
68
+ version: 5.9.0
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: minitest-focus
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
- - - ">="
73
+ - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '0'
75
+ version: '1.1'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
- - - ">="
80
+ - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '0'
82
+ version: '1.1'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: minitest-reporters
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
- - - ">="
87
+ - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '0'
89
+ version: '1.0'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
- - - ">="
94
+ - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: '0'
96
+ version: '1.0'
111
97
  - !ruby/object:Gem::Dependency
112
- name: rake
98
+ name: racc
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
- - - ">="
101
+ - - "~>"
116
102
  - !ruby/object:Gem::Version
117
- version: '0'
103
+ version: '1.4'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
- - - ">="
108
+ - - "~>"
123
109
  - !ruby/object:Gem::Version
124
- version: '0'
110
+ version: '1.4'
125
111
  - !ruby/object:Gem::Dependency
126
- name: rake-compiler
112
+ name: rake
127
113
  requirement: !ruby/object:Gem::Requirement
128
114
  requirements:
129
- - - ">="
115
+ - - "~>"
130
116
  - !ruby/object:Gem::Version
131
- version: '0'
117
+ version: '12'
132
118
  type: :development
133
119
  prerelease: false
134
120
  version_requirements: !ruby/object:Gem::Requirement
135
121
  requirements:
136
- - - ">="
122
+ - - "~>"
137
123
  - !ruby/object:Gem::Version
138
- version: '0'
124
+ version: '12'
139
125
  - !ruby/object:Gem::Dependency
140
126
  name: rubocop
141
127
  requirement: !ruby/object:Gem::Requirement
@@ -150,20 +136,6 @@ dependencies:
150
136
  - - '='
151
137
  - !ruby/object:Gem::Version
152
138
  version: '1.12'
153
- - !ruby/object:Gem::Dependency
154
- name: parser
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
139
  - !ruby/object:Gem::Dependency
168
140
  name: jekyll
169
141
  requirement: !ruby/object:Gem::Requirement
@@ -305,7 +277,6 @@ files:
305
277
  - lib/generators/graphql/union_generator.rb
306
278
  - lib/graphql.rb
307
279
  - lib/graphql/analysis.rb
308
- - lib/graphql/analysis/analyze_query.rb
309
280
  - lib/graphql/analysis/ast.rb
310
281
  - lib/graphql/analysis/ast/analyzer.rb
311
282
  - lib/graphql/analysis/ast/field_usage.rb
@@ -314,66 +285,24 @@ files:
314
285
  - lib/graphql/analysis/ast/query_complexity.rb
315
286
  - lib/graphql/analysis/ast/query_depth.rb
316
287
  - lib/graphql/analysis/ast/visitor.rb
317
- - lib/graphql/analysis/field_usage.rb
318
- - lib/graphql/analysis/max_query_complexity.rb
319
- - lib/graphql/analysis/max_query_depth.rb
320
- - lib/graphql/analysis/query_complexity.rb
321
- - lib/graphql/analysis/query_depth.rb
322
- - lib/graphql/analysis/reducer_state.rb
323
288
  - lib/graphql/analysis_error.rb
324
- - lib/graphql/argument.rb
325
- - lib/graphql/authorization.rb
326
289
  - lib/graphql/backtrace.rb
327
290
  - lib/graphql/backtrace/inspect_result.rb
328
- - lib/graphql/backtrace/legacy_tracer.rb
329
291
  - lib/graphql/backtrace/table.rb
330
292
  - lib/graphql/backtrace/traced_error.rb
331
293
  - lib/graphql/backtrace/tracer.rb
332
- - lib/graphql/backwards_compatibility.rb
333
- - lib/graphql/base_type.rb
334
- - lib/graphql/boolean_type.rb
335
294
  - lib/graphql/coercion_error.rb
336
- - lib/graphql/compatibility.rb
337
- - lib/graphql/compatibility/execution_specification.rb
338
- - lib/graphql/compatibility/execution_specification/counter_schema.rb
339
- - lib/graphql/compatibility/execution_specification/specification_schema.rb
340
- - lib/graphql/compatibility/lazy_execution_specification.rb
341
- - lib/graphql/compatibility/lazy_execution_specification/lazy_schema.rb
342
- - lib/graphql/compatibility/query_parser_specification.rb
343
- - lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb
344
- - lib/graphql/compatibility/query_parser_specification/query_assertions.rb
345
- - lib/graphql/compatibility/schema_parser_specification.rb
346
295
  - lib/graphql/dataloader.rb
347
296
  - lib/graphql/dataloader/null_dataloader.rb
348
297
  - lib/graphql/dataloader/request.rb
349
298
  - lib/graphql/dataloader/request_all.rb
350
299
  - lib/graphql/dataloader/source.rb
351
300
  - lib/graphql/date_encoding_error.rb
352
- - lib/graphql/define.rb
353
- - lib/graphql/define/assign_argument.rb
354
- - lib/graphql/define/assign_connection.rb
355
- - lib/graphql/define/assign_enum_value.rb
356
- - lib/graphql/define/assign_global_id_field.rb
357
- - lib/graphql/define/assign_mutation_function.rb
358
- - lib/graphql/define/assign_object_field.rb
359
- - lib/graphql/define/defined_object_proxy.rb
360
- - lib/graphql/define/instance_definable.rb
361
- - lib/graphql/define/no_definition_error.rb
362
- - lib/graphql/define/non_null_with_bang.rb
363
- - lib/graphql/define/type_definer.rb
364
- - lib/graphql/deprecated_dsl.rb
365
301
  - lib/graphql/deprecation.rb
366
302
  - lib/graphql/dig.rb
367
- - lib/graphql/directive.rb
368
- - lib/graphql/directive/deprecated_directive.rb
369
- - lib/graphql/directive/include_directive.rb
370
- - lib/graphql/directive/skip_directive.rb
371
- - lib/graphql/enum_type.rb
372
303
  - lib/graphql/execution.rb
373
304
  - lib/graphql/execution/directive_checks.rb
374
305
  - lib/graphql/execution/errors.rb
375
- - lib/graphql/execution/execute.rb
376
- - lib/graphql/execution/flatten.rb
377
306
  - lib/graphql/execution/instrumentation.rb
378
307
  - lib/graphql/execution/interpreter.rb
379
308
  - lib/graphql/execution/interpreter/argument_value.rb
@@ -388,26 +317,10 @@ files:
388
317
  - lib/graphql/execution/lazy/resolve.rb
389
318
  - lib/graphql/execution/lookahead.rb
390
319
  - lib/graphql/execution/multiplex.rb
391
- - lib/graphql/execution/typecast.rb
392
320
  - lib/graphql/execution_error.rb
393
- - lib/graphql/field.rb
394
- - lib/graphql/field/resolve.rb
395
321
  - lib/graphql/filter.rb
396
- - lib/graphql/float_type.rb
397
- - lib/graphql/function.rb
398
- - lib/graphql/id_type.rb
399
- - lib/graphql/input_object_type.rb
400
- - lib/graphql/int_type.rb
401
322
  - lib/graphql/integer_decoding_error.rb
402
323
  - lib/graphql/integer_encoding_error.rb
403
- - lib/graphql/interface_type.rb
404
- - lib/graphql/internal_representation.rb
405
- - lib/graphql/internal_representation/document.rb
406
- - lib/graphql/internal_representation/node.rb
407
- - lib/graphql/internal_representation/print.rb
408
- - lib/graphql/internal_representation/rewrite.rb
409
- - lib/graphql/internal_representation/scope.rb
410
- - lib/graphql/internal_representation/visit.rb
411
324
  - lib/graphql/introspection.rb
412
325
  - lib/graphql/introspection/base_object.rb
413
326
  - lib/graphql/introspection/directive_location_enum.rb
@@ -438,11 +351,8 @@ files:
438
351
  - lib/graphql/language/sanitized_printer.rb
439
352
  - lib/graphql/language/token.rb
440
353
  - lib/graphql/language/visitor.rb
441
- - lib/graphql/list_type.rb
442
354
  - lib/graphql/load_application_object_failed_error.rb
443
355
  - lib/graphql/name_validator.rb
444
- - lib/graphql/non_null_type.rb
445
- - lib/graphql/object_type.rb
446
356
  - lib/graphql/pagination.rb
447
357
  - lib/graphql/pagination/active_record_relation_connection.rb
448
358
  - lib/graphql/pagination/array_connection.rb
@@ -453,20 +363,12 @@ files:
453
363
  - lib/graphql/pagination/sequel_dataset_connection.rb
454
364
  - lib/graphql/parse_error.rb
455
365
  - lib/graphql/query.rb
456
- - lib/graphql/query/arguments.rb
457
- - lib/graphql/query/arguments_cache.rb
458
366
  - lib/graphql/query/context.rb
459
- - lib/graphql/query/executor.rb
460
367
  - lib/graphql/query/fingerprint.rb
461
368
  - lib/graphql/query/input_validation_result.rb
462
369
  - lib/graphql/query/literal_input.rb
463
370
  - lib/graphql/query/null_context.rb
464
371
  - lib/graphql/query/result.rb
465
- - lib/graphql/query/serial_execution.rb
466
- - lib/graphql/query/serial_execution/field_resolution.rb
467
- - lib/graphql/query/serial_execution/operation_resolution.rb
468
- - lib/graphql/query/serial_execution/selection_resolution.rb
469
- - lib/graphql/query/serial_execution/value_resolution.rb
470
372
  - lib/graphql/query/validation_pipeline.rb
471
373
  - lib/graphql/query/variable_validation_error.rb
472
374
  - lib/graphql/query/variables.rb
@@ -474,31 +376,12 @@ files:
474
376
  - lib/graphql/rake_task.rb
475
377
  - lib/graphql/rake_task/validate.rb
476
378
  - lib/graphql/relay.rb
477
- - lib/graphql/relay/array_connection.rb
478
- - lib/graphql/relay/base_connection.rb
479
- - lib/graphql/relay/connection_instrumentation.rb
480
- - lib/graphql/relay/connection_resolve.rb
481
- - lib/graphql/relay/connection_type.rb
482
- - lib/graphql/relay/edge.rb
483
- - lib/graphql/relay/edge_type.rb
484
- - lib/graphql/relay/edges_instrumentation.rb
485
- - lib/graphql/relay/global_id_resolve.rb
486
- - lib/graphql/relay/mongo_relation_connection.rb
487
- - lib/graphql/relay/mutation.rb
488
- - lib/graphql/relay/mutation/instrumentation.rb
489
- - lib/graphql/relay/mutation/resolve.rb
490
- - lib/graphql/relay/mutation/result.rb
491
- - lib/graphql/relay/node.rb
492
- - lib/graphql/relay/page_info.rb
493
379
  - lib/graphql/relay/range_add.rb
494
- - lib/graphql/relay/relation_connection.rb
495
- - lib/graphql/relay/type_extensions.rb
496
380
  - lib/graphql/rubocop.rb
497
381
  - lib/graphql/rubocop/graphql/base_cop.rb
498
382
  - lib/graphql/rubocop/graphql/default_null_true.rb
499
383
  - lib/graphql/rubocop/graphql/default_required_true.rb
500
384
  - lib/graphql/runtime_type_error.rb
501
- - lib/graphql/scalar_type.rb
502
385
  - lib/graphql/schema.rb
503
386
  - lib/graphql/schema/addition.rb
504
387
  - lib/graphql/schema/argument.rb
@@ -508,9 +391,6 @@ files:
508
391
  - lib/graphql/schema/build_from_definition/resolve_map.rb
509
392
  - lib/graphql/schema/build_from_definition/resolve_map/default_resolve.rb
510
393
  - lib/graphql/schema/built_in_types.rb
511
- - lib/graphql/schema/catchall_middleware.rb
512
- - lib/graphql/schema/default_parse_error.rb
513
- - lib/graphql/schema/default_type_error.rb
514
394
  - lib/graphql/schema/directive.rb
515
395
  - lib/graphql/schema/directive/deprecated.rb
516
396
  - lib/graphql/schema/directive/feature.rb
@@ -534,10 +414,8 @@ files:
534
414
  - lib/graphql/schema/list.rb
535
415
  - lib/graphql/schema/loader.rb
536
416
  - lib/graphql/schema/member.rb
537
- - lib/graphql/schema/member/accepts_definition.rb
538
417
  - lib/graphql/schema/member/base_dsl_methods.rb
539
418
  - lib/graphql/schema/member/build_type.rb
540
- - lib/graphql/schema/member/cached_graphql_definition.rb
541
419
  - lib/graphql/schema/member/graphql_type_names.rb
542
420
  - lib/graphql/schema/member/has_arguments.rb
543
421
  - lib/graphql/schema/member/has_ast_node.rb
@@ -548,32 +426,25 @@ files:
548
426
  - lib/graphql/schema/member/has_path.rb
549
427
  - lib/graphql/schema/member/has_unresolved_type_error.rb
550
428
  - lib/graphql/schema/member/has_validators.rb
551
- - lib/graphql/schema/member/instrumentation.rb
552
429
  - lib/graphql/schema/member/relay_shortcuts.rb
553
430
  - lib/graphql/schema/member/scoped.rb
554
431
  - lib/graphql/schema/member/type_system_helpers.rb
555
432
  - lib/graphql/schema/member/validates_input.rb
556
- - lib/graphql/schema/middleware_chain.rb
557
433
  - lib/graphql/schema/mutation.rb
558
434
  - lib/graphql/schema/non_null.rb
559
435
  - lib/graphql/schema/null_mask.rb
560
436
  - lib/graphql/schema/object.rb
561
- - lib/graphql/schema/possible_types.rb
562
437
  - lib/graphql/schema/printer.rb
563
438
  - lib/graphql/schema/relay_classic_mutation.rb
564
- - lib/graphql/schema/rescue_middleware.rb
565
439
  - lib/graphql/schema/resolver.rb
566
440
  - lib/graphql/schema/resolver/has_payload_type.rb
567
441
  - lib/graphql/schema/scalar.rb
568
442
  - lib/graphql/schema/subscription.rb
569
443
  - lib/graphql/schema/timeout.rb
570
- - lib/graphql/schema/timeout_middleware.rb
571
- - lib/graphql/schema/traversal.rb
572
444
  - lib/graphql/schema/type_expression.rb
573
445
  - lib/graphql/schema/type_membership.rb
574
446
  - lib/graphql/schema/union.rb
575
447
  - lib/graphql/schema/unique_within_type.rb
576
- - lib/graphql/schema/validation.rb
577
448
  - lib/graphql/schema/validator.rb
578
449
  - lib/graphql/schema/validator/allow_blank_validator.rb
579
450
  - lib/graphql/schema/validator/allow_null_validator.rb
@@ -588,12 +459,10 @@ files:
588
459
  - lib/graphql/static_validation.rb
589
460
  - lib/graphql/static_validation/all_rules.rb
590
461
  - lib/graphql/static_validation/base_visitor.rb
591
- - lib/graphql/static_validation/default_visitor.rb
592
462
  - lib/graphql/static_validation/definition_dependencies.rb
593
463
  - lib/graphql/static_validation/error.rb
594
464
  - lib/graphql/static_validation/interpreter_visitor.rb
595
465
  - lib/graphql/static_validation/literal_validator.rb
596
- - lib/graphql/static_validation/no_validate_visitor.rb
597
466
  - lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
598
467
  - lib/graphql/static_validation/rules/argument_literals_are_compatible_error.rb
599
468
  - lib/graphql/static_validation/rules/argument_names_are_unique.rb
@@ -657,7 +526,6 @@ files:
657
526
  - lib/graphql/static_validation/validation_timeout_error.rb
658
527
  - lib/graphql/static_validation/validator.rb
659
528
  - lib/graphql/string_encoding_error.rb
660
- - lib/graphql/string_type.rb
661
529
  - lib/graphql/subscriptions.rb
662
530
  - lib/graphql/subscriptions/action_cable_subscriptions.rb
663
531
  - lib/graphql/subscriptions/broadcast_analyzer.rb
@@ -665,7 +533,6 @@ files:
665
533
  - lib/graphql/subscriptions/event.rb
666
534
  - lib/graphql/subscriptions/instrumentation.rb
667
535
  - lib/graphql/subscriptions/serialize.rb
668
- - lib/graphql/subscriptions/subscription_root.rb
669
536
  - lib/graphql/tracing.rb
670
537
  - lib/graphql/tracing/active_support_notifications_tracing.rb
671
538
  - lib/graphql/tracing/appoptics_tracing.rb
@@ -677,7 +544,6 @@ files:
677
544
  - lib/graphql/tracing/prometheus_tracing.rb
678
545
  - lib/graphql/tracing/prometheus_tracing/graphql_collector.rb
679
546
  - lib/graphql/tracing/scout_tracing.rb
680
- - lib/graphql/tracing/skylight_tracing.rb
681
547
  - lib/graphql/tracing/statsd_tracing.rb
682
548
  - lib/graphql/type_kinds.rb
683
549
  - lib/graphql/types.rb
@@ -699,17 +565,12 @@ files:
699
565
  - lib/graphql/types/relay/has_nodes_field.rb
700
566
  - lib/graphql/types/relay/node.rb
701
567
  - lib/graphql/types/relay/node_behaviors.rb
702
- - lib/graphql/types/relay/node_field.rb
703
- - lib/graphql/types/relay/nodes_field.rb
704
568
  - lib/graphql/types/relay/page_info.rb
705
569
  - lib/graphql/types/relay/page_info_behaviors.rb
706
570
  - lib/graphql/types/string.rb
707
571
  - lib/graphql/unauthorized_error.rb
708
572
  - lib/graphql/unauthorized_field_error.rb
709
- - lib/graphql/union_type.rb
710
573
  - lib/graphql/unresolved_type_error.rb
711
- - lib/graphql/upgrader/member.rb
712
- - lib/graphql/upgrader/schema.rb
713
574
  - lib/graphql/version.rb
714
575
  - readme.md
715
576
  homepage: https://github.com/rmosolgo/graphql-ruby
@@ -721,7 +582,7 @@ metadata:
721
582
  source_code_uri: https://github.com/rmosolgo/graphql-ruby
722
583
  bug_tracker_uri: https://github.com/rmosolgo/graphql-ruby/issues
723
584
  mailing_list_uri: https://tinyletter.com/graphql-ruby
724
- post_install_message:
585
+ post_install_message:
725
586
  rdoc_options: []
726
587
  require_paths:
727
588
  - lib
@@ -736,8 +597,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
736
597
  - !ruby/object:Gem::Version
737
598
  version: '0'
738
599
  requirements: []
739
- rubygems_version: 3.5.3
740
- signing_key:
600
+ rubygems_version: 3.1.6
601
+ signing_key:
741
602
  specification_version: 4
742
603
  summary: A GraphQL language and runtime for Ruby
743
604
  test_files: []
@@ -1,98 +0,0 @@
1
- # frozen_string_literal: true
2
- module GraphQL
3
- module Analysis
4
- module_function
5
-
6
- def use(schema_class)
7
- schema = schema_class.is_a?(Class) ? schema_class : schema_class.target
8
- schema.analysis_engine = self
9
- end
10
-
11
- # @return [void]
12
- def analyze_multiplex(multiplex, analyzers)
13
- multiplex.trace("analyze_multiplex", { multiplex: multiplex }) do
14
- reducer_states = analyzers.map { |r| ReducerState.new(r, multiplex) }
15
- query_results = multiplex.queries.map do |query|
16
- if query.valid?
17
- analyze_query(query, query.analyzers, multiplex_states: reducer_states)
18
- else
19
- []
20
- end
21
- end
22
-
23
- multiplex_results = reducer_states.map(&:finalize_reducer)
24
- multiplex_errors = analysis_errors(multiplex_results)
25
-
26
- multiplex.queries.each_with_index do |query, idx|
27
- query.analysis_errors = multiplex_errors + analysis_errors(query_results[idx])
28
- end
29
- end
30
- nil
31
- end
32
-
33
- # Visit `query`'s internal representation, calling `analyzers` along the way.
34
- #
35
- # - First, query analyzers are filtered down by calling `.analyze?(query)`, if they respond to that method
36
- # - Then, query analyzers are initialized by calling `.initial_value(query)`, if they respond to that method.
37
- # - Then, they receive `.call(memo, visit_type, irep_node)`, where visit type is `:enter` or `:leave`.
38
- # - Last, they receive `.final_value(memo)`, if they respond to that method.
39
- #
40
- # It returns an array of final `memo` values in the order that `analyzers` were passed in.
41
- #
42
- # @param query [GraphQL::Query]
43
- # @param analyzers [Array<#call>] Objects that respond to `#call(memo, visit_type, irep_node)`
44
- # @return [Array<Any>] Results from those analyzers
45
- def analyze_query(query, analyzers, multiplex_states: [])
46
- GraphQL::Deprecation.warn "Legacy analysis will be removed in GraphQL-Ruby 2.0, please upgrade to AST Analysis: https://graphql-ruby.org/queries/ast_analysis.html (schema: #{query.schema})"
47
-
48
- query.trace("analyze_query", { query: query }) do
49
- analyzers_to_run = analyzers.select do |analyzer|
50
- if analyzer.respond_to?(:analyze?)
51
- analyzer.analyze?(query)
52
- else
53
- true
54
- end
55
- end
56
-
57
- reducer_states = analyzers_to_run.map { |r| ReducerState.new(r, query) } + multiplex_states
58
-
59
- irep = query.internal_representation
60
-
61
- irep.operation_definitions.each do |name, op_node|
62
- reduce_node(op_node, reducer_states)
63
- end
64
-
65
- reducer_states.map(&:finalize_reducer)
66
- end
67
- end
68
-
69
- private
70
-
71
- module_function
72
-
73
- # Enter the node, visit its children, then leave the node.
74
- def reduce_node(irep_node, reducer_states)
75
- visit_analyzers(:enter, irep_node, reducer_states)
76
-
77
- irep_node.typed_children.each do |type_defn, children|
78
- children.each do |name, child_irep_node|
79
- reduce_node(child_irep_node, reducer_states)
80
- end
81
- end
82
-
83
- visit_analyzers(:leave, irep_node, reducer_states)
84
- end
85
-
86
- def visit_analyzers(visit_type, irep_node, reducer_states)
87
- reducer_states.each do |reducer_state|
88
- next_memo = reducer_state.call(visit_type, irep_node)
89
-
90
- reducer_state.memo = next_memo
91
- end
92
- end
93
-
94
- def analysis_errors(results)
95
- results.flatten.select { |r| r.is_a?(GraphQL::AnalysisError) }
96
- end
97
- end
98
- end
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
- module GraphQL
3
- module Analysis
4
- # A query reducer for tracking both field usage and deprecated field usage.
5
- #
6
- # @example Logging field usage and deprecated field usage
7
- # Schema.query_analyzers << GraphQL::Analysis::FieldUsage.new { |query, used_fields, used_deprecated_fields|
8
- # puts "Used GraphQL fields: #{used_fields.join(', ')}"
9
- # puts "Used deprecated GraphQL fields: #{used_deprecated_fields.join(', ')}"
10
- # }
11
- # Schema.execute(query_str)
12
- # # Used GraphQL fields: Cheese.id, Cheese.fatContent, Query.cheese
13
- # # Used deprecated GraphQL fields: Cheese.fatContent
14
- #
15
- class FieldUsage
16
- def initialize(&block)
17
- @field_usage_handler = block
18
- end
19
-
20
- def initial_value(query)
21
- {
22
- query: query,
23
- used_fields: Set.new,
24
- used_deprecated_fields: Set.new
25
- }
26
- end
27
-
28
- def call(memo, visit_type, irep_node)
29
- if irep_node.ast_node.is_a?(GraphQL::Language::Nodes::Field) && visit_type == :leave
30
- field = "#{irep_node.owner_type.name}.#{irep_node.definition.name}"
31
- memo[:used_fields] << field
32
- if irep_node.definition.deprecation_reason
33
- memo[:used_deprecated_fields] << field
34
- end
35
- end
36
-
37
- memo
38
- end
39
-
40
- def final_value(memo)
41
- @field_usage_handler.call(memo[:query], memo[:used_fields].to_a, memo[:used_deprecated_fields].to_a)
42
- end
43
- end
44
- end
45
- end