graphql 1.13.14 → 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.
- checksums.yaml +4 -4
 - data/lib/graphql/analysis/ast/query_complexity.rb +1 -1
 - data/lib/graphql/analysis/ast/query_depth.rb +0 -1
 - data/lib/graphql/analysis/ast/visitor.rb +1 -1
 - data/lib/graphql/analysis/ast.rb +0 -10
 - data/lib/graphql/analysis.rb +0 -7
 - data/lib/graphql/backtrace/table.rb +0 -18
 - data/lib/graphql/backtrace/tracer.rb +1 -2
 - data/lib/graphql/backtrace.rb +2 -8
 - data/lib/graphql/dig.rb +1 -1
 - data/lib/graphql/execution/errors.rb +1 -9
 - data/lib/graphql/execution/interpreter/runtime.rb +2 -9
 - data/lib/graphql/execution/interpreter.rb +0 -22
 - data/lib/graphql/execution/lazy.rb +1 -1
 - data/lib/graphql/execution/lookahead.rb +6 -13
 - data/lib/graphql/execution/multiplex.rb +50 -107
 - data/lib/graphql/execution.rb +11 -3
 - data/lib/graphql/introspection/dynamic_fields.rb +3 -8
 - data/lib/graphql/introspection/entry_points.rb +2 -15
 - data/lib/graphql/language/document_from_schema_definition.rb +0 -17
 - data/lib/graphql/pagination/connections.rb +2 -28
 - data/lib/graphql/query/context.rb +1 -185
 - data/lib/graphql/query/literal_input.rb +8 -13
 - data/lib/graphql/query/validation_pipeline.rb +8 -37
 - data/lib/graphql/query/variables.rb +22 -18
 - data/lib/graphql/query.rb +5 -35
 - data/lib/graphql/railtie.rb +0 -104
 - data/lib/graphql/relay/range_add.rb +0 -4
 - data/lib/graphql/relay.rb +0 -15
 - data/lib/graphql/schema/addition.rb +1 -8
 - data/lib/graphql/schema/argument.rb +1 -25
 - data/lib/graphql/schema/build_from_definition.rb +0 -1
 - data/lib/graphql/schema/directive.rb +0 -21
 - data/lib/graphql/schema/enum.rb +1 -18
 - data/lib/graphql/schema/enum_value.rb +0 -22
 - data/lib/graphql/schema/field.rb +2 -185
 - data/lib/graphql/schema/input_object.rb +9 -56
 - data/lib/graphql/schema/interface.rb +0 -25
 - data/lib/graphql/schema/introspection_system.rb +3 -8
 - data/lib/graphql/schema/late_bound_type.rb +2 -2
 - data/lib/graphql/schema/list.rb +0 -6
 - data/lib/graphql/schema/loader.rb +0 -1
 - data/lib/graphql/schema/member/base_dsl_methods.rb +0 -5
 - data/lib/graphql/schema/member/build_type.rb +4 -6
 - data/lib/graphql/schema/member/has_arguments.rb +14 -18
 - data/lib/graphql/schema/member/has_fields.rb +2 -2
 - data/lib/graphql/schema/member/has_interfaces.rb +0 -2
 - data/lib/graphql/schema/member.rb +0 -6
 - data/lib/graphql/schema/mutation.rb +0 -9
 - data/lib/graphql/schema/non_null.rb +1 -7
 - data/lib/graphql/schema/object.rb +0 -40
 - data/lib/graphql/schema/relay_classic_mutation.rb +17 -28
 - data/lib/graphql/schema/scalar.rb +0 -15
 - data/lib/graphql/schema/union.rb +0 -16
 - data/lib/graphql/schema/warden.rb +1 -1
 - data/lib/graphql/schema/wrapper.rb +0 -5
 - data/lib/graphql/schema.rb +106 -945
 - data/lib/graphql/static_validation/base_visitor.rb +4 -21
 - data/lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb +12 -12
 - data/lib/graphql/static_validation/validator.rb +2 -24
 - data/lib/graphql/static_validation.rb +0 -2
 - data/lib/graphql/subscriptions/default_subscription_resolve_extension.rb +38 -1
 - data/lib/graphql/subscriptions/event.rb +1 -1
 - data/lib/graphql/subscriptions/instrumentation.rb +0 -51
 - data/lib/graphql/subscriptions.rb +4 -13
 - data/lib/graphql/tracing/data_dog_tracing.rb +2 -19
 - data/lib/graphql/tracing/platform_tracing.rb +4 -31
 - data/lib/graphql/tracing.rb +0 -2
 - data/lib/graphql/types/relay/connection_behaviors.rb +2 -6
 - data/lib/graphql/types/relay/default_relay.rb +0 -10
 - data/lib/graphql/types/relay/node_behaviors.rb +5 -1
 - data/lib/graphql/types/relay.rb +0 -2
 - data/lib/graphql/version.rb +1 -1
 - data/lib/graphql.rb +1 -65
 - metadata +6 -132
 - data/lib/graphql/analysis/analyze_query.rb +0 -98
 - data/lib/graphql/analysis/field_usage.rb +0 -45
 - data/lib/graphql/analysis/max_query_complexity.rb +0 -26
 - data/lib/graphql/analysis/max_query_depth.rb +0 -26
 - data/lib/graphql/analysis/query_complexity.rb +0 -88
 - data/lib/graphql/analysis/query_depth.rb +0 -43
 - data/lib/graphql/analysis/reducer_state.rb +0 -48
 - data/lib/graphql/argument.rb +0 -131
 - data/lib/graphql/authorization.rb +0 -82
 - data/lib/graphql/backtrace/legacy_tracer.rb +0 -56
 - data/lib/graphql/backwards_compatibility.rb +0 -61
 - data/lib/graphql/base_type.rb +0 -232
 - data/lib/graphql/boolean_type.rb +0 -2
 - data/lib/graphql/compatibility/execution_specification/counter_schema.rb +0 -53
 - data/lib/graphql/compatibility/execution_specification/specification_schema.rb +0 -200
 - data/lib/graphql/compatibility/execution_specification.rb +0 -436
 - data/lib/graphql/compatibility/lazy_execution_specification/lazy_schema.rb +0 -111
 - data/lib/graphql/compatibility/lazy_execution_specification.rb +0 -215
 - data/lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb +0 -87
 - data/lib/graphql/compatibility/query_parser_specification/query_assertions.rb +0 -79
 - data/lib/graphql/compatibility/query_parser_specification.rb +0 -266
 - data/lib/graphql/compatibility/schema_parser_specification.rb +0 -682
 - data/lib/graphql/compatibility.rb +0 -5
 - data/lib/graphql/define/assign_argument.rb +0 -12
 - data/lib/graphql/define/assign_connection.rb +0 -13
 - data/lib/graphql/define/assign_enum_value.rb +0 -18
 - data/lib/graphql/define/assign_global_id_field.rb +0 -11
 - data/lib/graphql/define/assign_mutation_function.rb +0 -34
 - data/lib/graphql/define/assign_object_field.rb +0 -42
 - data/lib/graphql/define/defined_object_proxy.rb +0 -53
 - data/lib/graphql/define/instance_definable.rb +0 -255
 - data/lib/graphql/define/no_definition_error.rb +0 -7
 - data/lib/graphql/define/non_null_with_bang.rb +0 -16
 - data/lib/graphql/define/type_definer.rb +0 -31
 - data/lib/graphql/define.rb +0 -31
 - data/lib/graphql/deprecated_dsl.rb +0 -55
 - data/lib/graphql/directive/deprecated_directive.rb +0 -2
 - data/lib/graphql/directive/include_directive.rb +0 -2
 - data/lib/graphql/directive/skip_directive.rb +0 -2
 - data/lib/graphql/directive.rb +0 -107
 - data/lib/graphql/enum_type.rb +0 -133
 - data/lib/graphql/execution/execute.rb +0 -333
 - data/lib/graphql/execution/flatten.rb +0 -40
 - data/lib/graphql/execution/typecast.rb +0 -50
 - data/lib/graphql/field/resolve.rb +0 -59
 - data/lib/graphql/field.rb +0 -226
 - data/lib/graphql/float_type.rb +0 -2
 - data/lib/graphql/function.rb +0 -128
 - data/lib/graphql/id_type.rb +0 -2
 - data/lib/graphql/input_object_type.rb +0 -138
 - data/lib/graphql/int_type.rb +0 -2
 - data/lib/graphql/interface_type.rb +0 -72
 - data/lib/graphql/internal_representation/document.rb +0 -27
 - data/lib/graphql/internal_representation/node.rb +0 -206
 - data/lib/graphql/internal_representation/print.rb +0 -51
 - data/lib/graphql/internal_representation/rewrite.rb +0 -184
 - data/lib/graphql/internal_representation/scope.rb +0 -88
 - data/lib/graphql/internal_representation/visit.rb +0 -36
 - data/lib/graphql/internal_representation.rb +0 -7
 - data/lib/graphql/list_type.rb +0 -80
 - data/lib/graphql/non_null_type.rb +0 -71
 - data/lib/graphql/object_type.rb +0 -130
 - data/lib/graphql/query/arguments.rb +0 -189
 - data/lib/graphql/query/arguments_cache.rb +0 -24
 - data/lib/graphql/query/executor.rb +0 -52
 - data/lib/graphql/query/serial_execution/field_resolution.rb +0 -92
 - data/lib/graphql/query/serial_execution/operation_resolution.rb +0 -19
 - data/lib/graphql/query/serial_execution/selection_resolution.rb +0 -23
 - data/lib/graphql/query/serial_execution/value_resolution.rb +0 -87
 - data/lib/graphql/query/serial_execution.rb +0 -40
 - data/lib/graphql/relay/array_connection.rb +0 -83
 - data/lib/graphql/relay/base_connection.rb +0 -189
 - data/lib/graphql/relay/connection_instrumentation.rb +0 -54
 - data/lib/graphql/relay/connection_resolve.rb +0 -43
 - data/lib/graphql/relay/connection_type.rb +0 -54
 - data/lib/graphql/relay/edge.rb +0 -27
 - data/lib/graphql/relay/edge_type.rb +0 -19
 - data/lib/graphql/relay/edges_instrumentation.rb +0 -39
 - data/lib/graphql/relay/global_id_resolve.rb +0 -17
 - data/lib/graphql/relay/mongo_relation_connection.rb +0 -50
 - data/lib/graphql/relay/mutation/instrumentation.rb +0 -23
 - data/lib/graphql/relay/mutation/resolve.rb +0 -56
 - data/lib/graphql/relay/mutation/result.rb +0 -38
 - data/lib/graphql/relay/mutation.rb +0 -106
 - data/lib/graphql/relay/node.rb +0 -39
 - data/lib/graphql/relay/page_info.rb +0 -7
 - data/lib/graphql/relay/relation_connection.rb +0 -188
 - data/lib/graphql/relay/type_extensions.rb +0 -32
 - data/lib/graphql/scalar_type.rb +0 -91
 - data/lib/graphql/schema/catchall_middleware.rb +0 -35
 - data/lib/graphql/schema/default_parse_error.rb +0 -10
 - data/lib/graphql/schema/default_type_error.rb +0 -17
 - data/lib/graphql/schema/member/accepts_definition.rb +0 -164
 - data/lib/graphql/schema/member/cached_graphql_definition.rb +0 -58
 - data/lib/graphql/schema/member/instrumentation.rb +0 -131
 - data/lib/graphql/schema/middleware_chain.rb +0 -82
 - data/lib/graphql/schema/possible_types.rb +0 -44
 - data/lib/graphql/schema/rescue_middleware.rb +0 -60
 - data/lib/graphql/schema/timeout_middleware.rb +0 -88
 - data/lib/graphql/schema/traversal.rb +0 -228
 - data/lib/graphql/schema/validation.rb +0 -313
 - data/lib/graphql/static_validation/default_visitor.rb +0 -15
 - data/lib/graphql/static_validation/no_validate_visitor.rb +0 -10
 - data/lib/graphql/string_type.rb +0 -2
 - data/lib/graphql/subscriptions/subscription_root.rb +0 -76
 - data/lib/graphql/tracing/opentelemetry_tracing.rb +0 -101
 - data/lib/graphql/tracing/skylight_tracing.rb +0 -70
 - data/lib/graphql/types/relay/node_field.rb +0 -24
 - data/lib/graphql/types/relay/nodes_field.rb +0 -43
 - data/lib/graphql/union_type.rb +0 -115
 - data/lib/graphql/upgrader/member.rb +0 -937
 - 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:  
     | 
