mindee 4.13.0 → 5.0.0.beta1

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 (807) 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 +44 -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/dependency.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 +4 -2
  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_operation/crop.rb +51 -0
  190. data/lib/mindee/v2/file_operation/crop_files.rb +25 -0
  191. data/lib/mindee/v2/file_operation/split.rb +37 -0
  192. data/lib/mindee/v2/file_operation/split_files.rb +25 -0
  193. data/lib/mindee/v2/file_operation.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/dependency.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 +1 -1
  269. data/sig/mindee/input/local_response.rbs +1 -1
  270. data/sig/mindee/input/sources/local_input_source.rbs +0 -1
  271. data/sig/mindee/pdf/extracted_pdf.rbs +11 -9
  272. data/sig/mindee/pdf/pdf_extractor.rbs +12 -10
  273. data/sig/mindee/pdf/pdf_tools.rbs +2 -0
  274. data/sig/mindee/v1/client.rbs +84 -0
  275. data/sig/mindee/v1/extraction/multi_receipts_extractor.rbs +8 -0
  276. data/sig/mindee/v1/http/endpoint.rbs +41 -0
  277. data/sig/mindee/v1/http/workflow_endpoint.rbs +22 -0
  278. data/sig/mindee/v1/parsing/common/api_request.rbs +22 -0
  279. data/sig/mindee/v1/parsing/common/api_response.rbs +31 -0
  280. data/sig/mindee/v1/parsing/common/document.rbs +32 -0
  281. data/sig/mindee/v1/parsing/common/execution.rbs +26 -0
  282. data/sig/mindee/v1/parsing/common/execution_file.rbs +16 -0
  283. data/sig/mindee/v1/parsing/common/execution_priority.rbs +16 -0
  284. data/sig/mindee/v1/parsing/common/extras/cropper_extra.rbs +18 -0
  285. data/sig/mindee/v1/parsing/common/extras/extras.rbs +24 -0
  286. data/sig/mindee/v1/parsing/common/extras/full_text_ocr_extra.rbs +22 -0
  287. data/sig/mindee/v1/parsing/common/extras/rag_extra.rbs +19 -0
  288. data/sig/mindee/v1/parsing/common/inference.rbs +31 -0
  289. data/sig/mindee/v1/parsing/common/job.rbs +24 -0
  290. data/sig/mindee/v1/parsing/common/ocr/mvision_v1.rbs +20 -0
  291. data/sig/mindee/v1/parsing/common/ocr/ocr.rbs +56 -0
  292. data/sig/mindee/v1/parsing/common/orientation.rbs +15 -0
  293. data/sig/mindee/v1/parsing/common/page.rbs +19 -0
  294. data/sig/mindee/v1/parsing/common/prediction.rbs +14 -0
  295. data/sig/mindee/v1/parsing/common/product.rbs +16 -0
  296. data/sig/mindee/v1/parsing/common/workflow_response.rbs +22 -0
  297. data/sig/mindee/v1/parsing/standard/abstract_field.rbs +30 -0
  298. data/sig/mindee/v1/parsing/standard/address_field.rbs +28 -0
  299. data/sig/mindee/v1/parsing/standard/amount_field.rbs +16 -0
  300. data/sig/mindee/v1/parsing/standard/base_field.rbs +16 -0
  301. data/sig/mindee/v1/parsing/standard/boolean_field.rbs +16 -0
  302. data/sig/mindee/v1/parsing/standard/classification_field.rbs +12 -0
  303. data/sig/mindee/v1/parsing/standard/company_registration_field.rbs +20 -0
  304. data/sig/mindee/v1/parsing/standard/date_field.rbs +20 -0
  305. data/sig/mindee/v1/parsing/standard/feature_field.rbs +12 -0
  306. data/sig/mindee/v1/parsing/standard/locale_field.rbs +24 -0
  307. data/sig/mindee/v1/parsing/standard/payment_details_field.rbs +19 -0
  308. data/sig/mindee/v1/parsing/standard/position_field.rbs +26 -0
  309. data/sig/mindee/v1/parsing/standard/string_field.rbs +16 -0
  310. data/sig/mindee/v1/parsing/standard/tax_field.rbs +33 -0
  311. data/sig/mindee/v1/parsing/universal/universal_list_field.rbs +21 -0
  312. data/sig/mindee/v1/parsing/universal/universal_object_field.rbs +38 -0
  313. data/sig/mindee/{product → v1/product}/barcode_reader/barcode_reader_v1.rbs +4 -2
  314. data/sig/mindee/{product → v1/product}/barcode_reader/barcode_reader_v1_document.rbs +4 -2
  315. data/sig/mindee/{product → v1/product}/barcode_reader/barcode_reader_v1_page.rbs +4 -2
  316. data/sig/mindee/{product → v1/product}/cropper/cropper_v1.rbs +4 -2
  317. data/sig/mindee/{product → v1/product}/cropper/cropper_v1_document.rbs +4 -2
  318. data/sig/mindee/{product → v1/product}/cropper/cropper_v1_page.rbs +6 -3
  319. data/sig/mindee/{product → v1/product}/financial_document/financial_document_v1.rbs +4 -2
  320. data/sig/mindee/{product → v1/product}/financial_document/financial_document_v1_document.rbs +4 -2
  321. data/sig/mindee/v1/product/financial_document/financial_document_v1_line_item.rbs +35 -0
  322. data/sig/mindee/{product → v1/product}/financial_document/financial_document_v1_line_items.rbs +3 -1
  323. data/sig/mindee/{product → v1/product}/financial_document/financial_document_v1_page.rbs +4 -2
  324. data/sig/mindee/{product → v1/product}/fr/bank_account_details/bank_account_details_v1.rbs +4 -2
  325. data/sig/mindee/{product → v1/product}/fr/bank_account_details/bank_account_details_v1_document.rbs +4 -2
  326. data/sig/mindee/{product → v1/product}/fr/bank_account_details/bank_account_details_v1_page.rbs +4 -2
  327. data/sig/mindee/{product → v1/product}/fr/bank_account_details/bank_account_details_v2.rbs +4 -2
  328. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rbs +25 -0
  329. data/sig/mindee/{product → v1/product}/fr/bank_account_details/bank_account_details_v2_document.rbs +4 -2
  330. data/sig/mindee/{product → v1/product}/fr/bank_account_details/bank_account_details_v2_page.rbs +4 -2
  331. data/sig/mindee/{product → v1/product}/fr/bank_statement/bank_statement_v2.rbs +4 -2
  332. data/sig/mindee/{product → v1/product}/fr/bank_statement/bank_statement_v2_document.rbs +4 -2
  333. data/sig/mindee/{product → v1/product}/fr/bank_statement/bank_statement_v2_page.rbs +4 -2
  334. data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rbs +27 -0
  335. data/sig/mindee/{product → v1/product}/fr/bank_statement/bank_statement_v2_transactions.rbs +3 -1
  336. data/sig/mindee/v1/product/fr/id_card/id_card_v1.rbs +15 -0
  337. data/sig/mindee/{product → v1/product}/fr/id_card/id_card_v1_document.rbs +4 -2
  338. data/sig/mindee/{product → v1/product}/fr/id_card/id_card_v1_page.rbs +4 -2
  339. data/sig/mindee/{product → v1/product}/fr/id_card/id_card_v2.rbs +4 -2
  340. data/sig/mindee/{product → v1/product}/fr/id_card/id_card_v2_document.rbs +4 -2
  341. data/sig/mindee/{product → v1/product}/fr/id_card/id_card_v2_page.rbs +4 -2
  342. data/sig/mindee/{product → v1/product}/international_id/international_id_v2.rbs +4 -2
  343. data/sig/mindee/{product → v1/product}/international_id/international_id_v2_document.rbs +4 -2
  344. data/sig/mindee/{product → v1/product}/international_id/international_id_v2_page.rbs +4 -2
  345. data/sig/mindee/{product → v1/product}/invoice/invoice_v4.rbs +4 -2
  346. data/sig/mindee/{product → v1/product}/invoice/invoice_v4_document.rbs +4 -2
  347. data/sig/mindee/{product/fr/energy_bill/energy_bill_v1_taxes_and_contribution.rbs → v1/product/invoice/invoice_v4_line_item.rbs} +22 -8
  348. data/sig/mindee/{product → v1/product}/invoice/invoice_v4_line_items.rbs +3 -1
  349. data/sig/mindee/{product → v1/product}/invoice/invoice_v4_page.rbs +4 -2
  350. data/sig/mindee/{product → v1/product}/invoice_splitter/invoice_splitter_v1.rbs +4 -2
  351. data/sig/mindee/{product → v1/product}/invoice_splitter/invoice_splitter_v1_document.rbs +4 -2
  352. 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
  353. data/sig/mindee/{product → v1/product}/invoice_splitter/invoice_splitter_v1_invoice_page_groups.rbs +3 -1
  354. data/sig/mindee/{product → v1/product}/invoice_splitter/invoice_splitter_v1_page.rbs +4 -2
  355. data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rbs +14 -0
  356. data/sig/mindee/{product → v1/product}/multi_receipts_detector/multi_receipts_detector_v1_document.rbs +5 -3
  357. data/sig/mindee/{product → v1/product}/multi_receipts_detector/multi_receipts_detector_v1_page.rbs +4 -2
  358. data/sig/mindee/{product → v1/product}/passport/passport_v1.rbs +4 -2
  359. data/sig/mindee/{product → v1/product}/passport/passport_v1_document.rbs +4 -2
  360. data/sig/mindee/{product → v1/product}/passport/passport_v1_page.rbs +4 -2
  361. data/sig/mindee/{product → v1/product}/receipt/receipt_v5.rbs +4 -2
  362. data/sig/mindee/{product → v1/product}/receipt/receipt_v5_document.rbs +4 -2
  363. data/sig/mindee/{product/fr/bank_statement/bank_statement_v2_transaction.rbs → v1/product/receipt/receipt_v5_line_item.rbs} +16 -7
  364. data/sig/mindee/{product → v1/product}/receipt/receipt_v5_line_items.rbs +3 -1
  365. data/sig/mindee/{product → v1/product}/receipt/receipt_v5_page.rbs +4 -2
  366. data/sig/mindee/{product → v1/product}/resume/resume_v1.rbs +4 -2
  367. data/sig/mindee/v1/product/resume/resume_v1_certificate.rbs +27 -0
  368. data/sig/mindee/{product/fr/payslip/payslip_v3_paid_time_offs.rbs → v1/product/resume/resume_v1_certificates.rbs} +6 -4
  369. data/sig/mindee/v1/product/resume/resume_v1_document.rbs +69 -0
  370. data/sig/mindee/v1/product/resume/resume_v1_education.rbs +33 -0
  371. data/sig/mindee/{product/fr/payslip/payslip_v2_salary_details.rbs → v1/product/resume/resume_v1_educations.rbs} +6 -4
  372. data/sig/mindee/v1/product/resume/resume_v1_language.rbs +23 -0
  373. data/sig/mindee/{product/fr/payslip/payslip_v3_salary_details.rbs → v1/product/resume/resume_v1_languages.rbs} +6 -4
  374. data/sig/mindee/{product/us/us_mail/us_mail_v3_page.rbs → v1/product/resume/resume_v1_page.rbs} +8 -6
  375. data/sig/mindee/v1/product/resume/resume_v1_professional_experience.rbs +37 -0
  376. data/sig/mindee/{product/fr/energy_bill/energy_bill_v1_subscriptions.rbs → v1/product/resume/resume_v1_professional_experiences.rbs} +6 -4
  377. data/sig/mindee/v1/product/resume/resume_v1_social_networks_url.rbs +23 -0
  378. data/sig/mindee/{product/fr/energy_bill/energy_bill_v1_energy_usages.rbs → v1/product/resume/resume_v1_social_networks_urls.rbs} +6 -4
  379. data/sig/mindee/{product → v1/product}/universal/universal.rbs +4 -2
  380. data/sig/mindee/{product → v1/product}/universal/universal_document.rbs +4 -2
  381. data/sig/mindee/v1/product/universal/universal_page.rbs +18 -0
  382. data/sig/mindee/v1/product/universal/universal_prediction.rbs +30 -0
  383. data/sig/mindee/v2/client.rbs +29 -0
  384. data/sig/mindee/v2/file_operation/crop.rbs +10 -0
  385. data/sig/mindee/v2/file_operation/crop_files.rbs +9 -0
  386. data/sig/mindee/v2/file_operation/split.rbs +11 -0
  387. data/sig/mindee/v2/file_operation/split_files.rbs +9 -0
  388. data/sig/mindee/v2/http/api_v2_settings.rbs +27 -0
  389. data/sig/mindee/v2/http/mindee_api_v2.rbs +52 -0
  390. data/sig/mindee/v2/parsing/base_inference.rbs +3 -3
  391. data/sig/mindee/v2/parsing/base_response.rbs +1 -1
  392. data/sig/mindee/v2/parsing/common_response.rbs +12 -0
  393. data/sig/mindee/v2/parsing/error_item.rbs +13 -0
  394. data/sig/mindee/{parsing/v2 → v2/parsing}/error_response.rbs +4 -3
  395. data/sig/mindee/{parsing/v2 → v2/parsing}/field/base_field.rbs +3 -3
  396. data/sig/mindee/{parsing/v2 → v2/parsing}/field/field_confidence.rbs +3 -3
  397. data/sig/mindee/{parsing/v2 → v2/parsing}/field/field_location.rbs +3 -3
  398. data/sig/mindee/{parsing/v2 → v2/parsing}/field/inference_fields.rbs +3 -3
  399. data/sig/mindee/{parsing/v2 → v2/parsing}/field/list_field.rbs +3 -3
  400. data/sig/mindee/{parsing/v2 → v2/parsing}/field/object_field.rbs +3 -3
  401. data/sig/mindee/{parsing/v2 → v2/parsing}/field/simple_field.rbs +3 -3
  402. data/sig/mindee/{parsing/v2 → v2/parsing}/inference_active_options.rbs +6 -3
  403. data/sig/mindee/{parsing/v2 → v2/parsing}/inference_file.rbs +5 -3
  404. data/sig/mindee/{parsing/v2 → v2/parsing}/inference_job.rbs +3 -2
  405. data/sig/mindee/{parsing/v2 → v2/parsing}/inference_model.rbs +4 -3
  406. data/sig/mindee/{parsing/v2 → v2/parsing}/job.rbs +4 -3
  407. data/sig/mindee/{parsing/v2 → v2/parsing}/job_response.rbs +5 -3
  408. data/sig/mindee/{parsing/v2 → v2/parsing}/job_webhook.rbs +5 -3
  409. data/sig/mindee/{parsing/v2 → v2/parsing}/rag_metadata.rbs +3 -3
  410. data/sig/mindee/{parsing/v2 → v2/parsing}/raw_text.rbs +3 -3
  411. data/sig/mindee/{parsing/v2 → v2/parsing}/raw_text_page.rbs +2 -2
  412. data/sig/mindee/v2/parsing/search/pagination_metadata.rbs +20 -0
  413. data/sig/mindee/v2/parsing/search/search_model.rbs +19 -0
  414. data/sig/mindee/v2/parsing/search/search_response.rbs +17 -0
  415. data/sig/mindee/v2/parsing/search_models.rbs +14 -0
  416. data/sig/mindee/v2/product/classification/classification_response.rbs +1 -1
  417. data/sig/mindee/v2/product/crop/crop_item.rbs +4 -1
  418. data/sig/mindee/v2/product/crop/crop_response.rbs +3 -1
  419. data/sig/mindee/v2/product/extraction/extraction.rbs +3 -0
  420. data/sig/mindee/v2/product/extraction/extraction_inference.rbs +5 -0
  421. data/sig/mindee/v2/product/extraction/extraction_response.rbs +8 -2
  422. data/sig/mindee/v2/product/extraction/extraction_result.rbs +9 -1
  423. data/sig/mindee/v2/product/extraction/params/data_schema.rbs +21 -0
  424. data/sig/mindee/v2/product/extraction/params/data_schema_field.rbs +29 -0
  425. data/sig/mindee/v2/product/extraction/params/data_schema_replace.rbs +21 -0
  426. data/sig/mindee/v2/product/extraction/params/extraction_parameters.rbs +27 -1
  427. data/sig/mindee/v2/product/ocr/ocr.rbs +2 -2
  428. data/sig/mindee/v2/product/ocr/ocr_inference.rbs +3 -3
  429. data/sig/mindee/v2/product/ocr/ocr_page.rbs +3 -3
  430. data/sig/mindee/v2/product/ocr/ocr_response.rbs +6 -6
  431. data/sig/mindee/v2/product/ocr/ocr_result.rbs +3 -3
  432. data/sig/mindee/v2/product/ocr/ocr_word.rbs +2 -2
  433. data/sig/mindee/v2/product/ocr/params/ocr_parameters/ocr_parameters.rbs +3 -3
  434. data/sig/mindee/v2/product/split/split_range.rbs +4 -1
  435. data/sig/mindee/v2/product/split/split_response.rbs +3 -1
  436. data/sig/mindee.rbs +12 -9
  437. metadata +360 -568
  438. data/bin/cli_products.rb +0 -166
  439. data/docs/code_samples/bank_check_v1.txt +0 -24
  440. data/docs/code_samples/bill_of_lading_v1_async.txt +0 -24
  441. data/docs/code_samples/business_card_v1_async.txt +0 -24
  442. data/docs/code_samples/carte_grise_v1.txt +0 -24
  443. data/docs/code_samples/delivery_notes_v1_async.txt +0 -24
  444. data/docs/code_samples/driver_license_v1_async.txt +0 -24
  445. data/docs/code_samples/energy_bill_fra_v1_async.txt +0 -24
  446. data/docs/code_samples/french_healthcard_v1_async.txt +0 -24
  447. data/docs/code_samples/ind_passport_v1_async.txt +0 -24
  448. data/docs/code_samples/nutrition_facts_v1_async.txt +0 -24
  449. data/docs/code_samples/payslip_fra_v2_async.txt +0 -24
  450. data/docs/code_samples/payslip_fra_v3_async.txt +0 -24
  451. data/docs/code_samples/us_healthcare_cards_v1_async.txt +0 -24
  452. data/docs/code_samples/us_mail_v3_async.txt +0 -24
  453. data/lib/mindee/client.rb +0 -488
  454. data/lib/mindee/client_v2.rb +0 -161
  455. data/lib/mindee/errors.rb +0 -6
  456. data/lib/mindee/extraction/multi_receipts_extractor.rb +0 -30
  457. data/lib/mindee/http/api_settings_v2.rb +0 -63
  458. data/lib/mindee/http/endpoint.rb +0 -219
  459. data/lib/mindee/http/mindee_api_v2.rb +0 -215
  460. data/lib/mindee/http/workflow_endpoint.rb +0 -91
  461. data/lib/mindee/input/data_schema.rb +0 -126
  462. data/lib/mindee/input/inference_parameters.rb +0 -119
  463. data/lib/mindee/parsing/common/api_request.rb +0 -36
  464. data/lib/mindee/parsing/common/api_response.rb +0 -61
  465. data/lib/mindee/parsing/common/document.rb +0 -84
  466. data/lib/mindee/parsing/common/execution.rb +0 -75
  467. data/lib/mindee/parsing/common/execution_file.rb +0 -24
  468. data/lib/mindee/parsing/common/execution_priority.rb +0 -36
  469. data/lib/mindee/parsing/common/extras/cropper_extra.rb +0 -30
  470. data/lib/mindee/parsing/common/extras/extras.rb +0 -58
  471. data/lib/mindee/parsing/common/extras/full_text_ocr_extra.rb +0 -33
  472. data/lib/mindee/parsing/common/extras/rag_extra.rb +0 -26
  473. data/lib/mindee/parsing/common/inference.rb +0 -67
  474. data/lib/mindee/parsing/common/job.rb +0 -46
  475. data/lib/mindee/parsing/common/ocr/mvision_v1.rb +0 -50
  476. data/lib/mindee/parsing/common/ocr/ocr.rb +0 -178
  477. data/lib/mindee/parsing/common/orientation.rb +0 -26
  478. data/lib/mindee/parsing/common/page.rb +0 -47
  479. data/lib/mindee/parsing/common/prediction.rb +0 -17
  480. data/lib/mindee/parsing/common/product.rb +0 -24
  481. data/lib/mindee/parsing/common/workflow_response.rb +0 -28
  482. data/lib/mindee/parsing/standard/abstract_field.rb +0 -72
  483. data/lib/mindee/parsing/standard/address_field.rb +0 -49
  484. data/lib/mindee/parsing/standard/amount_field.rb +0 -26
  485. data/lib/mindee/parsing/standard/base_field.rb +0 -28
  486. data/lib/mindee/parsing/standard/boolean_field.rb +0 -27
  487. data/lib/mindee/parsing/standard/classification_field.rb +0 -16
  488. data/lib/mindee/parsing/standard/company_registration_field.rb +0 -43
  489. data/lib/mindee/parsing/standard/date_field.rb +0 -38
  490. data/lib/mindee/parsing/standard/feature_field.rb +0 -24
  491. data/lib/mindee/parsing/standard/locale_field.rb +0 -50
  492. data/lib/mindee/parsing/standard/payment_details_field.rb +0 -42
  493. data/lib/mindee/parsing/standard/position_field.rb +0 -59
  494. data/lib/mindee/parsing/standard/string_field.rb +0 -24
  495. data/lib/mindee/parsing/standard/tax_field.rb +0 -108
  496. data/lib/mindee/parsing/universal/universal_list_field.rb +0 -58
  497. data/lib/mindee/parsing/universal/universal_object_field.rb +0 -121
  498. data/lib/mindee/parsing/v2/inference.rb +0 -44
  499. data/lib/mindee/parsing/v2/inference_response.rb +0 -33
  500. data/lib/mindee/parsing/v2/inference_result.rb +0 -42
  501. data/lib/mindee/parsing/v2.rb +0 -16
  502. data/lib/mindee/product/barcode_reader/barcode_reader_v1.rb +0 -45
  503. data/lib/mindee/product/barcode_reader/barcode_reader_v1_document.rb +0 -44
  504. data/lib/mindee/product/barcode_reader/barcode_reader_v1_page.rb +0 -36
  505. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1.rb +0 -45
  506. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_carrier.rb +0 -52
  507. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_carrier_item.rb +0 -101
  508. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_carrier_items.rb +0 -62
  509. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_consignee.rb +0 -58
  510. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_document.rb +0 -163
  511. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_notify_party.rb +0 -58
  512. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_page.rb +0 -36
  513. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_shipper.rb +0 -58
  514. data/lib/mindee/product/business_card/business_card_v1.rb +0 -45
  515. data/lib/mindee/product/business_card/business_card_v1_document.rb +0 -112
  516. data/lib/mindee/product/business_card/business_card_v1_page.rb +0 -36
  517. data/lib/mindee/product/cropper/cropper_v1.rb +0 -45
  518. data/lib/mindee/product/cropper/cropper_v1_document.rb +0 -13
  519. data/lib/mindee/product/cropper/cropper_v1_page.rb +0 -53
  520. data/lib/mindee/product/delivery_note/delivery_note_v1.rb +0 -45
  521. data/lib/mindee/product/delivery_note/delivery_note_v1_document.rb +0 -82
  522. data/lib/mindee/product/delivery_note/delivery_note_v1_page.rb +0 -36
  523. data/lib/mindee/product/driver_license/driver_license_v1.rb +0 -45
  524. data/lib/mindee/product/driver_license/driver_license_v1_document.rb +0 -121
  525. data/lib/mindee/product/driver_license/driver_license_v1_page.rb +0 -36
  526. data/lib/mindee/product/financial_document/financial_document_v1.rb +0 -45
  527. data/lib/mindee/product/financial_document/financial_document_v1_document.rb +0 -326
  528. data/lib/mindee/product/financial_document/financial_document_v1_line_item.rb +0 -121
  529. data/lib/mindee/product/financial_document/financial_document_v1_line_items.rb +0 -62
  530. data/lib/mindee/product/financial_document/financial_document_v1_page.rb +0 -36
  531. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v1_document.rb +0 -46
  532. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2.rb +0 -47
  533. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2_bban.rb +0 -60
  534. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2_document.rb +0 -57
  535. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2_page.rb +0 -38
  536. data/lib/mindee/product/fr/bank_statement/bank_statement_v2_document.rb +0 -166
  537. data/lib/mindee/product/fr/bank_statement/bank_statement_v2_transaction.rb +0 -75
  538. data/lib/mindee/product/fr/carte_grise/carte_grise_v1_document.rb +0 -242
  539. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_document.rb +0 -265
  540. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_energy_consumer.rb +0 -48
  541. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_energy_supplier.rb +0 -48
  542. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_energy_usage.rb +0 -121
  543. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_meter_detail.rb +0 -54
  544. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_subscription.rb +0 -103
  545. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_taxes_and_contribution.rb +0 -103
  546. data/lib/mindee/product/fr/health_card/health_card_v1.rb +0 -47
  547. data/lib/mindee/product/fr/health_card/health_card_v1_document.rb +0 -61
  548. data/lib/mindee/product/fr/id_card/id_card_v1_page.rb +0 -55
  549. data/lib/mindee/product/fr/id_card/id_card_v2.rb +0 -47
  550. data/lib/mindee/product/fr/id_card/id_card_v2_document.rb +0 -140
  551. data/lib/mindee/product/fr/id_card/id_card_v2_page.rb +0 -63
  552. data/lib/mindee/product/fr/payslip/payslip_v2_bank_account_detail.rb +0 -54
  553. data/lib/mindee/product/fr/payslip/payslip_v2_document.rb +0 -143
  554. data/lib/mindee/product/fr/payslip/payslip_v2_employee.rb +0 -78
  555. data/lib/mindee/product/fr/payslip/payslip_v2_employer.rb +0 -78
  556. data/lib/mindee/product/fr/payslip/payslip_v2_employment.rb +0 -73
  557. data/lib/mindee/product/fr/payslip/payslip_v2_pay_detail.rb +0 -122
  558. data/lib/mindee/product/fr/payslip/payslip_v2_pay_period.rb +0 -66
  559. data/lib/mindee/product/fr/payslip/payslip_v2_pto.rb +0 -65
  560. data/lib/mindee/product/fr/payslip/payslip_v2_salary_detail.rb +0 -87
  561. data/lib/mindee/product/fr/payslip/payslip_v3_bank_account_detail.rb +0 -54
  562. data/lib/mindee/product/fr/payslip/payslip_v3_document.rb +0 -178
  563. data/lib/mindee/product/fr/payslip/payslip_v3_employee.rb +0 -78
  564. data/lib/mindee/product/fr/payslip/payslip_v3_employer.rb +0 -78
  565. data/lib/mindee/product/fr/payslip/payslip_v3_employment.rb +0 -78
  566. data/lib/mindee/product/fr/payslip/payslip_v3_paid_time_off.rb +0 -95
  567. data/lib/mindee/product/fr/payslip/payslip_v3_pay_detail.rb +0 -122
  568. data/lib/mindee/product/fr/payslip/payslip_v3_pay_period.rb +0 -66
  569. data/lib/mindee/product/fr/payslip/payslip_v3_salary_detail.rb +0 -97
  570. data/lib/mindee/product/fr/payslip/payslip_v3_salary_details.rb +0 -65
  571. data/lib/mindee/product/ind/indian_passport/indian_passport_v1_document.rb +0 -206
  572. data/lib/mindee/product/ind/indian_passport/indian_passport_v1_page.rb +0 -38
  573. data/lib/mindee/product/international_id/international_id_v2.rb +0 -45
  574. data/lib/mindee/product/international_id/international_id_v2_document.rb +0 -161
  575. data/lib/mindee/product/international_id/international_id_v2_page.rb +0 -36
  576. data/lib/mindee/product/invoice/invoice_v4.rb +0 -45
  577. data/lib/mindee/product/invoice/invoice_v4_document.rb +0 -297
  578. data/lib/mindee/product/invoice/invoice_v4_line_item.rb +0 -121
  579. data/lib/mindee/product/invoice/invoice_v4_line_items.rb +0 -62
  580. data/lib/mindee/product/invoice/invoice_v4_page.rb +0 -36
  581. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1.rb +0 -45
  582. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1_document.rb +0 -63
  583. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rb +0 -55
  584. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1_invoice_page_groups.rb +0 -48
  585. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1_page.rb +0 -36
  586. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1.rb +0 -45
  587. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb +0 -35
  588. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_page.rb +0 -36
  589. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1.rb +0 -45
  590. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_added_sugar.rb +0 -55
  591. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_calorie.rb +0 -55
  592. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_cholesterol.rb +0 -55
  593. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_dietary_fiber.rb +0 -55
  594. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_document.rb +0 -211
  595. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_nutrient.rb +0 -93
  596. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_nutrients.rb +0 -68
  597. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_page.rb +0 -36
  598. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_protein.rb +0 -55
  599. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_saturated_fat.rb +0 -55
  600. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_serving_size.rb +0 -47
  601. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_sodium.rb +0 -61
  602. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_carbohydrate.rb +0 -55
  603. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_fat.rb +0 -55
  604. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_sugar.rb +0 -55
  605. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_trans_fat.rb +0 -55
  606. data/lib/mindee/product/passport/passport_v1.rb +0 -45
  607. data/lib/mindee/product/passport/passport_v1_document.rb +0 -109
  608. data/lib/mindee/product/passport/passport_v1_page.rb +0 -36
  609. data/lib/mindee/product/receipt/receipt_v5.rb +0 -45
  610. data/lib/mindee/product/receipt/receipt_v5_document.rb +0 -184
  611. data/lib/mindee/product/receipt/receipt_v5_line_item.rb +0 -85
  612. data/lib/mindee/product/receipt/receipt_v5_line_items.rb +0 -54
  613. data/lib/mindee/product/receipt/receipt_v5_page.rb +0 -36
  614. data/lib/mindee/product/resume/resume_v1.rb +0 -45
  615. data/lib/mindee/product/resume/resume_v1_certificate.rb +0 -79
  616. data/lib/mindee/product/resume/resume_v1_certificates.rb +0 -58
  617. data/lib/mindee/product/resume/resume_v1_document.rb +0 -337
  618. data/lib/mindee/product/resume/resume_v1_education.rb +0 -103
  619. data/lib/mindee/product/resume/resume_v1_educations.rb +0 -64
  620. data/lib/mindee/product/resume/resume_v1_language.rb +0 -63
  621. data/lib/mindee/product/resume/resume_v1_languages.rb +0 -54
  622. data/lib/mindee/product/resume/resume_v1_page.rb +0 -36
  623. data/lib/mindee/product/resume/resume_v1_professional_experience.rb +0 -119
  624. data/lib/mindee/product/resume/resume_v1_professional_experiences.rb +0 -68
  625. data/lib/mindee/product/resume/resume_v1_social_networks_url.rb +0 -63
  626. data/lib/mindee/product/resume/resume_v1_social_networks_urls.rb +0 -54
  627. data/lib/mindee/product/universal/universal.rb +0 -46
  628. data/lib/mindee/product/universal/universal_document.rb +0 -32
  629. data/lib/mindee/product/universal/universal_page.rb +0 -51
  630. data/lib/mindee/product/universal/universal_prediction.rb +0 -122
  631. data/lib/mindee/product/us/bank_check/bank_check_v1_document.rb +0 -74
  632. data/lib/mindee/product/us/bank_check/bank_check_v1_page.rb +0 -64
  633. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1.rb +0 -47
  634. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_copay.rb +0 -67
  635. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_document.rb +0 -167
  636. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_page.rb +0 -38
  637. data/lib/mindee/product/us/us_mail/us_mail_v3_document.rb +0 -115
  638. data/lib/mindee/product/us/us_mail/us_mail_v3_recipient_address.rb +0 -113
  639. data/lib/mindee/product/us/us_mail/us_mail_v3_sender_address.rb +0 -66
  640. data/sig/mindee/client.rbs +0 -61
  641. data/sig/mindee/client_v2.rbs +0 -21
  642. data/sig/mindee/extraction/multi_receipts_extractor.rbs +0 -6
  643. data/sig/mindee/http/api_settings_v2.rbs +0 -23
  644. data/sig/mindee/http/endpoint.rbs +0 -29
  645. data/sig/mindee/http/mindee_api_v2.rbs +0 -38
  646. data/sig/mindee/http/workflow_endpoint.rbs +0 -20
  647. data/sig/mindee/input/data_schema.rbs +0 -34
  648. data/sig/mindee/input/inference_parameters.rbs +0 -32
  649. data/sig/mindee/parsing/common/api_request.rbs +0 -15
  650. data/sig/mindee/parsing/common/api_response.rbs +0 -27
  651. data/sig/mindee/parsing/common/document.rbs +0 -20
  652. data/sig/mindee/parsing/common/execution.rbs +0 -24
  653. data/sig/mindee/parsing/common/execution_file.rbs +0 -12
  654. data/sig/mindee/parsing/common/execution_priority.rbs +0 -13
  655. data/sig/mindee/parsing/common/extras/cropper_extra.rbs +0 -15
  656. data/sig/mindee/parsing/common/extras/extras.rbs +0 -19
  657. data/sig/mindee/parsing/common/extras/full_text_ocr_extra.rbs +0 -16
  658. data/sig/mindee/parsing/common/extras/rag_extra.rbs +0 -15
  659. data/sig/mindee/parsing/common/inference.rbs +0 -26
  660. data/sig/mindee/parsing/common/job.rbs +0 -16
  661. data/sig/mindee/parsing/common/ocr/mvision_v1.rbs +0 -15
  662. data/sig/mindee/parsing/common/ocr/ocr.rbs +0 -41
  663. data/sig/mindee/parsing/common/orientation.rbs +0 -13
  664. data/sig/mindee/parsing/common/page.rbs +0 -16
  665. data/sig/mindee/parsing/common/prediction.rbs +0 -11
  666. data/sig/mindee/parsing/common/product.rbs +0 -13
  667. data/sig/mindee/parsing/common/workflow_response.rbs +0 -17
  668. data/sig/mindee/parsing/standard/abstract_field.rbs +0 -19
  669. data/sig/mindee/parsing/standard/address_field.rbs +0 -18
  670. data/sig/mindee/parsing/standard/amount_field.rbs +0 -14
  671. data/sig/mindee/parsing/standard/base_field.rbs +0 -12
  672. data/sig/mindee/parsing/standard/boolean_field.rbs +0 -12
  673. data/sig/mindee/parsing/standard/classification_field.rbs +0 -10
  674. data/sig/mindee/parsing/standard/company_registration_field.rbs +0 -15
  675. data/sig/mindee/parsing/standard/date_field.rbs +0 -14
  676. data/sig/mindee/parsing/standard/feature_field.rbs +0 -10
  677. data/sig/mindee/parsing/standard/locale_field.rbs +0 -16
  678. data/sig/mindee/parsing/standard/payment_details_field.rbs +0 -16
  679. data/sig/mindee/parsing/standard/position_field.rbs +0 -17
  680. data/sig/mindee/parsing/standard/string_field.rbs +0 -12
  681. data/sig/mindee/parsing/standard/tax_field.rbs +0 -24
  682. data/sig/mindee/parsing/universal/universal_list_field.rbs +0 -16
  683. data/sig/mindee/parsing/universal/universal_object_field.rbs +0 -29
  684. data/sig/mindee/parsing/v2/common_response.rbs +0 -11
  685. data/sig/mindee/parsing/v2/error_item.rbs +0 -13
  686. data/sig/mindee/parsing/v2/inference.rbs +0 -18
  687. data/sig/mindee/parsing/v2/inference_response.rbs +0 -21
  688. data/sig/mindee/parsing/v2/inference_result.rbs +0 -15
  689. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1.rbs +0 -11
  690. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_carrier.rbs +0 -14
  691. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_carrier_item.rbs +0 -19
  692. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_carrier_items.rbs +0 -13
  693. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_consignee.rbs +0 -15
  694. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_document.rbs +0 -25
  695. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_notify_party.rbs +0 -15
  696. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_page.rbs +0 -15
  697. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_shipper.rbs +0 -15
  698. data/sig/mindee/product/business_card/business_card_v1.rbs +0 -11
  699. data/sig/mindee/product/business_card/business_card_v1_document.rbs +0 -23
  700. data/sig/mindee/product/business_card/business_card_v1_page.rbs +0 -15
  701. data/sig/mindee/product/delivery_note/delivery_note_v1.rbs +0 -11
  702. data/sig/mindee/product/delivery_note/delivery_note_v1_document.rbs +0 -19
  703. data/sig/mindee/product/delivery_note/delivery_note_v1_page.rbs +0 -15
  704. data/sig/mindee/product/driver_license/driver_license_v1.rbs +0 -11
  705. data/sig/mindee/product/driver_license/driver_license_v1_document.rbs +0 -25
  706. data/sig/mindee/product/driver_license/driver_license_v1_page.rbs +0 -15
  707. data/sig/mindee/product/financial_document/financial_document_v1_line_item.rbs +0 -21
  708. data/sig/mindee/product/fr/bank_account_details/bank_account_details_v2_bban.rbs +0 -17
  709. data/sig/mindee/product/fr/carte_grise/carte_grise_v1.rbs +0 -13
  710. data/sig/mindee/product/fr/carte_grise/carte_grise_v1_document.rbs +0 -55
  711. data/sig/mindee/product/fr/carte_grise/carte_grise_v1_page.rbs +0 -17
  712. data/sig/mindee/product/fr/energy_bill/energy_bill_v1.rbs +0 -13
  713. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_document.rbs +0 -34
  714. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_energy_consumer.rbs +0 -15
  715. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_energy_supplier.rbs +0 -15
  716. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_energy_usage.rbs +0 -23
  717. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_meter_detail.rbs +0 -16
  718. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_page.rbs +0 -17
  719. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_subscription.rbs +0 -21
  720. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_taxes_and_contributions.rbs +0 -15
  721. data/sig/mindee/product/fr/health_card/health_card_v1.rbs +0 -13
  722. data/sig/mindee/product/fr/health_card/health_card_v1_document.rbs +0 -18
  723. data/sig/mindee/product/fr/health_card/health_card_v1_page.rbs +0 -17
  724. data/sig/mindee/product/fr/id_card/id_card_v1.rbs +0 -13
  725. data/sig/mindee/product/fr/payslip/payslip_v2.rbs +0 -13
  726. data/sig/mindee/product/fr/payslip/payslip_v2_bank_account_detail.rbs +0 -16
  727. data/sig/mindee/product/fr/payslip/payslip_v2_document.rbs +0 -24
  728. data/sig/mindee/product/fr/payslip/payslip_v2_employee.rbs +0 -20
  729. data/sig/mindee/product/fr/payslip/payslip_v2_employer.rbs +0 -20
  730. data/sig/mindee/product/fr/payslip/payslip_v2_employment.rbs +0 -19
  731. data/sig/mindee/product/fr/payslip/payslip_v2_page.rbs +0 -17
  732. data/sig/mindee/product/fr/payslip/payslip_v2_pay_detail.rbs +0 -23
  733. data/sig/mindee/product/fr/payslip/payslip_v2_pay_period.rbs +0 -18
  734. data/sig/mindee/product/fr/payslip/payslip_v2_pto.rbs +0 -16
  735. data/sig/mindee/product/fr/payslip/payslip_v2_salary_detail.rbs +0 -19
  736. data/sig/mindee/product/fr/payslip/payslip_v3.rbs +0 -13
  737. data/sig/mindee/product/fr/payslip/payslip_v3_bank_account_detail.rbs +0 -16
  738. data/sig/mindee/product/fr/payslip/payslip_v3_document.rbs +0 -26
  739. data/sig/mindee/product/fr/payslip/payslip_v3_employee.rbs +0 -20
  740. data/sig/mindee/product/fr/payslip/payslip_v3_employer.rbs +0 -20
  741. data/sig/mindee/product/fr/payslip/payslip_v3_employment.rbs +0 -20
  742. data/sig/mindee/product/fr/payslip/payslip_v3_page.rbs +0 -17
  743. data/sig/mindee/product/fr/payslip/payslip_v3_paid_time_off.rbs +0 -20
  744. data/sig/mindee/product/fr/payslip/payslip_v3_pay_detail.rbs +0 -23
  745. data/sig/mindee/product/fr/payslip/payslip_v3_pay_period.rbs +0 -18
  746. data/sig/mindee/product/fr/payslip/payslip_v3_salary_detail.rbs +0 -20
  747. data/sig/mindee/product/ind/indian_passport/indian_passport_v1.rbs +0 -13
  748. data/sig/mindee/product/ind/indian_passport/indian_passport_v1_document.rbs +0 -37
  749. data/sig/mindee/product/ind/indian_passport/indian_passport_v1_page.rbs +0 -17
  750. data/sig/mindee/product/invoice/invoice_v4_line_item.rbs +0 -21
  751. data/sig/mindee/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rbs +0 -14
  752. data/sig/mindee/product/multi_receipts_detector/multi_receipts_detector_v1.rbs +0 -11
  753. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1.rbs +0 -11
  754. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_added_sugar.rbs +0 -14
  755. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_calorie.rbs +0 -14
  756. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_cholesterol.rbs +0 -14
  757. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_dietary_fiber.rbs +0 -14
  758. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_document.rbs +0 -28
  759. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_nutrient.rbs +0 -18
  760. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_nutrients.rbs +0 -13
  761. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_page.rbs +0 -15
  762. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_protein.rbs +0 -14
  763. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_saturated_fat.rbs +0 -14
  764. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_serving_size.rbs +0 -13
  765. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_sodium.rbs +0 -15
  766. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_carbohydrate.rbs +0 -14
  767. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_fat.rbs +0 -14
  768. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_sugar.rbs +0 -14
  769. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_trans_fat.rbs +0 -14
  770. data/sig/mindee/product/receipt/receipt_v5_line_item.rbs +0 -17
  771. data/sig/mindee/product/resume/resume_v1_certificate.rbs +0 -17
  772. data/sig/mindee/product/resume/resume_v1_certificates.rbs +0 -13
  773. data/sig/mindee/product/resume/resume_v1_document.rbs +0 -39
  774. data/sig/mindee/product/resume/resume_v1_education.rbs +0 -20
  775. data/sig/mindee/product/resume/resume_v1_educations.rbs +0 -13
  776. data/sig/mindee/product/resume/resume_v1_language.rbs +0 -15
  777. data/sig/mindee/product/resume/resume_v1_languages.rbs +0 -13
  778. data/sig/mindee/product/resume/resume_v1_page.rbs +0 -15
  779. data/sig/mindee/product/resume/resume_v1_professional_experience.rbs +0 -22
  780. data/sig/mindee/product/resume/resume_v1_professional_experiences.rbs +0 -13
  781. data/sig/mindee/product/resume/resume_v1_social_networks_url.rbs +0 -15
  782. data/sig/mindee/product/resume/resume_v1_social_networks_urls.rbs +0 -13
  783. data/sig/mindee/product/universal/universal_page.rbs +0 -14
  784. data/sig/mindee/product/universal/universal_prediction.rbs +0 -19
  785. data/sig/mindee/product/us/bank_check/bank_check_v1.rbs +0 -13
  786. data/sig/mindee/product/us/bank_check/bank_check_v1_document.rbs +0 -20
  787. data/sig/mindee/product/us/bank_check/bank_check_v1_page.rbs +0 -19
  788. data/sig/mindee/product/us/healthcare_card/healthcare_card_v1.rbs +0 -13
  789. data/sig/mindee/product/us/healthcare_card/healthcare_card_v1_copays.rbs +0 -15
  790. data/sig/mindee/product/us/healthcare_card/healthcare_card_v1_document.rbs +0 -30
  791. data/sig/mindee/product/us/healthcare_card/healthcare_card_v1_page.rbs +0 -17
  792. data/sig/mindee/product/us/us_mail/us_mail_v3.rbs +0 -13
  793. data/sig/mindee/product/us/us_mail/us_mail_v3_document.rbs +0 -21
  794. data/sig/mindee/product/us/us_mail/us_mail_v3_recipient_address.rbs +0 -23
  795. data/sig/mindee/product/us/us_mail/us_mail_v3_recipient_addresses.rbs +0 -15
  796. data/sig/mindee/product/us/us_mail/us_mail_v3_sender_address.rbs +0 -18
  797. data/sig/mindee/product/us/w9/w9_v1.rbs +0 -13
  798. data/sig/mindee/product/us/w9/w9_v1_document.rbs +0 -14
  799. data/sig/mindee/product/us/w9/w9_v1_page.rbs +0 -29
  800. /data/lib/mindee/{extraction.rb → v1/extraction.rb} +0 -0
  801. /data/lib/mindee/{parsing → v1/parsing}/common/extras.rb +0 -0
  802. /data/lib/mindee/{parsing → v1/parsing}/common/ocr.rb +0 -0
  803. /data/lib/mindee/{parsing → v1/parsing}/common.rb +0 -0
  804. /data/lib/mindee/{parsing → v1/parsing}/standard.rb +0 -0
  805. /data/lib/mindee/{parsing → v1/parsing}/universal.rb +0 -0
  806. /data/lib/mindee/{parsing.rb → v1/parsing.rb} +0 -0
  807. /data/lib/mindee/{parsing/v2 → v2/parsing}/field.rb +0 -0
@@ -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 '../../dependency'
8
+ require_relative '../../pdf' if Mindee::Dependency.all_deps_available?
9
+ require_relative '../../image' if Mindee::Dependency.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::Dependency.all_deps_available?
147
+ raise NotImplementedError, Mindee::Dependency::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::Dependency.all_deps_available?
167
+ raise NotImplementedError, Mindee::Dependency::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::Dependency.all_deps_available?
193
+ raise NotImplementedError, Mindee::Dependency::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::Dependency.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::Dependency.all_deps_available?
11
+ raise NotImplementedError, Mindee::Dependency::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: 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: 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::Dependency.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::Dependency.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)