kreuzberg 4.8.4-aarch64-linux → 4.9.0-aarch64-linux

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: b72926d04c538087ca728eaaede75af8f20c630e1b77109a78345434081393ef
4
- data.tar.gz: 6ca5e1e5acf2084b88ef624792ec64a43f026e68abbd04b6ba49d9443e407ea0
3
+ metadata.gz: c7a0c15c0ef0421fe0b2fe83a5feba779f2aa18a1be817b5c7b2f52323601531
4
+ data.tar.gz: 8553c7bcee1466b95ead2688b219d8953ddd941590e55a589f9c7b98317a45a5
5
5
  SHA512:
6
- metadata.gz: fc3ee80cf5129eed83000213a057b785cedf04627b9f8761bba70d5971da18a5e1868410296982522aa0e431dcdcce1d8528f5d1c615c0bef845ab4af7dfbab6
7
- data.tar.gz: '06538a19fcfbccedd23548f49f42c5fbf1f08e256f579a8b0b8b5c1bc9b2411a489fdb7e653424ca3ced2e6de7008a3701c5ac64047ca0a78d8b7821478bcaf6'
6
+ metadata.gz: 5b3e598e8cdecc91dbe6d6e68772f9fc3ceac7688d87d50b70e5120fb8957dafd4abe47dec6961b3d2046741b3a1bf0d8d618e0f8a36c255e687bbb290d2bd20
7
+ data.tar.gz: 8e82431165e64e89141d3077d2068a8435a08daf9d4708499121936493995dd874ba561a6c4b791f14be746bb91bd4d15ef444d6163a754ab5b555bc87c1f2eb
data/README.md CHANGED
@@ -22,7 +22,7 @@
22
22
  <img src="https://img.shields.io/maven-central/v/dev.kreuzberg/kreuzberg?label=Java&color=007ec6" alt="Java">
23
23
  </a>
24
24
  <a href="https://github.com/kreuzberg-dev/kreuzberg/releases">
25
- <img src="https://img.shields.io/github/v/tag/kreuzberg-dev/kreuzberg?label=Go&color=007ec6&filter=v4.8.4" alt="Go">
25
+ <img src="https://img.shields.io/github/v/tag/kreuzberg-dev/kreuzberg?label=Go&color=007ec6&filter=v4.9.0" alt="Go">
26
26
  </a>
27
27
  <a href="https://www.nuget.org/packages/Kreuzberg/">
28
28
  <img src="https://img.shields.io/nuget/v/Kreuzberg?label=C%23&color=007ec6" alt="C#">
@@ -39,10 +39,13 @@
39
39
  <a href="https://github.com/kreuzberg-dev/kreuzberg/pkgs/container/kreuzberg">
40
40
  <img src="https://img.shields.io/badge/Docker-007ec6?logo=docker&logoColor=white" alt="Docker">
41
41
  </a>
42
+ <a href="https://artifacthub.io/packages/search?repo=kreuzberg">
43
+ <img src="https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/kreuzberg" alt="Artifact Hub">
44
+ </a>
42
45
 
43
46
  <!-- Project Info -->
44
47
  <a href="https://github.com/kreuzberg-dev/kreuzberg/blob/main/LICENSE">
45
- <img src="https://img.shields.io/badge/License-Elastic--2.0-blue.svg" alt="License">
48
+ <img src="https://img.shields.io/badge/License-MIT-007ec6" alt="License">
46
49
  </a>
47
50
  <a href="https://docs.kreuzberg.dev">
48
51
  <img src="https://img.shields.io/badge/docs-kreuzberg.dev-007ec6" alt="Documentation">
