graphql 2.2.11 → 2.2.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/graphql/analysis/ast.rb +3 -0
- data/lib/graphql/execution/interpreter.rb +1 -1
- data/lib/graphql/pagination/array_connection.rb +4 -4
- data/lib/graphql/pagination/relation_connection.rb +3 -3
- data/lib/graphql/schema/field.rb +2 -0
- data/lib/graphql/schema/member/has_arguments.rb +2 -2
- data/lib/graphql/schema.rb +22 -10
- data/lib/graphql/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a0011bdb75efaaad6d3b2b56dd9ad5302c58b85cec60c676aab08a857f8da23
|
4
|
+
data.tar.gz: 3816babbb95e6798bcd0368efba9f0e64c8abeaa12a7fe153efe21c711ed4ed8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ff0e5f9ed0aa3eb37063d77507927673d1f12286bbcc72ec8e5c6b9e1d419a58b5c59b3981b5df04376c415ea83c59969d7ad1d0b9ea97cc65d1bc3412121d6
|
7
|
+
data.tar.gz: a59c9c9aadcba96a84079c2f428488b0258a4f68cff547db6b4c3bedbf6fcf8d78cb92fe88b6983f733f4151ecf9446bd3c59509a26e14086da52aead627aacc
|
data/lib/graphql/analysis/ast.rb
CHANGED
@@ -81,6 +81,9 @@ module GraphQL
|
|
81
81
|
end
|
82
82
|
rescue Timeout::Error
|
83
83
|
[GraphQL::AnalysisError.new("Timeout on validation of query")]
|
84
|
+
rescue GraphQL::UnauthorizedError
|
85
|
+
# This error was raised during analysis and will be returned the client before execution
|
86
|
+
[]
|
84
87
|
end
|
85
88
|
|
86
89
|
def analysis_errors(results)
|
@@ -47,7 +47,7 @@ module GraphQL
|
|
47
47
|
begin
|
48
48
|
# Since this is basically the batching context,
|
49
49
|
# share it for a whole multiplex
|
50
|
-
multiplex.context[:interpreter_instance] ||= multiplex.schema.query_execution_strategy.new
|
50
|
+
multiplex.context[:interpreter_instance] ||= multiplex.schema.query_execution_strategy(deprecation_warning: false).new
|
51
51
|
# Do as much eager evaluation of the query as possible
|
52
52
|
results = []
|
53
53
|
queries.each_with_index do |query, idx|
|
@@ -56,12 +56,12 @@ module GraphQL
|
|
56
56
|
false
|
57
57
|
end
|
58
58
|
|
59
|
-
@has_next_page = if
|
60
|
-
# There are more items after these items
|
61
|
-
sliced_nodes.count > first
|
62
|
-
elsif before
|
59
|
+
@has_next_page = if before
|
63
60
|
# The original array is longer than the `before` index
|
64
61
|
index_from_cursor(before) < items.length + 1
|
62
|
+
elsif first
|
63
|
+
# There are more items after these items
|
64
|
+
sliced_nodes.count > first
|
65
65
|
else
|
66
66
|
false
|
67
67
|
end
|
@@ -29,14 +29,14 @@ module GraphQL
|
|
29
29
|
|
30
30
|
def has_next_page
|
31
31
|
if @has_next_page.nil?
|
32
|
-
@has_next_page = if
|
32
|
+
@has_next_page = if before_offset && before_offset > 0
|
33
|
+
true
|
34
|
+
elsif first
|
33
35
|
if @nodes && @nodes.count < first
|
34
36
|
false
|
35
37
|
else
|
36
38
|
relation_larger_than(sliced_nodes, @sliced_nodes_offset, first)
|
37
39
|
end
|
38
|
-
elsif before_offset && before_offset > 0
|
39
|
-
true
|
40
40
|
else
|
41
41
|
false
|
42
42
|
end
|
data/lib/graphql/schema/field.rb
CHANGED
@@ -471,6 +471,8 @@ module GraphQL
|
|
471
471
|
if arguments[:last] && (max_possible_page_size.nil? || arguments[:last] > max_possible_page_size)
|
472
472
|
max_possible_page_size = arguments[:last]
|
473
473
|
end
|
474
|
+
elsif arguments.is_a?(GraphQL::UnauthorizedError)
|
475
|
+
raise arguments
|
474
476
|
end
|
475
477
|
|
476
478
|
if max_possible_page_size.nil?
|
@@ -50,7 +50,7 @@ module GraphQL
|
|
50
50
|
if loads && arg_defn.type.list?
|
51
51
|
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
52
52
|
def #{method_owner}load_#{arg_defn.keyword}(values, context = nil)
|
53
|
-
argument = get_argument("#{arg_defn.graphql_name}")
|
53
|
+
argument = get_argument("#{arg_defn.graphql_name}", context || self.context)
|
54
54
|
(context || self.context).query.after_lazy(values) do |values2|
|
55
55
|
GraphQL::Execution::Lazy.all(values2.map { |value| load_application_object(argument, value, context || self.context) })
|
56
56
|
end
|
@@ -59,7 +59,7 @@ module GraphQL
|
|
59
59
|
elsif loads
|
60
60
|
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
61
61
|
def #{method_owner}load_#{arg_defn.keyword}(value, context = nil)
|
62
|
-
argument = get_argument("#{arg_defn.graphql_name}")
|
62
|
+
argument = get_argument("#{arg_defn.graphql_name}", context || self.context)
|
63
63
|
load_application_object(argument, value, context || self.context)
|
64
64
|
end
|
65
65
|
RUBY
|
data/lib/graphql/schema.rb
CHANGED
@@ -63,10 +63,6 @@ module GraphQL
|
|
63
63
|
# Schemas can restrict large incoming queries with `max_depth` and `max_complexity` configurations.
|
64
64
|
# (These configurations can be overridden by specific calls to {Schema#execute})
|
65
65
|
#
|
66
|
-
# Schemas can specify how queries should be executed against them.
|
67
|
-
# `query_execution_strategy`, `mutation_execution_strategy` and `subscription_execution_strategy`
|
68
|
-
# each apply to corresponding root types.
|
69
|
-
#
|
70
66
|
# @example defining a schema
|
71
67
|
# class MySchema < GraphQL::Schema
|
72
68
|
# query QueryType
|
@@ -162,6 +158,10 @@ module GraphQL
|
|
162
158
|
|
163
159
|
def trace_class(new_class = nil)
|
164
160
|
if new_class
|
161
|
+
# If any modules were already added for `:default`,
|
162
|
+
# re-apply them here
|
163
|
+
mods = trace_modules_for(:default)
|
164
|
+
mods.each { |mod| new_class.include(mod) }
|
165
165
|
trace_mode(:default, new_class)
|
166
166
|
backtrace_class = Class.new(new_class)
|
167
167
|
backtrace_class.include(GraphQL::Backtrace::Trace)
|
@@ -651,27 +651,39 @@ module GraphQL
|
|
651
651
|
end
|
652
652
|
end
|
653
653
|
|
654
|
-
def query_execution_strategy(new_query_execution_strategy = nil)
|
654
|
+
def query_execution_strategy(new_query_execution_strategy = nil, deprecation_warning: true)
|
655
|
+
if deprecation_warning
|
656
|
+
warn "GraphQL::Schema.query_execution_strategy is deprecated without replacement. Use `GraphQL::Query.new` directly to create and execute a custom query instead."
|
657
|
+
warn " #{caller(1, 1).first}"
|
658
|
+
end
|
655
659
|
if new_query_execution_strategy
|
656
660
|
@query_execution_strategy = new_query_execution_strategy
|
657
661
|
else
|
658
|
-
@query_execution_strategy ||
|
662
|
+
@query_execution_strategy || (superclass.respond_to?(:query_execution_strategy) ? superclass.query_execution_strategy(deprecation_warning: false) : self.default_execution_strategy)
|
659
663
|
end
|
660
664
|
end
|
661
665
|
|
662
|
-
def mutation_execution_strategy(new_mutation_execution_strategy = nil)
|
666
|
+
def mutation_execution_strategy(new_mutation_execution_strategy = nil, deprecation_warning: true)
|
667
|
+
if deprecation_warning
|
668
|
+
warn "GraphQL::Schema.mutation_execution_strategy is deprecated without replacement. Use `GraphQL::Query.new` directly to create and execute a custom query instead."
|
669
|
+
warn " #{caller(1, 1).first}"
|
670
|
+
end
|
663
671
|
if new_mutation_execution_strategy
|
664
672
|
@mutation_execution_strategy = new_mutation_execution_strategy
|
665
673
|
else
|
666
|
-
@mutation_execution_strategy ||
|
674
|
+
@mutation_execution_strategy || (superclass.respond_to?(:mutation_execution_strategy) ? superclass.mutation_execution_strategy(deprecation_warning: false) : self.default_execution_strategy)
|
667
675
|
end
|
668
676
|
end
|
669
677
|
|
670
|
-
def subscription_execution_strategy(new_subscription_execution_strategy = nil)
|
678
|
+
def subscription_execution_strategy(new_subscription_execution_strategy = nil, deprecation_warning: true)
|
679
|
+
if deprecation_warning
|
680
|
+
warn "GraphQL::Schema.subscription_execution_strategy is deprecated without replacement. Use `GraphQL::Query.new` directly to create and execute a custom query instead."
|
681
|
+
warn " #{caller(1, 1).first}"
|
682
|
+
end
|
671
683
|
if new_subscription_execution_strategy
|
672
684
|
@subscription_execution_strategy = new_subscription_execution_strategy
|
673
685
|
else
|
674
|
-
@subscription_execution_strategy ||
|
686
|
+
@subscription_execution_strategy || (superclass.respond_to?(:subscription_execution_strategy) ? superclass.subscription_execution_strategy(deprecation_warning: false) : self.default_execution_strategy)
|
675
687
|
end
|
676
688
|
end
|
677
689
|
|
data/lib/graphql/version.rb
CHANGED
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: 2.2.
|
4
|
+
version: 2.2.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Mosolgo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: base64
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: graphql-batch
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: memory_profiler
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|