| 
      
 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: 2022- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-02-09 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: benchmark-ips
         
     | 
| 
         @@ -136,20 +136,6 @@ dependencies: 
     | 
|
| 
       136 
136 
     | 
    
         
             
                - - '='
         
     | 
| 
       137 
137 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       138 
138 
     | 
    
         
             
                    version: '1.12'
         
     | 
| 
       139 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       140 
     | 
    
         
            -
              name: parser
         
     | 
| 
       141 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       142 
     | 
    
         
            -
                requirements:
         
     | 
| 
       143 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       144 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       145 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       146 
     | 
    
         
            -
              type: :development
         
     | 
| 
       147 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       148 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       149 
     | 
    
         
            -
                requirements:
         
     | 
| 
       150 
     | 
    
         
            -
                - - ">="
         
     | 
| 
       151 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       152 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
       153 
139 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       154 
140 
     | 
    
         
             
              name: jekyll
         
     | 
| 
       155 
141 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -291,7 +277,6 @@ files: 
     | 
|
| 
       291 
277 
     | 
    
         
             
            - lib/generators/graphql/union_generator.rb
         
     | 
| 
       292 
278 
     | 
    
         
             
            - lib/graphql.rb
         
     | 
| 
       293 
279 
     | 
    
         
             
            - lib/graphql/analysis.rb
         
     | 
