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,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+ require_relative 'international_id_v2_document'
5
+
6
+ module Mindee
7
+ module V1
8
+ module Product
9
+ module InternationalId
10
+ # International ID API version 2.2 page data.
11
+ class InternationalIdV2Page < Mindee::V1::Parsing::Common::Page
12
+ # @param prediction [Hash]
13
+ def initialize(prediction)
14
+ super
15
+ @prediction = if prediction['prediction'].empty?
16
+ nil
17
+ else
18
+ InternationalIdV2PagePrediction.new(
19
+ prediction['prediction'],
20
+ prediction['id']
21
+ )
22
+ end
23
+ end
24
+ end
25
+
26
+ # International ID V2 page prediction.
27
+ class InternationalIdV2PagePrediction < InternationalIdV2Document
28
+ # @return [String]
29
+ def to_s
30
+ out_str = String.new
31
+ out_str << "\n#{super}"
32
+ out_str
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+ require_relative 'invoice_v4_document'
5
+ require_relative 'invoice_v4_page'
6
+
7
+ module Mindee
8
+ module V1
9
+ module Product
10
+ # Invoice module.
11
+ module Invoice
12
+ # Invoice API version 4 inference prediction.
13
+ class InvoiceV4 < Mindee::V1::Parsing::Common::Inference
14
+ @endpoint_name = 'invoices'
15
+ @endpoint_version = '4'
16
+ @has_async = true
17
+ @has_sync = true
18
+
19
+ # @param prediction [Hash]
20
+ def initialize(prediction)
21
+ super
22
+ @prediction = InvoiceV4Document.new(prediction['prediction'], nil)
23
+ @pages = []
24
+ prediction['pages'].each do |page|
25
+ @pages.push(InvoiceV4Page.new(page))
26
+ end
27
+ end
28
+
29
+ class << self
30
+ # Name of the endpoint for this product.
31
+ # @return [String]
32
+ attr_reader :endpoint_name
33
+ # Version for this product.
34
+ # @return [String]
35
+ attr_reader :endpoint_version
36
+ # Whether this product has access to an asynchronous endpoint.
37
+ # @return [bool]
38
+ attr_reader :has_async
39
+ # Whether this product has access to synchronous endpoint.
40
+ # @return [bool]
41
+ attr_reader :has_sync
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,300 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+ require_relative 'invoice_v4_line_items'
5
+
6
+ module Mindee
7
+ module V1
8
+ module Product
9
+ module Invoice
10
+ # Invoice API version 4.11 document data.
11
+ class InvoiceV4Document < Mindee::V1::Parsing::Common::Prediction
12
+ include Mindee::V1::Parsing::Standard
13
+
14
+ # The customer billing address.
15
+ # @return [Mindee::V1::Parsing::Standard::AddressField]
16
+ attr_reader :billing_address
17
+ # The purchase category.
18
+ # @return [Mindee::V1::Parsing::Standard::ClassificationField]
19
+ attr_reader :category
20
+ # The address of the customer.
21
+ # @return [Mindee::V1::Parsing::Standard::AddressField]
22
+ attr_reader :customer_address
23
+ # List of company registration numbers associated to the customer.
24
+ # @return [Array<Mindee::V1::Parsing::Standard::CompanyRegistrationField>]
25
+ attr_reader :customer_company_registrations
26
+ # The customer account number or identifier from the supplier.
27
+ # @return [Mindee::V1::Parsing::Standard::StringField]
28
+ attr_reader :customer_id
29
+ # The name of the customer or client.
30
+ # @return [Mindee::V1::Parsing::Standard::StringField]
31
+ attr_reader :customer_name
32
+ # The date the purchase was made.
33
+ # @return [Mindee::V1::Parsing::Standard::DateField]
34
+ attr_reader :date
35
+ # Document type: INVOICE or CREDIT NOTE.
36
+ # @return [Mindee::V1::Parsing::Standard::ClassificationField]
37
+ attr_reader :document_type
38
+ # Document type extended.
39
+ # @return [Mindee::V1::Parsing::Standard::ClassificationField]
40
+ attr_reader :document_type_extended
41
+ # The date on which the payment is due.
42
+ # @return [Mindee::V1::Parsing::Standard::DateField]
43
+ attr_reader :due_date
44
+ # The invoice number or identifier.
45
+ # @return [Mindee::V1::Parsing::Standard::StringField]
46
+ attr_reader :invoice_number
47
+ # List of all the line items present on the invoice.
48
+ # @return [Mindee::V1::Product::Invoice::InvoiceV4LineItems]
49
+ attr_reader :line_items
50
+ # The locale of the document.
51
+ # @return [Mindee::V1::Parsing::Standard::LocaleField]
52
+ attr_reader :locale
53
+ # The date on which the payment is due / was full-filled.
54
+ # @return [Mindee::V1::Parsing::Standard::DateField]
55
+ attr_reader :payment_date
56
+ # The purchase order number.
57
+ # @return [Mindee::V1::Parsing::Standard::StringField]
58
+ attr_reader :po_number
59
+ # List of all reference numbers on the invoice, including the purchase order number.
60
+ # @return [Array<Mindee::V1::Parsing::Standard::StringField>]
61
+ attr_reader :reference_numbers
62
+ # Customer's delivery address.
63
+ # @return [Mindee::V1::Parsing::Standard::AddressField]
64
+ attr_reader :shipping_address
65
+ # The purchase subcategory for transport, food and shopping.
66
+ # @return [Mindee::V1::Parsing::Standard::ClassificationField]
67
+ attr_reader :subcategory
68
+ # The address of the supplier or merchant.
69
+ # @return [Mindee::V1::Parsing::Standard::AddressField]
70
+ attr_reader :supplier_address
71
+ # List of company registration numbers associated to the supplier.
72
+ # @return [Array<Mindee::V1::Parsing::Standard::CompanyRegistrationField>]
73
+ attr_reader :supplier_company_registrations
74
+ # The email address of the supplier or merchant.
75
+ # @return [Mindee::V1::Parsing::Standard::StringField]
76
+ attr_reader :supplier_email
77
+ # The name of the supplier or merchant.
78
+ # @return [Mindee::V1::Parsing::Standard::StringField]
79
+ attr_reader :supplier_name
80
+ # List of payment details associated to the supplier of the invoice.
81
+ # @return [Array<Mindee::V1::Parsing::Standard::PaymentDetailsField>]
82
+ attr_reader :supplier_payment_details
83
+ # The phone number of the supplier or merchant.
84
+ # @return [Mindee::V1::Parsing::Standard::StringField]
85
+ attr_reader :supplier_phone_number
86
+ # The website URL of the supplier or merchant.
87
+ # @return [Mindee::V1::Parsing::Standard::StringField]
88
+ attr_reader :supplier_website
89
+ # List of taxes. Each item contains the detail of the tax.
90
+ # @return [Mindee::V1::Parsing::Standard::Taxes]
91
+ attr_reader :taxes
92
+ # The total amount of the invoice: includes taxes, tips, fees, and other charges.
93
+ # @return [Mindee::V1::Parsing::Standard::AmountField]
94
+ attr_reader :total_amount
95
+ # The net amount of the invoice: does not include taxes, fees, and discounts.
96
+ # @return [Mindee::V1::Parsing::Standard::AmountField]
97
+ attr_reader :total_net
98
+ # The total tax: the sum of all the taxes for this invoice.
99
+ # @return [Mindee::V1::Parsing::Standard::AmountField]
100
+ attr_reader :total_tax
101
+
102
+ # @param prediction [Hash]
103
+ # @param page_id [Integer, nil]
104
+ def initialize(prediction, page_id)
105
+ super
106
+ @billing_address = Parsing::Standard::AddressField.new(
107
+ prediction['billing_address'],
108
+ page_id
109
+ )
110
+ @category = Parsing::Standard::ClassificationField.new(
111
+ prediction['category'],
112
+ page_id
113
+ )
114
+ @customer_address = Parsing::Standard::AddressField.new(
115
+ prediction['customer_address'],
116
+ page_id
117
+ )
118
+ @customer_company_registrations = [] # : Array[Parsing::Standard::CompanyRegistrationField]
119
+ prediction['customer_company_registrations'].each do |item|
120
+ @customer_company_registrations.push(Parsing::Standard::CompanyRegistrationField.new(item, page_id))
121
+ end
122
+ @customer_id = Parsing::Standard::StringField.new(
123
+ prediction['customer_id'],
124
+ page_id
125
+ )
126
+ @customer_name = Parsing::Standard::StringField.new(
127
+ prediction['customer_name'],
128
+ page_id
129
+ )
130
+ @date = Parsing::Standard::DateField.new(prediction['date'], page_id)
131
+ @document_type = Parsing::Standard::ClassificationField.new(
132
+ prediction['document_type'],
133
+ page_id
134
+ )
135
+ @document_type_extended = Parsing::Standard::ClassificationField.new(
136
+ prediction['document_type_extended'],
137
+ page_id
138
+ )
139
+ @due_date = Parsing::Standard::DateField.new(
140
+ prediction['due_date'],
141
+ page_id
142
+ )
143
+ @invoice_number = Parsing::Standard::StringField.new(
144
+ prediction['invoice_number'],
145
+ page_id
146
+ )
147
+ @line_items = Product::Invoice::InvoiceV4LineItems.new(prediction['line_items'], page_id)
148
+ @locale = Parsing::Standard::LocaleField.new(
149
+ prediction['locale'],
150
+ page_id
151
+ )
152
+ @payment_date = Parsing::Standard::DateField.new(
153
+ prediction['payment_date'],
154
+ page_id
155
+ )
156
+ @po_number = Parsing::Standard::StringField.new(
157
+ prediction['po_number'],
158
+ page_id
159
+ )
160
+ @reference_numbers = [] # : Array[Parsing::Standard::StringField]
161
+ prediction['reference_numbers'].each do |item|
162
+ @reference_numbers.push(Parsing::Standard::StringField.new(item, page_id))
163
+ end
164
+ @shipping_address = Parsing::Standard::AddressField.new(
165
+ prediction['shipping_address'],
166
+ page_id
167
+ )
168
+ @subcategory = Parsing::Standard::ClassificationField.new(
169
+ prediction['subcategory'],
170
+ page_id
171
+ )
172
+ @supplier_address = Parsing::Standard::AddressField.new(
173
+ prediction['supplier_address'],
174
+ page_id
175
+ )
176
+ @supplier_company_registrations = [] # : Array[Parsing::Standard::CompanyRegistrationField]
177
+ prediction['supplier_company_registrations'].each do |item|
178
+ @supplier_company_registrations.push(Parsing::Standard::CompanyRegistrationField.new(item, page_id))
179
+ end
180
+ @supplier_email = Parsing::Standard::StringField.new(
181
+ prediction['supplier_email'],
182
+ page_id
183
+ )
184
+ @supplier_name = Parsing::Standard::StringField.new(
185
+ prediction['supplier_name'],
186
+ page_id
187
+ )
188
+ @supplier_payment_details = [] # : Array[Parsing::Standard::PaymentDetailsField]
189
+ prediction['supplier_payment_details'].each do |item|
190
+ @supplier_payment_details.push(Parsing::Standard::PaymentDetailsField.new(item, page_id))
191
+ end
192
+ @supplier_phone_number = Parsing::Standard::StringField.new(
193
+ prediction['supplier_phone_number'],
194
+ page_id
195
+ )
196
+ @supplier_website = Parsing::Standard::StringField.new(
197
+ prediction['supplier_website'],
198
+ page_id
199
+ )
200
+ @taxes = Parsing::Standard::Taxes.new(prediction['taxes'], page_id)
201
+ @total_amount = Parsing::Standard::AmountField.new(
202
+ prediction['total_amount'],
203
+ page_id
204
+ )
205
+ @total_net = Parsing::Standard::AmountField.new(
206
+ prediction['total_net'],
207
+ page_id
208
+ )
209
+ @total_tax = Parsing::Standard::AmountField.new(
210
+ prediction['total_tax'],
211
+ page_id
212
+ )
213
+ end
214
+
215
+ # @return [String]
216
+ def to_s
217
+ reference_numbers = @reference_numbers.join("\n #{' ' * 19}")
218
+ supplier_payment_details = @supplier_payment_details.join("\n #{' ' * 26}")
219
+ supplier_company_registrations = @supplier_company_registrations.join("\n #{' ' * 32}")
220
+ customer_company_registrations = @customer_company_registrations.join("\n #{' ' * 32}")
221
+ line_items = line_items_to_s
222
+ out_str = String.new
223
+ out_str << "\n:Locale: #{@locale}".rstrip
224
+ out_str << "\n:Invoice Number: #{@invoice_number}".rstrip
225
+ out_str << "\n:Purchase Order Number: #{@po_number}".rstrip
226
+ out_str << "\n:Reference Numbers: #{reference_numbers}".rstrip
227
+ out_str << "\n:Purchase Date: #{@date}".rstrip
228
+ out_str << "\n:Due Date: #{@due_date}".rstrip
229
+ out_str << "\n:Payment Date: #{@payment_date}".rstrip
230
+ out_str << "\n:Total Net: #{@total_net}".rstrip
231
+ out_str << "\n:Total Amount: #{@total_amount}".rstrip
232
+ out_str << "\n:Total Tax: #{@total_tax}".rstrip
233
+ out_str << "\n:Taxes:#{@taxes}".rstrip
234
+ out_str << "\n:Supplier Payment Details: #{supplier_payment_details}".rstrip
235
+ out_str << "\n:Supplier Name: #{@supplier_name}".rstrip
236
+ out_str << "\n:Supplier Company Registrations: #{supplier_company_registrations}".rstrip
237
+ out_str << "\n:Supplier Address: #{@supplier_address}".rstrip
238
+ out_str << "\n:Supplier Phone Number: #{@supplier_phone_number}".rstrip
239
+ out_str << "\n:Supplier Website: #{@supplier_website}".rstrip
240
+ out_str << "\n:Supplier Email: #{@supplier_email}".rstrip
241
+ out_str << "\n:Customer Name: #{@customer_name}".rstrip
242
+ out_str << "\n:Customer Company Registrations: #{customer_company_registrations}".rstrip
243
+ out_str << "\n:Customer Address: #{@customer_address}".rstrip
244
+ out_str << "\n:Customer ID: #{@customer_id}".rstrip
245
+ out_str << "\n:Shipping Address: #{@shipping_address}".rstrip
246
+ out_str << "\n:Billing Address: #{@billing_address}".rstrip
247
+ out_str << "\n:Document Type: #{@document_type}".rstrip
248
+ out_str << "\n:Document Type Extended: #{@document_type_extended}".rstrip
249
+ out_str << "\n:Purchase Subcategory: #{@subcategory}".rstrip
250
+ out_str << "\n:Purchase Category: #{@category}".rstrip
251
+ out_str << "\n:Line Items:"
252
+ out_str << line_items
253
+ out_str[1..].to_s
254
+ end
255
+
256
+ private
257
+
258
+ # @param char [String]
259
+ # @return [String]
260
+ def line_items_separator(char)
261
+ out_str = String.new
262
+ out_str << ' '
263
+ out_str << "+#{char * 38}"
264
+ out_str << "+#{char * 14}"
265
+ out_str << "+#{char * 10}"
266
+ out_str << "+#{char * 12}"
267
+ out_str << "+#{char * 14}"
268
+ out_str << "+#{char * 14}"
269
+ out_str << "+#{char * 17}"
270
+ out_str << "+#{char * 12}"
271
+ out_str << '+'
272
+ out_str
273
+ end
274
+
275
+ # @return [String]
276
+ def line_items_to_s
277
+ return '' if @line_items.empty?
278
+
279
+ line_items = @line_items.map(&:to_table_line).join("\n#{line_items_separator('-')}\n ")
280
+ out_str = String.new
281
+ out_str << "\n#{line_items_separator('-')}"
282
+ out_str << "\n |"
283
+ out_str << ' Description |'
284
+ out_str << ' Product code |'
285
+ out_str << ' Quantity |'
286
+ out_str << ' Tax Amount |'
287
+ out_str << ' Tax Rate (%) |'
288
+ out_str << ' Total Amount |'
289
+ out_str << ' Unit of measure |'
290
+ out_str << ' Unit Price |'
291
+ out_str << "\n#{line_items_separator('=')}"
292
+ out_str << "\n #{line_items}"
293
+ out_str << "\n#{line_items_separator('-')}"
294
+ out_str
295
+ end
296
+ end
297
+ end
298
+ end
299
+ end
300
+ end
@@ -0,0 +1,124 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+
5
+ module Mindee
6
+ module V1
7
+ module Product
8
+ module Invoice
9
+ # List of all the line items present on the invoice.
10
+ class InvoiceV4LineItem < Mindee::V1::Parsing::Standard::FeatureField
11
+ include Mindee::V1::Parsing::Standard
12
+
13
+ # The item description.
14
+ # @return [String]
15
+ attr_reader :description
16
+ # The product code of the item.
17
+ # @return [String]
18
+ attr_reader :product_code
19
+ # The item quantity
20
+ # @return [Float]
21
+ attr_reader :quantity
22
+ # The item tax amount.
23
+ # @return [Float]
24
+ attr_reader :tax_amount
25
+ # The item tax rate in percentage.
26
+ # @return [Float]
27
+ attr_reader :tax_rate
28
+ # The item total amount.
29
+ # @return [Float]
30
+ attr_reader :total_amount
31
+ # The item unit of measure.
32
+ # @return [String]
33
+ attr_reader :unit_measure
34
+ # The item unit price.
35
+ # @return [Float]
36
+ attr_reader :unit_price
37
+
38
+ # @param prediction [Hash]
39
+ # @param page_id [Integer, nil]
40
+ def initialize(prediction, page_id)
41
+ super
42
+ @description = prediction['description']
43
+ @product_code = prediction['product_code']
44
+ @quantity = prediction['quantity']
45
+ @tax_amount = prediction['tax_amount']
46
+ @tax_rate = prediction['tax_rate']
47
+ @total_amount = prediction['total_amount']
48
+ @unit_measure = prediction['unit_measure']
49
+ @unit_price = prediction['unit_price']
50
+ @page_id = page_id
51
+ end
52
+
53
+ # @return [Hash]
54
+ def printable_values
55
+ printable = {} # @type var printable: Hash[Symbol, String]
56
+ printable[:description] = format_for_display(@description)
57
+ printable[:product_code] = format_for_display(@product_code)
58
+ printable[:quantity] =
59
+ @quantity.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@quantity)
60
+ printable[:tax_amount] =
61
+ @tax_amount.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@tax_amount)
62
+ printable[:tax_rate] =
63
+ @tax_rate.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@tax_rate)
64
+ printable[:total_amount] =
65
+ @total_amount.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@total_amount)
66
+ printable[:unit_measure] = format_for_display(@unit_measure)
67
+ printable[:unit_price] =
68
+ @unit_price.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@unit_price)
69
+ printable
70
+ end
71
+
72
+ # @return [Hash]
73
+ def table_printable_values
74
+ printable = {} # @type var printable: Hash[Symbol, String]
75
+ printable[:description] = format_for_display(@description, 36)
76
+ printable[:product_code] = format_for_display(@product_code, nil)
77
+ printable[:quantity] =
78
+ @quantity.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@quantity)
79
+ printable[:tax_amount] =
80
+ @tax_amount.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@tax_amount)
81
+ printable[:tax_rate] =
82
+ @tax_rate.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@tax_rate)
83
+ printable[:total_amount] =
84
+ @total_amount.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@total_amount)
85
+ printable[:unit_measure] = format_for_display(@unit_measure, nil)
86
+ printable[:unit_price] =
87
+ @unit_price.nil? ? '' : Parsing::Standard::BaseField.float_to_string(@unit_price)
88
+ printable
89
+ end
90
+
91
+ # @return [String]
92
+ def to_table_line
93
+ printable = table_printable_values
94
+ out_str = String.new
95
+ out_str << format('| %- 37s', printable[:description])
96
+ out_str << format('| %- 13s', printable[:product_code])
97
+ out_str << format('| %- 9s', printable[:quantity])
98
+ out_str << format('| %- 11s', printable[:tax_amount])
99
+ out_str << format('| %- 13s', printable[:tax_rate])
100
+ out_str << format('| %- 13s', printable[:total_amount])
101
+ out_str << format('| %- 16s', printable[:unit_measure])
102
+ out_str << format('| %- 11s', printable[:unit_price])
103
+ out_str << '|'
104
+ end
105
+
106
+ # @return [String]
107
+ def to_s
108
+ printable = printable_values
109
+ out_str = String.new
110
+ out_str << "\n :Description: #{printable[:description]}"
111
+ out_str << "\n :Product code: #{printable[:product_code]}"
112
+ out_str << "\n :Quantity: #{printable[:quantity]}"
113
+ out_str << "\n :Tax Amount: #{printable[:tax_amount]}"
114
+ out_str << "\n :Tax Rate (%): #{printable[:tax_rate]}"
115
+ out_str << "\n :Total Amount: #{printable[:total_amount]}"
116
+ out_str << "\n :Unit of measure: #{printable[:unit_measure]}"
117
+ out_str << "\n :Unit Price: #{printable[:unit_price]}"
118
+ out_str
119
+ end
120
+ end
121
+ end
122
+ end
123
+ end
124
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'invoice_v4_line_item'
4
+
5
+ module Mindee
6
+ module V1
7
+ module Product
8
+ module Invoice
9
+ # List of all the line items present on the invoice.
10
+ class InvoiceV4LineItems < Array
11
+ # Entries.
12
+ # @return [Array<InvoiceV4LineItem>]
13
+ attr_reader :entries
14
+
15
+ # @param prediction [Array]
16
+ # @param page_id [Integer, nil]
17
+ def initialize(prediction, page_id)
18
+ entries = prediction.map do |entry|
19
+ Invoice::InvoiceV4LineItem.new(entry, page_id)
20
+ end
21
+ super(entries)
22
+ end
23
+
24
+ # Creates a line of rST table-compliant string separators.
25
+ # @param char [String] Character to use as a separator.
26
+ # @return [String]
27
+ def self.line_items_separator(char)
28
+ out_str = String.new
29
+ out_str << "+#{char * 38}"
30
+ out_str << "+#{char * 14}"
31
+ out_str << "+#{char * 10}"
32
+ out_str << "+#{char * 12}"
33
+ out_str << "+#{char * 14}"
34
+ out_str << "+#{char * 14}"
35
+ out_str << "+#{char * 17}"
36
+ out_str << "+#{char * 12}"
37
+ out_str
38
+ end
39
+
40
+ # @return [String]
41
+ def to_s
42
+ return '' if empty?
43
+
44
+ lines = map do |entry|
45
+ "\n #{entry.to_table_line}\n#{self.class.line_items_separator('-')}"
46
+ end.join
47
+ out_str = String.new
48
+ out_str << "\n#{self.class.line_items_separator('-')}\n "
49
+ out_str << ' | Description '
50
+ out_str << ' | Product code'
51
+ out_str << ' | Quantity'
52
+ out_str << ' | Tax Amount'
53
+ out_str << ' | Tax Rate (%)'
54
+ out_str << ' | Total Amount'
55
+ out_str << ' | Unit of measure'
56
+ out_str << ' | Unit Price'
57
+ out_str << " |\n#{self.class.line_items_separator('=')}"
58
+ out_str + lines
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+ require_relative 'invoice_v4_document'
5
+
6
+ module Mindee
7
+ module V1
8
+ module Product
9
+ module Invoice
10
+ # Invoice API version 4.11 page data.
11
+ class InvoiceV4Page < Mindee::V1::Parsing::Common::Page
12
+ # @param prediction [Hash]
13
+ def initialize(prediction)
14
+ super
15
+ @prediction = if prediction['prediction'].empty?
16
+ nil
17
+ else
18
+ InvoiceV4PagePrediction.new(
19
+ prediction['prediction'],
20
+ prediction['id']
21
+ )
22
+ end
23
+ end
24
+ end
25
+
26
+ # Invoice V4 page prediction.
27
+ class InvoiceV4PagePrediction < InvoiceV4Document
28
+ # @return [String]
29
+ def to_s
30
+ out_str = String.new
31
+ out_str << "\n#{super}"
32
+ out_str
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+ require_relative 'invoice_splitter_v1_document'
5
+ require_relative 'invoice_splitter_v1_page'
6
+
7
+ module Mindee
8
+ module V1
9
+ module Product
10
+ # Invoice Splitter module.
11
+ module InvoiceSplitter
12
+ # Invoice Splitter API version 1 inference prediction.
13
+ class InvoiceSplitterV1 < Mindee::V1::Parsing::Common::Inference
14
+ @endpoint_name = 'invoice_splitter'
15
+ @endpoint_version = '1'
16
+ @has_async = true
17
+ @has_sync = false
18
+
19
+ # @param prediction [Hash]
20
+ def initialize(prediction)
21
+ super
22
+ @prediction = InvoiceSplitterV1Document.new(prediction['prediction'], nil)
23
+ @pages = []
24
+ prediction['pages'].each do |page|
25
+ @pages.push(InvoiceSplitterV1Page.new(page))
26
+ end
27
+ end
28
+
29
+ class << self
30
+ # Name of the endpoint for this product.
31
+ # @return [String]
32
+ attr_reader :endpoint_name
33
+ # Version for this product.
34
+ # @return [String]
35
+ attr_reader :endpoint_version
36
+ # Whether this product has access to an asynchronous endpoint.
37
+ # @return [bool]
38
+ attr_reader :has_async
39
+ # Whether this product has access to synchronous endpoint.
40
+ # @return [bool]
41
+ attr_reader :has_sync
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end