graphql 1.13.12 → 2.0.21

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 (273) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/graphql/install_generator.rb +1 -1
  3. data/lib/generators/graphql/relay.rb +3 -17
  4. data/lib/generators/graphql/templates/schema.erb +3 -0
  5. data/lib/graphql/analysis/ast/field_usage.rb +3 -1
  6. data/lib/graphql/analysis/ast/max_query_complexity.rb +0 -1
  7. data/lib/graphql/analysis/ast/query_complexity.rb +1 -1
  8. data/lib/graphql/analysis/ast/query_depth.rb +0 -1
  9. data/lib/graphql/analysis/ast/visitor.rb +43 -36
  10. data/lib/graphql/analysis/ast.rb +2 -12
  11. data/lib/graphql/analysis.rb +0 -7
  12. data/lib/graphql/backtrace/table.rb +2 -20
  13. data/lib/graphql/backtrace/trace.rb +96 -0
  14. data/lib/graphql/backtrace/tracer.rb +2 -3
  15. data/lib/graphql/backtrace.rb +7 -8
  16. data/lib/graphql/dataloader/null_dataloader.rb +3 -1
  17. data/lib/graphql/dataloader/source.rb +9 -0
  18. data/lib/graphql/dataloader.rb +4 -1
  19. data/lib/graphql/dig.rb +1 -1
  20. data/lib/graphql/execution/errors.rb +12 -82
  21. data/lib/graphql/execution/interpreter/arguments.rb +1 -1
  22. data/lib/graphql/execution/interpreter/arguments_cache.rb +2 -3
  23. data/lib/graphql/execution/interpreter/resolve.rb +26 -0
  24. data/lib/graphql/execution/interpreter/runtime.rb +300 -222
  25. data/lib/graphql/execution/interpreter.rb +187 -78
  26. data/lib/graphql/execution/lazy.rb +7 -21
  27. data/lib/graphql/execution/lookahead.rb +44 -40
  28. data/lib/graphql/execution/multiplex.rb +3 -174
  29. data/lib/graphql/execution.rb +11 -4
  30. data/lib/graphql/filter.rb +7 -2
  31. data/lib/graphql/introspection/directive_type.rb +2 -2
  32. data/lib/graphql/introspection/dynamic_fields.rb +3 -8
  33. data/lib/graphql/introspection/entry_points.rb +2 -15
  34. data/lib/graphql/introspection/field_type.rb +1 -1
  35. data/lib/graphql/introspection/schema_type.rb +2 -2
  36. data/lib/graphql/introspection/type_type.rb +13 -6
  37. data/lib/graphql/introspection.rb +4 -3
  38. data/lib/graphql/language/document_from_schema_definition.rb +43 -44
  39. data/lib/graphql/language/lexer.rb +216 -1488
  40. data/lib/graphql/language/nodes.rb +66 -40
  41. data/lib/graphql/language/parser.rb +539 -510
  42. data/lib/graphql/language/parser.y +53 -44
  43. data/lib/graphql/language/printer.rb +37 -21
  44. data/lib/graphql/language/visitor.rb +191 -83
  45. data/lib/graphql/pagination/active_record_relation_connection.rb +0 -8
  46. data/lib/graphql/pagination/array_connection.rb +4 -2
  47. data/lib/graphql/pagination/connection.rb +33 -6
  48. data/lib/graphql/pagination/connections.rb +3 -28
  49. data/lib/graphql/pagination/relation_connection.rb +2 -0
  50. data/lib/graphql/query/context.rb +156 -196
  51. data/lib/graphql/query/input_validation_result.rb +10 -1
  52. data/lib/graphql/query/null_context.rb +1 -4
  53. data/lib/graphql/query/validation_pipeline.rb +12 -37
  54. data/lib/graphql/query/variable_validation_error.rb +2 -2
  55. data/lib/graphql/query/variables.rb +35 -21
  56. data/lib/graphql/query.rb +39 -46
  57. data/lib/graphql/railtie.rb +0 -104
  58. data/lib/graphql/rake_task/validate.rb +1 -1
  59. data/lib/graphql/rake_task.rb +29 -1
  60. data/lib/graphql/relay/range_add.rb +9 -20
  61. data/lib/graphql/relay.rb +0 -15
  62. data/lib/graphql/schema/addition.rb +7 -9
  63. data/lib/graphql/schema/argument.rb +38 -47
  64. data/lib/graphql/schema/build_from_definition.rb +47 -21
  65. data/lib/graphql/schema/directive/one_of.rb +12 -0
  66. data/lib/graphql/schema/directive/transform.rb +1 -1
  67. data/lib/graphql/schema/directive.rb +12 -23
  68. data/lib/graphql/schema/enum.rb +29 -41
  69. data/lib/graphql/schema/enum_value.rb +2 -25
  70. data/lib/graphql/schema/field/connection_extension.rb +4 -0
  71. data/lib/graphql/schema/field.rb +256 -349
  72. data/lib/graphql/schema/field_extension.rb +1 -4
  73. data/lib/graphql/schema/find_inherited_value.rb +2 -7
  74. data/lib/graphql/schema/input_object.rb +57 -69
  75. data/lib/graphql/schema/interface.rb +0 -35
  76. data/lib/graphql/schema/introspection_system.rb +3 -8
  77. data/lib/graphql/schema/late_bound_type.rb +8 -2
  78. data/lib/graphql/schema/list.rb +18 -9
  79. data/lib/graphql/schema/loader.rb +1 -2
  80. data/lib/graphql/schema/member/base_dsl_methods.rb +17 -19
  81. data/lib/graphql/schema/member/build_type.rb +5 -7
  82. data/lib/graphql/schema/member/has_arguments.rb +147 -56
  83. data/lib/graphql/schema/member/has_ast_node.rb +12 -0
  84. data/lib/graphql/schema/member/has_deprecation_reason.rb +3 -4
  85. data/lib/graphql/schema/member/has_directives.rb +81 -61
  86. data/lib/graphql/schema/member/has_fields.rb +97 -40
  87. data/lib/graphql/schema/member/has_interfaces.rb +49 -10
  88. data/lib/graphql/schema/member/has_validators.rb +32 -6
  89. data/lib/graphql/schema/member/relay_shortcuts.rb +47 -2
  90. data/lib/graphql/schema/member/type_system_helpers.rb +17 -0
  91. data/lib/graphql/schema/member/validates_input.rb +3 -3
  92. data/lib/graphql/schema/member.rb +0 -6
  93. data/lib/graphql/schema/mutation.rb +0 -9
  94. data/lib/graphql/schema/non_null.rb +3 -9
  95. data/lib/graphql/schema/object.rb +15 -52
  96. data/lib/graphql/schema/relay_classic_mutation.rb +53 -42
  97. data/lib/graphql/schema/resolver/has_payload_type.rb +20 -10
  98. data/lib/graphql/schema/resolver.rb +43 -44
  99. data/lib/graphql/schema/scalar.rb +8 -23
  100. data/lib/graphql/schema/subscription.rb +0 -7
  101. data/lib/graphql/schema/timeout.rb +24 -28
  102. data/lib/graphql/schema/type_membership.rb +3 -0
  103. data/lib/graphql/schema/union.rb +10 -17
  104. data/lib/graphql/schema/validator.rb +1 -1
  105. data/lib/graphql/schema/warden.rb +37 -9
  106. data/lib/graphql/schema/wrapper.rb +0 -5
  107. data/lib/graphql/schema.rb +265 -968
  108. data/lib/graphql/static_validation/all_rules.rb +1 -0
  109. data/lib/graphql/static_validation/base_visitor.rb +4 -21
  110. data/lib/graphql/static_validation/definition_dependencies.rb +7 -1
  111. data/lib/graphql/static_validation/error.rb +2 -2
  112. data/lib/graphql/static_validation/literal_validator.rb +19 -1
  113. data/lib/graphql/static_validation/rules/directives_are_defined.rb +11 -5
  114. data/lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb +12 -12
  115. data/lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb +12 -4
  116. data/lib/graphql/static_validation/rules/fields_will_merge.rb +2 -2
  117. data/lib/graphql/static_validation/rules/one_of_input_objects_are_valid.rb +66 -0
  118. data/lib/graphql/static_validation/rules/one_of_input_objects_are_valid_error.rb +29 -0
  119. data/lib/graphql/static_validation/rules/unique_directives_per_location.rb +12 -6
  120. data/lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed.rb +1 -1
  121. data/lib/graphql/static_validation/validator.rb +3 -25
  122. data/lib/graphql/static_validation.rb +0 -2
  123. data/lib/graphql/subscriptions/action_cable_subscriptions.rb +7 -1
  124. data/lib/graphql/subscriptions/default_subscription_resolve_extension.rb +38 -1
  125. data/lib/graphql/subscriptions/event.rb +3 -8
  126. data/lib/graphql/subscriptions/instrumentation.rb +0 -51
  127. data/lib/graphql/subscriptions.rb +32 -20
  128. data/lib/graphql/tracing/active_support_notifications_trace.rb +16 -0
  129. data/lib/graphql/tracing/appoptics_trace.rb +231 -0
  130. data/lib/graphql/tracing/appsignal_trace.rb +77 -0
  131. data/lib/graphql/tracing/data_dog_trace.rb +148 -0
  132. data/lib/graphql/tracing/data_dog_tracing.rb +21 -2
  133. data/lib/graphql/tracing/legacy_trace.rb +65 -0
  134. data/lib/graphql/tracing/new_relic_trace.rb +75 -0
  135. data/lib/graphql/tracing/notifications_trace.rb +42 -0
  136. data/lib/graphql/tracing/platform_trace.rb +109 -0
  137. data/lib/graphql/tracing/platform_tracing.rb +33 -43
  138. data/lib/graphql/tracing/prometheus_trace.rb +89 -0
  139. data/lib/graphql/tracing/prometheus_tracing/graphql_collector.rb +1 -1
  140. data/lib/graphql/tracing/prometheus_tracing.rb +3 -3
  141. data/lib/graphql/tracing/scout_trace.rb +72 -0
  142. data/lib/graphql/tracing/statsd_trace.rb +56 -0
  143. data/lib/graphql/tracing/trace.rb +75 -0
  144. data/lib/graphql/tracing.rb +16 -40
  145. data/lib/graphql/type_kinds.rb +6 -3
  146. data/lib/graphql/types/iso_8601_date.rb +4 -1
  147. data/lib/graphql/types/iso_8601_date_time.rb +4 -0
  148. data/lib/graphql/types/relay/base_connection.rb +16 -6
  149. data/lib/graphql/types/relay/connection_behaviors.rb +29 -27
  150. data/lib/graphql/types/relay/edge_behaviors.rb +16 -5
  151. data/lib/graphql/types/relay/node_behaviors.rb +12 -2
  152. data/lib/graphql/types/relay/page_info_behaviors.rb +7 -2
  153. data/lib/graphql/types/relay.rb +0 -3
  154. data/lib/graphql/types/string.rb +1 -1
  155. data/lib/graphql/version.rb +1 -1
  156. data/lib/graphql.rb +17 -74
  157. metadata +33 -133
  158. data/lib/graphql/analysis/analyze_query.rb +0 -98
  159. data/lib/graphql/analysis/field_usage.rb +0 -45
  160. data/lib/graphql/analysis/max_query_complexity.rb +0 -26
  161. data/lib/graphql/analysis/max_query_depth.rb +0 -26
  162. data/lib/graphql/analysis/query_complexity.rb +0 -88
  163. data/lib/graphql/analysis/query_depth.rb +0 -43
  164. data/lib/graphql/analysis/reducer_state.rb +0 -48
  165. data/lib/graphql/argument.rb +0 -131
  166. data/lib/graphql/authorization.rb +0 -82
  167. data/lib/graphql/backtrace/legacy_tracer.rb +0 -56
  168. data/lib/graphql/backwards_compatibility.rb +0 -61
  169. data/lib/graphql/base_type.rb +0 -232
  170. data/lib/graphql/boolean_type.rb +0 -2
  171. data/lib/graphql/compatibility/execution_specification/counter_schema.rb +0 -53
  172. data/lib/graphql/compatibility/execution_specification/specification_schema.rb +0 -200
  173. data/lib/graphql/compatibility/execution_specification.rb +0 -436
  174. data/lib/graphql/compatibility/lazy_execution_specification/lazy_schema.rb +0 -111
  175. data/lib/graphql/compatibility/lazy_execution_specification.rb +0 -215
  176. data/lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb +0 -87
  177. data/lib/graphql/compatibility/query_parser_specification/query_assertions.rb +0 -79
  178. data/lib/graphql/compatibility/query_parser_specification.rb +0 -266
  179. data/lib/graphql/compatibility/schema_parser_specification.rb +0 -682
  180. data/lib/graphql/compatibility.rb +0 -5
  181. data/lib/graphql/define/assign_argument.rb +0 -12
  182. data/lib/graphql/define/assign_connection.rb +0 -13
  183. data/lib/graphql/define/assign_enum_value.rb +0 -18
  184. data/lib/graphql/define/assign_global_id_field.rb +0 -11
  185. data/lib/graphql/define/assign_mutation_function.rb +0 -34
  186. data/lib/graphql/define/assign_object_field.rb +0 -42
  187. data/lib/graphql/define/defined_object_proxy.rb +0 -53
  188. data/lib/graphql/define/instance_definable.rb +0 -255
  189. data/lib/graphql/define/no_definition_error.rb +0 -7
  190. data/lib/graphql/define/non_null_with_bang.rb +0 -16
  191. data/lib/graphql/define/type_definer.rb +0 -31
  192. data/lib/graphql/define.rb +0 -31
  193. data/lib/graphql/deprecated_dsl.rb +0 -55
  194. data/lib/graphql/directive/deprecated_directive.rb +0 -2
  195. data/lib/graphql/directive/include_directive.rb +0 -2
  196. data/lib/graphql/directive/skip_directive.rb +0 -2
  197. data/lib/graphql/directive.rb +0 -107
  198. data/lib/graphql/enum_type.rb +0 -133
  199. data/lib/graphql/execution/execute.rb +0 -333
  200. data/lib/graphql/execution/flatten.rb +0 -40
  201. data/lib/graphql/execution/instrumentation.rb +0 -92
  202. data/lib/graphql/execution/lazy/resolve.rb +0 -91
  203. data/lib/graphql/execution/typecast.rb +0 -50
  204. data/lib/graphql/field/resolve.rb +0 -59
  205. data/lib/graphql/field.rb +0 -226
  206. data/lib/graphql/float_type.rb +0 -2
  207. data/lib/graphql/function.rb +0 -128
  208. data/lib/graphql/id_type.rb +0 -2
  209. data/lib/graphql/input_object_type.rb +0 -138
  210. data/lib/graphql/int_type.rb +0 -2
  211. data/lib/graphql/interface_type.rb +0 -72
  212. data/lib/graphql/internal_representation/document.rb +0 -27
  213. data/lib/graphql/internal_representation/node.rb +0 -206
  214. data/lib/graphql/internal_representation/print.rb +0 -51
  215. data/lib/graphql/internal_representation/rewrite.rb +0 -184
  216. data/lib/graphql/internal_representation/scope.rb +0 -88
  217. data/lib/graphql/internal_representation/visit.rb +0 -36
  218. data/lib/graphql/internal_representation.rb +0 -7
  219. data/lib/graphql/language/lexer.rl +0 -260
  220. data/lib/graphql/list_type.rb +0 -80
  221. data/lib/graphql/non_null_type.rb +0 -71
  222. data/lib/graphql/object_type.rb +0 -130
  223. data/lib/graphql/query/arguments.rb +0 -189
  224. data/lib/graphql/query/arguments_cache.rb +0 -24
  225. data/lib/graphql/query/executor.rb +0 -52
  226. data/lib/graphql/query/literal_input.rb +0 -136
  227. data/lib/graphql/query/serial_execution/field_resolution.rb +0 -92
  228. data/lib/graphql/query/serial_execution/operation_resolution.rb +0 -19
  229. data/lib/graphql/query/serial_execution/selection_resolution.rb +0 -23
  230. data/lib/graphql/query/serial_execution/value_resolution.rb +0 -87
  231. data/lib/graphql/query/serial_execution.rb +0 -40
  232. data/lib/graphql/relay/array_connection.rb +0 -83
  233. data/lib/graphql/relay/base_connection.rb +0 -189
  234. data/lib/graphql/relay/connection_instrumentation.rb +0 -54
  235. data/lib/graphql/relay/connection_resolve.rb +0 -43
  236. data/lib/graphql/relay/connection_type.rb +0 -54
  237. data/lib/graphql/relay/edge.rb +0 -27
  238. data/lib/graphql/relay/edge_type.rb +0 -19
  239. data/lib/graphql/relay/edges_instrumentation.rb +0 -39
  240. data/lib/graphql/relay/global_id_resolve.rb +0 -17
  241. data/lib/graphql/relay/mongo_relation_connection.rb +0 -50
  242. data/lib/graphql/relay/mutation/instrumentation.rb +0 -23
  243. data/lib/graphql/relay/mutation/resolve.rb +0 -56
  244. data/lib/graphql/relay/mutation/result.rb +0 -38
  245. data/lib/graphql/relay/mutation.rb +0 -106
  246. data/lib/graphql/relay/node.rb +0 -39
  247. data/lib/graphql/relay/page_info.rb +0 -7
  248. data/lib/graphql/relay/relation_connection.rb +0 -188
  249. data/lib/graphql/relay/type_extensions.rb +0 -32
  250. data/lib/graphql/scalar_type.rb +0 -91
  251. data/lib/graphql/schema/catchall_middleware.rb +0 -35
  252. data/lib/graphql/schema/default_parse_error.rb +0 -10
  253. data/lib/graphql/schema/default_type_error.rb +0 -17
  254. data/lib/graphql/schema/member/accepts_definition.rb +0 -164
  255. data/lib/graphql/schema/member/cached_graphql_definition.rb +0 -58
  256. data/lib/graphql/schema/member/instrumentation.rb +0 -131
  257. data/lib/graphql/schema/middleware_chain.rb +0 -82
  258. data/lib/graphql/schema/possible_types.rb +0 -44
  259. data/lib/graphql/schema/rescue_middleware.rb +0 -60
  260. data/lib/graphql/schema/timeout_middleware.rb +0 -88
  261. data/lib/graphql/schema/traversal.rb +0 -228
  262. data/lib/graphql/schema/validation.rb +0 -313
  263. data/lib/graphql/static_validation/default_visitor.rb +0 -15
  264. data/lib/graphql/static_validation/no_validate_visitor.rb +0 -10
  265. data/lib/graphql/string_type.rb +0 -2
  266. data/lib/graphql/subscriptions/subscription_root.rb +0 -76
  267. data/lib/graphql/tracing/skylight_tracing.rb +0 -70
  268. data/lib/graphql/types/relay/default_relay.rb +0 -31
  269. data/lib/graphql/types/relay/node_field.rb +0 -24
  270. data/lib/graphql/types/relay/nodes_field.rb +0 -43
  271. data/lib/graphql/union_type.rb +0 -115
  272. data/lib/graphql/upgrader/member.rb +0 -937
  273. data/lib/graphql/upgrader/schema.rb +0 -38
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.13.12
4
+ version: 2.0.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Mosolgo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-14 00:00:00.000000000 Z
11
+ date: 2023-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ips
@@ -112,44 +112,44 @@ dependencies:
112
112
  name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: '12'