| 
       294 
     | 
    
         
            -
            - lib/graphql/analysis/analyze_query.rb
         
     | 
| 
       295 
280 
     | 
    
         
             
            - lib/graphql/analysis/ast.rb
         
     | 
| 
       296 
281 
     | 
    
         
             
            - lib/graphql/analysis/ast/analyzer.rb
         
     | 
| 
       297 
282 
     | 
    
         
             
            - lib/graphql/analysis/ast/field_usage.rb
         
     | 
| 
         @@ -300,66 +285,24 @@ files: 
     | 
|
| 
       300 
285 
     | 
    
         
             
            - lib/graphql/analysis/ast/query_complexity.rb
         
     | 
| 
       301 
286 
     | 
    
         
             
            - lib/graphql/analysis/ast/query_depth.rb
         
     | 
| 
       302 
287 
     | 
    
         
             
            - 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 
288 
     | 
    
         
             
            - lib/graphql/analysis_error.rb
         
     | 
| 
       310 
     | 
    
         
            -
            - lib/graphql/argument.rb
         
     | 
| 
       311 
     | 
    
         
            -
            - lib/graphql/authorization.rb
         
     | 
| 
       312 
289 
     | 
    
         
             
            - lib/graphql/backtrace.rb
         
     | 
| 
       313 
290 
     | 
    
         
             
            - lib/graphql/backtrace/inspect_result.rb
         
     | 
| 
       314 
     | 
    
         
            -
            - lib/graphql/backtrace/legacy_tracer.rb
         
     | 
| 
       315 
291 
     | 
    
         
             
            - lib/graphql/backtrace/table.rb
         
     | 
| 
       316 
292 
     | 
    
         
             
            - lib/graphql/backtrace/traced_error.rb
         
     | 
| 
       317 
293 
     | 
    
         
             
            - lib/graphql/backtrace/tracer.rb
         
     | 
| 
       318 
     | 
    
         
            -
            - lib/graphql/backwards_compatibility.rb
         
     | 
| 
       319 
     | 
    
         
            -
            - lib/graphql/base_type.rb
         
     | 
| 
       320 
     | 
    
         
            -
            - lib/graphql/boolean_type.rb
         
     | 
| 
       321 
294 
     | 
    
         
             
            - 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 
295 
     | 
    
         
             
            - lib/graphql/dataloader.rb
         
     | 
| 
       333 
296 
     | 
    
         
             
            - lib/graphql/dataloader/null_dataloader.rb
         
     | 
| 
       334 
297 
     | 
    
         
             
            - lib/graphql/dataloader/request.rb
         
     | 
| 
       335 
298 
     | 
    
         
             
            - lib/graphql/dataloader/request_all.rb
         
     | 
| 
       336 
299 
     | 
    
         
             
            - lib/graphql/dataloader/source.rb
         
     | 
| 
       337 
300 
     | 
    
         
             
            - 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 
301 
     | 
    
         
             
            - lib/graphql/deprecation.rb
         
     | 
| 
       352 
302 
     | 
    
         
             
            - 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 
303 
     | 
    
         
             
            - lib/graphql/execution.rb
         
     | 
| 
       359 
304 
     | 
    
         
             
            - lib/graphql/execution/directive_checks.rb
         
     | 
| 
       360 
305 
     | 
    
         
             
            - lib/graphql/execution/errors.rb
         
     | 
| 
       361 
     | 
    
         
            -
            - lib/graphql/execution/execute.rb
         
     | 
| 
       362 
     | 
    
         
            -
            - lib/graphql/execution/flatten.rb
         
     | 
| 
       363 
306 
     | 
    
         
             
            - lib/graphql/execution/instrumentation.rb
         
     | 
| 
       364 
307 
     | 
    
         
             
            - lib/graphql/execution/interpreter.rb
         
     | 
| 
       365 
308 
     | 
    
         
             
            - lib/graphql/execution/interpreter/argument_value.rb
         
     | 
| 
         @@ -374,26 +317,10 @@ files: 
     | 
|
| 
       374 
317 
     | 
    
         
             
            - lib/graphql/execution/lazy/resolve.rb
         
     | 
| 
       375 
318 
     | 
    
         
             
            - lib/graphql/execution/lookahead.rb
         
     | 
