xberg 1.3.6 → 1.3.7

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: 373be72a3be4413b8079b64a5d20f9e4f8bcfa22b5327df6f6ddd62ddf04ef23
4
- data.tar.gz: a2813d4cb97dcb9e2b27bac5d2c38c96191d7d091a8af2d7707c04a90f09162a
3
+ metadata.gz: 2f77e5d2925ccf8901431a3b6a158aa60383b336ec55df56e4ad18c155165903
4
+ data.tar.gz: e692c7fb23881c16ece726c9168615263a7aa6163e39120a302dfd5557718148
5
5
  SHA512:
6
- metadata.gz: 3e93240b868492075b88545185c827b5f79e4787b53502e216837c87b8ff15ed907166b5f5bc7414d32fac7f2a053bae95e30a3dc1daf890dfe70f22baf6ce07
7
- data.tar.gz: 4506aa954d3d5cf4f70535b1b4e44571ff02268896931520a2a2c7faf0b647cef567ce8aa4ef5f78c6f8f30bc9d09c55f373ba5d10b0ea0916655c2a0e78ab25
6
+ metadata.gz: ead85a3fe7860015ab6184cedcdbf9401fddcf59a332361d263b51e83a5325883034e5c23b0471a7482c7e0c5e0a9a47a32df8de92cc76efc04111333000f8cf
7
+ data.tar.gz: f679e028b8b550eee84e7f9a6ef06efe1730ed5cb3f525e04a252a08b1a04bc337a5753fd489c308e3cf0255780b0326ef0aa97fb23cecb1ded2c0cf5ed11127
@@ -1405,9 +1405,9 @@ dependencies = [
1405
1405
 
1406
1406
  [[package]]
1407
1407
  name = "crawlberg"
1408
- version = "1.10.2"
1408
+ version = "1.10.3"
1409
1409
  source = "registry+https://github.com/rust-lang/crates.io-index"
1410
- checksum = "de7772187c51e531fcf40756a70e9d2d64912cb3adcea2fc5ed82ef9f4bda142"
1410
+ checksum = "15043ca3b85e20585879e8d8933ea77c516cb6dfa8502c85c5f2e6c350e8226a"
1411
1411
  dependencies = [
1412
1412
  "ahash",
1413
1413
  "aho-corasick",
@@ -1450,7 +1450,7 @@ dependencies = [
1450
1450
  "thiserror 2.0.21",
1451
1451
  "tokio",
1452
1452
  "tokio-stream",
1453
- "toml 1.1.6+spec-1.1.0",
1453
+ "toml 1.1.8+spec-1.1.0",
1454
1454
  "tower",
1455
1455
  "tracing",
1456
1456
  "url",
@@ -1459,9 +1459,9 @@ dependencies = [
1459
1459
 
1460
1460
  [[package]]
1461
1461
  name = "crawlberg-robots"
1462
- version = "1.10.2"
1462
+ version = "1.10.3"
1463
1463
  source = "registry+https://github.com/rust-lang/crates.io-index"
1464
- checksum = "9d03618f7c8347091546ee5f4c497ea8b4f83e4dd2e66b5e4746ebf0a2cc1da9"
1464
+ checksum = "a0b2204ccbe52f63dc889618f08e3859411e5bd4e6c332cef4103c783e90caf5"
1465
1465
 
1466
1466
  [[package]]
1467
1467
  name = "crc32fast"
@@ -1862,9 +1862,9 @@ dependencies = [
1862
1862
 
1863
1863
  [[package]]
1864
1864
  name = "either"
1865
- version = "1.18.0"
1865
+ version = "1.19.0"
1866
1866
  source = "registry+https://github.com/rust-lang/crates.io-index"
1867
- checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34"
1867
+ checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be"
1868
1868
 
1869
1869
  [[package]]
1870
1870
  name = "email_address"
@@ -3903,9 +3903,9 @@ checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae"
3903
3903
 
3904
3904
  [[package]]
3905
3905
  name = "liter-llm"
3906
- version = "2.1.4"
3906
+ version = "2.2.0"
3907
3907
  source = "registry+https://github.com/rust-lang/crates.io-index"
3908
- checksum = "35e59e12c35c0f48d16fdd3864f8f4288914a934579214a1394584091af03561"
3908
+ checksum = "8638e8a77817d0debb8944de890ad736f80e1a46c2c53b8d75a303f59307fa68"
3909
3909
  dependencies = [
3910
3910
  "ahash",
3911
3911
  "arc-swap",
@@ -3934,7 +3934,7 @@ dependencies = [
3934
3934
  "thiserror 2.0.21",
3935
3935
  "tokio",
3936
3936
  "tokio-util",
3937
- "toml 1.1.6+spec-1.1.0",
3937
+ "toml 1.1.8+spec-1.1.0",
3938
3938
  "tower",
3939
3939
  "tower-http 0.7.1",
3940
3940
  "tracing",
@@ -4224,12 +4224,6 @@ dependencies = [
4224
4224
  "stable_deref_trait",
4225
4225
  ]
4226
4226
 
4227
- [[package]]
4228
- name = "memo-map"
4229
- version = "0.3.4"
4230
- source = "registry+https://github.com/rust-lang/crates.io-index"
4231
- checksum = "5449c8c750f1a07ea702bbd212bd999fceece9b3d1508b17023b3e174583124b"
4232
-
4233
4227
  [[package]]
4234
4228
  name = "micromap"
4235
4229
  version = "0.3.0"
@@ -4254,13 +4248,9 @@ dependencies = [
4254
4248
 
4255
4249
  [[package]]
4256
4250
  name = "minijinja"
4257
- version = "2.24.0"
4251
+ version = "3.0.0"
4258
4252
  source = "registry+https://github.com/rust-lang/crates.io-index"
4259
- checksum = "86886cf6dbf4e614b19c9a1eec9775f021869d7eadde0fc73921a81b90c9b4c9"
4260
- dependencies = [
4261
- "memo-map",
4262
- "serde",
4263
- ]
4253
+ checksum = "13345868cfa94eadafc067112ff29271380a820d5594d9ee6ba81a8d00ea5dc2"
4264
4254
 
4265
4255
  [[package]]
4266
4256
  name = "minimal-lexical"
@@ -6452,9 +6442,9 @@ dependencies = [
6452
6442
 
6453
6443
  [[package]]
6454
6444
  name = "serde_spanned"
6455
- version = "1.1.1"
6445
+ version = "1.1.2"
6456
6446
  source = "registry+https://github.com/rust-lang/crates.io-index"
6457
- checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"
6447
+ checksum = "4e7523beb55eece201a2356bee0bbca0d1ab466c14c07703b2e0ee6d42cb0c2c"
6458
6448
  dependencies = [
6459
6449
  "serde_core",
6460
6450
  ]
@@ -7158,7 +7148,7 @@ dependencies = [
7158
7148
  "cfg-expr",
7159
7149
  "heck",
7160
7150
  "pkg-config",
7161
- "toml 1.1.6+spec-1.1.0",
7151
+ "toml 1.1.8+spec-1.1.0",
7162
7152
  "version-compare",
7163
7153
  ]
7164
7154
 
@@ -7598,14 +7588,14 @@ dependencies = [
7598
7588
 
7599
7589
  [[package]]
7600
7590
  name = "toml"
7601
- version = "1.1.6+spec-1.1.0"
7591
+ version = "1.1.8+spec-1.1.0"
7602
7592
  source = "registry+https://github.com/rust-lang/crates.io-index"
7603
- checksum = "920602543f0911ab71da12c50d59701da54c196d1a2bf5cb4b75667f137a406a"
7593
+ checksum = "20489e00e4d8741d6be680764cc12e270655e375a20d1011e844a9c3379e678d"
7604
7594
  dependencies = [
7605
7595
  "indexmap",
7606
7596
  "serde_core",
7607
- "serde_spanned 1.1.1",
7608
- "toml_datetime 1.1.1+spec-1.1.0",
7597
+ "serde_spanned 1.1.2",
7598
+ "toml_datetime 1.1.2+spec-1.1.0",
7609
7599
  "toml_parser",
7610
7600
  "toml_writer",
7611
7601
  "winnow 1.0.4",
@@ -7622,9 +7612,9 @@ dependencies = [
7622
7612
 
7623
7613
  [[package]]
7624
7614
  name = "toml_datetime"
7625
- version = "1.1.1+spec-1.1.0"
7615
+ version = "1.1.2+spec-1.1.0"
7626
7616
  source = "registry+https://github.com/rust-lang/crates.io-index"
7627
- checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
7617
+ checksum = "2b86d767906c6c42421dcba507eb9d203e779497710a47782a224bb871653053"
7628
7618
  dependencies = [
7629
7619
  "serde_core",
7630
7620
  ]
@@ -7650,16 +7640,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
7650
7640
  checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614"
7651
7641
  dependencies = [
7652
7642
  "indexmap",
7653
- "toml_datetime 1.1.1+spec-1.1.0",
7643
+ "toml_datetime 1.1.2+spec-1.1.0",
7654
7644
  "toml_parser",
7655
7645
  "winnow 1.0.4",
7656
7646
  ]
7657
7647
 
7658
7648
  [[package]]
7659
7649
  name = "toml_parser"
7660
- version = "1.1.3+spec-1.1.0"
7650
+ version = "1.1.5+spec-1.1.0"
7661
7651
  source = "registry+https://github.com/rust-lang/crates.io-index"
7662
- checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56"
7652
+ checksum = "baa693a8032d7e1cada7d0041e96126df243179ff061456783ac7f12bda4744c"
7663
7653
  dependencies = [
7664
7654
  "winnow 1.0.4",
7665
7655
  ]
@@ -7672,9 +7662,9 @@ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801"
7672
7662
 
7673
7663
  [[package]]
7674
7664
  name = "toml_writer"
7675
- version = "1.1.2+spec-1.1.0"
7665
+ version = "1.1.3+spec-1.1.0"
7676
7666
  source = "registry+https://github.com/rust-lang/crates.io-index"
7677
- checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2"
7667
+ checksum = "06bdbd8cfc056b8d2e2e85f29b56a3bdbecb527cef81eb39e3e7b98af4652770"
7678
7668
 
7679
7669
  [[package]]
7680
7670
  name = "tower"
@@ -8009,9 +7999,9 @@ dependencies = [
8009
7999
 
8010
8000
  [[package]]
8011
8001
  name = "unhwp"
8012
- version = "0.14.0"
8002
+ version = "0.15.2"
8013
8003
  source = "registry+https://github.com/rust-lang/crates.io-index"
8014
- checksum = "c01e4f219a4bb51fd212a3dd8b10c68acf64dc1ea0315040ae14702ee5329663"
8004
+ checksum = "c068ba83bed698f530437fe034d4c684bac7c375f09030737eaa3131d1590f62"
8015
8005
  dependencies = [
8016
8006
  "cfb 0.15.0",
8017
8007
  "flate2",
@@ -8118,9 +8108,9 @@ dependencies = [
8118
8108
 
8119
8109
  [[package]]
8120
8110
  name = "unparser-shared"
8121
- version = "0.3.0"
8111
+ version = "0.5.0"
8122
8112
  source = "registry+https://github.com/rust-lang/crates.io-index"
8123
- checksum = "224ae26c5a48010f7ed3db7711962131218a7efb6169c8c5eb76c76270617371"
8113
+ checksum = "eb70246b07259d4efe9d08a70dfe2fcdc0fa77424e642a71e2e713706a4deb4c"
8124
8114
  dependencies = [
8125
8115
  "pulldown-cmark",
8126
8116
  "pulldown-cmark-to-cmark",
@@ -8932,9 +8922,9 @@ dependencies = [
8932
8922
 
8933
8923
  [[package]]
8934
8924
  name = "xberg"
8935
- version = "1.3.6"
8925
+ version = "1.3.7"
8936
8926
  source = "registry+https://github.com/rust-lang/crates.io-index"
8937
- checksum = "57d2df947d3e4fde1be1987a7de08bcf3c91581df896f0edd8834e4dd678a637"
8927
+ checksum = "232e7d3dc9538b4ae608350a405e4c784d74b60e9d9416a7473a5acdf417001a"
8938
8928
  dependencies = [
8939
8929
  "aes-gcm",
8940
8930
  "ahash",
@@ -9039,7 +9029,7 @@ dependencies = [
9039
9029
  "tokenizers 0.21.4",
9040
9030
  "tokenizers 0.23.2",
9041
9031
  "tokio",
9042
- "toml 1.1.6+spec-1.1.0",
9032
+ "toml 1.1.8+spec-1.1.0",
9043
9033
  "tower",
9044
9034
  "tower-http 0.7.1",
9045
9035
  "tracing",
@@ -9071,9 +9061,9 @@ dependencies = [
9071
9061
 
9072
9062
  [[package]]
9073
9063
  name = "xberg-candle-ocr"
9074
- version = "1.3.6"
9064
+ version = "1.3.7"
9075
9065
  source = "registry+https://github.com/rust-lang/crates.io-index"
9076
- checksum = "7093f2237b4c4ef94077094753245705237732ab84523ba67f0b396d0cc72149"
9066
+ checksum = "ae1351a11104c3059bf8b4b9b7b8fe257621682f9c89982061df28b089848cf6"
9077
9067
  dependencies = [
9078
9068
  "base64 0.23.1",
9079
9069
  "candle-core",
@@ -9093,9 +9083,9 @@ dependencies = [
9093
9083
 
9094
9084
  [[package]]
9095
9085
  name = "xberg-gliner"
9096
- version = "1.3.6"
9086
+ version = "1.3.7"
9097
9087
  source = "registry+https://github.com/rust-lang/crates.io-index"
9098
- checksum = "63baed263466fa587ae564444292896d09e6fefeca893d93a1cadf2773fc2cc5"
9088
+ checksum = "b14f2b9d5d706f09bf1194bedd52c243e6c7a4d3100ab0da9bc871d48a4e6c84"
9099
9089
  dependencies = [
9100
9090
  "getrandom 0.2.17",
9101
9091
  "getrandom 0.3.4",
@@ -9109,9 +9099,9 @@ dependencies = [
9109
9099
 
9110
9100
  [[package]]
9111
9101
  name = "xberg-libheif"
9112
- version = "1.3.6"
9102
+ version = "1.3.7"
9113
9103
  source = "registry+https://github.com/rust-lang/crates.io-index"
9114
- checksum = "f1b549ee6b28f908b55fa3599e1dbc80715e023d2f83d81b08804db122962646"
9104
+ checksum = "6e3b34dea39b568a057501b541005bf6680bec1f1ed6016afb642f45cd1ca9f6"
9115
9105
  dependencies = [
9116
9106
  "cfg-if",
9117
9107
  "enumn",
@@ -9122,9 +9112,9 @@ dependencies = [
9122
9112
 
9123
9113
  [[package]]
9124
9114
  name = "xberg-libwpd"
9125
- version = "1.3.6"
9115
+ version = "1.3.7"
9126
9116
  source = "registry+https://github.com/rust-lang/crates.io-index"
9127
- checksum = "3dac2967d079ed81644281c642e08a42b0674641dfa92bc6df5c7845d796e027"
9117
+ checksum = "96e3abd771d6746a23e948e034374ec600e77d0ab9c22a16a43cb5311389d3c9"
9128
9118
  dependencies = [
9129
9119
  "cc",
9130
9120
  "flate2",
@@ -9137,9 +9127,9 @@ dependencies = [
9137
9127
 
9138
9128
  [[package]]
9139
9129
  name = "xberg-native-pdf"
9140
- version = "1.3.6"
9130
+ version = "1.3.7"
9141
9131
  source = "registry+https://github.com/rust-lang/crates.io-index"
9142
- checksum = "ffdd6d2c0902e154e58696f95743d4abd033f76d53cbb4b92d02b297a2838b85"
9132
+ checksum = "3980162c1327d1d3aae9dff9f5be106b952b6c730b5b5c13592e6a0734d1bff9"
9143
9133
  dependencies = [
9144
9134
  "aes 0.9.3",
9145
9135
  "base64 0.23.1",
@@ -9184,9 +9174,9 @@ dependencies = [
9184
9174
 
9185
9175
  [[package]]
9186
9176
  name = "xberg-paddle-ocr"
9187
- version = "1.3.6"
9177
+ version = "1.3.7"
9188
9178
  source = "registry+https://github.com/rust-lang/crates.io-index"
9189
- checksum = "069cd566392de9d93b8d4085056cf8cd1ae634a2de8035cfb79542478bc96830"
9179
+ checksum = "e86d8d15e5bc2b39e1284be3f2fc219e551af5cc094a979cb36c599162ed4d5e"
9190
9180
  dependencies = [
9191
9181
  "geo-clipper",
9192
9182
  "geo-types",
@@ -9201,9 +9191,9 @@ dependencies = [
9201
9191
 
9202
9192
  [[package]]
9203
9193
  name = "xberg-pdfium-render"
9204
- version = "1.3.6"
9194
+ version = "1.3.7"
9205
9195
  source = "registry+https://github.com/rust-lang/crates.io-index"
9206
- checksum = "37381979f28e004fbfe18c60555464630469b88c497ec8eebe6ff05fa0ff7428"
9196
+ checksum = "a9a13d59452c14bfcb7d2228e0699bc7d492a4222742c1f11a3dec173033351e"
9207
9197
  dependencies = [
9208
9198
  "bitflags 2.13.2",
9209
9199
  "bytemuck",
@@ -9220,7 +9210,7 @@ dependencies = [
9220
9210
 
9221
9211
  [[package]]
9222
9212
  name = "xberg-rb"
9223
- version = "1.3.6"
9213
+ version = "1.3.7"
9224
9214
  dependencies = [
9225
9215
  "async-trait",
9226
9216
  "crawlberg",
@@ -9236,9 +9226,9 @@ dependencies = [
9236
9226
 
9237
9227
  [[package]]
9238
9228
  name = "xberg-tesseract"
9239
- version = "1.3.6"
9229
+ version = "1.3.7"
9240
9230
  source = "registry+https://github.com/rust-lang/crates.io-index"
9241
- checksum = "c0c60d13047bbbb9ee5489a89af093844e7138c9e7cf2aca6dad2a4a2fbecbfe"
9231
+ checksum = "a90867724dfbd9b3c8e58027949727b78b734cf95f20cba3ce29e05204da391f"
9242
9232
  dependencies = [
9243
9233
  "cc",
9244
9234
  "cmake",
@@ -1,11 +1,11 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:c27e6904867bcdf10220f00395fbf4b5c652b935305f84d03c851f2a5ed1ef8f
2
+ # alef:hash:a35074a20ca717ee54f07b153b49a9c727f639435558b33d857255e60e309542
3
3
  # To regenerate: alef generate
4
4
  # To verify freshness: alef verify
5
5
 
6
6
  [package]
7
7
  name = "xberg-rb"
8
- version = "1.3.6"
8
+ version = "1.3.7"
9
9
  edition = "2024"
10
10
  license = "MIT"
11
11
  description = "High-performance document intelligence library"
@@ -72,7 +72,7 @@ xml = ["xberg/xml"]
72
72
 
73
73
  [dependencies]
74
74
  async-trait = "0.1"
75
- crawlberg = { default-features = false, version = "1.10.2" }
75
+ crawlberg = { default-features = false, version = "1.10.3" }
76
76
  html-to-markdown-rs = { default-features = false, version = "3.17.2" }
77
77
  magnus = "0.9"
78
78
  rb-sys = ">=0.9.130, <0.10"
@@ -82,13 +82,13 @@ tokio = { version = "1", features = ["rt-multi-thread"] }
82
82
  tracing = "0.1"
83
83
 
84
84
  [target.'cfg(all(target_os = "macos", target_arch = "x86_64"))'.dependencies]
85
- xberg = { version = "1.3.6", default-features = false, features = ["macos-intel-target", "simd-utf8"] }
85
+ xberg = { version = "1.3.7", default-features = false, features = ["macos-intel-target", "simd-utf8"] }
86
86
 
87
87
  [target.'cfg(not(any(target_os = "windows", all(target_os = "macos", target_arch = "x86_64"))))'.dependencies]
88
- xberg = { version = "1.3.6", features = ["full", "pdf", "pdf-pdfium", "ocr", "paddle-ocr", "paddle-ocr-types", "layout-detection", "layout-types", "embeddings", "embedding-presets", "reranker", "reranker-presets", "sparse-embeddings", "sparse-embedding-presets", "late-interaction", "late-interaction-presets", "chunking", "keywords-yake", "keywords-rake", "language-detection", "html", "tree-sitter", "office", "email", "archives", "stopwords", "auto-rotate", "auto-rotate-types", "tokio-runtime", "api", "api-types", "mcp", "liter-llm", "quality", "svg", "transcription", "transcription-types", "classification", "captioning", "formula-recognition", "ner-onnx", "ner-llm", "diff", "markdown-footnotes", "redaction", "enrichment", "heuristics", "presets", "structured", "url-ingestion"] }
88
+ xberg = { version = "1.3.7", features = ["full", "pdf", "pdf-pdfium", "ocr", "paddle-ocr", "paddle-ocr-types", "layout-detection", "layout-types", "embeddings", "embedding-presets", "reranker", "reranker-presets", "sparse-embeddings", "sparse-embedding-presets", "late-interaction", "late-interaction-presets", "chunking", "keywords-yake", "keywords-rake", "language-detection", "html", "tree-sitter", "office", "email", "archives", "stopwords", "auto-rotate", "auto-rotate-types", "tokio-runtime", "api", "api-types", "mcp", "liter-llm", "quality", "svg", "transcription", "transcription-types", "classification", "captioning", "formula-recognition", "ner-onnx", "ner-llm", "diff", "markdown-footnotes", "redaction", "enrichment", "heuristics", "presets", "structured", "url-ingestion"] }
89
89
 
90
90
  [target.'cfg(target_os = "windows")'.dependencies]
91
- xberg = { version = "1.3.6", default-features = false, features = ["windows-gnu-target", "simd-utf8"] }
91
+ xberg = { version = "1.3.7", default-features = false, features = ["windows-gnu-target", "simd-utf8"] }
92
92
 
93
93
  # This crate deliberately does not use `[lints]` / `workspace = true`: its C-ABI /
94
94
  # PyO3 / napi / ext-php-rs / NIF boundary requires `unsafe` code, and the workspace's
@@ -1,5 +1,5 @@
1
1
  // This file is auto-generated by alef. DO NOT EDIT.
2
- // alef:hash:3751950d58564a09b72eb0e65f2f992e39f3dcd2cd851cd4493626ba6caef9a0
2
+ // alef:hash:d77ecc12b6f0752c5cec96b6f0b205562ea146737a08606f1b824d4cca7eff52
3
3
  // Re-generate with: alef generate
4
4
  #![allow(dead_code, unused_imports, unused_variables)]
5
5
  #![allow(
@@ -11154,6 +11154,7 @@ pub struct ExtractedDocument {
11154
11154
  redaction_report: Option<RedactionReport>,
11155
11155
  formulas: Vec<Formula>,
11156
11156
  form_fields: Vec<PdfFormField>,
11157
+ ocr_page_failures: Option<Vec<OcrPageFailure>>,
11157
11158
  }
11158
11159
 
11159
11160
  unsafe impl IntoValueFromNative for ExtractedDocument {}
@@ -11506,6 +11507,15 @@ impl ExtractedDocument {
11506
11507
  })?,
11507
11508
  None => Default::default(),
11508
11509
  },
11510
+ ocr_page_failures: match kwargs.get(ruby.to_symbol("ocr_page_failures")).filter(|v| !v.is_nil()) {
11511
+ Some(v) => Some(<Vec<OcrPageFailure>>::try_convert(v).map_err(|e| {
11512
+ magnus::Error::new(
11513
+ unsafe { magnus::Ruby::get_unchecked() }.exception_type_error(),
11514
+ format!("invalid value for `ocr_page_failures`: {}", e),
11515
+ )
11516
+ })?),
11517
+ None => None,
11518
+ },
11509
11519
  })
11510
11520
  }
11511
11521
 
@@ -11644,6 +11654,10 @@ impl ExtractedDocument {
11644
11654
  self.form_fields.clone()
11645
11655
  }
11646
11656
 
11657
+ fn ocr_page_failures(&self) -> Option<Vec<OcrPageFailure>> {
11658
+ self.ocr_page_failures.clone()
11659
+ }
11660
+
11647
11661
  #[allow(clippy::should_implement_trait)]
11648
11662
  fn to_s(&self) -> String {
11649
11663
  self.content.clone()
@@ -23264,6 +23278,99 @@ impl OcrMetadata {
23264
23278
  }
23265
23279
  }
23266
23280
 
23281
+ #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
23282
+ #[serde(default)]
23283
+ #[magnus::wrap(class = "Xberg::OcrPageFailure")]
23284
+ pub struct OcrPageFailure {
23285
+ page: u32,
23286
+ error: String,
23287
+ recovered: bool,
23288
+ }
23289
+
23290
+ unsafe impl IntoValueFromNative for OcrPageFailure {}
23291
+
23292
+ impl magnus::TryConvert for OcrPageFailure {
23293
+ fn try_convert(val: magnus::Value) -> Result<Self, magnus::Error> {
23294
+ if let Ok(r) = <&OcrPageFailure as magnus::TryConvert>::try_convert(val) {
23295
+ return Ok(r.clone());
23296
+ }
23297
+ let json_str: String = if let Ok(s) = <String as magnus::TryConvert>::try_convert(val) {
23298
+ s
23299
+ } else {
23300
+ val.funcall::<_, _, String>("to_json", ()).map_err(|e| {
23301
+ magnus::Error::new(
23302
+ unsafe { magnus::Ruby::get_unchecked() }.exception_type_error(),
23303
+ format!("no implicit conversion into OcrPageFailure: {}", e),
23304
+ )
23305
+ })?
23306
+ };
23307
+ serde_json::from_str::<OcrPageFailure>(&json_str).map_err(|e| {
23308
+ magnus::Error::new(
23309
+ unsafe { magnus::Ruby::get_unchecked() }.exception_type_error(),
23310
+ format!("failed to deserialize OcrPageFailure: {}", e),
23311
+ )
23312
+ })
23313
+ }
23314
+ }
23315
+
23316
+ unsafe impl TryConvertOwned for OcrPageFailure {}
23317
+
23318
+ impl Default for OcrPageFailure {
23319
+ fn default() -> Self {
23320
+ xberg::OcrPageFailure::default().into()
23321
+ }
23322
+ }
23323
+
23324
+ impl OcrPageFailure {
23325
+ fn new(args: &[magnus::Value]) -> Result<Self, magnus::Error> {
23326
+ let ruby = unsafe { magnus::Ruby::get_unchecked() };
23327
+ let args = magnus::scan_args::scan_args::<(), (Option<magnus::RHash>,), (), (), (), ()>(args)?;
23328
+ let (kwargs_opt,) = args.optional;
23329
+ let kwargs = kwargs_opt.unwrap_or_else(|| ruby.hash_new());
23330
+ Ok(Self {
23331
+ page: match kwargs.get(ruby.to_symbol("page")) {
23332
+ Some(v) => u32::try_convert(v).map_err(|e| {
23333
+ magnus::Error::new(
23334
+ unsafe { magnus::Ruby::get_unchecked() }.exception_type_error(),
23335
+ format!("invalid value for `page`: {}", e),
23336
+ )
23337
+ })?,
23338
+ None => Default::default(),
23339
+ },
23340
+ error: match kwargs.get(ruby.to_symbol("error")) {
23341
+ Some(v) => String::try_convert(v).map_err(|e| {
23342
+ magnus::Error::new(
23343
+ unsafe { magnus::Ruby::get_unchecked() }.exception_type_error(),
23344
+ format!("invalid value for `error`: {}", e),
23345
+ )
23346
+ })?,
23347
+ None => Default::default(),
23348
+ },
23349
+ recovered: match kwargs.get(ruby.to_symbol("recovered")) {
23350
+ Some(v) => bool::try_convert(v).map_err(|e| {
23351
+ magnus::Error::new(
23352
+ unsafe { magnus::Ruby::get_unchecked() }.exception_type_error(),
23353
+ format!("invalid value for `recovered`: {}", e),
23354
+ )
23355
+ })?,
23356
+ None => Default::default(),
23357
+ },
23358
+ })
23359
+ }
23360
+
23361
+ fn page(&self) -> u32 {
23362
+ self.page
23363
+ }
23364
+
23365
+ fn error(&self) -> String {
23366
+ self.error.clone()
23367
+ }
23368
+
23369
+ fn recovered(&self) -> bool {
23370
+ self.recovered
23371
+ }
23372
+ }
23373
+
23267
23374
  #[derive(Clone, Debug, serde::Serialize)]
23268
23375
  #[magnus::wrap(class = "Xberg::OcrPipelineConfig")]
23269
23376
  pub struct OcrPipelineConfig {
@@ -50369,6 +50476,7 @@ impl From<ExtractedDocument> for xberg::ExtractedDocument {
50369
50476
  __result.redaction_report = val.redaction_report.map(Into::into);
50370
50477
  __result.formulas = val.formulas.into_iter().map(Into::into).collect();
50371
50478
  __result.form_fields = val.form_fields.into_iter().map(Into::into).collect();
50479
+ __result.ocr_page_failures = val.ocr_page_failures.map(|v| v.into_iter().map(Into::into).collect());
50372
50480
  __result
50373
50481
  }
50374
50482
  }
@@ -50417,6 +50525,7 @@ impl From<xberg::ExtractedDocument> for ExtractedDocument {
50417
50525
  redaction_report: val.redaction_report.map(Into::into),
50418
50526
  formulas: val.formulas.into_iter().map(Into::into).collect(),
50419
50527
  form_fields: val.form_fields.into_iter().map(Into::into).collect(),
50528
+ ocr_page_failures: val.ocr_page_failures.map(|v| v.into_iter().map(Into::into).collect()),
50420
50529
  }
50421
50530
  }
50422
50531
  }
@@ -52590,6 +52699,28 @@ impl From<xberg::OcrMetadata> for OcrMetadata {
52590
52699
  }
52591
52700
  }
52592
52701
 
52702
+ #[allow(clippy::needless_update)]
52703
+ impl From<OcrPageFailure> for xberg::OcrPageFailure {
52704
+ fn from(val: OcrPageFailure) -> Self {
52705
+ Self {
52706
+ page: val.page,
52707
+ error: val.error,
52708
+ recovered: val.recovered,
52709
+ ..Default::default()
52710
+ }
52711
+ }
52712
+ }
52713
+
52714
+ impl From<xberg::OcrPageFailure> for OcrPageFailure {
52715
+ fn from(val: xberg::OcrPageFailure) -> Self {
52716
+ Self {
52717
+ page: val.page,
52718
+ error: val.error.to_string(),
52719
+ recovered: val.recovered,
52720
+ }
52721
+ }
52722
+ }
52723
+
52593
52724
  #[allow(clippy::useless_conversion)]
52594
52725
  impl From<OcrPipelineConfig> for xberg::OcrPipelineConfig {
52595
52726
  fn from(val: OcrPipelineConfig) -> Self {
@@ -59145,6 +59276,8 @@ fn ruby_init(ruby: &Ruby) -> Result<(), Error> {
59145
59276
 
59146
59277
  class.define_method("form_fields", method!(ExtractedDocument::form_fields, 0))?;
59147
59278
 
59279
+ class.define_method("ocr_page_failures", method!(ExtractedDocument::ocr_page_failures, 0))?;
59280
+
59148
59281
  class.define_method("to_s", method!(ExtractedDocument::to_s, 0))?;
59149
59282
 
59150
59283
  let class = module.define_class("ExtractedImage", ruby.class_object())?;
@@ -60725,6 +60858,16 @@ fn ruby_init(ruby: &Ruby) -> Result<(), Error> {
60725
60858
 
60726
60859
  class.define_method("table_cols", method!(OcrMetadata::table_cols, 0))?;
60727
60860
 
60861
+ let class = module.define_class("OcrPageFailure", ruby.class_object())?;
60862
+
60863
+ class.define_singleton_method("new", function!(OcrPageFailure::new, -1))?;
60864
+
60865
+ class.define_method("page", method!(OcrPageFailure::page, 0))?;
60866
+
60867
+ class.define_method("error", method!(OcrPageFailure::error, 0))?;
60868
+
60869
+ class.define_method("recovered", method!(OcrPageFailure::recovered, 0))?;
60870
+
60728
60871
  let class = module.define_class("OcrPipelineConfig", ruby.class_object())?;
60729
60872
 
60730
60873
  class.define_singleton_method("new", function!(OcrPipelineConfig::new, -1))?;
data/lib/xberg/version.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:988034bb9172ee9a4ecaa49221da1ceed7f562d9d0ef1192f4a91b54dfed0ed1
2
+ # alef:hash:0687e037476da4ba7e18fe1957eb56d2d154c61c20f178f4c8ee9e1cc7d090c2
3
3
  # To regenerate: alef generate
4
4
  # To verify freshness: alef verify
5
5
  # frozen_string_literal: true
6
6
 
7
7
  module Xberg
8
8
  ## The version string for this package.
9
- VERSION = "1.3.6"
9
+ VERSION = "1.3.7"
10
10
  end
data/sig/types.rbs CHANGED
@@ -1,5 +1,5 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:d01bd27d5fa9368a18dda14ba966abab79e6f319668303eaa72b202e75e41946
2
+ # alef:hash:ebe306889747c0ee64b78fefcf465898aca7871336bda3ba3caa4406a424946d
3
3
  # To regenerate: alef generate
4
4
  # To verify freshness: alef verify
5
5
 
@@ -906,8 +906,9 @@ def initialize: (sheets: Array[ExcelSheet], metadata: Hash[String, String], ?rev
906
906
  attr_reader redaction_report: RedactionReport?
907
907
  attr_reader formulas: Array[Formula]
908
908
  attr_reader form_fields: Array[PdfFormField]
909
+ attr_reader ocr_page_failures: Array[OcrPageFailure]?
909
910
 
910
- def initialize: (?content: String, ?mime_type: String, ?metadata: Metadata, ?extraction_method: enum_ExtractionMethod, ?tables: Array[Table], ?counts: DocumentCounts, ?detected_languages: Array[String], ?detected_language_confidences: Array[LanguageConfidence], ?chunks: Array[Chunk], ?images: Array[ExtractedImage], ?pages: Array[PageContent], ?elements: Array[Element], ?djot_content: DjotContent, ?ocr_elements: Array[OcrElement], ?document: DocumentStructure, ?extracted_keywords: Array[Keyword], ?quality_score: Float, ?processing_warnings: Array[ProcessingWarning], ?annotations: Array[PdfAnnotation], ?children: Array[ArchiveEntry], ?uris: Array[ExtractedUri], ?revisions: Array[DocumentRevision], ?structured_output: String, ?code_intelligence: String, ?llm_usage: Array[LlmUsage], ?entities: Array[Entity], ?summary: DocumentSummary, ?extraction_confidence: ExtractionConfidence, ?translation: Translation, ?page_classifications: Array[PageClassification], ?redaction_report: RedactionReport, ?formulas: Array[Formula], ?form_fields: Array[PdfFormField]) -> void
911
+ def initialize: (?content: String, ?mime_type: String, ?metadata: Metadata, ?extraction_method: enum_ExtractionMethod, ?tables: Array[Table], ?counts: DocumentCounts, ?detected_languages: Array[String], ?detected_language_confidences: Array[LanguageConfidence], ?chunks: Array[Chunk], ?images: Array[ExtractedImage], ?pages: Array[PageContent], ?elements: Array[Element], ?djot_content: DjotContent, ?ocr_elements: Array[OcrElement], ?document: DocumentStructure, ?extracted_keywords: Array[Keyword], ?quality_score: Float, ?processing_warnings: Array[ProcessingWarning], ?annotations: Array[PdfAnnotation], ?children: Array[ArchiveEntry], ?uris: Array[ExtractedUri], ?revisions: Array[DocumentRevision], ?structured_output: String, ?code_intelligence: String, ?llm_usage: Array[LlmUsage], ?entities: Array[Entity], ?summary: DocumentSummary, ?extraction_confidence: ExtractionConfidence, ?translation: Translation, ?page_classifications: Array[PageClassification], ?redaction_report: RedactionReport, ?formulas: Array[Formula], ?form_fields: Array[PdfFormField], ?ocr_page_failures: Array[OcrPageFailure]) -> void
911
912
  end
912
913
 
913
914
  class ExtractedImage
@@ -1769,6 +1770,14 @@ def initialize: (?content: String, ?mime_type: String, ?metadata: Hash[String, S
1769
1770
  def initialize: (?language: String, ?psm: Integer, ?output_format: String, ?table_count: Integer, ?table_rows: Integer, ?table_cols: Integer) -> void
1770
1771
  end
1771
1772
 
1773
+ class OcrPageFailure
1774
+ attr_reader page: Integer
1775
+ attr_reader error: String
1776
+ attr_reader recovered: bool
1777
+
1778
+ def initialize: (?page: Integer, ?error: String, ?recovered: bool) -> void
1779
+ end
1780
+
1772
1781
  class OcrPipelineConfig
1773
1782
  attr_reader stages: Array[OcrPipelineStage]
1774
1783
  attr_reader quality_thresholds: OcrQualityThresholds
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xberg
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.6
4
+ version: 1.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Na'aman Hirschfeld <naaman@xberg.io>
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-10-07 00:00:00.000000000 Z
11
+ date: 2026-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rb_sys