117
+ version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "~>"
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: '12'
124
+ version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: rubocop
126
+ name: rake-compiler
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: '1.12'
131
+ version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
- version: '1.12'
138
+ version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: parser
140
+ name: rubocop
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ">="
143
+ - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: '0'
145
+ version: '1.12'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: '0'
152
+ version: '1.12'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: jekyll
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -291,7 +291,6 @@ files:
291
291
  - lib/generators/graphql/union_generator.rb
292
292
  - lib/graphql.rb
293
293
  - lib/graphql/analysis.rb
294
- - lib/graphql/analysis/analyze_query.rb
295
294
  - lib/graphql/analysis/ast.rb
296
295
  - lib/graphql/analysis/ast/analyzer.rb
297
296
  - lib/graphql/analysis/ast/field_usage.rb
@@ -300,67 +299,25 @@ files:
300
299
  - lib/graphql/analysis/ast/query_complexity.rb
301
300
  - lib/graphql/analysis/ast/query_depth.rb
302
301
  - lib/graphql/analysis/ast/visitor.rb
303
- - lib/graphql/analysis/field_usage.rb
304
- - lib/graphql/analysis/max_query_complexity.rb
305
- - lib/graphql/analysis/max_query_depth.rb
306
- - lib/graphql/analysis/query_complexity.rb
307
- - lib/graphql/analysis/query_depth.rb
308
- - lib/graphql/analysis/reducer_state.rb
309
302
  - lib/graphql/analysis_error.rb
