mindee 4.13.0 → 5.0.0.rc1

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.
Files changed (808) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +24 -0
  3. data/.pre-commit-config.yaml +36 -0
  4. data/.rubocop.yml +3 -2
  5. data/CHANGELOG.md +50 -3
  6. data/CONTRIBUTING.md +17 -0
  7. data/Gemfile +9 -1
  8. data/README.md +7 -7
  9. data/Rakefile +21 -15
  10. data/Steepfile +0 -1
  11. data/bin/mindee.rb +19 -118
  12. data/bin/v1/parser.rb +153 -0
  13. data/bin/v1/products.rb +88 -0
  14. data/bin/v2/parser.rb +235 -0
  15. data/bin/v2/products.rb +34 -0
  16. data/docs/code_samples/bank_account_details_v1.txt +2 -2
  17. data/docs/code_samples/bank_account_details_v2.txt +2 -2
  18. data/docs/code_samples/bank_statement_fr_v2_async.txt +2 -2
  19. data/docs/code_samples/barcode_reader_v1.txt +2 -2
  20. data/docs/code_samples/cropper_v1.txt +2 -2
  21. data/docs/code_samples/default.txt +2 -2
  22. data/docs/code_samples/default_async.txt +2 -3
  23. data/docs/code_samples/expense_receipts_v5.txt +2 -2
  24. data/docs/code_samples/expense_receipts_v5_async.txt +2 -2
  25. data/docs/code_samples/financial_document_v1.txt +2 -2
  26. data/docs/code_samples/financial_document_v1_async.txt +2 -2
  27. data/docs/code_samples/idcard_fr_v1.txt +2 -2
  28. data/docs/code_samples/idcard_fr_v2.txt +2 -2
  29. data/docs/code_samples/international_id_v2_async.txt +2 -2
  30. data/docs/code_samples/invoice_splitter_v1_async.txt +2 -2
  31. data/docs/code_samples/invoices_v4.txt +2 -2
  32. data/docs/code_samples/invoices_v4_async.txt +2 -2
  33. data/docs/code_samples/multi_receipts_detector_v1.txt +2 -2
  34. data/docs/code_samples/passport_v1.txt +2 -2
  35. data/docs/code_samples/resume_v1_async.txt +2 -2
  36. data/docs/code_samples/v2_classification.txt +1 -1
  37. data/docs/code_samples/v2_crop.txt +2 -2
  38. data/docs/code_samples/v2_extraction.txt +3 -3
  39. data/docs/code_samples/v2_extraction_webhook.txt +3 -3
  40. data/docs/code_samples/v2_ocr.txt +2 -2
  41. data/docs/code_samples/v2_split.txt +1 -1
  42. data/docs/code_samples/workflow_execution.txt +2 -2
  43. data/docs/code_samples/workflow_polling.txt +2 -3
  44. data/examples/auto_invoice_splitter_extraction.rb +6 -6
  45. data/examples/auto_multi_receipts_detector_extraction.rb +4 -4
  46. data/lib/mindee/dependencies.rb +29 -0
  47. data/lib/mindee/{errors → error}/mindee_error.rb +1 -1
  48. data/lib/mindee/{errors → error}/mindee_http_error.rb +1 -1
  49. data/lib/mindee/{errors → error}/mindee_http_error_v2.rb +5 -5
  50. data/lib/mindee/{errors → error}/mindee_http_unknown_error_v2.rb +1 -1
  51. data/lib/mindee/{errors → error}/mindee_input_error.rb +2 -2
  52. data/lib/mindee/error.rb +6 -0
  53. data/lib/mindee/geometry/polygon.rb +2 -2
  54. data/lib/mindee/http/.rubocop.yml +0 -1
  55. data/lib/mindee/http/http_error_handler.rb +7 -7
  56. data/lib/mindee/http/response_validation.rb +3 -2
  57. data/lib/mindee/http.rb +0 -4
  58. data/lib/mindee/image/extracted_image.rb +25 -12
  59. data/lib/mindee/image/image_extractor.rb +17 -17
  60. data/lib/mindee/image/image_utils.rb +3 -3
  61. data/lib/mindee/input/base_parameters.rb +5 -2
  62. data/lib/mindee/input/local_response.rb +6 -8
  63. data/lib/mindee/input/sources/local_input_source.rb +18 -14
  64. data/lib/mindee/input/sources/path_input_source.rb +1 -1
  65. data/lib/mindee/input/sources/url_input_source.rb +4 -4
  66. data/lib/mindee/input.rb +0 -2
  67. data/lib/mindee/logging/logger.rb +9 -1
  68. data/lib/mindee/page_options.rb +1 -1
  69. data/lib/mindee/pdf/extracted_pdf.rb +55 -45
  70. data/lib/mindee/pdf/pdf_compressor.rb +2 -0
  71. data/lib/mindee/pdf/pdf_extractor.rb +95 -94
  72. data/lib/mindee/pdf/pdf_processor.rb +6 -1
  73. data/lib/mindee/pdf/pdf_tools.rb +19 -0
  74. data/lib/mindee/v1/client.rb +490 -0
  75. data/lib/mindee/v1/extraction/multi_receipts_extractor.rb +32 -0
  76. data/lib/mindee/v1/http/.rubocop.yml +7 -0
  77. data/lib/mindee/v1/http/endpoint.rb +221 -0
  78. data/lib/mindee/v1/http/workflow_endpoint.rb +93 -0
  79. data/lib/mindee/v1/http.rb +4 -0
  80. data/lib/mindee/v1/parsing/common/api_request.rb +38 -0
  81. data/lib/mindee/v1/parsing/common/api_response.rb +63 -0
  82. data/lib/mindee/v1/parsing/common/document.rb +86 -0
  83. data/lib/mindee/v1/parsing/common/execution.rb +78 -0
  84. data/lib/mindee/v1/parsing/common/execution_file.rb +26 -0
  85. data/lib/mindee/v1/parsing/common/execution_priority.rb +38 -0
  86. data/lib/mindee/v1/parsing/common/extras/cropper_extra.rb +32 -0
  87. data/lib/mindee/v1/parsing/common/extras/extras.rb +62 -0
  88. data/lib/mindee/v1/parsing/common/extras/full_text_ocr_extra.rb +35 -0
  89. data/lib/mindee/v1/parsing/common/extras/rag_extra.rb +28 -0
  90. data/lib/mindee/v1/parsing/common/inference.rb +69 -0
  91. data/lib/mindee/v1/parsing/common/job.rb +48 -0
  92. data/lib/mindee/v1/parsing/common/ocr/mvision_v1.rb +52 -0
  93. data/lib/mindee/v1/parsing/common/ocr/ocr.rb +180 -0
  94. data/lib/mindee/v1/parsing/common/orientation.rb +28 -0
  95. data/lib/mindee/v1/parsing/common/page.rb +49 -0
  96. data/lib/mindee/v1/parsing/common/prediction.rb +19 -0
  97. data/lib/mindee/v1/parsing/common/product.rb +26 -0
  98. data/lib/mindee/v1/parsing/common/workflow_response.rb +30 -0
  99. data/lib/mindee/v1/parsing/standard/abstract_field.rb +74 -0
  100. data/lib/mindee/v1/parsing/standard/address_field.rb +51 -0
  101. data/lib/mindee/v1/parsing/standard/amount_field.rb +28 -0
  102. data/lib/mindee/v1/parsing/standard/base_field.rb +30 -0
  103. data/lib/mindee/v1/parsing/standard/boolean_field.rb +29 -0
  104. data/lib/mindee/v1/parsing/standard/classification_field.rb +18 -0
  105. data/lib/mindee/v1/parsing/standard/company_registration_field.rb +45 -0
  106. data/lib/mindee/v1/parsing/standard/date_field.rb +40 -0
  107. data/lib/mindee/v1/parsing/standard/feature_field.rb +26 -0
  108. data/lib/mindee/v1/parsing/standard/locale_field.rb +52 -0
  109. data/lib/mindee/v1/parsing/standard/payment_details_field.rb +44 -0
  110. data/lib/mindee/v1/parsing/standard/position_field.rb +61 -0
  111. data/lib/mindee/v1/parsing/standard/string_field.rb +26 -0
  112. data/lib/mindee/v1/parsing/standard/tax_field.rb +110 -0
  113. data/lib/mindee/v1/parsing/universal/universal_list_field.rb +60 -0
  114. data/lib/mindee/v1/parsing/universal/universal_object_field.rb +123 -0
  115. data/lib/mindee/{product → v1/product}/.rubocop.yml +1 -2
  116. data/lib/mindee/{product/fr/id_card/id_card_v1.rb → v1/product/barcode_reader/barcode_reader_v1.rb} +12 -12
  117. data/lib/mindee/v1/product/barcode_reader/barcode_reader_v1_document.rb +47 -0
  118. data/lib/mindee/{product/fr/bank_statement/bank_statement_v2_page.rb → v1/product/barcode_reader/barcode_reader_v1_page.rb} +10 -10
  119. data/lib/mindee/{product/us/bank_check/bank_check_v1.rb → v1/product/cropper/cropper_v1.rb} +12 -12
  120. data/lib/mindee/v1/product/cropper/cropper_v1_document.rb +15 -0
  121. data/lib/mindee/v1/product/cropper/cropper_v1_page.rb +55 -0
  122. data/lib/mindee/{product/ind/indian_passport/indian_passport_v1.rb → v1/product/financial_document/financial_document_v1.rb} +13 -13
  123. data/lib/mindee/v1/product/financial_document/financial_document_v1_document.rb +329 -0
  124. data/lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb +124 -0
  125. data/lib/mindee/{product/fr/energy_bill/energy_bill_v1_subscriptions.rb → v1/product/financial_document/financial_document_v1_line_items.rb} +19 -20
  126. data/lib/mindee/v1/product/financial_document/financial_document_v1_page.rb +38 -0
  127. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1.rb +49 -0
  128. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_document.rb +49 -0
  129. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_page.rb +40 -0
  130. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2.rb +49 -0
  131. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rb +63 -0
  132. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_document.rb +60 -0
  133. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_page.rb +40 -0
  134. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2.rb +49 -0
  135. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_document.rb +169 -0
  136. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_page.rb +40 -0
  137. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rb +78 -0
  138. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transactions.rb +56 -0
  139. data/lib/mindee/v1/product/fr/id_card/id_card_v1.rb +49 -0
  140. data/lib/mindee/v1/product/fr/id_card/id_card_v1_document.rb +106 -0
  141. data/lib/mindee/v1/product/fr/id_card/id_card_v1_page.rb +57 -0
  142. data/lib/mindee/v1/product/fr/id_card/id_card_v2.rb +49 -0
  143. data/lib/mindee/v1/product/fr/id_card/id_card_v2_document.rb +143 -0
  144. data/lib/mindee/v1/product/fr/id_card/id_card_v2_page.rb +65 -0
  145. data/lib/mindee/{product/fr/payslip/payslip_v2.rb → v1/product/international_id/international_id_v2.rb} +12 -12
  146. data/lib/mindee/v1/product/international_id/international_id_v2_document.rb +164 -0
  147. data/lib/mindee/{product/fr/energy_bill/energy_bill_v1_page.rb → v1/product/international_id/international_id_v2_page.rb} +10 -10
  148. data/lib/mindee/{product/fr/payslip/payslip_v3.rb → v1/product/invoice/invoice_v4.rb} +14 -14
  149. data/lib/mindee/v1/product/invoice/invoice_v4_document.rb +300 -0
  150. data/lib/mindee/v1/product/invoice/invoice_v4_line_item.rb +124 -0
  151. data/lib/mindee/{product/fr/energy_bill/energy_bill_v1_taxes_and_contributions.rb → v1/product/invoice/invoice_v4_line_items.rb} +19 -20
  152. data/lib/mindee/{product/fr/payslip/payslip_v2_page.rb → v1/product/invoice/invoice_v4_page.rb} +10 -10
  153. data/lib/mindee/{product/fr/energy_bill/energy_bill_v1.rb → v1/product/invoice_splitter/invoice_splitter_v1.rb} +12 -12
  154. data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_document.rb +66 -0
  155. data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rb +58 -0
  156. data/lib/mindee/{product/us/healthcare_card/healthcare_card_v1_copays.rb → v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_groups.rb} +10 -12
  157. data/lib/mindee/{product/fr/health_card/health_card_v1_page.rb → v1/product/invoice_splitter/invoice_splitter_v1_page.rb} +10 -10
  158. data/lib/mindee/{product/fr/bank_account_details/bank_account_details_v1.rb → v1/product/multi_receipts_detector/multi_receipts_detector_v1.rb} +12 -12
  159. data/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb +38 -0
  160. data/lib/mindee/{product/fr/bank_account_details/bank_account_details_v1_page.rb → v1/product/multi_receipts_detector/multi_receipts_detector_v1_page.rb} +10 -10
  161. data/lib/mindee/{product/fr/carte_grise/carte_grise_v1.rb → v1/product/passport/passport_v1.rb} +12 -12
  162. data/lib/mindee/{product/fr/id_card/id_card_v1_document.rb → v1/product/passport/passport_v1_document.rb} +42 -33
  163. data/lib/mindee/{product/fr/carte_grise/carte_grise_v1_page.rb → v1/product/passport/passport_v1_page.rb} +10 -10
  164. data/lib/mindee/v1/product/receipt/receipt_v5.rb +47 -0
  165. data/lib/mindee/v1/product/receipt/receipt_v5_document.rb +187 -0
  166. data/lib/mindee/v1/product/receipt/receipt_v5_line_item.rb +88 -0
  167. data/lib/mindee/{product/fr/bank_statement/bank_statement_v2_transactions.rb → v1/product/receipt/receipt_v5_line_items.rb} +14 -12
  168. data/lib/mindee/{product/fr/payslip/payslip_v3_page.rb → v1/product/receipt/receipt_v5_page.rb} +10 -10
  169. data/lib/mindee/{product/us/us_mail/us_mail_v3.rb → v1/product/resume/resume_v1.rb} +13 -13
  170. data/lib/mindee/v1/product/resume/resume_v1_certificate.rb +82 -0
  171. data/lib/mindee/{product/fr/payslip/payslip_v2_salary_details.rb → v1/product/resume/resume_v1_certificates.rb} +20 -23
  172. data/lib/mindee/v1/product/resume/resume_v1_document.rb +340 -0
  173. data/lib/mindee/v1/product/resume/resume_v1_education.rb +106 -0
  174. data/lib/mindee/{product/us/us_mail/us_mail_v3_recipient_addresses.rb → v1/product/resume/resume_v1_educations.rb} +24 -23
  175. data/lib/mindee/v1/product/resume/resume_v1_language.rb +66 -0
  176. data/lib/mindee/{product/fr/payslip/payslip_v3_paid_time_offs.rb → v1/product/resume/resume_v1_languages.rb} +16 -25
  177. data/lib/mindee/{product/us/us_mail/us_mail_v3_page.rb → v1/product/resume/resume_v1_page.rb} +10 -10
  178. data/lib/mindee/v1/product/resume/resume_v1_professional_experience.rb +122 -0
  179. data/lib/mindee/{product/fr/energy_bill/energy_bill_v1_energy_usages.rb → v1/product/resume/resume_v1_professional_experiences.rb} +26 -25
  180. data/lib/mindee/v1/product/resume/resume_v1_social_networks_url.rb +66 -0
  181. data/lib/mindee/v1/product/resume/resume_v1_social_networks_urls.rb +56 -0
  182. data/lib/mindee/{product/fr/bank_statement/bank_statement_v2.rb → v1/product/universal/universal.rb} +16 -15
  183. data/lib/mindee/v1/product/universal/universal_document.rb +35 -0
  184. data/lib/mindee/v1/product/universal/universal_page.rb +54 -0
  185. data/lib/mindee/v1/product/universal/universal_prediction.rb +128 -0
  186. data/lib/mindee/{product.rb → v1/product.rb} +0 -14
  187. data/lib/mindee/v1.rb +7 -0
  188. data/lib/mindee/v2/client.rb +132 -0
  189. data/lib/mindee/v2/file_operations/crop.rb +51 -0
  190. data/lib/mindee/v2/file_operations/crop_files.rb +25 -0
  191. data/lib/mindee/v2/file_operations/split.rb +37 -0
  192. data/lib/mindee/v2/file_operations/split_files.rb +25 -0
  193. data/lib/mindee/v2/file_operations.rb +6 -0
  194. data/lib/mindee/v2/http/.rubocop.yml +7 -0
  195. data/lib/mindee/v2/http/api_v2_settings.rb +65 -0
  196. data/lib/mindee/v2/http/mindee_api_v2.rb +230 -0
  197. data/lib/mindee/v2/http.rb +4 -0
  198. data/lib/mindee/v2/parsing/base_inference.rb +6 -6
  199. data/lib/mindee/v2/parsing/base_response.rb +3 -1
  200. data/lib/mindee/{parsing/v2 → v2/parsing}/common_response.rb +6 -4
  201. data/lib/mindee/{parsing/v2 → v2/parsing}/error_item.rb +2 -2
  202. data/lib/mindee/{parsing/v2 → v2/parsing}/error_response.rb +2 -2
  203. data/lib/mindee/{parsing/v2 → v2/parsing}/field/base_field.rb +3 -3
  204. data/lib/mindee/{parsing/v2 → v2/parsing}/field/field_confidence.rb +2 -2
  205. data/lib/mindee/{parsing/v2 → v2/parsing}/field/field_location.rb +2 -2
  206. data/lib/mindee/{parsing/v2 → v2/parsing}/field/inference_fields.rb +3 -3
  207. data/lib/mindee/{parsing/v2 → v2/parsing}/field/list_field.rb +5 -5
  208. data/lib/mindee/{parsing/v2 → v2/parsing}/field/object_field.rb +11 -8
  209. data/lib/mindee/{parsing/v2 → v2/parsing}/field/simple_field.rb +2 -2
  210. data/lib/mindee/{parsing/v2 → v2/parsing}/inference_active_options.rb +2 -2
  211. data/lib/mindee/{parsing/v2 → v2/parsing}/inference_file.rb +2 -2
  212. data/lib/mindee/{parsing/v2 → v2/parsing}/inference_job.rb +2 -2
  213. data/lib/mindee/{parsing/v2 → v2/parsing}/inference_model.rb +2 -2
  214. data/lib/mindee/{parsing/v2 → v2/parsing}/job.rb +3 -3
  215. data/lib/mindee/{parsing/v2 → v2/parsing}/job_response.rb +2 -2
  216. data/lib/mindee/{parsing/v2 → v2/parsing}/job_webhook.rb +2 -3
  217. data/lib/mindee/{parsing/v2 → v2/parsing}/rag_metadata.rb +2 -2
  218. data/lib/mindee/{parsing/v2 → v2/parsing}/raw_text.rb +6 -4
  219. data/lib/mindee/{parsing/v2 → v2/parsing}/raw_text_page.rb +4 -2
  220. data/lib/mindee/v2/parsing/search/pagination_metadata.rb +44 -0
  221. data/lib/mindee/v2/parsing/search/search_model.rb +38 -0
  222. data/lib/mindee/v2/parsing/search/search_models.rb +34 -0
  223. data/lib/mindee/v2/parsing/search/search_response.rb +38 -0
  224. data/lib/mindee/v2/parsing/search.rb +6 -0
  225. data/lib/mindee/v2/parsing.rb +16 -0
  226. data/lib/mindee/v2/product/base_product.rb +1 -0
  227. data/lib/mindee/v2/product/classification/classification.rb +1 -0
  228. data/lib/mindee/v2/product/classification/classification_inference.rb +1 -0
  229. data/lib/mindee/v2/product/classification/params/classification_parameters.rb +1 -0
  230. data/lib/mindee/v2/product/crop/crop.rb +1 -0
  231. data/lib/mindee/v2/product/crop/crop_item.rb +12 -2
  232. data/lib/mindee/v2/product/crop/crop_response.rb +8 -0
  233. data/lib/mindee/v2/product/crop/params/crop_parameters.rb +1 -0
  234. data/lib/mindee/v2/product/extraction/extraction.rb +3 -1
  235. data/lib/mindee/v2/product/extraction/extraction_inference.rb +19 -4
  236. data/lib/mindee/v2/product/extraction/extraction_response.rb +11 -2
  237. data/lib/mindee/v2/product/extraction/extraction_result.rb +31 -2
  238. data/lib/mindee/v2/product/extraction/params/data_schema.rb +51 -0
  239. data/lib/mindee/v2/product/extraction/params/data_schema_field.rb +69 -0
  240. data/lib/mindee/v2/product/extraction/params/data_schema_replace.rb +39 -0
  241. data/lib/mindee/v2/product/extraction/params/extraction_parameters.rb +110 -3
  242. data/lib/mindee/v2/product/ocr/ocr.rb +6 -5
  243. data/lib/mindee/v2/product/ocr/ocr_inference.rb +4 -4
  244. data/lib/mindee/v2/product/ocr/ocr_page.rb +5 -5
  245. data/lib/mindee/v2/product/ocr/ocr_response.rb +4 -4
  246. data/lib/mindee/v2/product/ocr/ocr_result.rb +4 -4
  247. data/lib/mindee/v2/product/ocr/ocr_word.rb +2 -2
  248. data/lib/mindee/v2/product/ocr/params/ocr_parameters.rb +5 -4
  249. data/lib/mindee/v2/product/split/params/split_parameters.rb +2 -0
  250. data/lib/mindee/v2/product/split/split_range.rb +8 -0
  251. data/lib/mindee/v2/product/split/split_response.rb +8 -0
  252. data/lib/mindee/v2.rb +5 -2
  253. data/lib/mindee/version.rb +1 -1
  254. data/lib/mindee.rb +59 -23
  255. data/mindee-lite.gemspec +36 -0
  256. data/mindee.gemspec +13 -13
  257. data/sig/custom/marcel.rbs +1 -1
  258. data/sig/custom/net_http.rbs +1 -1
  259. data/sig/custom/origami.rbs +1 -1
  260. data/sig/mindee/dependencies.rbs +13 -0
  261. data/sig/mindee/{errors → error}/mindee_error.rbs +2 -2
  262. data/sig/mindee/{errors → error}/mindee_http_error.rbs +3 -3
  263. data/sig/mindee/{errors → error}/mindee_http_error_v2.rbs +4 -4
  264. data/sig/mindee/{errors → error}/mindee_http_unknown_error_v2.rbs +2 -2
  265. data/sig/mindee/{errors → error}/mindee_input_error.rbs +2 -2
  266. data/sig/mindee/http/http_error_handler.rbs +4 -4
  267. data/sig/mindee/image/extracted_image.rbs +8 -2
  268. data/sig/mindee/image/image_extractor.rbs +2 -2
  269. data/sig/mindee/input/base_parameters.rbs +1 -1
  270. data/sig/mindee/input/local_response.rbs +1 -1
  271. data/sig/mindee/input/sources/local_input_source.rbs +0 -1
  272. data/sig/mindee/pdf/extracted_pdf.rbs +11 -9
  273. data/sig/mindee/pdf/pdf_extractor.rbs +12 -10
  274. data/sig/mindee/pdf/pdf_tools.rbs +2 -0
  275. data/sig/mindee/v1/client.rbs +84 -0
  276. data/sig/mindee/v1/extraction/multi_receipts_extractor.rbs +8 -0
  277. data/sig/mindee/v1/http/endpoint.rbs +41 -0
  278. data/sig/mindee/v1/http/workflow_endpoint.rbs +22 -0
  279. data/sig/mindee/v1/parsing/common/api_request.rbs +22 -0
  280. data/sig/mindee/v1/parsing/common/api_response.rbs +31 -0
  281. data/sig/mindee/v1/parsing/common/document.rbs +32 -0
  282. data/sig/mindee/v1/parsing/common/execution.rbs +26 -0
  283. data/sig/mindee/v1/parsing/common/execution_file.rbs +16 -0
  284. data/sig/mindee/v1/parsing/common/execution_priority.rbs +16 -0
  285. data/sig/mindee/v1/parsing/common/extras/cropper_extra.rbs +18 -0
  286. data/sig/mindee/v1/parsing/common/extras/extras.rbs +24 -0
  287. data/sig/mindee/v1/parsing/common/extras/full_text_ocr_extra.rbs +22 -0
  288. data/sig/mindee/v1/parsing/common/extras/rag_extra.rbs +19 -0
  289. data/sig/mindee/v1/parsing/common/inference.rbs +31 -0
  290. data/sig/mindee/v1/parsing/common/job.rbs +24 -0
  291. data/sig/mindee/v1/parsing/common/ocr/mvision_v1.rbs +20 -0
  292. data/sig/mindee/v1/parsing/common/ocr/ocr.rbs +56 -0
  293. data/sig/mindee/v1/parsing/common/orientation.rbs +15 -0
  294. data/sig/mindee/v1/parsing/common/page.rbs +19 -0
  295. data/sig/mindee/v1/parsing/common/prediction.rbs +14 -0
  296. data/sig/mindee/v1/parsing/common/product.rbs +16 -0
  297. data/sig/mindee/v1/parsing/common/workflow_response.rbs +22 -0
  298. data/sig/mindee/v1/parsing/standard/abstract_field.rbs +30 -0
  299. data/sig/mindee/v1/parsing/standard/address_field.rbs +28 -0
  300. data/sig/mindee/v1/parsing/standard/amount_field.rbs +16 -0
  301. data/sig/mindee/v1/parsing/standard/base_field.rbs +16 -0
  302. data/sig/mindee/v1/parsing/standard/boolean_field.rbs +16 -0
  303. data/sig/mindee/v1/parsing/standard/classification_field.rbs +12 -0
  304. data/sig/mindee/v1/parsing/standard/company_registration_field.rbs +20 -0
  305. data/sig/mindee/v1/parsing/standard/date_field.rbs +20 -0
  306. data/sig/mindee/v1/parsing/standard/feature_field.rbs +12 -0
  307. data/sig/mindee/v1/parsing/standard/locale_field.rbs +24 -0
  308. data/sig/mindee/v1/parsing/standard/payment_details_field.rbs +19 -0
  309. data/sig/mindee/v1/parsing/standard/position_field.rbs +26 -0
  310. data/sig/mindee/v1/parsing/standard/string_field.rbs +16 -0
  311. data/sig/mindee/v1/parsing/standard/tax_field.rbs +33 -0
  312. data/sig/mindee/v1/parsing/universal/universal_list_field.rbs +21 -0
  313. data/sig/mindee/v1/parsing/universal/universal_object_field.rbs +38 -0
  314. data/sig/mindee/{product → v1/product}/barcode_reader/barcode_reader_v1.rbs +4 -2
  315. data/sig/mindee/{product → v1/product}/barcode_reader/barcode_reader_v1_document.rbs +4 -2
  316. data/sig/mindee/{product → v1/product}/barcode_reader/barcode_reader_v1_page.rbs +4 -2
  317. data/sig/mindee/{product → v1/product}/cropper/cropper_v1.rbs +4 -2
  318. data/sig/mindee/{product → v1/product}/cropper/cropper_v1_document.rbs +4 -2
  319. data/sig/mindee/{product → v1/product}/cropper/cropper_v1_page.rbs +6 -3
  320. data/sig/mindee/{product → v1/product}/financial_document/financial_document_v1.rbs +4 -2
  321. data/sig/mindee/{product → v1/product}/financial_document/financial_document_v1_document.rbs +4 -2
  322. data/sig/mindee/v1/product/financial_document/financial_document_v1_line_item.rbs +35 -0
  323. data/sig/mindee/{product → v1/product}/financial_document/financial_document_v1_line_items.rbs +3 -1
  324. data/sig/mindee/{product → v1/product}/financial_document/financial_document_v1_page.rbs +4 -2
  325. data/sig/mindee/{product → v1/product}/fr/bank_account_details/bank_account_details_v1.rbs +4 -2
  326. data/sig/mindee/{product → v1/product}/fr/bank_account_details/bank_account_details_v1_document.rbs +4 -2
  327. data/sig/mindee/{product → v1/product}/fr/bank_account_details/bank_account_details_v1_page.rbs +4 -2
  328. data/sig/mindee/{product → v1/product}/fr/bank_account_details/bank_account_details_v2.rbs +4 -2
  329. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rbs +25 -0
  330. data/sig/mindee/{product → v1/product}/fr/bank_account_details/bank_account_details_v2_document.rbs +4 -2
  331. data/sig/mindee/{product → v1/product}/fr/bank_account_details/bank_account_details_v2_page.rbs +4 -2
  332. data/sig/mindee/{product → v1/product}/fr/bank_statement/bank_statement_v2.rbs +4 -2
  333. data/sig/mindee/{product → v1/product}/fr/bank_statement/bank_statement_v2_document.rbs +4 -2
  334. data/sig/mindee/{product → v1/product}/fr/bank_statement/bank_statement_v2_page.rbs +4 -2
  335. data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rbs +27 -0
  336. data/sig/mindee/{product → v1/product}/fr/bank_statement/bank_statement_v2_transactions.rbs +3 -1
  337. data/sig/mindee/v1/product/fr/id_card/id_card_v1.rbs +15 -0
  338. data/sig/mindee/{product → v1/product}/fr/id_card/id_card_v1_document.rbs +4 -2
  339. data/sig/mindee/{product → v1/product}/fr/id_card/id_card_v1_page.rbs +4 -2
  340. data/sig/mindee/{product → v1/product}/fr/id_card/id_card_v2.rbs +4 -2
  341. data/sig/mindee/{product → v1/product}/fr/id_card/id_card_v2_document.rbs +4 -2
  342. data/sig/mindee/{product → v1/product}/fr/id_card/id_card_v2_page.rbs +4 -2
  343. data/sig/mindee/{product → v1/product}/international_id/international_id_v2.rbs +4 -2
  344. data/sig/mindee/{product → v1/product}/international_id/international_id_v2_document.rbs +4 -2
  345. data/sig/mindee/{product → v1/product}/international_id/international_id_v2_page.rbs +4 -2
  346. data/sig/mindee/{product → v1/product}/invoice/invoice_v4.rbs +4 -2
  347. data/sig/mindee/{product → v1/product}/invoice/invoice_v4_document.rbs +4 -2
  348. data/sig/mindee/{product/fr/energy_bill/energy_bill_v1_taxes_and_contribution.rbs → v1/product/invoice/invoice_v4_line_item.rbs} +22 -8
  349. data/sig/mindee/{product → v1/product}/invoice/invoice_v4_line_items.rbs +3 -1
  350. data/sig/mindee/{product → v1/product}/invoice/invoice_v4_page.rbs +4 -2
  351. data/sig/mindee/{product → v1/product}/invoice_splitter/invoice_splitter_v1.rbs +4 -2
  352. data/sig/mindee/{product → v1/product}/invoice_splitter/invoice_splitter_v1_document.rbs +5 -3
  353. data/sig/mindee/{product/us/healthcare_card/healthcare_card_v1_copay.rbs → v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rbs} +11 -7
  354. data/sig/mindee/{product → v1/product}/invoice_splitter/invoice_splitter_v1_invoice_page_groups.rbs +3 -1
  355. data/sig/mindee/{product → v1/product}/invoice_splitter/invoice_splitter_v1_page.rbs +4 -2
  356. data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rbs +14 -0
  357. data/sig/mindee/{product → v1/product}/multi_receipts_detector/multi_receipts_detector_v1_document.rbs +5 -3
  358. data/sig/mindee/{product → v1/product}/multi_receipts_detector/multi_receipts_detector_v1_page.rbs +4 -2
  359. data/sig/mindee/{product → v1/product}/passport/passport_v1.rbs +4 -2
  360. data/sig/mindee/{product → v1/product}/passport/passport_v1_document.rbs +4 -2
  361. data/sig/mindee/{product → v1/product}/passport/passport_v1_page.rbs +4 -2
  362. data/sig/mindee/{product → v1/product}/receipt/receipt_v5.rbs +4 -2
  363. data/sig/mindee/{product → v1/product}/receipt/receipt_v5_document.rbs +4 -2
  364. data/sig/mindee/{product/fr/bank_statement/bank_statement_v2_transaction.rbs → v1/product/receipt/receipt_v5_line_item.rbs} +16 -7
  365. data/sig/mindee/{product → v1/product}/receipt/receipt_v5_line_items.rbs +3 -1
  366. data/sig/mindee/{product → v1/product}/receipt/receipt_v5_page.rbs +4 -2
  367. data/sig/mindee/{product → v1/product}/resume/resume_v1.rbs +4 -2
  368. data/sig/mindee/v1/product/resume/resume_v1_certificate.rbs +27 -0
  369. data/sig/mindee/{product/fr/payslip/payslip_v3_paid_time_offs.rbs → v1/product/resume/resume_v1_certificates.rbs} +6 -4
  370. data/sig/mindee/v1/product/resume/resume_v1_document.rbs +69 -0
  371. data/sig/mindee/v1/product/resume/resume_v1_education.rbs +33 -0
  372. data/sig/mindee/{product/fr/payslip/payslip_v2_salary_details.rbs → v1/product/resume/resume_v1_educations.rbs} +6 -4
  373. data/sig/mindee/v1/product/resume/resume_v1_language.rbs +23 -0
  374. data/sig/mindee/{product/fr/payslip/payslip_v3_salary_details.rbs → v1/product/resume/resume_v1_languages.rbs} +6 -4
  375. data/sig/mindee/{product/us/us_mail/us_mail_v3_page.rbs → v1/product/resume/resume_v1_page.rbs} +8 -6
  376. data/sig/mindee/v1/product/resume/resume_v1_professional_experience.rbs +37 -0
  377. data/sig/mindee/{product/fr/energy_bill/energy_bill_v1_subscriptions.rbs → v1/product/resume/resume_v1_professional_experiences.rbs} +6 -4
  378. data/sig/mindee/v1/product/resume/resume_v1_social_networks_url.rbs +23 -0
  379. data/sig/mindee/{product/fr/energy_bill/energy_bill_v1_energy_usages.rbs → v1/product/resume/resume_v1_social_networks_urls.rbs} +6 -4
  380. data/sig/mindee/{product → v1/product}/universal/universal.rbs +4 -2
  381. data/sig/mindee/{product → v1/product}/universal/universal_document.rbs +4 -2
  382. data/sig/mindee/v1/product/universal/universal_page.rbs +18 -0
  383. data/sig/mindee/v1/product/universal/universal_prediction.rbs +30 -0
  384. data/sig/mindee/v2/client.rbs +29 -0
  385. data/sig/mindee/v2/file_operation/crop.rbs +10 -0
  386. data/sig/mindee/v2/file_operation/crop_files.rbs +9 -0
  387. data/sig/mindee/v2/file_operation/split.rbs +11 -0
  388. data/sig/mindee/v2/file_operation/split_files.rbs +9 -0
  389. data/sig/mindee/v2/http/api_v2_settings.rbs +27 -0
  390. data/sig/mindee/v2/http/mindee_api_v2.rbs +52 -0
  391. data/sig/mindee/v2/parsing/base_inference.rbs +3 -3
  392. data/sig/mindee/v2/parsing/base_response.rbs +1 -1
  393. data/sig/mindee/v2/parsing/common_response.rbs +12 -0
  394. data/sig/mindee/v2/parsing/error_item.rbs +13 -0
  395. data/sig/mindee/{parsing/v2 → v2/parsing}/error_response.rbs +4 -3
  396. data/sig/mindee/{parsing/v2 → v2/parsing}/field/base_field.rbs +3 -3
  397. data/sig/mindee/{parsing/v2 → v2/parsing}/field/field_confidence.rbs +3 -3
  398. data/sig/mindee/{parsing/v2 → v2/parsing}/field/field_location.rbs +3 -3
  399. data/sig/mindee/{parsing/v2 → v2/parsing}/field/inference_fields.rbs +3 -3
  400. data/sig/mindee/{parsing/v2 → v2/parsing}/field/list_field.rbs +3 -3
  401. data/sig/mindee/{parsing/v2 → v2/parsing}/field/object_field.rbs +3 -3
  402. data/sig/mindee/{parsing/v2 → v2/parsing}/field/simple_field.rbs +3 -3
  403. data/sig/mindee/{parsing/v2 → v2/parsing}/inference_active_options.rbs +6 -3
  404. data/sig/mindee/{parsing/v2 → v2/parsing}/inference_file.rbs +5 -3
  405. data/sig/mindee/{parsing/v2 → v2/parsing}/inference_job.rbs +3 -2
  406. data/sig/mindee/{parsing/v2 → v2/parsing}/inference_model.rbs +4 -3
  407. data/sig/mindee/{parsing/v2 → v2/parsing}/job.rbs +4 -3
  408. data/sig/mindee/{parsing/v2 → v2/parsing}/job_response.rbs +5 -3
  409. data/sig/mindee/{parsing/v2 → v2/parsing}/job_webhook.rbs +5 -3
  410. data/sig/mindee/{parsing/v2 → v2/parsing}/rag_metadata.rbs +3 -3
  411. data/sig/mindee/{parsing/v2 → v2/parsing}/raw_text.rbs +3 -3
  412. data/sig/mindee/{parsing/v2 → v2/parsing}/raw_text_page.rbs +2 -2
  413. data/sig/mindee/v2/parsing/search/pagination_metadata.rbs +20 -0
  414. data/sig/mindee/v2/parsing/search/search_model.rbs +19 -0
  415. data/sig/mindee/v2/parsing/search/search_response.rbs +17 -0
  416. data/sig/mindee/v2/parsing/search_models.rbs +14 -0
  417. data/sig/mindee/v2/product/classification/classification_response.rbs +1 -1
  418. data/sig/mindee/v2/product/crop/crop_item.rbs +4 -1
  419. data/sig/mindee/v2/product/crop/crop_response.rbs +3 -1
  420. data/sig/mindee/v2/product/extraction/extraction.rbs +3 -0
  421. data/sig/mindee/v2/product/extraction/extraction_inference.rbs +5 -0
  422. data/sig/mindee/v2/product/extraction/extraction_response.rbs +8 -2
  423. data/sig/mindee/v2/product/extraction/extraction_result.rbs +9 -1
  424. data/sig/mindee/v2/product/extraction/params/data_schema.rbs +21 -0
  425. data/sig/mindee/v2/product/extraction/params/data_schema_field.rbs +29 -0
  426. data/sig/mindee/v2/product/extraction/params/data_schema_replace.rbs +21 -0
  427. data/sig/mindee/v2/product/extraction/params/extraction_parameters.rbs +27 -1
  428. data/sig/mindee/v2/product/ocr/ocr.rbs +2 -2
  429. data/sig/mindee/v2/product/ocr/ocr_inference.rbs +3 -3
  430. data/sig/mindee/v2/product/ocr/ocr_page.rbs +3 -3
  431. data/sig/mindee/v2/product/ocr/ocr_response.rbs +6 -6
  432. data/sig/mindee/v2/product/ocr/ocr_result.rbs +3 -3
  433. data/sig/mindee/v2/product/ocr/ocr_word.rbs +2 -2
  434. data/sig/mindee/v2/product/ocr/params/ocr_parameters/ocr_parameters.rbs +3 -3
  435. data/sig/mindee/v2/product/split/split_range.rbs +4 -1
  436. data/sig/mindee/v2/product/split/split_response.rbs +3 -1
  437. data/sig/mindee.rbs +12 -9
  438. metadata +360 -568
  439. data/bin/cli_products.rb +0 -166
  440. data/docs/code_samples/bank_check_v1.txt +0 -24
  441. data/docs/code_samples/bill_of_lading_v1_async.txt +0 -24
  442. data/docs/code_samples/business_card_v1_async.txt +0 -24
  443. data/docs/code_samples/carte_grise_v1.txt +0 -24
  444. data/docs/code_samples/delivery_notes_v1_async.txt +0 -24
  445. data/docs/code_samples/driver_license_v1_async.txt +0 -24
  446. data/docs/code_samples/energy_bill_fra_v1_async.txt +0 -24
  447. data/docs/code_samples/french_healthcard_v1_async.txt +0 -24
  448. data/docs/code_samples/ind_passport_v1_async.txt +0 -24
  449. data/docs/code_samples/nutrition_facts_v1_async.txt +0 -24
  450. data/docs/code_samples/payslip_fra_v2_async.txt +0 -24
  451. data/docs/code_samples/payslip_fra_v3_async.txt +0 -24
  452. data/docs/code_samples/us_healthcare_cards_v1_async.txt +0 -24
  453. data/docs/code_samples/us_mail_v3_async.txt +0 -24
  454. data/lib/mindee/client.rb +0 -488
  455. data/lib/mindee/client_v2.rb +0 -161
  456. data/lib/mindee/errors.rb +0 -6
  457. data/lib/mindee/extraction/multi_receipts_extractor.rb +0 -30
  458. data/lib/mindee/http/api_settings_v2.rb +0 -63
  459. data/lib/mindee/http/endpoint.rb +0 -219
  460. data/lib/mindee/http/mindee_api_v2.rb +0 -215
  461. data/lib/mindee/http/workflow_endpoint.rb +0 -91
  462. data/lib/mindee/input/data_schema.rb +0 -126
  463. data/lib/mindee/input/inference_parameters.rb +0 -119
  464. data/lib/mindee/parsing/common/api_request.rb +0 -36
  465. data/lib/mindee/parsing/common/api_response.rb +0 -61
  466. data/lib/mindee/parsing/common/document.rb +0 -84
  467. data/lib/mindee/parsing/common/execution.rb +0 -75
  468. data/lib/mindee/parsing/common/execution_file.rb +0 -24
  469. data/lib/mindee/parsing/common/execution_priority.rb +0 -36
  470. data/lib/mindee/parsing/common/extras/cropper_extra.rb +0 -30
  471. data/lib/mindee/parsing/common/extras/extras.rb +0 -58
  472. data/lib/mindee/parsing/common/extras/full_text_ocr_extra.rb +0 -33
  473. data/lib/mindee/parsing/common/extras/rag_extra.rb +0 -26
  474. data/lib/mindee/parsing/common/inference.rb +0 -67
  475. data/lib/mindee/parsing/common/job.rb +0 -46
  476. data/lib/mindee/parsing/common/ocr/mvision_v1.rb +0 -50
  477. data/lib/mindee/parsing/common/ocr/ocr.rb +0 -178
  478. data/lib/mindee/parsing/common/orientation.rb +0 -26
  479. data/lib/mindee/parsing/common/page.rb +0 -47
  480. data/lib/mindee/parsing/common/prediction.rb +0 -17
  481. data/lib/mindee/parsing/common/product.rb +0 -24
  482. data/lib/mindee/parsing/common/workflow_response.rb +0 -28
  483. data/lib/mindee/parsing/standard/abstract_field.rb +0 -72
  484. data/lib/mindee/parsing/standard/address_field.rb +0 -49
  485. data/lib/mindee/parsing/standard/amount_field.rb +0 -26
  486. data/lib/mindee/parsing/standard/base_field.rb +0 -28
  487. data/lib/mindee/parsing/standard/boolean_field.rb +0 -27
  488. data/lib/mindee/parsing/standard/classification_field.rb +0 -16
  489. data/lib/mindee/parsing/standard/company_registration_field.rb +0 -43
  490. data/lib/mindee/parsing/standard/date_field.rb +0 -38
  491. data/lib/mindee/parsing/standard/feature_field.rb +0 -24
  492. data/lib/mindee/parsing/standard/locale_field.rb +0 -50
  493. data/lib/mindee/parsing/standard/payment_details_field.rb +0 -42
  494. data/lib/mindee/parsing/standard/position_field.rb +0 -59
  495. data/lib/mindee/parsing/standard/string_field.rb +0 -24
  496. data/lib/mindee/parsing/standard/tax_field.rb +0 -108
  497. data/lib/mindee/parsing/universal/universal_list_field.rb +0 -58
  498. data/lib/mindee/parsing/universal/universal_object_field.rb +0 -121
  499. data/lib/mindee/parsing/v2/inference.rb +0 -44
  500. data/lib/mindee/parsing/v2/inference_response.rb +0 -33
  501. data/lib/mindee/parsing/v2/inference_result.rb +0 -42
  502. data/lib/mindee/parsing/v2.rb +0 -16
  503. data/lib/mindee/product/barcode_reader/barcode_reader_v1.rb +0 -45
  504. data/lib/mindee/product/barcode_reader/barcode_reader_v1_document.rb +0 -44
  505. data/lib/mindee/product/barcode_reader/barcode_reader_v1_page.rb +0 -36
  506. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1.rb +0 -45
  507. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_carrier.rb +0 -52
  508. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_carrier_item.rb +0 -101
  509. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_carrier_items.rb +0 -62
  510. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_consignee.rb +0 -58
  511. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_document.rb +0 -163
  512. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_notify_party.rb +0 -58
  513. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_page.rb +0 -36
  514. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_shipper.rb +0 -58
  515. data/lib/mindee/product/business_card/business_card_v1.rb +0 -45
  516. data/lib/mindee/product/business_card/business_card_v1_document.rb +0 -112
  517. data/lib/mindee/product/business_card/business_card_v1_page.rb +0 -36
  518. data/lib/mindee/product/cropper/cropper_v1.rb +0 -45
  519. data/lib/mindee/product/cropper/cropper_v1_document.rb +0 -13
  520. data/lib/mindee/product/cropper/cropper_v1_page.rb +0 -53
  521. data/lib/mindee/product/delivery_note/delivery_note_v1.rb +0 -45
  522. data/lib/mindee/product/delivery_note/delivery_note_v1_document.rb +0 -82
  523. data/lib/mindee/product/delivery_note/delivery_note_v1_page.rb +0 -36
  524. data/lib/mindee/product/driver_license/driver_license_v1.rb +0 -45
  525. data/lib/mindee/product/driver_license/driver_license_v1_document.rb +0 -121
  526. data/lib/mindee/product/driver_license/driver_license_v1_page.rb +0 -36
  527. data/lib/mindee/product/financial_document/financial_document_v1.rb +0 -45
  528. data/lib/mindee/product/financial_document/financial_document_v1_document.rb +0 -326
  529. data/lib/mindee/product/financial_document/financial_document_v1_line_item.rb +0 -121
  530. data/lib/mindee/product/financial_document/financial_document_v1_line_items.rb +0 -62
  531. data/lib/mindee/product/financial_document/financial_document_v1_page.rb +0 -36
  532. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v1_document.rb +0 -46
  533. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2.rb +0 -47
  534. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2_bban.rb +0 -60
  535. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2_document.rb +0 -57
  536. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2_page.rb +0 -38
  537. data/lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb +0 -166
  538. data/lib/mindee/product/fr/bank_statement/bank_statement_v2_transaction.rb +0 -75
  539. data/lib/mindee/product/fr/carte_grise/carte_grise_v1_document.rb +0 -242
  540. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_document.rb +0 -265
  541. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_energy_consumer.rb +0 -48
  542. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_energy_supplier.rb +0 -48
  543. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_energy_usage.rb +0 -121
  544. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_meter_detail.rb +0 -54
  545. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_subscription.rb +0 -103
  546. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_taxes_and_contribution.rb +0 -103
  547. data/lib/mindee/product/fr/health_card/health_card_v1.rb +0 -47
  548. data/lib/mindee/product/fr/health_card/health_card_v1_document.rb +0 -61
  549. data/lib/mindee/product/fr/id_card/id_card_v1_page.rb +0 -55
  550. data/lib/mindee/product/fr/id_card/id_card_v2.rb +0 -47
  551. data/lib/mindee/product/fr/id_card/id_card_v2_document.rb +0 -140
  552. data/lib/mindee/product/fr/id_card/id_card_v2_page.rb +0 -63
  553. data/lib/mindee/product/fr/payslip/payslip_v2_bank_account_detail.rb +0 -54
  554. data/lib/mindee/product/fr/payslip/payslip_v2_document.rb +0 -143
  555. data/lib/mindee/product/fr/payslip/payslip_v2_employee.rb +0 -78
  556. data/lib/mindee/product/fr/payslip/payslip_v2_employer.rb +0 -78
  557. data/lib/mindee/product/fr/payslip/payslip_v2_employment.rb +0 -73
  558. data/lib/mindee/product/fr/payslip/payslip_v2_pay_detail.rb +0 -122
  559. data/lib/mindee/product/fr/payslip/payslip_v2_pay_period.rb +0 -66
  560. data/lib/mindee/product/fr/payslip/payslip_v2_pto.rb +0 -65
  561. data/lib/mindee/product/fr/payslip/payslip_v2_salary_detail.rb +0 -87
  562. data/lib/mindee/product/fr/payslip/payslip_v3_bank_account_detail.rb +0 -54
  563. data/lib/mindee/product/fr/payslip/payslip_v3_document.rb +0 -178
  564. data/lib/mindee/product/fr/payslip/payslip_v3_employee.rb +0 -78
  565. data/lib/mindee/product/fr/payslip/payslip_v3_employer.rb +0 -78
  566. data/lib/mindee/product/fr/payslip/payslip_v3_employment.rb +0 -78
  567. data/lib/mindee/product/fr/payslip/payslip_v3_paid_time_off.rb +0 -95
  568. data/lib/mindee/product/fr/payslip/payslip_v3_pay_detail.rb +0 -122
  569. data/lib/mindee/product/fr/payslip/payslip_v3_pay_period.rb +0 -66
  570. data/lib/mindee/product/fr/payslip/payslip_v3_salary_detail.rb +0 -97
  571. data/lib/mindee/product/fr/payslip/payslip_v3_salary_details.rb +0 -65
  572. data/lib/mindee/product/ind/indian_passport/indian_passport_v1_document.rb +0 -206
  573. data/lib/mindee/product/ind/indian_passport/indian_passport_v1_page.rb +0 -38
  574. data/lib/mindee/product/international_id/international_id_v2.rb +0 -45
  575. data/lib/mindee/product/international_id/international_id_v2_document.rb +0 -161
  576. data/lib/mindee/product/international_id/international_id_v2_page.rb +0 -36
  577. data/lib/mindee/product/invoice/invoice_v4.rb +0 -45
  578. data/lib/mindee/product/invoice/invoice_v4_document.rb +0 -297
  579. data/lib/mindee/product/invoice/invoice_v4_line_item.rb +0 -121
  580. data/lib/mindee/product/invoice/invoice_v4_line_items.rb +0 -62
  581. data/lib/mindee/product/invoice/invoice_v4_page.rb +0 -36
  582. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1.rb +0 -45
  583. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1_document.rb +0 -63
  584. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rb +0 -55
  585. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1_invoice_page_groups.rb +0 -48
  586. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1_page.rb +0 -36
  587. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1.rb +0 -45
  588. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb +0 -35
  589. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_page.rb +0 -36
  590. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1.rb +0 -45
  591. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_added_sugar.rb +0 -55
  592. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_calorie.rb +0 -55
  593. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_cholesterol.rb +0 -55
  594. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_dietary_fiber.rb +0 -55
  595. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_document.rb +0 -211
  596. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_nutrient.rb +0 -93
  597. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_nutrients.rb +0 -68
  598. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_page.rb +0 -36
  599. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_protein.rb +0 -55
  600. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_saturated_fat.rb +0 -55
  601. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_serving_size.rb +0 -47
  602. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_sodium.rb +0 -61
  603. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_carbohydrate.rb +0 -55
  604. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_fat.rb +0 -55
  605. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_sugar.rb +0 -55
  606. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_trans_fat.rb +0 -55
  607. data/lib/mindee/product/passport/passport_v1.rb +0 -45
  608. data/lib/mindee/product/passport/passport_v1_document.rb +0 -109
  609. data/lib/mindee/product/passport/passport_v1_page.rb +0 -36
  610. data/lib/mindee/product/receipt/receipt_v5.rb +0 -45
  611. data/lib/mindee/product/receipt/receipt_v5_document.rb +0 -184
  612. data/lib/mindee/product/receipt/receipt_v5_line_item.rb +0 -85
  613. data/lib/mindee/product/receipt/receipt_v5_line_items.rb +0 -54
  614. data/lib/mindee/product/receipt/receipt_v5_page.rb +0 -36
  615. data/lib/mindee/product/resume/resume_v1.rb +0 -45
  616. data/lib/mindee/product/resume/resume_v1_certificate.rb +0 -79
  617. data/lib/mindee/product/resume/resume_v1_certificates.rb +0 -58
  618. data/lib/mindee/product/resume/resume_v1_document.rb +0 -337
  619. data/lib/mindee/product/resume/resume_v1_education.rb +0 -103
  620. data/lib/mindee/product/resume/resume_v1_educations.rb +0 -64
  621. data/lib/mindee/product/resume/resume_v1_language.rb +0 -63
  622. data/lib/mindee/product/resume/resume_v1_languages.rb +0 -54
  623. data/lib/mindee/product/resume/resume_v1_page.rb +0 -36
  624. data/lib/mindee/product/resume/resume_v1_professional_experience.rb +0 -119
  625. data/lib/mindee/product/resume/resume_v1_professional_experiences.rb +0 -68
  626. data/lib/mindee/product/resume/resume_v1_social_networks_url.rb +0 -63
  627. data/lib/mindee/product/resume/resume_v1_social_networks_urls.rb +0 -54
  628. data/lib/mindee/product/universal/universal.rb +0 -46
  629. data/lib/mindee/product/universal/universal_document.rb +0 -32
  630. data/lib/mindee/product/universal/universal_page.rb +0 -51
  631. data/lib/mindee/product/universal/universal_prediction.rb +0 -122
  632. data/lib/mindee/product/us/bank_check/bank_check_v1_document.rb +0 -74
  633. data/lib/mindee/product/us/bank_check/bank_check_v1_page.rb +0 -64
  634. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1.rb +0 -47
  635. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_copay.rb +0 -67
  636. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_document.rb +0 -167
  637. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_page.rb +0 -38
  638. data/lib/mindee/product/us/us_mail/us_mail_v3_document.rb +0 -115
  639. data/lib/mindee/product/us/us_mail/us_mail_v3_recipient_address.rb +0 -113
  640. data/lib/mindee/product/us/us_mail/us_mail_v3_sender_address.rb +0 -66
  641. data/sig/mindee/client.rbs +0 -61
  642. data/sig/mindee/client_v2.rbs +0 -21
  643. data/sig/mindee/extraction/multi_receipts_extractor.rbs +0 -6
  644. data/sig/mindee/http/api_settings_v2.rbs +0 -23
  645. data/sig/mindee/http/endpoint.rbs +0 -29
  646. data/sig/mindee/http/mindee_api_v2.rbs +0 -38
  647. data/sig/mindee/http/workflow_endpoint.rbs +0 -20
  648. data/sig/mindee/input/data_schema.rbs +0 -34
  649. data/sig/mindee/input/inference_parameters.rbs +0 -32
  650. data/sig/mindee/parsing/common/api_request.rbs +0 -15
  651. data/sig/mindee/parsing/common/api_response.rbs +0 -27
  652. data/sig/mindee/parsing/common/document.rbs +0 -20
  653. data/sig/mindee/parsing/common/execution.rbs +0 -24
  654. data/sig/mindee/parsing/common/execution_file.rbs +0 -12
  655. data/sig/mindee/parsing/common/execution_priority.rbs +0 -13
  656. data/sig/mindee/parsing/common/extras/cropper_extra.rbs +0 -15
  657. data/sig/mindee/parsing/common/extras/extras.rbs +0 -19
  658. data/sig/mindee/parsing/common/extras/full_text_ocr_extra.rbs +0 -16
  659. data/sig/mindee/parsing/common/extras/rag_extra.rbs +0 -15
  660. data/sig/mindee/parsing/common/inference.rbs +0 -26
  661. data/sig/mindee/parsing/common/job.rbs +0 -16
  662. data/sig/mindee/parsing/common/ocr/mvision_v1.rbs +0 -15
  663. data/sig/mindee/parsing/common/ocr/ocr.rbs +0 -41
  664. data/sig/mindee/parsing/common/orientation.rbs +0 -13
  665. data/sig/mindee/parsing/common/page.rbs +0 -16
  666. data/sig/mindee/parsing/common/prediction.rbs +0 -11
  667. data/sig/mindee/parsing/common/product.rbs +0 -13
  668. data/sig/mindee/parsing/common/workflow_response.rbs +0 -17
  669. data/sig/mindee/parsing/standard/abstract_field.rbs +0 -19
  670. data/sig/mindee/parsing/standard/address_field.rbs +0 -18
  671. data/sig/mindee/parsing/standard/amount_field.rbs +0 -14
  672. data/sig/mindee/parsing/standard/base_field.rbs +0 -12
  673. data/sig/mindee/parsing/standard/boolean_field.rbs +0 -12
  674. data/sig/mindee/parsing/standard/classification_field.rbs +0 -10
  675. data/sig/mindee/parsing/standard/company_registration_field.rbs +0 -15
  676. data/sig/mindee/parsing/standard/date_field.rbs +0 -14
  677. data/sig/mindee/parsing/standard/feature_field.rbs +0 -10
  678. data/sig/mindee/parsing/standard/locale_field.rbs +0 -16
  679. data/sig/mindee/parsing/standard/payment_details_field.rbs +0 -16
  680. data/sig/mindee/parsing/standard/position_field.rbs +0 -17
  681. data/sig/mindee/parsing/standard/string_field.rbs +0 -12
  682. data/sig/mindee/parsing/standard/tax_field.rbs +0 -24
  683. data/sig/mindee/parsing/universal/universal_list_field.rbs +0 -16
  684. data/sig/mindee/parsing/universal/universal_object_field.rbs +0 -29
  685. data/sig/mindee/parsing/v2/common_response.rbs +0 -11
  686. data/sig/mindee/parsing/v2/error_item.rbs +0 -13
  687. data/sig/mindee/parsing/v2/inference.rbs +0 -18
  688. data/sig/mindee/parsing/v2/inference_response.rbs +0 -21
  689. data/sig/mindee/parsing/v2/inference_result.rbs +0 -15
  690. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1.rbs +0 -11
  691. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_carrier.rbs +0 -14
  692. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_carrier_item.rbs +0 -19
  693. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_carrier_items.rbs +0 -13
  694. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_consignee.rbs +0 -15
  695. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_document.rbs +0 -25
  696. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_notify_party.rbs +0 -15
  697. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_page.rbs +0 -15
  698. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_shipper.rbs +0 -15
  699. data/sig/mindee/product/business_card/business_card_v1.rbs +0 -11
  700. data/sig/mindee/product/business_card/business_card_v1_document.rbs +0 -23
  701. data/sig/mindee/product/business_card/business_card_v1_page.rbs +0 -15
  702. data/sig/mindee/product/delivery_note/delivery_note_v1.rbs +0 -11
  703. data/sig/mindee/product/delivery_note/delivery_note_v1_document.rbs +0 -19
  704. data/sig/mindee/product/delivery_note/delivery_note_v1_page.rbs +0 -15
  705. data/sig/mindee/product/driver_license/driver_license_v1.rbs +0 -11
  706. data/sig/mindee/product/driver_license/driver_license_v1_document.rbs +0 -25
  707. data/sig/mindee/product/driver_license/driver_license_v1_page.rbs +0 -15
  708. data/sig/mindee/product/financial_document/financial_document_v1_line_item.rbs +0 -21
  709. data/sig/mindee/product/fr/bank_account_details/bank_account_details_v2_bban.rbs +0 -17
  710. data/sig/mindee/product/fr/carte_grise/carte_grise_v1.rbs +0 -13
  711. data/sig/mindee/product/fr/carte_grise/carte_grise_v1_document.rbs +0 -55
  712. data/sig/mindee/product/fr/carte_grise/carte_grise_v1_page.rbs +0 -17
  713. data/sig/mindee/product/fr/energy_bill/energy_bill_v1.rbs +0 -13
  714. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_document.rbs +0 -34
  715. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_energy_consumer.rbs +0 -15
  716. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_energy_supplier.rbs +0 -15
  717. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_energy_usage.rbs +0 -23
  718. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_meter_detail.rbs +0 -16
  719. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_page.rbs +0 -17
  720. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_subscription.rbs +0 -21
  721. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_taxes_and_contributions.rbs +0 -15
  722. data/sig/mindee/product/fr/health_card/health_card_v1.rbs +0 -13
  723. data/sig/mindee/product/fr/health_card/health_card_v1_document.rbs +0 -18
  724. data/sig/mindee/product/fr/health_card/health_card_v1_page.rbs +0 -17
  725. data/sig/mindee/product/fr/id_card/id_card_v1.rbs +0 -13
  726. data/sig/mindee/product/fr/payslip/payslip_v2.rbs +0 -13
  727. data/sig/mindee/product/fr/payslip/payslip_v2_bank_account_detail.rbs +0 -16
  728. data/sig/mindee/product/fr/payslip/payslip_v2_document.rbs +0 -24
  729. data/sig/mindee/product/fr/payslip/payslip_v2_employee.rbs +0 -20
  730. data/sig/mindee/product/fr/payslip/payslip_v2_employer.rbs +0 -20
  731. data/sig/mindee/product/fr/payslip/payslip_v2_employment.rbs +0 -19
  732. data/sig/mindee/product/fr/payslip/payslip_v2_page.rbs +0 -17
  733. data/sig/mindee/product/fr/payslip/payslip_v2_pay_detail.rbs +0 -23
  734. data/sig/mindee/product/fr/payslip/payslip_v2_pay_period.rbs +0 -18
  735. data/sig/mindee/product/fr/payslip/payslip_v2_pto.rbs +0 -16
  736. data/sig/mindee/product/fr/payslip/payslip_v2_salary_detail.rbs +0 -19
  737. data/sig/mindee/product/fr/payslip/payslip_v3.rbs +0 -13
  738. data/sig/mindee/product/fr/payslip/payslip_v3_bank_account_detail.rbs +0 -16
  739. data/sig/mindee/product/fr/payslip/payslip_v3_document.rbs +0 -26
  740. data/sig/mindee/product/fr/payslip/payslip_v3_employee.rbs +0 -20
  741. data/sig/mindee/product/fr/payslip/payslip_v3_employer.rbs +0 -20
  742. data/sig/mindee/product/fr/payslip/payslip_v3_employment.rbs +0 -20
  743. data/sig/mindee/product/fr/payslip/payslip_v3_page.rbs +0 -17
  744. data/sig/mindee/product/fr/payslip/payslip_v3_paid_time_off.rbs +0 -20
  745. data/sig/mindee/product/fr/payslip/payslip_v3_pay_detail.rbs +0 -23
  746. data/sig/mindee/product/fr/payslip/payslip_v3_pay_period.rbs +0 -18
  747. data/sig/mindee/product/fr/payslip/payslip_v3_salary_detail.rbs +0 -20
  748. data/sig/mindee/product/ind/indian_passport/indian_passport_v1.rbs +0 -13
  749. data/sig/mindee/product/ind/indian_passport/indian_passport_v1_document.rbs +0 -37
  750. data/sig/mindee/product/ind/indian_passport/indian_passport_v1_page.rbs +0 -17
  751. data/sig/mindee/product/invoice/invoice_v4_line_item.rbs +0 -21
  752. data/sig/mindee/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rbs +0 -14
  753. data/sig/mindee/product/multi_receipts_detector/multi_receipts_detector_v1.rbs +0 -11
  754. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1.rbs +0 -11
  755. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_added_sugar.rbs +0 -14
  756. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_calorie.rbs +0 -14
  757. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_cholesterol.rbs +0 -14
  758. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_dietary_fiber.rbs +0 -14
  759. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_document.rbs +0 -28
  760. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_nutrient.rbs +0 -18
  761. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_nutrients.rbs +0 -13
  762. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_page.rbs +0 -15
  763. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_protein.rbs +0 -14
  764. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_saturated_fat.rbs +0 -14
  765. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_serving_size.rbs +0 -13
  766. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_sodium.rbs +0 -15
  767. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_carbohydrate.rbs +0 -14
  768. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_fat.rbs +0 -14
  769. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_sugar.rbs +0 -14
  770. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_trans_fat.rbs +0 -14
  771. data/sig/mindee/product/receipt/receipt_v5_line_item.rbs +0 -17
  772. data/sig/mindee/product/resume/resume_v1_certificate.rbs +0 -17
  773. data/sig/mindee/product/resume/resume_v1_certificates.rbs +0 -13
  774. data/sig/mindee/product/resume/resume_v1_document.rbs +0 -39
  775. data/sig/mindee/product/resume/resume_v1_education.rbs +0 -20
  776. data/sig/mindee/product/resume/resume_v1_educations.rbs +0 -13
  777. data/sig/mindee/product/resume/resume_v1_language.rbs +0 -15
  778. data/sig/mindee/product/resume/resume_v1_languages.rbs +0 -13
  779. data/sig/mindee/product/resume/resume_v1_page.rbs +0 -15
  780. data/sig/mindee/product/resume/resume_v1_professional_experience.rbs +0 -22
  781. data/sig/mindee/product/resume/resume_v1_professional_experiences.rbs +0 -13
  782. data/sig/mindee/product/resume/resume_v1_social_networks_url.rbs +0 -15
  783. data/sig/mindee/product/resume/resume_v1_social_networks_urls.rbs +0 -13
  784. data/sig/mindee/product/universal/universal_page.rbs +0 -14
  785. data/sig/mindee/product/universal/universal_prediction.rbs +0 -19
  786. data/sig/mindee/product/us/bank_check/bank_check_v1.rbs +0 -13
  787. data/sig/mindee/product/us/bank_check/bank_check_v1_document.rbs +0 -20
  788. data/sig/mindee/product/us/bank_check/bank_check_v1_page.rbs +0 -19
  789. data/sig/mindee/product/us/healthcare_card/healthcare_card_v1.rbs +0 -13
  790. data/sig/mindee/product/us/healthcare_card/healthcare_card_v1_copays.rbs +0 -15
  791. data/sig/mindee/product/us/healthcare_card/healthcare_card_v1_document.rbs +0 -30
  792. data/sig/mindee/product/us/healthcare_card/healthcare_card_v1_page.rbs +0 -17
  793. data/sig/mindee/product/us/us_mail/us_mail_v3.rbs +0 -13
  794. data/sig/mindee/product/us/us_mail/us_mail_v3_document.rbs +0 -21
  795. data/sig/mindee/product/us/us_mail/us_mail_v3_recipient_address.rbs +0 -23
  796. data/sig/mindee/product/us/us_mail/us_mail_v3_recipient_addresses.rbs +0 -15
  797. data/sig/mindee/product/us/us_mail/us_mail_v3_sender_address.rbs +0 -18
  798. data/sig/mindee/product/us/w9/w9_v1.rbs +0 -13
  799. data/sig/mindee/product/us/w9/w9_v1_document.rbs +0 -14
  800. data/sig/mindee/product/us/w9/w9_v1_page.rbs +0 -29
  801. /data/lib/mindee/{extraction.rb → v1/extraction.rb} +0 -0
  802. /data/lib/mindee/{parsing → v1/parsing}/common/extras.rb +0 -0
  803. /data/lib/mindee/{parsing → v1/parsing}/common/ocr.rb +0 -0
  804. /data/lib/mindee/{parsing → v1/parsing}/common.rb +0 -0
  805. /data/lib/mindee/{parsing → v1/parsing}/standard.rb +0 -0
  806. /data/lib/mindee/{parsing → v1/parsing}/universal.rb +0 -0
  807. /data/lib/mindee/{parsing.rb → v1/parsing.rb} +0 -0
  808. /data/lib/mindee/{parsing/v2 → v2/parsing}/field.rb +0 -0