| 
       376 
319 
     | 
    
         
             
            - lib/graphql/execution/multiplex.rb
         
     | 
| 
       377 
     | 
    
         
            -
            - lib/graphql/execution/typecast.rb
         
     | 
| 
       378 
320 
     | 
    
         
             
            - lib/graphql/execution_error.rb
         
     | 
| 
       379 
     | 
    
         
            -
            - lib/graphql/field.rb
         
     | 
| 
       380 
     | 
    
         
            -
            - lib/graphql/field/resolve.rb
         
     | 
| 
       381 
321 
     | 
    
         
             
            - 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 
322 
     | 
    
         
             
            - lib/graphql/integer_decoding_error.rb
         
     | 
| 
       388 
323 
     | 
    
         
             
            - 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 
324 
     | 
    
         
             
            - lib/graphql/introspection.rb
         
     | 
| 
       398 
325 
     | 
    
         
             
            - lib/graphql/introspection/base_object.rb
         
     | 
| 
       399 
326 
     | 
    
         
             
            - lib/graphql/introspection/directive_location_enum.rb
         
     | 
| 
         @@ -424,11 +351,8 @@ files: 
     | 
|
| 
       424 
351 
     | 
    
         
             
            - lib/graphql/language/sanitized_printer.rb
         
     | 
| 
       425 
352 
     | 
    
         
             
            - lib/graphql/language/token.rb
         
     | 
| 
       426 
353 
     | 
    
         
             
            - lib/graphql/language/visitor.rb
         
     | 
| 
       427 
     | 
    
         
            -
            - lib/graphql/list_type.rb
         
     | 
| 
       428 
354 
     | 
    
         
             
            - lib/graphql/load_application_object_failed_error.rb
         
     | 
| 
       429 
355 
     | 
    
         
             
            - lib/graphql/name_validator.rb
         
     | 
| 
       430 
     | 
    
         
            -
            - lib/graphql/non_null_type.rb
         
     | 
| 
       431 
     | 
    
         
            -
            - lib/graphql/object_type.rb
         
     | 
| 
       432 
356 
     | 
    
         
             
            - lib/graphql/pagination.rb
         
     | 
| 
       433 
357 
     | 
    
         
             
            - lib/graphql/pagination/active_record_relation_connection.rb
         
     | 
| 
       434 
358 
     | 
    
         
             
            - lib/graphql/pagination/array_connection.rb
         
     | 
| 
         @@ -439,20 +363,12 @@ files: 
     | 
|
| 
       439 
363 
     | 
    
         
             
            - lib/graphql/pagination/sequel_dataset_connection.rb
         
     | 
| 
       440 
364 
     | 
    
         
             
            - lib/graphql/parse_error.rb
         
     | 
| 
       441 
365 
     | 
    
         
             
            - lib/graphql/query.rb
         
     | 
| 
       442 
     | 
    
         
            -
            - lib/graphql/query/arguments.rb
         
     | 
| 
       443 
     | 
    
         
            -
            - lib/graphql/query/arguments_cache.rb
         
     | 
| 
       444 
366 
     | 
    
         
             
            - lib/graphql/query/context.rb
         
     | 
| 
       445 
     | 
    
         
            -
            - lib/graphql/query/executor.rb
         
     | 
| 
       446 
367 
     | 
    
         
             
            - lib/graphql/query/fingerprint.rb
         
     | 
| 
       447 
368 
     | 
    
         
             
            - lib/graphql/query/input_validation_result.rb
         
     | 
| 
       448 
369 
     | 
    
         
             
            - lib/graphql/query/literal_input.rb
         
     | 
| 
       449 
370 
     | 
    
         
             
            - lib/graphql/query/null_context.rb
         
     | 
| 
       450 
371 
     | 
    
         
             
            - 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 
372 
     | 
    
         
             
            - lib/graphql/query/validation_pipeline.rb
         
     | 
| 
       457 
373 
     | 
    
         
             
            - lib/graphql/query/variable_validation_error.rb
         
     | 
| 
       458 
374 
     | 
    
         
             
            - lib/graphql/query/variables.rb
         
     | 
| 
         @@ -460,31 +376,12 @@ files: 
     | 
|
| 
       460 
376 
     | 
    
         
             
            - lib/graphql/rake_task.rb
         
     | 
| 
       461 
377 
     | 
    
         
             
            - lib/graphql/rake_task/validate.rb
         
     | 
| 
       462 
378 
     | 
    
         
             
            - 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 
379 
     | 
    
         
             
            - lib/graphql/relay/range_add.rb
         
     | 
| 
       480 
     | 
    
         
            -
            - lib/graphql/relay/relation_connection.rb
         
     | 
| 
       481 
     | 
    
         
            -
            - lib/graphql/relay/type_extensions.rb
         
     | 
| 
       482 
380 
     | 
    
         
             
            - lib/graphql/rubocop.rb
         
     | 
| 
       483 
381 
     | 
    
         
             
            - lib/graphql/rubocop/graphql/base_cop.rb
         
     | 
| 
       484 
382 
     | 
    
         
             
            - lib/graphql/rubocop/graphql/default_null_true.rb
         
     | 
| 
       485 
383 
     | 
    
         
             
            - lib/graphql/rubocop/graphql/default_required_true.rb
         
     | 
| 
       486 
384 
     | 
    
         
             
            - lib/graphql/runtime_type_error.rb
         
     | 
| 
       487 
     | 
    
         
            -
            - lib/graphql/scalar_type.rb
         
     | 
| 
       488 
385 
     | 
    
         
             
            - lib/graphql/schema.rb
         
     | 
| 
       489 
386 
     | 
    
         
             
            - lib/graphql/schema/addition.rb
         
     | 
| 
       490 
387 
     | 
    
         
             
            - lib/graphql/schema/argument.rb
         
     | 
| 
         @@ -494,9 +391,6 @@ files: 
     | 
|
| 
       494 
391 
     | 
    
         
             
            - lib/graphql/schema/build_from_definition/resolve_map.rb
         
     | 
| 
       495 
