elasticgraph-schema_definition 0.19.0.0 → 0.19.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dd45e7eb43e6292b8760fb4eb36b76866ee5b6f9a3c93691648266317a7b32bf
4
- data.tar.gz: 47696d843f0fa115ec60cbc268679ed9e11686f5c4d2a4f99bc034eb58e3d3c9
3
+ metadata.gz: 2bad8ee40e50f129a96e49bb037b85629e4fd447e85aec1c3ea2dc8aac1bf39b
4
+ data.tar.gz: aafa9a925ef1f34539655cf1328d26b563042b6f510e6956a669bcffb36f687c
5
5
  SHA512:
6
- metadata.gz: 84a5ee13c253e5ef66c8c83f421ce18cbf3577aed40e71c6554532650eb4d01f00750f3672a6e8b3cb8860767d0c7e25649f88749c1570d463bc6e119f695216
7
- data.tar.gz: 2930ed88573f6b0764eaf145b60aa7a1b3404a94f79d579a17b598e96d82b2210905dc7bdc2e7d947723ecd63e4096ce6e78f84649dcf4fd12f2b8d365918744
6
+ metadata.gz: 42ab4e1236efe8d3abe27f3a362e738df0e9146f95fccb6019e74172ad03f898fb97af989cbbe01074ae16208f0ac16383afba4f465ec66defa73b622069b0d4
7
+ data.tar.gz: 389a20d94c06df1558b020e3a4c4779f82163519b58c1fa3a46c8d05dde469aa46e9a63fe797feb0a055ff1d4b37ac30cd803219ac509e284399f1359d5c5152
@@ -261,7 +261,7 @@ module ElasticGraph
261
261
  def deleted_type(name)
262
262
  @state.register_deleted_type(
263
263
  name,
264
- defined_at: caller_locations(1, 1).first, # : ::Thread::Backtrace::Location
264
+ defined_at: caller_locations(1, 1).to_a.first, # : ::Thread::Backtrace::Location
265
265
  defined_via: %(schema.deleted_type "#{name}")
266
266
  )
267
267
  nil
@@ -53,14 +53,16 @@ module ElasticGraph
53
53
 
54
54
  settings = DEFAULT_SETTINGS.merge(Support::HashUtil.flatten_and_stringify_keys(settings, prefix: "index"))
55
55
 
56
- super(name, [], settings, schema_def_state, indexed_type, [], nil)
57
-
58
- # `id` is the field Elasticsearch/OpenSearch use for routing by default:
59
- # https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-routing-field.html
60
- # By using it here, it will cause queries to pass a `routing` parameter when
61
- # searching with id filtering on an index that does not use custom shard routing, giving
62
- # us a nice efficiency boost.
63
- self.routing_field_path = public_field_path("id", explanation: "indexed types must have an `id` field")
56
+ super(name, [], settings, schema_def_state, indexed_type, nil, nil)
57
+
58
+ schema_def_state.after_user_definition_complete do
59
+ # `id` is the field Elasticsearch/OpenSearch use for routing by default:
60
+ # https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-routing-field.html
61
+ # By using it here, it will cause queries to pass a `routing` parameter when
62
+ # searching with id filtering on an index that does not use custom shard routing, giving
63
+ # us a nice efficiency boost.
64
+ self.routing_field_path = public_field_path("id", explanation: "indexed types must have an `id` field")
65
+ end
64
66
 
65
67
  yield self if block_given?
66
68
  end
@@ -120,23 +122,25 @@ module ElasticGraph
120
122
  # end
121
123
  # end
122
124
  def rollover(frequency, timestamp_field_path_name)
123
- timestamp_field_path = public_field_path(timestamp_field_path_name, explanation: "it is referenced as an index `rollover` field")
125
+ schema_def_state.after_user_definition_complete do
126
+ timestamp_field_path = public_field_path(timestamp_field_path_name, explanation: "it is referenced as an index `rollover` field")
124
127
 
125
- unless date_and_datetime_types.include?(timestamp_field_path.type.fully_unwrapped.name)
126
- date_or_datetime_description = date_and_datetime_types.map { |t| "`#{t}`" }.join(" or ")
127
- raise Errors::SchemaError, "rollover field `#{timestamp_field_path.full_description}` cannot be used for rollover since it is not a #{date_or_datetime_description} field."
128
- end
128
+ unless date_and_datetime_types.include?(timestamp_field_path.type.fully_unwrapped.name)
129
+ date_or_datetime_description = date_and_datetime_types.map { |t| "`#{t}`" }.join(" or ")
130
+ raise Errors::SchemaError, "rollover field `#{timestamp_field_path.full_description}` cannot be used for rollover since it is not a #{date_or_datetime_description} field."
131
+ end
129
132
 
