graphql 2.0.8 → 2.0.12
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/field_usage.rb +3 -1
- data/lib/graphql/execution/interpreter/runtime.rb +8 -4
- data/lib/graphql/execution/lazy.rb +0 -7
- data/lib/graphql/language/lexer.rb +42 -25
- data/lib/graphql/language/lexer.rl +26 -6
- data/lib/graphql/language/printer.rb +8 -5
- data/lib/graphql/pagination/connection.rb +31 -4
- data/lib/graphql/pagination/connections.rb +1 -0
- data/lib/graphql/pagination/relation_connection.rb +2 -0
- data/lib/graphql/query/validation_pipeline.rb +4 -0
- data/lib/graphql/query.rb +10 -1
- data/lib/graphql/rake_task.rb +1 -0
- data/lib/graphql/schema/addition.rb +1 -1
- data/lib/graphql/schema/argument.rb +10 -10
- data/lib/graphql/schema/field/connection_extension.rb +4 -0
- data/lib/graphql/schema/field.rb +25 -4
- data/lib/graphql/schema/member/has_arguments.rb +8 -2
- data/lib/graphql/schema/resolver.rb +21 -0
- data/lib/graphql/schema.rb +25 -3
- data/lib/graphql/subscriptions.rb +1 -1
- data/lib/graphql/tracing/platform_tracing.rb +17 -20
- data/lib/graphql/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d299fcfe61f486f9370dac7dfcd66df417ca4697932d7861822fb12c61a5889
|
4
|
+
data.tar.gz: 45e03854d6248c63f80d3b80e141a28970303516ab5f78375d9d3362b9e04ba5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d756a4c5213a8e17910233b0e472a037b6dad007676f5399f6192b93df53e78611915bd066ac619b59d7d44a0f35efbd7bb329cb4189246bce0c077f584b049b
|
7
|
+
data.tar.gz: 277f7623f5bcc351bed49b3e95156166e16a92c3041a905f1e88399b15839eff8a0c733c16f4ae33c82213a4a47c3184d5c763e43ac2ca01a613caa419000513
|
@@ -39,9 +39,11 @@ module GraphQL
|
|
39
39
|
@used_deprecated_arguments << argument.definition.path
|
40
40
|
end
|
41
41
|
|
42
|
+
next if argument.value.nil?
|
43
|
+
|
42
44
|
if argument.definition.type.kind.input_object?
|
43
45
|
extract_deprecated_arguments(argument.value.arguments.argument_values) # rubocop:disable Development/ContextIsPassedCop -- runtime args instance
|
44
|
-
elsif argument.definition.type.list?
|
46
|
+
elsif argument.definition.type.list?
|
45
47
|
argument
|
46
48
|
.value
|
47
49
|
.select { |value| value.respond_to?(:arguments) }
|
@@ -685,12 +685,16 @@ module GraphQL
|
|
685
685
|
set_result(selection_result, result_name, r)
|
686
686
|
r
|
687
687
|
when "UNION", "INTERFACE"
|
688
|
-
resolved_type_or_lazy
|
689
|
-
|
688
|
+
resolved_type_or_lazy = resolve_type(current_type, value, path)
|
689
|
+
after_lazy(resolved_type_or_lazy, owner: current_type, path: path, ast_node: ast_node, field: field, owner_object: owner_object, arguments: arguments, trace: false, result_name: result_name, result: selection_result) do |resolved_type_result|
|
690
|
+
if resolved_type_result.is_a?(Array) && resolved_type_result.length == 2
|
691
|
+
resolved_type, resolved_value = resolved_type_result
|
692
|
+
else
|
693
|
+
resolved_type = resolved_type_result
|
694
|
+
resolved_value = value
|
695
|
+
end
|
690
696
|
|
691
|
-
after_lazy(resolved_type_or_lazy, owner: current_type, path: path, ast_node: ast_node, field: field, owner_object: owner_object, arguments: arguments, trace: false, result_name: result_name, result: selection_result) do |resolved_type|
|
692
697
|
possible_types = query.possible_types(current_type)
|
693
|
-
|
694
698
|
if !possible_types.include?(resolved_type)
|
695
699
|
parent_type = field.owner_type
|
696
700
|
err_class = current_type::UnresolvedTypeError
|
@@ -12,13 +12,6 @@ module GraphQL
|
|
12
12
|
# - It has no error-catching functionality
|
13
13
|
# @api private
|
14
14
|
class Lazy
|
15
|
-
# Traverse `val`, lazily resolving any values along the way
|
16
|
-
# @param val [Object] A data structure containing mixed plain values and `Lazy` instances
|
17
|
-
# @return void
|
18
|
-
def self.resolve(val)
|
19
|
-
Resolve.resolve(val)
|
20
|
-
end
|
21
|
-
|
22
15
|
attr_reader :path, :field
|
23
16
|
|
24
17
|
# Create a {Lazy} which will get its inner value by calling the block
|
@@ -11,18 +11,36 @@ end
|
|
11
11
|
# To avoid allocating more strings, this modifies the string passed into it
|
12
12
|
def self.replace_escaped_characters_in_place(raw_string)
|
13
13
|
raw_string.gsub!(ESCAPES, ESCAPES_REPLACE)
|
14
|
-
raw_string.gsub!(UTF_8
|
15
|
-
|
14
|
+
raw_string.gsub!(UTF_8) do |_matched_str|
|
15
|
+
codepoint_1 = ($1 || $2).to_i(16)
|
16
|
+
codepoint_2 = $3
|
17
|
+
|
18
|
+
if codepoint_2
|
19
|
+
codepoint_2 = codepoint_2.to_i(16)
|
20
|
+
if (codepoint_1 >= 0xD800 && codepoint_1 <= 0xDBFF) && # leading surrogate
|
21
|
+
(codepoint_2 >= 0xDC00 && codepoint_2 <= 0xDFFF) # trailing surrogate
|
22
|
+
# A surrogate pair
|
23
|
+
combined = ((codepoint_1 - 0xD800) * 0x400) + (codepoint_2 - 0xDC00) + 0x10000
|
24
|
+
[combined].pack('U'.freeze)
|
25
|
+
else
|
26
|
+
# Two separate code points
|
27
|
+
[codepoint_1].pack('U'.freeze) + [codepoint_2].pack('U'.freeze)
|
28
|
+
end
|
29
|
+
else
|
30
|
+
[codepoint_1].pack('U'.freeze)
|
31
|
+
end
|
16
32
|
end
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
33
|
+
nil
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
class << self
|
21
39
|
attr_accessor :_graphql_lexer_trans_keys
|
22
40
|
private :_graphql_lexer_trans_keys, :_graphql_lexer_trans_keys=
|
23
41
|
end
|
24
42
|
self._graphql_lexer_trans_keys = [
|
25
|
-
1, 0, 4, 22, 4, 43, 14, 46, 14, 46, 14, 46, 14, 46, 4, 22, 4, 4, 4, 4, 4, 22, 4, 4, 4, 4, 14, 15, 14, 15, 10, 15, 12, 12, 4, 22, 4, 43, 14, 46, 14, 46, 14, 46, 14, 46, 0, 49, 0, 0, 4, 22, 4, 4, 4, 4, 4, 4, 4, 22, 4, 4, 4, 4, 1, 1, 14, 15, 10, 29, 14, 15, 10, 29, 10, 29, 12, 12, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 4, 4, 0 ,
|
43
|
+
1, 0, 4, 22, 4, 43, 14, 47, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 49, 4, 22, 4, 4, 4, 4, 4, 22, 4, 4, 4, 4, 14, 15, 14, 15, 10, 15, 12, 12, 4, 22, 4, 43, 14, 47, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 49, 0, 49, 0, 0, 4, 22, 4, 4, 4, 4, 4, 4, 4, 22, 4, 4, 4, 4, 1, 1, 14, 15, 10, 29, 14, 15, 10, 29, 10, 29, 12, 12, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 14, 46, 4, 4, 0 ,
|
26
44
|
]
|
27
45
|
|
28
46
|
class << self
|
@@ -38,7 +56,7 @@ class << self
|
|
38
56
|
private :_graphql_lexer_index_offsets, :_graphql_lexer_index_offsets=
|
39
57
|
end
|
40
58
|
self._graphql_lexer_index_offsets = [
|
41
|
-
0, 0, 19, 59,
|
59
|
+
0, 0, 19, 59, 93, 126, 159, 192, 225, 258, 291, 324, 360, 379, 380, 381, 400, 401, 402, 404, 406, 412, 413, 432, 472, 506, 539, 572, 605, 638, 671, 704, 737, 773, 823, 824, 843, 844, 845, 846, 865, 866, 867, 868, 870, 890, 892, 912, 932, 933, 966, 999, 1032, 1065, 1098, 1131, 1164, 1197, 1230, 1263, 1296, 1329, 1362, 1395, 1428, 1461, 1494, 1527, 1560, 1593, 1626, 1659, 1692, 1725, 1758, 1791, 1824, 1857, 1890, 1923, 1956, 1989, 2022, 2055, 2088, 2121, 2154, 2187, 2220, 2253, 2286, 2319, 2352, 2385, 2418, 2451, 2484, 2517, 2550, 2583, 2616, 2649, 2682, 2715, 2748, 2781, 2814, 2847, 2880, 2913, 2946, 2979, 3012, 3045, 3078, 3111, 3144, 3177, 3210, 3243, 3276, 3309, 3342, 3375, 3408, 3441, 3474, 3507, 3540, 3573, 3606, 3639, 3672, 3705, 3738, 3771, 3804, 3837, 3870, 3903, 3936, 3969, 4002, 4035, 4068, 0 ,
|
42
60
|
]
|
43
61
|
|
44
62
|
class << self
|
@@ -46,7 +64,7 @@ class << self
|
|
46
64
|
private :_graphql_lexer_indicies, :_graphql_lexer_indicies=
|
47
65
|
end
|
48
66
|
self._graphql_lexer_indicies = [
|
49
|
-
2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 4, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 0, 0, 0, 6, 6, 0, 0, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 12, 13, 14, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 15, 16, 17, 17, 19, 19, 20, 20, 8, 8, 17, 17, 21, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24, 22, 25, 25, 25, 25, 25, 25, 25, 25, 22, 25, 25, 25, 25, 25, 25, 25, 25, 22, 25, 25, 25, 22, 25, 25, 25, 22, 25, 25, 25, 25, 25, 22, 25, 25, 25, 22, 25, 22, 26, 27, 27, 25, 25, 25, 27, 27, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 25, 25, 25, 28, 28, 25, 25, 25, 25, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 25, 25, 25, 29, 29, 25, 25, 25, 25, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 22, 22, 25, 25, 25, 22, 22, 25, 25, 25, 25, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 31, 32, 30, 33, 34, 35, 36, 37, 38, 39, 30, 40, 41, 30, 42, 43, 44, 45, 46, 47, 47, 48, 30, 49, 47, 47, 47, 47, 50, 51, 52, 47, 47, 53, 47, 54, 55, 56, 47, 57, 58, 59, 60, 61, 47, 47, 47, 62, 63, 64, 31, 67, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 9, 70, 71, 72, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 73, 13, 74, 42, 43, 20, 20, 76, 75, 17, 17, 75, 75, 75, 75, 77, 75, 75, 75, 75, 75, 75, 75, 75, 77, 17, 17, 20, 20, 78, 78, 19, 19, 78, 78, 78, 78, 77, 78, 78, 78, 78, 78, 78, 78, 78, 77, 20, 20, 76, 75, 43, 43, 75, 75, 75, 75, 77, 75, 75, 75, 75, 75, 75, 75, 75, 77, 79, 47, 47, 8, 8, 8, 47, 47, 8, 8, 8, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 81, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 82, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 83, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 84, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 85, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 86, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 87, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 88, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 89, 47, 47, 47, 47, 47, 47, 47, 47, 90, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 91, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 92, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 93, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 94, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 95, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 96, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 97, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 98, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 99, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 100, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 101, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 102, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 103, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 104, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 105, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 106, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 107, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 108, 109, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 110, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 111, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 112, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 113, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 114, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 115, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 116, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 117, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 118, 47, 47, 47, 119, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 120, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 121, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 122, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 123, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 124, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 125, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 126, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 127, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 128, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 129, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 130, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 131, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 132, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 133, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 134, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 135, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 136, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 137, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 138, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 139, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 140, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 141, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 142, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 143, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 144, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 145, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 146, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 147, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 148, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 149, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 150, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 151, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 152, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 153, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 154, 47, 47, 47, 47, 47, 47, 155, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 156, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 157, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 158, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 159, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 160, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 161, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 162, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 163, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 164, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 165, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 166, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 167, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 168, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 169, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 170, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 171, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 172, 47, 47, 47, 47, 47, 173, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 174, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 175, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 176, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 177, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 178, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 179, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 180, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 80, 80, 80, 47, 47, 80, 80, 80, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 181, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 22, 0 ,
|
67
|
+
2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 4, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 0, 0, 0, 10, 10, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 0, 0, 0, 11, 11, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 0, 0, 0, 12, 12, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 12, 12, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0, 0, 1, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 16, 17, 18, 19, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 16, 20, 21, 22, 22, 24, 24, 25, 25, 13, 13, 22, 22, 26, 28, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 29, 27, 30, 30, 30, 30, 30, 30, 30, 30, 27, 30, 30, 30, 30, 30, 30, 30, 30, 27, 30, 30, 30, 27, 30, 30, 30, 27, 30, 30, 30, 30, 30, 27, 30, 30, 30, 27, 30, 27, 31, 32, 32, 30, 30, 30, 32, 32, 30, 30, 30, 30, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 34, 34, 30, 30, 30, 34, 34, 30, 30, 30, 30, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 30, 30, 30, 35, 35, 30, 30, 30, 30, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 27, 27, 30, 30, 30, 27, 27, 30, 30, 30, 30, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 36, 36, 30, 30, 30, 36, 36, 30, 30, 30, 30, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 30, 30, 30, 37, 37, 30, 30, 30, 30, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 30, 30, 30, 38, 38, 30, 30, 30, 30, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 30, 30, 30, 39, 39, 30, 30, 30, 30, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 30, 30, 30, 39, 39, 30, 30, 30, 30, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 30, 30, 27, 41, 42, 40, 43, 44, 45, 46, 47, 48, 49, 40, 50, 51, 40, 52, 53, 54, 55, 56, 57, 57, 58, 40, 59, 57, 57, 57, 57, 60, 61, 62, 57, 57, 63, 57, 64, 65, 66, 57, 67, 68, 69, 70, 71, 57, 57, 57, 72, 73, 74, 41, 77, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 14, 80, 81, 82, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 16, 83, 18, 84, 52, 53, 25, 25, 86, 85, 22, 22, 85, 85, 85, 85, 87, 85, 85, 85, 85, 85, 85, 85, 85, 87, 22, 22, 25, 25, 88, 88, 24, 24, 88, 88, 88, 88, 87, 88, 88, 88, 88, 88, 88, 88, 88, 87, 25, 25, 86, 85, 53, 53, 85, 85, 85, 85, 87, 85, 85, 85, 85, 85, 85, 85, 85, 87, 89, 57, 57, 13, 13, 13, 57, 57, 13, 13, 13, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 91, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 92, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 93, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 94, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 95, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 96, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 97, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 98, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 99, 57, 57, 57, 57, 57, 57, 57, 57, 100, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 101, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 102, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 103, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 104, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 105, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 106, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 107, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 108, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 109, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 110, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 111, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 112, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 113, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 114, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 115, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 116, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 117, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 118, 119, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 120, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 121, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 122, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 123, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 124, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 125, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 126, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 127, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 128, 57, 57, 57, 129, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 130, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 131, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 132, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 133, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 134, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 135, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 136, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 137, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 138, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 139, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 140, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 141, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 142, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 143, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 144, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 145, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 146, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 147, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 148, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 149, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 150, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 151, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 152, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 153, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 154, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 155, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 156, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 157, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 158, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 159, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 160, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 161, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 162, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 163, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 164, 57, 57, 57, 57, 57, 57, 165, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 166, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 167, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 168, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 169, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 170, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 171, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 172, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 173, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 174, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 175, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 176, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 177, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 178, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 179, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 180, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 181, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 182, 57, 57, 57, 57, 57, 183, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 184, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 185, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 186, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 187, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 188, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 189, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 190, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 90, 90, 90, 57, 57, 90, 90, 90, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 191, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 27, 0 ,
|
50
68
|
]
|
51
69
|
|
52
70
|
class << self
|
@@ -54,7 +72,7 @@ class << self
|
|
54
72
|
private :_graphql_lexer_index_defaults, :_graphql_lexer_index_defaults=
|
55
73
|
end
|
56
74
|
self._graphql_lexer_index_defaults = [
|
57
|
-
0, 1, 0, 0, 0, 0, 0,
|
75
|
+
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 13, 23, 13, 0, 27, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 40, 75, 1, 78, 79, 79, 14, 14, 14, 45, 76, 85, 88, 88, 85, 76, 13, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 30, 0 ,
|
58
76
|
]
|
59
77
|
|
60
78
|
class << self
|
@@ -62,7 +80,7 @@ class << self
|
|
62
80
|
private :_graphql_lexer_trans_cond_spaces, :_graphql_lexer_trans_cond_spaces=
|
63
81
|
end
|
64
82
|
self._graphql_lexer_trans_cond_spaces = [
|
65
|
-
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0 ,
|
83
|
+
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0 ,
|
66
84
|
]
|
67
85
|
|
68
86
|
class << self
|
@@ -70,7 +88,7 @@ class << self
|
|
70
88
|
private :_graphql_lexer_cond_targs, :_graphql_lexer_cond_targs=
|
71
89
|
end
|
72
90
|
self._graphql_lexer_cond_targs = [
|
73
|
-
|
91
|
+
33, 1, 33, 2, 3, 4, 7, 5, 6, 8, 9, 10, 11, 33, 12, 13, 15, 14, 37, 16, 17, 39, 45, 33, 46, 18, 33, 22, 144, 23, 0, 24, 25, 28, 26, 27, 29, 30, 31, 32, 33, 34, 33, 33, 35, 42, 33, 33, 33, 33, 43, 48, 44, 47, 33, 33, 33, 49, 33, 33, 50, 58, 65, 75, 93, 100, 103, 104, 108, 117, 135, 140, 33, 33, 33, 33, 33, 36, 33, 33, 38, 33, 40, 41, 33, 33, 19, 20, 33, 21, 33, 51, 52, 53, 54, 55, 56, 57, 49, 59, 61, 60, 49, 62, 63, 64, 49, 66, 69, 67, 68, 49, 70, 71, 72, 73, 74, 49, 76, 84, 77, 78, 79, 80, 81, 82, 83, 49, 85, 87, 86, 49, 88, 89, 90, 91, 92, 49, 94, 95, 96, 97, 98, 99, 49, 101, 102, 49, 49, 105, 106, 107, 49, 109, 110, 111, 112, 113, 114, 115, 116, 49, 118, 125, 119, 122, 120, 121, 49, 123, 124, 49, 126, 127, 128, 129, 130, 131, 132, 133, 134, 49, 136, 138, 137, 49, 139, 49, 141, 142, 143, 49, 0 ,
|
74
92
|
]
|
75
93
|
|
76
94
|
class << self
|
@@ -78,7 +96,7 @@ class << self
|
|
78
96
|
private :_graphql_lexer_cond_actions, :_graphql_lexer_cond_actions=
|
79
97
|
end
|
80
98
|
self._graphql_lexer_cond_actions = [
|
81
|
-
1, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 6, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 11, 0, 12, 13, 14, 0, 15, 16, 17, 18, 0, 14, 19, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 31, 32, 33, 0, 34, 4, 4, 35, 36, 0, 0, 37, 0, 38, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 47, 0, 0, 48, 49, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 55, 0, 56, 0, 0, 0, 57, 0 ,
|
99
|
+
1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 6, 0, 7, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 12, 13, 14, 0, 15, 16, 17, 18, 0, 14, 19, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 31, 32, 33, 0, 34, 4, 4, 35, 36, 0, 0, 37, 0, 38, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0, 41, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 47, 0, 0, 48, 49, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 0, 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 55, 0, 56, 0, 0, 0, 57, 0 ,
|
82
100
|
]
|
83
101
|
|
84
102
|
class << self
|
@@ -86,7 +104,7 @@ class << self
|
|
86
104
|
private :_graphql_lexer_to_state_actions, :_graphql_lexer_to_state_actions=
|
87
105
|
end
|
88
106
|
self._graphql_lexer_to_state_actions = [
|
89
|
-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0 ,
|
107
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0 ,
|
90
108
|
]
|
91
109
|
|
92
110
|
class << self
|
@@ -94,7 +112,7 @@ class << self
|
|
94
112
|
private :_graphql_lexer_from_state_actions, :_graphql_lexer_from_state_actions=
|
95
113
|
end
|
96
114
|
self._graphql_lexer_from_state_actions = [
|
97
|
-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0 ,
|
115
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0 ,
|
98
116
|
]
|
99
117
|
|
100
118
|
class << self
|
@@ -102,7 +120,7 @@ class << self
|
|
102
120
|
private :_graphql_lexer_eof_trans, :_graphql_lexer_eof_trans=
|
103
121
|
end
|
104
122
|
self._graphql_lexer_eof_trans = [
|
105
|
-
0, 1, 1, 1, 1, 1, 1,
|
123
|
+
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14, 14, 14, 14, 14, 14, 14, 24, 14, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 77, 79, 80, 80, 80, 80, 80, 85, 77, 86, 89, 89, 86, 77, 14, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 0, 0 ,
|
106
124
|
]
|
107
125
|
|
108
126
|
class << self
|
@@ -118,7 +136,7 @@ class << self
|
|
118
136
|
private :_graphql_lexer_nfa_offsets, :_graphql_lexer_nfa_offsets=
|
119
137
|
end
|
120
138
|
self._graphql_lexer_nfa_offsets = [
|
121
|
-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
|
139
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
|
122
140
|
]
|
123
141
|
|
124
142
|
class << self
|
@@ -140,12 +158,12 @@ self._graphql_lexer_nfa_pop_trans = [
|
|
140
158
|
class << self
|
141
159
|
attr_accessor :graphql_lexer_start
|
142
160
|
end
|
143
|
-
self.graphql_lexer_start =
|
161
|
+
self.graphql_lexer_start = 33;
|
144
162
|
|
145
163
|
class << self
|
146
164
|
attr_accessor :graphql_lexer_first_final
|
147
165
|
end
|
148
|
-
self.graphql_lexer_first_final =
|
166
|
+
self.graphql_lexer_first_final = 33;
|
149
167
|
|
150
168
|
class << self
|
151
169
|
attr_accessor :graphql_lexer_error
|
@@ -155,12 +173,12 @@ self.graphql_lexer_error = 0;
|
|
155
173
|
class << self
|
156
174
|
attr_accessor :graphql_lexer_en_str
|
157
175
|
end
|
158
|
-
self.graphql_lexer_en_str =
|
176
|
+
self.graphql_lexer_en_str = 144;
|
159
177
|
|
160
178
|
class << self
|
161
179
|
attr_accessor :graphql_lexer_en_main
|
162
180
|
end
|
163
|
-
self.graphql_lexer_en_main =
|
181
|
+
self.graphql_lexer_en_main = 33;
|
164
182
|
|
165
183
|
def self.run_lexer(query_string)
|
166
184
|
data = query_string.unpack(PACK_DIRECTIVE)
|
@@ -1435,8 +1453,8 @@ ESCAPES_REPLACE = {
|
|
1435
1453
|
"\\t" => "\t",
|
1436
1454
|
}
|
1437
1455
|
|
1438
|
-
UTF_8 = /\\u[\dAa-f]{4}
|
1439
|
-
|
1456
|
+
UTF_8 = /\\u(?:([\dAa-f]{4})|\{([\da-f]{4,})\})(?:\\u([\dAa-f]{4}))?/i
|
1457
|
+
|
1440
1458
|
|
1441
1459
|
VALID_STRING = /\A(?:[^\\]|#{ESCAPES}|#{UTF_8})*\z/o
|
1442
1460
|
|
@@ -1451,8 +1469,7 @@ if block && !value.empty?
|
|
1451
1469
|
line_incr = value.count("\n")
|
1452
1470
|
value = GraphQL::Language::BlockString.trim_whitespace(value)
|
1453
1471
|
end
|
1454
|
-
|
1455
|
-
# (It's faster: https://bugs.ruby-lang.org/issues/8110)
|
1472
|
+
|
1456
1473
|
if !value.valid_encoding? || !value.match?(VALID_STRING)
|
1457
1474
|
meta[:tokens] << token = GraphQL::Language::Token.new(
|
1458
1475
|
:BAD_UNICODE_ESCAPE,
|
@@ -39,7 +39,10 @@
|
|
39
39
|
BACKSLASH = '\\';
|
40
40
|
# Could limit to hex here, but “bad unicode escape” on 0XXF is probably a
|
41
41
|
# more helpful error than “unknown char”
|
42
|
-
|
42
|
+
UNICODE_DIGIT = [0-9A-Za-z];
|
43
|
+
FOUR_DIGIT_UNICODE = UNICODE_DIGIT{4};
|
44
|
+
N_DIGIT_UNICODE = LCURLY UNICODE_DIGIT{4,} RCURLY;
|
45
|
+
UNICODE_ESCAPE = '\\u' (FOUR_DIGIT_UNICODE | N_DIGIT_UNICODE);
|
43
46
|
# https://graphql.github.io/graphql-spec/June2018/#sec-String-Value
|
44
47
|
STRING_ESCAPE = '\\' [\\/bfnrt];
|
45
48
|
BLOCK_QUOTE = '"""';
|
@@ -131,7 +134,25 @@ module GraphQL
|
|
131
134
|
# To avoid allocating more strings, this modifies the string passed into it
|
132
135
|
def self.replace_escaped_characters_in_place(raw_string)
|
133
136
|
raw_string.gsub!(ESCAPES, ESCAPES_REPLACE)
|
134
|
-
raw_string.gsub!(UTF_8
|
137
|
+
raw_string.gsub!(UTF_8) do |_matched_str|
|
138
|
+
codepoint_1 = ($1 || $2).to_i(16)
|
139
|
+
codepoint_2 = $3
|
140
|
+
|
141
|
+
if codepoint_2
|
142
|
+
codepoint_2 = codepoint_2.to_i(16)
|
143
|
+
if (codepoint_1 >= 0xD800 && codepoint_1 <= 0xDBFF) && # leading surrogate
|
144
|
+
(codepoint_2 >= 0xDC00 && codepoint_2 <= 0xDFFF) # trailing surrogate
|
145
|
+
# A surrogate pair
|
146
|
+
combined = ((codepoint_1 - 0xD800) * 0x400) + (codepoint_2 - 0xDC00) + 0x10000
|
147
|
+
[combined].pack('U'.freeze)
|
148
|
+
else
|
149
|
+
# Two separate code points
|
150
|
+
[codepoint_1].pack('U'.freeze) + [codepoint_2].pack('U'.freeze)
|
151
|
+
end
|
152
|
+
else
|
153
|
+
[codepoint_1].pack('U'.freeze)
|
154
|
+
end
|
155
|
+
end
|
135
156
|
nil
|
136
157
|
end
|
137
158
|
|
@@ -203,8 +224,8 @@ module GraphQL
|
|
203
224
|
"\\t" => "\t",
|
204
225
|
}
|
205
226
|
|
206
|
-
UTF_8 = /\\u[\dAa-f]{4}
|
207
|
-
|
227
|
+
UTF_8 = /\\u(?:([\dAa-f]{4})|\{([\da-f]{4,})\})(?:\\u([\dAa-f]{4}))?/i
|
228
|
+
|
208
229
|
|
209
230
|
VALID_STRING = /\A(?:[^\\]|#{ESCAPES}|#{UTF_8})*\z/o
|
210
231
|
|
@@ -219,8 +240,7 @@ module GraphQL
|
|
219
240
|
line_incr = value.count("\n")
|
220
241
|
value = GraphQL::Language::BlockString.trim_whitespace(value)
|
221
242
|
end
|
222
|
-
|
223
|
-
# (It's faster: https://bugs.ruby-lang.org/issues/8110)
|
243
|
+
|
224
244
|
if !value.valid_encoding? || !value.match?(VALID_STRING)
|
225
245
|
meta[:tokens] << token = GraphQL::Language::Token.new(
|
226
246
|
:BAD_UNICODE_ESCAPE,
|
@@ -236,12 +236,15 @@ module GraphQL
|
|
236
236
|
out = print_description(input_object_type)
|
237
237
|
out << "input #{input_object_type.name}"
|
238
238
|
out << print_directives(input_object_type.directives)
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
239
|
+
if !input_object_type.fields.empty?
|
240
|
+
out << " {\n"
|
241
|
+
input_object_type.fields.each.with_index do |field, i|
|
242
|
+
out << print_description(field, indent: ' ', first_in_block: i == 0)
|
243
|
+
out << " #{print_input_value_definition(field)}\n"
|
244
|
+
end
|
245
|
+
out << "}"
|
243
246
|
end
|
244
|
-
out
|
247
|
+
out
|
245
248
|
end
|
246
249
|
|
247
250
|
def print_directive_definition(directive)
|
@@ -56,8 +56,9 @@ module GraphQL
|
|
56
56
|
# @param last [Integer, nil] Limit parameter from the client, if provided
|
57
57
|
# @param before [String, nil] A cursor for pagination, if the client provided one.
|
58
58
|
# @param arguments [Hash] The arguments to the field that returned the collection wrapped by this connection
|
59
|
-
# @param max_page_size [Integer, nil] A configured value to cap the result size. Applied as `first` if neither first or last are given.
|
60
|
-
|
59
|
+
# @param max_page_size [Integer, nil] A configured value to cap the result size. Applied as `first` if neither first or last are given and no `default_page_size` is set.
|
60
|
+
# @param default_page_size [Integer, nil] A configured value to determine the result size when neither first or last are given.
|
61
|
+
def initialize(items, parent: nil, field: nil, context: nil, first: nil, after: nil, max_page_size: :not_given, default_page_size: :not_given, last: nil, before: nil, edge_class: nil, arguments: nil)
|
61
62
|
@items = items
|
62
63
|
@parent = parent
|
63
64
|
@context = context
|
@@ -76,6 +77,12 @@ module GraphQL
|
|
76
77
|
else
|
77
78
|
max_page_size
|
78
79
|
end
|
80
|
+
@has_default_page_size_override = default_page_size != :not_given
|
81
|
+
@default_page_size = if default_page_size == :not_given
|
82
|
+
nil
|
83
|
+
else
|
84
|
+
default_page_size
|
85
|
+
end
|
79
86
|
end
|
80
87
|
|
81
88
|
def max_page_size=(new_value)
|
@@ -95,16 +102,36 @@ module GraphQL
|
|
95
102
|
@has_max_page_size_override
|
96
103
|
end
|
97
104
|
|
105
|
+
def default_page_size=(new_value)
|
106
|
+
@has_default_page_size_override = true
|
107
|
+
@default_page_size = new_value
|
108
|
+
end
|
109
|
+
|
110
|
+
def default_page_size
|
111
|
+
if @has_default_page_size_override
|
112
|
+
@default_page_size
|
113
|
+
else
|
114
|
+
context.schema.default_page_size
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
def has_default_page_size_override?
|
119
|
+
@has_default_page_size_override
|
120
|
+
end
|
121
|
+
|
98
122
|
attr_writer :first
|
99
123
|
# @return [Integer, nil]
|
100
124
|
# A clamped `first` value.
|
101
125
|
# (The underlying instance variable doesn't have limits on it.)
|
102
|
-
# If neither `first` nor `last` is given, but `
|
126
|
+
# If neither `first` nor `last` is given, but `default_page_size` is
|
127
|
+
# present, default_page_size is used for first. If `default_page_size`
|
128
|
+
# is greater than `max_page_size``, it'll be clamped down to
|
129
|
+
# `max_page_size`. If `default_page_size` is nil, use `max_page_size`.
|
103
130
|
def first
|
104
131
|
@first ||= begin
|
105
132
|
capped = limit_pagination_argument(@first_value, max_page_size)
|
106
133
|
if capped.nil? && last.nil?
|
107
|
-
capped = max_page_size
|
134
|
+
capped = limit_pagination_argument(default_page_size, max_page_size) || max_page_size
|
108
135
|
end
|
109
136
|
capped
|
110
137
|
end
|
@@ -70,6 +70,7 @@ module GraphQL
|
|
70
70
|
parent: parent,
|
71
71
|
field: field,
|
72
72
|
max_page_size: field.has_max_page_size? ? field.max_page_size : context.schema.default_max_page_size,
|
73
|
+
default_page_size: field.has_default_page_size? ? field.default_page_size : context.schema.default_page_size,
|
73
74
|
first: arguments[:first],
|
74
75
|
after: arguments[:after],
|
75
76
|
last: arguments[:last],
|
data/lib/graphql/query.rb
CHANGED
@@ -34,7 +34,16 @@ module GraphQL
|
|
34
34
|
attr_accessor :operation_name
|
35
35
|
|
36
36
|
# @return [Boolean] if false, static validation is skipped (execution behavior for invalid queries is undefined)
|
37
|
-
|
37
|
+
attr_reader :validate
|
38
|
+
|
39
|
+
# @param new_validate [Boolean] if false, static validation is skipped. This can't be reasssigned after validation.
|
40
|
+
def validate=(new_validate)
|
41
|
+
if defined?(@validation_pipeline) && @validation_pipeline && @validation_pipeline.has_validated?
|
42
|
+
raise ArgumentError, "Can't reassign Query#validate= after validation has run, remove this assignment."
|
43
|
+
else
|
44
|
+
@validate = new_validate
|
45
|
+
end
|
46
|
+
end
|
38
47
|
|
39
48
|
attr_writer :query_string
|
40
49
|
|
data/lib/graphql/rake_task.rb
CHANGED
@@ -151,7 +151,7 @@ module GraphQL
|
|
151
151
|
um << owner
|
152
152
|
end
|
153
153
|
|
154
|
-
if (prev_type = get_local_type(type.graphql_name)) && prev_type == type
|
154
|
+
if (prev_type = get_local_type(type.graphql_name)) && (prev_type == type || (prev_type.is_a?(Array) && prev_type.include?(type)))
|
155
155
|
# No need to re-visit
|
156
156
|
elsif type.is_a?(Class) && type < GraphQL::Schema::Directive
|
157
157
|
@directives << type
|
@@ -259,26 +259,26 @@ module GraphQL
|
|
259
259
|
# If this isn't lazy, then the block returns eagerly and assigns the result here
|
260
260
|
# If it _is_ lazy, then we write the lazy to the hash, then update it later
|
261
261
|
argument_values[arg_key] = context.schema.after_lazy(coerced_value) do |resolved_coerced_value|
|
262
|
+
owner.validate_directive_argument(self, resolved_coerced_value)
|
263
|
+
prepared_value = begin
|
264
|
+
prepare_value(parent_object, resolved_coerced_value, context: context)
|
265
|
+
rescue StandardError => err
|
266
|
+
context.schema.handle_or_reraise(context, err)
|
267
|
+
end
|
268
|
+
|
262
269
|
if loads && !from_resolver?
|
263
270
|
loaded_value = begin
|
264
|
-
load_and_authorize_value(owner,
|
271
|
+
load_and_authorize_value(owner, prepared_value, context)
|
265
272
|
rescue StandardError => err
|
266
273
|
context.schema.handle_or_reraise(context, err)
|
267
274
|
end
|
268
275
|
end
|
269
276
|
|
270
|
-
maybe_loaded_value = loaded_value ||
|
277
|
+
maybe_loaded_value = loaded_value || prepared_value
|
271
278
|
context.schema.after_lazy(maybe_loaded_value) do |resolved_loaded_value|
|
272
|
-
owner.validate_directive_argument(self, resolved_loaded_value)
|
273
|
-
prepared_value = begin
|
274
|
-
prepare_value(parent_object, resolved_loaded_value, context: context)
|
275
|
-
rescue StandardError => err
|
276
|
-
context.schema.handle_or_reraise(context, err)
|
277
|
-
end
|
278
|
-
|
279
279
|
# TODO code smell to access such a deeply-nested constant in a distant module
|
280
280
|
argument_values[arg_key] = GraphQL::Execution::Interpreter::ArgumentValue.new(
|
281
|
-
value:
|
281
|
+
value: resolved_loaded_value,
|
282
282
|
definition: self,
|
283
283
|
default_used: default_used,
|
284
284
|
)
|
@@ -47,6 +47,9 @@ module GraphQL
|
|
47
47
|
if field.has_max_page_size? && !value.has_max_page_size_override?
|
48
48
|
value.max_page_size = field.max_page_size
|
49
49
|
end
|
50
|
+
if field.has_default_page_size? && !value.has_default_page_size_override?
|
51
|
+
value.default_page_size = field.default_page_size
|
52
|
+
end
|
50
53
|
if context.schema.new_connections? && (custom_t = context.schema.connections.edge_class_for_field(@field))
|
51
54
|
value.edge_class = custom_t
|
52
55
|
end
|
@@ -64,6 +67,7 @@ module GraphQL
|
|
64
67
|
original_arguments,
|
65
68
|
field: field,
|
66
69
|
max_page_size: field.max_page_size,
|
70
|
+
default_page_size: field.default_page_size,
|
67
71
|
parent: object,
|
68
72
|
context: context,
|
69
73
|
)
|
data/lib/graphql/schema/field.rb
CHANGED
@@ -181,6 +181,8 @@ module GraphQL
|
|
181
181
|
|
182
182
|
# @return Boolean
|
183
183
|
attr_reader :relay_node_field
|
184
|
+
# @return Boolean
|
185
|
+
attr_reader :relay_nodes_field
|
184
186
|
|
185
187
|
# @return [Boolean] Should we warn if this field's name conflicts with a built-in method?
|
186
188
|
def method_conflict_warning?
|
@@ -200,6 +202,7 @@ module GraphQL
|
|
200
202
|
# @param connection [Boolean] `true` if this field should get automagic connection behavior; default is to infer by `*Connection` in the return type name
|
201
203
|
# @param connection_extension [Class] The extension to add, to implement connections. If `nil`, no extension is added.
|
202
204
|
# @param max_page_size [Integer, nil] For connections, the maximum number of items to return from this field, or `nil` to allow unlimited results.
|
205
|
+
# @param default_page_size [Integer, nil] For connections, the default number of items to return from this field, or `nil` to return unlimited results.
|
203
206
|
# @param introspection [Boolean] If true, this field will be marked as `#introspection?` and the name may begin with `__`
|
204
207
|
# @param resolver_class [Class] (Private) A {Schema::Resolver} which this field was derived from. Use `resolver:` to create a field with a resolver.
|
205
208
|
# @param arguments [{String=>GraphQL::Schema::Argument, Hash}] Arguments for this field (may be added in the block, also)
|
@@ -215,7 +218,7 @@ module GraphQL
|
|
215
218
|
# @param method_conflict_warning [Boolean] If false, skip the warning if this field's method conflicts with a built-in method
|
216
219
|
# @param validates [Array<Hash>] Configurations for validating this field
|
217
220
|
# @fallback_value [Object] A fallback value if the method is not defined
|
218
|
-
def initialize(type: nil, name: nil, owner: nil, null: nil, description: :not_given, deprecation_reason: nil, method: nil, hash_key: nil, dig: nil, resolver_method: nil, connection: nil, max_page_size: :not_given, scope: nil, introspection: false, camelize: true, trace: nil, complexity: nil, ast_node: nil, extras: EMPTY_ARRAY, extensions: EMPTY_ARRAY, connection_extension: self.class.connection_extension, resolver_class: nil, subscription_scope: nil, relay_node_field: false, relay_nodes_field: false, method_conflict_warning: true, broadcastable: nil, arguments: EMPTY_HASH, directives: EMPTY_HASH, validates: EMPTY_ARRAY, fallback_value: :not_given, &definition_block)
|
221
|
+
def initialize(type: nil, name: nil, owner: nil, null: nil, description: :not_given, deprecation_reason: nil, method: nil, hash_key: nil, dig: nil, resolver_method: nil, connection: nil, max_page_size: :not_given, default_page_size: :not_given, scope: nil, introspection: false, camelize: true, trace: nil, complexity: nil, ast_node: nil, extras: EMPTY_ARRAY, extensions: EMPTY_ARRAY, connection_extension: self.class.connection_extension, resolver_class: nil, subscription_scope: nil, relay_node_field: false, relay_nodes_field: false, method_conflict_warning: true, broadcastable: nil, arguments: EMPTY_HASH, directives: EMPTY_HASH, validates: EMPTY_ARRAY, fallback_value: :not_given, &definition_block)
|
219
222
|
if name.nil?
|
220
223
|
raise ArgumentError, "missing first `name` argument or keyword `name:`"
|
221
224
|
end
|
@@ -269,6 +272,8 @@ module GraphQL
|
|
269
272
|
@connection = connection
|
270
273
|
@has_max_page_size = max_page_size != :not_given
|
271
274
|
@max_page_size = max_page_size == :not_given ? nil : max_page_size
|
275
|
+
@has_default_page_size = default_page_size != :not_given
|
276
|
+
@default_page_size = default_page_size == :not_given ? nil : default_page_size
|
272
277
|
@introspection = introspection
|
273
278
|
@extras = extras
|
274
279
|
if !broadcastable.nil?
|
@@ -464,11 +469,11 @@ module GraphQL
|
|
464
469
|
end
|
465
470
|
|
466
471
|
if max_possible_page_size.nil?
|
467
|
-
max_possible_page_size = max_page_size || query.schema.default_max_page_size
|
472
|
+
max_possible_page_size = default_page_size || query.schema.default_page_size || max_page_size || query.schema.default_max_page_size
|
468
473
|
end
|
469
474
|
|
470
475
|
if max_possible_page_size.nil?
|
471
|
-
raise GraphQL::Error, "Can't calculate complexity for #{path}, no `first:`, `last:`, `max_page_size` or `default_max_page_size`"
|
476
|
+
raise GraphQL::Error, "Can't calculate complexity for #{path}, no `first:`, `last:`, `default_page_size`, `max_page_size` or `default_max_page_size`"
|
472
477
|
else
|
473
478
|
metadata_complexity = 0
|
474
479
|
lookahead = GraphQL::Execution::Lookahead.new(query: query, field: self, ast_nodes: nodes, owner_type: owner)
|
@@ -496,7 +501,13 @@ module GraphQL
|
|
496
501
|
case defined_complexity
|
497
502
|
when Proc
|
498
503
|
arguments = query.arguments_for(nodes.first, self)
|
499
|
-
|
504
|
+
if arguments.is_a?(GraphQL::ExecutionError)
|
505
|
+
return child_complexity
|
506
|
+
elsif arguments.respond_to?(:keyword_arguments)
|
507
|
+
arguments = arguments.keyword_arguments
|
508
|
+
end
|
509
|
+
|
510
|
+
defined_complexity.call(query.context, arguments, child_complexity)
|
500
511
|
when Numeric
|
501
512
|
defined_complexity + child_complexity
|
502
513
|
else
|
@@ -539,6 +550,16 @@ module GraphQL
|
|
539
550
|
@max_page_size || (@resolver_class && @resolver_class.max_page_size)
|
540
551
|
end
|
541
552
|
|
553
|
+
# @return [Boolean] True if this field's {#default_page_size} should override the schema default.
|
554
|
+
def has_default_page_size?
|
555
|
+
@has_default_page_size || (@resolver_class && @resolver_class.has_default_page_size?)
|
556
|
+
end
|
557
|
+
|
558
|
+
# @return [Integer, nil] Applied to connections if {#has_default_page_size?}
|
559
|
+
def default_page_size
|
560
|
+
@default_page_size || (@resolver_class && @resolver_class.default_page_size)
|
561
|
+
end
|
562
|
+
|
542
563
|
class MissingReturnTypeError < GraphQL::Error; end
|
543
564
|
attr_writer :type
|
544
565
|
|
@@ -323,8 +323,14 @@ module GraphQL
|
|
323
323
|
end
|
324
324
|
# Double-check that the located object is actually of this type
|
325
325
|
# (Don't want to allow arbitrary access to objects this way)
|
326
|
-
|
327
|
-
context.schema.after_lazy(
|
326
|
+
maybe_lazy_resolve_type = context.schema.resolve_type(argument.loads, application_object, context)
|
327
|
+
context.schema.after_lazy(maybe_lazy_resolve_type) do |resolve_type_result|
|
328
|
+
if resolve_type_result.is_a?(Array) && resolve_type_result.size == 2
|
329
|
+
application_object_type, application_object = resolve_type_result
|
330
|
+
else
|
331
|
+
application_object_type = resolve_type_result
|
332
|
+
# application_object is already assigned
|
333
|
+
end
|
328
334
|
possible_object_types = context.warden.possible_types(argument.loads)
|
329
335
|
if !possible_object_types.include?(application_object_type)
|
330
336
|
err = GraphQL::LoadApplicationObjectFailedError.new(argument: argument, id: id, object: application_object)
|
@@ -328,6 +328,27 @@ module GraphQL
|
|
328
328
|
(!!defined?(@max_page_size)) || (superclass.respond_to?(:has_max_page_size?) && superclass.has_max_page_size?)
|
329
329
|
end
|
330
330
|
|
331
|
+
# Get or set the `default_page_size:` which will be configured for fields using this resolver
|
332
|
+
# (`nil` means "unlimited default page size".)
|
333
|
+
# @param default_page_size [Integer, nil] Set a new value
|
334
|
+
# @return [Integer, nil] The `default_page_size` assigned to fields that use this resolver
|
335
|
+
def default_page_size(new_default_page_size = :not_given)
|
336
|
+
if new_default_page_size != :not_given
|
337
|
+
@default_page_size = new_default_page_size
|
338
|
+
elsif defined?(@default_page_size)
|
339
|
+
@default_page_size
|
340
|
+
elsif superclass.respond_to?(:default_page_size)
|
341
|
+
superclass.default_page_size
|
342
|
+
else
|
343
|
+
nil
|
344
|
+
end
|
345
|
+
end
|
346
|
+
|
347
|
+
# @return [Boolean] `true` if this resolver or a superclass has an assigned `default_page_size`
|
348
|
+
def has_default_page_size?
|
349
|
+
(!!defined?(@default_page_size)) || (superclass.respond_to?(:has_default_page_size?) && superclass.has_default_page_size?)
|
350
|
+
end
|
351
|
+
|
331
352
|
# A non-normalized type configuration, without `null` applied
|
332
353
|
def type_expr
|
333
354
|
@type_expr || (superclass.respond_to?(:type_expr) ? superclass.type_expr : nil)
|
data/lib/graphql/schema.rb
CHANGED
@@ -132,7 +132,13 @@ module GraphQL
|
|
132
132
|
end
|
133
133
|
|
134
134
|
# @return [GraphQL::Subscriptions]
|
135
|
-
|
135
|
+
def subscriptions(inherited: true)
|
136
|
+
defined?(@subscriptions) ? @subscriptions : (inherited ? find_inherited_value(:subscriptions, nil) : nil)
|
137
|
+
end
|
138
|
+
|
139
|
+
def subscriptions=(new_implementation)
|
140
|
+
@subscriptions = new_implementation
|
141
|
+
end
|
136
142
|
|
137
143
|
# Returns the JSON response of {Introspection::INTROSPECTION_QUERY}.
|
138
144
|
# @see {#as_json}
|
@@ -506,6 +512,14 @@ module GraphQL
|
|
506
512
|
end
|
507
513
|
end
|
508
514
|
|
515
|
+
def default_page_size(new_default_page_size = nil)
|
516
|
+
if new_default_page_size
|
517
|
+
@default_page_size = new_default_page_size
|
518
|
+
else
|
519
|
+
@default_page_size || find_inherited_value(:default_page_size)
|
520
|
+
end
|
521
|
+
end
|
522
|
+
|
509
523
|
def query_execution_strategy(new_query_execution_strategy = nil)
|
510
524
|
if new_query_execution_strategy
|
511
525
|
@query_execution_strategy = new_query_execution_strategy
|
@@ -740,13 +754,21 @@ module GraphQL
|
|
740
754
|
# rubocop:disable Lint/DuplicateMethods
|
741
755
|
module ResolveTypeWithType
|
742
756
|
def resolve_type(type, obj, ctx)
|
743
|
-
|
757
|
+
maybe_lazy_resolve_type_result = if type.is_a?(Module) && type.respond_to?(:resolve_type)
|
744
758
|
type.resolve_type(obj, ctx)
|
745
759
|
else
|
746
760
|
super
|
747
761
|
end
|
748
762
|
|
749
|
-
after_lazy(
|
763
|
+
after_lazy(maybe_lazy_resolve_type_result) do |resolve_type_result|
|
764
|
+
if resolve_type_result.is_a?(Array) && resolve_type_result.size == 2
|
765
|
+
resolved_type = resolve_type_result[0]
|
766
|
+
resolved_value = resolve_type_result[1]
|
767
|
+
else
|
768
|
+
resolved_type = resolve_type_result
|
769
|
+
resolved_value = obj
|
770
|
+
end
|
771
|
+
|
750
772
|
if resolved_type.nil? || (resolved_type.is_a?(Module) && resolved_type.respond_to?(:kind))
|
751
773
|
if resolved_value
|
752
774
|
[resolved_type, resolved_value]
|
@@ -26,7 +26,7 @@ module GraphQL
|
|
26
26
|
def self.use(defn, options = {})
|
27
27
|
schema = defn.is_a?(Class) ? defn : defn.target
|
28
28
|
|
29
|
-
if schema.subscriptions
|
29
|
+
if schema.subscriptions(inherited: false)
|
30
30
|
raise ArgumentError, "Can't reinstall subscriptions. #{schema} is using #{schema.subscriptions}, can't also add #{self}"
|
31
31
|
end
|
32
32
|
|
@@ -30,25 +30,19 @@ module GraphQL
|
|
30
30
|
yield
|
31
31
|
end
|
32
32
|
when "execute_field", "execute_field_lazy"
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
field = data[:field]
|
34
|
+
return_type = field.type.unwrap
|
35
|
+
trace_field = if return_type.kind.scalar? || return_type.kind.enum?
|
36
|
+
(field.trace.nil? && @trace_scalars) || field.trace
|
37
37
|
else
|
38
|
-
|
39
|
-
|
40
|
-
trace_field = if return_type.kind.scalar? || return_type.kind.enum?
|
41
|
-
(field.trace.nil? && @trace_scalars) || field.trace
|
42
|
-
else
|
43
|
-
true
|
44
|
-
end
|
38
|
+
true
|
39
|
+
end
|
45
40
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
end
|
41
|
+
platform_key = if trace_field
|
42
|
+
context = data.fetch(:query).context
|
43
|
+
cached_platform_key(context, field, :field) { platform_field_key(data[:owner], field) }
|
44
|
+
else
|
45
|
+
nil
|
52
46
|
end
|
53
47
|
|
54
48
|
if platform_key && trace_field
|
@@ -61,14 +55,14 @@ module GraphQL
|
|
61
55
|
when "authorized", "authorized_lazy"
|
62
56
|
type = data.fetch(:type)
|
63
57
|
context = data.fetch(:context)
|
64
|
-
platform_key = cached_platform_key(context, type) { platform_authorized_key(type) }
|
58
|
+
platform_key = cached_platform_key(context, type, :authorized) { platform_authorized_key(type) }
|
65
59
|
platform_trace(platform_key, key, data) do
|
66
60
|
yield
|
67
61
|
end
|
68
62
|
when "resolve_type", "resolve_type_lazy"
|
69
63
|
type = data.fetch(:type)
|
70
64
|
context = data.fetch(:context)
|
71
|
-
platform_key = cached_platform_key(context, type) { platform_resolve_type_key(type) }
|
65
|
+
platform_key = cached_platform_key(context, type, :resolve_type) { platform_resolve_type_key(type) }
|
72
66
|
platform_trace(platform_key, key, data) do
|
73
67
|
yield
|
74
68
|
end
|
@@ -115,8 +109,11 @@ module GraphQL
|
|
115
109
|
#
|
116
110
|
# If the key isn't present, the given block is called and the result is cached for `key`.
|
117
111
|
#
|
112
|
+
# @param ctx [GraphQL::Query::Context]
|
113
|
+
# @param key [Class, GraphQL::Field] A part of the schema
|
114
|
+
# @param trace_phase [Symbol] The stage of execution being traced (used by OpenTelementry tracing)
|
118
115
|
# @return [String]
|
119
|
-
def cached_platform_key(ctx, key)
|
116
|
+
def cached_platform_key(ctx, key, trace_phase)
|
120
117
|
cache = ctx.namespace(self.class)[:platform_key_cache] ||= {}
|
121
118
|
cache.fetch(key) { cache[key] = yield }
|
122
119
|
end
|
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.0.
|
4
|
+
version: 2.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Mosolgo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: benchmark-ips
|
@@ -595,7 +595,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
595
595
|
- !ruby/object:Gem::Version
|
596
596
|
version: '0'
|
597
597
|
requirements: []
|
598
|
-
rubygems_version: 3.2.
|
598
|
+
rubygems_version: 3.2.22
|
599
599
|
signing_key:
|
600
600
|
specification_version: 4
|
601
601
|
summary: A GraphQL language and runtime for Ruby
|