392 
     | 
    
         
             
            - lib/graphql/schema/build_from_definition/resolve_map/default_resolve.rb
         
     | 
| 
       496 
393 
     | 
    
         
             
            - 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 
394 
     | 
    
         
             
            - lib/graphql/schema/directive.rb
         
     | 
| 
       501 
395 
     | 
    
         
             
            - lib/graphql/schema/directive/deprecated.rb
         
     | 
| 
       502 
396 
     | 
    
         
             
            - lib/graphql/schema/directive/feature.rb
         
     | 
| 
         @@ -520,10 +414,8 @@ files: 
     | 
|
| 
       520 
414 
     | 
    
         
             
            - lib/graphql/schema/list.rb
         
     | 
| 
       521 
415 
     | 
    
         
             
            - lib/graphql/schema/loader.rb
         
     | 
| 
       522 
416 
     | 
    
         
             
            - lib/graphql/schema/member.rb
         
     | 
| 
       523 
     | 
    
         
            -
            - lib/graphql/schema/member/accepts_definition.rb
         
     | 
| 
       524 
417 
     | 
    
         
             
            - lib/graphql/schema/member/base_dsl_methods.rb
         
     | 
| 
       525 
418 
     | 
    
         
             
            - lib/graphql/schema/member/build_type.rb
         
     | 
| 
       526 
     | 
    
         
            -
            - lib/graphql/schema/member/cached_graphql_definition.rb
         
     | 
| 
       527 
419 
     | 
    
         
             
            - lib/graphql/schema/member/graphql_type_names.rb
         
     | 
| 
       528 
420 
     | 
    
         
             
            - lib/graphql/schema/member/has_arguments.rb
         
     | 
| 
       529 
421 
     | 
    
         
             
            - lib/graphql/schema/member/has_ast_node.rb
         
     | 
| 
         @@ -534,32 +426,25 @@ files: 
     | 
|
| 
       534 
426 
     | 
    
         
             
            - lib/graphql/schema/member/has_path.rb
         
     | 
| 
       535 
427 
     | 
    
         
             
            - lib/graphql/schema/member/has_unresolved_type_error.rb
         
     | 
| 
       536 
428 
     | 
    
         
             
            - lib/graphql/schema/member/has_validators.rb
         
     | 
| 
       537 
     | 
    
         
            -
            - lib/graphql/schema/member/instrumentation.rb
         
     | 
| 
       538 
429 
     | 
    
         
             
            - lib/graphql/schema/member/relay_shortcuts.rb
         
     | 
| 
       539 
430 
     | 
    
         
             
            - lib/graphql/schema/member/scoped.rb
         
     | 
| 
       540 
431 
     | 
    
         
             
            - lib/graphql/schema/member/type_system_helpers.rb
         
     | 
| 
       541 
432 
     | 
    
         
             
            - lib/graphql/schema/member/validates_input.rb
         
     | 
| 
       542 
     | 
    
         
            -
            - lib/graphql/schema/middleware_chain.rb
         
     | 
| 
       543 
433 
     | 
    
         
             
            - lib/graphql/schema/mutation.rb
         
     | 
| 
       544 
434 
     | 
    
         
             
            - lib/graphql/schema/non_null.rb
         
     | 
| 
       545 
435 
     | 
    
         
             
            - lib/graphql/schema/null_mask.rb
         
     | 
| 
       546 
436 
     | 
    
         
             
            - lib/graphql/schema/object.rb
         
     | 
| 
       547 
     | 
    
         
            -
            - lib/graphql/schema/possible_types.rb
         
     | 
| 
       548 
437 
     | 
    
         
             
            - lib/graphql/schema/printer.rb
         
     | 
| 
       549 
438 
     | 
    
         
             
            - lib/graphql/schema/relay_classic_mutation.rb
         
     | 
| 
       550 
     | 
    
         
            -
            - lib/graphql/schema/rescue_middleware.rb
         
     | 
| 
       551 
439 
     | 
    
         
             
            - lib/graphql/schema/resolver.rb
         
     | 
| 
       552 
440 
     | 
    
         
             
            - lib/graphql/schema/resolver/has_payload_type.rb
         
     | 
| 
       553 
441 
     | 
    
         
             
            - lib/graphql/schema/scalar.rb
         
     | 
| 
       554 
442 
     | 
    
         
             
            - lib/graphql/schema/subscription.rb
         
     | 
| 
       555 
443 
     | 
    
         
             
            - lib/graphql/schema/timeout.rb
         
     | 
| 
       556 
     | 
    
         
            -
            - lib/graphql/schema/timeout_middleware.rb
         
     | 
| 
       557 
     | 
    
         
            -
            - lib/graphql/schema/traversal.rb
         
     | 
| 
       558 
444 
     | 
    
         
             
            - lib/graphql/schema/type_expression.rb
         
     | 
| 
       559 
445 
     | 
    
         
             
            - lib/graphql/schema/type_membership.rb
         
     | 
| 
       560 
446 
     | 
    
         
             
            - lib/graphql/schema/union.rb
         
     | 
| 
       561 
447 
     | 
    
         
             
            - lib/graphql/schema/unique_within_type.rb
         
     | 
| 
       562 
     | 
    
         
            -
            - lib/graphql/schema/validation.rb
         
     | 
| 
       563 
448 
     | 
    
         
             
            - lib/graphql/schema/validator.rb
         
     | 
| 
       564 
449 
     | 
    
         
             
            - lib/graphql/schema/validator/allow_blank_validator.rb
         
     | 
| 
       565 
450 
     | 
    
         
             
            - lib/graphql/schema/validator/allow_null_validator.rb
         
     | 
| 
         @@ -574,12 +459,10 @@ files: 
     | 
|
| 
       574 
459 
     | 
    
         
             
            - lib/graphql/static_validation.rb
         
     | 
| 
       575 
460 
     | 
    
         
             
            - lib/graphql/static_validation/all_rules.rb
         
     | 
| 
       576 
461 
     | 
    
         
             
            - lib/graphql/static_validation/base_visitor.rb
         
     | 
| 
       577 
     | 
    
         
            -
            - lib/graphql/static_validation/default_visitor.rb
         
     | 