310
- - lib/graphql/argument.rb
311
- - lib/graphql/authorization.rb
312
303
  - lib/graphql/backtrace.rb
313
304
  - lib/graphql/backtrace/inspect_result.rb
314
- - lib/graphql/backtrace/legacy_tracer.rb
315
305
  - lib/graphql/backtrace/table.rb
306
+ - lib/graphql/backtrace/trace.rb
316
307
  - lib/graphql/backtrace/traced_error.rb
317
308
  - lib/graphql/backtrace/tracer.rb
318
- - lib/graphql/backwards_compatibility.rb
319
- - lib/graphql/base_type.rb
320
- - lib/graphql/boolean_type.rb
321
309
  - lib/graphql/coercion_error.rb
322
- - lib/graphql/compatibility.rb
323
- - lib/graphql/compatibility/execution_specification.rb
324
- - lib/graphql/compatibility/execution_specification/counter_schema.rb
325
- - lib/graphql/compatibility/execution_specification/specification_schema.rb
326
- - lib/graphql/compatibility/lazy_execution_specification.rb
327
- - lib/graphql/compatibility/lazy_execution_specification/lazy_schema.rb
328
- - lib/graphql/compatibility/query_parser_specification.rb
329
- - lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb
330
- - lib/graphql/compatibility/query_parser_specification/query_assertions.rb
331
- - lib/graphql/compatibility/schema_parser_specification.rb
332
310
  - lib/graphql/dataloader.rb
