mindee 3.19.1 → 4.0.0

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 (600) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -1
  3. data/CHANGELOG.md +28 -0
  4. data/README.md +42 -52
  5. data/Steepfile +31 -0
  6. data/bin/mindee.rb +30 -62
  7. data/docs/advanced_file_operations.md +111 -0
  8. data/docs/code_samples/bank_account_details_v1.txt +5 -0
  9. data/docs/code_samples/bank_account_details_v2.txt +5 -0
  10. data/docs/code_samples/bank_check_v1.txt +5 -0
  11. data/docs/code_samples/{us_driver_license_v1.txt → bank_statement_fr_v2_async.txt} +6 -1
  12. data/docs/code_samples/barcode_reader_v1.txt +5 -0
  13. data/docs/code_samples/bill_of_lading_v1_async.txt +6 -1
  14. data/docs/code_samples/business_card_v1_async.txt +6 -1
  15. data/docs/code_samples/carte_grise_v1.txt +5 -0
  16. data/docs/code_samples/cropper_v1.txt +5 -0
  17. data/docs/code_samples/default.txt +8 -2
  18. data/docs/code_samples/default_async.txt +7 -2
  19. data/docs/code_samples/delivery_notes_v1_async.txt +6 -1
  20. data/docs/code_samples/driver_license_v1_async.txt +6 -1
  21. data/docs/code_samples/energy_bill_fra_v1_async.txt +6 -1
  22. data/docs/code_samples/expense_receipts_v5.txt +7 -1
  23. data/docs/code_samples/expense_receipts_v5_async.txt +6 -1
  24. data/docs/code_samples/financial_document_v1.txt +7 -1
  25. data/docs/code_samples/financial_document_v1_async.txt +6 -1
  26. data/docs/code_samples/french_healthcard_v1_async.txt +6 -1
  27. data/docs/code_samples/idcard_fr_v1.txt +5 -0
  28. data/docs/code_samples/idcard_fr_v2.txt +5 -0
  29. data/docs/code_samples/ind_passport_v1_async.txt +6 -1
  30. data/docs/code_samples/international_id_v2_async.txt +6 -1
  31. data/docs/code_samples/invoice_splitter_v1_async.txt +6 -1
  32. data/docs/code_samples/invoices_v4.txt +7 -1
  33. data/docs/code_samples/invoices_v4_async.txt +6 -1
  34. data/docs/code_samples/license_plates_v1.txt +5 -0
  35. data/docs/code_samples/multi_receipts_detector_v1.txt +5 -0
  36. data/docs/code_samples/nutrition_facts_v1_async.txt +6 -1
  37. data/docs/code_samples/passport_v1.txt +5 -0
  38. data/docs/code_samples/payslip_fra_v2_async.txt +6 -1
  39. data/docs/code_samples/payslip_fra_v3_async.txt +6 -1
  40. data/docs/code_samples/resume_v1_async.txt +6 -1
  41. data/docs/code_samples/us_healthcare_cards_v1_async.txt +6 -1
  42. data/docs/code_samples/us_mail_v3_async.txt +6 -1
  43. data/docs/code_samples/us_w9_v1.txt +5 -0
  44. data/docs/getting_started.md +50 -118
  45. data/docs/{barcode_reader_v1.md → global_products/barcode_reader_v1.md} +26 -9
  46. data/docs/{bill_of_lading_v1.md → global_products/bill_of_lading_v1.md} +62 -37
  47. data/docs/{business_card_v1.md → global_products/business_card_v1.md} +35 -10
  48. data/docs/{cropper_v1.md → global_products/cropper_v1.md} +32 -13
  49. data/docs/{delivery_notes_v1.md → global_products/delivery_notes_v1.md} +35 -10
  50. data/docs/{driver_license_v1.md → global_products/driver_license_v1.md} +65 -9
  51. data/docs/{expense_receipts_v5.md → global_products/expense_receipts_v5.md} +57 -21
  52. data/docs/{financial_document_v1.md → global_products/financial_document_v1.md} +70 -33
  53. data/docs/{international_id_v2.md → global_products/international_id_v2.md} +39 -13
  54. data/docs/{invoice_splitter_v1.md → global_products/invoice_splitter_v1.md} +25 -6
  55. data/docs/{invoices_v4.md → global_products/invoices_v4.md} +70 -33
  56. data/docs/{multi_receipts_detector_v1.md → global_products/multi_receipts_detector_v1.md} +32 -13
  57. data/docs/{nutrition_facts_v1.md → global_products/nutrition_facts_v1.md} +103 -78
  58. data/docs/{passport_v1.md → global_products/passport_v1.md} +26 -9
  59. data/docs/{resume_v1.md → global_products/resume_v1.md} +72 -46
  60. data/docs/{generated_v1.md → global_products/universal.md} +39 -19
  61. data/docs/global_products.md +6 -0
  62. data/docs/loading_a_document.md +316 -0
  63. data/docs/{bank_account_details_v2.md → localized_products/bank_account_details_v2.md} +24 -7
  64. data/docs/{bank_check_v1.md → localized_products/bank_check_v1.md} +37 -18
  65. data/docs/localized_products/bank_statement_fr_v2.md +269 -0
  66. data/docs/{carte_grise_v1.md → localized_products/carte_grise_v1.md} +25 -8
  67. data/docs/{energy_bill_fra_v1.md → localized_products/energy_bill_fra_v1.md} +70 -45
  68. data/docs/{french_healthcard_v1.md → localized_products/french_healthcard_v1.md} +36 -11
  69. data/docs/{idcard_fr_v2.md → localized_products/idcard_fr_v2.md} +34 -16
  70. data/docs/{ind_passport_v1.md → localized_products/ind_passport_v1.md} +37 -11
  71. data/docs/{license_plates_v1.md → localized_products/license_plates_v1.md} +25 -8
  72. data/docs/{payslip_fra_v3.md → localized_products/payslip_fra_v3.md} +80 -55
  73. data/docs/{us_healthcare_cards_v1.md → localized_products/us_healthcare_cards_v1.md} +37 -12
  74. data/docs/{us_mail_v3.md → localized_products/us_mail_v3.md} +49 -24
  75. data/docs/{us_w9_v1.md → localized_products/us_w9_v1.md} +64 -45
  76. data/docs/localized_products.md +6 -0
  77. data/examples/auto_invoice_splitter_extraction.rb +5 -5
  78. data/examples/auto_multi_receipts_detector_extraction.rb +4 -5
  79. data/lib/mindee/client.rb +354 -209
  80. data/lib/mindee/errors/mindee_error.rb +17 -0
  81. data/lib/mindee/errors/mindee_http_error.rb +36 -0
  82. data/lib/mindee/errors/mindee_input_error.rb +30 -0
  83. data/lib/mindee/errors.rb +5 -0
  84. data/lib/mindee/extraction/multi_receipts_extractor.rb +28 -1
  85. data/lib/mindee/extraction.rb +0 -3
  86. data/lib/mindee/geometry/polygon.rb +1 -1
  87. data/lib/mindee/geometry/utils.rb +1 -1
  88. data/lib/mindee/http/endpoint.rb +48 -40
  89. data/lib/mindee/http/{error.rb → http_error_handler.rb} +5 -35
  90. data/lib/mindee/http/response_validation.rb +2 -2
  91. data/lib/mindee/http/workflow_endpoint.rb +12 -12
  92. data/lib/mindee/http.rb +1 -1
  93. data/lib/mindee/{extraction/common → image}/extracted_image.rb +22 -18
  94. data/lib/mindee/{extraction/common → image}/image_extractor.rb +20 -78
  95. data/lib/mindee/image/image_utils.rb +68 -7
  96. data/lib/mindee/image.rb +2 -0
  97. data/lib/mindee/input/local_response.rb +8 -8
  98. data/lib/mindee/input/sources/base64_input_source.rb +6 -6
  99. data/lib/mindee/input/sources/bytes_input_source.rb +3 -3
  100. data/lib/mindee/input/sources/file_input_source.rb +3 -3
  101. data/lib/mindee/input/sources/local_input_source.rb +43 -41
  102. data/lib/mindee/input/sources/path_input_source.rb +3 -3
  103. data/lib/mindee/input/sources/url_input_source.rb +11 -8
  104. data/lib/mindee/logging/logger.rb +16 -0
  105. data/lib/mindee/logging.rb +3 -0
  106. data/lib/mindee/parsing/common/api_request.rb +36 -0
  107. data/lib/mindee/parsing/common/api_response.rb +6 -96
  108. data/lib/mindee/parsing/common/document.rb +12 -8
  109. data/lib/mindee/parsing/common/execution.rb +4 -2
  110. data/lib/mindee/parsing/common/execution_priority.rb +6 -0
  111. data/lib/mindee/parsing/common/extras/cropper_extra.rb +2 -1
  112. data/lib/mindee/parsing/common/extras/extras.rb +9 -4
  113. data/lib/mindee/parsing/common/extras/full_text_ocr_extra.rb +1 -0
  114. data/lib/mindee/parsing/common/inference.rb +23 -4
  115. data/lib/mindee/parsing/common/job.rb +46 -0
  116. data/lib/mindee/parsing/common/ocr/mvision_v1.rb +6 -6
  117. data/lib/mindee/parsing/common/ocr/ocr.rb +29 -29
  118. data/lib/mindee/parsing/common/page.rb +5 -3
  119. data/lib/mindee/parsing/common/prediction.rb +2 -0
  120. data/lib/mindee/parsing/common/workflow_response.rb +28 -0
  121. data/lib/mindee/parsing/common.rb +3 -0
  122. data/lib/mindee/parsing/standard/abstract_field.rb +72 -0
  123. data/lib/mindee/parsing/standard/amount_field.rb +2 -2
  124. data/lib/mindee/parsing/standard/base_field.rb +5 -84
  125. data/lib/mindee/parsing/standard/boolean_field.rb +4 -3
  126. data/lib/mindee/parsing/standard/classification_field.rb +1 -1
  127. data/lib/mindee/parsing/standard/company_registration_field.rb +7 -2
  128. data/lib/mindee/parsing/standard/date_field.rb +2 -2
  129. data/lib/mindee/parsing/standard/feature_field.rb +24 -0
  130. data/lib/mindee/parsing/standard/payment_details_field.rb +2 -2
  131. data/lib/mindee/parsing/standard/position_field.rb +3 -1
  132. data/lib/mindee/parsing/standard/string_field.rb +1 -1
  133. data/lib/mindee/parsing/standard/tax_field.rb +1 -1
  134. data/lib/mindee/parsing/standard.rb +1 -0
  135. data/lib/mindee/parsing/{generated/generated_list_field.rb → universal/universal_list_field.rb} +12 -12
  136. data/lib/mindee/parsing/{generated/generated_object_field.rb → universal/universal_object_field.rb} +23 -14
  137. data/lib/mindee/parsing/universal.rb +4 -0
  138. data/lib/mindee/parsing.rb +1 -2
  139. data/lib/mindee/{extraction/pdf_extractor → pdf}/extracted_pdf.rb +15 -12
  140. data/lib/mindee/pdf/pdf_compressor.rb +12 -10
  141. data/lib/mindee/{extraction/pdf_extractor → pdf}/pdf_extractor.rb +20 -17
  142. data/lib/mindee/pdf/pdf_processor.rb +12 -22
  143. data/lib/mindee/pdf/pdf_tools.rb +52 -6
  144. data/lib/mindee/pdf.rb +2 -0
  145. data/lib/mindee/product/.rubocop.yml +3 -0
  146. data/lib/mindee/product/barcode_reader/barcode_reader_v1.rb +9 -3
  147. data/lib/mindee/product/barcode_reader/barcode_reader_v1_document.rb +5 -5
  148. data/lib/mindee/product/barcode_reader/barcode_reader_v1_page.rb +9 -5
  149. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1.rb +9 -3
  150. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_carrier.rb +1 -1
  151. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_carrier_item.rb +13 -7
  152. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_carrier_items.rb +62 -0
  153. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_consignee.rb +1 -1
  154. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_document.rb +44 -17
  155. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_notify_party.rb +1 -1
  156. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_page.rb +9 -5
  157. data/lib/mindee/product/bill_of_lading/bill_of_lading_v1_shipper.rb +1 -1
  158. data/lib/mindee/product/business_card/business_card_v1.rb +9 -3
  159. data/lib/mindee/product/business_card/business_card_v1_document.rb +40 -13
  160. data/lib/mindee/product/business_card/business_card_v1_page.rb +9 -5
  161. data/lib/mindee/product/cropper/cropper_v1.rb +10 -4
  162. data/lib/mindee/product/cropper/cropper_v1_page.rb +11 -7
  163. data/lib/mindee/product/delivery_note/delivery_note_v1.rb +9 -3
  164. data/lib/mindee/product/delivery_note/delivery_note_v1_document.rb +29 -8
  165. data/lib/mindee/product/delivery_note/delivery_note_v1_page.rb +9 -5
  166. data/lib/mindee/product/driver_license/driver_license_v1.rb +9 -3
  167. data/lib/mindee/product/driver_license/driver_license_v1_document.rb +44 -14
  168. data/lib/mindee/product/driver_license/driver_license_v1_page.rb +9 -5
  169. data/lib/mindee/product/eu/license_plate/license_plate_v1.rb +9 -3
  170. data/lib/mindee/product/eu/license_plate/license_plate_v1_document.rb +3 -3
  171. data/lib/mindee/product/eu/license_plate/license_plate_v1_page.rb +9 -5
  172. data/lib/mindee/product/financial_document/financial_document_v1.rb +9 -3
  173. data/lib/mindee/product/financial_document/financial_document_v1_document.rb +110 -42
  174. data/lib/mindee/product/financial_document/financial_document_v1_line_item.rb +21 -11
  175. data/lib/mindee/product/financial_document/financial_document_v1_line_items.rb +62 -0
  176. data/lib/mindee/product/financial_document/financial_document_v1_page.rb +9 -5
  177. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v1.rb +9 -3
  178. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v1_document.rb +7 -4
  179. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v1_page.rb +9 -5
  180. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2.rb +9 -3
  181. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2_bban.rb +1 -1
  182. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2_document.rb +11 -5
  183. data/lib/mindee/product/fr/bank_account_details/bank_account_details_v2_page.rb +9 -5
  184. data/lib/mindee/product/fr/bank_statement/bank_statement_v2.rb +47 -0
  185. data/lib/mindee/product/fr/bank_statement/{bank_statement_v1_document.rb → bank_statement_v2_document.rb} +62 -26
  186. data/lib/mindee/product/fr/bank_statement/bank_statement_v2_page.rb +38 -0
  187. data/lib/mindee/product/fr/bank_statement/{bank_statement_v1_transaction.rb → bank_statement_v2_transaction.rb} +17 -6
  188. data/lib/mindee/product/fr/bank_statement/bank_statement_v2_transactions.rb +54 -0
  189. data/lib/mindee/product/fr/carte_grise/carte_grise_v1.rb +9 -3
  190. data/lib/mindee/product/fr/carte_grise/carte_grise_v1_document.rb +51 -42
  191. data/lib/mindee/product/fr/carte_grise/carte_grise_v1_page.rb +9 -5
  192. data/lib/mindee/product/fr/energy_bill/energy_bill_v1.rb +9 -3
  193. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_document.rb +56 -30
  194. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_energy_consumer.rb +1 -1
  195. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_energy_supplier.rb +1 -1
  196. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_energy_usage.rb +13 -7
  197. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_energy_usages.rb +65 -0
  198. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_meter_detail.rb +1 -1
  199. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_page.rb +9 -5
  200. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_subscription.rb +13 -7
  201. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_subscriptions.rb +65 -0
  202. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_taxes_and_contribution.rb +13 -7
  203. data/lib/mindee/product/fr/energy_bill/energy_bill_v1_taxes_and_contributions.rb +65 -0
  204. data/lib/mindee/product/fr/health_card/health_card_v1.rb +9 -3
  205. data/lib/mindee/product/fr/health_card/health_card_v1_document.rb +15 -6
  206. data/lib/mindee/product/fr/health_card/health_card_v1_page.rb +9 -5
  207. data/lib/mindee/product/fr/id_card/id_card_v1.rb +9 -3
  208. data/lib/mindee/product/fr/id_card/id_card_v1_document.rb +33 -12
  209. data/lib/mindee/product/fr/id_card/id_card_v1_page.rb +14 -7
  210. data/lib/mindee/product/fr/id_card/id_card_v2.rb +9 -3
  211. data/lib/mindee/product/fr/id_card/id_card_v2_document.rb +50 -17
  212. data/lib/mindee/product/fr/id_card/id_card_v2_page.rb +18 -8
  213. data/lib/mindee/product/fr/payslip/payslip_v2.rb +9 -3
  214. data/lib/mindee/product/fr/payslip/payslip_v2_bank_account_detail.rb +1 -1
  215. data/lib/mindee/product/fr/payslip/payslip_v2_document.rb +29 -14
  216. data/lib/mindee/product/fr/payslip/payslip_v2_employee.rb +1 -1
  217. data/lib/mindee/product/fr/payslip/payslip_v2_employer.rb +1 -1
  218. data/lib/mindee/product/fr/payslip/payslip_v2_employment.rb +3 -2
  219. data/lib/mindee/product/fr/payslip/payslip_v2_page.rb +9 -5
  220. data/lib/mindee/product/fr/payslip/payslip_v2_pay_detail.rb +33 -11
  221. data/lib/mindee/product/fr/payslip/payslip_v2_pay_period.rb +1 -1
  222. data/lib/mindee/product/fr/payslip/payslip_v2_pto.rb +13 -4
  223. data/lib/mindee/product/fr/payslip/payslip_v2_salary_detail.rb +13 -7
  224. data/lib/mindee/product/fr/payslip/payslip_v2_salary_details.rb +63 -0
  225. data/lib/mindee/product/fr/payslip/payslip_v3.rb +9 -3
  226. data/lib/mindee/product/fr/payslip/payslip_v3_bank_account_detail.rb +1 -1
  227. data/lib/mindee/product/fr/payslip/payslip_v3_document.rb +31 -19
  228. data/lib/mindee/product/fr/payslip/payslip_v3_employee.rb +1 -1
  229. data/lib/mindee/product/fr/payslip/payslip_v3_employer.rb +1 -1
  230. data/lib/mindee/product/fr/payslip/payslip_v3_employment.rb +1 -1
  231. data/lib/mindee/product/fr/payslip/payslip_v3_page.rb +9 -5
  232. data/lib/mindee/product/fr/payslip/payslip_v3_paid_time_off.rb +13 -7
  233. data/lib/mindee/product/fr/payslip/payslip_v3_paid_time_offs.rb +65 -0
  234. data/lib/mindee/product/fr/payslip/payslip_v3_pay_detail.rb +33 -11
  235. data/lib/mindee/product/fr/payslip/payslip_v3_pay_period.rb +1 -1
  236. data/lib/mindee/product/fr/payslip/payslip_v3_salary_detail.rb +17 -9
  237. data/lib/mindee/product/fr/payslip/payslip_v3_salary_details.rb +65 -0
  238. data/lib/mindee/product/ind/indian_passport/indian_passport_v1.rb +9 -3
  239. data/lib/mindee/product/ind/indian_passport/indian_passport_v1_document.rb +87 -24
  240. data/lib/mindee/product/ind/indian_passport/indian_passport_v1_page.rb +9 -5
  241. data/lib/mindee/product/international_id/international_id_v2.rb +9 -3
  242. data/lib/mindee/product/international_id/international_id_v2_document.rb +62 -20
  243. data/lib/mindee/product/international_id/international_id_v2_page.rb +9 -5
  244. data/lib/mindee/product/invoice/invoice_v4.rb +9 -3
  245. data/lib/mindee/product/invoice/invoice_v4_document.rb +90 -36
  246. data/lib/mindee/product/invoice/invoice_v4_line_item.rb +21 -11
  247. data/lib/mindee/product/invoice/invoice_v4_line_items.rb +62 -0
  248. data/lib/mindee/product/invoice/invoice_v4_page.rb +9 -5
  249. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1.rb +8 -0
  250. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1_document.rb +2 -2
  251. data/lib/mindee/product/invoice_splitter/invoice_splitter_v1_page.rb +1 -1
  252. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1.rb +9 -3
  253. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb +3 -3
  254. data/lib/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_page.rb +9 -5
  255. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1.rb +9 -3
  256. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_added_sugar.rb +7 -4
  257. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_calorie.rb +7 -4
  258. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_cholesterol.rb +7 -4
  259. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_dietary_fiber.rb +7 -4
  260. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_document.rb +58 -20
  261. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_nutrient.rb +13 -7
  262. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_nutrients.rb +68 -0
  263. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_page.rb +9 -5
  264. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_protein.rb +7 -4
  265. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_saturated_fat.rb +7 -4
  266. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_serving_size.rb +3 -2
  267. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_sodium.rb +7 -4
  268. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_carbohydrate.rb +7 -4
  269. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_fat.rb +7 -4
  270. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_sugar.rb +7 -4
  271. data/lib/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_trans_fat.rb +7 -4
  272. data/lib/mindee/product/passport/passport_v1.rb +9 -3
  273. data/lib/mindee/product/passport/passport_v1_document.rb +37 -13
  274. data/lib/mindee/product/passport/passport_v1_page.rb +9 -5
  275. data/lib/mindee/product/receipt/receipt_v5.rb +9 -3
  276. data/lib/mindee/product/receipt/receipt_v5_document.rb +54 -24
  277. data/lib/mindee/product/receipt/receipt_v5_line_item.rb +13 -7
  278. data/lib/mindee/product/receipt/receipt_v5_line_items.rb +54 -0
  279. data/lib/mindee/product/receipt/receipt_v5_page.rb +9 -5
  280. data/lib/mindee/product/resume/resume_v1.rb +9 -3
  281. data/lib/mindee/product/resume/resume_v1_certificate.rb +1 -1
  282. data/lib/mindee/product/resume/resume_v1_certificates.rb +58 -0
  283. data/lib/mindee/product/resume/resume_v1_document.rb +60 -47
  284. data/lib/mindee/product/resume/resume_v1_education.rb +1 -1
  285. data/lib/mindee/product/resume/resume_v1_educations.rb +64 -0
  286. data/lib/mindee/product/resume/resume_v1_language.rb +1 -1
  287. data/lib/mindee/product/resume/resume_v1_languages.rb +54 -0
  288. data/lib/mindee/product/resume/resume_v1_page.rb +9 -5
  289. data/lib/mindee/product/resume/resume_v1_professional_experience.rb +1 -1
  290. data/lib/mindee/product/resume/resume_v1_professional_experiences.rb +68 -0
  291. data/lib/mindee/product/resume/resume_v1_social_networks_url.rb +1 -1
  292. data/lib/mindee/product/resume/resume_v1_social_networks_urls.rb +54 -0
  293. data/lib/mindee/product/universal/universal.rb +46 -0
  294. data/lib/mindee/product/universal/universal_document.rb +32 -0
  295. data/lib/mindee/product/{generated/generated_v1_page.rb → universal/universal_page.rb} +14 -14
  296. data/lib/mindee/product/{generated/generated_v1_prediction.rb → universal/universal_prediction.rb} +32 -24
  297. data/lib/mindee/product/us/bank_check/bank_check_v1.rb +9 -3
  298. data/lib/mindee/product/us/bank_check/bank_check_v1_document.rb +20 -8
  299. data/lib/mindee/product/us/bank_check/bank_check_v1_page.rb +15 -8
  300. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1.rb +9 -3
  301. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_copay.rb +5 -3
  302. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_copays.rb +52 -0
  303. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_document.rb +46 -19
  304. data/lib/mindee/product/us/healthcare_card/healthcare_card_v1_page.rb +9 -5
  305. data/lib/mindee/product/us/us_mail/us_mail_v3.rb +9 -3
  306. data/lib/mindee/product/us/us_mail/us_mail_v3_document.rb +20 -12
  307. data/lib/mindee/product/us/us_mail/us_mail_v3_page.rb +9 -5
  308. data/lib/mindee/product/us/us_mail/us_mail_v3_recipient_address.rb +2 -2
  309. data/lib/mindee/product/us/us_mail/us_mail_v3_recipient_addresses.rb +65 -0
  310. data/lib/mindee/product/us/us_mail/us_mail_v3_sender_address.rb +1 -1
  311. data/lib/mindee/product/us/w9/w9_v1.rb +10 -4
  312. data/lib/mindee/product/us/w9/w9_v1_page.rb +49 -18
  313. data/lib/mindee/product.rb +2 -8
  314. data/lib/mindee/version.rb +2 -2
  315. data/lib/mindee.rb +22 -9
  316. data/mindee.gemspec +19 -17
  317. data/sig/custom/marcel.rbs +3 -0
  318. data/sig/custom/mini_magick.rbs +24 -0
  319. data/sig/custom/net_http.rbs +34 -0
  320. data/sig/custom/origami.rbs +54 -0
  321. data/sig/mindee/client.rbs +63 -0
  322. data/sig/mindee/errors/mindee_error.rbs +13 -0
  323. data/sig/mindee/errors/mindee_http_error.rbs +16 -0
  324. data/sig/mindee/errors/mindee_input_error.rbs +17 -0
  325. data/sig/mindee/extraction/multi_receipts_extractor.rbs +6 -0
  326. data/sig/mindee/geometry/min_max.rbs +10 -0
  327. data/sig/mindee/geometry/point.rbs +13 -0
  328. data/sig/mindee/geometry/polygon.rbs +9 -0
  329. data/sig/mindee/geometry/quadrilateral.rbs +18 -0
  330. data/sig/mindee/geometry/utils.rbs +13 -0
  331. data/sig/mindee/http/endpoint.rbs +26 -0
  332. data/sig/mindee/http/http_error_handler.rbs +10 -0
  333. data/sig/mindee/http/response_validation.rbs +10 -0
  334. data/sig/mindee/http/workflow_endpoint.rbs +14 -0
  335. data/sig/mindee/image/extracted_image.rbs +15 -0
  336. data/sig/mindee/image/image_compressor.rbs +8 -0
  337. data/sig/mindee/image/image_extractor.rbs +13 -0
  338. data/sig/mindee/image/image_utils.rbs +19 -0
  339. data/sig/mindee/input/local_response.rbs +13 -0
  340. data/sig/mindee/input/sources/base64_input_source.rbs +11 -0
  341. data/sig/mindee/input/sources/bytes_input_source.rbs +10 -0
  342. data/sig/mindee/input/sources/file_input_source.rbs +10 -0
  343. data/sig/mindee/input/sources/local_input_source.rbs +24 -0
  344. data/sig/mindee/input/sources/path_input_source.rbs +10 -0
  345. data/sig/mindee/input/sources/url_input_source.rbs +20 -0
  346. data/sig/mindee/logging/logger.rbs +9 -0
  347. data/sig/mindee/parsing/common/api_request.rbs +15 -0
  348. data/sig/mindee/parsing/common/api_response.rbs +27 -0
  349. data/sig/mindee/parsing/common/document.rbs +20 -0
  350. data/sig/mindee/parsing/common/execution.rbs +23 -0
  351. data/sig/mindee/parsing/common/execution_file.rbs +12 -0
  352. data/sig/mindee/parsing/common/execution_priority.rbs +13 -0
  353. data/sig/mindee/parsing/common/extras/cropper_extra.rbs +14 -0
  354. data/sig/mindee/parsing/common/extras/extras.rbs +18 -0
  355. data/sig/mindee/parsing/common/extras/full_text_ocr_extra.rbs +15 -0
  356. data/sig/mindee/parsing/common/inference.rbs +19 -0
  357. data/sig/mindee/parsing/common/job.rbs +16 -0
  358. data/sig/mindee/parsing/common/ocr/mvision_v1.rbs +15 -0
  359. data/sig/mindee/parsing/common/ocr/ocr.rbs +39 -0
  360. data/sig/mindee/parsing/common/orientation.rbs +12 -0
  361. data/sig/mindee/parsing/common/page.rbs +15 -0
  362. data/sig/mindee/parsing/common/prediction.rbs +11 -0
  363. data/sig/mindee/parsing/common/product.rbs +13 -0
  364. data/sig/mindee/parsing/common/workflow_response.rbs +13 -0
  365. data/sig/mindee/parsing/standard/abstract_field.rbs +19 -0
  366. data/sig/mindee/parsing/standard/amount_field.rbs +12 -0
  367. data/sig/mindee/parsing/standard/base_field.rbs +12 -0
  368. data/sig/mindee/parsing/standard/boolean_field.rbs +12 -0
  369. data/sig/mindee/parsing/standard/classification_field.rbs +10 -0
  370. data/sig/mindee/parsing/standard/company_registration_field.rbs +14 -0
  371. data/sig/mindee/parsing/standard/date_field.rbs +14 -0
  372. data/sig/mindee/parsing/standard/feature_field.rbs +10 -0
  373. data/sig/mindee/parsing/standard/locale_field.rbs +16 -0
  374. data/sig/mindee/parsing/standard/payment_details_field.rbs +15 -0
  375. data/sig/mindee/parsing/standard/position_field.rbs +17 -0
  376. data/sig/mindee/parsing/standard/string_field.rbs +12 -0
  377. data/sig/mindee/parsing/standard/tax_field.rbs +23 -0
  378. data/sig/mindee/parsing/universal/universal_list_field.rbs +17 -0
  379. data/sig/mindee/parsing/universal/universal_object_field.rbs +23 -0
  380. data/sig/mindee/pdf/extracted_pdf.rbs +15 -0
  381. data/sig/mindee/pdf/pdf_compressor.rbs +15 -0
  382. data/sig/mindee/pdf/pdf_extractor.rbs +16 -0
  383. data/sig/mindee/pdf/pdf_processor.rbs +12 -0
  384. data/sig/mindee/pdf/pdf_tools.rbs +23 -0
  385. data/sig/mindee/product/barcode_reader/barcode_reader_v1.rbs +11 -0
  386. data/sig/mindee/product/barcode_reader/barcode_reader_v1_document.rbs +14 -0
  387. data/sig/mindee/product/barcode_reader/barcode_reader_v1_page.rbs +15 -0
  388. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1.rbs +11 -0
  389. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_carrier.rbs +14 -0
  390. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_carrier_item.rbs +19 -0
  391. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_carrier_items.rbs +13 -0
  392. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_consignee.rbs +15 -0
  393. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_document.rbs +25 -0
  394. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_notify_party.rbs +15 -0
  395. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_page.rbs +15 -0
  396. data/sig/mindee/product/bill_of_lading/bill_of_lading_v1_shipper.rbs +15 -0
  397. data/sig/mindee/product/business_card/business_card_v1.rbs +11 -0
  398. data/sig/mindee/product/business_card/business_card_v1_document.rbs +23 -0
  399. data/sig/mindee/product/business_card/business_card_v1_page.rbs +15 -0
  400. data/sig/mindee/product/cropper/cropper_v1.rbs +11 -0
  401. data/sig/mindee/product/cropper/cropper_v1_document.rbs +12 -0
  402. data/sig/mindee/product/cropper/cropper_v1_page.rbs +16 -0
  403. data/sig/mindee/product/delivery_note/delivery_note_v1.rbs +11 -0
  404. data/sig/mindee/product/delivery_note/delivery_note_v1_document.rbs +19 -0
  405. data/sig/mindee/product/delivery_note/delivery_note_v1_page.rbs +15 -0
  406. data/sig/mindee/product/driver_license/driver_license_v1.rbs +11 -0
  407. data/sig/mindee/product/driver_license/driver_license_v1_document.rbs +25 -0
  408. data/sig/mindee/product/driver_license/driver_license_v1_page.rbs +15 -0
  409. data/sig/mindee/product/eu/license_plate/license_plate_v1.rbs +13 -0
  410. data/sig/mindee/product/eu/license_plate/license_plate_v1_document.rbs +15 -0
  411. data/sig/mindee/product/eu/license_plate/license_plate_v1_page.rbs +17 -0
  412. data/sig/mindee/product/financial_document/financial_document_v1.rbs +11 -0
  413. data/sig/mindee/product/financial_document/financial_document_v1_document.rbs +46 -0
  414. data/sig/mindee/product/financial_document/financial_document_v1_line_item.rbs +21 -0
  415. data/sig/mindee/product/financial_document/financial_document_v1_line_items.rbs +13 -0
  416. data/sig/mindee/product/financial_document/financial_document_v1_page.rbs +15 -0
  417. data/sig/mindee/product/fr/bank_account_details/bank_account_details_v1.rbs +13 -0
  418. data/sig/mindee/product/fr/bank_account_details/bank_account_details_v1_document.rbs +17 -0
  419. data/sig/mindee/product/fr/bank_account_details/bank_account_details_v1_page.rbs +17 -0
  420. data/sig/mindee/product/fr/bank_account_details/bank_account_details_v2.rbs +13 -0
  421. data/sig/mindee/product/fr/bank_account_details/bank_account_details_v2_bban.rbs +17 -0
  422. data/sig/mindee/product/fr/bank_account_details/bank_account_details_v2_document.rbs +18 -0
  423. data/sig/mindee/product/fr/bank_account_details/bank_account_details_v2_page.rbs +17 -0
  424. data/sig/mindee/product/fr/bank_statement/bank_statement_v2.rbs +13 -0
  425. data/sig/mindee/product/fr/bank_statement/bank_statement_v2_document.rbs +29 -0
  426. data/sig/mindee/product/fr/bank_statement/bank_statement_v2_page.rbs +17 -0
  427. data/sig/mindee/product/fr/bank_statement/bank_statement_v2_transaction.rbs +18 -0
  428. data/sig/mindee/product/fr/bank_statement/bank_statement_v2_transactions.rbs +15 -0
  429. data/sig/mindee/product/fr/carte_grise/carte_grise_v1.rbs +13 -0
  430. data/sig/mindee/product/fr/carte_grise/carte_grise_v1_document.rbs +55 -0
  431. data/sig/mindee/product/fr/carte_grise/carte_grise_v1_page.rbs +17 -0
  432. data/sig/mindee/product/fr/energy_bill/energy_bill_v1.rbs +13 -0
  433. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_document.rbs +34 -0
  434. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_energy_consumer.rbs +15 -0
  435. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_energy_supplier.rbs +15 -0
  436. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_energy_usage.rbs +21 -0
  437. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_energy_usages.rbs +15 -0
  438. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_meter_detail.rbs +16 -0
  439. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_page.rbs +17 -0
  440. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_subscription.rbs +21 -0
  441. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_subscriptions.rbs +15 -0
  442. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_taxes_and_contribution.rbs +21 -0
  443. data/sig/mindee/product/fr/energy_bill/energy_bill_v1_taxes_and_contributions.rbs +15 -0
  444. data/sig/mindee/product/fr/health_card/health_card_v1.rbs +13 -0
  445. data/sig/mindee/product/fr/health_card/health_card_v1_document.rbs +18 -0
  446. data/sig/mindee/product/fr/health_card/health_card_v1_page.rbs +17 -0
  447. data/sig/mindee/product/fr/id_card/id_card_v1.rbs +13 -0
  448. data/sig/mindee/product/fr/id_card/id_card_v1_document.rbs +24 -0
  449. data/sig/mindee/product/fr/id_card/id_card_v1_page.rbs +18 -0
  450. data/sig/mindee/product/fr/id_card/id_card_v2.rbs +13 -0
  451. data/sig/mindee/product/fr/id_card/id_card_v2_document.rbs +29 -0
  452. data/sig/mindee/product/fr/id_card/id_card_v2_page.rbs +19 -0
  453. data/sig/mindee/product/fr/payslip/payslip_v2.rbs +13 -0
  454. data/sig/mindee/product/fr/payslip/payslip_v2_bank_account_detail.rbs +16 -0
  455. data/sig/mindee/product/fr/payslip/payslip_v2_document.rbs +24 -0
  456. data/sig/mindee/product/fr/payslip/payslip_v2_employee.rbs +20 -0
  457. data/sig/mindee/product/fr/payslip/payslip_v2_employer.rbs +20 -0
  458. data/sig/mindee/product/fr/payslip/payslip_v2_employment.rbs +19 -0
  459. data/sig/mindee/product/fr/payslip/payslip_v2_page.rbs +17 -0
  460. data/sig/mindee/product/fr/payslip/payslip_v2_pay_detail.rbs +23 -0
  461. data/sig/mindee/product/fr/payslip/payslip_v2_pay_period.rbs +18 -0
  462. data/sig/mindee/product/fr/payslip/payslip_v2_pto.rbs +16 -0
  463. data/sig/mindee/product/fr/payslip/payslip_v2_salary_detail.rbs +19 -0
  464. data/sig/mindee/product/fr/payslip/payslip_v2_salary_details.rbs +15 -0
  465. data/sig/mindee/product/fr/payslip/payslip_v3.rbs +13 -0
  466. data/sig/mindee/product/fr/payslip/payslip_v3_bank_account_detail.rbs +16 -0
  467. data/sig/mindee/product/fr/payslip/payslip_v3_document.rbs +26 -0
  468. data/sig/mindee/product/fr/payslip/payslip_v3_employee.rbs +20 -0
  469. data/sig/mindee/product/fr/payslip/payslip_v3_employer.rbs +20 -0
  470. data/sig/mindee/product/fr/payslip/payslip_v3_employment.rbs +20 -0
  471. data/sig/mindee/product/fr/payslip/payslip_v3_page.rbs +17 -0
  472. data/sig/mindee/product/fr/payslip/payslip_v3_paid_time_off.rbs +20 -0
  473. data/sig/mindee/product/fr/payslip/payslip_v3_paid_time_offs.rbs +15 -0
  474. data/sig/mindee/product/fr/payslip/payslip_v3_pay_detail.rbs +23 -0
  475. data/sig/mindee/product/fr/payslip/payslip_v3_pay_period.rbs +18 -0
  476. data/sig/mindee/product/fr/payslip/payslip_v3_salary_detail.rbs +20 -0
  477. data/sig/mindee/product/fr/payslip/payslip_v3_salary_details.rbs +15 -0
  478. data/sig/mindee/product/ind/indian_passport/indian_passport_v1.rbs +13 -0
  479. data/sig/mindee/product/ind/indian_passport/indian_passport_v1_document.rbs +37 -0
  480. data/sig/mindee/product/ind/indian_passport/indian_passport_v1_page.rbs +17 -0
  481. data/sig/mindee/product/international_id/international_id_v2.rbs +11 -0
  482. data/sig/mindee/product/international_id/international_id_v2_document.rbs +29 -0
  483. data/sig/mindee/product/international_id/international_id_v2_page.rbs +15 -0
  484. data/sig/mindee/product/invoice/invoice_v4.rbs +11 -0
  485. data/sig/mindee/product/invoice/invoice_v4_document.rbs +40 -0
  486. data/sig/mindee/product/invoice/invoice_v4_line_item.rbs +21 -0
  487. data/sig/mindee/product/invoice/invoice_v4_line_items.rbs +13 -0
  488. data/sig/mindee/product/invoice/invoice_v4_page.rbs +15 -0
  489. data/sig/mindee/product/invoice_splitter/invoice_splitter_v1.rbs +14 -0
  490. data/sig/mindee/product/invoice_splitter/invoice_splitter_v1_document.rbs +19 -0
  491. data/sig/mindee/product/invoice_splitter/invoice_splitter_v1_page.rbs +13 -0
  492. data/sig/mindee/product/multi_receipts_detector/multi_receipts_detector_v1.rbs +11 -0
  493. data/sig/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_document.rbs +13 -0
  494. data/sig/mindee/product/multi_receipts_detector/multi_receipts_detector_v1_page.rbs +15 -0
  495. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1.rbs +11 -0
  496. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_added_sugar.rbs +14 -0
  497. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_calorie.rbs +14 -0
  498. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_cholesterol.rbs +14 -0
  499. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_dietary_fiber.rbs +14 -0
  500. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_document.rbs +28 -0
  501. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_nutrient.rbs +18 -0
  502. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_nutrients.rbs +13 -0
  503. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_page.rbs +15 -0
  504. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_protein.rbs +14 -0
  505. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_saturated_fat.rbs +14 -0
  506. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_serving_size.rbs +13 -0
  507. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_sodium.rbs +15 -0
  508. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_carbohydrate.rbs +14 -0
  509. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_fat.rbs +14 -0
  510. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_total_sugar.rbs +14 -0
  511. data/sig/mindee/product/nutrition_facts_label/nutrition_facts_label_v1_trans_fat.rbs +14 -0
  512. data/sig/mindee/product/passport/passport_v1.rbs +11 -0
  513. data/sig/mindee/product/passport/passport_v1_document.rbs +23 -0
  514. data/sig/mindee/product/passport/passport_v1_page.rbs +15 -0
  515. data/sig/mindee/product/receipt/receipt_v5.rbs +11 -0
  516. data/sig/mindee/product/receipt/receipt_v5_document.rbs +31 -0
  517. data/sig/mindee/product/receipt/receipt_v5_line_item.rbs +17 -0
  518. data/sig/mindee/product/receipt/receipt_v5_line_items.rbs +13 -0
  519. data/sig/mindee/product/receipt/receipt_v5_page.rbs +15 -0
  520. data/sig/mindee/product/resume/resume_v1.rbs +11 -0
  521. data/sig/mindee/product/resume/resume_v1_certificate.rbs +17 -0
  522. data/sig/mindee/product/resume/resume_v1_certificates.rbs +13 -0
  523. data/sig/mindee/product/resume/resume_v1_document.rbs +39 -0
  524. data/sig/mindee/product/resume/resume_v1_education.rbs +20 -0
  525. data/sig/mindee/product/resume/resume_v1_educations.rbs +13 -0
  526. data/sig/mindee/product/resume/resume_v1_language.rbs +15 -0
  527. data/sig/mindee/product/resume/resume_v1_languages.rbs +13 -0
  528. data/sig/mindee/product/resume/resume_v1_page.rbs +15 -0
  529. data/sig/mindee/product/resume/resume_v1_professional_experience.rbs +22 -0
  530. data/sig/mindee/product/resume/resume_v1_professional_experiences.rbs +13 -0
  531. data/sig/mindee/product/resume/resume_v1_social_networks_url.rbs +15 -0
  532. data/sig/mindee/product/resume/resume_v1_social_networks_urls.rbs +13 -0
  533. data/sig/mindee/product/universal/universal.rbs +14 -0
  534. data/sig/mindee/product/universal/universal_document.rbs +10 -0
  535. data/sig/mindee/product/universal/universal_page.rbs +14 -0
  536. data/sig/mindee/product/universal/universal_prediction.rbs +19 -0
  537. data/sig/mindee/product/us/bank_check/bank_check_v1.rbs +13 -0
  538. data/sig/mindee/product/us/bank_check/bank_check_v1_document.rbs +20 -0
  539. data/sig/mindee/product/us/bank_check/bank_check_v1_page.rbs +19 -0
  540. data/sig/mindee/product/us/healthcare_card/healthcare_card_v1.rbs +13 -0
  541. data/sig/mindee/product/us/healthcare_card/healthcare_card_v1_copay.rbs +17 -0
  542. data/sig/mindee/product/us/healthcare_card/healthcare_card_v1_copays.rbs +15 -0
  543. data/sig/mindee/product/us/healthcare_card/healthcare_card_v1_document.rbs +28 -0
  544. data/sig/mindee/product/us/healthcare_card/healthcare_card_v1_page.rbs +17 -0
  545. data/sig/mindee/product/us/us_mail/us_mail_v3.rbs +13 -0
  546. data/sig/mindee/product/us/us_mail/us_mail_v3_document.rbs +21 -0
  547. data/sig/mindee/product/us/us_mail/us_mail_v3_page.rbs +17 -0
  548. data/sig/mindee/product/us/us_mail/us_mail_v3_recipient_address.rbs +23 -0
  549. data/sig/mindee/product/us/us_mail/us_mail_v3_recipient_addresses.rbs +15 -0
  550. data/sig/mindee/product/us/us_mail/us_mail_v3_sender_address.rbs +18 -0
  551. data/sig/mindee/product/us/w9/w9_v1.rbs +13 -0
  552. data/sig/mindee/product/us/w9/w9_v1_document.rbs +14 -0
  553. data/sig/mindee/product/us/w9/w9_v1_page.rbs +29 -0
  554. data/sig/mindee/version.rbs +6 -0
  555. data/sig/mindee.rbs +59 -0
  556. metadata +395 -103
  557. data/docs/bank_statement_fr_v1.md +0 -178
  558. data/docs/code_samples/bank_statement_fr_v1_async.txt +0 -19
  559. data/docs/code_samples/custom_v1.txt +0 -33
  560. data/docs/code_samples/eu_driver_license_v1.txt +0 -19
  561. data/docs/code_samples/expense_receipts_v4.txt +0 -19
  562. data/docs/code_samples/proof_of_address_v1.txt +0 -19
  563. data/docs/code_samples/us_mail_v2_async.txt +0 -19
  564. data/docs/code_samples/workflow_execution.txt +0 -29
  565. data/docs/custom_v1.md +0 -111
  566. data/docs/payslip_fra_v2.md +0 -294
  567. data/lib/mindee/extraction/common.rb +0 -4
  568. data/lib/mindee/extraction/multi_receipts_extractor/multi_receipts_extractor.rb +0 -32
  569. data/lib/mindee/extraction/pdf_extractor.rb +0 -4
  570. data/lib/mindee/extraction/tax_extractor/ocr_extractor.rb +0 -110
  571. data/lib/mindee/extraction/tax_extractor/tax_extractor.rb +0 -338
  572. data/lib/mindee/extraction/tax_extractor.rb +0 -3
  573. data/lib/mindee/parsing/custom/classification_field.rb +0 -28
  574. data/lib/mindee/parsing/custom/list_field.rb +0 -78
  575. data/lib/mindee/parsing/custom.rb +0 -4
  576. data/lib/mindee/parsing/generated.rb +0 -4
  577. data/lib/mindee/product/custom/custom_v1.rb +0 -36
  578. data/lib/mindee/product/custom/custom_v1_document.rb +0 -60
  579. data/lib/mindee/product/custom/custom_v1_page.rb +0 -32
  580. data/lib/mindee/product/eu/driver_license/driver_license_v1.rb +0 -41
  581. data/lib/mindee/product/eu/driver_license/driver_license_v1_document.rb +0 -88
  582. data/lib/mindee/product/eu/driver_license/driver_license_v1_page.rb +0 -53
  583. data/lib/mindee/product/fr/bank_statement/bank_statement_v1.rb +0 -41
  584. data/lib/mindee/product/fr/bank_statement/bank_statement_v1_page.rb +0 -34
  585. data/lib/mindee/product/generated/generated_v1.rb +0 -38
  586. data/lib/mindee/product/generated/generated_v1_document.rb +0 -35
  587. data/lib/mindee/product/proof_of_address/proof_of_address_v1.rb +0 -39
  588. data/lib/mindee/product/proof_of_address/proof_of_address_v1_document.rb +0 -83
  589. data/lib/mindee/product/proof_of_address/proof_of_address_v1_page.rb +0 -32
  590. data/lib/mindee/product/receipt/receipt_v4.rb +0 -36
  591. data/lib/mindee/product/receipt/receipt_v4_document.rb +0 -86
  592. data/lib/mindee/product/receipt/receipt_v4_page.rb +0 -32
  593. data/lib/mindee/product/us/driver_license/driver_license_v1.rb +0 -41
  594. data/lib/mindee/product/us/driver_license/driver_license_v1_document.rb +0 -113
  595. data/lib/mindee/product/us/driver_license/driver_license_v1_page.rb +0 -53
  596. data/lib/mindee/product/us/us_mail/us_mail_v2.rb +0 -41
  597. data/lib/mindee/product/us/us_mail/us_mail_v2_document.rb +0 -100
  598. data/lib/mindee/product/us/us_mail/us_mail_v2_page.rb +0 -34
  599. data/lib/mindee/product/us/us_mail/us_mail_v2_recipient_address.rb +0 -105
  600. data/lib/mindee/product/us/us_mail/us_mail_v2_sender_address.rb +0 -66
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mindee
4
+ module Parsing
5
+ module Common
6
+ # Represents the server response after a document is sent to a workflow.
7
+ class WorkflowResponse
8
+ # Set the prediction model used to parse the document.
9
+ # The response object will be instantiated based on this parameter.
10
+ # @return [Mindee::Parsing::Common::Execution]
11
+ attr_reader :execution
12
+ # @return [Mindee::Parsing::Common::ApiRequest]
13
+ attr_reader :api_request
14
+ # @return [String]
15
+ attr_reader :raw_http
16
+
17
+ # @param http_response [Hash]
18
+ # @param product_class [Mindee::Inference]
19
+ def initialize(product_class, http_response, raw_http)
20
+ @raw_http = raw_http.to_s
21
+ @api_request = Mindee::Parsing::Common::ApiRequest.new(http_response['api_request'])
22
+ product_class ||= Mindee::Product::Universal::Universal
23
+ @execution = Mindee::Parsing::Common::Execution.new(product_class, http_response['execution'])
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,12 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'common/api_request'
3
4
  require_relative 'common/api_response'