@@ -419,7 +422,7 @@ Contributions are welcome! See [Contributing Guide](https://github.com/kreuzberg
419
422
 
420
423
  ## License
421
424
 
422
- Elastic License 2.0 (ELv2) - see [LICENSE](../../LICENSE) for details.
425
+ MIT License - see LICENSE file for details.
423
426
 
424
427
  ## Support
425
428
 
@@ -116,5 +116,8 @@ module Kreuzberg
116
116
 
117
117
  # Raised when embedding fails
118
118
  class EmbeddingError < Error; end
119
+
120
+ # Raised when an extraction is cancelled via a cancellation token
121
+ class CancelledError < Error; end
119
122
  end
120
123
  end
@@ -15,7 +15,7 @@ module Kreuzberg
15
15
  attr_reader :content, :mime_type, :metadata, :metadata_json, :tables,
16
16
  :detected_languages, :chunks, :images, :pages, :elements, :ocr_elements, :djot_content,
17
17
  :document, :extracted_keywords, :quality_score, :processing_warnings, :annotations,
18
- :uris, :children
18
+ :uris, :children, :structured_output
19
19
 
20
20
  # @!attribute [r] cells
21
21
  # @return [Array<Array<String>>] Table cells (2D array)
@@ -145,7 +145,7 @@ module Kreuzberg
145
145
  # @return [Array<Image>] Images on this page
146
146
  # @!attribute [r] hierarchy
147
147
  # @return [PageHierarchy, nil] Hierarchy information for the page
148
- PageContent = Struct.new(:page_number, :content, :tables, :images, :hierarchy, :is_blank) do
148
+ PageContent = Struct.new(:page_number, :content, :tables, :images, :hierarchy, :is_blank, :layout_regions) do
149
149
  def to_h
150
150
  {
151
151
  page_number: page_number,
@@ -153,7 +153,27 @@ module Kreuzberg
153
153
  tables: tables.map(&:to_h),
154
154
  images: images.map(&:to_h),
155
155
  hierarchy: hierarchy&.to_h,
156
- is_blank: is_blank
156
+ is_blank: is_blank,
157
+ layout_regions: layout_regions&.map(&:to_h)
158
+ }
159
+ end
160
+ end
161
+
162
+ # @!attribute [r] class_name
163
+ # @return [String] Layout class name (e.g. "picture", "table", "text")
164
+ # @!attribute [r] confidence
165
+ # @return [Float] Detection confidence score (0.0 to 1.0)
166
+ # @!attribute [r] bounding_box
167
+ # @return [ElementBoundingBox] Bounding box in document coordinate space
168
+ # @!attribute [r] area_fraction
169
+ # @return [Float] Fraction of page area covered (0.0 to 1.0)
170
+ LayoutRegion = Struct.new(:class_name, :confidence, :bounding_box, :area_fraction) do
171
+ def to_h
172
+ {
173
+ class: class_name,
174
+ confidence: confidence,
175
+ bounding_box: bounding_box&.to_h,
176
+ area_fraction: area_fraction
157
177
  }
158
178
  end
159
179
  end
@@ -342,6 +362,7 @@ module Kreuzberg
342
362
  @annotations = parse_annotations(get_value(hash, 'annotations'))
343
363
  @uris = parse_uris(get_value(hash, 'uris'))
344
364
  @children = parse_children(get_value(hash, 'children'))
365
+ @structured_output = get_value(hash, 'structured_output')
345
366
  end
346
367
  # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
347
368
 
@@ -369,7 +390,8 @@ module Kreuzberg
369
390
  processing_warnings: @processing_warnings.map(&:to_h),
370
391
  annotations: @annotations&.map(&:to_h),
371
392
  uris: @uris&.map(&:to_h),
372
- children: @children&.map(&:to_h)
393
+ children: @children&.map(&:to_h),
394
+ structured_output: @structured_output
373
395
  }
374
396
  end
375
397
  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/MethodLength
@@ -568,11 +590,36 @@ module Kreuzberg
568
590
  tables: parse_tables(page_hash['tables']),
569
591
  images: parse_images(page_hash['images']),
570
592
  hierarchy: parse_page_hierarchy(page_hash['hierarchy']),
571
- is_blank: page_hash['is_blank']
593
+ is_blank: page_hash['is_blank'],
594
+ layout_regions: parse_layout_regions(page_hash['layout_regions'])
572
595
  )
573
596
  end
574
597
  end
575
598
 
