graphql 1.12.23 → 1.13.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/graphql/core.rb +3 -1
  3. data/lib/generators/graphql/install_generator.rb +9 -2
  4. data/lib/generators/graphql/mutation_generator.rb +1 -1
  5. data/lib/generators/graphql/type_generator.rb +0 -1
  6. data/lib/graphql/analysis/ast/field_usage.rb +2 -2
  7. data/lib/graphql/analysis/ast/query_complexity.rb +10 -14
  8. data/lib/graphql/analysis/ast/visitor.rb +4 -4
  9. data/lib/graphql/backtrace/table.rb +1 -1
  10. data/lib/graphql/base_type.rb +4 -2
  11. data/lib/graphql/boolean_type.rb +1 -1
  12. data/lib/graphql/dataloader.rb +55 -22
  13. data/lib/graphql/directive/deprecated_directive.rb +1 -1
  14. data/lib/graphql/directive/include_directive.rb +1 -1
  15. data/lib/graphql/directive/skip_directive.rb +1 -1
  16. data/lib/graphql/directive.rb +0 -4
  17. data/lib/graphql/enum_type.rb +5 -1
  18. data/lib/graphql/execution/errors.rb +1 -0
  19. data/lib/graphql/execution/interpreter/arguments.rb +1 -1
  20. data/lib/graphql/execution/interpreter/arguments_cache.rb +2 -2
  21. data/lib/graphql/execution/interpreter/runtime.rb +31 -19
  22. data/lib/graphql/execution/lookahead.rb +2 -2
  23. data/lib/graphql/execution/multiplex.rb +4 -1
  24. data/lib/graphql/float_type.rb +1 -1
  25. data/lib/graphql/id_type.rb +1 -1
  26. data/lib/graphql/int_type.rb +1 -1
  27. data/lib/graphql/introspection/directive_type.rb +1 -1
  28. data/lib/graphql/introspection/entry_points.rb +2 -2
  29. data/lib/graphql/introspection/enum_value_type.rb +2 -2
  30. data/lib/graphql/introspection/field_type.rb +2 -2
  31. data/lib/graphql/introspection/input_value_type.rb +4 -4
  32. data/lib/graphql/introspection/schema_type.rb +2 -2
  33. data/lib/graphql/introspection/type_type.rb +10 -10
  34. data/lib/graphql/language/block_string.rb +2 -6
  35. data/lib/graphql/language/document_from_schema_definition.rb +10 -4
  36. data/lib/graphql/language/lexer.rb +0 -3
  37. data/lib/graphql/language/lexer.rl +0 -4
  38. data/lib/graphql/language/nodes.rb +3 -2
  39. data/lib/graphql/language/parser.rb +442 -434
  40. data/lib/graphql/language/parser.y +5 -4
  41. data/lib/graphql/language/printer.rb +6 -1
  42. data/lib/graphql/language/sanitized_printer.rb +5 -5
  43. data/lib/graphql/language/token.rb +0 -4
  44. data/lib/graphql/name_validator.rb +0 -4
  45. data/lib/graphql/pagination/active_record_relation_connection.rb +43 -6
  46. data/lib/graphql/pagination/relation_connection.rb +55 -28
  47. data/lib/graphql/query/arguments.rb +1 -1
  48. data/lib/graphql/query/arguments_cache.rb +1 -1
  49. data/lib/graphql/query/context.rb +15 -2
  50. data/lib/graphql/query/literal_input.rb +1 -1
  51. data/lib/graphql/query/null_context.rb +12 -7
  52. data/lib/graphql/query/serial_execution/field_resolution.rb +1 -1
  53. data/lib/graphql/query/variables.rb +5 -1
  54. data/lib/graphql/relay/edges_instrumentation.rb +0 -1
  55. data/lib/graphql/relay/global_id_resolve.rb +1 -1
  56. data/lib/graphql/relay/page_info.rb +1 -1
  57. data/lib/graphql/rubocop/graphql/base_cop.rb +36 -0
  58. data/lib/graphql/rubocop/graphql/default_null_true.rb +43 -0
  59. data/lib/graphql/rubocop/graphql/default_required_true.rb +43 -0
  60. data/lib/graphql/rubocop.rb +4 -0
  61. data/lib/graphql/schema/addition.rb +37 -28
  62. data/lib/graphql/schema/argument.rb +13 -15
  63. data/lib/graphql/schema/build_from_definition.rb +5 -5
  64. data/lib/graphql/schema/directive/feature.rb +1 -1
  65. data/lib/graphql/schema/directive/flagged.rb +2 -2
  66. data/lib/graphql/schema/directive/include.rb +1 -1
  67. data/lib/graphql/schema/directive/skip.rb +1 -1
  68. data/lib/graphql/schema/directive/transform.rb +1 -1
  69. data/lib/graphql/schema/directive.rb +7 -3
  70. data/lib/graphql/schema/enum.rb +60 -10
  71. data/lib/graphql/schema/enum_value.rb +6 -0
  72. data/lib/graphql/schema/field/connection_extension.rb +1 -1
  73. data/lib/graphql/schema/field.rb +229 -77
  74. data/lib/graphql/schema/field_extension.rb +89 -2
  75. data/lib/graphql/schema/find_inherited_value.rb +1 -0
  76. data/lib/graphql/schema/finder.rb +5 -5
  77. data/lib/graphql/schema/input_object.rb +23 -5
  78. data/lib/graphql/schema/interface.rb +11 -20
  79. data/lib/graphql/schema/introspection_system.rb +1 -1
  80. data/lib/graphql/schema/list.rb +3 -1
  81. data/lib/graphql/schema/member/accepts_definition.rb +15 -3
  82. data/lib/graphql/schema/member/build_type.rb +0 -4
  83. data/lib/graphql/schema/member/cached_graphql_definition.rb +29 -2
  84. data/lib/graphql/schema/member/has_arguments.rb +55 -13
  85. data/lib/graphql/schema/member/has_deprecation_reason.rb +1 -1
  86. data/lib/graphql/schema/member/has_fields.rb +76 -18
  87. data/lib/graphql/schema/member/has_interfaces.rb +90 -0
  88. data/lib/graphql/schema/member.rb +1 -0
  89. data/lib/graphql/schema/non_null.rb +7 -1
  90. data/lib/graphql/schema/object.rb +10 -75
  91. data/lib/graphql/schema/printer.rb +1 -1
  92. data/lib/graphql/schema/relay_classic_mutation.rb +37 -3
  93. data/lib/graphql/schema/resolver/has_payload_type.rb +27 -2
  94. data/lib/graphql/schema/resolver.rb +37 -17
  95. data/lib/graphql/schema/scalar.rb +2 -0
  96. data/lib/graphql/schema/subscription.rb +11 -1
  97. data/lib/graphql/schema/traversal.rb +1 -1
  98. data/lib/graphql/schema/type_expression.rb +1 -1
  99. data/lib/graphql/schema/type_membership.rb +18 -4
  100. data/lib/graphql/schema/union.rb +8 -1
  101. data/lib/graphql/schema/validator/format_validator.rb +0 -4
  102. data/lib/graphql/schema/validator/numericality_validator.rb +1 -0
  103. data/lib/graphql/schema/validator/required_validator.rb +29 -15
  104. data/lib/graphql/schema/validator.rb +4 -7
  105. data/lib/graphql/schema/warden.rb +116 -52
  106. data/lib/graphql/schema.rb +111 -23
  107. data/lib/graphql/static_validation/all_rules.rb +1 -0
  108. data/lib/graphql/static_validation/base_visitor.rb +5 -5
  109. data/lib/graphql/static_validation/definition_dependencies.rb +0 -1
  110. data/lib/graphql/static_validation/literal_validator.rb +1 -1
  111. data/lib/graphql/static_validation/rules/argument_literals_are_compatible.rb +1 -1
  112. data/lib/graphql/static_validation/rules/fields_will_merge.rb +1 -1
  113. data/lib/graphql/static_validation/rules/query_root_exists.rb +17 -0
  114. data/lib/graphql/static_validation/rules/query_root_exists_error.rb +26 -0
  115. data/lib/graphql/static_validation/rules/required_arguments_are_present.rb +2 -2
  116. data/lib/graphql/static_validation/rules/required_input_object_attributes_are_present.rb +4 -4
  117. data/lib/graphql/static_validation/rules/variable_usages_are_allowed.rb +13 -7
  118. data/lib/graphql/string_type.rb +1 -1
  119. data/lib/graphql/subscriptions/action_cable_subscriptions.rb +8 -4
  120. data/lib/graphql/subscriptions/event.rb +20 -12
  121. data/lib/graphql/subscriptions/serialize.rb +22 -2
  122. data/lib/graphql/subscriptions.rb +17 -19
  123. data/lib/graphql/tracing/active_support_notifications_tracing.rb +6 -20
  124. data/lib/graphql/tracing/notifications_tracing.rb +59 -0
  125. data/lib/graphql/types/relay/connection_behaviors.rb +26 -9
  126. data/lib/graphql/types/relay/default_relay.rb +5 -1
  127. data/lib/graphql/types/relay/edge_behaviors.rb +13 -2
  128. data/lib/graphql/types/relay/has_node_field.rb +1 -1
  129. data/lib/graphql/types/relay/has_nodes_field.rb +1 -1
  130. data/lib/graphql/types/relay/node_field.rb +14 -3
  131. data/lib/graphql/types/relay/nodes_field.rb +13 -3
  132. data/lib/graphql/version.rb +1 -1
  133. data/lib/graphql.rb +10 -32
  134. metadata +13 -5