4
5
  require_relative 'common/document'
5
6
  require_relative 'common/execution'
6
7
  require_relative 'common/execution_file'
7
8
  require_relative 'common/execution_priority'
8
9
  require_relative 'common/inference'
10
+ require_relative 'common/job'
9
11
  require_relative 'common/ocr'
10
12
  require_relative 'common/prediction'
11
13
  require_relative 'common/orientation'
12
14
  require_relative 'common/page'
15
+ require_relative 'common/workflow_response'
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../geometry'
4
+
5
+ module Mindee
6
+ module Parsing
7
+ module Standard
8
+ # Base BaseField object, upon which fields and feature fields are built
9
+ class AbstractField
10
+ # @return [Mindee::Geometry::Quadrilateral, nil]
11
+ attr_reader :bounding_box
12
+ # @return [Mindee::Geometry::Polygon, nil]
13
+ attr_reader :polygon
14
+ # @return [Integer, nil]
15
+ attr_reader :page_id
16
+ # The confidence score, value will be between 0.0 and 1.0
17
+ # @return [Float, nil]
18
+ attr_accessor :confidence
19
+
20
+ # @param prediction [Hash]
21
+ # @param page_id [Integer, nil]
22
+ def initialize(prediction, page_id)
23
+ @confidence = prediction['confidence'] if prediction.key?('confidence')
24
+ @polygon = Geometry.polygon_from_prediction(prediction['polygon']) if prediction.key?('polygon')
25
+ @bounding_box = Geometry.get_bounding_box(@polygon) unless @polygon.nil? || @polygon.empty?
26
+ @page_id = page_id || prediction['page_id']
27
+ end
28
+
29
+ # @return [String]
30
+ def to_s
31
+ @value ? @value.to_s : ''
32
+ end
33
+
34
+ # Multiply all the Mindee::Parsing::Standard::BaseField confidences in the array.
35
+ # @return [Float]
36
+ def self.array_confidence(field_array)
37
+ product = 1
38
+ field_array.each do |field|
39
+ return 0.0 if field.confidence.nil?
40
+
41
+ product *= field.confidence
42
+ end
43
+ product.to_f
44
+ end
45
+
46
+ # Add all the Mindee::Parsing::Standard::BaseField values in the array.
47
+ # @return [Float]
48
+ def self.array_sum(field_array)
49
+ arr_sum = 0
50
+ field_array.each do |field|
51
+ return 0.0 if field.value.nil?
52
+
53
+ arr_sum += field.value
54
+ end
55
+ arr_sum.to_f
56
+ end
57
+
58
+ # @param value [Float]
59
+ # @param min_precision [Integer]
60
+ # @return [String]
61
+ def self.float_to_string(value, min_precision = 2)
62
+ return String.new if value.nil?
63
+
64
+ precision = value.to_f.to_s.split('.')[1].size
65
+ precision = [precision, min_precision].max
66
+ format_string = "%.#{precision}f"
67
+ format(format_string, value)
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -6,7 +6,7 @@ module Mindee
6
6
  module Parsing
