graphql 2.0.20 → 2.0.22
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/backtrace/trace.rb +96 -0
- data/lib/graphql/backtrace.rb +6 -1
- data/lib/graphql/execution/interpreter/arguments.rb +1 -1
- data/lib/graphql/execution/interpreter/arguments_cache.rb +33 -33
- data/lib/graphql/execution/interpreter/runtime.rb +274 -209
- data/lib/graphql/execution/interpreter.rb +2 -3
- data/lib/graphql/execution/lookahead.rb +1 -1
- data/lib/graphql/filter.rb +8 -2
- data/lib/graphql/language/document_from_schema_definition.rb +37 -17
- data/lib/graphql/language/lexer.rb +5 -3
- data/lib/graphql/language/nodes.rb +2 -2
- data/lib/graphql/language/parser.rb +475 -458
- data/lib/graphql/language/parser.y +5 -1
- data/lib/graphql/pagination/connection.rb +5 -5
- data/lib/graphql/query/context.rb +22 -12
- data/lib/graphql/query/null_context.rb +4 -1
- data/lib/graphql/query.rb +25 -11
- data/lib/graphql/schema/argument.rb +12 -14
- data/lib/graphql/schema/build_from_definition.rb +15 -3
- data/lib/graphql/schema/enum_value.rb +2 -5
- data/lib/graphql/schema/field/connection_extension.rb +1 -1
- data/lib/graphql/schema/field.rb +17 -16
- data/lib/graphql/schema/field_extension.rb +1 -4
- data/lib/graphql/schema/find_inherited_value.rb +2 -7
- data/lib/graphql/schema/input_object.rb +1 -1
- data/lib/graphql/schema/member/has_arguments.rb +10 -8
- data/lib/graphql/schema/member/has_directives.rb +4 -6
- data/lib/graphql/schema/member/has_fields.rb +80 -36
- data/lib/graphql/schema/member/has_validators.rb +2 -2
- data/lib/graphql/schema/object.rb +1 -1
- data/lib/graphql/schema/printer.rb +3 -1
- data/lib/graphql/schema/relay_classic_mutation.rb +1 -1
- data/lib/graphql/schema/resolver.rb +8 -8
- data/lib/graphql/schema/validator.rb +1 -1
- data/lib/graphql/schema/warden.rb +11 -3
- data/lib/graphql/schema.rb +41 -12
- data/lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb +12 -4
- data/lib/graphql/static_validation/rules/fields_will_merge.rb +2 -2
- data/lib/graphql/tracing/appsignal_trace.rb +6 -0
- data/lib/graphql/tracing/legacy_trace.rb +65 -0
- data/lib/graphql/tracing/notifications_trace.rb +5 -1
- data/lib/graphql/tracing/platform_trace.rb +21 -19
- data/lib/graphql/tracing/prometheus_tracing/graphql_collector.rb +1 -1
- data/lib/graphql/tracing/trace.rb +75 -0
- data/lib/graphql/tracing.rb +4 -123
- data/lib/graphql/version.rb +1 -1
- data/lib/graphql.rb +4 -0
- data/readme.md +1 -1
- metadata +6 -3
data/lib/graphql/tracing.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require "graphql/tracing/trace"
|
3
|
+
require "graphql/tracing/legacy_trace"
|
4
|
+
|
2
5
|
# Legacy tracing:
|
3
6
|
require "graphql/tracing/active_support_notifications_tracing"
|
4
7
|
require "graphql/tracing/platform_tracing"
|
@@ -11,6 +14,7 @@ require "graphql/tracing/statsd_tracing"
|
|
11
14
|
require "graphql/tracing/prometheus_tracing"
|
12
15
|
|
13
16
|
# New Tracing:
|
17
|
+
require "graphql/tracing/active_support_notifications_trace"
|
14
18
|
require "graphql/tracing/platform_trace"
|
15
19
|
require "graphql/tracing/appoptics_trace"
|
16
20
|
require "graphql/tracing/appsignal_trace"
|
@@ -26,131 +30,8 @@ end
|
|
26
30
|
|
27
31
|
module GraphQL
|
28
32
|
module Tracing
|
29
|
-
class Trace
|
30
|
-
# @param multiplex [GraphQL::Execution::Multiplex, nil]
|
31
|
-
# @param query [GraphQL::Query, nil]
|
32
|
-
def initialize(multiplex: nil, query: nil, **_options)
|
33
|
-
@multiplex = multiplex
|
34
|
-
@query = query
|
35
|
-
end
|
36
|
-
|
37
|
-
def lex(query_string:)
|
38
|
-
yield
|
39
|
-
end
|
40
|
-
|
41
|
-
def parse(query_string:)
|
42
|
-
yield
|
43
|
-
end
|
44
|
-
|
45
|
-
def validate(query:, validate:)
|
46
|
-
yield
|
47
|
-
end
|
48
|
-
|
49
|
-
def analyze_multiplex(multiplex:)
|
50
|
-
yield
|
51
|
-
end
|
52
|
-
|
53
|
-
def analyze_query(query:)
|
54
|
-
yield
|
55
|
-
end
|
56
|
-
|
57
|
-
def execute_multiplex(multiplex:)
|
58
|
-
yield
|
59
|
-
end
|
60
|
-
|
61
|
-
def execute_query(query:)
|
62
|
-
yield
|
63
|
-
end
|
64
|
-
|
65
|
-
def execute_query_lazy(query:, multiplex:)
|
66
|
-
yield
|
67
|
-
end
|
68
|
-
|
69
|
-
def execute_field(field:, query:, ast_node:, arguments:, object:)
|
70
|
-
yield
|
71
|
-
end
|
72
|
-
|
73
|
-
def execute_field_lazy(field:, query:, ast_node:, arguments:, object:)
|
74
|
-
yield
|
75
|
-
end
|
76
|
-
|
77
|
-
def authorized(query:, type:, object:)
|
78
|
-
yield
|
79
|
-
end
|
80
|
-
|
81
|
-
def authorized_lazy(query:, type:, object:)
|
82
|
-
yield
|
83
|
-
end
|
84
|
-
|
85
|
-
def resolve_type(query:, type:, object:)
|
86
|
-
yield
|
87
|
-
end
|
88
|
-
|
89
|
-
def resolve_type_lazy(query:, type:, object:)
|
90
|
-
yield
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
33
|
NullTrace = Trace.new
|
95
34
|
|
96
|
-
class LegacyTrace < Trace
|
97
|
-
def lex(query_string:, &block)
|
98
|
-
(@multiplex || @query).trace("lex", { query_string: query_string }, &block)
|
99
|
-
end
|
100
|
-
|
101
|
-
def parse(query_string:, &block)
|
102
|
-
(@multiplex || @query).trace("parse", { query_string: query_string }, &block)
|
103
|
-
end
|
104
|
-
|
105
|
-
def validate(query:, validate:, &block)
|
106
|
-
query.trace("validate", { validate: validate, query: query }, &block)
|
107
|
-
end
|
108
|
-
|
109
|
-
def analyze_multiplex(multiplex:, &block)
|
110
|
-
multiplex.trace("analyze_multiplex", { multiplex: multiplex }, &block)
|
111
|
-
end
|
112
|
-
|
113
|
-
def analyze_query(query:, &block)
|
114
|
-
query.trace("analyze_query", { query: query }, &block)
|
115
|
-
end
|
116
|
-
|
117
|
-
def execute_multiplex(multiplex:, &block)
|
118
|
-
multiplex.trace("execute_multiplex", { multiplex: multiplex }, &block)
|
119
|
-
end
|
120
|
-
|
121
|
-
def execute_query(query:, &block)
|
122
|
-
query.trace("execute_query", { query: query }, &block)
|
123
|
-
end
|
124
|
-
|
125
|
-
def execute_query_lazy(query:, multiplex:, &block)
|
126
|
-
multiplex.trace("execute_query_lazy", { multiplex: multiplex, query: query }, &block)
|
127
|
-
end
|
128
|
-
|
129
|
-
def execute_field(field:, query:, ast_node:, arguments:, object:, &block)
|
130
|
-
query.trace("execute_field", { field: field, query: query, ast_node: ast_node, arguments: arguments, object: object, owner: field.owner, path: query.context[:current_path] }, &block)
|
131
|
-
end
|
132
|
-
|
133
|
-
def execute_field_lazy(field:, query:, ast_node:, arguments:, object:, &block)
|
134
|
-
query.trace("execute_field_lazy", { field: field, query: query, ast_node: ast_node, arguments: arguments, object: object, owner: field.owner, path: query.context[:current_path] }, &block)
|
135
|
-
end
|
136
|
-
|
137
|
-
def authorized(query:, type:, object:, &block)
|
138
|
-
query.trace("authorized", { context: query.context, type: type, object: object, path: query.context[:current_path] }, &block)
|
139
|
-
end
|
140
|
-
|
141
|
-
def authorized_lazy(query:, type:, object:, &block)
|
142
|
-
query.trace("authorized_lazy", { context: query.context, type: type, object: object, path: query.context[:current_path] }, &block)
|
143
|
-
end
|
144
|
-
|
145
|
-
def resolve_type(query:, type:, object:, &block)
|
146
|
-
query.trace("resolve_type", { context: query.context, type: type, object: object, path: query.context[:current_path] }, &block)
|
147
|
-
end
|
148
|
-
|
149
|
-
def resolve_type_lazy(query:, type:, object:, &block)
|
150
|
-
query.trace("resolve_type_lazy", { context: query.context, type: type, object: object, path: query.context[:current_path] }, &block)
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
35
|
# Objects may include traceable to gain a `.trace(...)` method.
|
155
36
|
# The object must have a `@tracers` ivar of type `Array<<#trace(k, d, &b)>>`.
|
156
37
|
# @api private
|
data/lib/graphql/version.rb
CHANGED
data/lib/graphql.rb
CHANGED
@@ -69,6 +69,10 @@ This is probably a bug in GraphQL-Ruby, please report this error on GitHub: http
|
|
69
69
|
|
70
70
|
NOT_CONFIGURED = Object.new
|
71
71
|
private_constant :NOT_CONFIGURED
|
72
|
+
module EmptyObjects
|
73
|
+
EMPTY_HASH = {}.freeze
|
74
|
+
EMPTY_ARRAY = [].freeze
|
75
|
+
end
|
72
76
|
end
|
73
77
|
|
74
78
|
# Order matters for these:
|
data/readme.md
CHANGED
@@ -44,6 +44,6 @@ I also sell [GraphQL::Pro](https://graphql.pro) which provides several features
|
|
44
44
|
|
45
45
|
## Getting Involved
|
46
46
|
|
47
|
-
- __Say hi & ask questions__ in the #graphql-ruby channel on [Discord](https://discord.com/invite/xud7bH9)
|
47
|
+
- __Say hi & ask questions__ in the #graphql-ruby channel on [Discord](https://discord.com/invite/xud7bH9).
|
48
48
|
- __Report bugs__ by posting a description, full stack trace, and all relevant code in a [GitHub issue](https://github.com/rmosolgo/graphql-ruby/issues).
|
49
49
|
- __Start hacking__ with the [Development guide](https://graphql-ruby.org/development).
|
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.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Mosolgo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: benchmark-ips
|
@@ -303,6 +303,7 @@ files:
|
|
303
303
|
- lib/graphql/backtrace.rb
|
304
304
|
- lib/graphql/backtrace/inspect_result.rb
|
305
305
|
- lib/graphql/backtrace/table.rb
|
306
|
+
- lib/graphql/backtrace/trace.rb
|
306
307
|
- lib/graphql/backtrace/traced_error.rb
|
307
308
|
- lib/graphql/backtrace/tracer.rb
|
308
309
|
- lib/graphql/coercion_error.rb
|
@@ -555,6 +556,7 @@ files:
|
|
555
556
|
- lib/graphql/tracing/appsignal_tracing.rb
|
556
557
|
- lib/graphql/tracing/data_dog_trace.rb
|
557
558
|
- lib/graphql/tracing/data_dog_tracing.rb
|
559
|
+
- lib/graphql/tracing/legacy_trace.rb
|
558
560
|
- lib/graphql/tracing/new_relic_trace.rb
|
559
561
|
- lib/graphql/tracing/new_relic_tracing.rb
|
560
562
|
- lib/graphql/tracing/notifications_trace.rb
|
@@ -568,6 +570,7 @@ files:
|
|
568
570
|
- lib/graphql/tracing/scout_tracing.rb
|
569
571
|
- lib/graphql/tracing/statsd_trace.rb
|
570
572
|
- lib/graphql/tracing/statsd_tracing.rb
|
573
|
+
- lib/graphql/tracing/trace.rb
|
571
574
|
- lib/graphql/type_kinds.rb
|
572
575
|
- lib/graphql/types.rb
|
573
576
|
- lib/graphql/types/big_int.rb
|
@@ -619,7 +622,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
619
622
|
- !ruby/object:Gem::Version
|
620
623
|
version: '0'
|
621
624
|
requirements: []
|
622
|
-
rubygems_version: 3.4.
|
625
|
+
rubygems_version: 3.4.13
|
623
626
|
signing_key:
|
624
627
|
specification_version: 4
|
625
628
|
summary: A GraphQL language and runtime for Ruby
|