data/lib/graphql.rb CHANGED
@@ -55,31 +55,6 @@ module GraphQL
55
55
  def self.scan_with_ragel(graphql_string)
56
56
  GraphQL::Language::Lexer.tokenize(graphql_string)
57
57
  end
58
-
59
- # Support Ruby 2.2 by implementing `-"str"`. If we drop 2.2 support, we can remove this backport.
60
- if !String.method_defined?(:-@)
61
- module StringDedupBackport
62
- refine String do
63
- def -@
64
- if frozen?
65
- self
66
- else
67
- self.dup.freeze
68
- end
69
- end
70
- end
71
- end
72
- end
73
-
74
- if !String.method_defined?(:match?)
75
- module StringMatchBackport
76
- refine String do
77
- def match?(pattern)
78
- self =~ pattern
79
- end
80
- end
81
- end
82
- end
83
58
  end
84
59
 
85
60
  # Order matters for these:
@@ -125,10 +100,14 @@ require "graphql/execution"
125
100
  require "graphql/pagination"
126
101
  require "graphql/schema"
127
102
  require "graphql/query"
103
+ require "graphql/types"
104
+ require "graphql/dataloader"
105
+ require "graphql/filter"
106
+ require "graphql/internal_representation"
128
107
  require "graphql/directive"