7
7
  module Standard
8
8
  # Represents tax information.
9
- class AmountField < Field
9
+ class AmountField < BaseField
10
10
  # Amount value as 3 decimal float
11
11
  # @return [Float, nil]
12
12
  attr_reader :value
@@ -18,7 +18,7 @@ module Mindee
18
18
 
19
19
  # @return [String]
20
20
  def to_s
21
- Field.float_to_string(@value)
21
+ BaseField.float_to_string(@value)
22
22
  end
23
23
  end
24
24
  end
@@ -1,107 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative '../../geometry'
4
+ require_relative 'abstract_field'
4
5
 
5
6
  module Mindee
6
7
  module Parsing
7
8
  module Standard
8
- # Base Field object, upon which fields and feature fields are built
9
- class AbstractField
10
- # @return [Mindee::Geometry::Quadrilateral, nil]
11
- attr_reader :bounding_box
12
- # @return [Mindee::Geometry::Polygon, nil]
13
- attr_reader :polygon
14
- # @return [Integer, nil]
15
- attr_reader :page_id
16
- # The confidence score, value will be between 0.0 and 1.0
17
- # @return [Float, nil]
18
- attr_accessor :confidence
19
-
20
- # @param prediction [Hash]
21
- # @param page_id [Integer, nil]
22
- def initialize(prediction, page_id)
23
- @confidence = prediction['confidence'] if prediction.key?('confidence')
24
- @polygon = Geometry.polygon_from_prediction(prediction['polygon']) if prediction.key?('polygon')
25
- @bounding_box = Geometry.get_bounding_box(@polygon) unless @polygon.nil? || @polygon.empty?
26
- @page_id = page_id || prediction['page_id']
27
- end
28
-
29
- # @return [String]
30
- def to_s
31
- @value ? @value.to_s : ''
32
- end
33
-
34
- # Multiply all the Mindee::Parsing::Standard::Field confidences in the array.
35
- # @return [Float]
36
- def self.array_confidence(field_array)
37
- product = 1
38
- field_array.each do |field|
39
- return 0.0 if field.confidence.nil?
40
-
41
- product *= field.confidence
42
- end
43
- product.to_f
44
- end
45
-
46
- # Add all the Mindee::Parsing::Standard::Field values in the array.
47
- # @return [Float]
48
- def self.array_sum(field_array)
49
- arr_sum = 0
50
- field_array.each do |field|
51
- return 0.0 if field.value.nil?
52
-
53
- arr_sum += field.value
54
- end
55
- arr_sum.to_f
56
- end
57
-
58
- # @param value [Float]
59
- # @param min_precision [Integer]
60
- # @return [String]
61
- def self.float_to_string(value, min_precision = 2)
62
- return String.new if value.nil?
63
-
64
- precision = value.to_f.to_s.split('.')[1].size
65
- precision = [precision, min_precision].max
66
- format_string = "%.#{precision}f"
67
- format(format_string, value)
68
- end
69
- end
70
-
71
9
  # Base field object.