@@ -31,7 +31,7 @@ module Mindee
31
31
  polling_options: nil,
32
32
  close_file: true
33
33
  )
34
- raise Errors::MindeeInputError, 'Model ID is required.' if model_id.empty? || model_id.nil?
34
+ raise Error::MindeeInputError, 'Model ID is required.' if model_id.empty? || model_id.nil?
35
35
 
36
36
  @model_id = model_id
37
37
  @file_alias = file_alias
@@ -54,6 +54,9 @@ module Mindee
54
54
  self.class.slug
55
55
  end
56
56
 
57
+ # Load from a hash
58
+ # @param [Hash] params Parameters to provide as a hash.
59
+ # @return [BaseParameters]
57
60
  def self.from_hash(params: {})
58
61
  load_from_hash(params: params)
59
62
  new(
@@ -72,7 +75,7 @@ module Mindee
72
75
  params.transform_keys!(&:to_sym)
73
76
 
74
77
  if params.empty? || params[:model_id].nil? || params[:model_id].empty?
75
- raise Errors::MindeeInputError, 'Model ID is required.'
78
+ raise Error::MindeeInputError, 'Model ID is required.'
76
79
  end
77
80
 
78
81
  polling_options_input = params.fetch(:page_options, PollingOptions.new)
@@ -27,7 +27,7 @@ module Mindee
27
27
  end
28
28
  @file.rewind
29
29
  else
30
- raise Errors::MindeeInputError, "Incompatible type for input '#{input_file.class}'."
30
+ raise Error::MindeeInputError, "Incompatible type for input '#{input_file.class}'."
31
31
  end
32
32
  end
33
33
 
@@ -38,7 +38,7 @@ module Mindee
38
38
  file_str = @file.read or raise 'File could not be read'
39
39
  JSON.parse(file_str, object_class: Hash)
40
40
  rescue JSON::ParserError
41
- raise Errors::MindeeInputError, "File is not a valid dict. #{file_str}"
41
+ raise Error::MindeeInputError, "File is not a valid dict. #{file_str}"
42
42
  end
43
43
 
44
44
  # Processes the secret key
@@ -57,7 +57,7 @@ module Mindee
57
57
  mac = OpenSSL::HMAC.hexdigest(algorithm, self.class.process_secret_key(secret_key),
58
58
  @file.read || raise('File could not be read'))
59
59
  rescue StandardError
60
- raise Errors::MindeeInputError, 'Could not get HMAC signature from payload.'
60
+ raise Error::MindeeInputError, 'Could not get HMAC signature from payload.'
61
61
  end
62
62
  mac
63
63
  end
@@ -70,12 +70,10 @@ module Mindee
70
70
  end
71
71
 
72
72
  # Deserializes a loaded response
73
- # @param response_class [Parsing::V2::CommonResponse] class to return.
74
- # @return [Parsing::V2::JobResponse, Mindee::V2::Parsing::CommonResponse]
73
+ # @param response_class [Class<V2::Parsing::BaseResponse>] class to return.
74
+ # @return [V2::Parsing::JobResponse, Mindee::V2::Parsing::BaseResponse]
75
75
  def deserialize_response(response_class)
76
- response_class.new(as_hash) # : Mindee::Parsing::V2::JobResponse | Mindee::Parsing::V2::InferenceResponse
77
- rescue StandardError
78
- raise Errors::MindeeInputError, 'Invalid response provided.'
76
+ response_class.new(as_hash) # : Mindee::V2::Parsing::JobResponse | Mindee::V2::Parsing::BaseResponse
79
77
  end
80
78
  end
81
79
  end
@@ -4,8 +4,9 @@ require 'stringio'
4
4
  require 'marcel'
5
5
  require 'fileutils'
6
6
 
7
- require_relative '../../pdf'
8
- require_relative '../../image'
7
+ require_relative '../../dependencies'
8
+ require_relative '../../pdf' if Mindee::Dependencies.all_deps_available?
9
+ require_relative '../../image' if Mindee::Dependencies.all_deps_available?
9
10
 
10
11
  module Mindee
11
12
  module Input
@@ -53,7 +54,7 @@ module Mindee
53
54
  return if ALLOWED_MIME_TYPES.include? @file_mimetype
54
55
  end
55
56
 
56
- raise Errors::MindeeMimeTypeError, @file_mimetype.to_s
57
+ raise Error::MindeeMimeTypeError, @file_mimetype.to_s
57
58
  end
58
59
 
59
60
  # @deprecated See {#fix_pdf!} or {#self.fix_pdf} instead.
@@ -69,7 +70,7 @@ module Mindee
69
70
  # Attempts to fix the PDF data in the file.
70
71
  # @param maximum_offset [Integer] Maximum offset to look for the PDF header.
71
72
  # @return [void]
72
- # @raise [Mindee::Errors::MindeePDFError]
73
+ # @raise [Mindee::Error::MindeePDFError]
73
74
  def fix_pdf!(maximum_offset: 500)
74
75
  @io_stream = LocalInputSource.fix_pdf(@io_stream, maximum_offset: maximum_offset)
75
76
  @io_stream.rewind
@@ -80,11 +81,11 @@ module Mindee
80
81
  # @param stream [StringIO] The stream to fix.
81
82
  # @param maximum_offset [Integer] Maximum offset to look for the PDF header.
82
83
  # @return [StringIO] The fixed stream.
83
- # @raise [Mindee::Errors::MindeePDFError]
84
+ # @raise [Mindee::Error::MindeePDFError]
84
85
  def self.fix_pdf(stream, maximum_offset: 500)
85
86
  out_stream = StringIO.new
86
87
  stream.gets('%PDF-')
87
- raise Errors::MindeePDFError if stream.eof? || stream.pos > maximum_offset
88
+ raise Error::MindeePDFError if stream.eof? || stream.pos > maximum_offset
88
89
 
89
90
  stream.pos = stream.pos - 5
90
91
  out_stream << stream.read
@@ -142,6 +143,9 @@ module Mindee
142
143
  # Defaults to one for images.
143
144
  # @return [Integer]
144
145
  def page_count
146
+ unless Mindee::Dependencies.all_deps_available?
147
+ raise NotImplementedError, Mindee::Dependencies::MINDEE_DEPENDENCIES_LOAD_ERROR
148
+ end
145
149
  return 1 unless pdf?
146
150
 
147
151
  @io_stream.seek(0)
@@ -149,14 +153,6 @@ module Mindee
149
153
  pdf_processor.pages.size
150
154
  end
151
155
 
152
- # Returns the page count for a document.
153
- # Defaults to one for images.
154
- # @return [Integer]
155
- # @deprecated Use {#page_count} instead.
156
- def count_pages
157
- page_count
158
- end
159
-
160
156
  # Compresses the file, according to the provided info.
161
157
  # @param [Integer] quality Quality of the output file.
162
158
  # @param [Integer, nil] max_width Maximum width (Ignored for PDFs).
@@ -167,6 +163,10 @@ module Mindee
167
163
  # @param [bool] disable_source_text If the PDF has source text, whether to re-apply it to the original or
168
164
  # not. Needs force_source_text to work.
169
165
  def compress!(quality: 85, max_width: nil, max_height: nil, force_source_text: false, disable_source_text: true)
166
+ unless Mindee::Dependencies.all_deps_available?
167
+ raise NotImplementedError, Mindee::Dependencies::MINDEE_DEPENDENCIES_LOAD_ERROR
168
+ end
169
+
170
170
  buffer = if pdf?
171
171
  Mindee::PDF::PDFCompressor.compress_pdf(
172
172
  @io_stream,
@@ -189,6 +189,10 @@ module Mindee
189
189
  # Checks whether the file has source text if it is a pdf. `false` otherwise
190
190
  # @return [bool] `true` if the file is a PDF and has source text.
191
191
  def source_text?
192
+ unless Mindee::Dependencies.all_deps_available?
193
+ raise NotImplementedError, Mindee::Dependencies::MINDEE_DEPENDENCIES_LOAD_ERROR
194
+ end
195
+
192
196
  Mindee::PDF::PDFTools.source_text?(@io_stream)
193
197
  end
194
198
  end
@@ -11,7 +11,7 @@ module Mindee
11
11
  # @param filepath [String]
12
12
  # @param repair_pdf [bool]
13
13
  def initialize(filepath, repair_pdf: false)
14
- io_stream = File.open(filepath, 'rb')
14
+ io_stream = File.new(filepath, 'rb')
15
15
  super(io_stream, File.basename(filepath), repair_pdf: repair_pdf)
16
16
  end
17
17
  end
@@ -14,7 +14,7 @@ module Mindee
14
14
  attr_reader :url
15
15
 
16
16
  def initialize(url)
17
- raise Errors::MindeeInputError, 'URL must be HTTPS' unless url.start_with? 'https://'
17
+ raise Error::MindeeInputError, 'URL must be HTTPS' unless url.start_with? 'https://'
18
18
 
19
19
  logger.debug("URL input: #{url}")
20
20
 
@@ -75,9 +75,9 @@ module Mindee
75
75
 
76
76
  response = make_request(uri, request, max_redirects)
77
77
  if response.code.to_i > 299
78
- raise Errors::MindeeAPIError, "Failed to download file: HTTP status code #{response.code}"
78
+ raise Error::MindeeAPIError, "Failed to download file: HTTP status code #{response.code}"
79
79
  elsif response.code.to_i < 200
80
- raise Errors::MindeeAPIError, "Failed to download file: Invalid response code #{response.code}."
80
+ raise Error::MindeeAPIError, "Failed to download file: Invalid response code #{response.code}."
81
81
  end
82
82
 
83
83
  response.body
@@ -103,7 +103,7 @@ module Mindee
103
103
  response = http.request(request)
104
104
  if response.is_a?(Net::HTTPRedirection) && max_redirects.positive?
105
105
  location = response['location']
106
- raise Errors::MindeeInputError, 'No location in redirection header.' if location.nil?
106
+ raise Error::MindeeInputError, 'No location in redirection header.' if location.nil?
107
107
 
108
108
  new_uri = URI.parse(location)
109
109
  request = Net::HTTP::Get.new(new_uri)
data/lib/mindee/input.rb CHANGED
@@ -1,6 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'input/data_schema'
4
- require_relative 'input/inference_parameters'
5
3
  require_relative 'input/polling_options'
6
4
  require_relative 'input/sources'
@@ -5,8 +5,16 @@ require 'logger'
5
5
  module Mindee
6
6
  # Mindee logging module.
7
7
  module Logging
8
- @logger = Logger.new($stdout)
9
8
  log_level = ENV.fetch('MINDEE_LOG_LEVEL', 'WARN')
9
+ log_output = ENV.fetch('MINDEE_LOG_OUTPUT', 'stderr')
10
+ @logger = if log_output == 'stderr'
11
+ Logger.new($stderr)
12
+ elsif log_output == 'stdout'
13
+ Logger.new($stdout)
14
+ else
15
+ warn "Invalid MINDEE_LOG_OUTPUT='#{log_output}', defaulting to 'stderr'"
16
+ Logger.new($stderr)
17
+ end
10
18
  @logger.level = Logger.const_get(log_level)
11
19
 
12
20
  class << self
@@ -11,7 +11,7 @@ module Mindee
11
11
  attr_accessor :page_indexes, :operation, :on_min_pages
12
12
 
13
13
  def initialize(params: {})
14
- params ||= {}
14
+ params ||= {} # : Hash[Symbol, untyped]
15
15
  params = params.transform_keys(&:to_sym)
16
16
  @page_indexes = params.fetch(
17
17
  :page_indexes,
@@ -3,57 +3,67 @@
3
3
  module Mindee
4
4
  # PDF Extraction Module.
5
5
  module PDF
6
- module PDFExtractor
7
- # An extracted sub-Pdf.
8
- class ExtractedPDF
9
- # Byte contents of the pdf
10
- # @return [StringIO]
11
- attr_reader :pdf_bytes
12
-
13
- # Name of the file.
14
- # @return [String]
15
- attr_reader :filename
16
-
17
- # @param pdf_bytes [StringIO]
18
- # @param filename [String]
19
- def initialize(pdf_bytes, filename)
20
- @pdf_bytes = pdf_bytes
21
- @filename = filename
22
- end
6
+ # An extracted sub-Pdf.
7
+ class ExtractedPDF
8
+ # Byte contents of the pdf
9
+ # @return [StringIO]
10
+ attr_reader :pdf_bytes
23
11
 
24
- # Retrieves the page count for a given pdf.
25
- # @return [Integer]
26
- def page_count
27
- current_pdf = Mindee::PDF::PDFProcessor.open_pdf(pdf_bytes)
28
- current_pdf.pages.size
29
- rescue TypeError, Origami::InvalidPDFError
30
- raise Errors::MindeePDFError, 'Could not retrieve page count from Extracted PDF object.'
31
- end
12
+ # Name of the file.
13
+ # @return [String]
14
+ attr_reader :filename
15
+
16
+ # @param pdf_stream [StringIO, File]
17
+ # @param filename [String]
18
+ def initialize(pdf_stream, filename)
19
+ @filename = filename
32
20
 
33
- # Writes the contents of the current PDF object to a file.
34
- # @param output_path [String] Path to write to.
35
- # @param override [bool] Whether to override the destination file.
36
- def write_to_file(output_path, override: false)
37
- raise Errors::MindeePDFError, 'Provided path is not a file' if File.directory?(output_path)
38
- raise Errors::MindeePDFError, 'Invalid save path provided' unless File.exist?(
39
- File.expand_path('..', output_path)
40
- ) && !override
41
-
42
- if File.extname(output_path).downcase == 'pdf'
43
- base_path = File.expand_path('..', output_path)
44
- output_path = File.expand_path("#{File.basename(output_path)}.pdf", base_path)
45
- end
46
-
47
- File.write(output_path, @pdf_bytes)
21
+ if pdf_stream.is_a?(File)
22
+ pdf_stream.rewind
23
+ @pdf_bytes = StringIO.new(pdf_stream.read)
24
+ else
25
+ @pdf_bytes = pdf_stream
48
26
  end
27
+ end
28
+
29
+ # Retrieves the page count for a given pdf.
30
+ # @return [Integer]
31
+ def page_count
32
+ current_pdf = Mindee::PDF::PDFProcessor.open_pdf(pdf_bytes)
33
+ current_pdf.pages.size
34
+ rescue TypeError, Origami::InvalidPDFError
35
+ raise Error::MindeePDFError, 'Could not retrieve page count from Extracted PDF object.'
36
+ end
49
37
 
50
- # Returns the current PDF object as a usable BytesInputSource.
51
- # @return [Mindee::Input::Source::BytesInputSource]
52
- def as_input_source
53
- raise Errors::MindeePDFError, 'Bytes object is nil.' if @pdf_bytes.nil?
38
+ # Writes the contents of the current PDF object to a file.
39
+ # @param output_path [String] Path to write to.
40
+ # @param override [bool] Whether to override the destination file.
41
+ def write_to_file(output_path, override: false)
42
+ raise Error::MindeePDFError, 'Provided path is not a file' if File.directory?(output_path)
43
+ raise Error::MindeePDFError, 'Invalid save path provided' unless File.exist?(
44
+ File.expand_path('..', output_path)
45
+ ) && !override
54
46
 
55
- Mindee::Input::Source::BytesInputSource.new(@pdf_bytes.read || '', @filename)
47
+ if File.extname(output_path).downcase == 'pdf'
48
+ base_path = File.expand_path('..', output_path)
49
+ output_path = File.expand_path("#{File.basename(output_path)}.pdf", base_path)
56
50
  end
51
+
52
+ @pdf_bytes.rewind if @pdf_bytes.respond_to?(:rewind)
53
+ File.binwrite(output_path, @pdf_bytes.read.to_s)
54
+ @pdf_bytes.rewind if @pdf_bytes.respond_to?(:rewind)
55
+ end
56
+
57
+ # Returns the current PDF object as a usable BytesInputSource.
58
+ # @return [Mindee::Input::Source::BytesInputSource]
59
+ def as_input_source
60
+ raise Error::MindeePDFError, 'Bytes object is nil.' if @pdf_bytes.nil?
61
+
62
+ @pdf_bytes.rewind if @pdf_bytes.respond_to?(:rewind)
63
+ data = @pdf_bytes.read || ''
64
+ @pdf_bytes.rewind if @pdf_bytes.respond_to?(:rewind)
65
+
66
+ Mindee::Input::Source::BytesInputSource.new(data, @filename)
57
67
  end
58
68
  end
59
69
  end
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ Mindee::Dependencies.require_all_deps!
3
4
  require 'pdf-reader'
5
+
4
6
  # Shorthand for pdf-reader's PDF namespace, to avoid mixups with the local Origami fork.
5
7
  PDFReader = PDF
6
8
 
@@ -3,118 +3,119 @@
3
3
  module Mindee
4
4
  # Pdf Extraction Module.
5
5
  module PDF
6
- # Pdf Extraction class.
7
- module PDFExtractor
8
- # Pdf extraction class.
9
- class PDFExtractor
10
- # @param local_input [Mindee::Input::Source::LocalInputSource]
11
- def initialize(local_input)
12
- @filename = local_input.filename
13
- if local_input.pdf?
14
- @source_pdf = local_input.io_stream
15
- else
16
- pdf_image = Image::ImageExtractor.attach_image_as_new_file(local_input.io_stream)
17
- io_buffer = StringIO.new
18
- pdf_image.save(io_buffer)
19
-
20
- @source_pdf = io_buffer
21
- end
6
+ # Pdf extraction class.
7
+ class PDFExtractor
8
+ # @param local_input [Mindee::Input::Source::LocalInputSource]
9
+ def initialize(local_input)
10
+ unless Mindee::Dependencies.all_deps_available?
11
+ raise NotImplementedError, Mindee::Dependencies::MINDEE_DEPENDENCIES_LOAD_ERROR
22
12
  end
23
13
 
24
- # Retrieves the page count for the Pdf object.
25
- # @return [Integer]
26
- def page_count
27
- Mindee::PDF::PDFProcessor.open_pdf(@source_pdf).pages.size
14
+ @filename = local_input.filename
15
+ if local_input.pdf?
16
+ @source_pdf = local_input.io_stream
17
+ else
18
+ pdf_image = Image::ImageExtractor.attach_image_as_new_file(local_input.io_stream)
19
+ io_buffer = StringIO.new
20
+ pdf_image.save(io_buffer)
21
+
22
+ @source_pdf = io_buffer
28
23
  end
24
+ end
29
25
 
30
- # Creates a new Pdf from pages and save it into a buffer.
31
- # @param page_indexes [Array<Integer>] List of page number to use for merging in the original Pdf.
32
- # @return [StringIO] The buffer containing the new Pdf.
33
- def cut_pages(page_indexes)
34
- options = PageOptions.new(params: {
35
- page_indexes: page_indexes,
36
- })
26
+ # Retrieves the page count for the Pdf object.
27
+ # @return [Integer]
28
+ def page_count
29
+ Mindee::PDF::PDFProcessor.open_pdf(@source_pdf).pages.size
30
+ end
37
31
 
38
- Mindee::PDF::PDFProcessor.parse(@source_pdf, options)
39
- end
32
+ # Creates a new Pdf from pages and save it into a buffer.
33
+ # @param page_indexes [Array<Integer>] List of page number to use for merging in the original Pdf.
34
+ # @return [StringIO] The buffer containing the new Pdf.
35
+ def cut_pages(page_indexes)
36
+ options = PageOptions.new(params: {
37
+ page_indexes: page_indexes,
38
+ })
40
39
 
41
- # Extract the sub-documents from the main pdf, based on the given list of page indexes.
42
- # @param page_indexes [Array<Array<Integer>>] List of page number to use for merging in the original Pdf.
43
- # @return [Array<Mindee::PDF::PDFExtractor::ExtractedPDF>] The buffer containing the new Pdf.
44
- def extract_sub_documents(page_indexes)
45
- extracted_pdfs = []
46
- extension = File.extname(@filename)
47
- basename = File.basename(@filename, extension)
48
- page_indexes.each do |page_index_list|
49
- if page_index_list.nil? || page_index_list.empty?
50
- raise Errors::MindeePDFError, "Empty indexes aren't allowed for extraction #{page_index_list}"
51
- end
40
+ Mindee::PDF::PDFProcessor.parse(@source_pdf, options)
41
+ end
42
+
43
+ # Extract the sub-documents from the main pdf, based on the given list of page indexes.
44
+ # @param page_indexes [Array<Array<Integer>>] List of page number to use for merging in the original Pdf.
45
+ # @return [Array<Mindee::PDF::ExtractedPDF>] The buffer containing the new Pdf.
46
+ def extract_sub_documents(page_indexes)
47
+ extracted_pdfs = [] # @type var extracted_pdfs: Array[Mindee::PDF::ExtractedPDF]
48
+ extension = File.extname(@filename)
49
+ basename = File.basename(@filename, extension)
50
+ page_indexes.each do |page_index_list|
51
+ if page_index_list.nil? || page_index_list.empty?
52
+ raise Error::MindeePDFError, "Empty indexes aren't allowed for extraction #{page_index_list}"
53
+ end
52
54
 
53
- page_index_list.each do |page_index|
54
- if (page_index > page_count) || page_index.negative?
55
- raise Errors::MindeePDFError,
56
- "Index #{page_index} is out of range."
57
- end
55
+ page_index_list.each do |page_index|
56
+ if (page_index > page_count) || page_index.negative?
57
+ raise Error::MindeePDFError,
58
+ "Index #{page_index} is out of range."
58
59
  end
59
- formatted_max_index = format('%03d', page_index_list[page_index_list.length - 1] + 1).to_s
60
- field_filename = "#{basename}_#{format('%03d',
61
- page_index_list[0] + 1)}-#{formatted_max_index}#{extension}"
62
- extracted_pdf = Mindee::PDF::PDFExtractor::ExtractedPDF.new(cut_pages(page_index_list),
63
- field_filename)
64
- extracted_pdfs << extracted_pdf
65
60
  end
66
- extracted_pdfs
61
+ formatted_max_index = format('%03d', page_index_list[-1] + 1).to_s
62
+ field_filename = "#{basename}_#{format('%03d',
63
+ page_index_list[0] + 1)}-#{formatted_max_index}#{extension}"
64
+ extracted_pdf = Mindee::PDF::ExtractedPDF.new(cut_pages(page_index_list),
65
+ field_filename)
66
+ extracted_pdfs << extracted_pdf
67
67
  end