108
+ require "graphql/static_validation"
129
109
  require "graphql/execution"
130
- require "graphql/types"
131
- require "graphql/relay"
110
+ require "graphql/deprecation"
132
111
  require "graphql/boolean_type"
133
112
  require "graphql/float_type"
134
113
  require "graphql/id_type"
@@ -137,11 +116,8 @@ require "graphql/string_type"
137
116
  require "graphql/schema/built_in_types"
138
117
  require "graphql/schema/loader"
139
118
  require "graphql/schema/printer"
140
- require "graphql/filter"
141
- require "graphql/internal_representation"
142
- require "graphql/static_validation"
143
- require "graphql/dataloader"
144
119
  require "graphql/introspection"
120
+ require "graphql/relay"
145
121
 
146
122
  require "graphql/version"
147
123
  require "graphql/compatibility"
@@ -155,7 +131,9 @@ require "graphql/authorization"
155
131
  require "graphql/unauthorized_error"
156
132
  require "graphql/unauthorized_field_error"
157
133
  require "graphql/load_application_object_failed_error"
158
- require "graphql/deprecation"
134
+ require "graphql/directive/include_directive"
135
+ require "graphql/directive/skip_directive"
136
+ require "graphql/directive/deprecated_directive"
159
137
 
160
138
  module GraphQL
161
139
  # Ruby has `deprecate_constant`,
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.12.23
4
+ version: 1.13.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Mosolgo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-20 00:00:00.000000000 Z
11
+ date: 2022-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ips
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: '0.68'
131
+ version: '1.12'
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: '0.68'
138
+ version: '1.12'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: parser
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -467,6 +467,10 @@ files:
467
467
  - lib/graphql/relay/range_add.rb
468
468
  - lib/graphql/relay/relation_connection.rb
469
469
  - lib/graphql/relay/type_extensions.rb
470
+ - lib/graphql/rubocop.rb
471
+ - lib/graphql/rubocop/graphql/base_cop.rb
472
+ - lib/graphql/rubocop/graphql/default_null_true.rb
473
+ - lib/graphql/rubocop/graphql/default_required_true.rb
470
474
  - lib/graphql/runtime_type_error.rb
471
475
  - lib/graphql/scalar_type.rb
472
476
  - lib/graphql/schema.rb
@@ -514,6 +518,7 @@ files:
514
518
  - lib/graphql/schema/member/has_deprecation_reason.rb
515
519
  - lib/graphql/schema/member/has_directives.rb
516
520
  - lib/graphql/schema/member/has_fields.rb
521
+ - lib/graphql/schema/member/has_interfaces.rb
517
522
  - lib/graphql/schema/member/has_path.rb
518
523
  - lib/graphql/schema/member/has_unresolved_type_error.rb
519
524
  - lib/graphql/schema/member/has_validators.rb
@@ -601,6 +606,8 @@ files:
601
606
  - lib/graphql/static_validation/rules/no_definitions_are_present_error.rb
602
607
  - lib/graphql/static_validation/rules/operation_names_are_valid.rb
603
608
  - lib/graphql/static_validation/rules/operation_names_are_valid_error.rb
609
+ - lib/graphql/static_validation/rules/query_root_exists.rb
610
+ - lib/graphql/static_validation/rules/query_root_exists_error.rb
604
611
  - lib/graphql/static_validation/rules/required_arguments_are_present.rb
605
612
  - lib/graphql/static_validation/rules/required_arguments_are_present_error.rb
606
613
  - lib/graphql/static_validation/rules/required_input_object_attributes_are_present.rb
@@ -639,6 +646,7 @@ files:
639
646
  - lib/graphql/tracing/appsignal_tracing.rb
640
647
  - lib/graphql/tracing/data_dog_tracing.rb
641
648
  - lib/graphql/tracing/new_relic_tracing.rb
649
+ - lib/graphql/tracing/notifications_tracing.rb
642
650
  - lib/graphql/tracing/platform_tracing.rb
643
651
  - lib/graphql/tracing/prometheus_tracing.rb
644
652
  - lib/graphql/tracing/prometheus_tracing/graphql_collector.rb
@@ -695,7 +703,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
695
703
  requirements:
696
704
  - - ">="
697
705
  - !ruby/object:Gem::Version
698
- version: 2.2.0
706
+ version: 2.4.0
699
707
  required_rubygems_version: !ruby/object:Gem::Requirement
700
708
  requirements:
701
709
  - - ">="