72
- class Field < AbstractField
73
- # @return [String, Float, Integer, Boolean]
10
+ class BaseField < Mindee::Parsing::Standard::AbstractField
11
+ # @return [String, Float, Integer, bool]
74
12
  attr_reader :value
75
13
  # true if the field was reconstructed or computed using other fields.
76
- # @return [Boolean]
14
+ # @return [bool]
77
15
  attr_reader :reconstructed
78
16
 
79
17
  # @param prediction [Hash]
80
18
  # @param page_id [Integer, nil]
81
- # @param reconstructed [Boolean]
19
+ # @param reconstructed [bool]
82
20
  def initialize(prediction, page_id, reconstructed: false)
83
21
  super(prediction, page_id)
84
22
  @value = prediction['value']
85
23
  @reconstructed = reconstructed
86
24
  end
87
25
  end
88
-
89
- # Feature field object wrapper for specialized methods.
90
- class FeatureField < AbstractField
91
- # Format strings for display by shortening long strings and assigning empty ones.
92
- # @param in_str [String, Boolean, nil]
93
- # @param max_col_size [int, nil]
94
- # @return [String]
95
- def format_for_display(in_str, max_col_size = nil)
96
- return 'True' if in_str == true
97
- return 'False' if in_str == false
98
- return '' if in_str.nil?
99
- return in_str if max_col_size.nil?
100
-
101
- in_str = in_str.gsub(%r{[\n\r\t]}, "\n" => '\\n', "\r" => '\\r', "\t" => '\\t')
102
- in_str.length <= max_col_size ? in_str : "#{in_str[0..max_col_size - 4]}..."
103
- end
104
- end
105
26
  end
