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,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+ require_relative 'id_card_v1_document'
5
+ require_relative 'id_card_v1_page'
6
+
7
+ module Mindee
8
+ module V1
9
+ module Product
10
+ module FR
11
+ # Carte Nationale d'Identité module.
12
+ module IdCard
13
+ # Carte Nationale d'Identité API version 1 inference prediction.
14
+ class IdCardV1 < Mindee::V1::Parsing::Common::Inference
15
+ @endpoint_name = 'idcard_fr'
16
+ @endpoint_version = '1'
17
+ @has_async = false
18
+ @has_sync = true
19
+
20
+ # @param prediction [Hash]
21
+ def initialize(prediction)
22
+ super
23
+ @prediction = IdCardV1Document.new(prediction['prediction'], nil)
24
+ @pages = []
25
+ prediction['pages'].each do |page|
26
+ @pages.push(IdCardV1Page.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,106 @@
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 IdCard
10
+ # Carte Nationale d'Identité API version 1.1 document data.
11
+ class IdCardV1Document < Mindee::V1::Parsing::Common::Prediction
12
+ include Mindee::V1::Parsing::Standard
13
+
14
+ # The name of the issuing authority.
15
+ # @return [Mindee::V1::Parsing::Standard::StringField]
16
+ attr_reader :authority
17
+ # The date of birth of the card holder.
18
+ # @return [Mindee::V1::Parsing::Standard::DateField]
19
+ attr_reader :birth_date
20
+ # The place of birth of the card holder.
21
+ # @return [Mindee::V1::Parsing::Standard::StringField]
22
+ attr_reader :birth_place
23
+ # The expiry date of the identification card.
24
+ # @return [Mindee::V1::Parsing::Standard::DateField]
25
+ attr_reader :expiry_date
26
+ # The gender of the card holder.
27
+ # @return [Mindee::V1::Parsing::Standard::StringField]
28
+ attr_reader :gender
29
+ # The given name(s) of the card holder.
30
+ # @return [Array<Mindee::V1::Parsing::Standard::StringField>]
31
+ attr_reader :given_names
32
+ # The identification card number.
33
+ # @return [Mindee::V1::Parsing::Standard::StringField]
34
+ attr_reader :id_number
35
+ # Machine Readable Zone, first line
36
+ # @return [Mindee::V1::Parsing::Standard::StringField]
37
+ attr_reader :mrz1
38
+ # Machine Readable Zone, second line
39
+ # @return [Mindee::V1::Parsing::Standard::StringField]
40
+ attr_reader :mrz2
41
+ # The surname of the card holder.
42
+ # @return [Mindee::V1::Parsing::Standard::StringField]
43
+ attr_reader :surname
44
+
45
+ # @param prediction [Hash]
46
+ # @param page_id [Integer, nil]
47
+ def initialize(prediction, page_id)
48
+ super
49
+ @authority = Parsing::Standard::StringField.new(
50
+ prediction['authority'],
51
+ page_id
52
+ )
53
+ @birth_date = Parsing::Standard::DateField.new(
54
+ prediction['birth_date'],
55
+ page_id
56
+ )
57
+ @birth_place = Parsing::Standard::StringField.new(
58
+ prediction['birth_place'],
59
+ page_id
60
+ )
61
+ @expiry_date = Parsing::Standard::DateField.new(
62
+ prediction['expiry_date'],
63
+ page_id
64
+ )
65
+ @gender = Parsing::Standard::StringField.new(
66
+ prediction['gender'],
67
+ page_id
68
+ )
69
+ @given_names = [] # : Array[Parsing::Standard::StringField]
70
+ prediction['given_names'].each do |item|
71
+ @given_names.push(Parsing::Standard::StringField.new(item, page_id))
72
+ end
73
+ @id_number = Parsing::Standard::StringField.new(
74
+ prediction['id_number'],
75
+ page_id
76
+ )
77
+ @mrz1 = Parsing::Standard::StringField.new(prediction['mrz1'], page_id)
78
+ @mrz2 = Parsing::Standard::StringField.new(prediction['mrz2'], page_id)
79
+ @surname = Parsing::Standard::StringField.new(
80
+ prediction['surname'],
81
+ page_id
82
+ )
83
+ end
84
+
85
+ # @return [String]
86
+ def to_s
87
+ given_names = @given_names.join("\n #{' ' * 15}")
88
+ out_str = String.new
89
+ out_str << "\n:Identity Number: #{@id_number}".rstrip
90
+ out_str << "\n:Given Name(s): #{given_names}".rstrip
91
+ out_str << "\n:Surname: #{@surname}".rstrip
92
+ out_str << "\n:Date of Birth: #{@birth_date}".rstrip
93
+ out_str << "\n:Place of Birth: #{@birth_place}".rstrip
94
+ out_str << "\n:Expiry Date: #{@expiry_date}".rstrip
95
+ out_str << "\n:Issuing Authority: #{@authority}".rstrip
96
+ out_str << "\n:Gender: #{@gender}".rstrip
97
+ out_str << "\n:MRZ Line 1: #{@mrz1}".rstrip
98
+ out_str << "\n:MRZ Line 2: #{@mrz2}".rstrip
99
+ out_str[1..].to_s
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+ require_relative 'id_card_v1_document'
5
+
6
+ module Mindee
7
+ module V1
8
+ module Product
9
+ module FR
10
+ module IdCard
11
+ # Carte Nationale d'Identité API version 1.1 page data.
12
+ class IdCardV1Page < 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
+ IdCardV1PagePrediction.new(
20
+ prediction['prediction'],
21
+ prediction['id']
22
+ )
23
+ end
24
+ end
25
+ end
26
+
27
+ # Carte Nationale d'Identité V1 page prediction.
28
+ class IdCardV1PagePrediction < IdCardV1Document
29
+ include Mindee::V1::Parsing::Standard
30
+
31
+ # The side of the document which is visible.
32
+ # @return [Mindee::V1::Parsing::Standard::ClassificationField]
33
+ attr_reader :document_side
34
+
35
+ # @param prediction [Hash]
36
+ # @param page_id [Integer, nil]
37
+ def initialize(prediction, page_id)
38
+ @document_side = Parsing::Standard::ClassificationField.new(
39
+ prediction['document_side'],
40
+ page_id
41
+ )
42
+ super
43
+ end
44
+
45
+ # @return [String]
46
+ def to_s
47
+ out_str = String.new
48
+ out_str << "\n:Document Side: #{@document_side}".rstrip
49
+ out_str << "\n#{super}"
50
+ out_str
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+ require_relative 'id_card_v2_document'
5
+ require_relative 'id_card_v2_page'
6
+
7
+ module Mindee
8
+ module V1
9
+ module Product
10
+ module FR
11
+ # Carte Nationale d'Identité module.
12
+ module IdCard
13
+ # Carte Nationale d'Identité API version 2 inference prediction.
14
+ class IdCardV2 < Mindee::V1::Parsing::Common::Inference
15
+ @endpoint_name = 'idcard_fr'
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 = IdCardV2Document.new(prediction['prediction'], nil)
24
+ @pages = []
25
+ prediction['pages'].each do |page|
26
+ @pages.push(IdCardV2Page.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,143 @@
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 IdCard
10
+ # Carte Nationale d'Identité API version 2.0 document data.
11
+ class IdCardV2Document < Mindee::V1::Parsing::Common::Prediction
12
+ include Mindee::V1::Parsing::Standard
13
+
14
+ # The alternate name of the card holder.
15
+ # @return [Mindee::V1::Parsing::Standard::StringField]
16
+ attr_reader :alternate_name
17
+ # The name of the issuing authority.
18
+ # @return [Mindee::V1::Parsing::Standard::StringField]
19
+ attr_reader :authority
20
+ # The date of birth of the card holder.
21
+ # @return [Mindee::V1::Parsing::Standard::DateField]
22
+ attr_reader :birth_date
23
+ # The place of birth of the card holder.
24
+ # @return [Mindee::V1::Parsing::Standard::StringField]
25
+ attr_reader :birth_place
26
+ # The card access number (CAN).
27
+ # @return [Mindee::V1::Parsing::Standard::StringField]
28
+ attr_reader :card_access_number
29
+ # The document number.
30
+ # @return [Mindee::V1::Parsing::Standard::StringField]
31
+ attr_reader :document_number
32
+ # The expiry date of the identification card.
33
+ # @return [Mindee::V1::Parsing::Standard::DateField]
34
+ attr_reader :expiry_date
35
+ # The gender of the card holder.
36
+ # @return [Mindee::V1::Parsing::Standard::StringField]
37
+ attr_reader :gender
38
+ # The given name(s) of the card holder.
39
+ # @return [Array<Mindee::V1::Parsing::Standard::StringField>]
40
+ attr_reader :given_names
41
+ # The date of issue of the identification card.
42
+ # @return [Mindee::V1::Parsing::Standard::DateField]
43
+ attr_reader :issue_date
44
+ # The Machine Readable Zone, first line.
45
+ # @return [Mindee::V1::Parsing::Standard::StringField]
46
+ attr_reader :mrz1
47
+ # The Machine Readable Zone, second line.
48
+ # @return [Mindee::V1::Parsing::Standard::StringField]
49
+ attr_reader :mrz2
50
+ # The Machine Readable Zone, third line.
51
+ # @return [Mindee::V1::Parsing::Standard::StringField]
52
+ attr_reader :mrz3
53
+ # The nationality of the card holder.
54
+ # @return [Mindee::V1::Parsing::Standard::StringField]
55
+ attr_reader :nationality
56
+ # The surname of the card holder.
57
+ # @return [Mindee::V1::Parsing::Standard::StringField]
58
+ attr_reader :surname
59
+
60
+ # @param prediction [Hash]
61
+ # @param page_id [Integer, nil]
62
+ def initialize(prediction, page_id)
63
+ super
64
+ @alternate_name = Parsing::Standard::StringField.new(
65
+ prediction['alternate_name'],
66
+ page_id
67
+ )
68
+ @authority = Parsing::Standard::StringField.new(
69
+ prediction['authority'],
70
+ page_id
71
+ )
72
+ @birth_date = Parsing::Standard::DateField.new(
73
+ prediction['birth_date'],
74
+ page_id
75
+ )
76
+ @birth_place = Parsing::Standard::StringField.new(
77
+ prediction['birth_place'],
78
+ page_id
79
+ )
80
+ @card_access_number = Parsing::Standard::StringField.new(
81
+ prediction['card_access_number'],
82
+ page_id
83
+ )
84
+ @document_number = Parsing::Standard::StringField.new(
85
+ prediction['document_number'],
86
+ page_id
87
+ )
88
+ @expiry_date = Parsing::Standard::DateField.new(
89
+ prediction['expiry_date'],
90
+ page_id
91
+ )
92
+ @gender = Parsing::Standard::StringField.new(
93
+ prediction['gender'],
94
+ page_id
95
+ )
96
+ @given_names = [] # : Array[Parsing::Standard::StringField]
97
+ prediction['given_names'].each do |item|
98
+ @given_names.push(Parsing::Standard::StringField.new(item, page_id))
99
+ end
100
+ @issue_date = Parsing::Standard::DateField.new(
101
+ prediction['issue_date'],
102
+ page_id
103
+ )
104
+ @mrz1 = Parsing::Standard::StringField.new(prediction['mrz1'], page_id)
105
+ @mrz2 = Parsing::Standard::StringField.new(prediction['mrz2'], page_id)
106
+ @mrz3 = Parsing::Standard::StringField.new(prediction['mrz3'], page_id)
107
+ @nationality = Parsing::Standard::StringField.new(
108
+ prediction['nationality'],
109
+ page_id
110
+ )
111
+ @surname = Parsing::Standard::StringField.new(
112
+ prediction['surname'],
113
+ page_id
114
+ )
115
+ end
116
+
117
+ # @return [String]
118
+ def to_s
119
+ given_names = @given_names.join("\n #{' ' * 15}")
120
+ out_str = String.new
121
+ out_str << "\n:Nationality: #{@nationality}".rstrip
122
+ out_str << "\n:Card Access Number: #{@card_access_number}".rstrip
123
+ out_str << "\n:Document Number: #{@document_number}".rstrip
124
+ out_str << "\n:Given Name(s): #{given_names}".rstrip
125
+ out_str << "\n:Surname: #{@surname}".rstrip
126
+ out_str << "\n:Alternate Name: #{@alternate_name}".rstrip
127
+ out_str << "\n:Date of Birth: #{@birth_date}".rstrip
128
+ out_str << "\n:Place of Birth: #{@birth_place}".rstrip
129
+ out_str << "\n:Gender: #{@gender}".rstrip
130
+ out_str << "\n:Expiry Date: #{@expiry_date}".rstrip
131
+ out_str << "\n:Mrz Line 1: #{@mrz1}".rstrip
132
+ out_str << "\n:Mrz Line 2: #{@mrz2}".rstrip
133
+ out_str << "\n:Mrz Line 3: #{@mrz3}".rstrip
134
+ out_str << "\n:Date of Issue: #{@issue_date}".rstrip
135
+ out_str << "\n:Issuing Authority: #{@authority}".rstrip
136
+ out_str[1..].to_s
137
+ end
138
+ end
139
+ end
140
+ end
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../parsing'
4
+ require_relative 'id_card_v2_document'
5
+
6
+ module Mindee
7
+ module V1
8
+ module Product
9
+ module FR
10
+ module IdCard
11
+ # Carte Nationale d'Identité API version 2.0 page data.
12
+ class IdCardV2Page < 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
+ IdCardV2PagePrediction.new(
20
+ prediction['prediction'],
21
+ prediction['id']
22
+ )
23
+ end
24
+ end
25
+ end
26
+
27
+ # Carte Nationale d'Identité V2 page prediction.
28
+ class IdCardV2PagePrediction < IdCardV2Document
29
+ include Mindee::V1::Parsing::Standard
30
+
31
+ # The sides of the document which are visible.
32
+ # @return [Mindee::V1::Parsing::Standard::ClassificationField]
33
+ attr_reader :document_side
34
+ # The document type or format.
35
+ # @return [Mindee::V1::Parsing::Standard::ClassificationField]
36
+ attr_reader :document_type
37
+
38
+ # @param prediction [Hash]
39
+ # @param page_id [Integer, nil]
40
+ def initialize(prediction, page_id)
41
+ @document_side = Parsing::Standard::ClassificationField.new(
42
+ prediction['document_side'],
43
+ page_id
44
+ )
45
+ @document_type = Parsing::Standard::ClassificationField.new(
46
+ prediction['document_type'],
47
+ page_id
48
+ )
49
+ super
50
+ end
51
+
52
+ # @return [String]
53
+ def to_s
54
+ out_str = String.new
55
+ out_str << "\n:Document Type: #{@document_type}".rstrip
56
+ out_str << "\n:Document Sides: #{@document_side}".rstrip
57
+ out_str << "\n#{super}"
58
+ out_str
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+ require_relative 'international_id_v2_document'
5
+ require_relative 'international_id_v2_page'
6
+
7
+ module Mindee
8
+ module V1
9
+ module Product
10
+ # International ID module.
11
+ module InternationalId
12
+ # International ID API version 2 inference prediction.
13
+ class InternationalIdV2 < Mindee::V1::Parsing::Common::Inference
14
+ @endpoint_name = 'international_id'
15
+ @endpoint_version = '2'
16
+ @has_async = true
17
+ @has_sync = false
18
+
19
+ # @param prediction [Hash]
20
+ def initialize(prediction)
21
+ super
22
+ @prediction = InternationalIdV2Document.new(prediction['prediction'], nil)
23
+ @pages = []
24
+ prediction['pages'].each do |page|
25
+ @pages.push(InternationalIdV2Page.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,164 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../parsing'
4
+
5
+ module Mindee
6
+ module V1
7
+ module Product
8
+ module InternationalId
9
+ # International ID API version 2.2 document data.
10
+ class InternationalIdV2Document < Mindee::V1::Parsing::Common::Prediction
11
+ include Mindee::V1::Parsing::Standard
12
+
13
+ # The physical address of the document holder.
14
+ # @return [Mindee::V1::Parsing::Standard::StringField]
15
+ attr_reader :address
16
+ # The date of birth of the document holder.
17
+ # @return [Mindee::V1::Parsing::Standard::DateField]
18
+ attr_reader :birth_date
19
+ # The place of birth of the document holder.
20
+ # @return [Mindee::V1::Parsing::Standard::StringField]
21
+ attr_reader :birth_place
22
+ # The country where the document was issued.
23
+ # @return [Mindee::V1::Parsing::Standard::StringField]
24
+ attr_reader :country_of_issue
25
+ # The unique identifier assigned to the document.
26
+ # @return [Mindee::V1::Parsing::Standard::StringField]
27
+ attr_reader :document_number
28
+ # The type of personal identification document.
29
+ # @return [Mindee::V1::Parsing::Standard::ClassificationField]
30
+ attr_reader :document_type
31
+ # The date when the document becomes invalid.
32
+ # @return [Mindee::V1::Parsing::Standard::DateField]
33
+ attr_reader :expiry_date
34
+ # The list of the document holder's given names.
35
+ # @return [Array<Mindee::V1::Parsing::Standard::StringField>]
36
+ attr_reader :given_names
37
+ # The date when the document was issued.
38
+ # @return [Mindee::V1::Parsing::Standard::DateField]
39
+ attr_reader :issue_date
40
+ # The Machine Readable Zone, first line.
41
+ # @return [Mindee::V1::Parsing::Standard::StringField]
42
+ attr_reader :mrz_line1
43
+ # The Machine Readable Zone, second line.
44
+ # @return [Mindee::V1::Parsing::Standard::StringField]
45
+ attr_reader :mrz_line2
46
+ # The Machine Readable Zone, third line.
47
+ # @return [Mindee::V1::Parsing::Standard::StringField]
48
+ attr_reader :mrz_line3
49
+ # The country of citizenship of the document holder.
50
+ # @return [Mindee::V1::Parsing::Standard::StringField]
51
+ attr_reader :nationality
52
+ # The unique identifier assigned to the document holder.
53
+ # @return [Mindee::V1::Parsing::Standard::StringField]
54
+ attr_reader :personal_number
55
+ # The biological sex of the document holder.
56
+ # @return [Mindee::V1::Parsing::Standard::StringField]
57
+ attr_reader :sex
58
+ # The state or territory where the document was issued.
59
+ # @return [Mindee::V1::Parsing::Standard::StringField]
60
+ attr_reader :state_of_issue
61
+ # The list of the document holder's family names.
62
+ # @return [Array<Mindee::V1::Parsing::Standard::StringField>]
63
+ attr_reader :surnames
64
+
65
+ # @param prediction [Hash]
66
+ # @param page_id [Integer, nil]
67
+ def initialize(prediction, page_id)
68
+ super
69
+ @address = Parsing::Standard::StringField.new(
70
+ prediction['address'],
71
+ page_id
72
+ )
73
+ @birth_date = Parsing::Standard::DateField.new(
74
+ prediction['birth_date'],
75
+ page_id
76
+ )
77
+ @birth_place = Parsing::Standard::StringField.new(
78
+ prediction['birth_place'],
79
+ page_id
80
+ )
81
+ @country_of_issue = Parsing::Standard::StringField.new(
82
+ prediction['country_of_issue'],
83
+ page_id
84
+ )
85
+ @document_number = Parsing::Standard::StringField.new(
86
+ prediction['document_number'],
87
+ page_id
88
+ )
89
+ @document_type = Parsing::Standard::ClassificationField.new(
90
+ prediction['document_type'],
91
+ page_id
92
+ )
93
+ @expiry_date = Parsing::Standard::DateField.new(
94
+ prediction['expiry_date'],
95
+ page_id
96
+ )
97
+ @given_names = [] # : Array[Parsing::Standard::StringField]
98
+ prediction['given_names'].each do |item|
99
+ @given_names.push(Parsing::Standard::StringField.new(item, page_id))
100
+ end
101
+ @issue_date = Parsing::Standard::DateField.new(
102
+ prediction['issue_date'],
103
+ page_id
104
+ )
105
+ @mrz_line1 = Parsing::Standard::StringField.new(
106
+ prediction['mrz_line1'],
107
+ page_id
108
+ )
109
+ @mrz_line2 = Parsing::Standard::StringField.new(
110
+ prediction['mrz_line2'],
111
+ page_id
112
+ )
113
+ @mrz_line3 = Parsing::Standard::StringField.new(
114
+ prediction['mrz_line3'],
115
+ page_id
116
+ )
117
+ @nationality = Parsing::Standard::StringField.new(
118
+ prediction['nationality'],
119
+ page_id
120
+ )
121
+ @personal_number = Parsing::Standard::StringField.new(
122
+ prediction['personal_number'],
123
+ page_id
124
+ )
125
+ @sex = Parsing::Standard::StringField.new(prediction['sex'], page_id)
126
+ @state_of_issue = Parsing::Standard::StringField.new(
127
+ prediction['state_of_issue'],
128
+ page_id
129
+ )
130
+ @surnames = [] # : Array[Parsing::Standard::StringField]
131
+ prediction['surnames'].each do |item|
132
+ @surnames.push(Parsing::Standard::StringField.new(item, page_id))
133
+ end
134
+ end
135
+
136
+ # @return [String]
137
+ def to_s
138
+ surnames = @surnames.join("\n #{' ' * 10}")
139
+ given_names = @given_names.join("\n #{' ' * 13}")
140
+ out_str = String.new
141
+ out_str << "\n:Document Type: #{@document_type}".rstrip
142
+ out_str << "\n:Document Number: #{@document_number}".rstrip
143
+ out_str << "\n:Surnames: #{surnames}".rstrip
144
+ out_str << "\n:Given Names: #{given_names}".rstrip
145
+ out_str << "\n:Sex: #{@sex}".rstrip
146
+ out_str << "\n:Birth Date: #{@birth_date}".rstrip
147
+ out_str << "\n:Birth Place: #{@birth_place}".rstrip
148
+ out_str << "\n:Nationality: #{@nationality}".rstrip
149
+ out_str << "\n:Personal Number: #{@personal_number}".rstrip
150
+ out_str << "\n:Country of Issue: #{@country_of_issue}".rstrip
151
+ out_str << "\n:State of Issue: #{@state_of_issue}".rstrip
152
+ out_str << "\n:Issue Date: #{@issue_date}".rstrip
153
+ out_str << "\n:Expiration Date: #{@expiry_date}".rstrip
154
+ out_str << "\n:Address: #{@address}".rstrip
155
+ out_str << "\n:MRZ Line 1: #{@mrz_line1}".rstrip
156
+ out_str << "\n:MRZ Line 2: #{@mrz_line2}".rstrip
157
+ out_str << "\n:MRZ Line 3: #{@mrz_line3}".rstrip
158
+ out_str[1..].to_s
159
+ end
160
+ end
161
+ end
162
+ end
163
+ end
164
+ end