599
+ def parse_layout_regions(regions_data)
600
+ return nil if regions_data.nil?
601
+
602
+ regions_data.map do |region_hash|
603
+ LayoutRegion.new(
604
+ class_name: region_hash['class'],
605
+ confidence: region_hash['confidence']&.to_f,
606
+ bounding_box: parse_element_bounding_box(region_hash['bounding_box']),
607
+ area_fraction: region_hash['area_fraction']&.to_f
608
+ )
609
+ end
610
+ end
611
+
612
+ def parse_element_bounding_box(bounding_box_data)
613
+ return nil if bounding_box_data.nil?
614
+
615
+ ElementBoundingBox.new(
616
+ x0: bounding_box_data['x0'].to_f,
617
+ y0: bounding_box_data['y0'].to_f,
618
+ x1: bounding_box_data['x1'].to_f,
619
+ y1: bounding_box_data['y1'].to_f
620
+ )
621
+ end
622
+
576
623
  def parse_page_hierarchy(hierarchy_data)
577
624
  return nil if hierarchy_data.nil?
578
625
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kreuzberg
4
- VERSION = '4.8.4'
4
+ VERSION = '4.9.0'
5
5
  end
data/lib/kreuzberg_rb.so CHANGED
Binary file
data/sig/kreuzberg.rbs CHANGED
@@ -18,7 +18,8 @@ module Kreuzberg
18
18
  type element_type = 'title' | 'narrative_text' | 'heading' | 'list_item' | 'table' | 'image' | 'page_break' | 'code_block' | 'block_quote' | 'footer' | 'header'
19
19
 
20
20
  # Bounding box coordinates for element positioning (T::Struct from types.rb)
21
- class BoundingBox attr_reader x0: Float
21
+ class BoundingBox
22
+ attr_reader x0: Float
22
23
  attr_reader y0: Float
23
24
  attr_reader x1: Float
24
25
  attr_reader y1: Float
@@ -28,7 +29,8 @@ module Kreuzberg
28
29
  end
29
30
 
30
31
  # Metadata for a semantic element (T::Struct from types.rb)
31
- class ElementMetadata attr_reader page_number: Integer?
32
+ class ElementMetadata
33
+ attr_reader page_number: Integer?
32
34
  attr_reader filename: String?
33
35
  attr_reader coordinates: BoundingBox?
34
36
  attr_reader element_index: Integer?
@@ -39,7 +41,8 @@ module Kreuzberg
39
41
  end
40
42
 
41
43
  # Semantic element extracted from document (T::Struct from types.rb)
42
- class Element attr_reader element_id: String
44
+ class Element
45
+ attr_reader element_id: String
43
46
  attr_reader element_type: String
44
47
  attr_reader text: String
45
48
  attr_reader metadata: ElementMetadata
@@ -49,7 +52,8 @@ module Kreuzberg
49
52
  end
50
53
 
51
54
  # Header/Heading metadata (T::Struct from types.rb)
52
- class HeaderMetadata attr_reader level: Integer
55
+ class HeaderMetadata
56
+ attr_reader level: Integer
53
57
  attr_reader text: String
54
58
  attr_reader id: String?
55
59
  attr_reader depth: Integer
@@ -60,7 +64,8 @@ module Kreuzberg
60
64
  end
61
65
 
62
66
  # Link metadata (T::Struct from types.rb)
63
- class LinkMetadata attr_reader href: String
67
+ class LinkMetadata
68
+ attr_reader href: String
64
69
  attr_reader text: String
65
70
  attr_reader title: String?
66
71
  attr_reader link_type: String
@@ -72,7 +77,8 @@ module Kreuzberg
72
77
  end
73
78
 
74
79
  # Image metadata (T::Struct from types.rb)
75
- class ImageMetadata attr_reader src: String
80
+ class ImageMetadata
81
+ attr_reader src: String
76
82
  attr_reader alt: String?
77
83
  attr_reader title: String?
78
84
  attr_reader dimensions: Array[Integer]?
@@ -84,7 +90,8 @@ module Kreuzberg
84
90
  end
85
91
 
86
92
  # Structured data metadata (T::Struct from types.rb)
87
- class StructuredData attr_reader data_type: String
93
+ class StructuredData
94
+ attr_reader data_type: String
88
95
  attr_reader raw_json: String
89
96
  attr_reader schema_type: String?
90
97
 