68
+ extracted_pdfs
69
+ end
68
70
 
69
- # rubocop:disable Metrics/CyclomaticComplexity
70
- # rubocop:disable Metrics/PerceivedComplexity
71
+ # rubocop:disable Metrics/CyclomaticComplexity
72
+ # rubocop:disable Metrics/PerceivedComplexity
71
73
 
72
- # Extracts invoices as complete PDFs from the document.
73
- # @param page_indexes [Array<Array<Integer>, InvoiceSplitterV1InvoicePageGroup>]
74
- # @param strict [bool]
75
- # @return [Array<Mindee::PDF::PDFExtractor::ExtractedPDF>]
76
- def extract_invoices(page_indexes, strict: false)
77
- raise Errors::MindeePDFError, 'No indexes provided.' if page_indexes.empty?
74
+ # Extracts invoices as complete PDFs from the document.
75
+ # @param page_indexes [Array<Array<Integer>, InvoiceSplitterV1InvoicePageGroup>]
76
+ # @param strict [bool]
77
+ # @return [Array<Mindee::PDF::ExtractedPDF>]
78
+ def extract_invoices(page_indexes, strict: false)
79
+ raise Error::MindeePDFError, 'No indexes provided.' if page_indexes.empty?
78
80
 
79
- if page_indexes[0].is_a?(Array) && page_indexes[0].all? { |i| i.is_a?(Integer) }
80
- page_indexes_as_array = page_indexes # @type var page_indexes : Array[Array[Integer]]
81
- return extract_sub_documents(page_indexes_as_array)
82
- end
83
- p_ids = page_indexes # @type var page_indexes: Product::InvoiceSplitter::InvoiceSplitterV1InvoicePageGroups
84
- return extract_sub_documents(p_ids.map(&:page_indexes)) unless strict
85
-
86
- correct_page_indexes = []
87
- current_list = []
88
- previous_confidence = nil
89
- p_ids.each_with_index do |p_i, i|
90
- page_index = p_i # @type var page_index: Product::InvoiceSplitter::InvoiceSplitterV1InvoicePageGroup
91
- confidence = page_index.confidence.to_f
92
- page_list = page_index.page_indexes
93
-
94
- if confidence >= 0.5 && previous_confidence.nil?
95
- current_list = page_list
96
- elsif confidence >= 0.5 && i < p_ids.length - 1
97
- correct_page_indexes << current_list
98
- current_list = page_list
99
- elsif confidence < 0.5 && i == p_ids.length - 1
100
- current_list.concat page_list
101
- correct_page_indexes << current_list
102
- else
103
- correct_page_indexes << current_list
104
- correct_page_indexes << page_list
105
- end
106
- previous_confidence = confidence
81
+ if page_indexes[0].is_a?(Array) && page_indexes[0].all?(Integer)
82
+ page_indexes_as_array = page_indexes # @type var page_indexes : Array[Array[Integer]]
83
+ return extract_sub_documents(page_indexes_as_array)
84
+ end
85
+ p_ids = page_indexes # @type var page_indexes: Mindee::V1::Product::InvoiceSplitter::InvoiceSplitterV1InvoicePageGroups
86
+ return extract_sub_documents(p_ids.map(&:page_indexes)) unless strict
87
+
88
+ correct_page_indexes = [] # @type var correct_page_indexes: Array[Array[Integer]]
89
+ current_list = [] # @type var current_list: Array[Integer]
90
+ previous_confidence = nil
91
+ p_ids.each_with_index do |p_i, i|
92
+ page_index = p_i # @type var page_index: Mindee::V1::Product::InvoiceSplitter::InvoiceSplitterV1InvoicePageGroup
93
+ confidence = page_index.confidence.to_f
94
+ page_list = page_index.page_indexes
95
+
96
+ if confidence >= 0.5 && previous_confidence.nil?
97
+ current_list = page_list
98
+ elsif confidence >= 0.5 && i < p_ids.length - 1
99
+ correct_page_indexes << current_list
100
+ current_list = page_list
101
+ elsif confidence < 0.5 && i == p_ids.length - 1
102
+ current_list.concat page_list
103
+ correct_page_indexes << current_list
104
+ else
105
+ correct_page_indexes << current_list
106
+ correct_page_indexes << page_list
107
107
  end