130
- if timestamp_field_path.type.list?
131
- raise Errors::SchemaError, "rollover field `#{timestamp_field_path.full_description}` cannot be used for rollover since it is a list field."
132
- end
133
+ if timestamp_field_path.type.list?
134
+ raise Errors::SchemaError, "rollover field `#{timestamp_field_path.full_description}` cannot be used for rollover since it is a list field."
135
+ end
133
136
 
134
- timestamp_field_path.path_parts.each { |f| f.json_schema nullable: false }
137
+ timestamp_field_path.path_parts.each { |f| f.json_schema nullable: false }
135
138
 
136
- self.rollover_config = RolloverConfig.new(
137
- frequency: frequency,
138
- timestamp_field_path: timestamp_field_path
139
- )
139
+ self.rollover_config = RolloverConfig.new(
140
+ frequency: frequency,
141
+ timestamp_field_path: timestamp_field_path
142
+ )
143
+ end
140
144
  end
141
145
 
142
146
  # Configures the index to [route documents to shards](https://www.elastic.co/guide/en/elasticsearch/reference/8.15/mapping-routing-field.html)
@@ -169,17 +173,19 @@ module ElasticGraph
169
173
  # end
170
174
  # end
171
175
  def route_with(routing_field_path_name)
172
- routing_field_path = public_field_path(routing_field_path_name, explanation: "it is referenced as an index `route_with` field")
176
+ schema_def_state.after_user_definition_complete do
177
+ routing_field_path = public_field_path(routing_field_path_name, explanation: "it is referenced as an index `route_with` field")
173
178
 
174
- unless routing_field_path.type.leaf?
175
- raise Errors::SchemaError, "shard routing field `#{routing_field_path.full_description}` cannot be used for routing since it is not a leaf field."
176
- end
179
+ unless routing_field_path.type.leaf?
180
+ raise Errors::SchemaError, "shard routing field `#{routing_field_path.full_description}` cannot be used for routing since it is not a leaf field."
181
+ end
177
182
 
178
- self.routing_field_path = routing_field_path
183
+ self.routing_field_path = routing_field_path
179
184
 
180
- routing_field_path.path_parts[0..-2].each { |f| f.json_schema nullable: false }
181
- routing_field_path.last_part.json_schema nullable: false, pattern: HAS_NON_WHITE_SPACE_REGEX
182
- indexed_type.append_to_documentation "For more performant queries on this type, please filter on `#{routing_field_path_name}` if possible."
185
+ routing_field_path.path_parts[0..-2].each { |f| f.json_schema nullable: false }
186
+ routing_field_path.last_part.json_schema nullable: false, pattern: HAS_NON_WHITE_SPACE_REGEX
187
+ indexed_type.append_to_documentation "For more performant queries on this type, please filter on `#{routing_field_path_name}` if possible."
188
+ end
183
189
  end
184
190
 
185
191
  # @see #route_with
@@ -286,7 +292,7 @@ module ElasticGraph
286
292
 
287
293
  def public_field_path(public_path_string, explanation:)
288
294
  parent_is_not_list = ->(parent_field) { !parent_field.type.list? }
289
- resolver = SchemaElements::FieldPath::Resolver.new
295
+ resolver = schema_def_state.field_path_resolver
290
296
  resolved_path = resolver.resolve_public_path(indexed_type, public_path_string, &parent_is_not_list)
291
297
  return resolved_path if resolved_path
292
298
 
@@ -11,12 +11,11 @@ module ElasticGraph
11
11
  module Indexing
12
12
  # @private
13
13
  class RelationshipResolver
14
- def initialize(schema_def_state:, object_type:, relationship_name:, sourced_fields:, field_path_resolver:)
14
+ def initialize(schema_def_state:, object_type:, relationship_name:, sourced_fields:)
15
15
  @schema_def_state = schema_def_state
16
16
  @object_type = object_type
17
17
  @relationship_name = relationship_name
18
18
  @sourced_fields = sourced_fields