106
27
  end
107
28
  end
@@ -6,15 +6,16 @@ module Mindee
6
6
  module Parsing
7
7
  module Standard
8
8
  # Represents basic text information.
9
- class BooleanField < Field
10
- # Value as Boolean
11
- # @return [Boolean, nil]
9
+ class BooleanField < BaseField
10
+ # Value as bool
11
+ # @return [bool, nil]
12
12
  attr_reader :value
13
13
 
14
14
  def initialize(prediction, page_id = nil, reconstructed: false)
15
15
  super
16
16
  end
17
17
 
18
+ # @return [String]
18
19
  def to_s
19
20
  return '' if value.nil?
20
21
 
@@ -6,7 +6,7 @@ module Mindee
6
6
  module Parsing
7
7
  module Standard
8
8
  # Represents a classifier value.
9
- class ClassificationField < Field
9
+ class ClassificationField < BaseField
10
10
  # Value as String
11
11
  # @return [String]
12
12
  attr_reader :value
@@ -4,28 +4,33 @@ module Mindee
4
4
  module Parsing
5
5
  module Standard
6
6
  # Company registration number or code, and its type.
7
- class CompanyRegistrationField < Field
7
+ class CompanyRegistrationField < BaseField
8
8
  # @return [String]
9
9
  attr_reader :type
