mindee-lite 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 (510) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +24 -0
  3. data/.gitattributes +14 -0
  4. data/.gitignore +76 -0
  5. data/.gitmodules +3 -0
  6. data/.pre-commit-config.yaml +36 -0
  7. data/.rubocop.yml +49 -0
  8. data/.yardopts +4 -0
  9. data/CHANGELOG.md +515 -0
  10. data/CODE_OF_CONDUCT.md +129 -0
  11. data/CONTRIBUTING.md +107 -0
  12. data/Gemfile +14 -0
  13. data/LICENSE +21 -0
  14. data/README.md +42 -0
  15. data/Rakefile +40 -0
  16. data/Steepfile +30 -0
  17. data/bin/console +14 -0
  18. data/bin/mindee.rb +30 -0
  19. data/bin/v1/parser.rb +153 -0
  20. data/bin/v1/products.rb +88 -0
  21. data/bin/v2/parser.rb +235 -0
  22. data/bin/v2/products.rb +34 -0
  23. data/docs/code_samples/bank_account_details_v1.txt +24 -0
  24. data/docs/code_samples/bank_account_details_v2.txt +24 -0
  25. data/docs/code_samples/bank_statement_fr_v2_async.txt +24 -0
  26. data/docs/code_samples/barcode_reader_v1.txt +24 -0
  27. data/docs/code_samples/cropper_v1.txt +21 -0
  28. data/docs/code_samples/default.txt +30 -0
  29. data/docs/code_samples/default_async.txt +29 -0
  30. data/docs/code_samples/expense_receipts_v5.txt +25 -0
  31. data/docs/code_samples/expense_receipts_v5_async.txt +24 -0
  32. data/docs/code_samples/financial_document_v1.txt +25 -0
  33. data/docs/code_samples/financial_document_v1_async.txt +24 -0
  34. data/docs/code_samples/idcard_fr_v1.txt +24 -0
  35. data/docs/code_samples/idcard_fr_v2.txt +24 -0
  36. data/docs/code_samples/international_id_v2_async.txt +24 -0
  37. data/docs/code_samples/invoice_splitter_v1_async.txt +24 -0
  38. data/docs/code_samples/invoices_v4.txt +25 -0
  39. data/docs/code_samples/invoices_v4_async.txt +24 -0
  40. data/docs/code_samples/multi_receipts_detector_v1.txt +24 -0
  41. data/docs/code_samples/passport_v1.txt +24 -0
  42. data/docs/code_samples/resume_v1_async.txt +24 -0
  43. data/docs/code_samples/v2_classification.txt +30 -0
  44. data/docs/code_samples/v2_crop.txt +30 -0
  45. data/docs/code_samples/v2_extraction.txt +42 -0
  46. data/docs/code_samples/v2_extraction_webhook.txt +45 -0
  47. data/docs/code_samples/v2_ocr.txt +30 -0
  48. data/docs/code_samples/v2_split.txt +30 -0
  49. data/docs/code_samples/workflow_execution.txt +28 -0
  50. data/docs/code_samples/workflow_polling.txt +35 -0
  51. data/examples/auto_invoice_splitter_extraction.rb +48 -0
  52. data/examples/auto_multi_receipts_detector_extraction.rb +30 -0
  53. data/lib/mindee/dependency.rb +29 -0
  54. data/lib/mindee/error/mindee_error.rb +17 -0
  55. data/lib/mindee/error/mindee_http_error.rb +36 -0
  56. data/lib/mindee/error/mindee_http_error_v2.rb +45 -0
  57. data/lib/mindee/error/mindee_http_unknown_error_v2.rb +18 -0
  58. data/lib/mindee/error/mindee_input_error.rb +30 -0
  59. data/lib/mindee/error.rb +6 -0
  60. data/lib/mindee/geometry/min_max.rb +23 -0
  61. data/lib/mindee/geometry/point.rb +41 -0
  62. data/lib/mindee/geometry/polygon.rb +37 -0
  63. data/lib/mindee/geometry/quadrilateral.rb +50 -0
  64. data/lib/mindee/geometry/utils.rb +88 -0
  65. data/lib/mindee/geometry.rb +7 -0
  66. data/lib/mindee/http/.rubocop.yml +7 -0
  67. data/lib/mindee/http/http_error_handler.rb +106 -0
  68. data/lib/mindee/http/response_validation.rb +81 -0
  69. data/lib/mindee/http.rb +3 -0
  70. data/lib/mindee/image/extracted_image.rb +89 -0
  71. data/lib/mindee/image/image_compressor.rb +29 -0
  72. data/lib/mindee/image/image_extractor.rb +118 -0
  73. data/lib/mindee/image/image_utils.rb +165 -0
  74. data/lib/mindee/image.rb +6 -0
  75. data/lib/mindee/input/base_parameters.rb +149 -0
  76. data/lib/mindee/input/local_response.rb +80 -0
  77. data/lib/mindee/input/polling_options.rb +26 -0
  78. data/lib/mindee/input/sources/base64_input_source.rb +31 -0
  79. data/lib/mindee/input/sources/bytes_input_source.rb +21 -0
  80. data/lib/mindee/input/sources/file_input_source.rb +20 -0
  81. data/lib/mindee/input/sources/local_input_source.rb +216 -0
  82. data/lib/mindee/input/sources/path_input_source.rb +20 -0
  83. data/lib/mindee/input/sources/url_input_source.rb +130 -0
  84. data/lib/mindee/input/sources.rb +8 -0
  85. data/lib/mindee/input.rb +4 -0
  86. data/lib/mindee/logging/logger.rb +24 -0
  87. data/lib/mindee/logging.rb +3 -0
  88. data/lib/mindee/page_options.rb +24 -0
  89. data/lib/mindee/pdf/extracted_pdf.rb +70 -0
  90. data/lib/mindee/pdf/pdf_compressor.rb +121 -0
  91. data/lib/mindee/pdf/pdf_extractor.rb +121 -0
  92. data/lib/mindee/pdf/pdf_processor.rb +91 -0
  93. data/lib/mindee/pdf/pdf_tools.rb +201 -0
  94. data/lib/mindee/pdf.rb +7 -0
  95. data/lib/mindee/v1/client.rb +490 -0
  96. data/lib/mindee/v1/extraction/multi_receipts_extractor.rb +32 -0
  97. data/lib/mindee/v1/extraction.rb +3 -0
  98. data/lib/mindee/v1/http/.rubocop.yml +7 -0
  99. data/lib/mindee/v1/http/endpoint.rb +221 -0
  100. data/lib/mindee/v1/http/workflow_endpoint.rb +93 -0
  101. data/lib/mindee/v1/http.rb +4 -0
  102. data/lib/mindee/v1/parsing/common/api_request.rb +38 -0
  103. data/lib/mindee/v1/parsing/common/api_response.rb +63 -0
  104. data/lib/mindee/v1/parsing/common/document.rb +86 -0
  105. data/lib/mindee/v1/parsing/common/execution.rb +78 -0
  106. data/lib/mindee/v1/parsing/common/execution_file.rb +26 -0
  107. data/lib/mindee/v1/parsing/common/execution_priority.rb +38 -0
  108. data/lib/mindee/v1/parsing/common/extras/cropper_extra.rb +32 -0
  109. data/lib/mindee/v1/parsing/common/extras/extras.rb +62 -0
  110. data/lib/mindee/v1/parsing/common/extras/full_text_ocr_extra.rb +35 -0
  111. data/lib/mindee/v1/parsing/common/extras/rag_extra.rb +28 -0
  112. data/lib/mindee/v1/parsing/common/extras.rb +6 -0
  113. data/lib/mindee/v1/parsing/common/inference.rb +69 -0
  114. data/lib/mindee/v1/parsing/common/job.rb +48 -0
  115. data/lib/mindee/v1/parsing/common/ocr/mvision_v1.rb +52 -0
  116. data/lib/mindee/v1/parsing/common/ocr/ocr.rb +180 -0
  117. data/lib/mindee/v1/parsing/common/ocr.rb +3 -0
  118. data/lib/mindee/v1/parsing/common/orientation.rb +28 -0
  119. data/lib/mindee/v1/parsing/common/page.rb +49 -0
  120. data/lib/mindee/v1/parsing/common/prediction.rb +19 -0
  121. data/lib/mindee/v1/parsing/common/product.rb +26 -0
  122. data/lib/mindee/v1/parsing/common/workflow_response.rb +30 -0
  123. data/lib/mindee/v1/parsing/common.rb +15 -0
  124. data/lib/mindee/v1/parsing/standard/abstract_field.rb +74 -0
  125. data/lib/mindee/v1/parsing/standard/address_field.rb +51 -0
  126. data/lib/mindee/v1/parsing/standard/amount_field.rb +28 -0
  127. data/lib/mindee/v1/parsing/standard/base_field.rb +30 -0
  128. data/lib/mindee/v1/parsing/standard/boolean_field.rb +29 -0
  129. data/lib/mindee/v1/parsing/standard/classification_field.rb +18 -0
  130. data/lib/mindee/v1/parsing/standard/company_registration_field.rb +45 -0
  131. data/lib/mindee/v1/parsing/standard/date_field.rb +40 -0
  132. data/lib/mindee/v1/parsing/standard/feature_field.rb +26 -0
  133. data/lib/mindee/v1/parsing/standard/locale_field.rb +52 -0
  134. data/lib/mindee/v1/parsing/standard/payment_details_field.rb +44 -0
  135. data/lib/mindee/v1/parsing/standard/position_field.rb +61 -0
  136. data/lib/mindee/v1/parsing/standard/string_field.rb +26 -0
  137. data/lib/mindee/v1/parsing/standard/tax_field.rb +110 -0
  138. data/lib/mindee/v1/parsing/standard.rb +15 -0
  139. data/lib/mindee/v1/parsing/universal/universal_list_field.rb +60 -0
  140. data/lib/mindee/v1/parsing/universal/universal_object_field.rb +123 -0
  141. data/lib/mindee/v1/parsing/universal.rb +4 -0
  142. data/lib/mindee/v1/parsing.rb +5 -0
  143. data/lib/mindee/v1/product/.rubocop.yml +12 -0
  144. data/lib/mindee/v1/product/barcode_reader/barcode_reader_v1.rb +47 -0
  145. data/lib/mindee/v1/product/barcode_reader/barcode_reader_v1_document.rb +47 -0
  146. data/lib/mindee/v1/product/barcode_reader/barcode_reader_v1_page.rb +38 -0
  147. data/lib/mindee/v1/product/cropper/cropper_v1.rb +47 -0
  148. data/lib/mindee/v1/product/cropper/cropper_v1_document.rb +15 -0
  149. data/lib/mindee/v1/product/cropper/cropper_v1_page.rb +55 -0
  150. data/lib/mindee/v1/product/financial_document/financial_document_v1.rb +47 -0
  151. data/lib/mindee/v1/product/financial_document/financial_document_v1_document.rb +329 -0
  152. data/lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb +124 -0
  153. data/lib/mindee/v1/product/financial_document/financial_document_v1_line_items.rb +64 -0
  154. data/lib/mindee/v1/product/financial_document/financial_document_v1_page.rb +38 -0
  155. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1.rb +49 -0
  156. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_document.rb +49 -0
  157. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_page.rb +40 -0
  158. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2.rb +49 -0
  159. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rb +63 -0
  160. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_document.rb +60 -0
  161. data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_page.rb +40 -0
  162. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2.rb +49 -0
  163. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_document.rb +169 -0
  164. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_page.rb +40 -0
  165. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rb +78 -0
  166. data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transactions.rb +56 -0
  167. data/lib/mindee/v1/product/fr/id_card/id_card_v1.rb +49 -0
  168. data/lib/mindee/v1/product/fr/id_card/id_card_v1_document.rb +106 -0
  169. data/lib/mindee/v1/product/fr/id_card/id_card_v1_page.rb +57 -0
  170. data/lib/mindee/v1/product/fr/id_card/id_card_v2.rb +49 -0
  171. data/lib/mindee/v1/product/fr/id_card/id_card_v2_document.rb +143 -0
  172. data/lib/mindee/v1/product/fr/id_card/id_card_v2_page.rb +65 -0
  173. data/lib/mindee/v1/product/international_id/international_id_v2.rb +47 -0
  174. data/lib/mindee/v1/product/international_id/international_id_v2_document.rb +164 -0
  175. data/lib/mindee/v1/product/international_id/international_id_v2_page.rb +38 -0
  176. data/lib/mindee/v1/product/invoice/invoice_v4.rb +47 -0
  177. data/lib/mindee/v1/product/invoice/invoice_v4_document.rb +300 -0
  178. data/lib/mindee/v1/product/invoice/invoice_v4_line_item.rb +124 -0
  179. data/lib/mindee/v1/product/invoice/invoice_v4_line_items.rb +64 -0
  180. data/lib/mindee/v1/product/invoice/invoice_v4_page.rb +38 -0
  181. data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1.rb +47 -0
  182. data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_document.rb +66 -0
  183. data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rb +58 -0
  184. data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_groups.rb +50 -0
  185. data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_page.rb +38 -0
  186. data/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rb +47 -0
  187. data/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb +38 -0
  188. data/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_page.rb +38 -0
  189. data/lib/mindee/v1/product/passport/passport_v1.rb +47 -0
  190. data/lib/mindee/v1/product/passport/passport_v1_document.rb +112 -0
  191. data/lib/mindee/v1/product/passport/passport_v1_page.rb +38 -0
  192. data/lib/mindee/v1/product/receipt/receipt_v5.rb +47 -0
  193. data/lib/mindee/v1/product/receipt/receipt_v5_document.rb +187 -0
  194. data/lib/mindee/v1/product/receipt/receipt_v5_line_item.rb +88 -0
  195. data/lib/mindee/v1/product/receipt/receipt_v5_line_items.rb +56 -0
  196. data/lib/mindee/v1/product/receipt/receipt_v5_page.rb +38 -0
  197. data/lib/mindee/v1/product/resume/resume_v1.rb +47 -0
  198. data/lib/mindee/v1/product/resume/resume_v1_certificate.rb +82 -0
  199. data/lib/mindee/v1/product/resume/resume_v1_certificates.rb +60 -0
  200. data/lib/mindee/v1/product/resume/resume_v1_document.rb +340 -0
  201. data/lib/mindee/v1/product/resume/resume_v1_education.rb +106 -0
  202. data/lib/mindee/v1/product/resume/resume_v1_educations.rb +66 -0
  203. data/lib/mindee/v1/product/resume/resume_v1_language.rb +66 -0
  204. data/lib/mindee/v1/product/resume/resume_v1_languages.rb +56 -0
  205. data/lib/mindee/v1/product/resume/resume_v1_page.rb +38 -0
  206. data/lib/mindee/v1/product/resume/resume_v1_professional_experience.rb +122 -0
  207. data/lib/mindee/v1/product/resume/resume_v1_professional_experiences.rb +70 -0
  208. data/lib/mindee/v1/product/resume/resume_v1_social_networks_url.rb +66 -0
  209. data/lib/mindee/v1/product/resume/resume_v1_social_networks_urls.rb +56 -0
  210. data/lib/mindee/v1/product/universal/universal.rb +48 -0
  211. data/lib/mindee/v1/product/universal/universal_document.rb +35 -0
  212. data/lib/mindee/v1/product/universal/universal_page.rb +54 -0
  213. data/lib/mindee/v1/product/universal/universal_prediction.rb +128 -0
  214. data/lib/mindee/v1/product.rb +18 -0
  215. data/lib/mindee/v1.rb +7 -0
  216. data/lib/mindee/v2/client.rb +132 -0
  217. data/lib/mindee/v2/file_operation/crop.rb +51 -0
  218. data/lib/mindee/v2/file_operation/crop_files.rb +25 -0
  219. data/lib/mindee/v2/file_operation/split.rb +37 -0
  220. data/lib/mindee/v2/file_operation/split_files.rb +25 -0
  221. data/lib/mindee/v2/file_operation.rb +6 -0
  222. data/lib/mindee/v2/http/.rubocop.yml +7 -0
  223. data/lib/mindee/v2/http/api_v2_settings.rb +65 -0
  224. data/lib/mindee/v2/http/mindee_api_v2.rb +230 -0
  225. data/lib/mindee/v2/http.rb +4 -0
  226. data/lib/mindee/v2/parsing/base_inference.rb +44 -0
  227. data/lib/mindee/v2/parsing/base_response.rb +15 -0
  228. data/lib/mindee/v2/parsing/common_response.rb +20 -0
  229. data/lib/mindee/v2/parsing/error_item.rb +21 -0
  230. data/lib/mindee/v2/parsing/error_response.rb +51 -0
  231. data/lib/mindee/v2/parsing/field/base_field.rb +63 -0
  232. data/lib/mindee/v2/parsing/field/field_confidence.rb +128 -0
  233. data/lib/mindee/v2/parsing/field/field_location.rb +33 -0
  234. data/lib/mindee/v2/parsing/field/inference_fields.rb +105 -0
  235. data/lib/mindee/v2/parsing/field/list_field.rb +79 -0
  236. data/lib/mindee/v2/parsing/field/object_field.rb +138 -0
  237. data/lib/mindee/v2/parsing/field/simple_field.rb +60 -0
  238. data/lib/mindee/v2/parsing/field.rb +9 -0
  239. data/lib/mindee/v2/parsing/inference_active_options.rb +67 -0
  240. data/lib/mindee/v2/parsing/inference_file.rb +38 -0
  241. data/lib/mindee/v2/parsing/inference_job.rb +25 -0
  242. data/lib/mindee/v2/parsing/inference_model.rb +30 -0
  243. data/lib/mindee/v2/parsing/job.rb +93 -0
  244. data/lib/mindee/v2/parsing/job_response.rb +30 -0
  245. data/lib/mindee/v2/parsing/job_webhook.rb +59 -0
  246. data/lib/mindee/v2/parsing/rag_metadata.rb +17 -0
  247. data/lib/mindee/v2/parsing/raw_text.rb +27 -0
  248. data/lib/mindee/v2/parsing/raw_text_page.rb +24 -0
  249. data/lib/mindee/v2/parsing/search/pagination_metadata.rb +44 -0
  250. data/lib/mindee/v2/parsing/search/search_model.rb +38 -0
  251. data/lib/mindee/v2/parsing/search/search_models.rb +34 -0
  252. data/lib/mindee/v2/parsing/search/search_response.rb +38 -0
  253. data/lib/mindee/v2/parsing/search.rb +6 -0
  254. data/lib/mindee/v2/parsing.rb +16 -0
  255. data/lib/mindee/v2/product/base_product.rb +28 -0
  256. data/lib/mindee/v2/product/classification/classification.rb +20 -0
  257. data/lib/mindee/v2/product/classification/classification_classifier.rb +25 -0
  258. data/lib/mindee/v2/product/classification/classification_inference.rb +35 -0
  259. data/lib/mindee/v2/product/classification/classification_response.rb +32 -0
  260. data/lib/mindee/v2/product/classification/classification_result.rb +27 -0
  261. data/lib/mindee/v2/product/classification/params/classification_parameters.rb +47 -0
  262. data/lib/mindee/v2/product/crop/crop.rb +20 -0
  263. data/lib/mindee/v2/product/crop/crop_inference.rb +34 -0
  264. data/lib/mindee/v2/product/crop/crop_item.rb +39 -0
  265. data/lib/mindee/v2/product/crop/crop_response.rb +40 -0
  266. data/lib/mindee/v2/product/crop/crop_result.rb +34 -0
  267. data/lib/mindee/v2/product/crop/params/crop_parameters.rb +47 -0
  268. data/lib/mindee/v2/product/extraction/extraction.rb +21 -0
  269. data/lib/mindee/v2/product/extraction/extraction_inference.rb +40 -0
  270. data/lib/mindee/v2/product/extraction/extraction_response.rb +32 -0
  271. data/lib/mindee/v2/product/extraction/extraction_result.rb +44 -0
  272. data/lib/mindee/v2/product/extraction/params/data_schema.rb +51 -0
  273. data/lib/mindee/v2/product/extraction/params/data_schema_field.rb +69 -0
  274. data/lib/mindee/v2/product/extraction/params/data_schema_replace.rb +39 -0
  275. data/lib/mindee/v2/product/extraction/params/extraction_parameters.rb +125 -0
  276. data/lib/mindee/v2/product/ocr/ocr.rb +20 -0
  277. data/lib/mindee/v2/product/ocr/ocr_inference.rb +34 -0
  278. data/lib/mindee/v2/product/ocr/ocr_page.rb +33 -0
  279. data/lib/mindee/v2/product/ocr/ocr_response.rb +32 -0
  280. data/lib/mindee/v2/product/ocr/ocr_result.rb +34 -0
  281. data/lib/mindee/v2/product/ocr/ocr_word.rb +29 -0
  282. data/lib/mindee/v2/product/ocr/params/ocr_parameters.rb +47 -0
  283. data/lib/mindee/v2/product/split/params/split_parameters.rb +48 -0
  284. data/lib/mindee/v2/product/split/split.rb +19 -0
  285. data/lib/mindee/v2/product/split/split_inference.rb +34 -0
  286. data/lib/mindee/v2/product/split/split_range.rb +38 -0
  287. data/lib/mindee/v2/product/split/split_response.rb +40 -0
  288. data/lib/mindee/v2/product/split/split_result.rb +34 -0
  289. data/lib/mindee/v2/product.rb +7 -0
  290. data/lib/mindee/v2.rb +7 -0
  291. data/lib/mindee/version.rb +26 -0
  292. data/lib/mindee.rb +135 -0
  293. data/mindee-lite.gemspec +36 -0
  294. data/mindee.gemspec +44 -0
  295. data/sig/custom/marcel.rbs +3 -0
  296. data/sig/custom/mini_magick.rbs +31 -0
  297. data/sig/custom/net_http.rbs +43 -0
  298. data/sig/custom/origami.rbs +59 -0
  299. data/sig/mindee/dependency.rbs +13 -0
  300. data/sig/mindee/error/mindee_error.rbs +13 -0
  301. data/sig/mindee/error/mindee_http_error.rbs +17 -0
  302. data/sig/mindee/error/mindee_http_error_v2.rbs +15 -0
  303. data/sig/mindee/error/mindee_http_unknown_error_v2.rbs +9 -0
  304. data/sig/mindee/error/mindee_input_error.rbs +18 -0
  305. data/sig/mindee/geometry/min_max.rbs +11 -0
  306. data/sig/mindee/geometry/point.rbs +14 -0
  307. data/sig/mindee/geometry/polygon.rbs +12 -0
  308. data/sig/mindee/geometry/quadrilateral.rbs +15 -0
  309. data/sig/mindee/geometry/utils.rbs +13 -0
  310. data/sig/mindee/http/http_error_handler.rbs +15 -0
  311. data/sig/mindee/http/response_validation.rbs +11 -0
  312. data/sig/mindee/image/extracted_image.rbs +21 -0
  313. data/sig/mindee/image/image_compressor.rbs +8 -0
  314. data/sig/mindee/image/image_extractor.rbs +13 -0
  315. data/sig/mindee/image/image_utils.rbs +19 -0
  316. data/sig/mindee/input/base_parameters.rbs +35 -0
  317. data/sig/mindee/input/local_response.rbs +14 -0
  318. data/sig/mindee/input/polling_options.rbs +12 -0
  319. data/sig/mindee/input/sources/base64_input_source.rbs +11 -0
  320. data/sig/mindee/input/sources/bytes_input_source.rbs +10 -0
  321. data/sig/mindee/input/sources/file_input_source.rbs +10 -0
  322. data/sig/mindee/input/sources/local_input_source.rbs +30 -0
  323. data/sig/mindee/input/sources/path_input_source.rbs +10 -0
  324. data/sig/mindee/input/sources/url_input_source.rbs +20 -0
  325. data/sig/mindee/logging/logger.rbs +11 -0
  326. data/sig/mindee/page_options.rbs +11 -0
  327. data/sig/mindee/pdf/extracted_pdf.rbs +17 -0
  328. data/sig/mindee/pdf/pdf_compressor.rbs +15 -0
  329. data/sig/mindee/pdf/pdf_extractor.rbs +19 -0
  330. data/sig/mindee/pdf/pdf_processor.rbs +12 -0
  331. data/sig/mindee/pdf/pdf_tools.rbs +31 -0
  332. data/sig/mindee/v1/client.rbs +84 -0
  333. data/sig/mindee/v1/extraction/multi_receipts_extractor.rbs +8 -0
  334. data/sig/mindee/v1/http/endpoint.rbs +41 -0
  335. data/sig/mindee/v1/http/workflow_endpoint.rbs +22 -0
  336. data/sig/mindee/v1/parsing/common/api_request.rbs +22 -0
  337. data/sig/mindee/v1/parsing/common/api_response.rbs +31 -0
  338. data/sig/mindee/v1/parsing/common/document.rbs +32 -0
  339. data/sig/mindee/v1/parsing/common/execution.rbs +26 -0
  340. data/sig/mindee/v1/parsing/common/execution_file.rbs +16 -0
  341. data/sig/mindee/v1/parsing/common/execution_priority.rbs +16 -0
  342. data/sig/mindee/v1/parsing/common/extras/cropper_extra.rbs +18 -0
  343. data/sig/mindee/v1/parsing/common/extras/extras.rbs +24 -0
  344. data/sig/mindee/v1/parsing/common/extras/full_text_ocr_extra.rbs +22 -0
  345. data/sig/mindee/v1/parsing/common/extras/rag_extra.rbs +19 -0
  346. data/sig/mindee/v1/parsing/common/inference.rbs +31 -0
  347. data/sig/mindee/v1/parsing/common/job.rbs +24 -0
  348. data/sig/mindee/v1/parsing/common/ocr/mvision_v1.rbs +20 -0
  349. data/sig/mindee/v1/parsing/common/ocr/ocr.rbs +56 -0
  350. data/sig/mindee/v1/parsing/common/orientation.rbs +15 -0
  351. data/sig/mindee/v1/parsing/common/page.rbs +19 -0
  352. data/sig/mindee/v1/parsing/common/prediction.rbs +14 -0
  353. data/sig/mindee/v1/parsing/common/product.rbs +16 -0
  354. data/sig/mindee/v1/parsing/common/workflow_response.rbs +22 -0
  355. data/sig/mindee/v1/parsing/standard/abstract_field.rbs +30 -0
  356. data/sig/mindee/v1/parsing/standard/address_field.rbs +28 -0
  357. data/sig/mindee/v1/parsing/standard/amount_field.rbs +16 -0
  358. data/sig/mindee/v1/parsing/standard/base_field.rbs +16 -0
  359. data/sig/mindee/v1/parsing/standard/boolean_field.rbs +16 -0
  360. data/sig/mindee/v1/parsing/standard/classification_field.rbs +12 -0
  361. data/sig/mindee/v1/parsing/standard/company_registration_field.rbs +20 -0
  362. data/sig/mindee/v1/parsing/standard/date_field.rbs +20 -0
  363. data/sig/mindee/v1/parsing/standard/feature_field.rbs +12 -0
  364. data/sig/mindee/v1/parsing/standard/locale_field.rbs +24 -0
  365. data/sig/mindee/v1/parsing/standard/payment_details_field.rbs +19 -0
  366. data/sig/mindee/v1/parsing/standard/position_field.rbs +26 -0
  367. data/sig/mindee/v1/parsing/standard/string_field.rbs +16 -0
  368. data/sig/mindee/v1/parsing/standard/tax_field.rbs +33 -0
  369. data/sig/mindee/v1/parsing/universal/universal_list_field.rbs +21 -0
  370. data/sig/mindee/v1/parsing/universal/universal_object_field.rbs +38 -0
  371. data/sig/mindee/v1/product/barcode_reader/barcode_reader_v1.rbs +13 -0
  372. data/sig/mindee/v1/product/barcode_reader/barcode_reader_v1_document.rbs +16 -0
  373. data/sig/mindee/v1/product/barcode_reader/barcode_reader_v1_page.rbs +17 -0
  374. data/sig/mindee/v1/product/cropper/cropper_v1.rbs +13 -0
  375. data/sig/mindee/v1/product/cropper/cropper_v1_document.rbs +14 -0
  376. data/sig/mindee/v1/product/cropper/cropper_v1_page.rbs +19 -0
  377. data/sig/mindee/v1/product/financial_document/financial_document_v1.rbs +13 -0
  378. data/sig/mindee/v1/product/financial_document/financial_document_v1_document.rbs +49 -0
  379. data/sig/mindee/v1/product/financial_document/financial_document_v1_line_item.rbs +35 -0
  380. data/sig/mindee/v1/product/financial_document/financial_document_v1_line_items.rbs +15 -0
  381. data/sig/mindee/v1/product/financial_document/financial_document_v1_page.rbs +17 -0
  382. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v1.rbs +15 -0
  383. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_document.rbs +19 -0
  384. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_page.rbs +19 -0
  385. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2.rbs +15 -0
  386. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rbs +25 -0
  387. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_document.rbs +20 -0
  388. data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_page.rbs +19 -0
  389. data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2.rbs +15 -0
  390. data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_document.rbs +31 -0
  391. data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_page.rbs +19 -0
  392. data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rbs +27 -0
  393. data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transactions.rbs +17 -0
  394. data/sig/mindee/v1/product/fr/id_card/id_card_v1.rbs +15 -0
  395. data/sig/mindee/v1/product/fr/id_card/id_card_v1_document.rbs +26 -0
  396. data/sig/mindee/v1/product/fr/id_card/id_card_v1_page.rbs +20 -0
  397. data/sig/mindee/v1/product/fr/id_card/id_card_v2.rbs +15 -0
  398. data/sig/mindee/v1/product/fr/id_card/id_card_v2_document.rbs +31 -0
  399. data/sig/mindee/v1/product/fr/id_card/id_card_v2_page.rbs +21 -0
  400. data/sig/mindee/v1/product/international_id/international_id_v2.rbs +13 -0
  401. data/sig/mindee/v1/product/international_id/international_id_v2_document.rbs +31 -0
  402. data/sig/mindee/v1/product/international_id/international_id_v2_page.rbs +17 -0
  403. data/sig/mindee/v1/product/invoice/invoice_v4.rbs +13 -0
  404. data/sig/mindee/v1/product/invoice/invoice_v4_document.rbs +45 -0
  405. data/sig/mindee/v1/product/invoice/invoice_v4_line_item.rbs +35 -0
  406. data/sig/mindee/v1/product/invoice/invoice_v4_line_items.rbs +15 -0
  407. data/sig/mindee/v1/product/invoice/invoice_v4_page.rbs +17 -0
  408. data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1.rbs +13 -0
  409. data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_document.rbs +17 -0
  410. data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rbs +21 -0
  411. data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_groups.rbs +15 -0
  412. data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_page.rbs +17 -0
  413. data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rbs +14 -0
  414. data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rbs +15 -0
  415. data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_page.rbs +17 -0
  416. data/sig/mindee/v1/product/passport/passport_v1.rbs +13 -0
  417. data/sig/mindee/v1/product/passport/passport_v1_document.rbs +25 -0
  418. data/sig/mindee/v1/product/passport/passport_v1_page.rbs +17 -0
  419. data/sig/mindee/v1/product/receipt/receipt_v5.rbs +13 -0
  420. data/sig/mindee/v1/product/receipt/receipt_v5_document.rbs +33 -0
  421. data/sig/mindee/v1/product/receipt/receipt_v5_line_item.rbs +27 -0
  422. data/sig/mindee/v1/product/receipt/receipt_v5_line_items.rbs +15 -0
  423. data/sig/mindee/v1/product/receipt/receipt_v5_page.rbs +17 -0
  424. data/sig/mindee/v1/product/resume/resume_v1.rbs +13 -0
  425. data/sig/mindee/v1/product/resume/resume_v1_certificate.rbs +27 -0
  426. data/sig/mindee/v1/product/resume/resume_v1_certificates.rbs +17 -0
  427. data/sig/mindee/v1/product/resume/resume_v1_document.rbs +69 -0
  428. data/sig/mindee/v1/product/resume/resume_v1_education.rbs +33 -0
  429. data/sig/mindee/v1/product/resume/resume_v1_educations.rbs +17 -0
  430. data/sig/mindee/v1/product/resume/resume_v1_language.rbs +23 -0
  431. data/sig/mindee/v1/product/resume/resume_v1_languages.rbs +17 -0
  432. data/sig/mindee/v1/product/resume/resume_v1_page.rbs +19 -0
  433. data/sig/mindee/v1/product/resume/resume_v1_professional_experience.rbs +37 -0
  434. data/sig/mindee/v1/product/resume/resume_v1_professional_experiences.rbs +17 -0
  435. data/sig/mindee/v1/product/resume/resume_v1_social_networks_url.rbs +23 -0
  436. data/sig/mindee/v1/product/resume/resume_v1_social_networks_urls.rbs +17 -0
  437. data/sig/mindee/v1/product/universal/universal.rbs +16 -0
  438. data/sig/mindee/v1/product/universal/universal_document.rbs +12 -0
  439. data/sig/mindee/v1/product/universal/universal_page.rbs +18 -0
  440. data/sig/mindee/v1/product/universal/universal_prediction.rbs +30 -0
  441. data/sig/mindee/v2/client.rbs +29 -0
  442. data/sig/mindee/v2/file_operation/crop.rbs +10 -0
  443. data/sig/mindee/v2/file_operation/crop_files.rbs +9 -0
  444. data/sig/mindee/v2/file_operation/split.rbs +11 -0
  445. data/sig/mindee/v2/file_operation/split_files.rbs +9 -0
  446. data/sig/mindee/v2/http/api_v2_settings.rbs +27 -0
  447. data/sig/mindee/v2/http/mindee_api_v2.rbs +52 -0
  448. data/sig/mindee/v2/parsing/base_inference.rbs +18 -0
  449. data/sig/mindee/v2/parsing/base_response.rbs +11 -0
  450. data/sig/mindee/v2/parsing/common_response.rbs +12 -0
  451. data/sig/mindee/v2/parsing/error_item.rbs +13 -0
  452. data/sig/mindee/v2/parsing/error_response.rbs +20 -0
  453. data/sig/mindee/v2/parsing/field/base_field.rbs +17 -0
  454. data/sig/mindee/v2/parsing/field/field_confidence.rbs +30 -0
  455. data/sig/mindee/v2/parsing/field/field_location.rbs +16 -0
  456. data/sig/mindee/v2/parsing/field/inference_fields.rbs +20 -0
  457. data/sig/mindee/v2/parsing/field/list_field.rbs +23 -0
  458. data/sig/mindee/v2/parsing/field/object_field.rbs +27 -0
  459. data/sig/mindee/v2/parsing/field/simple_field.rbs +16 -0
  460. data/sig/mindee/v2/parsing/inference_active_options.rbs +26 -0
  461. data/sig/mindee/v2/parsing/inference_file.rbs +17 -0
  462. data/sig/mindee/v2/parsing/inference_job.rbs +13 -0
  463. data/sig/mindee/v2/parsing/inference_model.rbs +12 -0
  464. data/sig/mindee/v2/parsing/job.rbs +24 -0
  465. data/sig/mindee/v2/parsing/job_response.rbs +14 -0
  466. data/sig/mindee/v2/parsing/job_webhook.rbs +19 -0
  467. data/sig/mindee/v2/parsing/rag_metadata.rbs +13 -0
  468. data/sig/mindee/v2/parsing/raw_text.rbs +12 -0
  469. data/sig/mindee/v2/parsing/raw_text_page.rbs +11 -0
  470. data/sig/mindee/v2/parsing/search/pagination_metadata.rbs +20 -0
  471. data/sig/mindee/v2/parsing/search/search_model.rbs +19 -0
  472. data/sig/mindee/v2/parsing/search/search_response.rbs +17 -0
  473. data/sig/mindee/v2/parsing/search_models.rbs +14 -0
  474. data/sig/mindee/v2/product/base_product.rbs +19 -0
  475. data/sig/mindee/v2/product/classification/classification.rbs +10 -0
  476. data/sig/mindee/v2/product/classification/classification_classifier.rbs +15 -0
  477. data/sig/mindee/v2/product/classification/classification_inference.rbs +15 -0
  478. data/sig/mindee/v2/product/classification/classification_response.rbs +23 -0
  479. data/sig/mindee/v2/product/classification/classification_result.rbs +15 -0
  480. data/sig/mindee/v2/product/classification/params/classification_parameters/classification_parameters.rbs +23 -0
  481. data/sig/mindee/v2/product/crop/crop.rbs +10 -0
  482. data/sig/mindee/v2/product/crop/crop_inference.rbs +14 -0
  483. data/sig/mindee/v2/product/crop/crop_item.rbs +18 -0
  484. data/sig/mindee/v2/product/crop/crop_response.rbs +25 -0
  485. data/sig/mindee/v2/product/crop/crop_result.rbs +14 -0
  486. data/sig/mindee/v2/product/crop/params/crop_parameters/crop_parameters.rbs +23 -0
  487. data/sig/mindee/v2/product/extraction/extraction.rbs +15 -0
  488. data/sig/mindee/v2/product/extraction/extraction_inference.rbs +19 -0
  489. data/sig/mindee/v2/product/extraction/extraction_response.rbs +24 -0
  490. data/sig/mindee/v2/product/extraction/extraction_result.rbs +18 -0
  491. data/sig/mindee/v2/product/extraction/params/data_schema.rbs +21 -0
  492. data/sig/mindee/v2/product/extraction/params/data_schema_field.rbs +29 -0
  493. data/sig/mindee/v2/product/extraction/params/data_schema_replace.rbs +21 -0
  494. data/sig/mindee/v2/product/extraction/params/extraction_parameters.rbs +38 -0
  495. data/sig/mindee/v2/product/ocr/ocr.rbs +10 -0
  496. data/sig/mindee/v2/product/ocr/ocr_inference.rbs +14 -0
  497. data/sig/mindee/v2/product/ocr/ocr_page.rbs +15 -0
  498. data/sig/mindee/v2/product/ocr/ocr_response.rbs +23 -0
  499. data/sig/mindee/v2/product/ocr/ocr_result.rbs +14 -0
  500. data/sig/mindee/v2/product/ocr/ocr_word.rbs +15 -0
  501. data/sig/mindee/v2/product/ocr/params/ocr_parameters/ocr_parameters.rbs +24 -0
  502. data/sig/mindee/v2/product/split/params/split_parameters/split_parameters.rbs +23 -0
  503. data/sig/mindee/v2/product/split/split.rbs +10 -0
  504. data/sig/mindee/v2/product/split/split_inference.rbs +14 -0
  505. data/sig/mindee/v2/product/split/split_range.rbs +18 -0
  506. data/sig/mindee/v2/product/split/split_response.rbs +25 -0
  507. data/sig/mindee/v2/product/split/split_result.rbs +14 -0
  508. data/sig/mindee/version.rbs +6 -0
  509. data/sig/mindee.rbs +62 -0
  510. metadata +600 -0
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+ require_relative 'bank_account_details_v1_document'
5
+
6
+ module Mindee
7
+ module V1
8
+ module Product
9
+ module FR
10
+ module BankAccountDetails
11
+ # Bank Account Details API version 1.0 page data.
12
+ class BankAccountDetailsV1Page < Mindee::V1::Parsing::Common::Page
13
+ # @param prediction [Hash]
14
+ def initialize(prediction)
15
+ super
16
+ @prediction = if prediction['prediction'].empty?
17
+ nil
18
+ else
19
+ BankAccountDetailsV1PagePrediction.new(
20
+ prediction['prediction'],
21
+ prediction['id']
22
+ )
23
+ end
24
+ end
25
+ end
26
+
27
+ # Bank Account Details V1 page prediction.
28
+ class BankAccountDetailsV1PagePrediction < BankAccountDetailsV1Document
29
+ # @return [String]
30
+ def to_s
31
+ out_str = String.new
32
+ out_str << "\n#{super}"
33
+ out_str
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+ require_relative 'bank_account_details_v2_document'
5
+ require_relative 'bank_account_details_v2_page'
6
+
7
+ module Mindee
8
+ module V1
9
+ module Product
10
+ module FR
11
+ # Bank Account Details module.
12
+ module BankAccountDetails
13
+ # Bank Account Details API version 2 inference prediction.
14
+ class BankAccountDetailsV2 < Mindee::V1::Parsing::Common::Inference
15
+ @endpoint_name = 'bank_account_details'
16
+ @endpoint_version = '2'
17
+ @has_async = false
18
+ @has_sync = true
19
+
20
+ # @param prediction [Hash]
21
+ def initialize(prediction)
22
+ super
23
+ @prediction = BankAccountDetailsV2Document.new(prediction['prediction'], nil)
24
+ @pages = []
25
+ prediction['pages'].each do |page|
26
+ @pages.push(BankAccountDetailsV2Page.new(page))
27
+ end
28
+ end
29
+
30
+ class << self
31
+ # Name of the endpoint for this product.
32
+ # @return [String]
33
+ attr_reader :endpoint_name
34
+ # Version for this product.
35
+ # @return [String]
36
+ attr_reader :endpoint_version
37
+ # Whether this product has access to an asynchronous endpoint.
38
+ # @return [bool]
39
+ attr_reader :has_async
40
+ # Whether this product has access to synchronous endpoint.
41
+ # @return [bool]
42
+ attr_reader :has_sync
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+
5
+ module Mindee
6
+ module V1
7
+ module Product
8
+ module FR
9
+ module BankAccountDetails
10
+ # Full extraction of BBAN, including: branch code, bank code, account and key.
11
+ class BankAccountDetailsV2Bban < Mindee::V1::Parsing::Standard::FeatureField
12
+ include Mindee::V1::Parsing::Standard
13
+
14
+ # The BBAN bank code outputted as a string.
15
+ # @return [String]
16
+ attr_reader :bban_bank_code
17
+ # The BBAN branch code outputted as a string.
18
+ # @return [String]
19
+ attr_reader :bban_branch_code
20
+ # The BBAN key outputted as a string.
21
+ # @return [String]
22
+ attr_reader :bban_key
23
+ # The BBAN Account number outputted as a string.
24
+ # @return [String]
25
+ attr_reader :bban_number
26
+
27
+ # @param prediction [Hash]
28
+ # @param page_id [Integer, nil]
29
+ def initialize(prediction, page_id)
30
+ super
31
+ @bban_bank_code = prediction['bban_bank_code']
32
+ @bban_branch_code = prediction['bban_branch_code']
33
+ @bban_key = prediction['bban_key']
34
+ @bban_number = prediction['bban_number']
35
+ @page_id = page_id
36
+ end
37
+
38
+ # @return [Hash]
39
+ def printable_values
40
+ printable = {} # @type var printable: Hash[Symbol, String]
41
+ printable[:bban_bank_code] = format_for_display(@bban_bank_code)
42
+ printable[:bban_branch_code] = format_for_display(@bban_branch_code)
43
+ printable[:bban_key] = format_for_display(@bban_key)
44
+ printable[:bban_number] = format_for_display(@bban_number)
45
+ printable
46
+ end
47
+
48
+ # @return [String]
49
+ def to_s
50
+ printable = printable_values
51
+ out_str = String.new
52
+ out_str << "\n :Bank Code: #{printable[:bban_bank_code]}"
53
+ out_str << "\n :Branch Code: #{printable[:bban_branch_code]}"
54
+ out_str << "\n :Key: #{printable[:bban_key]}"
55
+ out_str << "\n :Account Number: #{printable[:bban_number]}"
56
+ out_str
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+ require_relative 'bank_account_details_v2_bban'
5
+
6
+ module Mindee
7
+ module V1
8
+ module Product
9
+ module FR
10
+ module BankAccountDetails
11
+ # Bank Account Details API version 2.0 document data.
12
+ class BankAccountDetailsV2Document < Mindee::V1::Parsing::Common::Prediction
13
+ include Mindee::V1::Parsing::Standard
14
+
15
+ # Full extraction of the account holders names.
16
+ # @return [Mindee::V1::Parsing::Standard::StringField]
17
+ attr_reader :account_holders_names
18
+ # Full extraction of BBAN, including: branch code, bank code, account and key.
19
+ # @return [Mindee::V1::Product::FR::BankAccountDetails::BankAccountDetailsV2Bban]
20
+ attr_reader :bban
21
+ # Full extraction of the IBAN number.
22
+ # @return [Mindee::V1::Parsing::Standard::StringField]
23
+ attr_reader :iban
24
+ # Full extraction of the SWIFT code.
25
+ # @return [Mindee::V1::Parsing::Standard::StringField]
26
+ attr_reader :swift_code
27
+
28
+ # @param prediction [Hash]
29
+ # @param page_id [Integer, nil]
30
+ def initialize(prediction, page_id)
31
+ super
32
+ @account_holders_names = Parsing::Standard::StringField.new(
33
+ prediction['account_holders_names'],
34
+ page_id
35
+ )
36
+ @bban = Product::FR::BankAccountDetails::BankAccountDetailsV2Bban.new(prediction['bban'], page_id)
37
+ @iban = Parsing::Standard::StringField.new(prediction['iban'], page_id)
38
+ @swift_code = Parsing::Standard::StringField.new(
39
+ prediction['swift_code'],
40
+ page_id
41
+ )
42
+ end
43
+
44
+ # @return [String]
45
+ def to_s
46
+ bban = @bban.to_s
47
+ out_str = String.new
48
+ out_str << "\n:Account Holder's Names: #{@account_holders_names}".rstrip
49
+ out_str << "\n:Basic Bank Account Number:"
50
+ out_str << bban
51
+ out_str << "\n:IBAN: #{@iban}".rstrip
52
+ out_str << "\n:SWIFT Code: #{@swift_code}".rstrip
53
+ out_str[1..].to_s
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+ require_relative 'bank_account_details_v2_document'
5
+
6
+ module Mindee
7
+ module V1
8
+ module Product
9
+ module FR
10
+ module BankAccountDetails
11
+ # Bank Account Details API version 2.0 page data.
12
+ class BankAccountDetailsV2Page < Mindee::V1::Parsing::Common::Page
13
+ # @param prediction [Hash]
14
+ def initialize(prediction)
15
+ super
16
+ @prediction = if prediction['prediction'].empty?
17
+ nil
18
+ else
19
+ BankAccountDetailsV2PagePrediction.new(
20
+ prediction['prediction'],
21
+ prediction['id']
22
+ )
23
+ end
24
+ end
25
+ end
26
+
27
+ # Bank Account Details V2 page prediction.
28
+ class BankAccountDetailsV2PagePrediction < BankAccountDetailsV2Document
29
+ # @return [String]
30
+ def to_s
31
+ out_str = String.new
32
+ out_str << "\n#{super}"
33
+ out_str
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+ require_relative 'bank_statement_v2_document'
5
+ require_relative 'bank_statement_v2_page'
6
+
7
+ module Mindee
8
+ module V1
9
+ module Product
10
+ module FR
11
+ # Bank Statement module.
12
+ module BankStatement
13
+ # Bank Statement API version 2 inference prediction.
14
+ class BankStatementV2 < Mindee::V1::Parsing::Common::Inference
15
+ @endpoint_name = 'bank_statement_fr'
16
+ @endpoint_version = '2'
17
+ @has_async = true
18
+ @has_sync = false
19
+
20
+ # @param prediction [Hash]
21
+ def initialize(prediction)
22
+ super
23
+ @prediction = BankStatementV2Document.new(prediction['prediction'], nil)
24
+ @pages = []
25
+ prediction['pages'].each do |page|
26
+ @pages.push(BankStatementV2Page.new(page))
27
+ end
28
+ end
29
+
30
+ class << self
31
+ # Name of the endpoint for this product.
32
+ # @return [String]
33
+ attr_reader :endpoint_name
34
+ # Version for this product.
35
+ # @return [String]
36
+ attr_reader :endpoint_version
37
+ # Whether this product has access to an asynchronous endpoint.
38
+ # @return [bool]
39
+ attr_reader :has_async
40
+ # Whether this product has access to synchronous endpoint.
41
+ # @return [bool]
42
+ attr_reader :has_sync
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,169 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+ require_relative 'bank_statement_v2_transactions'
5
+
6
+ module Mindee
7
+ module V1
8
+ module Product
9
+ module FR
10
+ module BankStatement
11
+ # Bank Statement API version 2.0 document data.
12
+ class BankStatementV2Document < Mindee::V1::Parsing::Common::Prediction
13
+ include Mindee::V1::Parsing::Standard
14
+
15
+ # The unique identifier for a customer's account in the bank's system.
16
+ # @return [Mindee::V1::Parsing::Standard::StringField]
17
+ attr_reader :account_number
18
+ # The physical location of the bank where the statement was issued.
19
+ # @return [Mindee::V1::Parsing::Standard::StringField]
20
+ attr_reader :bank_address
21
+ # The name of the bank that issued the statement.
22
+ # @return [Mindee::V1::Parsing::Standard::StringField]
23
+ attr_reader :bank_name
24
+ # The address of the client associated with the bank statement.
25
+ # @return [Mindee::V1::Parsing::Standard::StringField]
26
+ attr_reader :client_address
27
+ # The name of the clients who own the bank statement.
28
+ # @return [Array<Mindee::V1::Parsing::Standard::StringField>]
29
+ attr_reader :client_names
30
+ # The final amount of money in the account at the end of the statement period.
31
+ # @return [Mindee::V1::Parsing::Standard::AmountField]
32
+ attr_reader :closing_balance
33
+ # The initial amount of money in an account at the start of the period.
34
+ # @return [Mindee::V1::Parsing::Standard::AmountField]
35
+ attr_reader :opening_balance
36
+ # The date on which the bank statement was generated.
37
+ # @return [Mindee::V1::Parsing::Standard::DateField]
38
+ attr_reader :statement_date
39
+ # The date when the statement period ends.
40
+ # @return [Mindee::V1::Parsing::Standard::DateField]
41
+ attr_reader :statement_end_date
42
+ # The date when the bank statement period begins.
43
+ # @return [Mindee::V1::Parsing::Standard::DateField]
44
+ attr_reader :statement_start_date
45
+ # The total amount of money deposited into the account.
46
+ # @return [Mindee::V1::Parsing::Standard::AmountField]
47
+ attr_reader :total_credits
48
+ # The total amount of money debited from the account.
49
+ # @return [Mindee::V1::Parsing::Standard::AmountField]
50
+ attr_reader :total_debits
51
+ # The list of values that represent the financial transactions recorded in a bank statement.
52
+ # @return [Mindee::V1::Product::FR::BankStatement::BankStatementV2Transactions]
53
+ attr_reader :transactions
54
+
55
+ # @param prediction [Hash]
56
+ # @param page_id [Integer, nil]
57
+ def initialize(prediction, page_id)
58
+ super
59
+ @account_number = Parsing::Standard::StringField.new(
60
+ prediction['account_number'],
61
+ page_id
62
+ )
63
+ @bank_address = Parsing::Standard::StringField.new(
64
+ prediction['bank_address'],
65
+ page_id
66
+ )
67
+ @bank_name = Parsing::Standard::StringField.new(
68
+ prediction['bank_name'],
69
+ page_id
70
+ )
71
+ @client_address = Parsing::Standard::StringField.new(
72
+ prediction['client_address'],
73
+ page_id
74
+ )
75
+ @client_names = [] # : Array[Parsing::Standard::StringField]
76
+ prediction['client_names'].each do |item|
77
+ @client_names.push(Parsing::Standard::StringField.new(item, page_id))
78
+ end
79
+ @closing_balance = Parsing::Standard::AmountField.new(
80
+ prediction['closing_balance'],
81
+ page_id
82
+ )
83
+ @opening_balance = Parsing::Standard::AmountField.new(
84
+ prediction['opening_balance'],
85
+ page_id
86
+ )
87
+ @statement_date = Parsing::Standard::DateField.new(
88
+ prediction['statement_date'],
89
+ page_id
90
+ )
91
+ @statement_end_date = Parsing::Standard::DateField.new(
92
+ prediction['statement_end_date'],
93
+ page_id
94
+ )
95
+ @statement_start_date = Parsing::Standard::DateField.new(
96
+ prediction['statement_start_date'],
97
+ page_id
98
+ )
99
+ @total_credits = Parsing::Standard::AmountField.new(
100
+ prediction['total_credits'],
101
+ page_id
102
+ )
103
+ @total_debits = Parsing::Standard::AmountField.new(
104
+ prediction['total_debits'],
105
+ page_id
106
+ )
107
+ @transactions = Product::FR::BankStatement::BankStatementV2Transactions.new(
108
+ prediction['transactions'], page_id
109
+ )
110
+ end
111
+
112
+ # @return [String]
113
+ def to_s
114
+ client_names = @client_names.join("\n #{' ' * 14}")
115
+ transactions = transactions_to_s
116
+ out_str = String.new
117
+ out_str << "\n:Account Number: #{@account_number}".rstrip
118
+ out_str << "\n:Bank Name: #{@bank_name}".rstrip
119
+ out_str << "\n:Bank Address: #{@bank_address}".rstrip
120
+ out_str << "\n:Client Names: #{client_names}".rstrip
121
+ out_str << "\n:Client Address: #{@client_address}".rstrip
122
+ out_str << "\n:Statement Date: #{@statement_date}".rstrip
123
+ out_str << "\n:Statement Start Date: #{@statement_start_date}".rstrip
124
+ out_str << "\n:Statement End Date: #{@statement_end_date}".rstrip
125
+ out_str << "\n:Opening Balance: #{@opening_balance}".rstrip
126
+ out_str << "\n:Closing Balance: #{@closing_balance}".rstrip
127
+ out_str << "\n:Transactions:"
128
+ out_str << transactions
129
+ out_str << "\n:Total Debits: #{@total_debits}".rstrip
130
+ out_str << "\n:Total Credits: #{@total_credits}".rstrip
131
+ out_str[1..].to_s
132
+ end
133
+
134
+ private
135
+
136
+ # @param char [String]
137
+ # @return [String]
138
+ def transactions_separator(char)
139
+ out_str = String.new
140
+ out_str << ' '
141
+ out_str << "+#{char * 12}"
142
+ out_str << "+#{char * 12}"
143
+ out_str << "+#{char * 38}"
144
+ out_str << '+'
145
+ out_str
146
+ end
147
+
148
+ # @return [String]
149
+ def transactions_to_s
150
+ return '' if @transactions.empty?
151
+
152
+ line_items = @transactions.map(&:to_table_line).join("\n#{transactions_separator('-')}\n ")
153
+ out_str = String.new
154
+ out_str << "\n#{transactions_separator('-')}"
155
+ out_str << "\n |"
156
+ out_str << ' Amount |'
157
+ out_str << ' Date |'
158
+ out_str << ' Description |'
159
+ out_str << "\n#{transactions_separator('=')}"
160
+ out_str << "\n #{line_items}"
161
+ out_str << "\n#{transactions_separator('-')}"
162
+ out_str
163
+ end
164
+ end
165
+ end
166
+ end
167
+ end
168
+ end
169
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+ require_relative 'bank_statement_v2_document'
5
+
6
+ module Mindee
7
+ module V1
8
+ module Product
9
+ module FR
10
+ module BankStatement
11
+ # Bank Statement API version 2.0 page data.
12
+ class BankStatementV2Page < Mindee::V1::Parsing::Common::Page
13
+ # @param prediction [Hash]
14
+ def initialize(prediction)
15
+ super
16
+ @prediction = if prediction['prediction'].empty?
17
+ nil
18
+ else
19
+ BankStatementV2PagePrediction.new(
20
+ prediction['prediction'],
21
+ prediction['id']
22
+ )
23
+ end
24
+ end
25
+ end
26
+
27
+ # Bank Statement V2 page prediction.
28
+ class BankStatementV2PagePrediction < BankStatementV2Document
29
+ # @return [String]
30
+ def to_s
31
+ out_str = String.new
32
+ out_str << "\n#{super}"
33
+ out_str
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+
5
+ module Mindee
6
+ module V1
7
+ module Product
8
+ module FR
9
+ module BankStatement
10
+ # The list of values that represent the financial transactions recorded in a bank statement.
11
+ class BankStatementV2Transaction < Mindee::V1::Parsing::Standard::FeatureField
12
+ include Mindee::V1::Parsing::Standard
13
+
14
+ # The monetary amount of the transaction.
15
+ # @return [Float]
16
+ attr_reader :amount
17
+ # The date on which the transaction occurred.
18
+ # @return [String]
19
+ attr_reader :date
20
+ # The additional information about the transaction.
21
+ # @return [String]
22
+ attr_reader :description
23
+
24
+ # @param prediction [Hash]
25
+ # @param page_id [Integer, nil]
26
+ def initialize(prediction, page_id)
27
+ super
28
+ @amount = prediction['amount']
29
+ @date = prediction['date']
30
+ @description = prediction['description']
31
+ @page_id = page_id
32
+ end
33
+
34
+ # @return [Hash]
35
+ def printable_values
36
+ printable = {} # @type var printable: Hash[Symbol, String]
37
+ printable[:amount] =
38
+ @amount.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@amount)
39
+ printable[:date] = format_for_display(@date)
40
+ printable[:description] = format_for_display(@description)
41
+ printable
42
+ end
43
+
44
+ # @return [Hash]
45
+ def table_printable_values
46
+ printable = {} # @type var printable: Hash[Symbol, String]
47
+ printable[:amount] =
48
+ @amount.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@amount)
49
+ printable[:date] = format_for_display(@date, 10)
50
+ printable[:description] = format_for_display(@description, 36)
51
+ printable
52
+ end
53
+
54
+ # @return [String]
55
+ def to_table_line
56
+ printable = table_printable_values
57
+ out_str = String.new
58
+ out_str << format('| %- 11s', printable[:amount])
59
+ out_str << format('| %- 11s', printable[:date])
60
+ out_str << format('| %- 37s', printable[:description])
61
+ out_str << '|'
62
+ end
63
+
64
+ # @return [String]
65
+ def to_s
66
+ printable = printable_values
67
+ out_str = String.new
68
+ out_str << "\n :Amount: #{printable[:amount]}"
69
+ out_str << "\n :Date: #{printable[:date]}"
70
+ out_str << "\n :Description: #{printable[:description]}"
71
+ out_str
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'bank_statement_v2_transaction'
4
+
5
+ module Mindee
6
+ module V1
7
+ module Product
8
+ module FR
9
+ module BankStatement
10
+ # The list of values that represent the financial transactions recorded in a bank statement.
11
+ class BankStatementV2Transactions < Array
12
+ # Entries.
13
+ # @return [Array<BankStatementV2Transaction>]
14
+ attr_reader :entries
15
+
16
+ # @param prediction [Array]
17
+ # @param page_id [Integer, nil]
18
+ def initialize(prediction, page_id)
19
+ entries = prediction.map do |entry|
20
+ BankStatement::BankStatementV2Transaction.new(entry, page_id)
21
+ end
22
+ super(entries)
23
+ end
24
+
25
+ # Creates a line of rST table-compliant string separators.
26
+ # @param char [String] Character to use as a separator.
27
+ # @return [String]
28
+ def self.line_items_separator(char)
29
+ out_str = String.new
30
+ out_str << "+#{char * 12}"
31
+ out_str << "+#{char * 12}"
32
+ out_str << "+#{char * 38}"
33
+ out_str
34
+ end
35
+
36
+ # @return [String]
37
+ def to_s
38
+ return '' if empty?
39
+
40
+ lines = map do |entry|
41
+ "\n #{entry.to_table_line}\n#{self.class.line_items_separator('-')}"
42
+ end.join
43
+ out_str = String.new
44
+ out_str << "\n#{self.class.line_items_separator('-')}\n "
45
+ out_str << ' | Amount '
46
+ out_str << ' | Date '
47
+ out_str << ' | Description '
48
+ out_str << " |\n#{self.class.line_items_separator('=')}"
49
+ out_str + lines
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end