19
- @field_path_resolver = field_path_resolver
20
19
  end
21
20
 
22
21
  def resolve
@@ -51,8 +50,8 @@ module ElasticGraph
51
50
 
52
51
  private
53
52
 
54
- # @dynamic schema_def_state, object_type, relationship_name, sourced_fields, field_path_resolver
55
- attr_reader :schema_def_state, :object_type, :relationship_name, :sourced_fields, :field_path_resolver
53
+ # @dynamic schema_def_state, object_type, relationship_name, sourced_fields
54
+ attr_reader :schema_def_state, :object_type, :relationship_name, :sourced_fields
56
55
 
57
56
  # Helper method for building the prefix of relationship-related error messages.
58
57
  def relationship_error_prefix
@@ -67,7 +66,7 @@ module ElasticGraph
67
66
  end
68
67
 
69
68
  def validate_foreign_key(foreign_key_parent_type, relation_metadata)
70
- foreign_key_field = field_path_resolver.resolve_public_path(foreign_key_parent_type, relation_metadata.foreign_key) { true }
69
+ foreign_key_field = schema_def_state.field_path_resolver.resolve_public_path(foreign_key_parent_type, relation_metadata.foreign_key) { true }
71
70
  # If its an inbound foreign key, verify that the foreign key exists on the related type.
72
71
  # Note: we don't verify this for outbound foreign keys, because when we define a relationship with an outbound foreign
73
72
  # key, we automatically define an indexing only field for the foreign key (since it exists on the same type). We don't
@@ -109,6 +109,7 @@ module ElasticGraph
109
109
  def after_initialize
110
110
  # Record that we are now generating results so that caching can kick in.
111
111
  state.user_definition_complete = true
112
+ state.user_definition_complete_callbacks.each(&:call)
112
113
  end
113
114
 
114
115
  def json_schema_with_metadata_merger
@@ -179,9 +180,6 @@ module ElasticGraph
179
180
  # Builds a map, keyed by object type name, of extra `update_targets` that have been generated
180
181
  # from any fields that use `sourced_from` on other types.
181
182
  def identify_extra_update_targets_by_object_type_name
182
- # The field_path_resolver memoizes some calculations, and we want the same instance to be
183
- # used by all UpdateTargetBuilders to maximize its effectiveness.
184
- field_path_resolver = SchemaElements::FieldPath::Resolver.new
185
183
  sourced_field_errors = [] # : ::Array[::String]
186
184
  relationship_errors = [] # : ::Array[::String]
187
185
 
@@ -209,8 +207,7 @@ module ElasticGraph
209
207
  schema_def_state: state,
210
208
  object_type: object_type,
211
209
  relationship_name: relationship_name,
212
- sourced_fields: sourced_fields,
213
- field_path_resolver: field_path_resolver
210
+ sourced_fields: sourced_fields
214
211
  )
215
212
 
216
213
  resolved_relationship, relationship_error = relationship_resolver.resolve
@@ -221,7 +218,7 @@ module ElasticGraph
221
218
  object_type: object_type,
222
219
  resolved_relationship: resolved_relationship,
223
220
  sourced_fields: sourced_fields,
224
- field_path_resolver: field_path_resolver
221
+ field_path_resolver: state.field_path_resolver
225
222
  )
226
223
 
227
224
  update_target, errors = update_target_resolver.resolve
@@ -504,7 +504,8 @@ module ElasticGraph
504
504
 
505
505
  schema_def_api.factory.new_aggregated_values_type_for_index_leaf_type "NonNumeric" do |t|
506
506
  t.documentation "A return type used from aggregations to provided aggregated values over non-numeric fields."
507
- end.tap { |t| schema_def_api.state.register_object_interface_or_union_type(t) }
507
+ schema_def_api.state.register_object_interface_or_union_type(t)
508
+ end
508
509
 
509
510
  register_framework_object_type "AggregationCountDetail" do |t|
510
511
  t.documentation "Provides detail about an aggregation `#{names.count}`."
@@ -475,7 +475,7 @@ module ElasticGraph
475
475
  parent_type.name,
476
476
  from: old_name,
477
477
  to: name,
478
- defined_at: caller_locations(1, 1).first, # : ::Thread::Backtrace::Location
478
+ defined_at: caller_locations(1, 1).to_a.first, # : ::Thread::Backtrace::Location
479
479
  defined_via: %(field.renamed_from "#{old_name}")