108
- extract_sub_documents(correct_page_indexes)
108
+ previous_confidence = confidence
109
109
  end
110
+ extract_sub_documents(correct_page_indexes)
111
+ end
110
112
 
111
- # rubocop:enable Metrics/CyclomaticComplexity
112
- # rubocop:enable Metrics/PerceivedComplexity
113
+ # rubocop:enable Metrics/CyclomaticComplexity
114
+ # rubocop:enable Metrics/PerceivedComplexity
113
115
 
114
- private
116
+ private
115
117
 
116
- attr_reader :source_pdf, :filename
117
- end
118
+ attr_reader :source_pdf, :filename
118
119
  end
119
120
  end
120
121
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'set'
3
+ Mindee::Dependencies.require_all_deps!
4
4
  require 'origami'
5
5
  require_relative 'pdf_tools'
6
6
 
@@ -61,6 +61,11 @@ module Mindee
61
61
  # @param io_stream [StringIO]
62
62
  # @return [Origami::PDF]
63
63
  def self.open_pdf(io_stream)
64
+ unless PDFTools.pdf_header?(io_stream)
65
+ raise Origami::InvalidPDFError,
66
+ 'Input stream does not contain a PDF header.'
67
+ end
68
+
64
69
  pdf_parser = Origami::PDF::LinearParser.new({ verbosity: Origami::Parser::VERBOSE_QUIET })
