elasticgraph-graphql 0.18.0.0 → 0.18.0.2
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.
- checksums.yaml +4 -4
- data/elasticgraph-graphql.gemspec +1 -1
- data/lib/elastic_graph/graphql/aggregation/nested_sub_aggregation.rb +13 -3
- data/lib/elastic_graph/graphql/aggregation/query.rb +6 -2
- data/lib/elastic_graph/graphql/aggregation/query_adapter.rb +17 -13
- data/lib/elastic_graph/graphql/aggregation/resolvers/aggregated_values.rb +2 -1
- data/lib/elastic_graph/graphql/aggregation/resolvers/grouped_by.rb +3 -1
- data/lib/elastic_graph/graphql/aggregation/resolvers/sub_aggregations.rb +10 -7
- data/lib/elastic_graph/graphql/filtering/filter_interpreter.rb +8 -5
- data/lib/elastic_graph/graphql/resolvers/relay_connection/array_adapter.rb +1 -1
- data/lib/elastic_graph/graphql/resolvers/relay_connection.rb +2 -1
- data/lib/elastic_graph/graphql.rb +0 -1
- metadata +48 -66
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b80c95effea6c96d77f52275854dcf2ef14fa9b56c56cbca44fef5b5e34da5d
|
4
|
+
data.tar.gz: 6af6c4269f7d9b4822a16e0007c24574593261a585cc7de9227ec3584c50a5ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33c540e6691fa35958a4b8c01984909f36a12092e05bb78e4cf91424a555d2932b79cdb50e8007756c2bd7d4a44bc176b36a7363cf5e5b2be75f3d5475d616d7
|
7
|
+
data.tar.gz: 9ee9a9790c301d17f6467413d2ad02f6e01fd2305b5989eaed5fcbd78fdd8d84b9b8f21ef14cdd109444675a6e63df737555be7eb34be988bb44359a834ab0ea
|
@@ -13,7 +13,7 @@ ElasticGraphGemspecHelper.define_elasticgraph_gem(gemspec_file: __FILE__, catego
|
|
13
13
|
|
14
14
|
spec.add_dependency "elasticgraph-datastore_core", eg_version
|
15
15
|
spec.add_dependency "elasticgraph-schema_artifacts", eg_version
|
16
|
-
spec.add_dependency "graphql", "
|
16
|
+
spec.add_dependency "graphql", "~> 2.3.14"
|
17
17
|
|
18
18
|
spec.add_development_dependency "elasticgraph-admin", eg_version
|
19
19
|
spec.add_development_dependency "elasticgraph-elasticsearch", eg_version
|
@@ -7,6 +7,7 @@
|
|
7
7
|
# frozen_string_literal: true
|
8
8
|
|
9
9
|
require "elastic_graph/graphql/aggregation/field_path_encoder"
|
10
|
+
require "elastic_graph/support/memoizable_data"
|
10
11
|
|
11
12
|
module ElasticGraph
|
12
13
|
class GraphQL
|
@@ -14,14 +15,23 @@ module ElasticGraph
|
|
14
15
|
# Represents a sub-aggregation on a `nested` field.
|
15
16
|
# For the relevant Elasticsearch docs, see:
|
16
17
|
# https://www.elastic.co/guide/en/elasticsearch/reference/8.10/search-aggregations-bucket-nested-aggregation.html
|
17
|
-
class NestedSubAggregation < ::
|
18
|
+
class NestedSubAggregation < Support::MemoizableData.define(:nested_path, :query)
|
19
|
+
# The nested path in the GraphQL query from the parent aggregation to this-subaggregation, encoded
|
20
|
+
# for use as a hash key.
|
21
|
+
#
|
22
|
+
# This key will be unique in the scope of the parent aggregation query, and thus suitable as a key
|
23
|
+
# in a sub-aggregations hash.
|
24
|
+
def nested_path_key
|
25
|
+
@nested_path_key ||= FieldPathEncoder.encode(nested_path.map(&:name_in_graphql_query))
|
26
|
+
end
|
27
|
+
|
18
28
|
def build_agg_hash(filter_interpreter, parent_queries:)
|
19
29
|
detail = query.build_agg_detail(filter_interpreter, field_path: nested_path, parent_queries: parent_queries)
|
20
30
|
return {} if detail.nil?
|
21
31
|
|
22
|
-
|
32
|
+
parent_query_names = parent_queries.map(&:name)
|
23
33
|
{
|
24
|
-
Key.encode(
|
34
|
+
Key.encode(parent_query_names + [nested_path_key]) => {
|
25
35
|
"nested" => {"path" => FieldPathEncoder.encode(nested_path.filter_map(&:name_in_index))},
|
26
36
|
"aggs" => detail.clauses,
|
27
37
|
"meta" => detail.meta.merge({
|
@@ -9,6 +9,7 @@
|
|
9
9
|
require "elastic_graph/graphql/aggregation/key"
|
10
10
|
require "elastic_graph/graphql/datastore_query"
|
11
11
|
require "elastic_graph/graphql/filtering/field_path"
|
12
|
+
require "elastic_graph/support/hash_util"
|
12
13
|
|
13
14
|
module ElasticGraph
|
14
15
|
class GraphQL
|
@@ -62,7 +63,7 @@ module ElasticGraph
|
|
62
63
|
|
63
64
|
filter_detail(filter_interpreter, field_path) do
|
64
65
|
grouping_adapter.grouping_detail_for(self) do
|
65
|
-
|
66
|
+
Support::HashUtil.disjoint_merge(computations_detail, sub_aggregation_detail(filter_interpreter, queries))
|
66
67
|
end
|
67
68
|
end
|
68
69
|
end
|
@@ -114,7 +115,10 @@ module ElasticGraph
|
|
114
115
|
end
|
115
116
|
|
116
117
|
def build_inner_aggregation_detail(collection, &block)
|
117
|
-
|
118
|
+
initial = {} # : ::Hash[::String, untyped]
|
119
|
+
collection.map(&block).reduce(initial) do |accum, hash|
|
120
|
+
Support::HashUtil.disjoint_merge(accum, hash)
|
121
|
+
end
|
118
122
|
end
|
119
123
|
end
|
120
124
|
|
@@ -15,6 +15,7 @@ require "elastic_graph/graphql/aggregation/path_segment"
|
|
15
15
|
require "elastic_graph/graphql/aggregation/query"
|
16
16
|
require "elastic_graph/graphql/aggregation/script_term_grouping"
|
17
17
|
require "elastic_graph/graphql/schema/arguments"
|
18
|
+
require "elastic_graph/support/hash_util"
|
18
19
|
require "elastic_graph/support/memoizable_data"
|
19
20
|
|
20
21
|
module ElasticGraph
|
@@ -303,22 +304,25 @@ module ElasticGraph
|
|
303
304
|
end
|
304
305
|
|
305
306
|
def build_sub_aggregations_from(node_node, parent_nested_path: [])
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
307
|
+
key_sub_agg_pairs =
|
308
|
+
build_clauses_from(node_node.selection(element_names.sub_aggregations)) do |node, field, field_path|
|
309
|
+
if field.type.elasticgraph_category == :nested_sub_aggregation_connection
|
310
|
+
nested_path = parent_nested_path + field_path
|
311
|
+
nested_sub_agg = NestedSubAggregation.new(
|
312
|
+
nested_path: nested_path,
|
313
|
+
query: build_aggregation_query_for(
|
314
|
+
node,
|
315
|
+
field: field,
|
316
|
+
grouping_adapter: sub_aggregation_grouping_adapter,
|
317
|
+
nested_path: nested_path
|
318
|
+
)
|
316
319
|
)
|
317
|
-
)
|
318
320
|
|
319
|
-
|
321
|
+
[[nested_sub_agg.nested_path_key, nested_sub_agg]] # : ::Array[[::String, NestedSubAggregation]]
|
322
|
+
end
|
320
323
|
end
|
321
|
-
|
324
|
+
|
325
|
+
Support::HashUtil.strict_to_h(key_sub_agg_pairs)
|
322
326
|
end
|
323
327
|
|
324
328
|
def build_paginator_for(node)
|
@@ -8,6 +8,7 @@
|
|
8
8
|
|
9
9
|
require "elastic_graph/graphql/aggregation/key"
|
10
10
|
require "elastic_graph/graphql/aggregation/path_segment"
|
11
|
+
require "elastic_graph/support/hash_util"
|
11
12
|
|
12
13
|
module ElasticGraph
|
13
14
|
class GraphQL
|
@@ -27,7 +28,7 @@ module ElasticGraph
|
|
27
28
|
function_name: field.name_in_index.to_s
|
28
29
|
)
|
29
30
|
|
30
|
-
result =
|
31
|
+
result = Support::HashUtil.verbose_fetch(bucket, key.encode)
|
31
32
|
|
32
33
|
# Aggregated value results always have a `value` key; in addition, for `date` field, they also have a `value_as_string`.
|
33
34
|
# In that case, `value` is a number (e.g. ms since epoch) whereas `value_as_string` is a formatted value. ElasticGraph
|
@@ -7,6 +7,7 @@
|
|
7
7
|
# frozen_string_literal: true
|
8
8
|
|
9
9
|
require "elastic_graph/graphql/aggregation/field_path_encoder"
|
10
|
+
require "elastic_graph/support/hash_util"
|
10
11
|
|
11
12
|
module ElasticGraph
|
12
13
|
class GraphQL
|
@@ -21,7 +22,8 @@ module ElasticGraph
|
|
21
22
|
new_field_path = field_path + [PathSegment.for(field: field, lookahead: lookahead)]
|
22
23
|
return with(field_path: new_field_path) if field.type.object?
|
23
24
|
|
24
|
-
|
25
|
+
bucket_entry = Support::HashUtil.verbose_fetch(bucket, "key")
|
26
|
+
Support::HashUtil.verbose_fetch(bucket_entry, FieldPathEncoder.encode(new_field_path.map(&:name_in_graphql_query)))
|
25
27
|
end
|
26
28
|
end
|
27
29
|
end
|
@@ -7,17 +7,19 @@
|
|
7
7
|
# frozen_string_literal: true
|
8
8
|
|
9
9
|
require "elastic_graph/graphql/aggregation/composite_grouping_adapter"
|
10
|
+
require "elastic_graph/graphql/aggregation/field_path_encoder"
|
10
11
|
require "elastic_graph/graphql/aggregation/key"
|
11
12
|
require "elastic_graph/graphql/aggregation/non_composite_grouping_adapter"
|
12
13
|
require "elastic_graph/graphql/aggregation/resolvers/count_detail"
|
13
14
|
require "elastic_graph/graphql/decoded_cursor"
|
14
15
|
require "elastic_graph/graphql/resolvers/resolvable_value"
|
16
|
+
require "elastic_graph/support/hash_util"
|
15
17
|
|
16
18
|
module ElasticGraph
|
17
19
|
class GraphQL
|
18
20
|
module Aggregation
|
19
21
|
module Resolvers
|
20
|
-
class SubAggregations < ::Data.define(:schema_element_names, :sub_aggregations, :parent_queries, :
|
22
|
+
class SubAggregations < ::Data.define(:schema_element_names, :sub_aggregations, :parent_queries, :sub_aggs_by_agg_key, :field_path)
|
21
23
|
def can_resolve?(field:, object:)
|
22
24
|
true
|
23
25
|
end
|
@@ -27,25 +29,26 @@ module ElasticGraph
|
|
27
29
|
new_field_path = field_path + [path_segment]
|
28
30
|
return with(field_path: new_field_path) unless field.type.elasticgraph_category == :nested_sub_aggregation_connection
|
29
31
|
|
30
|
-
|
31
|
-
sub_agg_query =
|
32
|
+
sub_agg_key = FieldPathEncoder.encode(new_field_path.map(&:name_in_graphql_query))
|
33
|
+
sub_agg_query = Support::HashUtil.verbose_fetch(sub_aggregations, sub_agg_key).query
|
32
34
|
|
33
35
|
RelayConnectionBuilder.build_from_buckets(
|
34
36
|
query: sub_agg_query,
|
35
37
|
parent_queries: parent_queries,
|
36
38
|
schema_element_names: schema_element_names,
|
37
39
|
field_path: new_field_path
|
38
|
-
) { extract_buckets(
|
40
|
+
) { extract_buckets(sub_agg_key, args) }
|
39
41
|
end
|
40
42
|
|
41
43
|
private
|
42
44
|
|
43
|
-
def extract_buckets(
|
45
|
+
def extract_buckets(aggregation_field_path, args)
|
44
46
|
# When the client passes `first: 0`, we omit the sub-aggregation from the query body entirely,
|
45
|
-
# and it wont' be in `
|
47
|
+
# and it wont' be in `sub_aggs_by_agg_key`. Instead, we can just return an empty list of buckets.
|
46
48
|
return [] if args[schema_element_names.first] == 0
|
47
49
|
|
48
|
-
|
50
|
+
sub_agg_key = Key.encode(parent_queries.map(&:name) + [aggregation_field_path])
|
51
|
+
sub_agg = Support::HashUtil.verbose_fetch(sub_aggs_by_agg_key, sub_agg_key)
|
49
52
|
meta = sub_agg.fetch("meta")
|
50
53
|
|
51
54
|
# When the sub-aggregation node of the GraphQL query has a `filter` argument, the direct sub-aggregation returned by
|
@@ -62,6 +62,11 @@ module ElasticGraph
|
|
62
62
|
|
63
63
|
def process_filter_hash(bool_node, filter_hash, field_path)
|
64
64
|
filter_hash.each do |field_or_op, expression|
|
65
|
+
# `nil` filter predicates should be ignored, so we can safely `compact` them out.
|
66
|
+
# It also is simpler to handle them once here instead of the different branches
|
67
|
+
# below having to be aware of possible `nil` predicates.
|
68
|
+
expression = expression.compact if expression.is_a?(::Hash)
|
69
|
+
|
65
70
|
case identify_expression_type(field_or_op, expression)
|
66
71
|
when :empty
|
67
72
|
# This is an "empty" filter predicate and we can ignore it.
|
@@ -86,7 +91,7 @@ module ElasticGraph
|
|
86
91
|
end
|
87
92
|
|
88
93
|
def identify_expression_type(field_or_op, expression)
|
89
|
-
return :empty if expression.nil?
|
94
|
+
return :empty if expression.nil? || expression == {}
|
90
95
|
return :not if field_or_op == schema_names.not
|
91
96
|
return :list_any_filter if field_or_op == schema_names.any_satisfy
|
92
97
|
return :all_of if field_or_op == schema_names.all_of
|
@@ -160,9 +165,7 @@ module ElasticGraph
|
|
160
165
|
process_filter_hash(inner_node, filter, field_path.nested)
|
161
166
|
end
|
162
167
|
|
163
|
-
|
164
|
-
bool_node[:filter] << {nested: {path: field_path.from_root.join("."), query: sub_filter}}
|
165
|
-
end
|
168
|
+
bool_node[:filter] << {nested: {path: field_path.from_root.join("."), query: sub_filter}}
|
166
169
|
end
|
167
170
|
|
168
171
|
# On a list-of-leaf-values field, `any_satisfy` doesn't _do_ anything: it just expresses
|
@@ -302,7 +305,7 @@ module ElasticGraph
|
|
302
305
|
process_filter_hash(inner_node, expression, field_path)
|
303
306
|
end
|
304
307
|
|
305
|
-
bool_node[:filter] << sub_filter
|
308
|
+
bool_node[:filter] << sub_filter
|
306
309
|
else
|
307
310
|
process_filter_hash(bool_node, expression, field_path)
|
308
311
|
end
|
@@ -33,7 +33,7 @@ module ElasticGraph
|
|
33
33
|
[arg_name, args[schema_element_names.public_send(arg_name)]]
|
34
34
|
end.compact
|
35
35
|
|
36
|
-
graphql_impl = ::GraphQL::Pagination::ArrayConnection.new(nodes, context: context, **relay_args)
|
36
|
+
graphql_impl = ::GraphQL::Pagination::ArrayConnection.new(nodes || [], context: context, **relay_args)
|
37
37
|
new(schema_element_names, graphql_impl)
|
38
38
|
end
|
39
39
|
|
@@ -8,6 +8,7 @@
|
|
8
8
|
|
9
9
|
require "elastic_graph/graphql/aggregation/resolvers/relay_connection_builder"
|
10
10
|
require "elastic_graph/graphql/resolvers/relay_connection/search_response_adapter_builder"
|
11
|
+
require "elastic_graph/support/hash_util"
|
11
12
|
|
12
13
|
module ElasticGraph
|
13
14
|
class GraphQL
|
@@ -33,7 +34,7 @@ module ElasticGraph
|
|
33
34
|
Aggregation::Resolvers::RelayConnectionBuilder.build_from_search_response(
|
34
35
|
schema_element_names: schema_element_names,
|
35
36
|
search_response: search_response,
|
36
|
-
query: query.aggregations
|
37
|
+
query: Support::HashUtil.verbose_fetch(query.aggregations, agg_name)
|
37
38
|
)
|
38
39
|
end
|
39
40
|
end
|
@@ -171,7 +171,6 @@ module ElasticGraph
|
|
171
171
|
# @private
|
172
172
|
def datastore_query_adapters
|
173
173
|
@datastore_query_adapters ||= begin
|
174
|
-
require "elastic_graph/graphql/aggregation/non_composite_grouping_adapter"
|
175
174
|
require "elastic_graph/graphql/aggregation/query_adapter"
|
176
175
|
require "elastic_graph/graphql/query_adapter/filters"
|
177
176
|
require "elastic_graph/graphql/query_adapter/pagination"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elasticgraph-graphql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.18.0.
|
4
|
+
version: 0.18.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Myron Marston
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop-factory_bot
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
61
|
+
version: 1.40.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.
|
68
|
+
version: 1.40.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: steep
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,22 +98,22 @@ dependencies:
|
|
98
98
|
name: flatware-rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 2.3
|
104
|
-
- - "
|
103
|
+
version: '2.3'
|
104
|
+
- - ">="
|
105
105
|
- !ruby/object:Gem::Version
|
106
|
-
version:
|
106
|
+
version: 2.3.3
|
107
107
|
type: :development
|
108
108
|
prerelease: false
|
109
109
|
version_requirements: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
|
-
- - "
|
111
|
+
- - "~>"
|
112
112
|
- !ruby/object:Gem::Version
|
113
|
-
version: 2.3
|
114
|
-
- - "
|
113
|
+
version: '2.3'
|
114
|
+
- - ">="
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
116
|
+
version: 2.3.3
|
117
117
|
- !ruby/object:Gem::Dependency
|
118
118
|
name: rspec
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -132,16 +132,16 @@ dependencies:
|
|
132
132
|
name: super_diff
|
133
133
|
requirement: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
|
-
- - "
|
135
|
+
- - "~>"
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: 0.12
|
137
|
+
version: '0.12'
|
138
138
|
type: :development
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
|
-
- - "
|
142
|
+
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: 0.12
|
144
|
+
version: '0.12'
|
145
145
|
- !ruby/object:Gem::Dependency
|
146
146
|
name: simplecov
|
147
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -160,42 +160,30 @@ dependencies:
|
|
160
160
|
name: simplecov-console
|
161
161
|
requirement: !ruby/object:Gem::Requirement
|
162
162
|
requirements:
|
163
|
-
- - "
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version: 0.9.1
|
166
|
-
- - "<"
|
163
|
+
- - "~>"
|
167
164
|
- !ruby/object:Gem::Version
|
168
|
-
version: '
|
165
|
+
version: '0.9'
|
169
166
|
type: :development
|
170
167
|
prerelease: false
|
171
168
|
version_requirements: !ruby/object:Gem::Requirement
|
172
169
|
requirements:
|
173
|
-
- - "
|
174
|
-
- !ruby/object:Gem::Version
|
175
|
-
version: 0.9.1
|
176
|
-
- - "<"
|
170
|
+
- - "~>"
|
177
171
|
- !ruby/object:Gem::Version
|
178
|
-
version: '
|
172
|
+
version: '0.9'
|
179
173
|
- !ruby/object:Gem::Dependency
|
180
174
|
name: httpx
|
181
175
|
requirement: !ruby/object:Gem::Requirement
|
182
176
|
requirements:
|
183
|
-
- - "
|
184
|
-
- !ruby/object:Gem::Version
|
185
|
-
version: 1.2.6
|
186
|
-
- - "<"
|
177
|
+
- - "~>"
|
187
178
|
- !ruby/object:Gem::Version
|
188
|
-
version: '
|
179
|
+
version: '1.3'
|
189
180
|
type: :development
|
190
181
|
prerelease: false
|
191
182
|
version_requirements: !ruby/object:Gem::Requirement
|
192
183
|
requirements:
|
193
|
-
- - "
|
194
|
-
- !ruby/object:Gem::Version
|
195
|
-
version: 1.2.6
|
196
|
-
- - "<"
|
184
|
+
- - "~>"
|
197
185
|
- !ruby/object:Gem::Version
|
198
|
-
version: '
|
186
|
+
version: '1.3'
|
199
187
|
- !ruby/object:Gem::Dependency
|
200
188
|
name: method_source
|
201
189
|
requirement: !ruby/object:Gem::Requirement
|
@@ -228,22 +216,22 @@ dependencies:
|
|
228
216
|
name: vcr
|
229
217
|
requirement: !ruby/object:Gem::Requirement
|
230
218
|
requirements:
|
219
|
+
- - "~>"
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '6.3'
|
231
222
|
- - ">="
|
232
223
|
- !ruby/object:Gem::Version
|
233
224
|
version: 6.3.1
|
234
|
-
- - "<"
|
235
|
-
- !ruby/object:Gem::Version
|
236
|
-
version: 7.0.0
|
237
225
|
type: :development
|
238
226
|
prerelease: false
|
239
227
|
version_requirements: !ruby/object:Gem::Requirement
|
240
228
|
requirements:
|
229
|
+
- - "~>"
|
230
|
+
- !ruby/object:Gem::Version
|
231
|
+
version: '6.3'
|
241
232
|
- - ">="
|
242
233
|
- !ruby/object:Gem::Version
|
243
234
|
version: 6.3.1
|
244
|
-
- - "<"
|
245
|
-
- !ruby/object:Gem::Version
|
246
|
-
version: 7.0.0
|
247
235
|
- !ruby/object:Gem::Dependency
|
248
236
|
name: factory_bot
|
249
237
|
requirement: !ruby/object:Gem::Requirement
|
@@ -278,118 +266,112 @@ dependencies:
|
|
278
266
|
requirements:
|
279
267
|
- - '='
|
280
268
|
- !ruby/object:Gem::Version
|
281
|
-
version: 0.18.0.
|
269
|
+
version: 0.18.0.2
|
282
270
|
type: :runtime
|
283
271
|
prerelease: false
|
284
272
|
version_requirements: !ruby/object:Gem::Requirement
|
285
273
|
requirements:
|
286
274
|
- - '='
|
287
275
|
- !ruby/object:Gem::Version
|
288
|
-
version: 0.18.0.
|
276
|
+
version: 0.18.0.2
|
289
277
|
- !ruby/object:Gem::Dependency
|
290
278
|
name: elasticgraph-schema_artifacts
|
291
279
|
requirement: !ruby/object:Gem::Requirement
|
292
280
|
requirements:
|
293
281
|
- - '='
|
294
282
|
- !ruby/object:Gem::Version
|
295
|
-
version: 0.18.0.
|
283
|
+
version: 0.18.0.2
|
296
284
|
type: :runtime
|
297
285
|
prerelease: false
|
298
286
|
version_requirements: !ruby/object:Gem::Requirement
|
299
287
|
requirements:
|
300
288
|
- - '='
|
301
289
|
- !ruby/object:Gem::Version
|
302
|
-
version: 0.18.0.
|
290
|
+
version: 0.18.0.2
|
303
291
|
- !ruby/object:Gem::Dependency
|
304
292
|
name: graphql
|
305
293
|
requirement: !ruby/object:Gem::Requirement
|
306
294
|
requirements:
|
307
|
-
- - "
|
308
|
-
- !ruby/object:Gem::Version
|
309
|
-
version: 2.3.7
|
310
|
-
- - "<"
|
295
|
+
- - "~>"
|
311
296
|
- !ruby/object:Gem::Version
|
312
|
-
version:
|
297
|
+
version: 2.3.14
|
313
298
|
type: :runtime
|
314
299
|
prerelease: false
|
315
300
|
version_requirements: !ruby/object:Gem::Requirement
|
316
301
|
requirements:
|
317
|
-
- - "
|
318
|
-
- !ruby/object:Gem::Version
|
319
|
-
version: 2.3.7
|
320
|
-
- - "<"
|
302
|
+
- - "~>"
|
321
303
|
- !ruby/object:Gem::Version
|
322
|
-
version:
|
304
|
+
version: 2.3.14
|
323
305
|
- !ruby/object:Gem::Dependency
|
324
306
|
name: elasticgraph-admin
|
325
307
|
requirement: !ruby/object:Gem::Requirement
|
326
308
|
requirements:
|
327
309
|
- - '='
|
328
310
|
- !ruby/object:Gem::Version
|
329
|
-
version: 0.18.0.
|
311
|
+
version: 0.18.0.2
|
330
312
|
type: :development
|
331
313
|
prerelease: false
|
332
314
|
version_requirements: !ruby/object:Gem::Requirement
|
333
315
|
requirements:
|
334
316
|
- - '='
|
335
317
|
- !ruby/object:Gem::Version
|
336
|
-
version: 0.18.0.
|
318
|
+
version: 0.18.0.2
|
337
319
|
- !ruby/object:Gem::Dependency
|
338
320
|
name: elasticgraph-elasticsearch
|
339
321
|
requirement: !ruby/object:Gem::Requirement
|
340
322
|
requirements:
|
341
323
|
- - '='
|
342
324
|
- !ruby/object:Gem::Version
|
343
|
-
version: 0.18.0.
|
325
|
+
version: 0.18.0.2
|
344
326
|
type: :development
|
345
327
|
prerelease: false
|
346
328
|
version_requirements: !ruby/object:Gem::Requirement
|
347
329
|
requirements:
|
348
330
|
- - '='
|
349
331
|
- !ruby/object:Gem::Version
|
350
|
-
version: 0.18.0.
|
332
|
+
version: 0.18.0.2
|
351
333
|
- !ruby/object:Gem::Dependency
|
352
334
|
name: elasticgraph-opensearch
|
353
335
|
requirement: !ruby/object:Gem::Requirement
|
354
336
|
requirements:
|
355
337
|
- - '='
|
356
338
|
- !ruby/object:Gem::Version
|
357
|
-
version: 0.18.0.
|
339
|
+
version: 0.18.0.2
|
358
340
|
type: :development
|
359
341
|
prerelease: false
|
360
342
|
version_requirements: !ruby/object:Gem::Requirement
|
361
343
|
requirements:
|
362
344
|
- - '='
|
363
345
|
- !ruby/object:Gem::Version
|
364
|
-
version: 0.18.0.
|
346
|
+
version: 0.18.0.2
|
365
347
|
- !ruby/object:Gem::Dependency
|
366
348
|
name: elasticgraph-indexer
|
367
349
|
requirement: !ruby/object:Gem::Requirement
|
368
350
|
requirements:
|
369
351
|
- - '='
|
370
352
|
- !ruby/object:Gem::Version
|
371
|
-
version: 0.18.0.
|
353
|
+
version: 0.18.0.2
|
372
354
|
type: :development
|
373
355
|
prerelease: false
|
374
356
|
version_requirements: !ruby/object:Gem::Requirement
|
375
357
|
requirements:
|
376
358
|
- - '='
|
377
359
|
- !ruby/object:Gem::Version
|
378
|
-
version: 0.18.0.
|
360
|
+
version: 0.18.0.2
|
379
361
|
- !ruby/object:Gem::Dependency
|
380
362
|
name: elasticgraph-schema_definition
|
381
363
|
requirement: !ruby/object:Gem::Requirement
|
382
364
|
requirements:
|
383
365
|
- - '='
|
384
366
|
- !ruby/object:Gem::Version
|
385
|
-
version: 0.18.0.
|
367
|
+
version: 0.18.0.2
|
386
368
|
type: :development
|
387
369
|
prerelease: false
|
388
370
|
version_requirements: !ruby/object:Gem::Requirement
|
389
371
|
requirements:
|
390
372
|
- - '='
|
391
373
|
- !ruby/object:Gem::Version
|
392
|
-
version: 0.18.0.
|
374
|
+
version: 0.18.0.2
|
393
375
|
description:
|
394
376
|
email:
|
395
377
|
- myron@squareup.com
|