333
311
  - lib/graphql/dataloader/null_dataloader.rb
334
312
  - lib/graphql/dataloader/request.rb
335
313
  - lib/graphql/dataloader/request_all.rb
336
314
  - lib/graphql/dataloader/source.rb
337
315
  - lib/graphql/date_encoding_error.rb
338
- - lib/graphql/define.rb
339
- - lib/graphql/define/assign_argument.rb
340
- - lib/graphql/define/assign_connection.rb
341
- - lib/graphql/define/assign_enum_value.rb
342
- - lib/graphql/define/assign_global_id_field.rb
343
- - lib/graphql/define/assign_mutation_function.rb
344
- - lib/graphql/define/assign_object_field.rb
345
- - lib/graphql/define/defined_object_proxy.rb
346
- - lib/graphql/define/instance_definable.rb
347
- - lib/graphql/define/no_definition_error.rb
348
- - lib/graphql/define/non_null_with_bang.rb
349
- - lib/graphql/define/type_definer.rb
350
- - lib/graphql/deprecated_dsl.rb
351
316
  - lib/graphql/deprecation.rb
352
317
  - lib/graphql/dig.rb
353
- - lib/graphql/directive.rb
354
- - lib/graphql/directive/deprecated_directive.rb
355
- - lib/graphql/directive/include_directive.rb
356
- - lib/graphql/directive/skip_directive.rb
357
- - lib/graphql/enum_type.rb
358
318
  - lib/graphql/execution.rb