65
70
  io_stream.seek(0)
66
71
  pdf_parser.parse(io_stream)
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ Mindee::Dependencies.require_all_deps!
3
4
  require 'origami'
4
5
 
5
6
  module Mindee
@@ -53,10 +54,28 @@ module Mindee
53
54
  text_operators.any? { |op| data.include?(op) }
54
55
  end
55
56
 
57
+ # Checks whether a stream contains a PDF header near the beginning.
58
+ # @param [StringIO] io_stream Binary-encoded stream.
59
+ # @param [Integer] maximum_offset Maximum allowed offset to find '%PDF-'.
60
+ # @return [bool] `true` when the stream appears to be a PDF.
61
+ def self.pdf_header?(io_stream, maximum_offset: 500)
62
+ initial_pos = nil
63
+ initial_pos = io_stream.pos if io_stream.respond_to?(:pos)
64
+ io_stream.seek(0)
65
+ io_stream.gets('%PDF-')
66
+ !(io_stream.eof? || io_stream.pos > maximum_offset)
67
+ rescue TypeError, IOError, SystemCallError
68
+ false
69
+ ensure
70
+ io_stream.seek(initial_pos) if !initial_pos.nil? && io_stream.respond_to?(:seek)
71
+ end
72
+
56
73
  # Checks whether the file has source_text. Sends false if the file isn't a PDF.
57
74
  # @param [StringIO] pdf_data Abinary-encoded stream representing the PDF file.
58
75
  # @return [bool] `true` if the pdf has source text, false otherwise.
59
76
  def self.source_text?(pdf_data)
77
+ return false unless pdf_header?(pdf_data)
78
+
60
79
  begin
61
80
  pdf_data.rewind
62
81
  pdf = Origami::PDF.read(pdf_data)