480
480
  )
481
481
  end
@@ -51,13 +51,17 @@ module ElasticGraph
51
51
 
52
52
  # Responsible for resolving a particular field path (given as a string) into a `FieldPath` object.
53
53
  #
54
- # Important: this class optimizes performance by memoizing some things based on the current state
55
- # of the ElasticGraph schema. It's intended to be used AFTER the schema is fully defined (e.g.
56
- # as part of dumping schema artifacts). Using it before the schema has fully been defined requires
57
- # that you discard the instance after using it, as it won't be aware of additions to the schema
58
- # and may yield inaccurate results.
54
+ # Cannot be instantiated until the user has finished defining the schema.
55
+ # If we allowed it to be used before then, it creates a situation where the order of definition matters.
56
+ # In addition, this class optimizes performance by memoizing some things based on the current state, and
57
+ # if the state is updated after an instance is created, inaccurate results could be produced.
59
58
  class Resolver
60
- def initialize
59
+ def initialize(state)
60
+ unless state.user_definition_complete
61
+ raise Errors::SchemaError,
62
+ "A `FieldPath::Resolver` cannot be created before the user definition of the schema is complete."
63
+ end
64
+
61
65
  @indexing_fields_by_public_name_by_type = ::Hash.new do |hash, type|
62
66
  hash[type] = type
63
67
  .indexing_fields_by_name_in_index
@@ -140,7 +140,8 @@ module ElasticGraph
140
140
  def routing_value_source_for_index(index)
141
141
  return nil unless index.uses_custom_routing?
142
142
 
143
- @equivalent_field_paths_by_local_path.fetch(index.routing_field_path.path) do |local_need|
143
+ index_routing_field_path = index.routing_field_path # : FieldPath
144
+ @equivalent_field_paths_by_local_path.fetch(index_routing_field_path.path) do |local_need|
144
145
  yield local_need
145
146
  end
146
147
  end
@@ -191,11 +192,15 @@ module ElasticGraph
191
192
 
192
193
  # @private
193
194
  def runtime_metadata
194
- field_path_resolver = SchemaElements::FieldPath::Resolver.new
195
195
  resolved_related_type = (_ = related_type.unwrap_list.as_object_type) # : indexableType
196
- foreign_key_nested_paths = field_path_resolver.determine_nested_paths(resolved_related_type, @foreign_key)
196
+ foreign_key_nested_paths = schema_def_state.field_path_resolver.determine_nested_paths(resolved_related_type, @foreign_key)
197
197
  foreign_key_nested_paths ||= [] # : ::Array[::String]
198
- SchemaArtifacts::RuntimeMetadata::Relation.new(foreign_key: @foreign_key, direction: @direction, additional_filter: @additional_filter, foreign_key_nested_paths: foreign_key_nested_paths)
198
+ SchemaArtifacts::RuntimeMetadata::Relation.new(
199
+ foreign_key: @foreign_key,
200
+ direction: @direction,
201
+ additional_filter: @additional_filter,
202
+ foreign_key_nested_paths: foreign_key_nested_paths
203
+ )
199
204
  end
200
205
 
201
206
  private
@@ -239,7 +239,7 @@ module ElasticGraph
239
239
  schema_def_state.register_deleted_field(
240
240
  name,
241
241
  field_name,
242
- defined_at: caller_locations(2, 1).first, # : ::Thread::Backtrace::Location
242
+ defined_at: caller_locations(2, 1).to_a.first, # : ::Thread::Backtrace::Location
243
243
  defined_via: %(type.deleted_field "#{field_name}")
244
244
  )
245
245
  end
@@ -263,7 +263,7 @@ module ElasticGraph
263
263
  schema_def_state.register_renamed_type(
264
264
  name,
265
265
  from: old_name,
266
- defined_at: caller_locations(2, 1).first, # : ::Thread::Backtrace::Location
266
+ defined_at: caller_locations(2, 1).to_a.first, # : ::Thread::Backtrace::Location
267
267
  defined_via: %(type.renamed_from "#{old_name}")
268
268
  )
269
269
  end
@@ -11,6 +11,7 @@ require "elastic_graph/errors"
11
11
  require "elastic_graph/schema_definition/factory"
12
12
  require "elastic_graph/schema_definition/mixins/has_readable_to_s_and_inspect"
13
13
  require "elastic_graph/schema_definition/schema_elements/enum_value_namer"