359
319
  - lib/graphql/execution/directive_checks.rb
360
320
  - lib/graphql/execution/errors.rb
361
- - lib/graphql/execution/execute.rb
362
- - lib/graphql/execution/flatten.rb
363
- - lib/graphql/execution/instrumentation.rb
364
321
  - lib/graphql/execution/interpreter.rb
365
322
  - lib/graphql/execution/interpreter/argument_value.rb
366
323
  - lib/graphql/execution/interpreter/arguments.rb
@@ -371,29 +328,12 @@ files:
371
328
  - lib/graphql/execution/interpreter/runtime.rb
372
329
  - lib/graphql/execution/lazy.rb
373
330
  - lib/graphql/execution/lazy/lazy_method_map.rb
374
- - lib/graphql/execution/lazy/resolve.rb
375
331
  - lib/graphql/execution/lookahead.rb
376
332
  - lib/graphql/execution/multiplex.rb
377
- - lib/graphql/execution/typecast.rb
378
333
  - lib/graphql/execution_error.rb
379
- - lib/graphql/field.rb
380
- - lib/graphql/field/resolve.rb
381
334
  - lib/graphql/filter.rb
382
- - lib/graphql/float_type.rb
383
- - lib/graphql/function.rb
384
- - lib/graphql/id_type.rb
385
- - lib/graphql/input_object_type.rb
386
- - lib/graphql/int_type.rb
387
335
  - lib/graphql/integer_decoding_error.rb
388
336
  - lib/graphql/integer_encoding_error.rb
389
- - lib/graphql/interface_type.rb
390
- - lib/graphql/internal_representation.rb
391
- - lib/graphql/internal_representation/document.rb
392
- - lib/graphql/internal_representation/node.rb
393
- - lib/graphql/internal_representation/print.rb
394
- - lib/graphql/internal_representation/rewrite.rb
395
- - lib/graphql/internal_representation/scope.rb
396
- - lib/graphql/internal_representation/visit.rb
397
337
  - lib/graphql/introspection.rb
398
338
  - lib/graphql/introspection/base_object.rb
399
339
  - lib/graphql/introspection/directive_location_enum.rb
@@ -416,7 +356,6 @@ files:
416
356
  - lib/graphql/language/document_from_schema_definition.rb