| 
       578 
462 
     | 
    
         
             
            - lib/graphql/static_validation/definition_dependencies.rb
         
     | 
| 
       579 
463 
     | 
    
         
             
            - lib/graphql/static_validation/error.rb
         
     | 
| 
       580 
464 
     | 
    
         
             
            - lib/graphql/static_validation/interpreter_visitor.rb
         
     | 
| 
       581 
465 
     | 
    
         
             
            - lib/graphql/static_validation/literal_validator.rb
         
     | 
| 
       582 
     | 
    
         
            -
            - lib/graphql/static_validation/no_validate_visitor.rb
         
     | 
| 
       583 
466 
     | 
    
         
             
            - lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
         
     | 
| 
       584 
467 
     | 
    
         
             
            - lib/graphql/static_validation/rules/argument_literals_are_compatible_error.rb
         
     | 
| 
       585 
468 
     | 
    
         
             
            - lib/graphql/static_validation/rules/argument_names_are_unique.rb
         
     | 
| 
         @@ -643,7 +526,6 @@ files: 
     | 
|
| 
       643 
526 
     | 
    
         
             
            - lib/graphql/static_validation/validation_timeout_error.rb
         
     | 
| 
       644 
527 
     | 
    
         
             
            - lib/graphql/static_validation/validator.rb
         
     | 
| 
       645 
528 
     | 
    
         
             
            - lib/graphql/string_encoding_error.rb
         
     | 
| 
       646 
     | 
    
         
            -
            - lib/graphql/string_type.rb
         
     | 
| 
       647 
529 
     | 
    
         
             
            - lib/graphql/subscriptions.rb
         
     | 
| 
       648 
530 
     | 
    
         
             
            - lib/graphql/subscriptions/action_cable_subscriptions.rb
         
     | 
| 
       649 
531 
     | 
    
         
             
            - lib/graphql/subscriptions/broadcast_analyzer.rb
         
     | 
| 
         @@ -651,7 +533,6 @@ files: 
     | 
|
| 
       651 
533 
     | 
    
         
             
            - lib/graphql/subscriptions/event.rb
         
     | 
| 
       652 
534 
     | 
    
         
             
            - lib/graphql/subscriptions/instrumentation.rb
         
     | 
| 
       653 
535 
     | 
    
         
             
            - lib/graphql/subscriptions/serialize.rb
         
     | 
| 
       654 
     | 
    
         
            -
            - lib/graphql/subscriptions/subscription_root.rb
         
     | 
| 
       655 
536 
     | 
    
         
             
            - lib/graphql/tracing.rb
         
     | 
| 
       656 
537 
     | 
    
         
             
            - lib/graphql/tracing/active_support_notifications_tracing.rb
         
     | 
| 
       657 
538 
     | 
    
         
             
            - lib/graphql/tracing/appoptics_tracing.rb
         
     | 
| 
         @@ -659,12 +540,10 @@ files: 
     | 
|
| 
       659 
540 
     | 
    
         
             
            - lib/graphql/tracing/data_dog_tracing.rb
         
     | 
| 
       660 
541 
     | 
    
         
             
            - lib/graphql/tracing/new_relic_tracing.rb
         
     | 
| 
       661 
542 
     | 
    
         
             
            - lib/graphql/tracing/notifications_tracing.rb
         
     | 
| 
       662 
     | 
    
         
            -
            - lib/graphql/tracing/opentelemetry_tracing.rb
         
     | 
| 
       663 
543 
     | 
    
         
             
            - lib/graphql/tracing/platform_tracing.rb
         
     | 
| 
       664 
544 
     | 
    
         
             
            - lib/graphql/tracing/prometheus_tracing.rb
         
     | 
| 
       665 
545 
     | 
    
         
             
            - lib/graphql/tracing/prometheus_tracing/graphql_collector.rb
         
     | 
| 
       666 
546 
     | 
    
         
             
            - lib/graphql/tracing/scout_tracing.rb
         
     | 
| 
       667 
     | 
    
         
            -
            - lib/graphql/tracing/skylight_tracing.rb
         
     | 
| 
       668 
547 
     | 
    
         
             
            - lib/graphql/tracing/statsd_tracing.rb
         
     | 
| 
       669 
548 
     | 
    
         
             
            - lib/graphql/type_kinds.rb
         
     | 
| 
       670 
549 
     | 
    
         
             
            - lib/graphql/types.rb
         
     | 
| 
         @@ -686,17 +565,12 @@ files: 
     | 
|
| 
       686 
565 
     | 
    
         
             
            - lib/graphql/types/relay/has_nodes_field.rb
         
     | 
| 
       687 
566 
     | 
    
         
             
            - lib/graphql/types/relay/node.rb
         
     | 
| 
       688 
567 
     | 
    
         
             
            - lib/graphql/types/relay/node_behaviors.rb
         
     | 
| 
       689 
     | 
    
         
            -
            - lib/graphql/types/relay/node_field.rb
         
     | 
| 
       690 
     | 
    
         
            -
            - lib/graphql/types/relay/nodes_field.rb
         
     | 
| 
       691 
568 
     | 
    
         
             
            - lib/graphql/types/relay/page_info.rb
         
     | 
| 
       692 
569 
     | 
    
         
             
            - lib/graphql/types/relay/page_info_behaviors.rb
         
     | 
| 
       693 
570 
     | 
    
         
             
            - lib/graphql/types/string.rb
         
     | 
| 
       694 
571 
     | 
    
         
             
            - lib/graphql/unauthorized_error.rb
         
     | 
| 
       695 
572 
     | 
    
         
             
            - lib/graphql/unauthorized_field_error.rb
         
     | 
| 
       696 
     | 
    
         
            -
            - lib/graphql/union_type.rb
         
     | 
| 
       697 
573 
     | 
    
         
             
            - lib/graphql/unresolved_type_error.rb
         
     | 
| 
       698 
     | 
    
         
            -
            - lib/graphql/upgrader/member.rb
         
     | 
| 
       699 
     | 
    
         
            -
            - lib/graphql/upgrader/schema.rb
         
     | 