10
10
 
11
11
  # @param prediction [Hash]
12
12
  # @param page_id [Integer, nil]
13
- # @param reconstructed [Boolean]
13
+ # @param reconstructed [bool]
14
14
  def initialize(prediction, page_id, reconstructed: false)
15
15
  super
16
16
  @type = prediction['type']
17
17
  end
18
18
 
19
+ # Table line representation of the values.
20
+ # @return [String] The formatted table line, as a string.
19
21
  def to_table_line
20
22
  printable = printable_values
21
23
  format('| %<type>-15s | %<value>-20s ', type: printable['type'], value: printable['value'])
22
24
  end
23
25
 
26
+ # @return [String]
24
27
  def to_s
25
28
  printable = printable_values
26
29
  format('Type: %<type>s, Value: %<value>s', type: printable['type'], value: printable['value'])
27
30
  end
28
31
 
32
+ # Hashed representation of the values.
33
+ # @return [Hash] Hash of the values.
29
34
  def printable_values
30
35
  printable = {}
31
36
  printable['type'] = type
@@ -8,7 +8,7 @@ module Mindee
8
8
  module Parsing
9
9
  module Standard
10
10
  # Represents a date.
11
- class DateField < Field
11
+ class DateField < BaseField
12
12
  # The date as a standard Ruby `Date` object.