417
357
  - lib/graphql/language/generation.rb
418
358
  - lib/graphql/language/lexer.rb
419
- - lib/graphql/language/lexer.rl
420
359
  - lib/graphql/language/nodes.rb
421
360
  - lib/graphql/language/parser.rb
422
361
  - lib/graphql/language/parser.y
@@ -424,11 +363,8 @@ files:
424
363
  - lib/graphql/language/sanitized_printer.rb
425
364
  - lib/graphql/language/token.rb
426
365
  - lib/graphql/language/visitor.rb
427
- - lib/graphql/list_type.rb
428
366
  - lib/graphql/load_application_object_failed_error.rb
429
367
  - lib/graphql/name_validator.rb
430
- - lib/graphql/non_null_type.rb
431
- - lib/graphql/object_type.rb
432
368
  - lib/graphql/pagination.rb
433
369
  - lib/graphql/pagination/active_record_relation_connection.rb
434
370
  - lib/graphql/pagination/array_connection.rb
@@ -439,20 +375,11 @@ files:
439
375
  - lib/graphql/pagination/sequel_dataset_connection.rb
440
376
  - lib/graphql/parse_error.rb
441
377
  - lib/graphql/query.rb
442
- - lib/graphql/query/arguments.rb
443
- - lib/graphql/query/arguments_cache.rb
444
378
  - lib/graphql/query/context.rb
445
- - lib/graphql/query/executor.rb
446
379
  - lib/graphql/query/fingerprint.rb
447
380
  - lib/graphql/query/input_validation_result.rb
448
- - lib/graphql/query/literal_input.rb
449
381
  - lib/graphql/query/null_context.rb
450
382
  - lib/graphql/query/result.rb
451
- - lib/graphql/query/serial_execution.rb
452
- - lib/graphql/query/serial_execution/field_resolution.rb
453
- - lib/graphql/query/serial_execution/operation_resolution.rb
454
- - lib/graphql/query/serial_execution/selection_resolution.rb
455
- - lib/graphql/query/serial_execution/value_resolution.rb
456
383
  - lib/graphql/query/validation_pipeline.rb
457
384
  - lib/graphql/query/variable_validation_error.rb
458
385
  - lib/graphql/query/variables.rb
@@ -460,31 +387,12 @@ files:
460
387
  - lib/graphql/rake_task.rb
461
388
  - lib/graphql/rake_task/validate.rb
462
389
  - lib/graphql/relay.rb
463
- - lib/graphql/relay/array_connection.rb
464
- - lib/graphql/relay/base_connection.rb
465
- - lib/graphql/relay/connection_instrumentation.rb
466
- - lib/graphql/relay/connection_resolve.rb
467
- - lib/graphql/relay/connection_type.rb
468
- - lib/graphql/relay/edge.rb
469
- - lib/graphql/relay/edge_type.rb
470
- - lib/graphql/relay/edges_instrumentation.rb
471
- - lib/graphql/relay/global_id_resolve.rb
472
- - lib/graphql/relay/mongo_relation_connection.rb
473
- - lib/graphql/relay/mutation.rb
474
- - lib/graphql/relay/mutation/instrumentation.rb
475
- - lib/graphql/relay/mutation/resolve.rb
476
- - lib/graphql/relay/mutation/result.rb
477
- - lib/graphql/relay/node.rb
478
- - lib/graphql/relay/page_info.rb
479
390
  - lib/graphql/relay/range_add.rb
480
- - lib/graphql/relay/relation_connection.rb
481
- - lib/graphql/relay/type_extensions.rb
482
391
  - lib/graphql/rubocop.rb
483
392
  - lib/graphql/rubocop/graphql/base_cop.rb
484
393
  - lib/graphql/rubocop/graphql/default_null_true.rb
485
394
  - lib/graphql/rubocop/graphql/default_required_true.rb
486
395
  - lib/graphql/runtime_type_error.rb
487
- - lib/graphql/scalar_type.rb
488
396
  - lib/graphql/schema.rb
489
397
  - lib/graphql/schema/addition.rb
490
398
  - lib/graphql/schema/argument.rb
@@ -494,14 +402,12 @@ files:
494
402
  - lib/graphql/schema/build_from_definition/resolve_map.rb
495
403
  - lib/graphql/schema/build_from_definition/resolve_map/default_resolve.rb
496
404
  - lib/graphql/schema/built_in_types.rb
497
- - lib/graphql/schema/catchall_middleware.rb
498
- - lib/graphql/schema/default_parse_error.rb
499
- - lib/graphql/schema/default_type_error.rb
500
405
  - lib/graphql/schema/directive.rb
501
406
  - lib/graphql/schema/directive/deprecated.rb
502
407
  - lib/graphql/schema/directive/feature.rb
503
408
  - lib/graphql/schema/directive/flagged.rb
504
409
  - lib/graphql/schema/directive/include.rb
410
+ - lib/graphql/schema/directive/one_of.rb
505
411
  - lib/graphql/schema/directive/skip.rb
506
412
  - lib/graphql/schema/directive/transform.rb
507
413
  - lib/graphql/schema/enum.rb
@@ -520,10 +426,8 @@ files:
520
426
  - lib/graphql/schema/list.rb
521
427
  - lib/graphql/schema/loader.rb