| 
       700 
574 
     | 
    
         
             
            - lib/graphql/version.rb
         
     | 
| 
       701 
575 
     | 
    
         
             
            - readme.md
         
     | 
| 
       702 
576 
     | 
    
         
             
            homepage: https://github.com/rmosolgo/graphql-ruby
         
     | 
| 
         @@ -708,7 +582,7 @@ metadata: 
     | 
|
| 
       708 
582 
     | 
    
         
             
              source_code_uri: https://github.com/rmosolgo/graphql-ruby
         
     | 
| 
       709 
583 
     | 
    
         
             
              bug_tracker_uri: https://github.com/rmosolgo/graphql-ruby/issues
         
     | 
| 
       710 
584 
     | 
    
         
             
              mailing_list_uri: https://tinyletter.com/graphql-ruby
         
     | 
| 
       711 
     | 
    
         
            -
            post_install_message:
         
     | 
| 
      
 585 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
       712 
586 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       713 
587 
     | 
    
         
             
            require_paths:
         
     | 
| 
       714 
588 
     | 
    
         
             
            - lib
         
     | 
| 
         @@ -723,8 +597,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       723 
597 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       724 
598 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       725 
599 
     | 
    
         
             
            requirements: []
         
     | 
| 
       726 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
       727 
     | 
    
         
            -
            signing_key:
         
     | 
| 
      
 600 
     | 
    
         
            +
            rubygems_version: 3.1.6
         
     | 
| 
      
 601 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
       728 
602 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       729 
603 
     | 
    
         
             
            summary: A GraphQL language and runtime for Ruby
         
     | 
| 
       730 
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
         
     | 
| 
         @@ -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
         
     | 
| 
         @@ -1,88 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
            module GraphQL
         
     | 
| 
       3 
     | 
    
         
            -
              module Analysis
         
     | 
| 
       4 
     | 
    
         
            -
                # Calculate the complexity of a query, using {Field#complexity} values.
         
     | 
| 
       5 
     | 
    
         
            -
                #
         
     | 
| 
       6 
     | 
    
         
            -
                # @example Log the complexity of incoming queries
         
     | 
| 
       7 
     | 
    
         
            -
                #   MySchema.query_analyzers << GraphQL::Analysis::QueryComplexity.new do |query, complexity|
         
     | 
| 
       8 
     | 
    
         
            -
                #     Rails.logger.info("Complexity: #{complexity}")
         
     | 
| 
       9 
     | 
    
         
            -
                #   end
         
     | 
| 
       10 
     | 
    
         
            -
                #
         
     | 
| 
       11 
     | 
    
         
            -
                class QueryComplexity
         
     | 
| 
       12 
     | 
    
         
            -
                  # @yield [query, complexity] Called for each query analyzed by the schema, before executing it
         
     | 
| 
       13 
     | 
    
         
            -
                  # @yieldparam query [GraphQL::Query] The query that was analyzed
         
     | 
| 
       14 
     | 
    
         
            -
                  # @yieldparam complexity [Numeric] The complexity for this query
         
     | 
| 
       15 
     | 
    
         
            -
                  def initialize(&block)
         
     | 
| 
       16 
     | 
    
         
            -
                    @complexity_handler = block
         
     | 
| 
       17 
     | 
    
         
            -
                  end
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
                  # State for the query complexity calcuation:
         
     | 
| 
       20 
     | 
    
         
            -
                  # - `target` is passed to handler
         
     | 
| 
       21 
     | 
    
         
            -
                  # - `complexities_on_type` holds complexity scores for each type in an IRep node
         
     | 
| 
       22 
     | 
    
         
            -
                  def initial_value(target)
         
     | 
| 
       23 
     | 
    
         
            -
                    {
         
     | 
| 
       24 
     | 
    
         
            -
                      target: target,
         
     | 
| 
       25 
     | 
    
         
            -
                      complexities_on_type: [TypeComplexity.new],
         
     | 
| 
       26 
     | 
    
         
            -
                    }
         
     | 
| 
       27 
     | 
    
         
            -
                  end
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
                  # Implement the query analyzer API
         
     | 
| 
       30 
     | 
    
         
            -
                  def call(memo, visit_type, irep_node)
         
     | 
| 
       31 
     | 
    
         
            -
                    if irep_node.ast_node.is_a?(GraphQL::Language::Nodes::Field)
         
     | 
| 
       32 
     | 
    
         
            -
                      if visit_type == :enter
         
     | 
| 
       33 
     | 
    
         
            -
                        memo[:complexities_on_type].push(TypeComplexity.new)
         
     | 
| 
       34 
     | 
    
         
            -
                      else
         
     | 
| 
       35 
     | 
    
         
            -
                        type_complexities = memo[:complexities_on_type].pop
         
     | 
| 
       36 
     | 
    
         
            -
                        child_complexity = type_complexities.max_possible_complexity
         
     | 
| 
       37 
     | 
    
         
            -
                        own_complexity = get_complexity(irep_node, child_complexity)
         
     | 
| 
       38 
     | 
    
         
            -
                        memo[:complexities_on_type].last.merge(irep_node.owner_type, own_complexity)
         
     | 
| 
       39 
     | 
    
         
            -
                      end
         
     | 
| 
       40 
     | 
    
         
            -
                    end
         
     | 
| 
       41 
     | 
    
         
            -
                    memo
         
     | 
| 
       42 
     | 
    
         
            -
                  end
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
                  # Send the query and complexity to the block
         
     | 
| 
       45 
     | 
    
         
            -
                  # @return [Object, GraphQL::AnalysisError] Whatever the handler returns
         
     | 
| 
       46 
     | 
    
         
            -
                  def final_value(reduced_value)
         
     | 
| 
       47 
     | 
    
         
            -
                    total_complexity = reduced_value[:complexities_on_type].last.max_possible_complexity
         
     | 
| 
       48 
     | 
    
         
            -
                    @complexity_handler.call(reduced_value[:target], total_complexity)
         
     | 
| 
       49 
     | 
    
         
            -
                  end
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                  private
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
                  # Get a complexity value for a field,
         
     | 