13
13
  # @return [Date, nil]
14
14
  attr_reader :date_object
@@ -19,7 +19,7 @@ module Mindee
19
19
  # @return [String, nil]
20
20
  attr_reader :raw
21
21
  # Whether the field was computed or retrieved directly from the document.
22
- # @return [Boolean, nil]
22
+ # @return [bool, nil]
23
23
  attr_reader :is_computed
24
24
 
25
25
  # @param prediction [Hash]
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mindee
4
+ module Parsing
5
+ module Standard
6
+ # Feature field object wrapper for specialized methods.
7
+ class FeatureField < AbstractField
8
+ # Format strings for display by shortening long strings and assigning empty ones.
9
+ # @param in_str [String, bool, nil]
10
+ # @param max_col_size [int, nil]
11
+ # @return [String]
12
+ def format_for_display(in_str, max_col_size = nil)
13
+ return 'True' if in_str == true
14
+ return 'False' if in_str == false
15
+ return '' if in_str.nil?
16
+ return in_str.to_s if max_col_size.nil?
17
+
18
+ in_str = in_str.to_s.gsub(%r{[\n\r\t]}, "\n" => '\\n', "\r" => '\\r', "\t" => '\\t')
19
+ in_str.to_s.length <= max_col_size.to_i ? in_str.to_s : "#{in_str[0..max_col_size.to_i - 4]}..."
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -6,7 +6,7 @@ module Mindee
6
6
  module Parsing
7
7
  module Standard
8
8
  # Represents payment details for invoices and receipts
9
- class PaymentDetailsField < Field
9
+ class PaymentDetailsField < BaseField
10
10
  # @return [String, nil]
11
11
  attr_reader :account_number
12
12
  # @return [String, nil]
@@ -18,7 +18,7 @@ module Mindee
18
18
 
19
19
  # @param prediction [Hash]
20
20
  # @param page_id [Integer, nil]
21
- # @param reconstructed [Boolean]
21
+ # @param reconstructed [bool]
22
22
  def initialize(prediction, page_id, reconstructed: false)
23
23
  super
24
24
  @account_number = prediction['account_number']
@@ -49,7 +49,9 @@ module Mindee
49
49
  private
50
50
 
51
51
  def to_quadrilateral(prediction, key)
52
- Geometry.quadrilateral_from_prediction(prediction[key]) unless prediction[key].nil? || prediction[key].empty?
52
+ return if prediction[key].nil? || prediction[key].empty?
53
+
54
+ Mindee::Geometry.quadrilateral_from_prediction(prediction[key])
53
55
  end