522
428
  - lib/graphql/schema/member.rb
523
- - lib/graphql/schema/member/accepts_definition.rb
524
429
  - lib/graphql/schema/member/base_dsl_methods.rb
525
430
  - lib/graphql/schema/member/build_type.rb
526
- - lib/graphql/schema/member/cached_graphql_definition.rb
527
431
  - lib/graphql/schema/member/graphql_type_names.rb
528
432
  - lib/graphql/schema/member/has_arguments.rb
529
433
  - lib/graphql/schema/member/has_ast_node.rb
@@ -534,32 +438,25 @@ files:
534
438
  - lib/graphql/schema/member/has_path.rb
535
439
  - lib/graphql/schema/member/has_unresolved_type_error.rb
536
440
  - lib/graphql/schema/member/has_validators.rb
537
- - lib/graphql/schema/member/instrumentation.rb
538
441
  - lib/graphql/schema/member/relay_shortcuts.rb
539
442
  - lib/graphql/schema/member/scoped.rb
540
443
  - lib/graphql/schema/member/type_system_helpers.rb
541
444
  - lib/graphql/schema/member/validates_input.rb
542
- - lib/graphql/schema/middleware_chain.rb
543
445
  - lib/graphql/schema/mutation.rb
544
446
  - lib/graphql/schema/non_null.rb
545
447
  - lib/graphql/schema/null_mask.rb
546
448
  - lib/graphql/schema/object.rb
547
- - lib/graphql/schema/possible_types.rb
548
449
  - lib/graphql/schema/printer.rb
549
450
  - lib/graphql/schema/relay_classic_mutation.rb
550
- - lib/graphql/schema/rescue_middleware.rb
551
451
  - lib/graphql/schema/resolver.rb
552
452
  - lib/graphql/schema/resolver/has_payload_type.rb
553
453
  - lib/graphql/schema/scalar.rb
554
454
  - lib/graphql/schema/subscription.rb
555
455
  - lib/graphql/schema/timeout.rb
556
- - lib/graphql/schema/timeout_middleware.rb
557
- - lib/graphql/schema/traversal.rb
558
456
  - lib/graphql/schema/type_expression.rb
559
457
  - lib/graphql/schema/type_membership.rb
560
458
  - lib/graphql/schema/union.rb
561
459
  - lib/graphql/schema/unique_within_type.rb
562
- - lib/graphql/schema/validation.rb
563
460
  - lib/graphql/schema/validator.rb
564
461
  - lib/graphql/schema/validator/allow_blank_validator.rb
565
462
  - lib/graphql/schema/validator/allow_null_validator.rb
@@ -574,12 +471,10 @@ files:
574
471
  - lib/graphql/static_validation.rb
575
472
  - lib/graphql/static_validation/all_rules.rb
576
473
  - lib/graphql/static_validation/base_visitor.rb
577
- - lib/graphql/static_validation/default_visitor.rb
578
474
  - lib/graphql/static_validation/definition_dependencies.rb
579
475
  - lib/graphql/static_validation/error.rb
580
476
  - lib/graphql/static_validation/interpreter_visitor.rb
581
477
  - lib/graphql/static_validation/literal_validator.rb
582
- - lib/graphql/static_validation/no_validate_visitor.rb
583
478
  - lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
584
479
  - lib/graphql/static_validation/rules/argument_literals_are_compatible_error.rb
585
480
  - lib/graphql/static_validation/rules/argument_names_are_unique.rb
@@ -616,6 +511,8 @@ files:
616
511
  - lib/graphql/static_validation/rules/mutation_root_exists_error.rb
617
512
  - lib/graphql/static_validation/rules/no_definitions_are_present.rb
618
513
  - lib/graphql/static_validation/rules/no_definitions_are_present_error.rb
514
+ - lib/graphql/static_validation/rules/one_of_input_objects_are_valid.rb
515
+ - lib/graphql/static_validation/rules/one_of_input_objects_are_valid_error.rb
619
516
  - lib/graphql/static_validation/rules/operation_names_are_valid.rb
620
517
  - lib/graphql/static_validation/rules/operation_names_are_valid_error.rb
621
518
  - lib/graphql/static_validation/rules/query_root_exists.rb
@@ -643,7 +540,6 @@ files:
643
540
  - lib/graphql/static_validation/validation_timeout_error.rb
644
541
  - lib/graphql/static_validation/validator.rb
645
542
  - lib/graphql/string_encoding_error.rb
646
- - lib/graphql/string_type.rb
647
543
  - lib/graphql/subscriptions.rb
648
544
  - lib/graphql/subscriptions/action_cable_subscriptions.rb
649
545
  - lib/graphql/subscriptions/broadcast_analyzer.rb
@@ -651,20 +547,30 @@ files:
651
547
  - lib/graphql/subscriptions/event.rb
652
548
  - lib/graphql/subscriptions/instrumentation.rb
653
549
  - lib/graphql/subscriptions/serialize.rb
654
- - lib/graphql/subscriptions/subscription_root.rb
655
550
  - lib/graphql/tracing.rb
551
+ - lib/graphql/tracing/active_support_notifications_trace.rb
656
552
  - lib/graphql/tracing/active_support_notifications_tracing.rb
553
+ - lib/graphql/tracing/appoptics_trace.rb
657
554
  - lib/graphql/tracing/appoptics_tracing.rb
