xberg 1.2.1 → 1.2.3

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: ce4588ef439778ddf2060e488462a038b2ccc513f2619c86e88645f56d159d0c
4
- data.tar.gz: 748449006865da7f834e90723893aca57b72e59791d5e8007d5195e6566e8ce7
3
+ metadata.gz: 989f5bd0acadb3139d2455c2ddf5b13f3a83fab12154931f9984336fc651d76a
4
+ data.tar.gz: 0637c2c5310a5fde5e2422a63e9f55b7ea35b5f13b45f51e86a82edfcdb54a38
5
5
  SHA512:
6
- metadata.gz: 512fe7cd190a243b4dc0ad49efd9f5ff0f9a0646df5bd6d6160c037be9b27c995fb44e0c23dd175d5e8d5dc82ecbd4d54927357d397c846bae59321038fc931e
7
- data.tar.gz: db8a6acffb2c1786d843bf117670921c0f5b5599d2158d455364f25fdfc6c285bf2c9ef45e2fd5a110d509e0f130f849d9146284da454908ed6a79286751a8b7
6
+ metadata.gz: f679cf78f35eb783f6af4d24fe995a1fd057e70f00599a0b2b40a50e87fa7b57053e409ba4bdcbe7cfd76244faec34d12c2598e4a6b7744198af2e85ae672022
7
+ data.tar.gz: bba02507a604e724a93403d67417beae4214536b10b9049573a831f4fc0d0b3e03045a1ff763f3682ce341a39826327212ca44a74a6fcb38a4336ae12bda4be2
@@ -1350,7 +1350,7 @@ dependencies = [
1350
1350
  "finl_unicode",
1351
1351
  "jetscii",
1352
1352
  "phf 0.13.1",
1353
- "phf_codegen",
1353
+ "phf_codegen 0.13.1",
1354
1354
  "rustc-hash",
1355
1355
  "smallvec",
1356
1356
  "typed-arena",
@@ -1509,9 +1509,9 @@ dependencies = [
1509
1509
 
1510
1510
  [[package]]
1511
1511
  name = "crawlberg"
1512
- version = "1.6.3"
1512
+ version = "1.7.0"
1513
1513
  source = "registry+https://github.com/rust-lang/crates.io-index"
1514
- checksum = "9c2732b5e15b3cea849e371834d6394d4c38e08d24012cd4400d76a2d6dfcfb5"
1514
+ checksum = "06c10f3514c8ab7b980f5c65956c0c5a81daea9343876a3506a628bb11280f3b"
1515
1515
  dependencies = [
1516
1516
  "ahash",
1517
1517
  "aho-corasick",
@@ -3057,9 +3057,9 @@ checksum = "c9356095b4b41197bba32173600e1582792cda618f65d12f68e2e77d273413c5"
3057
3057
 
3058
3058
  [[package]]
3059
3059
  name = "html-to-markdown-rs"
3060
- version = "3.12.4"
3060
+ version = "3.14.0"
3061
3061
  source = "registry+https://github.com/rust-lang/crates.io-index"
3062
- checksum = "b23a554b38b32ad84fb055c794ca2e36824a15a43efda8e549766e3a99c80a9b"
3062
+ checksum = "250c27ba332993f6972a03b1b7243fe087a94c3401318015fe0dde5e8ea1ccef"
3063
3063
  dependencies = [
3064
3064
  "ahash",
3065
3065
  "astral-tl",
@@ -3080,12 +3080,13 @@ dependencies = [
3080
3080
 
3081
3081
  [[package]]
3082
3082
  name = "html5ever"
3083
- version = "0.39.0"
3083
+ version = "0.40.1"
3084
3084
  source = "registry+https://github.com/rust-lang/crates.io-index"
3085
- checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8"
3085
+ checksum = "456a1a377e608e555d22ddab27ac0114bc7a7b4199078108e34c2aeae6c9b130"
3086
3086
  dependencies = [
3087
3087
  "log",
3088
3088
  "markup5ever",
3089
+ "memchr",
3089
3090
  ]
3090
3091
 
3091
3092
  [[package]]
@@ -4000,9 +4001,9 @@ checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae"
4000
4001
 
4001
4002
  [[package]]
4002
4003
  name = "liter-llm"
4003
- version = "2.0.1"
4004
+ version = "2.0.2"
4004
4005
  source = "registry+https://github.com/rust-lang/crates.io-index"
4005
- checksum = "af953eb2f67fcf14a1c7602b6ff3939f797e477701efbcc15a6005b4c8b8098a"
4006
+ checksum = "6e87bea9e3d8b965ce969925043918b51efc268e449ac2930f1a7f27b6f99d54"
4006
4007
  dependencies = [
4007
4008
  "ahash",
4008
4009
  "arc-swap",
@@ -4213,9 +4214,9 @@ dependencies = [
4213
4214
 
4214
4215
  [[package]]
4215
4216
  name = "markup5ever"
4216
- version = "0.39.0"
4217
+ version = "0.40.0"
4217
4218
  source = "registry+https://github.com/rust-lang/crates.io-index"
4218
- checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de"
4219
+ checksum = "0ab3dc68ac4a0f5719e560136778c1ee716e296030d75dbd4484e37e39e3a842"
4219
4220
  dependencies = [
4220
4221
  "log",
4221
4222
  "tendril",
@@ -5183,6 +5184,16 @@ dependencies = [
5183
5184
  "phf_shared 0.13.1",
5184
5185
  ]
5185
5186
 
5187
+ [[package]]
5188
+ name = "phf_codegen"
5189
+ version = "0.14.0"
5190
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5191
+ checksum = "41b585a510fb76fdebead6897982ef2a03a21d8e6cbcca904999742a4afc6ffe"
5192
+ dependencies = [
5193
+ "phf_generator 0.14.0",
5194
+ "phf_shared 0.14.0",
5195
+ ]
5196
+
5186
5197
  [[package]]
5187
5198
  name = "phf_generator"
5188
5199
  version = "0.13.1"
@@ -5562,9 +5573,9 @@ dependencies = [
5562
5573
 
5563
5574
  [[package]]
5564
5575
  name = "quinn"
5565
- version = "0.11.11"
5576
+ version = "0.11.12"
5566
5577
  source = "registry+https://github.com/rust-lang/crates.io-index"
5567
- checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8"
5578
+ checksum = "4051e23e9185c255a7e33ef59cdbca87a22d359052eecd22fc6b901fb37d9d11"
5568
5579
  dependencies = [
5569
5580
  "bytes",
5570
5581
  "cfg_aliases",
@@ -5582,9 +5593,9 @@ dependencies = [
5582
5593
 
5583
5594
  [[package]]
5584
5595
  name = "quinn-proto"
5585
- version = "0.11.17"
5596
+ version = "0.11.18"
5586
5597
  source = "registry+https://github.com/rust-lang/crates.io-index"
5587
- checksum = "04759210543be93709136e28212294a659ef5001836ff4eab4d663e4529bba83"
5598
+ checksum = "a9746dbde176634f4f2f1faf2404e30a31b2bc1e9cafb5329c95d8177a18c9fc"
5588
5599
  dependencies = [
5589
5600
  "aws-lc-rs",
5590
5601
  "bytes",
@@ -6115,9 +6126,9 @@ dependencies = [
6115
6126
 
6116
6127
  [[package]]
6117
6128
  name = "rmcp"
6118
- version = "3.3.0"
6129
+ version = "3.4.0"
6119
6130
  source = "registry+https://github.com/rust-lang/crates.io-index"
6120
- checksum = "b88db56b8ae316560e9e868b6b978ea940f27cb883323fc90e07435e44158f5c"
6131
+ checksum = "b23c62fe489ac1d401ab32688cfacac3737a8978dc3343e5361464c7724fd3cb"
6121
6132
  dependencies = [
6122
6133
  "async-trait",
6123
6134
  "base64 0.23.1",
@@ -6147,9 +6158,9 @@ dependencies = [
6147
6158
 
6148
6159
  [[package]]
6149
6160
  name = "rmcp-macros"
6150
- version = "3.3.0"
6161
+ version = "3.4.0"
6151
6162
  source = "registry+https://github.com/rust-lang/crates.io-index"
6152
- checksum = "873b730df6f0a9b74b13eb514e0dca4c2db0d8b68b74af98a2e9bf3f9d436585"
6163
+ checksum = "cd740c45d66ceb87e5579082abc27bd771665e464e9660a17a048c721b2a6025"
6153
6164
  dependencies = [
6154
6165
  "darling 0.24.1",
6155
6166
  "proc-macro2",
@@ -6284,9 +6295,9 @@ dependencies = [
6284
6295
 
6285
6296
  [[package]]
6286
6297
  name = "rustls"
6287
- version = "0.23.44"
6298
+ version = "0.23.45"
6288
6299
  source = "registry+https://github.com/rust-lang/crates.io-index"
6289
- checksum = "6725596c3f2c3a0aef021139e145d4eafe314a6623e4680ca83852b2c67ab2ba"
6300
+ checksum = "0d41d731c7d2f962d1ccc364cec258de3c0e93b38c2fb3ba97ac74513048d634"
6290
6301
  dependencies = [
6291
6302
  "aws-lc-rs",
6292
6303
  "log",
@@ -7004,24 +7015,24 @@ dependencies = [
7004
7015
 
7005
7016
  [[package]]
7006
7017
  name = "string_cache"
7007
- version = "0.9.0"
7018
+ version = "0.11.0"
7008
7019
  source = "registry+https://github.com/rust-lang/crates.io-index"
7009
- checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901"
7020
+ checksum = "ffa8a5dbe8b3f0bbe29d4c3225daafaeead63afdc1b65fc4c01a1384166038e6"
7010
7021
  dependencies = [
7011
7022
  "new_debug_unreachable",
7012
7023
  "parking_lot",
7013
- "phf_shared 0.13.1",
7024
+ "phf_shared 0.14.0",
7014
7025
  "precomputed-hash",
7015
7026
  ]
7016
7027
 
7017
7028
  [[package]]
7018
7029
  name = "string_cache_codegen"
7019
- version = "0.6.1"
7030
+ version = "0.11.2"
7020
7031
  source = "registry+https://github.com/rust-lang/crates.io-index"
7021
- checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69"
7032
+ checksum = "928dcdf75e47626b3617a976ec205d9f057584c371c1f23b782129268d0e6edc"
7022
7033
  dependencies = [
7023
- "phf_generator 0.13.1",
7024
- "phf_shared 0.13.1",
7034
+ "phf_generator 0.14.0",
7035
+ "phf_shared 0.14.0",
7025
7036
  "proc-macro2",
7026
7037
  "quote",
7027
7038
  ]
@@ -8093,9 +8104,9 @@ checksum = "ca0d1bf6fdd806e43ae5198f82f527056d359def39e54e67a0f478ac09dac081"
8093
8104
 
8094
8105
  [[package]]
8095
8106
  name = "tree-sitter-language-pack"
8096
- version = "1.19.1"
8107
+ version = "1.20.0"
8097
8108
  source = "registry+https://github.com/rust-lang/crates.io-index"
8098
- checksum = "a2ef727ce76f0f355a9e8a22ffa11163c61aa8b2b3bbb66a748d3d7ce309343f"
8109
+ checksum = "a360d1c9fd92fc96d9802ce77422d1a90d59d2ec767ef2c0833691f9ac86689c"
8099
8110
  dependencies = [
8100
8111
  "ahash",
8101
8112
  "cc",
@@ -8678,12 +8689,12 @@ dependencies = [
8678
8689
 
8679
8690
  [[package]]
8680
8691
  name = "web_atoms"
8681
- version = "0.2.6"
8692
+ version = "0.3.0"
8682
8693
  source = "registry+https://github.com/rust-lang/crates.io-index"
8683
- checksum = "ba8b815c1b593dc0baf78dd0f4fc8fdb2de53198fb1163738093e9a311c33fb3"
8694
+ checksum = "7572660c8890448ba236b7376f27e389c6a7e1c70195622faced601f855c0ada"
8684
8695
  dependencies = [
8685
- "phf 0.13.1",
8686
- "phf_codegen",
8696
+ "phf 0.14.0",
8697
+ "phf_codegen 0.14.0",
8687
8698
  "string_cache",
8688
8699
  "string_cache_codegen",
8689
8700
  ]
@@ -9118,9 +9129,9 @@ dependencies = [
9118
9129
 
9119
9130
  [[package]]
9120
9131
  name = "xberg"
9121
- version = "1.2.1"
9132
+ version = "1.2.3"
9122
9133
  source = "registry+https://github.com/rust-lang/crates.io-index"
9123
- checksum = "893916de57598df822ffa74d39881fda69c2f98ef8b842f7c5753d6198c86d49"
9134
+ checksum = "aca537281dda6883c8eb49851f9364da24736f9be26ac82f59158b35c051e419"
9124
9135
  dependencies = [
9125
9136
  "aes-gcm",
9126
9137
  "ahash",
@@ -9256,9 +9267,9 @@ dependencies = [
9256
9267
 
9257
9268
  [[package]]
9258
9269
  name = "xberg-candle-ocr"
9259
- version = "1.2.1"
9270
+ version = "1.2.3"
9260
9271
  source = "registry+https://github.com/rust-lang/crates.io-index"
9261
- checksum = "88335373f4a8c81939210199b0010d256881ba9e9e93f8220fd1a4832a383a09"
9272
+ checksum = "09627eeb6d9b456484bd72a0a635cbc7b4d9580ce7f9f9efe064ed90baf28eaa"
9262
9273
  dependencies = [
9263
9274
  "base64 0.23.1",
9264
9275
  "candle-core",
@@ -9278,9 +9289,9 @@ dependencies = [
9278
9289
 
9279
9290
  [[package]]
9280
9291
  name = "xberg-gliner"
9281
- version = "1.2.1"
9292
+ version = "1.2.3"
9282
9293
  source = "registry+https://github.com/rust-lang/crates.io-index"
9283
- checksum = "3bc7ad40b8e2f8eb4711072ac1690e1f60eb5f08029ce56fc5866122b6dd2af2"
9294
+ checksum = "965a98b706f10f8c192365b75518ebe3b2166dbcbe322864b99ebbcf0726252e"
9284
9295
  dependencies = [
9285
9296
  "getrandom 0.2.17",
9286
9297
  "getrandom 0.3.4",
@@ -9294,9 +9305,9 @@ dependencies = [
9294
9305
 
9295
9306
  [[package]]
9296
9307
  name = "xberg-libheif"
9297
- version = "1.2.1"
9308
+ version = "1.2.3"
9298
9309
  source = "registry+https://github.com/rust-lang/crates.io-index"
9299
- checksum = "c59a519cca7e9b4824f83a8c5728471004a185017c5030f3213434b18a9c3789"
9310
+ checksum = "172c824a0f85039ec986733102d56d6f048e8eb74f30980d56c08d605dbcd17d"
9300
9311
  dependencies = [
9301
9312
  "cfg-if",
9302
9313
  "enumn",
@@ -9307,9 +9318,9 @@ dependencies = [
9307
9318
 
9308
9319
  [[package]]
9309
9320
  name = "xberg-libwpd"
9310
- version = "1.2.1"
9321
+ version = "1.2.3"
9311
9322
  source = "registry+https://github.com/rust-lang/crates.io-index"
9312
- checksum = "d7c94bf21ae9662bbe87b153332996456dbf4a3c6475d08abf22dfc7f9a30e57"
9323
+ checksum = "66022454ab9d5a0b6bdf6b7406a8867bd74d1e217f888ac2128f557448291dc8"
9313
9324
  dependencies = [
9314
9325
  "cc",
9315
9326
  "flate2",
@@ -9322,9 +9333,9 @@ dependencies = [
9322
9333
 
9323
9334
  [[package]]
9324
9335
  name = "xberg-native-pdf"
9325
- version = "1.2.1"
9336
+ version = "1.2.3"
9326
9337
  source = "registry+https://github.com/rust-lang/crates.io-index"
9327
- checksum = "4cb1d58c548a876beaa669ae0bcd9e39bce11e2be2345260b0f63fdb40089920"
9338
+ checksum = "e79346593833edc04f81cb05d650208b66daa98baf4c5f96a7cd86df4a1137ae"
9328
9339
  dependencies = [
9329
9340
  "aes 0.9.3",
9330
9341
  "base64 0.23.1",
@@ -9369,9 +9380,9 @@ dependencies = [
9369
9380
 
9370
9381
  [[package]]
9371
9382
  name = "xberg-paddle-ocr"
9372
- version = "1.2.1"
9383
+ version = "1.2.3"
9373
9384
  source = "registry+https://github.com/rust-lang/crates.io-index"
9374
- checksum = "107245557900bb366606afebfd5e565ca5b9aa84229eb26d2b0c1ccf810c32ac"
9385
+ checksum = "dab4faf4bbe08017a80ef8b8f8799c72f819911f422a36df24d460c1f31e5985"
9375
9386
  dependencies = [
9376
9387
  "geo-clipper",
9377
9388
  "geo-types",
@@ -9386,7 +9397,7 @@ dependencies = [
9386
9397
 
9387
9398
  [[package]]
9388
9399
  name = "xberg-rb"
9389
- version = "1.2.1"
9400
+ version = "1.2.3"
9390
9401
  dependencies = [
9391
9402
  "async-trait",
9392
9403
  "crawlberg",
@@ -9402,9 +9413,9 @@ dependencies = [
9402
9413
 
9403
9414
  [[package]]
9404
9415
  name = "xberg-tesseract"
9405
- version = "1.2.1"
9416
+ version = "1.2.3"
9406
9417
  source = "registry+https://github.com/rust-lang/crates.io-index"
9407
- checksum = "5e510fcedd6bc47d96c33f2ac2d5f348cca8dafa7f68de5183d01a1390de062d"
9418
+ checksum = "cebf7f08e792cc2c7306291c9504cb3a0f59fd2cdfd4c6fdc74327aeaa85b9f6"
9408
9419
  dependencies = [
9409
9420
  "cc",
9410
9421
  "cmake",
@@ -9728,9 +9739,9 @@ dependencies = [
9728
9739
 
9729
9740
  [[package]]
9730
9741
  name = "zlib-rs"
9731
- version = "0.6.7"
9742
+ version = "0.6.8"
9732
9743
  source = "registry+https://github.com/rust-lang/crates.io-index"
9733
- checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12"
9744
+ checksum = "b268e58e7c693d7c271f93ffc4ba3b380412554231c85bf61ca7af91042a4112"
9734
9745
 
9735
9746
  [[package]]
9736
9747
  name = "zmij"
@@ -1,11 +1,11 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:abef1befb10dea1a9036aba75dbba09f6fb1acfc3936b4f5212e08a58e9aeea3
2
+ # alef:hash:a4404803fbe0a03efbe97e0a56bfe59bddd43bed7d111d5807fa7987174efe57
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.2.1"
8
+ version = "1.2.3"
9
9
  edition = "2024"
10
10
  license = "MIT"
11
11
  description = "High-performance document intelligence library"
@@ -72,8 +72,8 @@ xml = ["xberg/xml"]
72
72
 
73
73
  [dependencies]
74
74
  async-trait = "0.1"
75
- crawlberg = { default-features = false, version = "1.6.3" }
76
- html-to-markdown-rs = { default-features = false, version = "3.12" }
75
+ crawlberg = { default-features = false, version = "1.7.0" }
76
+ html-to-markdown-rs = { default-features = false, version = "3.14" }
77
77
  magnus = "0.8"
78
78
  rb-sys = ">=0.9.130, <0.10"
79
79
  serde = { version = "1", features = ["derive"] }
@@ -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.2.1", default-features = false, features = ["macos-intel-target", "simd-utf8"] }
85
+ xberg = { version = "1.2.3", 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.2.1", features = ["full", "pdf", "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", "ner-onnx", "ner-llm", "diff", "markdown-footnotes", "redaction", "enrichment", "heuristics", "presets", "structured", "url-ingestion"] }
88
+ xberg = { version = "1.2.3", features = ["full", "pdf", "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", "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.2.1", default-features = false, features = ["windows-gnu-target", "simd-utf8"] }
91
+ xberg = { version = "1.2.3", 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:de450ef973994691374dc94094e0cabe1cfd6a4d37af690bd2009a59cd8251e3
2
+ // alef:hash:df82e1e6fdb3011e4f34e04b6e19d4d2b79d9c65cef93cd9d444d13ad8bcd155
3
3
  // Re-generate with: alef generate
4
4
  #![allow(dead_code, unused_imports, unused_variables)]
5
5
  #![allow(
@@ -21388,6 +21388,78 @@ impl NgramRange {
21388
21388
  }
21389
21389
  }
21390
21390
 
21391
+ #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
21392
+ #[magnus::wrap(class = "Xberg::OcrBackendCapabilities")]
21393
+ pub struct OcrBackendCapabilities {
21394
+ name: String,
21395
+ supported_languages: Vec<String>,
21396
+ }
21397
+
21398
+ unsafe impl IntoValueFromNative for OcrBackendCapabilities {}
21399
+
21400
+ impl magnus::TryConvert for OcrBackendCapabilities {
21401
+ fn try_convert(val: magnus::Value) -> Result<Self, magnus::Error> {
21402
+ if let Ok(r) = <&OcrBackendCapabilities as magnus::TryConvert>::try_convert(val) {
21403
+ return Ok(r.clone());
21404
+ }
21405
+ let json_str: String = if let Ok(s) = <String as magnus::TryConvert>::try_convert(val) {
21406
+ s
21407
+ } else {
21408
+ val.funcall::<_, _, String>("to_json", ()).map_err(|e| {
21409
+ magnus::Error::new(
21410
+ unsafe { magnus::Ruby::get_unchecked() }.exception_type_error(),
21411
+ format!("no implicit conversion into OcrBackendCapabilities: {}", e),
21412
+ )
21413
+ })?
21414
+ };
21415
+ serde_json::from_str::<OcrBackendCapabilities>(&json_str).map_err(|e| {
21416
+ magnus::Error::new(
21417
+ unsafe { magnus::Ruby::get_unchecked() }.exception_type_error(),
21418
+ format!("failed to deserialize OcrBackendCapabilities: {}", e),
21419
+ )
21420
+ })
21421
+ }
21422
+ }
21423
+
21424
+ unsafe impl TryConvertOwned for OcrBackendCapabilities {}
21425
+
21426
+ impl OcrBackendCapabilities {
21427
+ fn new(args: &[magnus::Value]) -> Result<Self, magnus::Error> {
21428
+ let ruby = unsafe { magnus::Ruby::get_unchecked() };
21429
+ let args = magnus::scan_args::scan_args::<(), (Option<magnus::RHash>,), (), (), (), ()>(args)?;
21430
+ let (kwargs_opt,) = args.optional;
21431
+ let kwargs = kwargs_opt.unwrap_or_else(|| ruby.hash_new());
21432
+ Ok(Self {
21433
+ name: match kwargs.get(ruby.to_symbol("name")) {
21434
+ Some(v) => String::try_convert(v).map_err(|e| {
21435
+ magnus::Error::new(
21436
+ unsafe { magnus::Ruby::get_unchecked() }.exception_type_error(),
21437
+ format!("invalid value for `name`: {}", e),
21438
+ )
21439
+ })?,
21440
+ None => Default::default(),
21441
+ },
21442
+ supported_languages: match kwargs.get(ruby.to_symbol("supported_languages")) {
21443
+ Some(v) => <Vec<String>>::try_convert(v).map_err(|e| {
21444
+ magnus::Error::new(
21445
+ unsafe { magnus::Ruby::get_unchecked() }.exception_type_error(),
21446
+ format!("invalid value for `supported_languages`: {}", e),
21447
+ )
21448
+ })?,
21449
+ None => Default::default(),
21450
+ },
21451
+ })
21452
+ }
21453
+
21454
+ fn name(&self) -> String {
21455
+ self.name.clone()
21456
+ }
21457
+
21458
+ fn supported_languages(&self) -> Vec<String> {
21459
+ self.supported_languages.clone()
21460
+ }
21461
+ }
21462
+
21391
21463
  #[derive(Clone, Debug, serde::Serialize)]
21392
21464
  #[serde(default)]
21393
21465
  #[magnus::wrap(class = "Xberg::OcrConfidence")]
@@ -41323,6 +41395,16 @@ fn list_embedding_backends() -> Result<Vec<String>, Error> {
41323
41395
  Ok(result)
41324
41396
  }
41325
41397
 
41398
+ fn list_ocr_backend_capabilities() -> Result<Vec<OcrBackendCapabilities>, Error> {
41399
+ let result = xberg::list_ocr_backend_capabilities().map_err(|e| {
41400
+ magnus::Error::new(
41401
+ unsafe { Ruby::get_unchecked() }.exception_runtime_error(),
41402
+ e.to_string(),
41403
+ )
41404
+ })?;
41405
+ Ok(result.into_iter().map(Into::into).collect())
41406
+ }
41407
+
41326
41408
  fn list_ocr_backends() -> Result<Vec<String>, Error> {
41327
41409
  let result = xberg::list_ocr_backends().map_err(|e| {
41328
41410
  magnus::Error::new(
@@ -41498,6 +41580,16 @@ fn max_sim_score(query: magnus::Value, doc: magnus::Value) -> Result<f64, Error>
41498
41580
  Ok(xberg::max_sim_score(&query_core, &doc_core))
41499
41581
  }
41500
41582
 
41583
+ fn ocr_backend_supports_language(backend: String, language: String) -> Result<bool, Error> {
41584
+ let result = xberg::ocr_backend_supports_language(&backend, &language).map_err(|e| {
41585
+ magnus::Error::new(
41586
+ unsafe { Ruby::get_unchecked() }.exception_runtime_error(),
41587
+ e.to_string(),
41588
+ )
41589
+ })?;
41590
+ Ok(result)
41591
+ }
41592
+
41501
41593
  #[cfg(feature = "markdown-footnotes")]
41502
41594
  fn verify_excerpt(excerpt: String, source_text: String) -> bool {
41503
41595
  xberg::verify_excerpt(&excerpt, &source_text)
@@ -49596,6 +49688,24 @@ impl From<xberg::NgramRange> for NgramRange {
49596
49688
  }
49597
49689
  }
49598
49690
 
49691
+ impl From<OcrBackendCapabilities> for xberg::OcrBackendCapabilities {
49692
+ fn from(val: OcrBackendCapabilities) -> Self {
49693
+ Self {
49694
+ name: val.name,
49695
+ supported_languages: val.supported_languages.into_iter().collect(),
49696
+ }
49697
+ }
49698
+ }
49699
+
49700
+ impl From<xberg::OcrBackendCapabilities> for OcrBackendCapabilities {
49701
+ fn from(val: xberg::OcrBackendCapabilities) -> Self {
49702
+ Self {
49703
+ name: val.name.to_string(),
49704
+ supported_languages: val.supported_languages.into_iter().collect(),
49705
+ }
49706
+ }
49707
+ }
49708
+
49599
49709
  #[allow(clippy::needless_update)]
49600
49710
  impl From<OcrConfidence> for xberg::OcrConfidence {
49601
49711
  fn from(val: OcrConfidence) -> Self {
@@ -57561,6 +57671,17 @@ fn ruby_init(ruby: &Ruby) -> Result<(), Error> {
57561
57671
  #[cfg(any(feature = "keywords-yake", feature = "keywords-rake"))]
57562
57672
  class.define_method("max", method!(NgramRange::max, 0))?;
57563
57673
 
57674
+ let class = module.define_class("OcrBackendCapabilities", ruby.class_object())?;
57675
+
57676
+ class.define_singleton_method("new", function!(OcrBackendCapabilities::new, -1))?;
57677
+
57678
+ class.define_method("name", method!(OcrBackendCapabilities::name, 0))?;
57679
+
57680
+ class.define_method(
57681
+ "supported_languages",
57682
+ method!(OcrBackendCapabilities::supported_languages, 0),
57683
+ )?;
57684
+
57564
57685
  let class = module.define_class("OcrConfidence", ruby.class_object())?;
57565
57686
 
57566
57687
  class.define_singleton_method("new", function!(OcrConfidence::new, -1))?;
@@ -59524,6 +59645,11 @@ fn ruby_init(ruby: &Ruby) -> Result<(), Error> {
59524
59645
 
59525
59646
  module.define_module_function("list_embedding_backends", function!(list_embedding_backends, 0))?;
59526
59647
 
59648
+ module.define_module_function(
59649
+ "list_ocr_backend_capabilities",
59650
+ function!(list_ocr_backend_capabilities, 0),
59651
+ )?;
59652
+
59527
59653
  module.define_module_function("list_ocr_backends", function!(list_ocr_backends, 0))?;
59528
59654
 
59529
59655
  module.define_module_function("list_post_processors", function!(list_post_processors, 0))?;
@@ -59553,6 +59679,11 @@ fn ruby_init(ruby: &Ruby) -> Result<(), Error> {
59553
59679
  ))]
59554
59680
  module.define_module_function("max_sim_score", function!(max_sim_score, 2))?;
59555
59681
 
59682
+ module.define_module_function(
59683
+ "ocr_backend_supports_language",
59684
+ function!(ocr_backend_supports_language, 2),
59685
+ )?;
59686
+
59556
59687
  #[cfg(feature = "markdown-footnotes")]
59557
59688
  module.define_module_function("verify_excerpt", function!(verify_excerpt, 2))?;
59558
59689
 
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:52920323505a2dea3a1ae30866f6dc38a60c385cd626e87838df35b29a8a8d2b
2
+ # alef:hash:46096f341346c38e3cf01e8ab3c246d2268fa69e05bdfed323fa910cb787a5c0
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.2.1"
9
+ VERSION = "1.2.3"
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:8289545a6790f7d5396e33a6a78488d5e49b7009f873d25b9af3ab07ee9867aa
2
+ # alef:hash:bcec0942602b7601656a9d7bc3cbdfcd50c54cf6d3bc22c17420b748dad08526
3
3
  # To regenerate: alef generate
4
4
  # To verify freshness: alef verify
5
5
 
@@ -1648,6 +1648,13 @@ def initialize: (?backend: NerBackendKind, ?categories: Array[EntityCategory], ?
1648
1648
  def initialize: (?min: Integer, ?max: Integer) -> void
1649
1649
  end
1650
1650
 
1651
+ class OcrBackendCapabilities
1652
+ attr_reader name: String
1653
+ attr_reader supported_languages: Array[String]
1654
+
1655
+ def initialize: (name: String, supported_languages: Array[String]) -> void
1656
+ end
1657
+
1651
1658
  class OcrConfidence
1652
1659
  attr_reader detection: Float?
1653
1660
  attr_reader recognition: Float
@@ -3131,6 +3138,8 @@ def self.list_document_extractors: () -> Array[String]
3131
3138
 
3132
3139
  def self.list_embedding_backends: () -> Array[String]
3133
3140
 
3141
+ def self.list_ocr_backend_capabilities: () -> Array[OcrBackendCapabilities]
3142
+
3134
3143
  def self.list_ocr_backends: () -> Array[String]
3135
3144
 
3136
3145
  def self.list_post_processors: () -> Array[String]
@@ -3151,6 +3160,8 @@ def self.max_sim_rank: (json_value query, Array[json_value] docs) -> Array[json_
3151
3160
 
3152
3161
  def self.max_sim_score: (json_value query, json_value doc) -> Float
3153
3162
 
3163
+ def self.ocr_backend_supports_language: (String backend, String language) -> bool
3164
+
3154
3165
  def self.register_document_extractor: (_DocumentExtractor extractor) -> void
3155
3166
 
3156
3167
  def self.register_renderer: (_Renderer renderer) -> void
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.2.1
4
+ version: 1.2.3
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-09-14 00:00:00.000000000 Z
11
+ date: 2026-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rb_sys