@@ -210,7 +217,8 @@ module Kreuzberg
210
217
  end
211
218
 
212
219
  # HTML metadata (T::Struct from types.rb)
213
- class HtmlMetadata attr_reader title: String?
220
+ class HtmlMetadata
221
+ attr_reader title: String?
214
222
  attr_reader description: String?
215
223
  attr_reader author: String?
216
224
  attr_reader copyright: String?
@@ -261,7 +269,8 @@ module Kreuzberg
261
269
  end
262
270
 
263
271
  # Extracted keyword with relevance metadata (T::Struct from types.rb)
264
- class ExtractedKeyword attr_reader text: String
272
+ class ExtractedKeyword
273
+ attr_reader text: String
265
274
  attr_reader score: Float
266
275
  attr_reader algorithm: String
267
276
  attr_reader positions: Array[Integer]?
@@ -271,15 +280,39 @@ module Kreuzberg
271
280
  end
272
281
 
273
282
  # Processing warning from a pipeline stage (T::Struct from types.rb)
274
- class ProcessingWarning attr_reader source: String
283
+ class ProcessingWarning
284
+ attr_reader source: String
275
285
  attr_reader message: String
276
286
 
277
287
  def initialize: (source: String, message: String) -> void
278
288
  def serialize: () -> Hash[Symbol, untyped]
279
289
  end
280
290
 
291
+ # LLM token usage from an LLM-assisted extraction step (T::Struct from types.rb)
292
+ class LlmUsage
293
+ attr_reader model: String
294
+ attr_reader source: String
295
+ attr_reader input_tokens: Integer?
296
+ attr_reader output_tokens: Integer?
297
+ attr_reader total_tokens: Integer?
298
+ attr_reader estimated_cost: Float?
299
+ attr_reader finish_reason: String?
300
+
301
+ def initialize: (
302
+ model: String,
303
+ source: String,
304
+ ?input_tokens: Integer?,
305
+ ?output_tokens: Integer?,
306
+ ?total_tokens: Integer?,
307
+ ?estimated_cost: Float?,
308
+ ?finish_reason: String?
309
+ ) -> void
310
+ def serialize: () -> Hash[Symbol, untyped]
311
+ end
312
+
281
313
  # Bounding box for document node positioning (T::Struct from types.rb)
282
- class DocumentBoundingBox attr_reader x0: Float
314
+ class DocumentBoundingBox
315
+ attr_reader x0: Float
283
316
  attr_reader y0: Float
284
317
  attr_reader x1: Float
285
318
  attr_reader y1: Float
@@ -289,7 +322,8 @@ module Kreuzberg
289
322
  end
290
323
 
291
324
  # Annotation for a document node (T::Struct from types.rb)
292
- class DocumentAnnotation attr_reader key: String
325
+ class DocumentAnnotation
326
+ attr_reader key: String
293
327
  attr_reader value: String
294
328
 
295
329
  def initialize: (key: String, value: String) -> void
@@ -297,7 +331,8 @@ module Kreuzberg
297
331
  end
298
332
 
299
333
  # Single node in the document structure tree (T::Struct from types.rb)
300
- class DocumentNode attr_reader id: String
334
+ class DocumentNode
335
+ attr_reader id: String
301
336
  attr_reader content: String
302
337
  attr_reader parent: Integer?
303
338
  attr_reader children: Array[Integer]
@@ -322,7 +357,8 @@ module Kreuzberg
322
357
  end
323
358
 
324
359
  # Structured document representation (T::Struct from types.rb)
325
- class DocumentStructure attr_reader nodes: Array[DocumentNode]
360
+ class DocumentStructure
361
+ attr_reader nodes: Array[DocumentNode]
326
362
 
327
363
  def initialize: (nodes: Array[DocumentNode]) -> void
328
364
  def serialize: () -> Hash[Symbol, untyped]
@@ -560,13 +596,15 @@ module Kreuzberg
560
596
  attr_reader batch_size: Integer?
561
597
  attr_reader show_download_progress: bool?
562
598
  attr_reader cache_dir: String?
599
+ attr_reader acceleration: Acceleration?
563
600
 