14
+ require "elastic_graph/schema_definition/schema_elements/field_path"
14
15
  require "elastic_graph/schema_definition/schema_elements/type_namer"
15
16
  require "elastic_graph/schema_definition/schema_elements/sub_aggregation_path"
16
17
 
@@ -44,6 +45,7 @@ module ElasticGraph
44
45
  :initially_registered_built_in_types,
45
46
  :built_in_types_customization_blocks,
46
47
  :user_definition_complete,
48
+ :user_definition_complete_callbacks,
47
49
  :sub_aggregation_paths_by_type,
48
50
  :type_refs_by_name,
49
51
  :output,
@@ -86,6 +88,7 @@ module ElasticGraph
86
88
  initially_registered_built_in_types: ::Set.new,
87
89
  built_in_types_customization_blocks: [],
88
90
  user_definition_complete: false,
91
+ user_definition_complete_callbacks: [],
89
92
  sub_aggregation_paths_by_type: {},
90
93
  type_refs_by_name: {},
91
94
  type_namer: SchemaElements::TypeNamer.new(
@@ -191,6 +194,14 @@ module ElasticGraph
191
194
  end
192
195
  end
193
196
 
197
+ def after_user_definition_complete(&block)
198
+ user_definition_complete_callbacks << block
199
+ end
200
+
201
+ def field_path_resolver
202
+ @field_path_resolver ||= SchemaElements::FieldPath::Resolver.new(self)
203
+ end
204
+
194
205
  private
195
206
 
196
207
  RESERVED_TYPE_NAMES = [EVENT_ENVELOPE_JSON_SCHEMA_NAME].to_set
metadata CHANGED
@@ -1,309 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elasticgraph-schema_definition
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.0.0
4
+ version: 0.19.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Myron Marston
8
8
  - Ben VandenBos
9
9
  - Block Engineering
10
10
  autorequire:
11
- bindir: exe
11
+ bindir: bin
12
12
  cert_chain: []
13
- date: 2024-12-10 00:00:00.000000000 Z
13
+ date: 2025-02-06 00:00:00.000000000 Z
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: rubocop-factory_bot
17
- requirement: !ruby/object:Gem::Requirement
18
- requirements:
19
- - - "~>"
20
- - !ruby/object:Gem::Version
21
- version: '2.26'
22
- type: :development
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - "~>"
27
- - !ruby/object:Gem::Version
28
- version: '2.26'
29
- - !ruby/object:Gem::Dependency
30
- name: rubocop-rake
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - "~>"
34
- - !ruby/object:Gem::Version
35
- version: '0.6'
36
- type: :development
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - "~>"
41
- - !ruby/object:Gem::Version
42
- version: '0.6'
43
- - !ruby/object:Gem::Dependency
44
- name: rubocop-rspec
45
- requirement: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '3.1'
50
- type: :development
51
- prerelease: false
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - "~>"
55
- - !ruby/object:Gem::Version
56
- version: '3.1'
57
- - !ruby/object:Gem::Dependency
58
- name: standard
59
- requirement: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - "~>"
62
- - !ruby/object:Gem::Version
63
- version: 1.41.0
64
- type: :development
65
- prerelease: false
66
- version_requirements: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - "~>"
69
- - !ruby/object:Gem::Version
70
- version: 1.41.0
71
- - !ruby/object:Gem::Dependency
72
- name: steep
73
- requirement: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: 1.9.0
78
- type: :development
79
- prerelease: false
80
- version_requirements: !ruby/object:Gem::Requirement
81
- requirements:
82
- - - "~>"
83
- - !ruby/object:Gem::Version
84
- version: 1.9.0
85
- - !ruby/object:Gem::Dependency
86
- name: coderay
87
- requirement: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - "~>"
90
- - !ruby/object:Gem::Version
91
- version: '1.1'
92
- type: :development
93
- prerelease: false
94
- version_requirements: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - "~>"
97
- - !ruby/object:Gem::Version
98
- version: '1.1'
99
- - !ruby/object:Gem::Dependency
100
- name: flatware-rspec
101
- requirement: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - "~>"
104
- - !ruby/object:Gem::Version
105
- version: '2.3'
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- version: 2.3.3
109
- type: :development
110
- prerelease: false
111
- version_requirements: !ruby/object:Gem::Requirement
112
- requirements:
113
- - - "~>"
114
- - !ruby/object:Gem::Version
115
- version: '2.3'
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: 2.3.3
119
- - !ruby/object:Gem::Dependency
120
- name: rspec
121
- requirement: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: '3.13'
126
- type: :development
127
- prerelease: false
128
- version_requirements: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - "~>"
131
- - !ruby/object:Gem::Version
132
- version: '3.13'
133
- - !ruby/object:Gem::Dependency
134
- name: super_diff
135
- requirement: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - "~>"
138
- - !ruby/object:Gem::Version
139
- version: '0.13'
140
- type: :development
141
- prerelease: false
142
- version_requirements: !ruby/object:Gem::Requirement
143
- requirements:
144
- - - "~>"
145
- - !ruby/object:Gem::Version
146
- version: '0.13'
147
- - !ruby/object:Gem::Dependency
148
- name: simplecov
149
- requirement: !ruby/object:Gem::Requirement
150
- requirements:
151
- - - "~>"
152
- - !ruby/object:Gem::Version
153
- version: '0.22'
154
- type: :development
155
- prerelease: false
156
- version_requirements: !ruby/object:Gem::Requirement
157
- requirements:
158
- - - "~>"
159
- - !ruby/object:Gem::Version
160
- version: '0.22'
161
- - !ruby/object:Gem::Dependency
162
- name: simplecov-console
163
- requirement: !ruby/object:Gem::Requirement
164
- requirements:
165
- - - "~>"
166
- - !ruby/object:Gem::Version
167
- version: '0.9'
168
- type: :development
169
- prerelease: false
170
- version_requirements: !ruby/object:Gem::Requirement
171
- requirements:
172
- - - "~>"
173
- - !ruby/object:Gem::Version
174
- version: '0.9'
175
- - !ruby/object:Gem::Dependency
176
- name: httpx
177
- requirement: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - "~>"
180
- - !ruby/object:Gem::Version
181
- version: '1.3'
182
- type: :development
183
- prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- requirements:
186
- - - "~>"
187
- - !ruby/object:Gem::Version
188
- version: '1.3'
189
- - !ruby/object:Gem::Dependency
190
- name: method_source
191
- requirement: !ruby/object:Gem::Requirement
192
- requirements:
193
- - - "~>"
194
- - !ruby/object:Gem::Version
195
- version: '1.1'
196
- type: :development
197
- prerelease: false
198
- version_requirements: !ruby/object:Gem::Requirement
199
- requirements:
200
- - - "~>"
201
- - !ruby/object:Gem::Version
202
- version: '1.1'
203
- - !ruby/object:Gem::Dependency
204
- name: rspec-retry
205
- requirement: !ruby/object:Gem::Requirement
206
- requirements:
207
- - - "~>"
208
- - !ruby/object:Gem::Version
209
- version: '0.6'
210
- type: :development
211
- prerelease: false
212
- version_requirements: !ruby/object:Gem::Requirement
213
- requirements:
214
- - - "~>"
215
- - !ruby/object:Gem::Version
216
- version: '0.6'
217
- - !ruby/object:Gem::Dependency
218
- name: vcr
219
- requirement: !ruby/object:Gem::Requirement
220
- requirements:
221
- - - "~>"
222
- - !ruby/object:Gem::Version
223
- version: '6.3'
224
- - - ">="
225
- - !ruby/object:Gem::Version
226
- version: 6.3.1
227
- type: :development
228
- prerelease: false
229
- version_requirements: !ruby/object:Gem::Requirement
230
- requirements:
231
- - - "~>"
232
- - !ruby/object:Gem::Version
233
- version: '6.3'
234
- - - ">="
235
- - !ruby/object:Gem::Version
236
- version: 6.3.1
237
15
  - !ruby/object:Gem::Dependency
238
16
  name: elasticgraph-graphql
239
17
  requirement: !ruby/object:Gem::Requirement
240
18
  requirements:
241
19
  - - '='
242
20
  - !ruby/object:Gem::Version
243
- version: 0.19.0.0
21
+ version: 0.19.1.0
244
22
  type: :runtime
245
23
  prerelease: false
246
24
  version_requirements: !ruby/object:Gem::Requirement
247
25
  requirements:
248
26
  - - '='
249
27
  - !ruby/object:Gem::Version
250
- version: 0.19.0.0
28
+ version: 0.19.1.0
251
29
  - !ruby/object:Gem::Dependency
252
30
  name: elasticgraph-indexer
253
31
  requirement: !ruby/object:Gem::Requirement
254
32
  requirements:
255
33
  - - '='
256
34
  - !ruby/object:Gem::Version
257
- version: 0.19.0.0
35
+ version: 0.19.1.0
258
36
  type: :runtime
259
37
  prerelease: false
260
38
  version_requirements: !ruby/object:Gem::Requirement
261
39
  requirements:
262
40
  - - '='
263
41
  - !ruby/object:Gem::Version
264
- version: 0.19.0.0
42
+ version: 0.19.1.0
265
43
  - !ruby/object:Gem::Dependency
266
44
  name: elasticgraph-json_schema
267
45
  requirement: !ruby/object:Gem::Requirement
268
46
  requirements:
269
47
  - - '='
270
48
  - !ruby/object:Gem::Version
271
- version: 0.19.0.0
49
+ version: 0.19.1.0
272
50
  type: :runtime
273
51
  prerelease: false
274
52
  version_requirements: !ruby/object:Gem::Requirement
275
53
  requirements:
276
54
  - - '='
277
55
  - !ruby/object:Gem::Version
278
- version: 0.19.0.0
56
+ version: 0.19.1.0
279
57
  - !ruby/object:Gem::Dependency
280
58
  name: elasticgraph-schema_artifacts
281
59
  requirement: !ruby/object:Gem::Requirement
282
60
  requirements:
283
61
  - - '='
284
62
  - !ruby/object:Gem::Version
285
- version: 0.19.0.0
63
+ version: 0.19.1.0
286
64
  type: :runtime
287
65
  prerelease: false
288
66
  version_requirements: !ruby/object:Gem::Requirement
289
67
  requirements:
290
68
  - - '='
291
69
  - !ruby/object:Gem::Version
292
- version: 0.19.0.0
70
+ version: 0.19.1.0
293
71
  - !ruby/object:Gem::Dependency
294
72
  name: elasticgraph-support
295
73
  requirement: !ruby/object:Gem::Requirement
296
74
  requirements:
297
75
  - - '='
298
76
  - !ruby/object:Gem::Version
299
- version: 0.19.0.0
77
+ version: 0.19.1.0
300
78
  type: :runtime
301
79
  prerelease: false
302
80
  version_requirements: !ruby/object:Gem::Requirement
303
81
  requirements:
304
82
  - - '='
305
83
  - !ruby/object:Gem::Version
306
- version: 0.19.0.0
84
+ version: 0.19.1.0
307
85
  - !ruby/object:Gem::Dependency
308
86
  name: graphql
309
87
  requirement: !ruby/object:Gem::Requirement
@@ -338,56 +116,56 @@ dependencies:
338
116
  requirements:
339
117
  - - '='
340
118
  - !ruby/object:Gem::Version
341
- version: 0.19.0.0
119
+ version: 0.19.1.0
342
120
  type: :development
343
121
  prerelease: false
344
122
  version_requirements: !ruby/object:Gem::Requirement
345
123
  requirements:
346
124
  - - '='
347
125
  - !ruby/object:Gem::Version
348
- version: 0.19.0.0
126
+ version: 0.19.1.0
349
127
  - !ruby/object:Gem::Dependency
350
128
  name: elasticgraph-datastore_core
351
129
  requirement: !ruby/object:Gem::Requirement
352
130
  requirements:
353
131
  - - '='
354
132
  - !ruby/object:Gem::Version
355
- version: 0.19.0.0
133
+ version: 0.19.1.0
356
134
  type: :development
357
135
  prerelease: false
358
136
  version_requirements: !ruby/object:Gem::Requirement
359
137
  requirements:
360
138
  - - '='
361
139
  - !ruby/object:Gem::Version
362
- version: 0.19.0.0
140
+ version: 0.19.1.0
363
141
  - !ruby/object:Gem::Dependency
364
142
  name: elasticgraph-elasticsearch
365
143
  requirement: !ruby/object:Gem::Requirement
366
144
  requirements:
367
145
  - - '='
368
146
  - !ruby/object:Gem::Version
369
- version: 0.19.0.0
147
+ version: 0.19.1.0
370
148
  type: :development
371
149
  prerelease: false
372
150
  version_requirements: !ruby/object:Gem::Requirement
373
151
  requirements:
374
152
  - - '='
375
153
  - !ruby/object:Gem::Version
376
- version: 0.19.0.0
154
+ version: 0.19.1.0
377
155
  - !ruby/object:Gem::Dependency
378
156
  name: elasticgraph-opensearch
379
157
  requirement: !ruby/object:Gem::Requirement
380
158
  requirements:
381
159
  - - '='
382
160
  - !ruby/object:Gem::Version
383
- version: 0.19.0.0
161
+ version: 0.19.1.0
384
162
  type: :development
385
163
  prerelease: false
386
164
  version_requirements: !ruby/object:Gem::Requirement
387
165
  requirements:
388
166
  - - '='
389
167
  - !ruby/object:Gem::Version
390
- version: 0.19.0.0
168
+ version: 0.19.1.0
391
169
  description:
392
170
  email:
393
171
  - myron@squareup.com
@@ -397,7 +175,6 @@ extra_rdoc_files: []
397
175
  files:
398
176
  - LICENSE.txt
399
177
  - README.md
400
- - elasticgraph-schema_definition.gemspec
401
178
  - lib/elastic_graph/schema_definition/api.rb
402
179
  - lib/elastic_graph/schema_definition/factory.rb
403
180
  - lib/elastic_graph/schema_definition/indexing/derived_fields/append_only_set.rb
@@ -474,10 +251,10 @@ licenses:
474
251
  - MIT
475
252
  metadata:
476
253
  bug_tracker_uri: https://github.com/block/elasticgraph/issues
477
- changelog_uri: https://github.com/block/elasticgraph/releases/tag/v0.19.0.0
254
+ changelog_uri: https://github.com/block/elasticgraph/releases/tag/v0.19.1.0
478
255
  documentation_uri: https://block.github.io/elasticgraph/docs/main/
479
256
  homepage_uri: https://block.github.io/elasticgraph/
480
- source_code_uri: https://github.com/block/elasticgraph/tree/v0.19.0.0/elasticgraph-schema_definition
257
+ source_code_uri: https://github.com/block/elasticgraph/tree/v0.19.1.0/elasticgraph-schema_definition
481
258
  gem_category: local
482
259
  post_install_message:
483
260
  rdoc_options: []
@@ -485,9 +262,12 @@ require_paths:
485
262
  - lib
486
263
  required_ruby_version: !ruby/object:Gem::Requirement
487
264
  requirements:
488
- - - "~>"
265
+ - - ">="
489
266
  - !ruby/object:Gem::Version
490
267
  version: '3.2'
268
+ - - "<"
269
+ - !ruby/object:Gem::Version
270
+ version: '3.5'
491
271
  required_rubygems_version: !ruby/object:Gem::Requirement
492
272
  requirements:
493
273
  - - ">="
@@ -1,26 +0,0 @@
1
- # Copyright 2024 Block, Inc.
2
- #
3
- # Use of this source code is governed by an MIT-style
4
- # license that can be found in the LICENSE file or at
5
- # https://opensource.org/licenses/MIT.
6
- #
7
- # frozen_string_literal: true
8
-
9
- require_relative "../gemspec_helper"
10
-
11
- ElasticGraphGemspecHelper.define_elasticgraph_gem(gemspec_file: __FILE__, category: :local) do |spec, eg_version|
12
- spec.summary = "ElasticGraph gem that provides the schema definition API and generates schema artifacts."
13
-
14
- spec.add_dependency "elasticgraph-graphql", eg_version # needed since we validate that scalar `coerce_with` options are valid (which loads scalar coercion adapters)
15
- spec.add_dependency "elasticgraph-indexer", eg_version # needed since we validate that scalar `prepare_for_indexing_with` options are valid (which loads indexing preparer adapters)
16
- spec.add_dependency "elasticgraph-json_schema", eg_version
17
- spec.add_dependency "elasticgraph-schema_artifacts", eg_version
18
- spec.add_dependency "elasticgraph-support", eg_version
19
- spec.add_dependency "graphql", "~> 2.4.8"
20
- spec.add_dependency "rake", "~> 13.2"
21
-
22
- spec.add_development_dependency "elasticgraph-admin", eg_version
23
- spec.add_development_dependency "elasticgraph-datastore_core", eg_version
24
- spec.add_development_dependency "elasticgraph-elasticsearch", eg_version
25
- spec.add_development_dependency "elasticgraph-opensearch", eg_version
26
- end