| 
       54 
     | 
    
         
            -
                  # by getting the number or calling its proc
         
     | 
| 
       55 
     | 
    
         
            -
                  def get_complexity(irep_node, child_complexity)
         
     | 
| 
       56 
     | 
    
         
            -
                    field_defn = irep_node.definition
         
     | 
| 
       57 
     | 
    
         
            -
                    defined_complexity = field_defn.complexity
         
     | 
| 
       58 
     | 
    
         
            -
                    case defined_complexity
         
     | 
| 
       59 
     | 
    
         
            -
                    when Proc
         
     | 
| 
       60 
     | 
    
         
            -
                      defined_complexity.call(irep_node.query.context, irep_node.arguments, child_complexity)
         
     | 
| 
       61 
     | 
    
         
            -
                    when Numeric
         
     | 
| 
       62 
     | 
    
         
            -
                      defined_complexity + (child_complexity || 0)
         
     | 
| 
       63 
     | 
    
         
            -
                    else
         
     | 
| 
       64 
     | 
    
         
            -
                      raise("Invalid complexity: #{defined_complexity.inspect} on #{field_defn.name}")
         
     | 
| 
       65 
     | 
    
         
            -
                    end
         
     | 
| 
       66 
     | 
    
         
            -
                  end
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
                  # Selections on an object may apply differently depending on what is _actually_ returned by the resolve function.
         
     | 
| 
       69 
     | 
    
         
            -
                  # Find the maximum possible complexity among those combinations.
         
     | 
| 
       70 
     | 
    
         
            -
                  class TypeComplexity
         
     | 
| 
       71 
     | 
    
         
            -
                    def initialize
         
     | 
| 
       72 
     | 
    
         
            -
                      @types = Hash.new(0)
         
     | 
| 
       73 
     | 
    
         
            -
                    end
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                    # Return the max possible complexity for types in this selection
         
     | 
| 
       76 
     | 
    
         
            -
                    def max_possible_complexity
         
     | 
| 
       77 
     | 
    
         
            -
                      @types.each_value.max || 0
         
     | 
| 
       78 
     | 
    
         
            -
                    end
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
                    # Store the complexity for the branch on `type_defn`.
         
     | 
| 
       81 
     | 
    
         
            -
                    # Later we will see if this is the max complexity among branches.
         
     | 
| 
       82 
     | 
    
         
            -
                    def merge(type_defn, complexity)
         
     | 
| 
       83 
     | 
    
         
            -
                      @types[type_defn] += complexity
         
     | 
| 
       84 
     | 
    
         
            -
                    end
         
     | 
| 
       85 
     | 
    
         
            -
                  end
         
     | 
| 
       86 
     | 
    
         
            -
                end
         
     | 
| 
       87 
     | 
    
         
            -
              end
         
     | 
| 
       88 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,43 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
            module GraphQL
         
     | 
| 
       3 
     | 
    
         
            -
              module Analysis
         
     | 
| 
       4 
     | 
    
         
            -
                # A query reducer for measuring the depth of a given query.
         
     | 
| 
       5 
     | 
    
         
            -
                #
         
     | 
| 
       6 
     | 
    
         
            -
                # @example Logging the depth of a query
         
     | 
| 
       7 
     | 
    
         
            -
                #   Schema.query_analyzers << GraphQL::Analysis::QueryDepth.new { |query, depth|  puts "GraphQL query depth: #{depth}" }
         
     | 
| 
       8 
     | 
    
         
            -
                #   Schema.execute(query_str)
         
     | 
| 
       9 
     | 
    
         
            -
                #   # GraphQL query depth: 8
         
     | 
| 
       10 
     | 
    
         
            -
                #
         
     | 
| 
       11 
     | 
    
         
            -
                class QueryDepth
         
     | 
| 
       12 
     | 
    
         
            -
                  def initialize(&block)
         
     | 
| 
       13 
     | 
    
         
            -
                    @depth_handler = block
         
     | 
| 
       14 
     | 
    
         
            -
                  end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
                  def initial_value(query)
         
     | 
| 
       17 
     | 
    
         
            -
                    {
         
     | 
| 
       18 
     | 
    
         
            -
                      max_depth: 0,
         
     | 
| 
       19 
     | 
    
         
            -
                      current_depth: 0,
         
     | 
| 
       20 
     | 
    
         
            -
                      query: query,
         
     | 
| 
       21 
     | 
    
         
            -
                    }
         
     | 
| 
       22 
     | 
    
         
            -
                  end
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
                  def call(memo, visit_type, irep_node)
         
     | 
| 
       25 
     | 
    
         
            -
                    if irep_node.ast_node.is_a?(GraphQL::Language::Nodes::Field)
         
     | 
| 
       26 
     | 
    
         
            -
                      if visit_type == :enter
         
     | 
| 
       27 
     | 
    
         
            -
                        memo[:current_depth] += 1
         
     | 
| 
       28 
     | 
    
         
            -
                      else
         
     | 
| 
       29 
     | 
    
         
            -
                        if memo[:max_depth] < memo[:current_depth]
         
     | 
| 
       30 
     | 
    
         
            -
                          memo[:max_depth] = memo[:current_depth]
         
     | 
| 
       31 
     | 
    
         
            -
                        end
         
     | 
| 
       32 
     | 
    
         
            -
                        memo[:current_depth] -= 1
         
     | 
| 
       33 
     | 
    
         
            -
                      end
         
     | 
| 
       34 
     | 
    
         
            -
                    end
         
     | 
| 
       35 
     | 
    
         
            -
                    memo
         
     | 
| 
       36 
     | 
    
         
            -
                  end
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
                  def final_value(memo)
         
     | 
| 
       39 
     | 
    
         
            -
                    @depth_handler.call(memo[:query], memo[:max_depth])
         
     | 
| 
       40 
     | 
    
         
            -
                  end
         
     | 
| 
       41 
     | 
    
         
            -
                end
         
     | 
| 
       42 
     | 
    
         
            -
              end
         
     | 
| 
       43 
     | 
    
         
            -
            end
         
     |