564
601
  def initialize: (
565
602
  ?model: Hash[Symbol, untyped],
566
603
  ?normalize: bool?,
567
604
  ?batch_size: Integer?,
568
605
  ?show_download_progress: bool?,
569
- ?cache_dir: String?
606
+ ?cache_dir: String?,
607
+ ?acceleration: (Acceleration | Hash[Symbol, untyped])?
570
608
  ) -> void
571
609
  def to_h: () -> Hash[Symbol, untyped]
572
610
  end
@@ -763,8 +801,9 @@ module Kreuzberg
763
801
  attr_reader confidence_threshold: Float?
764
802
  attr_reader apply_heuristics: bool
765
803
  attr_reader table_model: String?
804
+ attr_reader acceleration: Acceleration?
766
805
 
767
- def initialize: (?preset: String, ?confidence_threshold: Float?, ?apply_heuristics: bool, ?table_model: String?) -> void
806
+ def initialize: (?preset: String, ?confidence_threshold: Float?, ?apply_heuristics: bool, ?table_model: String?, ?acceleration: (Acceleration | Hash[Symbol, untyped])?) -> void
768
807
  def to_h: () -> Hash[Symbol, untyped]
769
808
  end
770
809
 
@@ -927,7 +966,10 @@ module Kreuzberg
927
966
  extracted_keywords: Array[extracted_keyword_hash]?,
928
967
  quality_score: Float?,
929
968
  processing_warnings: Array[processing_warning_hash]?,
930
- annotations: Array[pdf_annotation_hash]?
969
+ annotations: Array[pdf_annotation_hash]?,
970
+ uris: Array[uri_hash]?,
971
+ children: Array[archive_entry_hash]?,
972
+ llm_usage: Array[llm_usage_hash]?
931
973
  }
932
974
 
933
975
  type extracted_keyword_hash = {
@@ -942,12 +984,36 @@ module Kreuzberg
942
984
  message: String
943
985
  }
944
986
 
987
+ type llm_usage_hash = {
988
+ model: String,
989
+ source: String,
990
+ input_tokens: Integer?,
991
+ output_tokens: Integer?,
992
+ total_tokens: Integer?,
993
+ estimated_cost: Float?,
994
+ finish_reason: String?
995
+ }
996
+
997
+ type uri_hash = {
998
+ url: String,
999
+ label: String?,
1000
+ page: Integer?,
1001
+ kind: String
1002
+ }
1003
+
1004
+ type archive_entry_hash = {
1005
+ path: String,
1006
+ mime_type: String,
1007
+ result: extraction_result_hash?
1008
+ }
1009
+
945
1010
  type page_content_hash = {
946
1011
  page_number: Integer,
947
1012
  content: String,
948
1013
  tables: Array[table_hash],
949
1014
  images: Array[image_hash],
950
- is_blank: bool?
1015
+ is_blank: bool?,
1016
+ layout_regions: Array[untyped]?
951
1017
  }
952
1018
 