54
56
  end
55
57
  end
@@ -6,7 +6,7 @@ module Mindee
6
6
  module Parsing
7
7
  module Standard
8
8
  # Represents basic text information.
9
- class StringField < Field
9
+ class StringField < Mindee::Parsing::Standard::BaseField
10
10
  # Value as String
11
11
  # @return [String, nil]
12
12
  attr_reader :value
@@ -6,7 +6,7 @@ module Mindee
6
6
  module Parsing
7
7
  module Standard
8
8
  # Represents tax information.
9
- class TaxField < Field
9
+ class TaxField < BaseField
10
10
  # Tax value as 3 decimal float
11
11
  # @return [Float, nil]
12
12
  attr_reader :value
@@ -6,6 +6,7 @@ require_relative 'standard/boolean_field'
6
6
  require_relative 'standard/classification_field'
7
7
  require_relative 'standard/company_registration_field'
8
8
  require_relative 'standard/date_field'
9
+ require_relative 'standard/feature_field'
9
10
  require_relative 'standard/payment_details_field'
10
11
  require_relative 'standard/position_field'
11
12
  require_relative 'standard/tax_field'
@@ -1,38 +1,38 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'generated_object_field'
3
+ require_relative 'universal_object_field'
4
4
 
5
5
  module Mindee
6
6
  module Parsing
7
- module Generated
8
- # A list of values or objects, used in generated APIs.
9
- class GeneratedListField
7
+ module Universal
8
+ # A list of values or objects, used in universal APIs.
9
+ class UniversalListField
10
10
  include Mindee::Parsing::Standard
11
- include Mindee::Parsing::Generated
11
+ include Mindee::Parsing::Universal
12
12
 
13
- # Id of the page (as given by the API).
13
+ # ID of the page (as given by the API).
14
14
  # @return [Integer]
15
15
  attr_accessor :page_id
16
16
 
17
17
  # List of word values
18
- # @return [Array<GeneratedObjectField, StringField>]
18
+ # @return [Array<UniversalObjectField, StringField>]
19
19
  attr_accessor :values
20
20
 
21
- # Id of the page the object was found on.
21
+ # ID of the page the object was found on.
22
22
  # List of word values.
23
23
 
24
24
  def initialize(raw_prediction, page_id = nil)
25
- @values = []
25
+ @values = [] # : Array[UniversalObjectField | Parsing::Standard::StringField]
26
26
 
27
27
  raw_prediction.each do |value|
28
28
  page_id = value['page_id'] if value.key?('page_id') && !value['page_id'].nil?
29
29
 
30
- if Generated.generated_object?(value)
31
- @values.push(GeneratedObjectField.new(value, page_id))
30
+ if Universal.universal_object?(value)
31
+ @values.push(Mindee::Parsing::Universal::UniversalObjectField.new(value, page_id))
32
32
  else
33
33
  value_str = value.dup
34
34
  value_str['value'] = value_str['value'].to_s if value_str.key?('value') && !value_str['value'].nil?
35
- @values.push(StringField.new(value_str, page_id))
35
+ @values.push(Mindee::Parsing::Standard::StringField.new(value_str, page_id))
36
36
  end
37
37
  end
38
38
  end
@@ -4,19 +4,26 @@ require_relative '../common'
4
4
 
5
5
  module Mindee
6
6
  module Parsing
7
- # Generated fields and functions.
8
- module Generated
7
+ # Universal fields and functions.
8
+ module Universal
9
9
  # A JSON-like object, with miscellaneous values.
10
- class GeneratedObjectField
11
- include Mindee::Parsing::Standard
12
- attr_accessor :page_id, :confidence, :raw_value
10
+ class UniversalObjectField
11
+ # ID of the page (as given by the API).
12
+ # @return [Integer]
13
+ attr_reader :page_id
14
+ # The confidence score, value will be between 0.0 and 1.0
15
+ # @return [Float]
16
+ attr_reader :confidence
17
+ # Value as String
18
+ # @return [Hash<Symbol | String, untyped>, nil]
19
+ attr_accessor :raw_value
13
20
 
14
- # Id of the page the object was found on.
21
+ # ID of the page the object was found on.
15
22
  # Confidence with which the value was assessed.
16
23
  # Raw unprocessed value, as it was sent by the server.
17
24
 
18
25
  def initialize(raw_prediction, page_id = nil)
19
- @all_values = {}
26
+ @all_values = {} # : Hash[Symbol | String, untyped]
20
27
  item_page_id = nil
21
28
  raw_prediction.each do |name, value|
22
29
  case name
@@ -47,7 +54,7 @@ module Mindee
47
54
  end
48
55
 
49
56
  # Necessary overload of the method_missing method to allow for direct access to dynamic attributes without
50
- # complicating usage too much
57
+ # changing the user usage too much.
51
58
  # Returns the corresponding attribute when asked.
52
59
  #
53
60
  # Otherwise, raises a NoMethodError.
@@ -61,14 +68,14 @@ module Mindee
61
68
  end
62
69
 
63
70
  # Necessary overload of the respond_to_missing? method to allow for direct access to dynamic attributes without
64
- # complicating usage too much
71
+ # changing the user usage too much.
65
72
  # Returns true if the method name exists as a key in @all_values,
66
73
  # indicating that the object can respond to the method.
67
74
  # Otherwise, calls super to fallback to the default behavior.
68
75
  #
69
76
  # @param method_name [Symbol] The name of the method being checked.
70
- # @param include_private [Boolean] Whether to include private methods in the check.
71
- # @return [Boolean] True if the method can be responded to, false otherwise.
77
+ # @param include_private [bool] Whether to include private methods in the check.
78
+ # @return [bool] True if the method can be responded to, false otherwise.
72
79
  def respond_to_missing?(method_name, include_private = false)
73
80
  @all_values.key?(method_name.to_s) || super
74
81
  end
@@ -82,7 +89,9 @@ module Mindee
82
89
 
83
90
  def handle_position_field(name, value, item_page_id)
84
91
  @all_values[name.to_s] =
85
- PositionField.new({ name.to_s => value }, value_key: name.to_s, page_id: item_page_id)
92
+ Mindee::Parsing::Standard::PositionField.new(
93
+ { name.to_s => value }, item_page_id
94
+ )
86
95
  end
87
96
 
88
97
  def handle_default_field(name, value)
@@ -90,7 +99,7 @@ module Mindee
90
99
  end
91
100
  end
92
101
 
93
- def self.generated_object?(str_dict)
102
+ def self.universal_object?(str_dict)
94
103
  common_keys = [
95
104
  'value',
96
105
  'polygon',
@@ -101,7 +110,7 @@ module Mindee
101
110
  'values',
102
111
  'raw_value',
103
112
  ]
104
- str_dict.each_key { |key| return true unless common_keys.include?(key) }
113
+ str_dict.each_key { |key| return true unless common_keys.include?(key.to_s) }
105
114
  false
106
115
  end
107
116
  end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'universal/universal_object_field'
4
+ require_relative 'universal/universal_list_field'
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'parsing/standard'
4
- require_relative 'parsing/custom'
5
4
  require_relative 'parsing/common'
6
- require_relative 'parsing/generated'
5
+ require_relative 'parsing/universal'
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mindee
4
- # Pdf Extraction Module.
5
- module Extraction
6
- module PdfExtractor
4
+ # PDF Extraction Module.
5
+ module PDF
6
+ module PDFExtractor
7
7
  # An extracted sub-Pdf.
8
- class ExtractedPdf
8
+ class ExtractedPDF
9
9
  # Byte contents of the pdf
10
10
  # @return [StreamIO]
11
11
  attr_reader :pdf_bytes
@@ -24,19 +24,22 @@ module Mindee
24
24
  # Retrieves the page count for a given pdf.
25
25
  # @return [Integer]
26
26
  def page_count
27
- current_pdf = Mindee::PDF::PdfProcessor.open_pdf(pdf_bytes)
27
+ current_pdf = Mindee::PDF::PDFProcessor.open_pdf(pdf_bytes)
28
28
  current_pdf.pages.size
29
- rescue TypeError
30
- raise 'Could not retrieve page count from Extracted PDF object.'
29
+ rescue TypeError, Origami::InvalidPDFError
30
+ raise Errors::MindeePDFError, 'Could not retrieve page count from Extracted PDF object.'
31
31
  end
32
32
 
33
33
  # Writes the contents of the current PDF object to a file.
34
34
  # @param output_path [String] Path to write to.
35
- def write_to_file(output_path)
36
- raise 'Provided path is not a file' if File.directory?(destination)
37
- raise 'Invalid save path provided' unless File.exist?(File.expand_path('..', output_path))
38
-
39
- if File.extname(output_path).downcase == '.pdf'
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'
40
43
  base_path = File.expand_path('..', output_path)
41
44
  output_path = File.expand_path("#{File.basename(output_path)}.pdf", base_path)
42
45
  end