555
+ - lib/graphql/tracing/appsignal_trace.rb
658
556
  - lib/graphql/tracing/appsignal_tracing.rb
557
+ - lib/graphql/tracing/data_dog_trace.rb
659
558
  - lib/graphql/tracing/data_dog_tracing.rb
559
+ - lib/graphql/tracing/legacy_trace.rb
560
+ - lib/graphql/tracing/new_relic_trace.rb
660
561
  - lib/graphql/tracing/new_relic_tracing.rb
562
+ - lib/graphql/tracing/notifications_trace.rb
661
563
  - lib/graphql/tracing/notifications_tracing.rb
564
+ - lib/graphql/tracing/platform_trace.rb
662
565
  - lib/graphql/tracing/platform_tracing.rb
566
+ - lib/graphql/tracing/prometheus_trace.rb
663
567
  - lib/graphql/tracing/prometheus_tracing.rb
664
568
  - lib/graphql/tracing/prometheus_tracing/graphql_collector.rb
569
+ - lib/graphql/tracing/scout_trace.rb
665
570
  - lib/graphql/tracing/scout_tracing.rb
666
- - lib/graphql/tracing/skylight_tracing.rb
571
+ - lib/graphql/tracing/statsd_trace.rb
667
572
  - lib/graphql/tracing/statsd_tracing.rb
573
+ - lib/graphql/tracing/trace.rb
668
574
  - lib/graphql/type_kinds.rb
669
575
  - lib/graphql/types.rb
670
576
  - lib/graphql/types/big_int.rb
@@ -679,23 +585,17 @@ files:
679
585
  - lib/graphql/types/relay/base_connection.rb
680
586
  - lib/graphql/types/relay/base_edge.rb
681
587
  - lib/graphql/types/relay/connection_behaviors.rb
682
- - lib/graphql/types/relay/default_relay.rb
683
588
  - lib/graphql/types/relay/edge_behaviors.rb
684
589
  - lib/graphql/types/relay/has_node_field.rb
685
590
  - lib/graphql/types/relay/has_nodes_field.rb
686
591
  - lib/graphql/types/relay/node.rb
687
592
  - lib/graphql/types/relay/node_behaviors.rb
688
- - lib/graphql/types/relay/node_field.rb
689
- - lib/graphql/types/relay/nodes_field.rb
690
593
  - lib/graphql/types/relay/page_info.rb
691
594
  - lib/graphql/types/relay/page_info_behaviors.rb
692
595
  - lib/graphql/types/string.rb
693
596
  - lib/graphql/unauthorized_error.rb
694
597
  - lib/graphql/unauthorized_field_error.rb
695
- - lib/graphql/union_type.rb
696
598
  - lib/graphql/unresolved_type_error.rb
697
- - lib/graphql/upgrader/member.rb
698
- - lib/graphql/upgrader/schema.rb
699
599
  - lib/graphql/version.rb
700
600
  - readme.md
701
601
  homepage: https://github.com/rmosolgo/graphql-ruby
@@ -722,7 +622,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
722
622
  - !ruby/object:Gem::Version
723
623
  version: '0'
724
624
  requirements: []
725
- rubygems_version: 3.2.32
625
+ rubygems_version: 3.4.1
726
626
  signing_key:
727
627
  specification_version: 4
728
628
  summary: A GraphQL language and runtime for Ruby
@@ -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
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
- require_relative "./query_complexity"
3
- module GraphQL
4
- module Analysis
5
- # Used under the hood to implement complexity validation,
6
- # see {Schema#max_complexity} and {Query#max_complexity}
7
- #
8
- # @example Assert max complexity of 10
9
- # # DON'T actually do this, graphql-ruby
10
- # # Does this for you based on your `max_complexity` setting
11
- # MySchema.query_analyzers << GraphQL::Analysis::MaxQueryComplexity.new(10)
12
- #
13
- class MaxQueryComplexity < GraphQL::Analysis::QueryComplexity
14
- def initialize(max_complexity)
15
- disallow_excessive_complexity = ->(query, complexity) {
16
- if complexity > max_complexity
17
- GraphQL::AnalysisError.new("Query has complexity of #{complexity}, which exceeds max complexity of #{max_complexity}")
18
- else
19
- nil
20
- end
21
- }
22
- super(&disallow_excessive_complexity)
23
- end
24
- end
25
- end
26
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
- require_relative "./query_depth"
3
- module GraphQL
4
- module Analysis
5
- # Used under the hood to implement depth validation,
6
- # see {Schema#max_depth} and {Query#max_depth}
7
- #
8
- # @example Assert max depth of 10
9
- # # DON'T actually do this, graphql-ruby
10
- # # Does this for you based on your `max_depth` setting
11
- # MySchema.query_analyzers << GraphQL::Analysis::MaxQueryDepth.new(10)
12
- #
13
- class MaxQueryDepth < GraphQL::Analysis::QueryDepth
14
- def initialize(max_depth)
15
- disallow_excessive_depth = ->(query, depth) {
16
- if depth > max_depth
17
- GraphQL::AnalysisError.new("Query has depth of #{depth}, which exceeds max depth of #{max_depth}")
18
- else
19
- nil
20
- end
21
- }
22
- super(&disallow_excessive_depth)
23
- end
24
- end
25
- end
26
- end