953
1019
  type djot_content_hash = {
@@ -1218,6 +1284,17 @@ module Kreuzberg
1218
1284
  def to_h: () -> image_hash
1219
1285
  end
1220
1286
 
1287
+ # Layout detection region on a page (Struct from result.rb)
1288
+ class LayoutRegion
1289
+ attr_reader class_name: String
1290
+ attr_reader confidence: Float
1291
+ attr_reader bounding_box: ElementBoundingBox?
1292
+ attr_reader area_fraction: Float
1293
+
1294
+ def initialize: (class_name: String, confidence: Float, bounding_box: ElementBoundingBox?, area_fraction: Float) -> void
1295
+ def to_h: () -> Hash[Symbol, untyped]
1296
+ end
1297
+
1221
1298
  # Page content with text and extracted elements (Struct from result.rb)
1222
1299
  class PageContent
1223
1300
  attr_reader page_number: Integer
@@ -1226,8 +1303,9 @@ module Kreuzberg
1226
1303
  attr_reader images: Array[Image]?
1227
1304
  attr_reader hierarchy: PageHierarchy?
1228
1305
  attr_reader is_blank: bool?
1306
+ attr_reader layout_regions: Array[LayoutRegion]?
1229
1307
 
1230
- def initialize: (page_number: Integer, content: String, tables: Array[Table], images: Array[Image]?, hierarchy: PageHierarchy?, is_blank: bool?) -> void
1308
+ def initialize: (page_number: Integer, content: String, tables: Array[Table], images: Array[Image]?, hierarchy: PageHierarchy?, is_blank: bool?, layout_regions: Array[LayoutRegion]?) -> void
1231
1309
  def to_h: () -> Hash[Symbol, untyped]
1232
1310
  end
1233
1311
 
@@ -1483,6 +1561,10 @@ module Kreuzberg
1483
1561
  attr_reader quality_score: Float?
1484
1562
  attr_reader processing_warnings: Array[ProcessingWarning]?
1485
1563
  attr_reader annotations: Array[PdfAnnotation]?
1564
+ attr_reader uris: Array[uri_hash]?
1565
+ attr_reader children: Array[archive_entry_hash]?
1566
+ attr_reader llm_usage: Array[LlmUsage]?
1567
+ attr_reader structured_output: (Hash[String, untyped] | Array[untyped] | Integer | Float | String | bool | nil)
1486
1568
 
1487
1569
  # PDF annotation extracted from a document page (Struct from result.rb)
1488
1570
  class PdfAnnotation
@@ -1516,11 +1598,18 @@ module Kreuzberg
1516
1598
  def parse_element: (Hash[String, untyped] element_hash) -> ElementStruct
1517
1599
  def parse_element_coordinates: (Hash[String, untyped]? coordinates_data) -> ElementBoundingBox?
1518
1600
  def parse_ocr_elements: (Array[ocr_element_hash]? ocr_elements_data) -> Array[OcrElement]?
1601
+ def parse_layout_regions: (Array[untyped]? regions_data) -> Array[LayoutRegion]?
1602
+ def parse_element_bounding_box: (Hash[String, untyped]? bounding_box_data) -> ElementBoundingBox?
1519
1603
  def parse_page_hierarchy: (Hash[String, untyped]? hierarchy_data) -> PageHierarchy?
1520
1604
  def parse_djot_content: (Hash[String, untyped]? djot_data) -> DjotContent?
1521
1605
  def parse_document_structure: (Hash[String, untyped]? document_data) -> DocumentStructure?
1522
1606
  def parse_extracted_keywords: (Array[extracted_keyword_hash]? keywords_data) -> Array[ExtractedKeyword]?
1523
1607
  def parse_processing_warnings: (Array[processing_warning_hash]? warnings_data) -> Array[ProcessingWarning]
1608
+ def parse_uris: (Array[uri_hash]? uris_data) -> Array[uri_hash]?
1609
+ def build_uri: (Hash[String, untyped] u_hash) -> uri_hash
1610
+ def parse_children: (Array[untyped]? children_data) -> Array[archive_entry_hash]?
1611
+ def build_archive_entry: (Hash[String, untyped] c_hash) -> archive_entry_hash
1612
+ def parse_llm_usage: (Array[llm_usage_hash]? usage_data) -> Array[LlmUsage]?
1524
1613
  def get_value: (Hash[String | Symbol, untyped] hash, String key, ?untyped default) -> untyped
1525
1614
  def serialize_tables: () -> Array[table_hash]
1526
1615
  def serialize_chunks: () -> Array[chunk_hash]?
@@ -1742,6 +1831,9 @@ module Kreuzberg
1742
1831
 
1743
1832
  class EmbeddingError < Error
1744
1833
  end
1834
+
1835
+ class CancelledError < Error
1836
+ end
1745
1837
  end
1746
1838
 
1747
1839
  # Internal modules (prepended to Kreuzberg singleton)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kreuzberg
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.8.4
4
+ version: 4.9.0
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Na'aman Hirschfeld
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-04-13 00:00:00.000000000 Z
11
+ date: 2026-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.0'
89
+ version: '4.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.0'
96
+ version: '4.0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rubocop
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '1.8'
145
+ version: '2.0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '1.8'
152
+ version: '2.0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: yard
155
155
  requirement: !ruby/object:Gem::Requirement