From e0c576154c262d0079a10d1515973a3c7ae7e14e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ianar=C3=A9=20S=C3=A9vi?= Date: Fri, 9 Jan 2026 17:33:31 +0100 Subject: [PATCH 1/2] :boom: complete rework of directory structure --- bin/mindeeV1.ts | 4 +- bin/mindeeV2.ts | 4 +- src/errors/index.ts | 7 ++- src/errors/mindeeError.ts | 30 ++++--------- src/http/apiCore.ts | 4 +- src/http/index.ts | 23 ++-------- src/imageOperations/common/index.ts | 2 - .../{common => }/extractedImage.ts | 0 .../{common => }/imageExtractor.ts | 0 src/imageOperations/index.ts | 3 +- .../extractedInvoiceSplitterImage.ts | 2 +- .../invoiceSplitterExtractor.ts | 2 +- .../extractedMultiReceiptImage.ts | 2 +- .../multiReceiptsExtractor.ts | 6 +-- src/index.ts | 44 +++++++++++-------- src/input/dataSchema.ts | 2 +- src/input/index.ts | 1 - src/input/localResponse.ts | 27 ++---------- src/input/pageOptions.ts | 6 +-- src/parsing/{common => }/dateParser.ts | 0 src/parsing/index.ts | 6 +-- src/parsing/{common => }/stringDict.ts | 0 src/pdf/pdfOperation.ts | 6 +-- src/product/fr/internal.ts | 5 --- src/product/ind/index.ts | 1 - src/product/ind/internal.ts | 1 - src/product/internal.ts | 15 ------- src/product/us/index.ts | 2 - src/product/us/internal.ts | 2 - src/{cliV1.ts => v1/cli.ts} | 22 ++++++---- src/{ => v1}/client.ts | 41 +++++++++-------- .../http/apiSettingsV1.ts} | 10 +++-- src/{ => v1}/http/endpoint.ts | 40 ++++++++--------- src/{http/error.ts => v1/http/errors.ts} | 26 +++++------ src/{ => v1}/http/httpParams.ts | 2 +- src/v1/http/index.ts | 19 ++++++++ src/{ => v1}/http/responseValidation.ts | 8 ++-- src/{ => v1}/http/workflowEndpoint.ts | 18 ++++---- src/v1/index.ts | 14 ++++++ src/v1/localResponse.ts | 7 +++ src/{ => v1}/parsing/common/apiRequest.ts | 2 +- src/{ => v1}/parsing/common/apiResponse.ts | 2 +- .../parsing/common/asyncPredictResponse.ts | 2 +- src/{ => v1}/parsing/common/document.ts | 2 +- src/{ => v1}/parsing/common/execution.ts | 6 +-- src/{ => v1}/parsing/common/executionFile.ts | 2 +- .../parsing/common/executionPriority.ts | 0 .../parsing/common/extras/cropperExtra.ts | 4 +- src/{ => v1}/parsing/common/extras/extras.ts | 0 .../parsing/common/extras/fullTextOcrExtra.ts | 2 +- src/{ => v1}/parsing/common/extras/index.ts | 0 .../parsing/common/extras/ragExtra.ts | 2 +- .../common/feedback/feedbackResponse.ts | 2 +- src/{ => v1}/parsing/common/index.ts | 4 +- src/{ => v1}/parsing/common/inference.ts | 5 ++- src/{ => v1}/parsing/common/mvisionV1.ts | 4 +- src/{ => v1}/parsing/common/ocr.ts | 2 +- src/{ => v1}/parsing/common/ocrPage.ts | 4 +- src/{ => v1}/parsing/common/orientation.ts | 2 +- src/{ => v1}/parsing/common/page.ts | 2 +- .../parsing/common/predictResponse.ts | 2 +- src/{ => v1}/parsing/common/prediction.ts | 0 src/{ => v1}/parsing/common/product.ts | 0 src/{ => v1}/parsing/common/summaryHelper.ts | 0 .../parsing/common/workflowResponse.ts | 2 +- .../parsing/generated/generatedList.ts | 4 +- .../parsing/generated/generatedObject.ts | 4 +- src/{ => v1}/parsing/generated/index.ts | 0 src/v1/parsing/index.ts | 3 ++ src/{ => v1}/parsing/standard/addressField.ts | 0 src/{ => v1}/parsing/standard/amount.ts | 2 +- src/{ => v1}/parsing/standard/base.ts | 2 +- src/{ => v1}/parsing/standard/boolean.ts | 2 +- .../parsing/standard/classification.ts | 0 .../parsing/standard/companyRegistration.ts | 2 +- src/{ => v1}/parsing/standard/date.ts | 0 src/{ => v1}/parsing/standard/field.ts | 0 src/{ => v1}/parsing/standard/index.ts | 0 src/{ => v1}/parsing/standard/locale.ts | 0 .../parsing/standard/paymentDetails.ts | 2 +- src/{ => v1}/parsing/standard/position.ts | 2 +- src/{ => v1}/parsing/standard/tax.ts | 2 +- src/{ => v1}/parsing/standard/text.ts | 2 +- src/{ => v1}/parsing/standard/word.ts | 0 .../product/barcodeReader/barcodeReaderV1.ts | 2 +- .../barcodeReader/barcodeReaderV1Document.ts | 4 +- src/{ => v1}/product/barcodeReader/index.ts | 0 src/{ => v1/product}/cliProducts.ts | 4 +- src/{ => v1}/product/cropper/cropperV1.ts | 2 +- .../product/cropper/cropperV1Document.ts | 2 +- src/{ => v1}/product/cropper/cropperV1Page.ts | 4 +- src/{ => v1}/product/cropper/index.ts | 0 .../product/driverLicense/driverLicenseV1.ts | 2 +- .../driverLicense/driverLicenseV1Document.ts | 4 +- src/{ => v1}/product/driverLicense/index.ts | 0 .../financialDocument/financialDocumentV1.ts | 2 +- .../financialDocumentV1Document.ts | 4 +- .../financialDocumentV1LineItem.ts | 4 +- .../product/financialDocument/index.ts | 0 .../bankAccountDetailsV1.ts | 2 +- .../bankAccountDetailsV1Document.ts | 4 +- .../bankAccountDetailsV2.ts | 2 +- .../bankAccountDetailsV2Bban.ts | 2 +- .../bankAccountDetailsV2Document.ts | 4 +- .../product/fr/bankAccountDetails/index.ts | 0 .../product/fr/carteGrise/carteGriseV1.ts | 2 +- .../fr/carteGrise/carteGriseV1Document.ts | 4 +- src/{ => v1}/product/fr/carteGrise/index.ts | 0 .../product/fr/energyBill/energyBillV1.ts | 2 +- .../fr/energyBill/energyBillV1Document.ts | 4 +- .../energyBill/energyBillV1EnergyConsumer.ts | 2 +- .../energyBill/energyBillV1EnergySupplier.ts | 2 +- .../fr/energyBill/energyBillV1EnergyUsage.ts | 4 +- .../fr/energyBill/energyBillV1MeterDetail.ts | 2 +- .../fr/energyBill/energyBillV1Subscription.ts | 4 +- .../energyBillV1TaxesAndContribution.ts | 4 +- src/{ => v1}/product/fr/energyBill/index.ts | 0 .../product/fr/healthCard/healthCardV1.ts | 2 +- .../fr/healthCard/healthCardV1Document.ts | 4 +- src/{ => v1}/product/fr/healthCard/index.ts | 0 src/{ => v1}/product/fr/idCard/idCardV1.ts | 2 +- .../product/fr/idCard/idCardV1Document.ts | 4 +- .../product/fr/idCard/idCardV1Page.ts | 4 +- src/{ => v1}/product/fr/idCard/idCardV2.ts | 2 +- .../product/fr/idCard/idCardV2Document.ts | 4 +- .../product/fr/idCard/idCardV2Page.ts | 4 +- src/{ => v1}/product/fr/idCard/index.ts | 0 src/{ => v1}/product/fr/index.ts | 7 +++ src/{ => v1}/product/fr/payslip/index.ts | 0 src/{ => v1}/product/fr/payslip/payslipV2.ts | 2 +- .../fr/payslip/payslipV2BankAccountDetail.ts | 2 +- .../product/fr/payslip/payslipV2Document.ts | 2 +- .../product/fr/payslip/payslipV2Employee.ts | 2 +- .../product/fr/payslip/payslipV2Employer.ts | 2 +- .../product/fr/payslip/payslipV2Employment.ts | 4 +- .../product/fr/payslip/payslipV2PayDetail.ts | 4 +- .../product/fr/payslip/payslipV2PayPeriod.ts | 2 +- .../product/fr/payslip/payslipV2Pto.ts | 4 +- .../fr/payslip/payslipV2SalaryDetail.ts | 4 +- src/{ => v1}/product/fr/payslip/payslipV3.ts | 2 +- .../fr/payslip/payslipV3BankAccountDetail.ts | 2 +- .../product/fr/payslip/payslipV3Document.ts | 2 +- .../product/fr/payslip/payslipV3Employee.ts | 2 +- .../product/fr/payslip/payslipV3Employer.ts | 2 +- .../product/fr/payslip/payslipV3Employment.ts | 2 +- .../fr/payslip/payslipV3PaidTimeOff.ts | 4 +- .../product/fr/payslip/payslipV3PayDetail.ts | 4 +- .../product/fr/payslip/payslipV3PayPeriod.ts | 2 +- .../fr/payslip/payslipV3SalaryDetail.ts | 4 +- src/{ => v1}/product/generated/generatedV1.ts | 2 +- .../product/generated/generatedV1Document.ts | 6 +-- .../product/generated/generatedV1Page.ts | 6 +-- .../generated/generatedV1Prediction.ts | 6 +-- src/{ => v1}/product/generated/index.ts | 0 src/v1/product/ind/index.ts | 4 ++ .../product/ind/indianPassport/index.ts | 0 .../ind/indianPassport/indianPassportV1.ts | 2 +- .../indianPassportV1Document.ts | 4 +- src/{ => v1}/product/index.ts | 14 ++++++ src/{ => v1}/product/internationalId/index.ts | 0 .../internationalId/internationalIdV2.ts | 2 +- .../internationalIdV2Document.ts | 4 +- src/{ => v1}/product/invoice/index.ts | 0 src/{ => v1}/product/invoice/invoiceV4.ts | 2 +- .../product/invoice/invoiceV4Document.ts | 4 +- .../product/invoice/invoiceV4LineItem.ts | 4 +- src/{ => v1}/product/invoiceSplitter/index.ts | 0 .../invoiceSplitter/invoiceSplitterV1.ts | 2 +- .../invoiceSplitterV1Document.ts | 2 +- .../invoiceSplitterV1InvoicePageGroup.ts | 2 +- .../product/multiReceiptsDetector/index.ts | 0 .../multiReceiptsDetectorV1.ts | 2 +- .../multiReceiptsDetectorV1Document.ts | 4 +- src/{ => v1}/product/passport/index.ts | 0 src/{ => v1}/product/passport/passportV1.ts | 2 +- .../product/passport/passportV1Document.ts | 4 +- src/{ => v1}/product/receipt/index.ts | 0 src/{ => v1}/product/receipt/receiptV5.ts | 2 +- .../product/receipt/receiptV5Document.ts | 4 +- .../product/receipt/receiptV5LineItem.ts | 4 +- src/{ => v1}/product/resume/index.ts | 0 src/{ => v1}/product/resume/resumeV1.ts | 2 +- .../product/resume/resumeV1Certificate.ts | 4 +- .../product/resume/resumeV1Document.ts | 4 +- .../product/resume/resumeV1Education.ts | 4 +- .../product/resume/resumeV1Language.ts | 4 +- .../resume/resumeV1ProfessionalExperience.ts | 4 +- .../resume/resumeV1SocialNetworksUrl.ts | 4 +- .../product/us/bankCheck/bankCheckV1.ts | 2 +- .../us/bankCheck/bankCheckV1Document.ts | 4 +- .../product/us/bankCheck/bankCheckV1Page.ts | 4 +- src/{ => v1}/product/us/bankCheck/index.ts | 0 src/v1/product/us/index.ts | 6 +++ src/{ => v1}/product/us/usMail/index.ts | 0 src/{ => v1}/product/us/usMail/usMailV3.ts | 2 +- .../product/us/usMail/usMailV3Document.ts | 4 +- .../us/usMail/usMailV3RecipientAddress.ts | 4 +- .../us/usMail/usMailV3SenderAddress.ts | 2 +- src/{cliV2.ts => v2/cli.ts} | 6 +-- src/{ => v2}/clientV2.ts | 14 +++--- src/{ => v2}/http/apiSettingsV2.ts | 8 ++-- src/v2/http/errors.ts | 20 +++++++++ src/v2/http/index.ts | 2 + src/{ => v2}/http/mindeeApiV2.ts | 25 ++++++----- src/v2/index.ts | 12 +++++ src/v2/localResponse.ts | 31 +++++++++++++ .../v2 => v2/parsing}/commonResponse.ts | 2 +- .../parsing}/dataSchemaActiveOption.ts | 2 +- src/{parsing/v2 => v2/parsing}/errorItem.ts | 2 +- .../v2 => v2/parsing}/errorResponse.ts | 2 +- .../v2 => v2/parsing}/field/baseField.ts | 2 +- .../parsing}/field/fieldConfidence.ts | 0 .../v2 => v2/parsing}/field/fieldFactory.ts | 8 ++-- .../v2 => v2/parsing}/field/fieldLocation.ts | 2 +- src/{parsing/v2 => v2/parsing}/field/index.ts | 0 .../parsing}/field/inferenceFields.ts | 2 +- .../v2 => v2/parsing}/field/listField.ts | 10 ++--- .../v2 => v2/parsing}/field/objectField.ts | 2 +- .../v2 => v2/parsing}/field/simpleField.ts | 2 +- src/{parsing/v2 => v2/parsing}/index.ts | 10 ++--- src/{parsing/v2 => v2/parsing}/inference.ts | 2 +- .../parsing}/inferenceActiveOptions.ts | 2 +- .../v2 => v2/parsing}/inferenceFile.ts | 2 +- .../v2 => v2/parsing}/inferenceModel.ts | 2 +- .../v2 => v2/parsing}/inferenceResponse.ts | 2 +- .../v2 => v2/parsing}/inferenceResult.ts | 2 +- src/{parsing/v2 => v2/parsing}/job.ts | 4 +- src/{parsing/v2 => v2/parsing}/jobResponse.ts | 2 +- src/{parsing/v2 => v2/parsing}/jobWebhook.ts | 2 +- src/{parsing/v2 => v2/parsing}/ragMetadata.ts | 2 +- src/{parsing/v2 => v2/parsing}/rawText.ts | 2 +- src/{parsing/v2 => v2/parsing}/rawTextPage.ts | 2 +- tests/input/sources.integration.ts | 2 +- tests/input/urlInputSource.integration.ts | 2 +- tests/v1/api/asyncResponse.spec.ts | 4 +- tests/v1/api/endpoint.spec.ts | 2 +- tests/v1/api/feedbackResponse.spec.ts | 2 +- tests/v1/api/response.spec.ts | 2 +- tests/v1/clientInit.spec.ts | 2 +- tests/v1/extras/fullTextOcr.spec.ts | 2 +- tests/v1/extras/ocr.spec.ts | 2 +- .../invoiceSplitterExtractor.spec.ts | 2 +- .../invoiceSplitterReconstruction.spec.ts | 2 +- .../multiReceiptsExtractor.spec.ts | 2 +- ...multiReceiptsReconstruction.integration.ts | 2 +- .../multiReceiptsReconstruction.spec.ts | 2 +- tests/v1/input/localResponse.spec.ts | 17 +++---- tests/v1/parsing/standard/amount.spec.ts | 2 +- .../parsing/standard/classification.spec.ts | 2 +- tests/v1/parsing/standard/date.spec.ts | 2 +- tests/v1/parsing/standard/field.spec.ts | 2 +- tests/v1/parsing/standard/locale.spec.ts | 2 +- tests/v1/parsing/standard/orientation.spec.ts | 2 +- .../parsing/standard/paymentDetails.spec.ts | 2 +- tests/v1/parsing/standard/position.spec.ts | 2 +- tests/v1/parsing/standard/tax.spec.ts | 2 +- tests/v1/parsing/standard/text.spec.ts | 2 +- .../bankAccountDetailsV1.spec.ts | 1 - .../product/generated/generatedList.spec.ts | 2 +- .../product/generated/generatedObject.spec.ts | 2 +- .../v1/product/generated/generatedV1.spec.ts | 8 ++-- .../invoiceSplitter.integration.ts | 2 +- tests/v1/workflows/workflow.integration.ts | 6 +-- tests/v2/clientV2.integration.ts | 6 +-- tests/v2/clientV2.spec.ts | 7 +-- tests/v2/input/inferenceParameter.spec.ts | 2 +- tests/v2/input/localResponse.spec.ts | 12 ++--- tests/v2/parsing/inference.spec.ts | 6 +-- tests/v2/parsing/job.spec.ts | 5 +-- 269 files changed, 598 insertions(+), 519 deletions(-) delete mode 100644 src/imageOperations/common/index.ts rename src/imageOperations/{common => }/extractedImage.ts (100%) rename src/imageOperations/{common => }/imageExtractor.ts (100%) rename src/parsing/{common => }/dateParser.ts (100%) rename src/parsing/{common => }/stringDict.ts (100%) delete mode 100644 src/product/fr/internal.ts delete mode 100644 src/product/ind/index.ts delete mode 100644 src/product/ind/internal.ts delete mode 100644 src/product/internal.ts delete mode 100644 src/product/us/index.ts delete mode 100644 src/product/us/internal.ts rename src/{cliV1.ts => v1/cli.ts} (95%) rename src/{ => v1}/client.ts (93%) rename src/{http/apiSettings.ts => v1/http/apiSettingsV1.ts} (81%) rename src/{ => v1}/http/endpoint.ts (88%) rename src/{http/error.ts => v1/http/errors.ts} (88%) rename src/{ => v1}/http/httpParams.ts (86%) create mode 100644 src/v1/http/index.ts rename src/{ => v1}/http/responseValidation.ts (90%) rename src/{ => v1}/http/workflowEndpoint.ts (85%) create mode 100644 src/v1/index.ts create mode 100644 src/v1/localResponse.ts rename src/{ => v1}/parsing/common/apiRequest.ts (92%) rename src/{ => v1}/parsing/common/apiResponse.ts (92%) rename src/{ => v1}/parsing/common/asyncPredictResponse.ts (97%) rename src/{ => v1}/parsing/common/document.ts (98%) rename src/{ => v1}/parsing/common/execution.ts (91%) rename src/{ => v1}/parsing/common/executionFile.ts (84%) rename src/{ => v1}/parsing/common/executionPriority.ts (100%) rename src/{ => v1}/parsing/common/extras/cropperExtra.ts (85%) rename src/{ => v1}/parsing/common/extras/extras.ts (100%) rename src/{ => v1}/parsing/common/extras/fullTextOcrExtra.ts (89%) rename src/{ => v1}/parsing/common/extras/index.ts (100%) rename src/{ => v1}/parsing/common/extras/ragExtra.ts (86%) rename src/{ => v1}/parsing/common/feedback/feedbackResponse.ts (88%) rename src/{ => v1}/parsing/common/index.ts (85%) rename src/{ => v1}/parsing/common/inference.ts (96%) rename src/{ => v1}/parsing/common/mvisionV1.ts (80%) rename src/{ => v1}/parsing/common/ocr.ts (84%) rename src/{ => v1}/parsing/common/ocrPage.ts (95%) rename src/{ => v1}/parsing/common/orientation.ts (91%) rename src/{ => v1}/parsing/common/page.ts (98%) rename src/{ => v1}/parsing/common/predictResponse.ts (92%) rename src/{ => v1}/parsing/common/prediction.ts (100%) rename src/{ => v1}/parsing/common/product.ts (100%) rename src/{ => v1}/parsing/common/summaryHelper.ts (100%) rename src/{ => v1}/parsing/common/workflowResponse.ts (91%) rename src/{ => v1}/parsing/generated/generatedList.ts (93%) rename src/{ => v1}/parsing/generated/generatedObject.ts (96%) rename src/{ => v1}/parsing/generated/index.ts (100%) create mode 100644 src/v1/parsing/index.ts rename src/{ => v1}/parsing/standard/addressField.ts (100%) rename src/{ => v1}/parsing/standard/amount.ts (93%) rename src/{ => v1}/parsing/standard/base.ts (97%) rename src/{ => v1}/parsing/standard/boolean.ts (91%) rename src/{ => v1}/parsing/standard/classification.ts (100%) rename src/{ => v1}/parsing/standard/companyRegistration.ts (94%) rename src/{ => v1}/parsing/standard/date.ts (100%) rename src/{ => v1}/parsing/standard/field.ts (100%) rename src/{ => v1}/parsing/standard/index.ts (100%) rename src/{ => v1}/parsing/standard/locale.ts (100%) rename src/{ => v1}/parsing/standard/paymentDetails.ts (98%) rename src/{ => v1}/parsing/standard/position.ts (96%) rename src/{ => v1}/parsing/standard/tax.ts (98%) rename src/{ => v1}/parsing/standard/text.ts (91%) rename src/{ => v1}/parsing/standard/word.ts (100%) rename src/{ => v1}/product/barcodeReader/barcodeReaderV1.ts (92%) rename src/{ => v1}/product/barcodeReader/barcodeReaderV1Document.ts (92%) rename src/{ => v1}/product/barcodeReader/index.ts (100%) rename src/{ => v1/product}/cliProducts.ts (97%) rename src/{ => v1}/product/cropper/cropperV1.ts (92%) rename src/{ => v1}/product/cropper/cropperV1Document.ts (77%) rename src/{ => v1}/product/cropper/cropperV1Page.ts (84%) rename src/{ => v1}/product/cropper/index.ts (100%) rename src/{ => v1}/product/driverLicense/driverLicenseV1.ts (92%) rename src/{ => v1}/product/driverLicense/driverLicenseV1Document.ts (96%) rename src/{ => v1}/product/driverLicense/index.ts (100%) rename src/{ => v1}/product/financialDocument/financialDocumentV1.ts (93%) rename src/{ => v1}/product/financialDocument/financialDocumentV1Document.ts (99%) rename src/{ => v1}/product/financialDocument/financialDocumentV1LineItem.ts (97%) rename src/{ => v1}/product/financialDocument/index.ts (100%) rename src/{ => v1}/product/fr/bankAccountDetails/bankAccountDetailsV1.ts (93%) rename src/{ => v1}/product/fr/bankAccountDetails/bankAccountDetailsV1Document.ts (91%) rename src/{ => v1}/product/fr/bankAccountDetails/bankAccountDetailsV2.ts (93%) rename src/{ => v1}/product/fr/bankAccountDetails/bankAccountDetailsV2Bban.ts (97%) rename src/{ => v1}/product/fr/bankAccountDetails/bankAccountDetailsV2Document.ts (93%) rename src/{ => v1}/product/fr/bankAccountDetails/index.ts (100%) rename src/{ => v1}/product/fr/carteGrise/carteGriseV1.ts (92%) rename src/{ => v1}/product/fr/carteGrise/carteGriseV1Document.ts (98%) rename src/{ => v1}/product/fr/carteGrise/index.ts (100%) rename src/{ => v1}/product/fr/energyBill/energyBillV1.ts (92%) rename src/{ => v1}/product/fr/energyBill/energyBillV1Document.ts (98%) rename src/{ => v1}/product/fr/energyBill/energyBillV1EnergyConsumer.ts (96%) rename src/{ => v1}/product/fr/energyBill/energyBillV1EnergySupplier.ts (96%) rename src/{ => v1}/product/fr/energyBill/energyBillV1EnergyUsage.ts (97%) rename src/{ => v1}/product/fr/energyBill/energyBillV1MeterDetail.ts (96%) rename src/{ => v1}/product/fr/energyBill/energyBillV1Subscription.ts (96%) rename src/{ => v1}/product/fr/energyBill/energyBillV1TaxesAndContribution.ts (96%) rename src/{ => v1}/product/fr/energyBill/index.ts (100%) rename src/{ => v1}/product/fr/healthCard/healthCardV1.ts (92%) rename src/{ => v1}/product/fr/healthCard/healthCardV1Document.ts (93%) rename src/{ => v1}/product/fr/healthCard/index.ts (100%) rename src/{ => v1}/product/fr/idCard/idCardV1.ts (92%) rename src/{ => v1}/product/fr/idCard/idCardV1Document.ts (96%) rename src/{ => v1}/product/fr/idCard/idCardV1Page.ts (81%) rename src/{ => v1}/product/fr/idCard/idCardV2.ts (92%) rename src/{ => v1}/product/fr/idCard/idCardV2Document.ts (97%) rename src/{ => v1}/product/fr/idCard/idCardV2Page.ts (85%) rename src/{ => v1}/product/fr/idCard/index.ts (100%) rename src/{ => v1}/product/fr/index.ts (58%) rename src/{ => v1}/product/fr/payslip/index.ts (100%) rename src/{ => v1}/product/fr/payslip/payslipV2.ts (92%) rename src/{ => v1}/product/fr/payslip/payslipV2BankAccountDetail.ts (96%) rename src/{ => v1}/product/fr/payslip/payslipV2Document.ts (98%) rename src/{ => v1}/product/fr/payslip/payslipV2Employee.ts (98%) rename src/{ => v1}/product/fr/payslip/payslipV2Employer.ts (97%) rename src/{ => v1}/product/fr/payslip/payslipV2Employment.ts (96%) rename src/{ => v1}/product/fr/payslip/payslipV2PayDetail.ts (98%) rename src/{ => v1}/product/fr/payslip/payslipV2PayPeriod.ts (97%) rename src/{ => v1}/product/fr/payslip/payslipV2Pto.ts (96%) rename src/{ => v1}/product/fr/payslip/payslipV2SalaryDetail.ts (95%) rename src/{ => v1}/product/fr/payslip/payslipV3.ts (92%) rename src/{ => v1}/product/fr/payslip/payslipV3BankAccountDetail.ts (96%) rename src/{ => v1}/product/fr/payslip/payslipV3Document.ts (99%) rename src/{ => v1}/product/fr/payslip/payslipV3Employee.ts (98%) rename src/{ => v1}/product/fr/payslip/payslipV3Employer.ts (97%) rename src/{ => v1}/product/fr/payslip/payslipV3Employment.ts (98%) rename src/{ => v1}/product/fr/payslip/payslipV3PaidTimeOff.ts (96%) rename src/{ => v1}/product/fr/payslip/payslipV3PayDetail.ts (98%) rename src/{ => v1}/product/fr/payslip/payslipV3PayPeriod.ts (97%) rename src/{ => v1}/product/fr/payslip/payslipV3SalaryDetail.ts (96%) rename src/{ => v1}/product/generated/generatedV1.ts (92%) rename src/{ => v1}/product/generated/generatedV1Document.ts (86%) rename src/{ => v1}/product/generated/generatedV1Page.ts (87%) rename src/{ => v1}/product/generated/generatedV1Prediction.ts (91%) rename src/{ => v1}/product/generated/index.ts (100%) create mode 100644 src/v1/product/ind/index.ts rename src/{ => v1}/product/ind/indianPassport/index.ts (100%) rename src/{ => v1}/product/ind/indianPassport/indianPassportV1.ts (92%) rename src/{ => v1}/product/ind/indianPassport/indianPassportV1Document.ts (98%) rename src/{ => v1}/product/index.ts (51%) rename src/{ => v1}/product/internationalId/index.ts (100%) rename src/{ => v1}/product/internationalId/internationalIdV2.ts (93%) rename src/{ => v1}/product/internationalId/internationalIdV2Document.ts (98%) rename src/{ => v1}/product/invoice/index.ts (100%) rename src/{ => v1}/product/invoice/invoiceV4.ts (92%) rename src/{ => v1}/product/invoice/invoiceV4Document.ts (99%) rename src/{ => v1}/product/invoice/invoiceV4LineItem.ts (97%) rename src/{ => v1}/product/invoiceSplitter/index.ts (100%) rename src/{ => v1}/product/invoiceSplitter/invoiceSplitterV1.ts (93%) rename src/{ => v1}/product/invoiceSplitter/invoiceSplitterV1Document.ts (97%) rename src/{ => v1}/product/invoiceSplitter/invoiceSplitterV1InvoicePageGroup.ts (96%) rename src/{ => v1}/product/multiReceiptsDetector/index.ts (100%) rename src/{ => v1}/product/multiReceiptsDetector/multiReceiptsDetectorV1.ts (93%) rename src/{ => v1}/product/multiReceiptsDetector/multiReceiptsDetectorV1Document.ts (89%) rename src/{ => v1}/product/passport/index.ts (100%) rename src/{ => v1}/product/passport/passportV1.ts (92%) rename src/{ => v1}/product/passport/passportV1Document.ts (96%) rename src/{ => v1}/product/receipt/index.ts (100%) rename src/{ => v1}/product/receipt/receiptV5.ts (92%) rename src/{ => v1}/product/receipt/receiptV5Document.ts (98%) rename src/{ => v1}/product/receipt/receiptV5LineItem.ts (95%) rename src/{ => v1}/product/resume/index.ts (100%) rename src/{ => v1}/product/resume/resumeV1.ts (92%) rename src/{ => v1}/product/resume/resumeV1Certificate.ts (95%) rename src/{ => v1}/product/resume/resumeV1Document.ts (98%) rename src/{ => v1}/product/resume/resumeV1Education.ts (97%) rename src/{ => v1}/product/resume/resumeV1Language.ts (93%) rename src/{ => v1}/product/resume/resumeV1ProfessionalExperience.ts (97%) rename src/{ => v1}/product/resume/resumeV1SocialNetworksUrl.ts (93%) rename src/{ => v1}/product/us/bankCheck/bankCheckV1.ts (93%) rename src/{ => v1}/product/us/bankCheck/bankCheckV1Document.ts (96%) rename src/{ => v1}/product/us/bankCheck/bankCheckV1Page.ts (89%) rename src/{ => v1}/product/us/bankCheck/index.ts (100%) create mode 100644 src/v1/product/us/index.ts rename src/{ => v1}/product/us/usMail/index.ts (100%) rename src/{ => v1}/product/us/usMail/usMailV3.ts (92%) rename src/{ => v1}/product/us/usMail/usMailV3Document.ts (96%) rename src/{ => v1}/product/us/usMail/usMailV3RecipientAddress.ts (97%) rename src/{ => v1}/product/us/usMail/usMailV3SenderAddress.ts (97%) rename src/{cliV2.ts => v2/cli.ts} (93%) rename src/{ => v2}/clientV2.ts (96%) rename src/{ => v2}/http/apiSettingsV2.ts (84%) create mode 100644 src/v2/http/errors.ts create mode 100644 src/v2/http/index.ts rename src/{ => v2}/http/mindeeApiV2.ts (87%) create mode 100644 src/v2/index.ts create mode 100644 src/v2/localResponse.ts rename src/{parsing/v2 => v2/parsing}/commonResponse.ts (88%) rename src/{parsing/v2 => v2/parsing}/dataSchemaActiveOption.ts (86%) rename src/{parsing/v2 => v2/parsing}/errorItem.ts (89%) rename src/{parsing/v2 => v2/parsing}/errorResponse.ts (95%) rename src/{parsing/v2 => v2/parsing}/field/baseField.ts (92%) rename src/{parsing/v2 => v2/parsing}/field/fieldConfidence.ts (100%) rename src/{parsing/v2 => v2/parsing}/field/fieldFactory.ts (79%) rename src/{parsing/v2 => v2/parsing}/field/fieldLocation.ts (89%) rename src/{parsing/v2 => v2/parsing}/field/index.ts (100%) rename src/{parsing/v2 => v2/parsing}/field/inferenceFields.ts (97%) rename src/{parsing/v2 => v2/parsing}/field/listField.ts (88%) rename src/{parsing/v2 => v2/parsing}/field/objectField.ts (94%) rename src/{parsing/v2 => v2/parsing}/field/simpleField.ts (96%) rename src/{parsing/v2 => v2/parsing}/index.ts (100%) rename src/{parsing/v2 => v2/parsing}/inference.ts (95%) rename src/{parsing/v2 => v2/parsing}/inferenceActiveOptions.ts (95%) rename src/{parsing/v2 => v2/parsing}/inferenceFile.ts (92%) rename src/{parsing/v2 => v2/parsing}/inferenceModel.ts (81%) rename src/{parsing/v2 => v2/parsing}/inferenceResponse.ts (85%) rename src/{parsing/v2 => v2/parsing}/inferenceResult.ts (92%) rename src/{parsing/v2 => v2/parsing}/job.ts (93%) rename src/{parsing/v2 => v2/parsing}/jobResponse.ts (83%) rename src/{parsing/v2 => v2/parsing}/jobWebhook.ts (90%) rename src/{parsing/v2 => v2/parsing}/ragMetadata.ts (81%) rename src/{parsing/v2 => v2/parsing}/rawText.ts (88%) rename src/{parsing/v2 => v2/parsing}/rawTextPage.ts (81%) diff --git a/bin/mindeeV1.ts b/bin/mindeeV1.ts index 8f46f652..12fa8168 100755 --- a/bin/mindeeV1.ts +++ b/bin/mindeeV1.ts @@ -1,5 +1,5 @@ #!/usr/bin/env node -import { cliV1 } from "@/cliV1.js"; +import { cli } from "@/v1/cli.js"; -cliV1(); +cli(); diff --git a/bin/mindeeV2.ts b/bin/mindeeV2.ts index 0040c7d7..ad38cd00 100755 --- a/bin/mindeeV2.ts +++ b/bin/mindeeV2.ts @@ -1,5 +1,5 @@ #!/usr/bin/env node -import { cliV2 } from "@/cliV2.js"; +import { cli } from "@/v2/cli.js"; -cliV2(); +cli(); diff --git a/src/errors/index.ts b/src/errors/index.ts index e773bbb8..5789ab53 100644 --- a/src/errors/index.ts +++ b/src/errors/index.ts @@ -1,5 +1,8 @@ export { MindeeError, - MindeeMimeTypeError, MindeeImageError, MindeePdfError, - MindeeHttpErrorV2, MindeeApiV2Error, + MindeeMimeTypeError, + MindeeImageError, + MindeePdfError, + MindeeDeserializationError, + MindeeConfigurationError, } from "./mindeeError.js"; diff --git a/src/errors/mindeeError.ts b/src/errors/mindeeError.ts index 462f5c8f..0274f8b3 100644 --- a/src/errors/mindeeError.ts +++ b/src/errors/mindeeError.ts @@ -1,5 +1,3 @@ -import { ErrorDetails, ErrorResponse, ErrorItem } from "@/parsing/v2/index.js"; - /** * Main Mindee Error custom class. */ @@ -20,7 +18,6 @@ export class MindeeMimeTypeError extends MindeeError { } } - export class MindeeImageError extends MindeeError { constructor(message: string) { super(message); @@ -28,34 +25,23 @@ export class MindeeImageError extends MindeeError { } } -export class MindeePdfError extends MindeeError { +export class MindeeDeserializationError extends MindeeError { constructor(message: string) { super(message); - this.name = "MindeePdfError"; + this.name = "MindeeDeserializationError"; } } -export class MindeeApiV2Error extends MindeeError { +export class MindeeConfigurationError extends MindeeError { constructor(message: string) { super(message); - this.name = "MindeeApiV2Error"; + this.name = "MindeeConfigurationError"; } } -export class MindeeHttpErrorV2 extends MindeeError implements ErrorDetails { - public status: number; - public detail: string; - public title: string; - public code: string; - public errors: ErrorItem[]; - - constructor(error: ErrorResponse) { - super(`HTTP ${error.status} - ${error.title} :: ${error.code} - ${error.detail}`); - this.status = error.status; - this.detail = error.detail; - this.title = error.title; - this.code = error.code; - this.errors = error.errors; - this.name = "MindeeHttpErrorV2"; +export class MindeePdfError extends MindeeError { + constructor(message: string) { + super(message); + this.name = "MindeePdfError"; } } diff --git a/src/http/apiCore.ts b/src/http/apiCore.ts index b74a408e..995e1f1d 100644 --- a/src/http/apiCore.ts +++ b/src/http/apiCore.ts @@ -13,7 +13,7 @@ export interface RequestOptions { body?: any; } -export interface EndpointResponse { +export interface BaseHttpResponse { messageObj: any; data: { [key: string]: any }; } @@ -38,7 +38,7 @@ export async function cutDocPages(inputDoc: InputSource, pageOptions: PageOption export async function sendRequestAndReadResponse( dispatcher: Dispatcher, options: RequestOptions, -): Promise { +): Promise { const url: string = `https://${options.hostname}${options.path}`; logger.debug(`${options.method}: ${url}`); diff --git a/src/http/index.ts b/src/http/index.ts index 275d6615..d740b785 100644 --- a/src/http/index.ts +++ b/src/http/index.ts @@ -1,24 +1,7 @@ -export { Endpoint } from "./endpoint.js"; -export type { EndpointResponse } from "./apiCore.js"; -export { - STANDARD_API_OWNER, - ApiSettings, -} from "./apiSettings.js"; -export { - MindeeHttpError, - MindeeHttp400Error, - MindeeHttp401Error, - MindeeHttp403Error, - MindeeHttp404Error, - MindeeHttp413Error, - MindeeHttp429Error, - MindeeHttp500Error, - MindeeHttp504Error, - handleError, -} from "./error.js"; +export type { BaseHttpResponse } from "./apiCore.js"; export { isValidSyncResponse, isValidAsyncResponse, cleanRequestData, -} from "./responseValidation.js"; -export type { PredictParams, WorkflowParams } from "./httpParams.js"; +} from "../v1/http/responseValidation.js"; +export { BaseSettings } from "./baseSettings.js"; diff --git a/src/imageOperations/common/index.ts b/src/imageOperations/common/index.ts deleted file mode 100644 index f87b9a6a..00000000 --- a/src/imageOperations/common/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { ExtractedImage } from "./extractedImage.js"; -export { extractFromPage } from "./imageExtractor.js"; diff --git a/src/imageOperations/common/extractedImage.ts b/src/imageOperations/extractedImage.ts similarity index 100% rename from src/imageOperations/common/extractedImage.ts rename to src/imageOperations/extractedImage.ts diff --git a/src/imageOperations/common/imageExtractor.ts b/src/imageOperations/imageExtractor.ts similarity index 100% rename from src/imageOperations/common/imageExtractor.ts rename to src/imageOperations/imageExtractor.ts diff --git a/src/imageOperations/index.ts b/src/imageOperations/index.ts index bac08a1c..b90e983b 100644 --- a/src/imageOperations/index.ts +++ b/src/imageOperations/index.ts @@ -1,4 +1,5 @@ export { extractReceipts, ExtractedMultiReceiptImage } from "./multiReceiptsExtractor/index.js"; export { extractInvoices, ExtractedInvoiceSplitterImage } from "./invoiceSplitterExtractor/index.js"; export { compressImage } from "./imageCompressor.js"; -export { ExtractedImage } from "./common/index.js"; +export { ExtractedImage } from "./extractedImage.js"; +export { extractFromPage } from "./imageExtractor.js"; diff --git a/src/imageOperations/invoiceSplitterExtractor/extractedInvoiceSplitterImage.ts b/src/imageOperations/invoiceSplitterExtractor/extractedInvoiceSplitterImage.ts index 44f88ae9..f26160f9 100644 --- a/src/imageOperations/invoiceSplitterExtractor/extractedInvoiceSplitterImage.ts +++ b/src/imageOperations/invoiceSplitterExtractor/extractedInvoiceSplitterImage.ts @@ -1,4 +1,4 @@ -import { ExtractedImage } from "@/imageOperations/common/extractedImage.js"; +import { ExtractedImage } from "@/imageOperations/extractedImage.js"; /** * Wrapper class for extracted invoice pages. diff --git a/src/imageOperations/invoiceSplitterExtractor/invoiceSplitterExtractor.ts b/src/imageOperations/invoiceSplitterExtractor/invoiceSplitterExtractor.ts index f47a9f28..cfc14cb9 100644 --- a/src/imageOperations/invoiceSplitterExtractor/invoiceSplitterExtractor.ts +++ b/src/imageOperations/invoiceSplitterExtractor/invoiceSplitterExtractor.ts @@ -1,6 +1,6 @@ import { PDFDocument } from "@cantoo/pdf-lib"; import { MindeeError, MindeeMimeTypeError } from "@/errors/index.js"; -import { InvoiceSplitterV1 } from "@/product/index.js"; +import { InvoiceSplitterV1 } from "@/v1/product/index.js"; import { LocalInputSource } from "@/input/index.js"; import { ExtractedInvoiceSplitterImage } from "./extractedInvoiceSplitterImage.js"; diff --git a/src/imageOperations/multiReceiptsExtractor/extractedMultiReceiptImage.ts b/src/imageOperations/multiReceiptsExtractor/extractedMultiReceiptImage.ts index d236fb23..4ea29ea2 100644 --- a/src/imageOperations/multiReceiptsExtractor/extractedMultiReceiptImage.ts +++ b/src/imageOperations/multiReceiptsExtractor/extractedMultiReceiptImage.ts @@ -1,4 +1,4 @@ -import { ExtractedImage } from "@/imageOperations/common/extractedImage.js"; +import { ExtractedImage } from "@/imageOperations/extractedImage.js"; /** * Wrapper class for extracted multiple-receipts images. diff --git a/src/imageOperations/multiReceiptsExtractor/multiReceiptsExtractor.ts b/src/imageOperations/multiReceiptsExtractor/multiReceiptsExtractor.ts index c90cb854..86865066 100644 --- a/src/imageOperations/multiReceiptsExtractor/multiReceiptsExtractor.ts +++ b/src/imageOperations/multiReceiptsExtractor/multiReceiptsExtractor.ts @@ -1,11 +1,11 @@ import { PDFDocument, PDFImage, PDFPage, degrees } from "@cantoo/pdf-lib"; import { MindeeError, MindeeMimeTypeError } from "@/errors/index.js"; import { Polygon } from "@/geometry/index.js"; -import { MultiReceiptsDetectorV1 } from "@/product/index.js"; +import { MultiReceiptsDetectorV1 } from "@/v1/product/index.js"; import { ExtractedMultiReceiptImage } from "./extractedMultiReceiptImage.js"; import { LocalInputSource } from "@/input/index.js"; -import { extractFromPage } from "../common/index.js"; -import { PositionField } from "@/parsing/standard/index.js"; +import { extractFromPage } from "@/imageOperations/index.js"; +import { PositionField } from "@/v1/parsing/standard/index.js"; /** * Given a page and a set of coordinates, extracts & assigns individual receipts to an ExtractedMultiReceiptImage diff --git a/src/index.ts b/src/index.ts index 16849ac0..c61e2bb0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,32 +1,38 @@ -export * as product from "./product/index.js"; -export { Client } from "./client.js"; -export type { PredictOptions, WorkflowOptions } from "./client.js"; -export { ClientV2 } from "./clientV2.js"; -export type { InferenceParameters, PollingOptions } from "./clientV2.js"; export { + InputSource, + Base64Input, + BufferInput, + BytesInput, + PathInput, + StreamInput, + UrlInput, + PageOptionsOperation, +} from "./input/index.js"; +export type { PageOptions } from "./input/index.js"; +export * as imageOperations from "./imageOperations/index.js"; + +// V1 +export * as v1 from "./v1/index.js"; +export { + Client, AsyncPredictResponse, PredictResponse, Inference, Prediction, Document, Page, -} from "./parsing/common/index.js"; + product, +} from "./v1/index.js"; +export type { PredictOptions, WorkflowOptions } from "./v1/client.js"; + +// V2 +export * as v2 from "./v2/index.js"; export { + ClientV2, InferenceFile, InferenceResponse, JobResponse, RawText, RagMetadata, -} from "./parsing/v2/index.js"; -export { - InputSource, - Base64Input, - BufferInput, - BytesInput, - PathInput, - StreamInput, - UrlInput, PageOptionsOperation, - LocalResponse -} from "./input/index.js"; -export type { PageOptions } from "./input/index.js"; -export * as imageOperations from "./imageOperations/index.js"; +} from "./v2/index.js"; +export type { InferenceParameters, PollingOptions } from "./v2/clientV2.js"; diff --git a/src/input/dataSchema.ts b/src/input/dataSchema.ts index b5135f9e..1e3d7a01 100644 --- a/src/input/dataSchema.ts +++ b/src/input/dataSchema.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { MindeeError } from "../errors/index.js"; export class DataSchemaField { diff --git a/src/input/index.ts b/src/input/index.ts index 24ec093b..7a7c52e4 100644 --- a/src/input/index.ts +++ b/src/input/index.ts @@ -5,4 +5,3 @@ export * from "./sources/index.js"; export { LocalResponse } from "./localResponse.js"; export { PageOptionsOperation } from "./pageOptions.js"; export type { PageOptions } from "./pageOptions.js"; - diff --git a/src/input/localResponse.ts b/src/input/localResponse.ts index b5af6c27..8b487260 100644 --- a/src/input/localResponse.ts +++ b/src/input/localResponse.ts @@ -1,15 +1,14 @@ import * as crypto from "crypto"; import * as fs from "node:fs/promises"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { MindeeError } from "../errors/index.js"; import { Buffer } from "buffer"; -import { CommonResponse } from "../parsing/v2/index.js"; /** * Local response loaded from a file. * Note: Has to be initialized through init() before use. */ -export class LocalResponse { +export abstract class LocalResponse { private file: Buffer; private readonly inputHandle: Buffer | string; protected initialized = false; @@ -60,7 +59,7 @@ export class LocalResponse { } /** - * Returns the HMAC signature of the local response, from the secret key provided. + * Returns the HMAC signature of the local response from the secret key provided. * @param secretKey - Secret key, either a string or a byte/byte array. * @returns The HMAC signature of the local response. */ @@ -94,24 +93,4 @@ export class LocalResponse { } return signature === this.getHmacSignature(secretKey); } - - /** - * Deserialize the loaded local response into the requested CommonResponse-derived class. - * - * Typically used when dealing with V2 webhook callbacks. - * - * @typeParam ResponseT - A class that extends `CommonResponse`. - * @param responseClass - The constructor of the class into which the payload should be deserialized. - * @returns An instance of `responseClass` populated with the file content. - * @throws MindeeError If the provided class cannot be instantiated. - */ - public async deserializeResponse( - responseClass: new (serverResponse: StringDict) => ResponseT - ): Promise { - try { - return new responseClass(await this.asDict()); - } catch { - throw new MindeeError("Invalid response provided."); - } - } } diff --git a/src/input/pageOptions.ts b/src/input/pageOptions.ts index 17277467..1781c936 100644 --- a/src/input/pageOptions.ts +++ b/src/input/pageOptions.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/naming-convention */ /** * Options to pass to the `parse` method for cutting multi-page documents. */ @@ -8,13 +7,13 @@ export interface PageOptions { * * A negative index can be used, indicating an offset from the end of the document. * - * [0, -1] represents the fist and last pages of the document. + * [0, -1] represents the first and last pages of the document. */ pageIndexes: number[]; /** Operation to apply on the document, given the `pageIndexes` specified. */ operation: PageOptionsOperation; /** - * Apply the operation only if document has at least this many pages. + * Apply the operation only if the document has at least this many pages. */ onMinPages: number; } @@ -22,6 +21,7 @@ export interface PageOptions { /** * Operation to apply on the document, given the page indexes specified. */ +/* eslint-disable @typescript-eslint/naming-convention */ export enum PageOptionsOperation { /** Only keep pages matching the provided indexes. */ KeepOnly = "KEEP_ONLY", diff --git a/src/parsing/common/dateParser.ts b/src/parsing/dateParser.ts similarity index 100% rename from src/parsing/common/dateParser.ts rename to src/parsing/dateParser.ts diff --git a/src/parsing/index.ts b/src/parsing/index.ts index d854428f..a7add5bc 100644 --- a/src/parsing/index.ts +++ b/src/parsing/index.ts @@ -1,4 +1,2 @@ -export * as common from "./common/index.js"; -export * as standard from "./standard/index.js"; -export * as generated from "./generated/index.js"; -export * as v2 from "./v2/index.js"; +export type { StringDict } from "./stringDict.js"; +export { parseDate } from "./dateParser.js"; diff --git a/src/parsing/common/stringDict.ts b/src/parsing/stringDict.ts similarity index 100% rename from src/parsing/common/stringDict.ts rename to src/parsing/stringDict.ts diff --git a/src/pdf/pdfOperation.ts b/src/pdf/pdfOperation.ts index d4b48e4b..27845468 100644 --- a/src/pdf/pdfOperation.ts +++ b/src/pdf/pdfOperation.ts @@ -10,10 +10,10 @@ export interface SplitPdf { } /** - * Cut pages from a pdf file. If pages index are out of bound, it will throw an error. + * Cut pages from a PDF file. If pages indexes are out of bounds, it will throw an error. * @param file * @param pageOptions - * @returns the new cut pdf file. + * @returns the new cut PDF file. */ export async function extractPages( file: Buffer, @@ -85,7 +85,7 @@ export async function extractPages( } /** - * Count the number of pages in a pdf file. + * Count the number of pages in a PDF file. * @param file * @returns the number of pages in the file. */ diff --git a/src/product/fr/internal.ts b/src/product/fr/internal.ts deleted file mode 100644 index f2348565..00000000 --- a/src/product/fr/internal.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * as bankAccountDetails from "./bankAccountDetails/index.js"; -export * as energyBill from "./energyBill/index.js"; -export * as healthCard from "./healthCard/index.js"; -export * as idCard from "./idCard/index.js"; -export * as payslip from "./payslip/index.js"; diff --git a/src/product/ind/index.ts b/src/product/ind/index.ts deleted file mode 100644 index 3249f812..00000000 --- a/src/product/ind/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { IndianPassportV1 } from "./indianPassport/index.js"; diff --git a/src/product/ind/internal.ts b/src/product/ind/internal.ts deleted file mode 100644 index 2dc538de..00000000 --- a/src/product/ind/internal.ts +++ /dev/null @@ -1 +0,0 @@ -export * as indianPassport from "./indianPassport/index.js"; diff --git a/src/product/internal.ts b/src/product/internal.ts deleted file mode 100644 index 2112bb85..00000000 --- a/src/product/internal.ts +++ /dev/null @@ -1,15 +0,0 @@ -export * as barcodeReader from "./barcodeReader/index.js"; -export * as cropper from "./cropper/index.js"; -export * as driverLicense from "./driverLicense/index.js"; -export * as financialDocument from "./financialDocument/index.js"; -export * as fr from "./fr/index.js"; -export * as generated from "./generated/index.js"; -export * as ind from "./ind/index.js"; -export * as internationalId from "./internationalId/index.js"; -export * as invoice from "./invoice/index.js"; -export * as invoiceSplitter from "./invoiceSplitter/index.js"; -export * as multiReceiptsDetector from "./multiReceiptsDetector/index.js"; -export * as passport from "./passport/index.js"; -export * as receipt from "./receipt/index.js"; -export * as resume from "./resume/index.js"; -export * as us from "./us/index.js"; diff --git a/src/product/us/index.ts b/src/product/us/index.ts deleted file mode 100644 index ac5e7b47..00000000 --- a/src/product/us/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { BankCheckV1 } from "./bankCheck/index.js"; -export { UsMailV3 } from "./usMail/index.js"; diff --git a/src/product/us/internal.ts b/src/product/us/internal.ts deleted file mode 100644 index 786879e8..00000000 --- a/src/product/us/internal.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * as bankCheck from "./bankCheck/index.js"; -export * as usMail from "./usMail/index.js"; diff --git a/src/cliV1.ts b/src/v1/cli.ts similarity index 95% rename from src/cliV1.ts rename to src/v1/cli.ts index d14043fe..6a628dcd 100644 --- a/src/cliV1.ts +++ b/src/v1/cli.ts @@ -1,13 +1,19 @@ -import { Command, OptionValues, Option } from "commander"; import { - Document, Inference, StringDict -} from "@/parsing/common/index.js"; -import { Client, PredictOptions } from "./client.js"; -import { PageOptions, PageOptionsOperation, PathInput } from "./input/index.js"; + Command, OptionValues, Option, +} from "commander"; +import { + Document, Inference, StringDict, +} from "@/v1/parsing/common/index.js"; +import { + Client, PredictOptions, +} from "./client.js"; +import { + PageOptions, PageOptionsOperation, PathInput, +} from "@/input/index.js"; import * as console from "console"; import { - CLI_COMMAND_CONFIG, COMMAND_GENERATED, ProductConfig -} from "./cliProducts.js"; + CLI_COMMAND_CONFIG, COMMAND_GENERATED, ProductConfig, +} from "./product/cliProducts.js"; import { Endpoint } from "./http/index.js"; const program = new Command(); @@ -227,7 +233,7 @@ function addPredictAction(prog: Command) { } } -export function cliV1() { +export function cli() { program.name("mindee") .description("Command line interface for Mindee products.") .option("-d, --debug", "high verbosity mode"); diff --git a/src/client.ts b/src/v1/client.ts similarity index 93% rename from src/client.ts rename to src/v1/client.ts index 7de5de84..dc8b45be 100644 --- a/src/client.ts +++ b/src/v1/client.ts @@ -1,11 +1,18 @@ +import { setTimeout } from "node:timers/promises"; import { Dispatcher } from "undici"; import { InputSource, LocalResponse, PageOptions, -} from "./input/index.js"; +} from "@/input/index.js"; +import { BaseHttpResponse } from "@/http/index.js"; +import { MindeeError } from "@/errors/index.js"; +import { errorHandler } from "@/errors/handler.js"; +import { LOG_LEVELS, logger } from "@/logger.js"; import { - ApiSettings, Endpoint, EndpointResponse, STANDARD_API_OWNER + ApiSettingsV1, + Endpoint, + STANDARD_API_OWNER, } from "./http/index.js"; import { AsyncPredictResponse, @@ -16,16 +23,12 @@ import { StringDict, WorkflowResponse, } from "./parsing/common/index.js"; -import { errorHandler } from "./errors/handler.js"; -import { LOG_LEVELS, logger } from "./logger.js"; import { InferenceFactory } from "./parsing/common/inference.js"; import { GeneratedV1 } from "./product/index.js"; -import { setTimeout } from "node:timers/promises"; -import { MindeeError } from "./errors/index.js"; -import { WorkflowEndpoint } from "./http/workflowEndpoint.js"; +import { WorkflowEndpoint } from "./http/index.js"; /** - * Common options for workflows & predictions. + * Common options for workflows and predictions. */ interface BaseOptions { /** @@ -133,7 +136,7 @@ export interface ClientOptions { */ export class Client { /** Mindee V1 API settings. */ - protected apiSettings: ApiSettings; + protected apiSettings: ApiSettingsV1; /** * @param {ClientOptions} options options for the initialization of a client. @@ -146,7 +149,7 @@ export class Client { dispatcher: undefined, } ) { - this.apiSettings = new ApiSettings({ + this.apiSettings = new ApiSettingsV1({ apiKey: apiKey, dispatcher: dispatcher, }); @@ -194,7 +197,7 @@ export class Client { /** * Send the document to an asynchronous endpoint and return its ID in the queue. - * @param productClass product class to use for calling the API and parsing the response. + * @param productClass product class to use for calling the API and parsing the response. * @param inputSource file to parse. * @param params parameters relating to prediction options. * @category Asynchronous @@ -226,7 +229,7 @@ export class Client { /** * Polls a queue and returns its status as well as the prediction results if the parsing is done. * - * @param productClass product class to use for calling the API and parsing the response. + * @param productClass product class to use for calling the API and parsing the response. * @param queueId id of the queue to poll. * @param params parameters relating to prediction options. * @typeParam T an extension of an `Inference`. Can be omitted as it will be inferred from the `productClass`. @@ -252,7 +255,7 @@ export class Client { /** * Load a prediction. * - * @param productClass Product class to use for calling the API and parsing the response. + * @param productClass Product class to use for calling the API and parsing the response. * @param localResponse Local response to load. * @category Asynchronous * @returns A valid prediction @@ -299,7 +302,7 @@ export class Client { /** * Fetch prediction results from a document already processed. * - * @param productClass product class to use for calling the API and parsing the response. + * @param productClass product class to use for calling the API and parsing the response. * @param documentId id of the document to fetch. * @param params optional parameters. * @param params.endpoint Endpoint, only specify if using a custom product. @@ -314,14 +317,14 @@ export class Client { ): Promise> { const endpoint: Endpoint = params?.endpoint ?? this.#initializeOTSEndpoint(productClass); - const response: EndpointResponse = await endpoint.getDocument(documentId); + const response: BaseHttpResponse = await endpoint.getDocument(documentId); return new PredictResponse(productClass, response.data); } /** - * Send a feedback for a document. + * Send feedback for a document. * - * @param productClass product class to use for calling the API and parsing the response. + * @param productClass product class to use for calling the API and parsing the response. * @param documentId id of the document to send feedback for. * @param feedback the feedback to send. * @param params optional parameters. @@ -338,7 +341,7 @@ export class Client { ): Promise { const endpoint: Endpoint = params?.endpoint ?? this.#initializeOTSEndpoint(productClass); - const response: EndpointResponse = await endpoint.sendFeedback(documentId, feedback); + const response: BaseHttpResponse = await endpoint.sendFeedback(documentId, feedback); return new FeedbackResponse(response.data); } @@ -370,7 +373,7 @@ export class Client { /** * Send a document to an asynchronous endpoint and poll the server until the result is sent or - * until the maximum amount of tries is reached. + * until the maximum number of tries is reached. * * @param productClass product class to use for calling the API and parsing the response. * @param inputSource document to parse. diff --git a/src/http/apiSettings.ts b/src/v1/http/apiSettingsV1.ts similarity index 81% rename from src/http/apiSettings.ts rename to src/v1/http/apiSettingsV1.ts index 361287e2..ec4213d0 100644 --- a/src/http/apiSettings.ts +++ b/src/v1/http/apiSettingsV1.ts @@ -1,13 +1,14 @@ -/* eslint-disable @typescript-eslint/naming-convention */ + import { logger } from "@/logger.js"; -import { BaseSettings, MindeeApiConstructorProps } from "./baseSettings.js"; +import { BaseSettings, MindeeApiConstructorProps } from "../../http/baseSettings.js"; +import { MindeeConfigurationError } from "@/errors/index.js"; export const STANDARD_API_OWNER: string = "mindee"; const API_V1_KEY_ENVVAR_NAME: string = "MINDEE_API_KEY"; const API_V1_HOST_ENVVAR_NAME: string = "MINDEE_API_HOST"; const DEFAULT_MINDEE_API_HOST: string = "api.mindee.net"; -export class ApiSettings extends BaseSettings { +export class ApiSettingsV1 extends BaseSettings { baseHeaders: Record; constructor({ @@ -16,11 +17,12 @@ export class ApiSettings extends BaseSettings { }: MindeeApiConstructorProps) { super(apiKey, dispatcher); if (!this.apiKey || this.apiKey.length === 0) { - throw new Error( + throw new MindeeConfigurationError( "Your V1 API key could not be set, check your Client Configuration\n." + `You can set this using the ${API_V1_KEY_ENVVAR_NAME} environment variable.` ); } + /* eslint-disable @typescript-eslint/naming-convention */ this.baseHeaders = { "User-Agent": this.getUserAgent(), Authorization: `Token ${this.apiKey}`, diff --git a/src/http/endpoint.ts b/src/v1/http/endpoint.ts similarity index 88% rename from src/http/endpoint.ts rename to src/v1/http/endpoint.ts index 567605de..d74cf2ca 100644 --- a/src/http/endpoint.ts +++ b/src/v1/http/endpoint.ts @@ -1,9 +1,9 @@ import { URLSearchParams } from "url"; import { InputSource, LocalInputSource } from "@/input/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; -import { cutDocPages, sendRequestAndReadResponse, EndpointResponse } from "./apiCore.js"; -import { ApiSettings } from "./apiSettings.js"; -import { handleError } from "./error.js"; +import { StringDict } from "@/parsing/stringDict.js"; +import { cutDocPages, sendRequestAndReadResponse, BaseHttpResponse } from "@/http/apiCore.js"; +import { ApiSettingsV1 } from "./apiSettingsV1.js"; +import { handleError } from "./errors.js"; import { PredictParams } from "./httpParams.js"; import { isValidAsyncResponse, isValidSyncResponse } from "./responseValidation.js"; @@ -12,7 +12,7 @@ import { isValidAsyncResponse, isValidSyncResponse } from "./responseValidation. */ export class Endpoint { /** Settings relating to the API. */ - settings: ApiSettings; + settings: ApiSettingsV1; /** Root of the URL for API calls. */ urlRoot: string; /** URL of a product. */ @@ -26,7 +26,7 @@ export class Endpoint { urlName: string, owner: string, version: string, - settings: ApiSettings + settings: ApiSettingsV1 ) { this.settings = settings; this.urlRoot = `/v1/products/${owner}/${urlName}/v${version}`; @@ -42,7 +42,7 @@ export class Endpoint { * @category Synchronous * @returns a `Promise` containing parsing results. */ - async predict(params: PredictParams): Promise { + async predict(params: PredictParams): Promise { await params.inputDoc.init(); if (params.pageOptions !== undefined) { await cutDocPages(params.inputDoc, params.pageOptions); @@ -66,7 +66,7 @@ export class Endpoint { * @category Asynchronous * @returns a `Promise` containing queue data. */ - async predictAsync(params: PredictParams): Promise { + async predictAsync(params: PredictParams): Promise { await params.inputDoc.init(); if (params.pageOptions !== undefined) { await cutDocPages(params.inputDoc, params.pageOptions); @@ -85,7 +85,7 @@ export class Endpoint { return response; } - private extractStatusMessage(response: EndpointResponse): string | undefined { + private extractStatusMessage(response: BaseHttpResponse): string | undefined { if (response.messageObj?.statusMessage !== undefined && response.messageObj?.statusMessage !== null) { return response.messageObj?.statusMessage; } @@ -107,8 +107,8 @@ export class Endpoint { * @category Asynchronous * @returns a `Promise` containing the parsed result. */ - async getQueuedDocument(queueId: string): Promise { - const queueResponse: EndpointResponse = await this.#documentQueueReqGet(queueId); + async getQueuedDocument(queueId: string): Promise { + const queueResponse: BaseHttpResponse = await this.#documentQueueReqGet(queueId); const queueStatusCode = queueResponse.messageObj.statusCode; if (!isValidAsyncResponse(queueResponse)) { handleError(this.urlName, queueResponse, this.extractStatusMessage(queueResponse)); @@ -129,7 +129,7 @@ export class Endpoint { * Send a feedback * @param {string} documentId */ - async getDocument(documentId: string): Promise { + async getDocument(documentId: string): Promise { const response = await this.#documentGetReq( documentId, ); @@ -147,8 +147,8 @@ export class Endpoint { async sendFeedback( documentId: string, feedback: StringDict - ): Promise { - const response: EndpointResponse = await this.#documentFeedbackPutReq( + ): Promise { + const response: BaseHttpResponse = await this.#documentFeedbackPutReq( documentId, feedback, ); @@ -176,7 +176,7 @@ export class Endpoint { cropper: boolean = false, rag: boolean = false, workflowId: string | undefined = undefined - ): Promise { + ): Promise { const searchParams = new URLSearchParams(); if (cropper) { searchParams.set("cropper", "true"); @@ -231,7 +231,7 @@ export class Endpoint { includeWords: boolean = false, fullText: boolean = false, cropper: boolean = false - ): Promise { + ): Promise { return this.sendFileForPrediction(input, "predict", includeWords, fullText, cropper); } @@ -251,7 +251,7 @@ export class Endpoint { cropper: boolean = false, rag: boolean = false, workflowId: string | undefined = undefined - ): Promise { + ): Promise { return this.sendFileForPrediction( input, "predict_async", @@ -267,7 +267,7 @@ export class Endpoint { * Make a request to GET the status of a document in the queue. * @param queueId */ - async #documentQueueReqGet(queueId: string): Promise { + async #documentQueueReqGet(queueId: string): Promise { const options = { method: "GET", headers: this.settings.baseHeaders, @@ -282,7 +282,7 @@ export class Endpoint { * Make a request to GET a document. * @param documentId */ - async #documentGetReq(documentId: string): Promise { + async #documentGetReq(documentId: string): Promise { const options = { method: "GET", headers: this.settings.baseHeaders, @@ -298,7 +298,7 @@ export class Endpoint { * @param documentId * @param feedback */ - async #documentFeedbackPutReq(documentId: string, feedback: StringDict): Promise { + async #documentFeedbackPutReq(documentId: string, feedback: StringDict): Promise { const options = { method: "PUT", headers: this.settings.baseHeaders, diff --git a/src/http/error.ts b/src/v1/http/errors.ts similarity index 88% rename from src/http/error.ts rename to src/v1/http/errors.ts index 74c5100b..46ac6773 100644 --- a/src/http/error.ts +++ b/src/v1/http/errors.ts @@ -1,11 +1,11 @@ import { MindeeError } from "@/errors/index.js"; import { errorHandler } from "@/errors/handler.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; -import { EndpointResponse } from "./apiCore.js"; +import { StringDict } from "@/parsing/stringDict.js"; +import { BaseHttpResponse } from "../../http/apiCore.js"; export function handleError( urlName: string, - response: EndpointResponse, + response: BaseHttpResponse, serverError?: string ): void { let code; @@ -99,7 +99,7 @@ export function handleError( errorToThrow = new MindeeHttp504Error(errorObj, urlName, code); break; default: - errorToThrow = new MindeeHttpError(errorObj, urlName, code); + errorToThrow = new MindeeHttpErrorV1(errorObj, urlName, code); break; } errorHandler.throw(errorToThrow); @@ -109,7 +109,7 @@ export function handleError( * `Error` wrapper for server (HTTP) errors. * Is used when an error is lacking a handled error code. */ -export class MindeeHttpError extends MindeeError { +export class MindeeHttpErrorV1 extends MindeeError { /** Description of the error. */ message: string = ""; /** Additional details on the error. */ @@ -130,7 +130,7 @@ export class MindeeHttpError extends MindeeError { * Generic client errors. * Can include errors like InvalidQuery. */ -export class MindeeHttp400Error extends MindeeHttpError { +export class MindeeHttp400Error extends MindeeHttpErrorV1 { constructor(httpError: StringDict, urlName: string, code?: number) { super(httpError, urlName, code); this.name = "MindeeHttp400Error"; @@ -140,7 +140,7 @@ export class MindeeHttp400Error extends MindeeHttpError { /** * Can include errors like NoTokenSet or InvalidToken. */ -export class MindeeHttp401Error extends MindeeHttpError { +export class MindeeHttp401Error extends MindeeHttpErrorV1 { constructor(httpError: StringDict, urlName: string, code?: number) { super(httpError, urlName, code); this.name = "MindeeHttp401Error"; @@ -151,14 +151,14 @@ export class MindeeHttp401Error extends MindeeHttpError { * Regular AccessForbidden error. * Can also include errors like PlanLimitReached, AsyncRequestDisallowed or SyncRequestDisallowed. */ -export class MindeeHttp403Error extends MindeeHttpError { +export class MindeeHttp403Error extends MindeeHttpErrorV1 { constructor(httpError: StringDict, urlName: string, code?: number) { super(httpError, urlName, code); this.name = "MindeeHttp403Error"; } } -export class MindeeHttp404Error extends MindeeHttpError { +export class MindeeHttp404Error extends MindeeHttpErrorV1 { constructor(httpError: StringDict, urlName: string, code?: number) { super(httpError, urlName, code); this.name = "MindeeHttp404Error"; @@ -169,7 +169,7 @@ export class MindeeHttp404Error extends MindeeHttpError { * Rare error. * Can occasionally happen when unusually large documents are passed. */ -export class MindeeHttp413Error extends MindeeHttpError { +export class MindeeHttp413Error extends MindeeHttpErrorV1 { constructor(httpError: StringDict, urlName: string, code?: number) { super(httpError, urlName, code); this.name = "MindeeHttp413Error"; @@ -180,7 +180,7 @@ export class MindeeHttp413Error extends MindeeHttpError { * Usually corresponds to TooManyRequests errors. * Arises whenever too many calls to the API are made in quick succession. */ -export class MindeeHttp429Error extends MindeeHttpError { +export class MindeeHttp429Error extends MindeeHttpErrorV1 { constructor(httpError: StringDict, urlName: string, code?: number) { super(httpError, urlName, code); this.name = "MindeeHttp429Error"; @@ -190,7 +190,7 @@ export class MindeeHttp429Error extends MindeeHttpError { /** * Generic server errors. */ -export class MindeeHttp500Error extends MindeeHttpError { +export class MindeeHttp500Error extends MindeeHttpErrorV1 { constructor(httpError: StringDict, urlName: string, code?: number) { super(httpError, urlName, code); this.name = "MindeeHttp500Error"; @@ -201,7 +201,7 @@ export class MindeeHttp500Error extends MindeeHttpError { * Miscellaneous server errors. * Can include errors like RequestTimeout or GatewayTimeout. */ -export class MindeeHttp504Error extends MindeeHttpError { +export class MindeeHttp504Error extends MindeeHttpErrorV1 { constructor(httpError: StringDict, urlName: string, code?: number) { super(httpError, urlName, code); this.name = "MindeeHttp504Error"; diff --git a/src/http/httpParams.ts b/src/v1/http/httpParams.ts similarity index 86% rename from src/http/httpParams.ts rename to src/v1/http/httpParams.ts index 8b5f701a..4cbab337 100644 --- a/src/http/httpParams.ts +++ b/src/v1/http/httpParams.ts @@ -1,5 +1,5 @@ import { InputSource, PageOptions } from "@/input/index.js"; -import { ExecutionPriority } from "@/parsing/common/index.js"; +import { ExecutionPriority } from "@/v1/parsing/common/index.js"; interface HTTPParams { inputDoc: InputSource; diff --git a/src/v1/http/index.ts b/src/v1/http/index.ts new file mode 100644 index 00000000..77ff1c36 --- /dev/null +++ b/src/v1/http/index.ts @@ -0,0 +1,19 @@ +export { Endpoint } from "./endpoint.js"; +export { + STANDARD_API_OWNER, + ApiSettingsV1, +} from "./apiSettingsV1.js"; +export { + MindeeHttpErrorV1, + MindeeHttp400Error, + MindeeHttp401Error, + MindeeHttp403Error, + MindeeHttp404Error, + MindeeHttp413Error, + MindeeHttp429Error, + MindeeHttp500Error, + MindeeHttp504Error, + handleError, +} from "./errors.js"; +export { WorkflowEndpoint } from "./workflowEndpoint.js"; +export type { PredictParams, WorkflowParams } from "./httpParams.js"; diff --git a/src/http/responseValidation.ts b/src/v1/http/responseValidation.ts similarity index 90% rename from src/http/responseValidation.ts rename to src/v1/http/responseValidation.ts index 884cab71..8aa63ca9 100644 --- a/src/http/responseValidation.ts +++ b/src/v1/http/responseValidation.ts @@ -1,4 +1,4 @@ -import { EndpointResponse } from "./apiCore.js"; +import { BaseHttpResponse } from "../../http/apiCore.js"; /** * Checks if the synchronous response is valid. Returns True if the response is valid. @@ -6,7 +6,7 @@ import { EndpointResponse } from "./apiCore.js"; * @param response an endpoint response object. * @returns bool */ -export function isValidSyncResponse(response: EndpointResponse): boolean { +export function isValidSyncResponse(response: BaseHttpResponse): boolean { if (!response.messageObj || !response.messageObj.statusCode) { return false; } @@ -33,7 +33,7 @@ export function isValidSyncResponse(response: EndpointResponse): boolean { * @param response an endpoint response object. * @returns bool */ -export function isValidAsyncResponse(response: EndpointResponse): boolean { +export function isValidAsyncResponse(response: BaseHttpResponse): boolean { if (!isValidSyncResponse(response)) { return false; } @@ -61,7 +61,7 @@ export function isValidAsyncResponse(response: EndpointResponse): boolean { * @param response an endpoint response object. * @returns EndpointResponse Returns the job error if the error is due to parsing, returns the http error otherwise. */ -export function cleanRequestData(response: EndpointResponse): EndpointResponse { +export function cleanRequestData(response: BaseHttpResponse): BaseHttpResponse { if (response.messageObj && response.messageObj.statusCode && ( diff --git a/src/http/workflowEndpoint.ts b/src/v1/http/workflowEndpoint.ts similarity index 85% rename from src/http/workflowEndpoint.ts rename to src/v1/http/workflowEndpoint.ts index 595f4309..7a4b5959 100644 --- a/src/http/workflowEndpoint.ts +++ b/src/v1/http/workflowEndpoint.ts @@ -1,9 +1,9 @@ import { URLSearchParams } from "url"; import { InputSource, LocalInputSource } from "@/input/index.js"; -import { ExecutionPriority } from "@/parsing/common/index.js"; -import { cutDocPages, sendRequestAndReadResponse, EndpointResponse } from "./apiCore.js"; -import { ApiSettings } from "./apiSettings.js"; -import { handleError } from "./error.js"; +import { ExecutionPriority } from "@/v1/parsing/common/index.js"; +import { cutDocPages, sendRequestAndReadResponse, BaseHttpResponse } from "../../http/apiCore.js"; +import { ApiSettingsV1 } from "./apiSettingsV1.js"; +import { handleError } from "./errors.js"; import { WorkflowParams } from "./httpParams.js"; import { isValidSyncResponse } from "./responseValidation.js"; @@ -12,12 +12,12 @@ import { isValidSyncResponse } from "./responseValidation.js"; */ export class WorkflowEndpoint { /** Settings relating to the API. */ - settings: ApiSettings; + settings: ApiSettingsV1; /** Root of the URL for API calls. */ urlRoot: string; constructor( - settings: ApiSettings, + settings: ApiSettingsV1, workflowId: string ) { this.settings = settings; @@ -31,7 +31,7 @@ export class WorkflowEndpoint { * @category Synchronous * @returns a `Promise` containing parsing results. */ - async executeWorkflow(params: WorkflowParams): Promise { + async executeWorkflow(params: WorkflowParams): Promise { await params.inputDoc.init(); if (params.pageOptions !== undefined) { await cutDocPages(params.inputDoc, params.pageOptions); @@ -48,7 +48,7 @@ export class WorkflowEndpoint { * * @param {WorkflowParams} params parameters relating to prediction options. */ - #workflowReqPost(params: WorkflowParams): Promise { + #workflowReqPost(params: WorkflowParams): Promise { return this.sendFileForPrediction( params.inputDoc, params.alias, @@ -75,7 +75,7 @@ export class WorkflowEndpoint { fullText: boolean = false, publicUrl: string | null = null, rag: boolean | null = null, - ): Promise { + ): Promise { const searchParams = new URLSearchParams(); if (fullText) { searchParams.set("full_text_ocr", "true"); diff --git a/src/v1/index.ts b/src/v1/index.ts new file mode 100644 index 00000000..204892da --- /dev/null +++ b/src/v1/index.ts @@ -0,0 +1,14 @@ +export * as http from "./http/index.js"; +export * as product from "./product/index.js"; +export * as parsing from "./parsing/index.js"; +export { LocalResponseV1 } from "./localResponse.js"; +export { Client } from "./client.js"; +export type { PredictOptions, WorkflowOptions } from "./client.js"; +export { + AsyncPredictResponse, + PredictResponse, + Inference, + Prediction, + Document, + Page, +} from "./parsing/common/index.js"; diff --git a/src/v1/localResponse.ts b/src/v1/localResponse.ts new file mode 100644 index 00000000..7fa8d4cb --- /dev/null +++ b/src/v1/localResponse.ts @@ -0,0 +1,7 @@ +import { LocalResponse } from "@/input/index.js"; + +/** + * Local response loaded from a file. + * Note: Has to be initialized through init() before use. + */ +export class LocalResponseV1 extends LocalResponse { } diff --git a/src/parsing/common/apiRequest.ts b/src/v1/parsing/common/apiRequest.ts similarity index 92% rename from src/parsing/common/apiRequest.ts rename to src/v1/parsing/common/apiRequest.ts index a502f161..3d28d3db 100644 --- a/src/parsing/common/apiRequest.ts +++ b/src/v1/parsing/common/apiRequest.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; /** * Holds the information relating to an API HTTP request. * diff --git a/src/parsing/common/apiResponse.ts b/src/v1/parsing/common/apiResponse.ts similarity index 92% rename from src/parsing/common/apiResponse.ts rename to src/v1/parsing/common/apiResponse.ts index 39654808..b900eccd 100644 --- a/src/parsing/common/apiResponse.ts +++ b/src/v1/parsing/common/apiResponse.ts @@ -1,5 +1,5 @@ import { ApiRequest } from "./apiRequest.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; /** Base wrapper for API requests. diff --git a/src/parsing/common/asyncPredictResponse.ts b/src/v1/parsing/common/asyncPredictResponse.ts similarity index 97% rename from src/parsing/common/asyncPredictResponse.ts rename to src/v1/parsing/common/asyncPredictResponse.ts index 6c60ac2c..ea477892 100644 --- a/src/parsing/common/asyncPredictResponse.ts +++ b/src/v1/parsing/common/asyncPredictResponse.ts @@ -1,5 +1,5 @@ import { ApiResponse } from "./apiResponse.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Inference } from "./inference.js"; import { Document } from "./document.js"; diff --git a/src/parsing/common/document.ts b/src/v1/parsing/common/document.ts similarity index 98% rename from src/parsing/common/document.ts rename to src/v1/parsing/common/document.ts index c94867ed..f9d8c4a8 100644 --- a/src/parsing/common/document.ts +++ b/src/v1/parsing/common/document.ts @@ -1,7 +1,7 @@ import { CropperExtra, FullTextOcrExtra, ExtraField, Extras } from "./extras/index.js"; import { Inference } from "./inference.js"; import { Ocr } from "./ocr.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { RAGExtra } from "./extras/ragExtra.js"; /** diff --git a/src/parsing/common/execution.ts b/src/v1/parsing/common/execution.ts similarity index 91% rename from src/parsing/common/execution.ts rename to src/v1/parsing/common/execution.ts index 78d66660..4560c122 100644 --- a/src/parsing/common/execution.ts +++ b/src/v1/parsing/common/execution.ts @@ -1,9 +1,9 @@ import { Inference } from "./inference.js"; -import { GeneratedV1Document } from "@/product/generated/generatedV1Document.js"; +import { GeneratedV1Document } from "@/v1/product/generated/generatedV1Document.js"; import { ExecutionFile } from "./executionFile.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { ExecutionPriority } from "./executionPriority.js"; -import { parseDate } from "./dateParser.js"; +import { parseDate } from "../../../parsing/dateParser.js"; /** * Representation of an execution for a workflow. diff --git a/src/parsing/common/executionFile.ts b/src/v1/parsing/common/executionFile.ts similarity index 84% rename from src/parsing/common/executionFile.ts rename to src/v1/parsing/common/executionFile.ts index 72e9db13..b13530b3 100644 --- a/src/parsing/common/executionFile.ts +++ b/src/v1/parsing/common/executionFile.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; /** * Representation of an execution's file info. diff --git a/src/parsing/common/executionPriority.ts b/src/v1/parsing/common/executionPriority.ts similarity index 100% rename from src/parsing/common/executionPriority.ts rename to src/v1/parsing/common/executionPriority.ts diff --git a/src/parsing/common/extras/cropperExtra.ts b/src/v1/parsing/common/extras/cropperExtra.ts similarity index 85% rename from src/parsing/common/extras/cropperExtra.ts rename to src/v1/parsing/common/extras/cropperExtra.ts index 303f37aa..1884972a 100644 --- a/src/parsing/common/extras/cropperExtra.ts +++ b/src/v1/parsing/common/extras/cropperExtra.ts @@ -1,5 +1,5 @@ -import { PositionField } from "@/parsing/standard/position.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { PositionField } from "@/v1/parsing/standard/position.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { cleanOutString } from "../summaryHelper.js"; import { ExtraField } from "./extras.js"; diff --git a/src/parsing/common/extras/extras.ts b/src/v1/parsing/common/extras/extras.ts similarity index 100% rename from src/parsing/common/extras/extras.ts rename to src/v1/parsing/common/extras/extras.ts diff --git a/src/parsing/common/extras/fullTextOcrExtra.ts b/src/v1/parsing/common/extras/fullTextOcrExtra.ts similarity index 89% rename from src/parsing/common/extras/fullTextOcrExtra.ts rename to src/v1/parsing/common/extras/fullTextOcrExtra.ts index 94f0a949..eaea594a 100644 --- a/src/parsing/common/extras/fullTextOcrExtra.ts +++ b/src/v1/parsing/common/extras/fullTextOcrExtra.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { ExtraField } from "./extras.js"; export class FullTextOcrExtra extends ExtraField { diff --git a/src/parsing/common/extras/index.ts b/src/v1/parsing/common/extras/index.ts similarity index 100% rename from src/parsing/common/extras/index.ts rename to src/v1/parsing/common/extras/index.ts diff --git a/src/parsing/common/extras/ragExtra.ts b/src/v1/parsing/common/extras/ragExtra.ts similarity index 86% rename from src/parsing/common/extras/ragExtra.ts rename to src/v1/parsing/common/extras/ragExtra.ts index cd0a28d0..563a1ff4 100644 --- a/src/parsing/common/extras/ragExtra.ts +++ b/src/v1/parsing/common/extras/ragExtra.ts @@ -1,5 +1,5 @@ import { ExtraField } from "./extras.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; export class RAGExtra extends ExtraField { /** diff --git a/src/parsing/common/feedback/feedbackResponse.ts b/src/v1/parsing/common/feedback/feedbackResponse.ts similarity index 88% rename from src/parsing/common/feedback/feedbackResponse.ts rename to src/v1/parsing/common/feedback/feedbackResponse.ts index b31408ee..070114e3 100644 --- a/src/parsing/common/feedback/feedbackResponse.ts +++ b/src/v1/parsing/common/feedback/feedbackResponse.ts @@ -1,5 +1,5 @@ import { ApiResponse } from "../apiResponse.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; /** * Wrapper for feedback response. diff --git a/src/parsing/common/index.ts b/src/v1/parsing/common/index.ts similarity index 85% rename from src/parsing/common/index.ts rename to src/v1/parsing/common/index.ts index f66cf009..0b6084dc 100644 --- a/src/parsing/common/index.ts +++ b/src/v1/parsing/common/index.ts @@ -5,7 +5,7 @@ export { ExecutionPriority } from "./executionPriority.js"; export { Inference } from "./inference.js"; export { FeedbackResponse } from "./feedback/feedbackResponse.js"; export { OrientationField } from "./orientation.js"; -export type { StringDict } from "./stringDict.js"; +export type { StringDict } from "../../../parsing/stringDict.js"; export { AsyncPredictResponse } from "./asyncPredictResponse.js"; export { PredictResponse } from "./predictResponse.js"; export { Prediction } from "./prediction.js"; @@ -14,5 +14,5 @@ export { cleanOutString, lineSeparator, floatToString, cleanSpecialChars } from "./summaryHelper.js"; export * as extras from "./extras/index.js"; -export { parseDate } from "./dateParser.js"; +export { parseDate } from "../../../parsing/dateParser.js"; export { WorkflowResponse } from "./workflowResponse.js"; diff --git a/src/parsing/common/inference.ts b/src/v1/parsing/common/inference.ts similarity index 96% rename from src/parsing/common/inference.ts rename to src/v1/parsing/common/inference.ts index a1e0237d..be25f514 100644 --- a/src/parsing/common/inference.ts +++ b/src/v1/parsing/common/inference.ts @@ -1,10 +1,11 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Page } from "./page.js"; import type { Prediction } from "./prediction.js"; import { Product } from "./product.js"; import { CropperExtra, FullTextOcrExtra, ExtraField, Extras, RAGExtra } from "./extras/index.js"; +import { MindeeConfigurationError } from "@/errors/index.js"; /** * @@ -118,7 +119,7 @@ export class InferenceFactory { emptyProduct.endpointName.length === 0 || emptyProduct.endpointVersion.length === 0 ) { - throw new Error( + throw new MindeeConfigurationError( `Error during endpoint verification, no endpoint found for product ${inferenceClass.name}.` ); } diff --git a/src/parsing/common/mvisionV1.ts b/src/v1/parsing/common/mvisionV1.ts similarity index 80% rename from src/parsing/common/mvisionV1.ts rename to src/v1/parsing/common/mvisionV1.ts index dfe6d1ed..ca392aa8 100644 --- a/src/parsing/common/mvisionV1.ts +++ b/src/v1/parsing/common/mvisionV1.ts @@ -1,5 +1,5 @@ -import { Word } from "../standard/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { Word } from "@/v1/parsing/standard/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { OcrPage } from "./ocrPage.js"; export class MvisionV1 { diff --git a/src/parsing/common/ocr.ts b/src/v1/parsing/common/ocr.ts similarity index 84% rename from src/parsing/common/ocr.ts rename to src/v1/parsing/common/ocr.ts index 21718519..477ea394 100644 --- a/src/parsing/common/ocr.ts +++ b/src/v1/parsing/common/ocr.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { MvisionV1 } from "./mvisionV1.js"; export class Ocr { diff --git a/src/parsing/common/ocrPage.ts b/src/v1/parsing/common/ocrPage.ts similarity index 95% rename from src/parsing/common/ocrPage.ts rename to src/v1/parsing/common/ocrPage.ts index b78216f8..617e74a6 100644 --- a/src/parsing/common/ocrPage.ts +++ b/src/v1/parsing/common/ocrPage.ts @@ -4,8 +4,8 @@ import { getCentroid, isPointInPolygonY, } from "@/geometry/index.js"; -import { Word } from "@/parsing/standard/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { Word } from "@/v1/parsing/standard/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; export class OcrPage { /** Flat list of all words read */ diff --git a/src/parsing/common/orientation.ts b/src/v1/parsing/common/orientation.ts similarity index 91% rename from src/parsing/common/orientation.ts rename to src/v1/parsing/common/orientation.ts index 19cd3da5..967555c8 100644 --- a/src/parsing/common/orientation.ts +++ b/src/v1/parsing/common/orientation.ts @@ -1,4 +1,4 @@ -import { BaseField, BaseFieldConstructor } from "@/parsing/standard/index.js"; +import { BaseField, BaseFieldConstructor } from "@/v1/parsing/standard/index.js"; interface OrientationFieldConstructor extends BaseFieldConstructor { pageId: number; diff --git a/src/parsing/common/page.ts b/src/v1/parsing/common/page.ts similarity index 98% rename from src/parsing/common/page.ts rename to src/v1/parsing/common/page.ts index 7330a28d..206c4495 100644 --- a/src/parsing/common/page.ts +++ b/src/v1/parsing/common/page.ts @@ -1,7 +1,7 @@ import { CropperExtra, FullTextOcrExtra, ExtraField, Extras } from "./extras/index.js"; import { OrientationField } from "./orientation.js"; import { Prediction } from "./prediction.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; /** diff --git a/src/parsing/common/predictResponse.ts b/src/v1/parsing/common/predictResponse.ts similarity index 92% rename from src/parsing/common/predictResponse.ts rename to src/v1/parsing/common/predictResponse.ts index e0a31858..b8ad6a41 100644 --- a/src/parsing/common/predictResponse.ts +++ b/src/v1/parsing/common/predictResponse.ts @@ -1,7 +1,7 @@ import { ApiResponse } from "./apiResponse.js"; import { Document } from "./document.js"; import { Inference } from "./inference.js"; -import { StringDict } from "./stringDict.js"; +import { StringDict } from "../../../parsing/stringDict.js"; /** Wrapper for synchronous prediction response. * diff --git a/src/parsing/common/prediction.ts b/src/v1/parsing/common/prediction.ts similarity index 100% rename from src/parsing/common/prediction.ts rename to src/v1/parsing/common/prediction.ts diff --git a/src/parsing/common/product.ts b/src/v1/parsing/common/product.ts similarity index 100% rename from src/parsing/common/product.ts rename to src/v1/parsing/common/product.ts diff --git a/src/parsing/common/summaryHelper.ts b/src/v1/parsing/common/summaryHelper.ts similarity index 100% rename from src/parsing/common/summaryHelper.ts rename to src/v1/parsing/common/summaryHelper.ts diff --git a/src/parsing/common/workflowResponse.ts b/src/v1/parsing/common/workflowResponse.ts similarity index 91% rename from src/parsing/common/workflowResponse.ts rename to src/v1/parsing/common/workflowResponse.ts index a82236b5..56c4b6b6 100644 --- a/src/parsing/common/workflowResponse.ts +++ b/src/v1/parsing/common/workflowResponse.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { ApiResponse } from "./apiResponse.js"; import { Execution } from "./execution.js"; import { Inference } from "./inference.js"; diff --git a/src/parsing/generated/generatedList.ts b/src/v1/parsing/generated/generatedList.ts similarity index 93% rename from src/parsing/generated/generatedList.ts rename to src/v1/parsing/generated/generatedList.ts index 819f1e6f..86c96614 100644 --- a/src/parsing/generated/generatedList.ts +++ b/src/v1/parsing/generated/generatedList.ts @@ -1,5 +1,5 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; -import { StringField } from "@/parsing/standard/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; +import { StringField } from "@/v1/parsing/standard/index.js"; import { GeneratedObjectField, isGeneratedObject } from "./generatedObject.js"; export interface GeneratedListFieldConstructor { diff --git a/src/parsing/generated/generatedObject.ts b/src/v1/parsing/generated/generatedObject.ts similarity index 96% rename from src/parsing/generated/generatedObject.ts rename to src/v1/parsing/generated/generatedObject.ts index 582d444b..6fb592eb 100644 --- a/src/parsing/generated/generatedObject.ts +++ b/src/v1/parsing/generated/generatedObject.ts @@ -1,5 +1,5 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; -import { BaseFieldConstructor, PositionField } from "@/parsing/standard/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; +import { BaseFieldConstructor, PositionField } from "@/v1/parsing/standard/index.js"; /** A JSON-like object, with miscellaneous values. */ diff --git a/src/parsing/generated/index.ts b/src/v1/parsing/generated/index.ts similarity index 100% rename from src/parsing/generated/index.ts rename to src/v1/parsing/generated/index.ts diff --git a/src/v1/parsing/index.ts b/src/v1/parsing/index.ts new file mode 100644 index 00000000..60bee7d4 --- /dev/null +++ b/src/v1/parsing/index.ts @@ -0,0 +1,3 @@ +export * as common from "./common/index.js"; +export * as generated from "./generated/index.js"; +export * as standard from "./standard/index.js"; diff --git a/src/parsing/standard/addressField.ts b/src/v1/parsing/standard/addressField.ts similarity index 100% rename from src/parsing/standard/addressField.ts rename to src/v1/parsing/standard/addressField.ts diff --git a/src/parsing/standard/amount.ts b/src/v1/parsing/standard/amount.ts similarity index 93% rename from src/parsing/standard/amount.ts rename to src/v1/parsing/standard/amount.ts index 135aeea3..af4892c0 100644 --- a/src/parsing/standard/amount.ts +++ b/src/v1/parsing/standard/amount.ts @@ -1,6 +1,6 @@ import { Field } from "./field.js"; import { BaseFieldConstructor } from "./base.js"; -import { floatToString } from "@/parsing/common/index.js"; +import { floatToString } from "@/v1/parsing/common/index.js"; /** * A field containing an amount value. diff --git a/src/parsing/standard/base.ts b/src/v1/parsing/standard/base.ts similarity index 97% rename from src/parsing/standard/base.ts rename to src/v1/parsing/standard/base.ts index cd23901a..f0d6a73f 100644 --- a/src/parsing/standard/base.ts +++ b/src/v1/parsing/standard/base.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; /** * @property {object} prediction - Prediction object from HTTP response. diff --git a/src/parsing/standard/boolean.ts b/src/v1/parsing/standard/boolean.ts similarity index 91% rename from src/parsing/standard/boolean.ts rename to src/v1/parsing/standard/boolean.ts index e490b3b7..f96e395b 100644 --- a/src/parsing/standard/boolean.ts +++ b/src/v1/parsing/standard/boolean.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Field } from "./field.js"; export interface FieldConstructor { diff --git a/src/parsing/standard/classification.ts b/src/v1/parsing/standard/classification.ts similarity index 100% rename from src/parsing/standard/classification.ts rename to src/v1/parsing/standard/classification.ts diff --git a/src/parsing/standard/companyRegistration.ts b/src/v1/parsing/standard/companyRegistration.ts similarity index 94% rename from src/parsing/standard/companyRegistration.ts rename to src/v1/parsing/standard/companyRegistration.ts index 69d46223..d11fae3d 100644 --- a/src/parsing/standard/companyRegistration.ts +++ b/src/v1/parsing/standard/companyRegistration.ts @@ -1,6 +1,6 @@ import { Field } from "./field.js"; import { BaseFieldConstructor } from "./base.js"; -import { cleanOutString } from "@/parsing/common/index.js"; +import { cleanOutString } from "@/v1/parsing/common/index.js"; /** * A company registration item. diff --git a/src/parsing/standard/date.ts b/src/v1/parsing/standard/date.ts similarity index 100% rename from src/parsing/standard/date.ts rename to src/v1/parsing/standard/date.ts diff --git a/src/parsing/standard/field.ts b/src/v1/parsing/standard/field.ts similarity index 100% rename from src/parsing/standard/field.ts rename to src/v1/parsing/standard/field.ts diff --git a/src/parsing/standard/index.ts b/src/v1/parsing/standard/index.ts similarity index 100% rename from src/parsing/standard/index.ts rename to src/v1/parsing/standard/index.ts diff --git a/src/parsing/standard/locale.ts b/src/v1/parsing/standard/locale.ts similarity index 100% rename from src/parsing/standard/locale.ts rename to src/v1/parsing/standard/locale.ts diff --git a/src/parsing/standard/paymentDetails.ts b/src/v1/parsing/standard/paymentDetails.ts similarity index 98% rename from src/parsing/standard/paymentDetails.ts rename to src/v1/parsing/standard/paymentDetails.ts index c1c06c46..b56c6fda 100644 --- a/src/parsing/standard/paymentDetails.ts +++ b/src/v1/parsing/standard/paymentDetails.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Field } from "./field.js"; /** diff --git a/src/parsing/standard/position.ts b/src/v1/parsing/standard/position.ts similarity index 96% rename from src/parsing/standard/position.ts rename to src/v1/parsing/standard/position.ts index 23b88fc6..428c6e71 100644 --- a/src/parsing/standard/position.ts +++ b/src/v1/parsing/standard/position.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; export interface PositionFieldConstructor { diff --git a/src/parsing/standard/tax.ts b/src/v1/parsing/standard/tax.ts similarity index 98% rename from src/parsing/standard/tax.ts rename to src/v1/parsing/standard/tax.ts index 25707551..4e63d3ca 100644 --- a/src/parsing/standard/tax.ts +++ b/src/v1/parsing/standard/tax.ts @@ -1,4 +1,4 @@ -import { floatToString, StringDict } from "@/parsing/common/index.js"; +import { floatToString, StringDict } from "@/v1/parsing/common/index.js"; import { Field } from "./field.js"; import { BaseFieldConstructor } from "./base.js"; diff --git a/src/parsing/standard/text.ts b/src/v1/parsing/standard/text.ts similarity index 91% rename from src/parsing/standard/text.ts rename to src/v1/parsing/standard/text.ts index 014f92f7..90881511 100644 --- a/src/parsing/standard/text.ts +++ b/src/v1/parsing/standard/text.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Field } from "./field.js"; export interface FieldConstructor { diff --git a/src/parsing/standard/word.ts b/src/v1/parsing/standard/word.ts similarity index 100% rename from src/parsing/standard/word.ts rename to src/v1/parsing/standard/word.ts diff --git a/src/product/barcodeReader/barcodeReaderV1.ts b/src/v1/product/barcodeReader/barcodeReaderV1.ts similarity index 92% rename from src/product/barcodeReader/barcodeReaderV1.ts rename to src/v1/product/barcodeReader/barcodeReaderV1.ts index 37aceb25..b5e9d022 100644 --- a/src/product/barcodeReader/barcodeReaderV1.ts +++ b/src/v1/product/barcodeReader/barcodeReaderV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { BarcodeReaderV1Document } from "./barcodeReaderV1Document.js"; /** diff --git a/src/product/barcodeReader/barcodeReaderV1Document.ts b/src/v1/product/barcodeReader/barcodeReaderV1Document.ts similarity index 92% rename from src/product/barcodeReader/barcodeReaderV1Document.ts rename to src/v1/product/barcodeReader/barcodeReaderV1Document.ts index b0d9f4d5..d37a647e 100644 --- a/src/product/barcodeReader/barcodeReaderV1Document.ts +++ b/src/v1/product/barcodeReader/barcodeReaderV1Document.ts @@ -2,8 +2,8 @@ import { Prediction, StringDict, cleanOutString, -} from "@/parsing/common/index.js"; -import { StringField } from "@/parsing/standard/index.js"; +} from "@/v1/parsing/common/index.js"; +import { StringField } from "@/v1/parsing/standard/index.js"; /** * Barcode Reader API version 1.0 document data. diff --git a/src/product/barcodeReader/index.ts b/src/v1/product/barcodeReader/index.ts similarity index 100% rename from src/product/barcodeReader/index.ts rename to src/v1/product/barcodeReader/index.ts diff --git a/src/cliProducts.ts b/src/v1/product/cliProducts.ts similarity index 97% rename from src/cliProducts.ts rename to src/v1/product/cliProducts.ts index 81e286f7..bae6c208 100644 --- a/src/cliProducts.ts +++ b/src/v1/product/cliProducts.ts @@ -4,8 +4,8 @@ // The Map's key is the command name as it will appear on the console. // -import * as product from "@/product/index.js"; -import { Inference, StringDict } from "@/parsing/common/index.js"; +import * as product from "@/v1/product/index.js"; +import { Inference, StringDict } from "@/v1/parsing/common/index.js"; export const COMMAND_GENERATED = "generated"; diff --git a/src/product/cropper/cropperV1.ts b/src/v1/product/cropper/cropperV1.ts similarity index 92% rename from src/product/cropper/cropperV1.ts rename to src/v1/product/cropper/cropperV1.ts index 9d950687..2383a6ce 100644 --- a/src/product/cropper/cropperV1.ts +++ b/src/v1/product/cropper/cropperV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { CropperV1Document } from "./cropperV1Document.js"; import { CropperV1Page } from "./cropperV1Page.js"; diff --git a/src/product/cropper/cropperV1Document.ts b/src/v1/product/cropper/cropperV1Document.ts similarity index 77% rename from src/product/cropper/cropperV1Document.ts rename to src/v1/product/cropper/cropperV1Document.ts index 1044739c..82342acd 100644 --- a/src/product/cropper/cropperV1Document.ts +++ b/src/v1/product/cropper/cropperV1Document.ts @@ -1,4 +1,4 @@ -import { Prediction } from "@/parsing/common/index.js"; +import { Prediction } from "@/v1/parsing/common/index.js"; /** diff --git a/src/product/cropper/cropperV1Page.ts b/src/v1/product/cropper/cropperV1Page.ts similarity index 84% rename from src/product/cropper/cropperV1Page.ts rename to src/v1/product/cropper/cropperV1Page.ts index 2ea83a3c..39b43e6e 100644 --- a/src/product/cropper/cropperV1Page.ts +++ b/src/v1/product/cropper/cropperV1Page.ts @@ -1,5 +1,5 @@ -import { StringDict, cleanOutString } from "@/parsing/common/index.js"; -import { PositionField } from "@/parsing/standard/index.js"; +import { StringDict, cleanOutString } from "@/v1/parsing/common/index.js"; +import { PositionField } from "@/v1/parsing/standard/index.js"; import { CropperV1Document } from "./cropperV1Document.js"; diff --git a/src/product/cropper/index.ts b/src/v1/product/cropper/index.ts similarity index 100% rename from src/product/cropper/index.ts rename to src/v1/product/cropper/index.ts diff --git a/src/product/driverLicense/driverLicenseV1.ts b/src/v1/product/driverLicense/driverLicenseV1.ts similarity index 92% rename from src/product/driverLicense/driverLicenseV1.ts rename to src/v1/product/driverLicense/driverLicenseV1.ts index f47b4b6d..e1c5d52e 100644 --- a/src/product/driverLicense/driverLicenseV1.ts +++ b/src/v1/product/driverLicense/driverLicenseV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { DriverLicenseV1Document } from "./driverLicenseV1Document.js"; /** diff --git a/src/product/driverLicense/driverLicenseV1Document.ts b/src/v1/product/driverLicense/driverLicenseV1Document.ts similarity index 96% rename from src/product/driverLicense/driverLicenseV1Document.ts rename to src/v1/product/driverLicense/driverLicenseV1Document.ts index 2620c08b..8a75b4f3 100644 --- a/src/product/driverLicense/driverLicenseV1Document.ts +++ b/src/v1/product/driverLicense/driverLicenseV1Document.ts @@ -2,8 +2,8 @@ import { Prediction, StringDict, cleanOutString, -} from "@/parsing/common/index.js"; -import { DateField, StringField } from "@/parsing/standard/index.js"; +} from "@/v1/parsing/common/index.js"; +import { DateField, StringField } from "@/v1/parsing/standard/index.js"; /** * Driver License API version 1.0 document data. diff --git a/src/product/driverLicense/index.ts b/src/v1/product/driverLicense/index.ts similarity index 100% rename from src/product/driverLicense/index.ts rename to src/v1/product/driverLicense/index.ts diff --git a/src/product/financialDocument/financialDocumentV1.ts b/src/v1/product/financialDocument/financialDocumentV1.ts similarity index 93% rename from src/product/financialDocument/financialDocumentV1.ts rename to src/v1/product/financialDocument/financialDocumentV1.ts index 0e9364b6..b8216510 100644 --- a/src/product/financialDocument/financialDocumentV1.ts +++ b/src/v1/product/financialDocument/financialDocumentV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { FinancialDocumentV1Document } from "./financialDocumentV1Document.js"; /** diff --git a/src/product/financialDocument/financialDocumentV1Document.ts b/src/v1/product/financialDocument/financialDocumentV1Document.ts similarity index 99% rename from src/product/financialDocument/financialDocumentV1Document.ts rename to src/v1/product/financialDocument/financialDocumentV1Document.ts index c4224779..91e0e88f 100644 --- a/src/product/financialDocument/financialDocumentV1Document.ts +++ b/src/v1/product/financialDocument/financialDocumentV1Document.ts @@ -2,7 +2,7 @@ import { Prediction, StringDict, cleanOutString,lineSeparator, -} from "@/parsing/common/index.js"; +} from "@/v1/parsing/common/index.js"; import { FinancialDocumentV1LineItem } from "./financialDocumentV1LineItem.js"; import { AddressField, @@ -14,7 +14,7 @@ import { PaymentDetailsField, StringField, Taxes, -} from "@/parsing/standard/index.js"; +} from "@/v1/parsing/standard/index.js"; /** * Financial Document API version 1.14 document data. diff --git a/src/product/financialDocument/financialDocumentV1LineItem.ts b/src/v1/product/financialDocument/financialDocumentV1LineItem.ts similarity index 97% rename from src/product/financialDocument/financialDocumentV1LineItem.ts rename to src/v1/product/financialDocument/financialDocumentV1LineItem.ts index 16c99c67..1ec5a2fc 100644 --- a/src/product/financialDocument/financialDocumentV1LineItem.ts +++ b/src/v1/product/financialDocument/financialDocumentV1LineItem.ts @@ -1,5 +1,5 @@ -import { cleanSpecialChars, floatToString } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars, floatToString } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/financialDocument/index.ts b/src/v1/product/financialDocument/index.ts similarity index 100% rename from src/product/financialDocument/index.ts rename to src/v1/product/financialDocument/index.ts diff --git a/src/product/fr/bankAccountDetails/bankAccountDetailsV1.ts b/src/v1/product/fr/bankAccountDetails/bankAccountDetailsV1.ts similarity index 93% rename from src/product/fr/bankAccountDetails/bankAccountDetailsV1.ts rename to src/v1/product/fr/bankAccountDetails/bankAccountDetailsV1.ts index cf017376..d38530b9 100644 --- a/src/product/fr/bankAccountDetails/bankAccountDetailsV1.ts +++ b/src/v1/product/fr/bankAccountDetails/bankAccountDetailsV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { BankAccountDetailsV1Document } from "./bankAccountDetailsV1Document.js"; /** diff --git a/src/product/fr/bankAccountDetails/bankAccountDetailsV1Document.ts b/src/v1/product/fr/bankAccountDetails/bankAccountDetailsV1Document.ts similarity index 91% rename from src/product/fr/bankAccountDetails/bankAccountDetailsV1Document.ts rename to src/v1/product/fr/bankAccountDetails/bankAccountDetailsV1Document.ts index 47a73b34..310af901 100644 --- a/src/product/fr/bankAccountDetails/bankAccountDetailsV1Document.ts +++ b/src/v1/product/fr/bankAccountDetails/bankAccountDetailsV1Document.ts @@ -2,8 +2,8 @@ import { Prediction, StringDict, cleanOutString, -} from "@/parsing/common/index.js"; -import { StringField } from "@/parsing/standard/index.js"; +} from "@/v1/parsing/common/index.js"; +import { StringField } from "@/v1/parsing/standard/index.js"; /** * Bank Account Details API version 1.0 document data. diff --git a/src/product/fr/bankAccountDetails/bankAccountDetailsV2.ts b/src/v1/product/fr/bankAccountDetails/bankAccountDetailsV2.ts similarity index 93% rename from src/product/fr/bankAccountDetails/bankAccountDetailsV2.ts rename to src/v1/product/fr/bankAccountDetails/bankAccountDetailsV2.ts index 8358ecdf..2eb6a721 100644 --- a/src/product/fr/bankAccountDetails/bankAccountDetailsV2.ts +++ b/src/v1/product/fr/bankAccountDetails/bankAccountDetailsV2.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { BankAccountDetailsV2Document } from "./bankAccountDetailsV2Document.js"; /** diff --git a/src/product/fr/bankAccountDetails/bankAccountDetailsV2Bban.ts b/src/v1/product/fr/bankAccountDetails/bankAccountDetailsV2Bban.ts similarity index 97% rename from src/product/fr/bankAccountDetails/bankAccountDetailsV2Bban.ts rename to src/v1/product/fr/bankAccountDetails/bankAccountDetailsV2Bban.ts index 0659716b..a2096a17 100644 --- a/src/product/fr/bankAccountDetails/bankAccountDetailsV2Bban.ts +++ b/src/v1/product/fr/bankAccountDetails/bankAccountDetailsV2Bban.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/bankAccountDetails/bankAccountDetailsV2Document.ts b/src/v1/product/fr/bankAccountDetails/bankAccountDetailsV2Document.ts similarity index 93% rename from src/product/fr/bankAccountDetails/bankAccountDetailsV2Document.ts rename to src/v1/product/fr/bankAccountDetails/bankAccountDetailsV2Document.ts index d26ba0d8..c96053be 100644 --- a/src/product/fr/bankAccountDetails/bankAccountDetailsV2Document.ts +++ b/src/v1/product/fr/bankAccountDetails/bankAccountDetailsV2Document.ts @@ -2,9 +2,9 @@ import { Prediction, StringDict, cleanOutString, -} from "@/parsing/common/index.js"; +} from "@/v1/parsing/common/index.js"; import { BankAccountDetailsV2Bban } from "./bankAccountDetailsV2Bban.js"; -import { StringField } from "@/parsing/standard/index.js"; +import { StringField } from "@/v1/parsing/standard/index.js"; /** * Bank Account Details API version 2.0 document data. diff --git a/src/product/fr/bankAccountDetails/index.ts b/src/v1/product/fr/bankAccountDetails/index.ts similarity index 100% rename from src/product/fr/bankAccountDetails/index.ts rename to src/v1/product/fr/bankAccountDetails/index.ts diff --git a/src/product/fr/carteGrise/carteGriseV1.ts b/src/v1/product/fr/carteGrise/carteGriseV1.ts similarity index 92% rename from src/product/fr/carteGrise/carteGriseV1.ts rename to src/v1/product/fr/carteGrise/carteGriseV1.ts index 29d6425b..b3b24051 100644 --- a/src/product/fr/carteGrise/carteGriseV1.ts +++ b/src/v1/product/fr/carteGrise/carteGriseV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { CarteGriseV1Document } from "./carteGriseV1Document.js"; /** diff --git a/src/product/fr/carteGrise/carteGriseV1Document.ts b/src/v1/product/fr/carteGrise/carteGriseV1Document.ts similarity index 98% rename from src/product/fr/carteGrise/carteGriseV1Document.ts rename to src/v1/product/fr/carteGrise/carteGriseV1Document.ts index 0b3e9683..421079ff 100644 --- a/src/product/fr/carteGrise/carteGriseV1Document.ts +++ b/src/v1/product/fr/carteGrise/carteGriseV1Document.ts @@ -2,8 +2,8 @@ import { Prediction, StringDict, cleanOutString, -} from "@/parsing/common/index.js"; -import { DateField, StringField } from "@/parsing/standard/index.js"; +} from "@/v1/parsing/common/index.js"; +import { DateField, StringField } from "@/v1/parsing/standard/index.js"; /** * Carte Grise API version 1.1 document data. diff --git a/src/product/fr/carteGrise/index.ts b/src/v1/product/fr/carteGrise/index.ts similarity index 100% rename from src/product/fr/carteGrise/index.ts rename to src/v1/product/fr/carteGrise/index.ts diff --git a/src/product/fr/energyBill/energyBillV1.ts b/src/v1/product/fr/energyBill/energyBillV1.ts similarity index 92% rename from src/product/fr/energyBill/energyBillV1.ts rename to src/v1/product/fr/energyBill/energyBillV1.ts index 2370f834..aa65f886 100644 --- a/src/product/fr/energyBill/energyBillV1.ts +++ b/src/v1/product/fr/energyBill/energyBillV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { EnergyBillV1Document } from "./energyBillV1Document.js"; /** diff --git a/src/product/fr/energyBill/energyBillV1Document.ts b/src/v1/product/fr/energyBill/energyBillV1Document.ts similarity index 98% rename from src/product/fr/energyBill/energyBillV1Document.ts rename to src/v1/product/fr/energyBill/energyBillV1Document.ts index e2c9a1cb..3431c38b 100644 --- a/src/product/fr/energyBill/energyBillV1Document.ts +++ b/src/v1/product/fr/energyBill/energyBillV1Document.ts @@ -2,7 +2,7 @@ import { Prediction, StringDict, cleanOutString,lineSeparator, -} from "@/parsing/common/index.js"; +} from "@/v1/parsing/common/index.js"; import { EnergyBillV1EnergySupplier } from "./energyBillV1EnergySupplier.js"; import { EnergyBillV1EnergyConsumer } from "./energyBillV1EnergyConsumer.js"; import { EnergyBillV1Subscription } from "./energyBillV1Subscription.js"; @@ -13,7 +13,7 @@ import { AmountField, DateField, StringField, -} from "@/parsing/standard/index.js"; +} from "@/v1/parsing/standard/index.js"; /** * Energy Bill API version 1.2 document data. diff --git a/src/product/fr/energyBill/energyBillV1EnergyConsumer.ts b/src/v1/product/fr/energyBill/energyBillV1EnergyConsumer.ts similarity index 96% rename from src/product/fr/energyBill/energyBillV1EnergyConsumer.ts rename to src/v1/product/fr/energyBill/energyBillV1EnergyConsumer.ts index 24e934ba..f20acbb8 100644 --- a/src/product/fr/energyBill/energyBillV1EnergyConsumer.ts +++ b/src/v1/product/fr/energyBill/energyBillV1EnergyConsumer.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/energyBill/energyBillV1EnergySupplier.ts b/src/v1/product/fr/energyBill/energyBillV1EnergySupplier.ts similarity index 96% rename from src/product/fr/energyBill/energyBillV1EnergySupplier.ts rename to src/v1/product/fr/energyBill/energyBillV1EnergySupplier.ts index 2b400e71..76961d9f 100644 --- a/src/product/fr/energyBill/energyBillV1EnergySupplier.ts +++ b/src/v1/product/fr/energyBill/energyBillV1EnergySupplier.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/energyBill/energyBillV1EnergyUsage.ts b/src/v1/product/fr/energyBill/energyBillV1EnergyUsage.ts similarity index 97% rename from src/product/fr/energyBill/energyBillV1EnergyUsage.ts rename to src/v1/product/fr/energyBill/energyBillV1EnergyUsage.ts index afaf10a4..f87d67fd 100644 --- a/src/product/fr/energyBill/energyBillV1EnergyUsage.ts +++ b/src/v1/product/fr/energyBill/energyBillV1EnergyUsage.ts @@ -1,5 +1,5 @@ -import { cleanSpecialChars, floatToString } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars, floatToString } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/energyBill/energyBillV1MeterDetail.ts b/src/v1/product/fr/energyBill/energyBillV1MeterDetail.ts similarity index 96% rename from src/product/fr/energyBill/energyBillV1MeterDetail.ts rename to src/v1/product/fr/energyBill/energyBillV1MeterDetail.ts index 2458b68a..50f4ec4a 100644 --- a/src/product/fr/energyBill/energyBillV1MeterDetail.ts +++ b/src/v1/product/fr/energyBill/energyBillV1MeterDetail.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/energyBill/energyBillV1Subscription.ts b/src/v1/product/fr/energyBill/energyBillV1Subscription.ts similarity index 96% rename from src/product/fr/energyBill/energyBillV1Subscription.ts rename to src/v1/product/fr/energyBill/energyBillV1Subscription.ts index 7161ddd2..631c5c0f 100644 --- a/src/product/fr/energyBill/energyBillV1Subscription.ts +++ b/src/v1/product/fr/energyBill/energyBillV1Subscription.ts @@ -1,5 +1,5 @@ -import { cleanSpecialChars, floatToString } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars, floatToString } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/energyBill/energyBillV1TaxesAndContribution.ts b/src/v1/product/fr/energyBill/energyBillV1TaxesAndContribution.ts similarity index 96% rename from src/product/fr/energyBill/energyBillV1TaxesAndContribution.ts rename to src/v1/product/fr/energyBill/energyBillV1TaxesAndContribution.ts index ce6e0854..f6c8393b 100644 --- a/src/product/fr/energyBill/energyBillV1TaxesAndContribution.ts +++ b/src/v1/product/fr/energyBill/energyBillV1TaxesAndContribution.ts @@ -1,5 +1,5 @@ -import { cleanSpecialChars, floatToString } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars, floatToString } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/energyBill/index.ts b/src/v1/product/fr/energyBill/index.ts similarity index 100% rename from src/product/fr/energyBill/index.ts rename to src/v1/product/fr/energyBill/index.ts diff --git a/src/product/fr/healthCard/healthCardV1.ts b/src/v1/product/fr/healthCard/healthCardV1.ts similarity index 92% rename from src/product/fr/healthCard/healthCardV1.ts rename to src/v1/product/fr/healthCard/healthCardV1.ts index cf9651ed..e89f8840 100644 --- a/src/product/fr/healthCard/healthCardV1.ts +++ b/src/v1/product/fr/healthCard/healthCardV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { HealthCardV1Document } from "./healthCardV1Document.js"; /** diff --git a/src/product/fr/healthCard/healthCardV1Document.ts b/src/v1/product/fr/healthCard/healthCardV1Document.ts similarity index 93% rename from src/product/fr/healthCard/healthCardV1Document.ts rename to src/v1/product/fr/healthCard/healthCardV1Document.ts index a9f4b475..17f0a549 100644 --- a/src/product/fr/healthCard/healthCardV1Document.ts +++ b/src/v1/product/fr/healthCard/healthCardV1Document.ts @@ -2,8 +2,8 @@ import { Prediction, StringDict, cleanOutString, -} from "@/parsing/common/index.js"; -import { DateField, StringField } from "@/parsing/standard/index.js"; +} from "@/v1/parsing/common/index.js"; +import { DateField, StringField } from "@/v1/parsing/standard/index.js"; /** * Health Card API version 1.0 document data. diff --git a/src/product/fr/healthCard/index.ts b/src/v1/product/fr/healthCard/index.ts similarity index 100% rename from src/product/fr/healthCard/index.ts rename to src/v1/product/fr/healthCard/index.ts diff --git a/src/product/fr/idCard/idCardV1.ts b/src/v1/product/fr/idCard/idCardV1.ts similarity index 92% rename from src/product/fr/idCard/idCardV1.ts rename to src/v1/product/fr/idCard/idCardV1.ts index 1c5385b0..ef65fcd0 100644 --- a/src/product/fr/idCard/idCardV1.ts +++ b/src/v1/product/fr/idCard/idCardV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { IdCardV1Document } from "./idCardV1Document.js"; import { IdCardV1Page } from "./idCardV1Page.js"; diff --git a/src/product/fr/idCard/idCardV1Document.ts b/src/v1/product/fr/idCard/idCardV1Document.ts similarity index 96% rename from src/product/fr/idCard/idCardV1Document.ts rename to src/v1/product/fr/idCard/idCardV1Document.ts index e4a411e3..a2ab1e3e 100644 --- a/src/product/fr/idCard/idCardV1Document.ts +++ b/src/v1/product/fr/idCard/idCardV1Document.ts @@ -2,8 +2,8 @@ import { Prediction, StringDict, cleanOutString, -} from "@/parsing/common/index.js"; -import { DateField, StringField } from "@/parsing/standard/index.js"; +} from "@/v1/parsing/common/index.js"; +import { DateField, StringField } from "@/v1/parsing/standard/index.js"; /** * Carte Nationale d'Identité API version 1.1 document data. diff --git a/src/product/fr/idCard/idCardV1Page.ts b/src/v1/product/fr/idCard/idCardV1Page.ts similarity index 81% rename from src/product/fr/idCard/idCardV1Page.ts rename to src/v1/product/fr/idCard/idCardV1Page.ts index 25ecc5be..2f12718e 100644 --- a/src/product/fr/idCard/idCardV1Page.ts +++ b/src/v1/product/fr/idCard/idCardV1Page.ts @@ -1,5 +1,5 @@ -import { StringDict, cleanOutString } from "@/parsing/common/index.js"; -import { ClassificationField } from "@/parsing/standard/index.js"; +import { StringDict, cleanOutString } from "@/v1/parsing/common/index.js"; +import { ClassificationField } from "@/v1/parsing/standard/index.js"; import { IdCardV1Document } from "./idCardV1Document.js"; /** diff --git a/src/product/fr/idCard/idCardV2.ts b/src/v1/product/fr/idCard/idCardV2.ts similarity index 92% rename from src/product/fr/idCard/idCardV2.ts rename to src/v1/product/fr/idCard/idCardV2.ts index 6e8b0319..3ebfdfe8 100644 --- a/src/product/fr/idCard/idCardV2.ts +++ b/src/v1/product/fr/idCard/idCardV2.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { IdCardV2Document } from "./idCardV2Document.js"; import { IdCardV2Page } from "./idCardV2Page.js"; diff --git a/src/product/fr/idCard/idCardV2Document.ts b/src/v1/product/fr/idCard/idCardV2Document.ts similarity index 97% rename from src/product/fr/idCard/idCardV2Document.ts rename to src/v1/product/fr/idCard/idCardV2Document.ts index 0ccf3ec8..df8e3c6d 100644 --- a/src/product/fr/idCard/idCardV2Document.ts +++ b/src/v1/product/fr/idCard/idCardV2Document.ts @@ -2,8 +2,8 @@ import { Prediction, StringDict, cleanOutString, -} from "@/parsing/common/index.js"; -import { DateField, StringField } from "@/parsing/standard/index.js"; +} from "@/v1/parsing/common/index.js"; +import { DateField, StringField } from "@/v1/parsing/standard/index.js"; /** * Carte Nationale d'Identité API version 2.0 document data. diff --git a/src/product/fr/idCard/idCardV2Page.ts b/src/v1/product/fr/idCard/idCardV2Page.ts similarity index 85% rename from src/product/fr/idCard/idCardV2Page.ts rename to src/v1/product/fr/idCard/idCardV2Page.ts index cd0ec833..5ad0bcb5 100644 --- a/src/product/fr/idCard/idCardV2Page.ts +++ b/src/v1/product/fr/idCard/idCardV2Page.ts @@ -1,5 +1,5 @@ -import { StringDict, cleanOutString } from "@/parsing/common/index.js"; -import { ClassificationField } from "@/parsing/standard/index.js"; +import { StringDict, cleanOutString } from "@/v1/parsing/common/index.js"; +import { ClassificationField } from "@/v1/parsing/standard/index.js"; import { IdCardV2Document } from "./idCardV2Document.js"; /** diff --git a/src/product/fr/idCard/index.ts b/src/v1/product/fr/idCard/index.ts similarity index 100% rename from src/product/fr/idCard/index.ts rename to src/v1/product/fr/idCard/index.ts diff --git a/src/product/fr/index.ts b/src/v1/product/fr/index.ts similarity index 58% rename from src/product/fr/index.ts rename to src/v1/product/fr/index.ts index 2d9f4949..da4a208c 100644 --- a/src/product/fr/index.ts +++ b/src/v1/product/fr/index.ts @@ -7,3 +7,10 @@ export { IdCardV2 } from "./idCard/index.js"; export { PayslipV2 } from "./payslip/index.js"; export { PayslipV3 } from "./payslip/index.js"; export { CarteGriseV1 } from "./carteGrise/index.js"; + +// not sure if we want to export these -- advanced users can import them directly +export * as bankAccountDetails from "./bankAccountDetails/index.js"; +export * as energyBill from "./energyBill/index.js"; +export * as healthCard from "./healthCard/index.js"; +export * as idCard from "./idCard/index.js"; +export * as payslip from "./payslip/index.js"; diff --git a/src/product/fr/payslip/index.ts b/src/v1/product/fr/payslip/index.ts similarity index 100% rename from src/product/fr/payslip/index.ts rename to src/v1/product/fr/payslip/index.ts diff --git a/src/product/fr/payslip/payslipV2.ts b/src/v1/product/fr/payslip/payslipV2.ts similarity index 92% rename from src/product/fr/payslip/payslipV2.ts rename to src/v1/product/fr/payslip/payslipV2.ts index 2ae4d0f0..c2a56747 100644 --- a/src/product/fr/payslip/payslipV2.ts +++ b/src/v1/product/fr/payslip/payslipV2.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { PayslipV2Document } from "./payslipV2Document.js"; /** diff --git a/src/product/fr/payslip/payslipV2BankAccountDetail.ts b/src/v1/product/fr/payslip/payslipV2BankAccountDetail.ts similarity index 96% rename from src/product/fr/payslip/payslipV2BankAccountDetail.ts rename to src/v1/product/fr/payslip/payslipV2BankAccountDetail.ts index 0fba12d1..2242d3ba 100644 --- a/src/product/fr/payslip/payslipV2BankAccountDetail.ts +++ b/src/v1/product/fr/payslip/payslipV2BankAccountDetail.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV2Document.ts b/src/v1/product/fr/payslip/payslipV2Document.ts similarity index 98% rename from src/product/fr/payslip/payslipV2Document.ts rename to src/v1/product/fr/payslip/payslipV2Document.ts index 3750c764..06f27df6 100644 --- a/src/product/fr/payslip/payslipV2Document.ts +++ b/src/v1/product/fr/payslip/payslipV2Document.ts @@ -2,7 +2,7 @@ import { Prediction, StringDict, cleanOutString,lineSeparator, -} from "@/parsing/common/index.js"; +} from "@/v1/parsing/common/index.js"; import { PayslipV2Employee } from "./payslipV2Employee.js"; import { PayslipV2Employer } from "./payslipV2Employer.js"; import { PayslipV2BankAccountDetail } from "./payslipV2BankAccountDetail.js"; diff --git a/src/product/fr/payslip/payslipV2Employee.ts b/src/v1/product/fr/payslip/payslipV2Employee.ts similarity index 98% rename from src/product/fr/payslip/payslipV2Employee.ts rename to src/v1/product/fr/payslip/payslipV2Employee.ts index 12fe4384..c4838723 100644 --- a/src/product/fr/payslip/payslipV2Employee.ts +++ b/src/v1/product/fr/payslip/payslipV2Employee.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV2Employer.ts b/src/v1/product/fr/payslip/payslipV2Employer.ts similarity index 97% rename from src/product/fr/payslip/payslipV2Employer.ts rename to src/v1/product/fr/payslip/payslipV2Employer.ts index de778ac2..69e9d580 100644 --- a/src/product/fr/payslip/payslipV2Employer.ts +++ b/src/v1/product/fr/payslip/payslipV2Employer.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV2Employment.ts b/src/v1/product/fr/payslip/payslipV2Employment.ts similarity index 96% rename from src/product/fr/payslip/payslipV2Employment.ts rename to src/v1/product/fr/payslip/payslipV2Employment.ts index fd2a656a..1f2b0fe1 100644 --- a/src/product/fr/payslip/payslipV2Employment.ts +++ b/src/v1/product/fr/payslip/payslipV2Employment.ts @@ -1,5 +1,5 @@ -import { floatToString } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { floatToString } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV2PayDetail.ts b/src/v1/product/fr/payslip/payslipV2PayDetail.ts similarity index 98% rename from src/product/fr/payslip/payslipV2PayDetail.ts rename to src/v1/product/fr/payslip/payslipV2PayDetail.ts index 6012131b..56add1ef 100644 --- a/src/product/fr/payslip/payslipV2PayDetail.ts +++ b/src/v1/product/fr/payslip/payslipV2PayDetail.ts @@ -1,5 +1,5 @@ -import { floatToString } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { floatToString } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV2PayPeriod.ts b/src/v1/product/fr/payslip/payslipV2PayPeriod.ts similarity index 97% rename from src/product/fr/payslip/payslipV2PayPeriod.ts rename to src/v1/product/fr/payslip/payslipV2PayPeriod.ts index 1e1eb093..602946c6 100644 --- a/src/product/fr/payslip/payslipV2PayPeriod.ts +++ b/src/v1/product/fr/payslip/payslipV2PayPeriod.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV2Pto.ts b/src/v1/product/fr/payslip/payslipV2Pto.ts similarity index 96% rename from src/product/fr/payslip/payslipV2Pto.ts rename to src/v1/product/fr/payslip/payslipV2Pto.ts index b6a41d2c..d31fd584 100644 --- a/src/product/fr/payslip/payslipV2Pto.ts +++ b/src/v1/product/fr/payslip/payslipV2Pto.ts @@ -1,5 +1,5 @@ -import { floatToString } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { floatToString } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV2SalaryDetail.ts b/src/v1/product/fr/payslip/payslipV2SalaryDetail.ts similarity index 95% rename from src/product/fr/payslip/payslipV2SalaryDetail.ts rename to src/v1/product/fr/payslip/payslipV2SalaryDetail.ts index c15a29eb..5a231117 100644 --- a/src/product/fr/payslip/payslipV2SalaryDetail.ts +++ b/src/v1/product/fr/payslip/payslipV2SalaryDetail.ts @@ -1,5 +1,5 @@ -import { cleanSpecialChars, floatToString } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars, floatToString } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV3.ts b/src/v1/product/fr/payslip/payslipV3.ts similarity index 92% rename from src/product/fr/payslip/payslipV3.ts rename to src/v1/product/fr/payslip/payslipV3.ts index 04bc2af0..4a72be11 100644 --- a/src/product/fr/payslip/payslipV3.ts +++ b/src/v1/product/fr/payslip/payslipV3.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { PayslipV3Document } from "./payslipV3Document.js"; /** diff --git a/src/product/fr/payslip/payslipV3BankAccountDetail.ts b/src/v1/product/fr/payslip/payslipV3BankAccountDetail.ts similarity index 96% rename from src/product/fr/payslip/payslipV3BankAccountDetail.ts rename to src/v1/product/fr/payslip/payslipV3BankAccountDetail.ts index e79fa690..12c902ef 100644 --- a/src/product/fr/payslip/payslipV3BankAccountDetail.ts +++ b/src/v1/product/fr/payslip/payslipV3BankAccountDetail.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV3Document.ts b/src/v1/product/fr/payslip/payslipV3Document.ts similarity index 99% rename from src/product/fr/payslip/payslipV3Document.ts rename to src/v1/product/fr/payslip/payslipV3Document.ts index cae6d91c..babf3276 100644 --- a/src/product/fr/payslip/payslipV3Document.ts +++ b/src/v1/product/fr/payslip/payslipV3Document.ts @@ -2,7 +2,7 @@ import { Prediction, StringDict, cleanOutString,lineSeparator, -} from "@/parsing/common/index.js"; +} from "@/v1/parsing/common/index.js"; import { PayslipV3PayPeriod } from "./payslipV3PayPeriod.js"; import { PayslipV3Employee } from "./payslipV3Employee.js"; import { PayslipV3Employer } from "./payslipV3Employer.js"; diff --git a/src/product/fr/payslip/payslipV3Employee.ts b/src/v1/product/fr/payslip/payslipV3Employee.ts similarity index 98% rename from src/product/fr/payslip/payslipV3Employee.ts rename to src/v1/product/fr/payslip/payslipV3Employee.ts index 7037503d..284930d8 100644 --- a/src/product/fr/payslip/payslipV3Employee.ts +++ b/src/v1/product/fr/payslip/payslipV3Employee.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV3Employer.ts b/src/v1/product/fr/payslip/payslipV3Employer.ts similarity index 97% rename from src/product/fr/payslip/payslipV3Employer.ts rename to src/v1/product/fr/payslip/payslipV3Employer.ts index 8d5e551d..b682f3e5 100644 --- a/src/product/fr/payslip/payslipV3Employer.ts +++ b/src/v1/product/fr/payslip/payslipV3Employer.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV3Employment.ts b/src/v1/product/fr/payslip/payslipV3Employment.ts similarity index 98% rename from src/product/fr/payslip/payslipV3Employment.ts rename to src/v1/product/fr/payslip/payslipV3Employment.ts index 09230310..5fd91d45 100644 --- a/src/product/fr/payslip/payslipV3Employment.ts +++ b/src/v1/product/fr/payslip/payslipV3Employment.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV3PaidTimeOff.ts b/src/v1/product/fr/payslip/payslipV3PaidTimeOff.ts similarity index 96% rename from src/product/fr/payslip/payslipV3PaidTimeOff.ts rename to src/v1/product/fr/payslip/payslipV3PaidTimeOff.ts index 82a49910..c537e820 100644 --- a/src/product/fr/payslip/payslipV3PaidTimeOff.ts +++ b/src/v1/product/fr/payslip/payslipV3PaidTimeOff.ts @@ -1,5 +1,5 @@ -import { cleanSpecialChars, floatToString } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars, floatToString } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV3PayDetail.ts b/src/v1/product/fr/payslip/payslipV3PayDetail.ts similarity index 98% rename from src/product/fr/payslip/payslipV3PayDetail.ts rename to src/v1/product/fr/payslip/payslipV3PayDetail.ts index 1e3f5777..2d1d66c4 100644 --- a/src/product/fr/payslip/payslipV3PayDetail.ts +++ b/src/v1/product/fr/payslip/payslipV3PayDetail.ts @@ -1,5 +1,5 @@ -import { floatToString } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { floatToString } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV3PayPeriod.ts b/src/v1/product/fr/payslip/payslipV3PayPeriod.ts similarity index 97% rename from src/product/fr/payslip/payslipV3PayPeriod.ts rename to src/v1/product/fr/payslip/payslipV3PayPeriod.ts index 0feb3465..950af3e4 100644 --- a/src/product/fr/payslip/payslipV3PayPeriod.ts +++ b/src/v1/product/fr/payslip/payslipV3PayPeriod.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/fr/payslip/payslipV3SalaryDetail.ts b/src/v1/product/fr/payslip/payslipV3SalaryDetail.ts similarity index 96% rename from src/product/fr/payslip/payslipV3SalaryDetail.ts rename to src/v1/product/fr/payslip/payslipV3SalaryDetail.ts index 37927c77..bbc0e948 100644 --- a/src/product/fr/payslip/payslipV3SalaryDetail.ts +++ b/src/v1/product/fr/payslip/payslipV3SalaryDetail.ts @@ -1,5 +1,5 @@ -import { cleanSpecialChars, floatToString } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars, floatToString } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/generated/generatedV1.ts b/src/v1/product/generated/generatedV1.ts similarity index 92% rename from src/product/generated/generatedV1.ts rename to src/v1/product/generated/generatedV1.ts index 0af4a461..4e3cb522 100644 --- a/src/product/generated/generatedV1.ts +++ b/src/v1/product/generated/generatedV1.ts @@ -1,4 +1,4 @@ -import { Inference, Page, StringDict } from "@/parsing/common/index.js"; +import { Inference, Page, StringDict } from "@/v1/parsing/common/index.js"; import { GeneratedV1Document } from "./generatedV1Document.js"; import { GeneratedV1Page } from "./generatedV1Page.js"; diff --git a/src/product/generated/generatedV1Document.ts b/src/v1/product/generated/generatedV1Document.ts similarity index 86% rename from src/product/generated/generatedV1Document.ts rename to src/v1/product/generated/generatedV1Document.ts index 80a00bff..028d7d17 100644 --- a/src/product/generated/generatedV1Document.ts +++ b/src/v1/product/generated/generatedV1Document.ts @@ -1,6 +1,6 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; -import { GeneratedListField, GeneratedObjectField, isGeneratedObject } from "@/parsing/generated/index.js"; -import { StringField } from "@/parsing/standard/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; +import { GeneratedListField, GeneratedObjectField, isGeneratedObject } from "@/v1/parsing/generated/index.js"; +import { StringField } from "@/v1/parsing/standard/index.js"; import { GeneratedV1Prediction } from "./generatedV1Prediction.js"; /** diff --git a/src/product/generated/generatedV1Page.ts b/src/v1/product/generated/generatedV1Page.ts similarity index 87% rename from src/product/generated/generatedV1Page.ts rename to src/v1/product/generated/generatedV1Page.ts index 77c1ad0a..8116307c 100644 --- a/src/product/generated/generatedV1Page.ts +++ b/src/v1/product/generated/generatedV1Page.ts @@ -1,6 +1,6 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; -import { GeneratedListField, GeneratedObjectField, isGeneratedObject } from "@/parsing/generated/index.js"; -import { StringField } from "@/parsing/standard/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; +import { GeneratedListField, GeneratedObjectField, isGeneratedObject } from "@/v1/parsing/generated/index.js"; +import { StringField } from "@/v1/parsing/standard/index.js"; import { GeneratedV1Prediction } from "./generatedV1Prediction.js"; /** diff --git a/src/product/generated/generatedV1Prediction.ts b/src/v1/product/generated/generatedV1Prediction.ts similarity index 91% rename from src/product/generated/generatedV1Prediction.ts rename to src/v1/product/generated/generatedV1Prediction.ts index 876f5df7..925bd503 100644 --- a/src/product/generated/generatedV1Prediction.ts +++ b/src/v1/product/generated/generatedV1Prediction.ts @@ -1,6 +1,6 @@ -import { Prediction, cleanOutString } from "@/parsing/common/index.js"; -import { GeneratedListField, GeneratedObjectField } from "@/parsing/generated/index.js"; -import { StringField } from "@/parsing/standard/index.js"; +import { Prediction, cleanOutString } from "@/v1/parsing/common/index.js"; +import { GeneratedListField, GeneratedObjectField } from "@/v1/parsing/generated/index.js"; +import { StringField } from "@/v1/parsing/standard/index.js"; export class GeneratedV1Prediction implements Prediction { diff --git a/src/product/generated/index.ts b/src/v1/product/generated/index.ts similarity index 100% rename from src/product/generated/index.ts rename to src/v1/product/generated/index.ts diff --git a/src/v1/product/ind/index.ts b/src/v1/product/ind/index.ts new file mode 100644 index 00000000..43cc766a --- /dev/null +++ b/src/v1/product/ind/index.ts @@ -0,0 +1,4 @@ +export { IndianPassportV1 } from "./indianPassport/index.js"; + +// not sure if we want to export these -- advanced users can import them directly +export * as indianPassport from "./indianPassport/index.js"; diff --git a/src/product/ind/indianPassport/index.ts b/src/v1/product/ind/indianPassport/index.ts similarity index 100% rename from src/product/ind/indianPassport/index.ts rename to src/v1/product/ind/indianPassport/index.ts diff --git a/src/product/ind/indianPassport/indianPassportV1.ts b/src/v1/product/ind/indianPassport/indianPassportV1.ts similarity index 92% rename from src/product/ind/indianPassport/indianPassportV1.ts rename to src/v1/product/ind/indianPassport/indianPassportV1.ts index 1bba02fb..a1d73c05 100644 --- a/src/product/ind/indianPassport/indianPassportV1.ts +++ b/src/v1/product/ind/indianPassport/indianPassportV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { IndianPassportV1Document } from "./indianPassportV1Document.js"; /** diff --git a/src/product/ind/indianPassport/indianPassportV1Document.ts b/src/v1/product/ind/indianPassport/indianPassportV1Document.ts similarity index 98% rename from src/product/ind/indianPassport/indianPassportV1Document.ts rename to src/v1/product/ind/indianPassport/indianPassportV1Document.ts index 97f9ca5a..b5559503 100644 --- a/src/product/ind/indianPassport/indianPassportV1Document.ts +++ b/src/v1/product/ind/indianPassport/indianPassportV1Document.ts @@ -2,12 +2,12 @@ import { Prediction, StringDict, cleanOutString, -} from "@/parsing/common/index.js"; +} from "@/v1/parsing/common/index.js"; import { ClassificationField, DateField, StringField, -} from "@/parsing/standard/index.js"; +} from "@/v1/parsing/standard/index.js"; /** * Passport - India API version 1.2 document data. diff --git a/src/product/index.ts b/src/v1/product/index.ts similarity index 51% rename from src/product/index.ts rename to src/v1/product/index.ts index faf6b179..ac80c597 100644 --- a/src/product/index.ts +++ b/src/v1/product/index.ts @@ -13,3 +13,17 @@ export { MultiReceiptsDetectorV1 } from "./multiReceiptsDetector/index.js"; export { PassportV1 } from "./passport/index.js"; export { ReceiptV5 } from "./receipt/index.js"; export { ResumeV1 } from "./resume/index.js"; + +// not sure if we want to export these -- advanced users can import them directly +export * as barcodeReader from "./barcodeReader/index.js"; +export * as cropper from "./cropper/index.js"; +export * as driverLicense from "./driverLicense/index.js"; +export * as financialDocument from "./financialDocument/index.js"; +export * as generated from "./generated/index.js"; +export * as internationalId from "./internationalId/index.js"; +export * as invoice from "./invoice/index.js"; +export * as invoiceSplitter from "./invoiceSplitter/index.js"; +export * as multiReceiptsDetector from "./multiReceiptsDetector/index.js"; +export * as passport from "./passport/index.js"; +export * as receipt from "./receipt/index.js"; +export * as resume from "./resume/index.js"; diff --git a/src/product/internationalId/index.ts b/src/v1/product/internationalId/index.ts similarity index 100% rename from src/product/internationalId/index.ts rename to src/v1/product/internationalId/index.ts diff --git a/src/product/internationalId/internationalIdV2.ts b/src/v1/product/internationalId/internationalIdV2.ts similarity index 93% rename from src/product/internationalId/internationalIdV2.ts rename to src/v1/product/internationalId/internationalIdV2.ts index a3941911..05dc1512 100644 --- a/src/product/internationalId/internationalIdV2.ts +++ b/src/v1/product/internationalId/internationalIdV2.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { InternationalIdV2Document } from "./internationalIdV2Document.js"; /** diff --git a/src/product/internationalId/internationalIdV2Document.ts b/src/v1/product/internationalId/internationalIdV2Document.ts similarity index 98% rename from src/product/internationalId/internationalIdV2Document.ts rename to src/v1/product/internationalId/internationalIdV2Document.ts index f9791400..531d41cd 100644 --- a/src/product/internationalId/internationalIdV2Document.ts +++ b/src/v1/product/internationalId/internationalIdV2Document.ts @@ -2,12 +2,12 @@ import { Prediction, StringDict, cleanOutString, -} from "@/parsing/common/index.js"; +} from "@/v1/parsing/common/index.js"; import { ClassificationField, DateField, StringField, -} from "@/parsing/standard/index.js"; +} from "@/v1/parsing/standard/index.js"; /** * International ID API version 2.2 document data. diff --git a/src/product/invoice/index.ts b/src/v1/product/invoice/index.ts similarity index 100% rename from src/product/invoice/index.ts rename to src/v1/product/invoice/index.ts diff --git a/src/product/invoice/invoiceV4.ts b/src/v1/product/invoice/invoiceV4.ts similarity index 92% rename from src/product/invoice/invoiceV4.ts rename to src/v1/product/invoice/invoiceV4.ts index fd5e6c39..2d3cb4df 100644 --- a/src/product/invoice/invoiceV4.ts +++ b/src/v1/product/invoice/invoiceV4.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { InvoiceV4Document } from "./invoiceV4Document.js"; /** diff --git a/src/product/invoice/invoiceV4Document.ts b/src/v1/product/invoice/invoiceV4Document.ts similarity index 99% rename from src/product/invoice/invoiceV4Document.ts rename to src/v1/product/invoice/invoiceV4Document.ts index 55b7e4e8..4232f33f 100644 --- a/src/product/invoice/invoiceV4Document.ts +++ b/src/v1/product/invoice/invoiceV4Document.ts @@ -2,7 +2,7 @@ import { Prediction, StringDict, cleanOutString,lineSeparator, -} from "@/parsing/common/index.js"; +} from "@/v1/parsing/common/index.js"; import { InvoiceV4LineItem } from "./invoiceV4LineItem.js"; import { AddressField, @@ -14,7 +14,7 @@ import { PaymentDetailsField, StringField, Taxes, -} from "@/parsing/standard/index.js"; +} from "@/v1/parsing/standard/index.js"; /** * Invoice API version 4.11 document data. diff --git a/src/product/invoice/invoiceV4LineItem.ts b/src/v1/product/invoice/invoiceV4LineItem.ts similarity index 97% rename from src/product/invoice/invoiceV4LineItem.ts rename to src/v1/product/invoice/invoiceV4LineItem.ts index 5cebf2a6..0dd06f33 100644 --- a/src/product/invoice/invoiceV4LineItem.ts +++ b/src/v1/product/invoice/invoiceV4LineItem.ts @@ -1,5 +1,5 @@ -import { cleanSpecialChars, floatToString } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars, floatToString } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/invoiceSplitter/index.ts b/src/v1/product/invoiceSplitter/index.ts similarity index 100% rename from src/product/invoiceSplitter/index.ts rename to src/v1/product/invoiceSplitter/index.ts diff --git a/src/product/invoiceSplitter/invoiceSplitterV1.ts b/src/v1/product/invoiceSplitter/invoiceSplitterV1.ts similarity index 93% rename from src/product/invoiceSplitter/invoiceSplitterV1.ts rename to src/v1/product/invoiceSplitter/invoiceSplitterV1.ts index 60e09985..97080e19 100644 --- a/src/product/invoiceSplitter/invoiceSplitterV1.ts +++ b/src/v1/product/invoiceSplitter/invoiceSplitterV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { InvoiceSplitterV1Document } from "./invoiceSplitterV1Document.js"; /** diff --git a/src/product/invoiceSplitter/invoiceSplitterV1Document.ts b/src/v1/product/invoiceSplitter/invoiceSplitterV1Document.ts similarity index 97% rename from src/product/invoiceSplitter/invoiceSplitterV1Document.ts rename to src/v1/product/invoiceSplitter/invoiceSplitterV1Document.ts index d9374c82..a06ecec2 100644 --- a/src/product/invoiceSplitter/invoiceSplitterV1Document.ts +++ b/src/v1/product/invoiceSplitter/invoiceSplitterV1Document.ts @@ -2,7 +2,7 @@ import { Prediction, StringDict, cleanOutString,lineSeparator, -} from "@/parsing/common/index.js"; +} from "@/v1/parsing/common/index.js"; import { InvoiceSplitterV1InvoicePageGroup } from "./invoiceSplitterV1InvoicePageGroup.js"; diff --git a/src/product/invoiceSplitter/invoiceSplitterV1InvoicePageGroup.ts b/src/v1/product/invoiceSplitter/invoiceSplitterV1InvoicePageGroup.ts similarity index 96% rename from src/product/invoiceSplitter/invoiceSplitterV1InvoicePageGroup.ts rename to src/v1/product/invoiceSplitter/invoiceSplitterV1InvoicePageGroup.ts index 4eb1de28..d3f72552 100644 --- a/src/product/invoiceSplitter/invoiceSplitterV1InvoicePageGroup.ts +++ b/src/v1/product/invoiceSplitter/invoiceSplitterV1InvoicePageGroup.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/multiReceiptsDetector/index.ts b/src/v1/product/multiReceiptsDetector/index.ts similarity index 100% rename from src/product/multiReceiptsDetector/index.ts rename to src/v1/product/multiReceiptsDetector/index.ts diff --git a/src/product/multiReceiptsDetector/multiReceiptsDetectorV1.ts b/src/v1/product/multiReceiptsDetector/multiReceiptsDetectorV1.ts similarity index 93% rename from src/product/multiReceiptsDetector/multiReceiptsDetectorV1.ts rename to src/v1/product/multiReceiptsDetector/multiReceiptsDetectorV1.ts index 28e39d03..0433d9a0 100644 --- a/src/product/multiReceiptsDetector/multiReceiptsDetectorV1.ts +++ b/src/v1/product/multiReceiptsDetector/multiReceiptsDetectorV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { MultiReceiptsDetectorV1Document } from "./multiReceiptsDetectorV1Document.js"; /** diff --git a/src/product/multiReceiptsDetector/multiReceiptsDetectorV1Document.ts b/src/v1/product/multiReceiptsDetector/multiReceiptsDetectorV1Document.ts similarity index 89% rename from src/product/multiReceiptsDetector/multiReceiptsDetectorV1Document.ts rename to src/v1/product/multiReceiptsDetector/multiReceiptsDetectorV1Document.ts index 402bb9fc..cdd10464 100644 --- a/src/product/multiReceiptsDetector/multiReceiptsDetectorV1Document.ts +++ b/src/v1/product/multiReceiptsDetector/multiReceiptsDetectorV1Document.ts @@ -2,8 +2,8 @@ import { Prediction, StringDict, cleanOutString, -} from "@/parsing/common/index.js"; -import { PositionField } from "@/parsing/standard/index.js"; +} from "@/v1/parsing/common/index.js"; +import { PositionField } from "@/v1/parsing/standard/index.js"; /** * Multi Receipts Detector API version 1.1 document data. diff --git a/src/product/passport/index.ts b/src/v1/product/passport/index.ts similarity index 100% rename from src/product/passport/index.ts rename to src/v1/product/passport/index.ts diff --git a/src/product/passport/passportV1.ts b/src/v1/product/passport/passportV1.ts similarity index 92% rename from src/product/passport/passportV1.ts rename to src/v1/product/passport/passportV1.ts index d8df9b93..f3c91647 100644 --- a/src/product/passport/passportV1.ts +++ b/src/v1/product/passport/passportV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { PassportV1Document } from "./passportV1Document.js"; /** diff --git a/src/product/passport/passportV1Document.ts b/src/v1/product/passport/passportV1Document.ts similarity index 96% rename from src/product/passport/passportV1Document.ts rename to src/v1/product/passport/passportV1Document.ts index 88781bf1..d809c164 100644 --- a/src/product/passport/passportV1Document.ts +++ b/src/v1/product/passport/passportV1Document.ts @@ -2,8 +2,8 @@ import { Prediction, StringDict, cleanOutString, -} from "@/parsing/common/index.js"; -import { DateField, StringField } from "@/parsing/standard/index.js"; +} from "@/v1/parsing/common/index.js"; +import { DateField, StringField } from "@/v1/parsing/standard/index.js"; /** * Passport API version 1.1 document data. diff --git a/src/product/receipt/index.ts b/src/v1/product/receipt/index.ts similarity index 100% rename from src/product/receipt/index.ts rename to src/v1/product/receipt/index.ts diff --git a/src/product/receipt/receiptV5.ts b/src/v1/product/receipt/receiptV5.ts similarity index 92% rename from src/product/receipt/receiptV5.ts rename to src/v1/product/receipt/receiptV5.ts index be42ddd9..292ac397 100644 --- a/src/product/receipt/receiptV5.ts +++ b/src/v1/product/receipt/receiptV5.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { ReceiptV5Document } from "./receiptV5Document.js"; /** diff --git a/src/product/receipt/receiptV5Document.ts b/src/v1/product/receipt/receiptV5Document.ts similarity index 98% rename from src/product/receipt/receiptV5Document.ts rename to src/v1/product/receipt/receiptV5Document.ts index 457912ea..8bdbb411 100644 --- a/src/product/receipt/receiptV5Document.ts +++ b/src/v1/product/receipt/receiptV5Document.ts @@ -2,7 +2,7 @@ import { Prediction, StringDict, cleanOutString,lineSeparator, -} from "@/parsing/common/index.js"; +} from "@/v1/parsing/common/index.js"; import { ReceiptV5LineItem } from "./receiptV5LineItem.js"; import { AmountField, @@ -12,7 +12,7 @@ import { LocaleField, StringField, Taxes, -} from "@/parsing/standard/index.js"; +} from "@/v1/parsing/standard/index.js"; /** * Receipt API version 5.4 document data. diff --git a/src/product/receipt/receiptV5LineItem.ts b/src/v1/product/receipt/receiptV5LineItem.ts similarity index 95% rename from src/product/receipt/receiptV5LineItem.ts rename to src/v1/product/receipt/receiptV5LineItem.ts index 1598740a..6e1ebffb 100644 --- a/src/product/receipt/receiptV5LineItem.ts +++ b/src/v1/product/receipt/receiptV5LineItem.ts @@ -1,5 +1,5 @@ -import { cleanSpecialChars, floatToString } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars, floatToString } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/resume/index.ts b/src/v1/product/resume/index.ts similarity index 100% rename from src/product/resume/index.ts rename to src/v1/product/resume/index.ts diff --git a/src/product/resume/resumeV1.ts b/src/v1/product/resume/resumeV1.ts similarity index 92% rename from src/product/resume/resumeV1.ts rename to src/v1/product/resume/resumeV1.ts index 2ae4b196..231b3de1 100644 --- a/src/product/resume/resumeV1.ts +++ b/src/v1/product/resume/resumeV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { ResumeV1Document } from "./resumeV1Document.js"; /** diff --git a/src/product/resume/resumeV1Certificate.ts b/src/v1/product/resume/resumeV1Certificate.ts similarity index 95% rename from src/product/resume/resumeV1Certificate.ts rename to src/v1/product/resume/resumeV1Certificate.ts index e5b65870..3956fc17 100644 --- a/src/product/resume/resumeV1Certificate.ts +++ b/src/v1/product/resume/resumeV1Certificate.ts @@ -1,5 +1,5 @@ -import { cleanSpecialChars } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/resume/resumeV1Document.ts b/src/v1/product/resume/resumeV1Document.ts similarity index 98% rename from src/product/resume/resumeV1Document.ts rename to src/v1/product/resume/resumeV1Document.ts index 61675aa4..b129a3b9 100644 --- a/src/product/resume/resumeV1Document.ts +++ b/src/v1/product/resume/resumeV1Document.ts @@ -2,13 +2,13 @@ import { Prediction, StringDict, cleanOutString,lineSeparator, -} from "@/parsing/common/index.js"; +} from "@/v1/parsing/common/index.js"; import { ResumeV1SocialNetworksUrl } from "./resumeV1SocialNetworksUrl.js"; import { ResumeV1Language } from "./resumeV1Language.js"; import { ResumeV1Education } from "./resumeV1Education.js"; import { ResumeV1ProfessionalExperience } from "./resumeV1ProfessionalExperience.js"; import { ResumeV1Certificate } from "./resumeV1Certificate.js"; -import { ClassificationField, StringField } from "@/parsing/standard/index.js"; +import { ClassificationField, StringField } from "@/v1/parsing/standard/index.js"; /** * Resume API version 1.2 document data. diff --git a/src/product/resume/resumeV1Education.ts b/src/v1/product/resume/resumeV1Education.ts similarity index 97% rename from src/product/resume/resumeV1Education.ts rename to src/v1/product/resume/resumeV1Education.ts index 4b04a164..7b1de459 100644 --- a/src/product/resume/resumeV1Education.ts +++ b/src/v1/product/resume/resumeV1Education.ts @@ -1,6 +1,6 @@ -import { cleanSpecialChars } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/resume/resumeV1Language.ts b/src/v1/product/resume/resumeV1Language.ts similarity index 93% rename from src/product/resume/resumeV1Language.ts rename to src/v1/product/resume/resumeV1Language.ts index 121ce1e3..b9eb3652 100644 --- a/src/product/resume/resumeV1Language.ts +++ b/src/v1/product/resume/resumeV1Language.ts @@ -1,6 +1,6 @@ -import { cleanSpecialChars } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/resume/resumeV1ProfessionalExperience.ts b/src/v1/product/resume/resumeV1ProfessionalExperience.ts similarity index 97% rename from src/product/resume/resumeV1ProfessionalExperience.ts rename to src/v1/product/resume/resumeV1ProfessionalExperience.ts index 0538c0ad..f1474e37 100644 --- a/src/product/resume/resumeV1ProfessionalExperience.ts +++ b/src/v1/product/resume/resumeV1ProfessionalExperience.ts @@ -1,6 +1,6 @@ -import { cleanSpecialChars } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/resume/resumeV1SocialNetworksUrl.ts b/src/v1/product/resume/resumeV1SocialNetworksUrl.ts similarity index 93% rename from src/product/resume/resumeV1SocialNetworksUrl.ts rename to src/v1/product/resume/resumeV1SocialNetworksUrl.ts index 58d3795d..85b73608 100644 --- a/src/product/resume/resumeV1SocialNetworksUrl.ts +++ b/src/v1/product/resume/resumeV1SocialNetworksUrl.ts @@ -1,6 +1,6 @@ -import { cleanSpecialChars } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/us/bankCheck/bankCheckV1.ts b/src/v1/product/us/bankCheck/bankCheckV1.ts similarity index 93% rename from src/product/us/bankCheck/bankCheckV1.ts rename to src/v1/product/us/bankCheck/bankCheckV1.ts index 242e4eb3..4d8b2c9d 100644 --- a/src/product/us/bankCheck/bankCheckV1.ts +++ b/src/v1/product/us/bankCheck/bankCheckV1.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { BankCheckV1Document } from "./bankCheckV1Document.js"; import { BankCheckV1Page } from "./bankCheckV1Page.js"; diff --git a/src/product/us/bankCheck/bankCheckV1Document.ts b/src/v1/product/us/bankCheck/bankCheckV1Document.ts similarity index 96% rename from src/product/us/bankCheck/bankCheckV1Document.ts rename to src/v1/product/us/bankCheck/bankCheckV1Document.ts index 63483b0f..e4c8990f 100644 --- a/src/product/us/bankCheck/bankCheckV1Document.ts +++ b/src/v1/product/us/bankCheck/bankCheckV1Document.ts @@ -2,12 +2,12 @@ import { Prediction, StringDict, cleanOutString, -} from "@/parsing/common/index.js"; +} from "@/v1/parsing/common/index.js"; import { AmountField, DateField, StringField, -} from "@/parsing/standard/index.js"; +} from "@/v1/parsing/standard/index.js"; /** * Bank Check API version 1.1 document data. diff --git a/src/product/us/bankCheck/bankCheckV1Page.ts b/src/v1/product/us/bankCheck/bankCheckV1Page.ts similarity index 89% rename from src/product/us/bankCheck/bankCheckV1Page.ts rename to src/v1/product/us/bankCheck/bankCheckV1Page.ts index e39de604..52ef31ef 100644 --- a/src/product/us/bankCheck/bankCheckV1Page.ts +++ b/src/v1/product/us/bankCheck/bankCheckV1Page.ts @@ -1,5 +1,5 @@ -import { StringDict, cleanOutString } from "@/parsing/common/index.js"; -import { PositionField } from "@/parsing/standard/index.js"; +import { StringDict, cleanOutString } from "@/v1/parsing/common/index.js"; +import { PositionField } from "@/v1/parsing/standard/index.js"; import { BankCheckV1Document } from "./bankCheckV1Document.js"; /** diff --git a/src/product/us/bankCheck/index.ts b/src/v1/product/us/bankCheck/index.ts similarity index 100% rename from src/product/us/bankCheck/index.ts rename to src/v1/product/us/bankCheck/index.ts diff --git a/src/v1/product/us/index.ts b/src/v1/product/us/index.ts new file mode 100644 index 00000000..fcf56cdf --- /dev/null +++ b/src/v1/product/us/index.ts @@ -0,0 +1,6 @@ +export { BankCheckV1 } from "./bankCheck/index.js"; +export { UsMailV3 } from "./usMail/index.js"; + +// not sure if we want to export these -- advanced users can import them directly +export * as bankCheck from "./bankCheck/index.js"; +export * as usMail from "./usMail/index.js"; diff --git a/src/product/us/usMail/index.ts b/src/v1/product/us/usMail/index.ts similarity index 100% rename from src/product/us/usMail/index.ts rename to src/v1/product/us/usMail/index.ts diff --git a/src/product/us/usMail/usMailV3.ts b/src/v1/product/us/usMail/usMailV3.ts similarity index 92% rename from src/product/us/usMail/usMailV3.ts rename to src/v1/product/us/usMail/usMailV3.ts index a4f637b8..5444b5d4 100644 --- a/src/product/us/usMail/usMailV3.ts +++ b/src/v1/product/us/usMail/usMailV3.ts @@ -1,4 +1,4 @@ -import { Inference, StringDict, Page } from "@/parsing/common/index.js"; +import { Inference, StringDict, Page } from "@/v1/parsing/common/index.js"; import { UsMailV3Document } from "./usMailV3Document.js"; /** diff --git a/src/product/us/usMail/usMailV3Document.ts b/src/v1/product/us/usMail/usMailV3Document.ts similarity index 96% rename from src/product/us/usMail/usMailV3Document.ts rename to src/v1/product/us/usMail/usMailV3Document.ts index 13dc36f9..67eb1a4d 100644 --- a/src/product/us/usMail/usMailV3Document.ts +++ b/src/v1/product/us/usMail/usMailV3Document.ts @@ -2,10 +2,10 @@ import { Prediction, StringDict, cleanOutString,lineSeparator, -} from "@/parsing/common/index.js"; +} from "@/v1/parsing/common/index.js"; import { UsMailV3SenderAddress } from "./usMailV3SenderAddress.js"; import { UsMailV3RecipientAddress } from "./usMailV3RecipientAddress.js"; -import { BooleanField, StringField } from "@/parsing/standard/index.js"; +import { BooleanField, StringField } from "@/v1/parsing/standard/index.js"; /** * US Mail API version 3.0 document data. diff --git a/src/product/us/usMail/usMailV3RecipientAddress.ts b/src/v1/product/us/usMail/usMailV3RecipientAddress.ts similarity index 97% rename from src/product/us/usMail/usMailV3RecipientAddress.ts rename to src/v1/product/us/usMail/usMailV3RecipientAddress.ts index 85e370a8..c26ac5f5 100644 --- a/src/product/us/usMail/usMailV3RecipientAddress.ts +++ b/src/v1/product/us/usMail/usMailV3RecipientAddress.ts @@ -1,6 +1,6 @@ -import { cleanSpecialChars } from "@/parsing/common/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { cleanSpecialChars } from "@/v1/parsing/common/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/product/us/usMail/usMailV3SenderAddress.ts b/src/v1/product/us/usMail/usMailV3SenderAddress.ts similarity index 97% rename from src/product/us/usMail/usMailV3SenderAddress.ts rename to src/v1/product/us/usMail/usMailV3SenderAddress.ts index 204e74e3..13559239 100644 --- a/src/product/us/usMail/usMailV3SenderAddress.ts +++ b/src/v1/product/us/usMail/usMailV3SenderAddress.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Polygon } from "@/geometry/index.js"; /** diff --git a/src/cliV2.ts b/src/v2/cli.ts similarity index 93% rename from src/cliV2.ts rename to src/v2/cli.ts index 22407ef4..5b201fd9 100644 --- a/src/cliV2.ts +++ b/src/v2/cli.ts @@ -1,8 +1,8 @@ import { Command, OptionValues } from "commander"; import { ClientV2 } from "./clientV2.js"; -import { PathInput } from "./input/index.js"; +import { PathInput } from "../input/index.js"; import * as console from "console"; -import { Inference } from "@/parsing/v2/index.js"; +import { Inference } from "@/v2/parsing/index.js"; const program = new Command(); @@ -59,7 +59,7 @@ function addMainOptions(prog: Command) { prog.argument("", "full path to the file"); } -export function cliV2() { +export function cli() { program.name("mindee") .description("Command line interface for Mindee products.") .option("-d, --debug", "high verbosity mode"); diff --git a/src/clientV2.ts b/src/v2/clientV2.ts similarity index 96% rename from src/clientV2.ts rename to src/v2/clientV2.ts index 5dd1064c..7dc68e47 100644 --- a/src/clientV2.ts +++ b/src/v2/clientV2.ts @@ -1,15 +1,15 @@ import { Dispatcher } from "undici"; -import { DataSchema, InputSource } from "./input/index.js"; -import { errorHandler } from "./errors/handler.js"; -import { LOG_LEVELS, logger } from "./logger.js"; +import { DataSchema, InputSource } from "../input/index.js"; +import { errorHandler } from "../errors/handler.js"; +import { LOG_LEVELS, logger } from "../logger.js"; import { setTimeout } from "node:timers/promises"; -import { ErrorResponse, InferenceResponse, JobResponse } from "@/parsing/v2/index.js"; +import { ErrorResponse, InferenceResponse, JobResponse } from "@/v2/parsing/index.js"; import { MindeeApiV2 } from "./http/mindeeApiV2.js"; -import { MindeeHttpErrorV2 } from "@/errors/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { MindeeHttpErrorV2 } from "@/v2/http/errors.js"; +import { StringDict } from "@/parsing/stringDict.js"; /** - * Parameters for the internal polling loop in {@link ClientV2.enqueueAndGetInference | enqueueAndGetInference()} . + * Parameters for the internal polling loop in {@link ClientV2.enqueueAndGetInference | enqueueAndGetInference()}. * * Default behavior: * - `initialDelaySec` = 2s diff --git a/src/http/apiSettingsV2.ts b/src/v2/http/apiSettingsV2.ts similarity index 84% rename from src/http/apiSettingsV2.ts rename to src/v2/http/apiSettingsV2.ts index a31c3c50..1fb295d7 100644 --- a/src/http/apiSettingsV2.ts +++ b/src/v2/http/apiSettingsV2.ts @@ -1,7 +1,6 @@ -/* eslint-disable @typescript-eslint/naming-convention */ import { logger } from "@/logger.js"; -import { BaseSettings, MindeeApiConstructorProps } from "./baseSettings.js"; -import { MindeeApiV2Error } from "@/errors/index.js"; +import { BaseSettings, MindeeApiConstructorProps } from "@/http/baseSettings.js"; +import { MindeeConfigurationError } from "@/errors/index.js"; const API_V2_KEY_ENVVAR_NAME: string = "MINDEE_V2_API_KEY"; const API_V2_HOST_ENVVAR_NAME: string = "MINDEE_V2_API_HOST"; @@ -16,11 +15,12 @@ export class ApiSettingsV2 extends BaseSettings { }: MindeeApiConstructorProps) { super(apiKey, dispatcher); if (!this.apiKey || this.apiKey.length === 0) { - throw new MindeeApiV2Error( + throw new MindeeConfigurationError( "Your V2 API key could not be set, check your Client Configuration\n." + `You can set this using the ${API_V2_KEY_ENVVAR_NAME} environment variable.` ); } + /* eslint-disable @typescript-eslint/naming-convention */ this.baseHeaders = { "User-Agent": this.getUserAgent(), Authorization: `${this.apiKey}`, diff --git a/src/v2/http/errors.ts b/src/v2/http/errors.ts new file mode 100644 index 00000000..9c8f05c6 --- /dev/null +++ b/src/v2/http/errors.ts @@ -0,0 +1,20 @@ +import { ErrorDetails, ErrorItem, ErrorResponse } from "@/v2/parsing/index.js"; +import { MindeeError } from "@/errors/index.js"; + +export class MindeeHttpErrorV2 extends MindeeError implements ErrorDetails { + public status: number; + public detail: string; + public title: string; + public code: string; + public errors: ErrorItem[]; + + constructor(error: ErrorResponse) { + super(`HTTP ${error.status} - ${error.title} :: ${error.code} - ${error.detail}`); + this.status = error.status; + this.detail = error.detail; + this.title = error.title; + this.code = error.code; + this.errors = error.errors; + this.name = "MindeeHttpErrorV2"; + } +} diff --git a/src/v2/http/index.ts b/src/v2/http/index.ts new file mode 100644 index 00000000..73bd7b80 --- /dev/null +++ b/src/v2/http/index.ts @@ -0,0 +1,2 @@ +export { MindeeHttpErrorV2 } from "./errors.js"; + diff --git a/src/http/mindeeApiV2.ts b/src/v2/http/mindeeApiV2.ts similarity index 87% rename from src/http/mindeeApiV2.ts rename to src/v2/http/mindeeApiV2.ts index 04f599b8..7e7759d0 100644 --- a/src/http/mindeeApiV2.ts +++ b/src/v2/http/mindeeApiV2.ts @@ -1,10 +1,11 @@ import { ApiSettingsV2 } from "./apiSettingsV2.js"; import { Dispatcher } from "undici"; -import { InferenceParameters } from "@/clientV2.js"; -import { ErrorResponse, InferenceResponse, JobResponse } from "@/parsing/v2/index.js"; -import { sendRequestAndReadResponse, EndpointResponse } from "./apiCore.js"; +import { InferenceParameters } from "@/v2/clientV2.js"; +import { ErrorResponse, InferenceResponse, JobResponse } from "@/v2/parsing/index.js"; +import { sendRequestAndReadResponse, BaseHttpResponse } from "@/http/apiCore.js"; import { InputSource, LocalInputSource, UrlInput } from "@/input/index.js"; -import { MindeeApiV2Error, MindeeHttpErrorV2 } from "@/errors/index.js"; +import { MindeeConfigurationError, MindeeDeserializationError } from "@/errors/index.js"; +import { MindeeHttpErrorV2 } from "./errors.js"; import { logger } from "@/logger.js"; export class MindeeApiV2 { @@ -25,9 +26,9 @@ export class MindeeApiV2 { async reqPostInferenceEnqueue(inputSource: InputSource, params: InferenceParameters): Promise { await inputSource.init(); if (params.modelId === undefined || params.modelId === null || params.modelId === "") { - throw new Error("Model ID must be provided"); + throw new MindeeConfigurationError("Model ID must be provided"); } - const result: EndpointResponse = await this.#documentEnqueuePost(inputSource, params); + const result: BaseHttpResponse = await this.#documentEnqueuePost(inputSource, params); if (result.data.error !== undefined) { throw new MindeeHttpErrorV2(result.data.error); } @@ -43,7 +44,7 @@ export class MindeeApiV2 { * @returns a `Promise` containing either the parsed result, or information on the queue. */ async reqGetInference(inferenceId: string): Promise { - const queueResponse: EndpointResponse = await this.#inferenceResultReqGet(inferenceId, "inferences"); + const queueResponse: BaseHttpResponse = await this.#inferenceResultReqGet(inferenceId, "inferences"); return this.#processResponse(queueResponse, InferenceResponse); } @@ -55,12 +56,12 @@ export class MindeeApiV2 { * @returns a `Promise` containing information on the queue. */ async reqGetJob(jobId: string): Promise { - const queueResponse: EndpointResponse = await this.#inferenceResultReqGet(jobId, "jobs"); + const queueResponse: BaseHttpResponse = await this.#inferenceResultReqGet(jobId, "jobs"); return this.#processResponse(queueResponse, JobResponse); } #processResponse - (result: EndpointResponse, responseType: new (data: { [key: string]: any; }) => T): T { + (result: BaseHttpResponse, responseType: new (data: { [key: string]: any; }) => T): T { if (result.messageObj?.statusCode && (result.messageObj?.statusCode > 399 || result.messageObj?.statusCode < 200)) { if (result.data?.status !== null) { throw new MindeeHttpErrorV2(new ErrorResponse(result.data)); @@ -80,7 +81,7 @@ export class MindeeApiV2 { return new responseType(result.data); } catch (e) { logger.error(`Raised '${e}' Couldn't deserialize response object:\n${JSON.stringify(result.data)}`); - throw new MindeeApiV2Error("Couldn't deserialize response object."); + throw new MindeeDeserializationError("Couldn't deserialize response object."); } } @@ -93,7 +94,7 @@ export class MindeeApiV2 { async #documentEnqueuePost( inputSource: InputSource, params: InferenceParameters - ): Promise { + ): Promise { const form = new FormData(); form.set("model_id", params.modelId); @@ -142,7 +143,7 @@ export class MindeeApiV2 { * @category Asynchronous * @returns a `Promise` containing either the parsed result, or information on the queue. */ - async #inferenceResultReqGet(queueId: string, slug: string): Promise { + async #inferenceResultReqGet(queueId: string, slug: string): Promise { const options = { method: "GET", headers: this.settings.baseHeaders, diff --git a/src/v2/index.ts b/src/v2/index.ts new file mode 100644 index 00000000..43f0d8b7 --- /dev/null +++ b/src/v2/index.ts @@ -0,0 +1,12 @@ +export * as http from "./http/index.js"; +export * as parsing from "./parsing/index.js"; +export { LocalResponseV2 } from "./localResponse.js"; +export { ClientV2 } from "./clientV2.js"; +export { + InferenceFile, + InferenceResponse, + JobResponse, + RawText, + RagMetadata, + ErrorResponse, +} from "./parsing/index.js"; diff --git a/src/v2/localResponse.ts b/src/v2/localResponse.ts new file mode 100644 index 00000000..994aabc9 --- /dev/null +++ b/src/v2/localResponse.ts @@ -0,0 +1,31 @@ +import { StringDict } from "@/parsing/stringDict.js"; +import { MindeeError } from "@/errors/index.js"; +import { CommonResponse } from "@/v2/parsing/index.js"; +import { LocalResponse } from "@/input/index.js"; + +/** + * Local response loaded from a file. + * Note: Has to be initialized through init() before use. + */ +export class LocalResponseV2 extends LocalResponse { + + /** + * Deserialize the loaded local response into the requested CommonResponse-derived class. + * + * Typically used when dealing with V2 webhook callbacks. + * + * @typeParam ResponseT - A class that extends `CommonResponse`. + * @param responseClass - The constructor of the class into which the payload should be deserialized. + * @returns An instance of `responseClass` populated with the file content. + * @throws MindeeError If the provided class cannot be instantiated. + */ + public async deserializeResponse( + responseClass: new (serverResponse: StringDict) => ResponseT + ): Promise { + try { + return new responseClass(await this.asDict()); + } catch { + throw new MindeeError("Invalid response provided."); + } + } +} diff --git a/src/parsing/v2/commonResponse.ts b/src/v2/parsing/commonResponse.ts similarity index 88% rename from src/parsing/v2/commonResponse.ts rename to src/v2/parsing/commonResponse.ts index f6ab596a..21a81e3e 100644 --- a/src/parsing/v2/commonResponse.ts +++ b/src/v2/parsing/commonResponse.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; export abstract class CommonResponse { diff --git a/src/parsing/v2/dataSchemaActiveOption.ts b/src/v2/parsing/dataSchemaActiveOption.ts similarity index 86% rename from src/parsing/v2/dataSchemaActiveOption.ts rename to src/v2/parsing/dataSchemaActiveOption.ts index d804aeff..841241ac 100644 --- a/src/parsing/v2/dataSchemaActiveOption.ts +++ b/src/v2/parsing/dataSchemaActiveOption.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; /** * Data schema options activated during the inference. diff --git a/src/parsing/v2/errorItem.ts b/src/v2/parsing/errorItem.ts similarity index 89% rename from src/parsing/v2/errorItem.ts rename to src/v2/parsing/errorItem.ts index 63cae233..4ba4678b 100644 --- a/src/parsing/v2/errorItem.ts +++ b/src/v2/parsing/errorItem.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; /** * Explicit details on a problem. diff --git a/src/parsing/v2/errorResponse.ts b/src/v2/parsing/errorResponse.ts similarity index 95% rename from src/parsing/v2/errorResponse.ts rename to src/v2/parsing/errorResponse.ts index 17de3b3e..4510ef78 100644 --- a/src/parsing/v2/errorResponse.ts +++ b/src/v2/parsing/errorResponse.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { ErrorItem } from "./errorItem.js"; export interface ErrorDetails { diff --git a/src/parsing/v2/field/baseField.ts b/src/v2/parsing/field/baseField.ts similarity index 92% rename from src/parsing/v2/field/baseField.ts rename to src/v2/parsing/field/baseField.ts index 4af5c38f..d1fc3747 100644 --- a/src/parsing/v2/field/baseField.ts +++ b/src/v2/parsing/field/baseField.ts @@ -1,5 +1,5 @@ import { FieldConfidence } from "./fieldConfidence.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { FieldLocation } from "./fieldLocation.js"; export abstract class BaseField { diff --git a/src/parsing/v2/field/fieldConfidence.ts b/src/v2/parsing/field/fieldConfidence.ts similarity index 100% rename from src/parsing/v2/field/fieldConfidence.ts rename to src/v2/parsing/field/fieldConfidence.ts diff --git a/src/parsing/v2/field/fieldFactory.ts b/src/v2/parsing/field/fieldFactory.ts similarity index 79% rename from src/parsing/v2/field/fieldFactory.ts rename to src/v2/parsing/field/fieldFactory.ts index aa42bc43..b5f539d8 100644 --- a/src/parsing/v2/field/fieldFactory.ts +++ b/src/v2/parsing/field/fieldFactory.ts @@ -1,15 +1,15 @@ /** * Factory helper. */ -import { StringDict } from "@/parsing/common/stringDict.js"; -import { MindeeApiV2Error } from "@/errors/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; +import { MindeeDeserializationError } from "@/errors/index.js"; import { ListField } from "./listField.js"; import { ObjectField } from "./objectField.js"; import { SimpleField } from "./simpleField.js"; export function createField(serverResponse: StringDict, indentLevel = 0) { if (typeof serverResponse !== "object" || serverResponse === null) { - throw new MindeeApiV2Error( + throw new MindeeDeserializationError( `Unrecognized field format ${JSON.stringify(serverResponse)}.` ); } @@ -26,7 +26,7 @@ export function createField(serverResponse: StringDict, indentLevel = 0) { return new SimpleField(serverResponse, indentLevel); } - throw new MindeeApiV2Error( + throw new MindeeDeserializationError( `Unrecognized field format in ${JSON.stringify(serverResponse)}.` ); } diff --git a/src/parsing/v2/field/fieldLocation.ts b/src/v2/parsing/field/fieldLocation.ts similarity index 89% rename from src/parsing/v2/field/fieldLocation.ts rename to src/v2/parsing/field/fieldLocation.ts index 95b5fd3f..14b9ae33 100644 --- a/src/parsing/v2/field/fieldLocation.ts +++ b/src/v2/parsing/field/fieldLocation.ts @@ -1,5 +1,5 @@ import { Polygon } from "@/geometry/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; /** * Location of a field. diff --git a/src/parsing/v2/field/index.ts b/src/v2/parsing/field/index.ts similarity index 100% rename from src/parsing/v2/field/index.ts rename to src/v2/parsing/field/index.ts diff --git a/src/parsing/v2/field/inferenceFields.ts b/src/v2/parsing/field/inferenceFields.ts similarity index 97% rename from src/parsing/v2/field/inferenceFields.ts rename to src/v2/parsing/field/inferenceFields.ts index 4c66ad8a..af429761 100644 --- a/src/parsing/v2/field/inferenceFields.ts +++ b/src/v2/parsing/field/inferenceFields.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import type { ListField } from "./listField.js"; import type { ObjectField } from "./objectField.js"; import type { SimpleField } from "./simpleField.js"; diff --git a/src/parsing/v2/field/listField.ts b/src/v2/parsing/field/listField.ts similarity index 88% rename from src/parsing/v2/field/listField.ts rename to src/v2/parsing/field/listField.ts index f51a925e..0133d3aa 100644 --- a/src/parsing/v2/field/listField.ts +++ b/src/v2/parsing/field/listField.ts @@ -1,5 +1,5 @@ -import { MindeeApiV2Error } from "@/errors/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { MindeeDeserializationError } from "@/errors/index.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { BaseField } from "./baseField.js"; import { ObjectField } from "./objectField.js"; import { SimpleField } from "./simpleField.js"; @@ -21,7 +21,7 @@ export class ListField extends BaseField { if (item instanceof SimpleField) { result.push(item); } else { - throw new MindeeApiV2Error( + throw new MindeeDeserializationError( `All items must be SimpleField, found item of type ${item.constructor.name}.` ); } @@ -39,7 +39,7 @@ export class ListField extends BaseField { if (item instanceof ObjectField) { result.push(item); } else { - throw new MindeeApiV2Error( + throw new MindeeDeserializationError( `All items must be ObjectField, found item of type ${item.constructor.name}.` ); } @@ -51,7 +51,7 @@ export class ListField extends BaseField { super(serverResponse, indentLevel); if (!Array.isArray(serverResponse["items"])) { - throw new MindeeApiV2Error( + throw new MindeeDeserializationError( `Expected "items" to be an array in ${JSON.stringify(serverResponse)}.` ); } diff --git a/src/parsing/v2/field/objectField.ts b/src/v2/parsing/field/objectField.ts similarity index 94% rename from src/parsing/v2/field/objectField.ts rename to src/v2/parsing/field/objectField.ts index a5920ca9..614fd5f4 100644 --- a/src/parsing/v2/field/objectField.ts +++ b/src/v2/parsing/field/objectField.ts @@ -1,5 +1,5 @@ import { InferenceFields } from "./inferenceFields.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { BaseField } from "./baseField.js"; import type { SimpleField } from "./simpleField.js"; diff --git a/src/parsing/v2/field/simpleField.ts b/src/v2/parsing/field/simpleField.ts similarity index 96% rename from src/parsing/v2/field/simpleField.ts rename to src/v2/parsing/field/simpleField.ts index 2779e9bb..eff4d103 100644 --- a/src/parsing/v2/field/simpleField.ts +++ b/src/v2/parsing/field/simpleField.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { BaseField } from "./baseField.js"; export class SimpleField extends BaseField { diff --git a/src/parsing/v2/index.ts b/src/v2/parsing/index.ts similarity index 100% rename from src/parsing/v2/index.ts rename to src/v2/parsing/index.ts index e5e212bb..6e952e0b 100644 --- a/src/parsing/v2/index.ts +++ b/src/v2/parsing/index.ts @@ -1,15 +1,15 @@ -export { CommonResponse } from "./commonResponse.js"; export { ErrorResponse } from "./errorResponse.js"; export type { ErrorDetails } from "./errorResponse.js"; export { ErrorItem } from "./errorItem.js"; +export { Job } from "./job.js"; +export { JobResponse } from "./jobResponse.js"; +export { JobWebhook } from "./jobWebhook.js"; +export { InferenceFile } from "./inferenceFile.js"; +export { CommonResponse } from "./commonResponse.js"; export { Inference } from "./inference.js"; export { InferenceActiveOptions } from "./inferenceActiveOptions.js"; -export { InferenceFile } from "./inferenceFile.js"; export { InferenceModel } from "./inferenceModel.js"; export { InferenceResponse } from "./inferenceResponse.js"; export { InferenceResult } from "./inferenceResult.js"; -export { Job } from "./job.js"; -export { JobResponse } from "./jobResponse.js"; export { RawText } from "./rawText.js"; -export { JobWebhook } from "./jobWebhook.js"; export { RagMetadata } from "./ragMetadata.js"; diff --git a/src/parsing/v2/inference.ts b/src/v2/parsing/inference.ts similarity index 95% rename from src/parsing/v2/inference.ts rename to src/v2/parsing/inference.ts index aa8b8e4b..37a91c7c 100644 --- a/src/parsing/v2/inference.ts +++ b/src/v2/parsing/inference.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { InferenceModel } from "./inferenceModel.js"; import { InferenceResult } from "./inferenceResult.js"; import { InferenceFile } from "./inferenceFile.js"; diff --git a/src/parsing/v2/inferenceActiveOptions.ts b/src/v2/parsing/inferenceActiveOptions.ts similarity index 95% rename from src/parsing/v2/inferenceActiveOptions.ts rename to src/v2/parsing/inferenceActiveOptions.ts index 6f23a712..1f5febea 100644 --- a/src/parsing/v2/inferenceActiveOptions.ts +++ b/src/v2/parsing/inferenceActiveOptions.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { DataSchemaActiveOption } from "./dataSchemaActiveOption.js"; export class InferenceActiveOptions { diff --git a/src/parsing/v2/inferenceFile.ts b/src/v2/parsing/inferenceFile.ts similarity index 92% rename from src/parsing/v2/inferenceFile.ts rename to src/v2/parsing/inferenceFile.ts index 4c95edb1..a8b21271 100644 --- a/src/parsing/v2/inferenceFile.ts +++ b/src/v2/parsing/inferenceFile.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; export class InferenceFile { /** diff --git a/src/parsing/v2/inferenceModel.ts b/src/v2/parsing/inferenceModel.ts similarity index 81% rename from src/parsing/v2/inferenceModel.ts rename to src/v2/parsing/inferenceModel.ts index 15e9adb7..4d45be80 100644 --- a/src/parsing/v2/inferenceModel.ts +++ b/src/v2/parsing/inferenceModel.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; export class InferenceModel { /** diff --git a/src/parsing/v2/inferenceResponse.ts b/src/v2/parsing/inferenceResponse.ts similarity index 85% rename from src/parsing/v2/inferenceResponse.ts rename to src/v2/parsing/inferenceResponse.ts index 6020a567..7c63d894 100644 --- a/src/parsing/v2/inferenceResponse.ts +++ b/src/v2/parsing/inferenceResponse.ts @@ -1,6 +1,6 @@ import { CommonResponse } from "./commonResponse.js"; import { Inference } from "./inference.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; export class InferenceResponse extends CommonResponse { /** diff --git a/src/parsing/v2/inferenceResult.ts b/src/v2/parsing/inferenceResult.ts similarity index 92% rename from src/parsing/v2/inferenceResult.ts rename to src/v2/parsing/inferenceResult.ts index 5ce3964e..5acd4284 100644 --- a/src/parsing/v2/inferenceResult.ts +++ b/src/v2/parsing/inferenceResult.ts @@ -1,5 +1,5 @@ import { InferenceFields } from "./field/index.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { RawText } from "./rawText.js"; import { RagMetadata } from "./ragMetadata.js"; diff --git a/src/parsing/v2/job.ts b/src/v2/parsing/job.ts similarity index 93% rename from src/parsing/v2/job.ts rename to src/v2/parsing/job.ts index 738c6cb5..66183cf0 100644 --- a/src/parsing/v2/job.ts +++ b/src/v2/parsing/job.ts @@ -1,7 +1,7 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { ErrorResponse } from "./errorResponse.js"; import { JobWebhook } from "./jobWebhook.js"; -import { parseDate } from "@/parsing/common/index.js"; +import { parseDate } from "@/v1/parsing/common/index.js"; /** * Job information for a V2 polling attempt. diff --git a/src/parsing/v2/jobResponse.ts b/src/v2/parsing/jobResponse.ts similarity index 83% rename from src/parsing/v2/jobResponse.ts rename to src/v2/parsing/jobResponse.ts index 85d0794d..7abef720 100644 --- a/src/parsing/v2/jobResponse.ts +++ b/src/v2/parsing/jobResponse.ts @@ -1,5 +1,5 @@ import { CommonResponse } from "./commonResponse.js"; -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { Job } from "./job.js"; export class JobResponse extends CommonResponse { diff --git a/src/parsing/v2/jobWebhook.ts b/src/v2/parsing/jobWebhook.ts similarity index 90% rename from src/parsing/v2/jobWebhook.ts rename to src/v2/parsing/jobWebhook.ts index e499dc2d..4de7d01c 100644 --- a/src/parsing/v2/jobWebhook.ts +++ b/src/v2/parsing/jobWebhook.ts @@ -1,5 +1,5 @@ import { ErrorResponse } from "./errorResponse.js"; -import { StringDict, parseDate } from "@/parsing/common/index.js"; +import { StringDict, parseDate } from "@/v1/parsing/common/index.js"; /** * JobWebhook information. diff --git a/src/parsing/v2/ragMetadata.ts b/src/v2/parsing/ragMetadata.ts similarity index 81% rename from src/parsing/v2/ragMetadata.ts rename to src/v2/parsing/ragMetadata.ts index 1c78bf95..9eb8a417 100644 --- a/src/parsing/v2/ragMetadata.ts +++ b/src/v2/parsing/ragMetadata.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; export class RagMetadata { /** diff --git a/src/parsing/v2/rawText.ts b/src/v2/parsing/rawText.ts similarity index 88% rename from src/parsing/v2/rawText.ts rename to src/v2/parsing/rawText.ts index c6a7874a..46ccd124 100644 --- a/src/parsing/v2/rawText.ts +++ b/src/v2/parsing/rawText.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; import { RawTextPage } from "./rawTextPage.js"; export class RawText { diff --git a/src/parsing/v2/rawTextPage.ts b/src/v2/parsing/rawTextPage.ts similarity index 81% rename from src/parsing/v2/rawTextPage.ts rename to src/v2/parsing/rawTextPage.ts index 646881f1..822a8c70 100644 --- a/src/parsing/v2/rawTextPage.ts +++ b/src/v2/parsing/rawTextPage.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/stringDict.js"; +import { StringDict } from "@/parsing/stringDict.js"; export class RawTextPage { /** diff --git a/tests/input/sources.integration.ts b/tests/input/sources.integration.ts index 6b751956..926c6ce5 100644 --- a/tests/input/sources.integration.ts +++ b/tests/input/sources.integration.ts @@ -1,5 +1,5 @@ import * as mindee from "@/index.js"; -import { InvoiceV4 } from "@/product/index.js"; +import { InvoiceV4 } from "@/v1/product/index.js"; import { expect } from "chai"; import { promises as fs } from "fs"; import { createReadStream } from "node:fs"; diff --git a/tests/input/urlInputSource.integration.ts b/tests/input/urlInputSource.integration.ts index c43013b3..d74e3962 100644 --- a/tests/input/urlInputSource.integration.ts +++ b/tests/input/urlInputSource.integration.ts @@ -1,7 +1,7 @@ import { expect } from "chai"; import { UrlInput } from "@/index.js"; import { Client } from "@/index.js"; -import { InvoiceV4 } from "@/product/index.js"; +import { InvoiceV4 } from "@/v1/product/index.js"; describe("MindeeV1 - URL Input Integration Test", async () => { it("should retrieve and parse a remote file with redirection", async () => { diff --git a/tests/v1/api/asyncResponse.spec.ts b/tests/v1/api/asyncResponse.spec.ts index 139b977a..01e91133 100644 --- a/tests/v1/api/asyncResponse.spec.ts +++ b/tests/v1/api/asyncResponse.spec.ts @@ -2,8 +2,8 @@ import { expect } from "chai"; import { AsyncPredictResponse } from "@/index.js"; import { promises as fs } from "fs"; import * as path from "path"; -import { StringDict } from "@/parsing/common/index.js"; -import { InvoiceSplitterV1 } from "@/product/index.js"; +import { StringDict } from "@/v1/parsing/common/index.js"; +import { InvoiceSplitterV1 } from "@/v1/product/index.js"; import { cleanRequestData, isValidAsyncResponse } from "@/http/index.js"; import { RESOURCE_PATH } from "../../index.js"; diff --git a/tests/v1/api/endpoint.spec.ts b/tests/v1/api/endpoint.spec.ts index 31bf9740..6db4f922 100644 --- a/tests/v1/api/endpoint.spec.ts +++ b/tests/v1/api/endpoint.spec.ts @@ -7,7 +7,7 @@ import { RESOURCE_PATH, V1_RESOURCE_PATH } from "../../index.js"; import assert from "node:assert/strict"; import { MindeeHttp400Error, MindeeHttp401Error, MindeeHttp429Error, MindeeHttp500Error -} from "@/http/index.js"; +} from "@/v1/http/index.js"; const mockAgent = new MockAgent(); setGlobalDispatcher(mockAgent); diff --git a/tests/v1/api/feedbackResponse.spec.ts b/tests/v1/api/feedbackResponse.spec.ts index f5339c68..eeb26cc5 100644 --- a/tests/v1/api/feedbackResponse.spec.ts +++ b/tests/v1/api/feedbackResponse.spec.ts @@ -1,7 +1,7 @@ import path from "path"; import { expect } from "chai"; import { promises as fs } from "fs"; -import { FeedbackResponse } from "@/parsing/common/index.js"; +import { FeedbackResponse } from "@/v1/parsing/common/index.js"; import { V1_PRODUCT_PATH } from "../../index.js"; describe("MindeeV1 - Feedback response", () => { diff --git a/tests/v1/api/response.spec.ts b/tests/v1/api/response.spec.ts index 12c397d4..9483d5ee 100644 --- a/tests/v1/api/response.spec.ts +++ b/tests/v1/api/response.spec.ts @@ -2,7 +2,7 @@ import { promises as fs } from "fs"; import * as path from "path"; import { expect } from "chai"; import { PredictResponse } from "@/index.js"; -import { InvoiceV4, ReceiptV5 } from "@/product/index.js"; +import { InvoiceV4, ReceiptV5 } from "@/v1/product/index.js"; import { V1_PRODUCT_PATH } from "../../index.js"; const dataPath = { diff --git a/tests/v1/clientInit.spec.ts b/tests/v1/clientInit.spec.ts index 5ac815d0..6e5c9c44 100644 --- a/tests/v1/clientInit.spec.ts +++ b/tests/v1/clientInit.spec.ts @@ -1,4 +1,4 @@ -import { Client } from "@/client.js"; +import { Client } from "@/index.js"; import { expect } from "chai"; import assert from "node:assert/strict"; diff --git a/tests/v1/extras/fullTextOcr.spec.ts b/tests/v1/extras/fullTextOcr.spec.ts index d20ae737..33f0345c 100644 --- a/tests/v1/extras/fullTextOcr.spec.ts +++ b/tests/v1/extras/fullTextOcr.spec.ts @@ -2,7 +2,7 @@ import { promises as fs } from "fs"; import path from "path"; import { expect } from "chai"; import { AsyncPredictResponse } from "@/index.js"; -import { InternationalIdV2 } from "@/product/index.js"; +import { InternationalIdV2 } from "@/v1/product/index.js"; import { RESOURCE_PATH } from "../../index.js"; const fullTextOcrDir = path.join(RESOURCE_PATH, "v1/extras/full_text_ocr"); diff --git a/tests/v1/extras/ocr.spec.ts b/tests/v1/extras/ocr.spec.ts index 96970240..569eb25e 100644 --- a/tests/v1/extras/ocr.spec.ts +++ b/tests/v1/extras/ocr.spec.ts @@ -1,7 +1,7 @@ import { promises as fs } from "fs"; import * as path from "path"; import { expect } from "chai"; -import { ReceiptV5 } from "@/product/index.js"; +import { ReceiptV5 } from "@/v1/product/index.js"; import { Document } from "@/index.js"; import { RESOURCE_PATH } from "../../index.js"; diff --git a/tests/v1/imageOperations/invoiceSplitterExtractor.spec.ts b/tests/v1/imageOperations/invoiceSplitterExtractor.spec.ts index ed20a3d9..a9eb06fe 100644 --- a/tests/v1/imageOperations/invoiceSplitterExtractor.spec.ts +++ b/tests/v1/imageOperations/invoiceSplitterExtractor.spec.ts @@ -1,7 +1,7 @@ import { expect } from "chai"; import { promises as fs } from "fs"; import path from "path"; -import { InvoiceSplitterV1 } from "@/product/index.js"; +import { InvoiceSplitterV1 } from "@/v1/product/index.js"; import { extractInvoices } from "@/imageOperations/index.js"; import { PathInput } from "@/index.js"; import { V1_PRODUCT_PATH } from "../../index.js"; diff --git a/tests/v1/imageOperations/invoiceSplitterReconstruction.spec.ts b/tests/v1/imageOperations/invoiceSplitterReconstruction.spec.ts index 68c26083..9d50c5b5 100644 --- a/tests/v1/imageOperations/invoiceSplitterReconstruction.spec.ts +++ b/tests/v1/imageOperations/invoiceSplitterReconstruction.spec.ts @@ -2,7 +2,7 @@ import { expect } from "chai"; import { promises as fs } from "fs"; import * as path from "path"; import { Document } from "@/index.js"; -import { InvoiceSplitterV1 } from "@/product/index.js"; +import { InvoiceSplitterV1 } from "@/v1/product/index.js"; import { extractInvoices } from "@/imageOperations/index.js"; import { PathInput } from "@/index.js"; import { V1_PRODUCT_PATH } from "../../index.js"; diff --git a/tests/v1/imageOperations/multiReceiptsExtractor.spec.ts b/tests/v1/imageOperations/multiReceiptsExtractor.spec.ts index 46c61a8f..1eb99bea 100644 --- a/tests/v1/imageOperations/multiReceiptsExtractor.spec.ts +++ b/tests/v1/imageOperations/multiReceiptsExtractor.spec.ts @@ -1,7 +1,7 @@ import { expect } from "chai"; import { promises as fs } from "fs"; import path from "path"; -import { MultiReceiptsDetectorV1 } from "@/product/index.js"; +import { MultiReceiptsDetectorV1 } from "@/v1/product/index.js"; import { extractReceipts } from "@/imageOperations/index.js"; import { PathInput } from "@/index.js"; import { V1_PRODUCT_PATH } from "../../index.js"; diff --git a/tests/v1/imageOperations/multiReceiptsReconstruction.integration.ts b/tests/v1/imageOperations/multiReceiptsReconstruction.integration.ts index 5e15b07c..055fcdce 100644 --- a/tests/v1/imageOperations/multiReceiptsReconstruction.integration.ts +++ b/tests/v1/imageOperations/multiReceiptsReconstruction.integration.ts @@ -1,7 +1,7 @@ import { expect } from "chai"; import * as path from "path"; import { Client, PathInput } from "@/index.js"; -import { MultiReceiptsDetectorV1, ReceiptV5 } from "@/product/index.js"; +import { MultiReceiptsDetectorV1, ReceiptV5 } from "@/v1/product/index.js"; import { extractReceipts } from "@/imageOperations/index.js"; import { V1_PRODUCT_PATH } from "../../index.js"; import { LocalInputSource } from "@/input/index.js"; diff --git a/tests/v1/imageOperations/multiReceiptsReconstruction.spec.ts b/tests/v1/imageOperations/multiReceiptsReconstruction.spec.ts index 3890fffc..d597e657 100644 --- a/tests/v1/imageOperations/multiReceiptsReconstruction.spec.ts +++ b/tests/v1/imageOperations/multiReceiptsReconstruction.spec.ts @@ -2,7 +2,7 @@ import { expect } from "chai"; import { promises as fs } from "fs"; import * as path from "path"; import { Document, PathInput } from "@/index.js"; -import { MultiReceiptsDetectorV1 } from "@/product/index.js"; +import { MultiReceiptsDetectorV1 } from "@/v1/product/index.js"; import { extractReceipts } from "@/imageOperations/index.js"; import { RESOURCE_PATH, V1_PRODUCT_PATH } from "../../index.js"; diff --git a/tests/v1/input/localResponse.spec.ts b/tests/v1/input/localResponse.spec.ts index a7e74b43..2b631b43 100644 --- a/tests/v1/input/localResponse.spec.ts +++ b/tests/v1/input/localResponse.spec.ts @@ -1,8 +1,9 @@ import * as fs from "node:fs/promises"; import { expect } from "chai"; -import { Client, PredictResponse, AsyncPredictResponse, LocalResponse } from "@/index.js"; -import { InternationalIdV2, InvoiceV4, MultiReceiptsDetectorV1 } from "@/product/index.js"; import path from "path"; +import { AsyncPredictResponse, LocalResponseV1, PredictResponse } from "@/v1/index.js"; +import { Client } from "@/index.js"; +import { InternationalIdV2, InvoiceV4, MultiReceiptsDetectorV1 } from "@/v1/product/index.js"; import { V1_RESOURCE_PATH, V1_PRODUCT_PATH } from "../../index.js"; const signature: string = "5ed1673e34421217a5dbfcad905ee62261a3dd66c442f3edd19302072bbf70d0"; @@ -19,7 +20,7 @@ const internationalIdPath: string = path.join( describe("MindeeV1 - Load Local Response", () => { it("should load a string properly.", async () => { const fileObj = await fs.readFile(filePath, { encoding: "utf-8" }); - const localResponse = new LocalResponse(fileObj); + const localResponse = new LocalResponseV1(fileObj); await localResponse.init(); expect(localResponse.asDict()).to.not.be.null; expect(localResponse.isValidHmacSignature(dummySecretKey, "invalid signature")).to.be.false; @@ -28,7 +29,7 @@ describe("MindeeV1 - Load Local Response", () => { }); it("should load a file properly.", async () => { - const localResponse = new LocalResponse(filePath); + const localResponse = new LocalResponseV1(filePath); await localResponse.init(); expect(localResponse.asDict()).to.not.be.null; expect(localResponse.isValidHmacSignature(dummySecretKey, "invalid signature")).to.be.false; @@ -39,7 +40,7 @@ describe("MindeeV1 - Load Local Response", () => { it("should load a buffer properly.", async () => { const fileStr = (await fs.readFile(filePath, { encoding: "utf-8" })).replace(/\r/g, "").replace(/\n/g, ""); const fileBuffer = Buffer.from(fileStr, "utf-8"); - const localResponse = new LocalResponse(fileBuffer); + const localResponse = new LocalResponseV1(fileBuffer); await localResponse.init(); expect(localResponse.asDict()).to.not.be.null; expect(localResponse.isValidHmacSignature(dummySecretKey, "invalid signature")).to.be.false; @@ -49,7 +50,7 @@ describe("MindeeV1 - Load Local Response", () => { it("should load into a sync prediction.", async () => { const fileObj = await fs.readFile(multiReceiptsDetectorPath, { encoding: "utf-8" }); - const localResponse = new LocalResponse(fileObj); + const localResponse = new LocalResponseV1(fileObj); const dummyClient = new Client({ apiKey: "dummy-key" }); const prediction = await dummyClient.loadPrediction(MultiReceiptsDetectorV1, localResponse); expect(prediction).to.be.an.instanceof(PredictResponse); @@ -59,7 +60,7 @@ describe("MindeeV1 - Load Local Response", () => { it("should load a failed prediction.", async () => { const fileObj = await fs.readFile(failedPath, { encoding: "utf-8" }); - const localResponse = new LocalResponse(fileObj); + const localResponse = new LocalResponseV1(fileObj); const dummyClient = new Client({ apiKey: "dummy-key" }); const prediction = await dummyClient.loadPrediction(InvoiceV4, localResponse); expect(prediction).to.be.an.instanceof(AsyncPredictResponse); @@ -68,7 +69,7 @@ describe("MindeeV1 - Load Local Response", () => { it("should load into an async prediction.", async () => { const fileObj = await fs.readFile(internationalIdPath, { encoding: "utf-8" }); - const localResponse = new LocalResponse(fileObj); + const localResponse = new LocalResponseV1(fileObj); const dummyClient = new Client({ apiKey: "dummy-key" }); const prediction = await dummyClient.loadPrediction(InternationalIdV2, localResponse); expect(prediction).to.be.an.instanceof(AsyncPredictResponse); diff --git a/tests/v1/parsing/standard/amount.spec.ts b/tests/v1/parsing/standard/amount.spec.ts index b9e36e16..584c23f5 100644 --- a/tests/v1/parsing/standard/amount.spec.ts +++ b/tests/v1/parsing/standard/amount.spec.ts @@ -1,4 +1,4 @@ -import { AmountField } from "@/parsing/standard/index.js"; +import { AmountField } from "@/v1/parsing/standard/index.js"; import { expect } from "chai"; describe("Test AmountField field", () => { diff --git a/tests/v1/parsing/standard/classification.spec.ts b/tests/v1/parsing/standard/classification.spec.ts index d8ae02b8..cf7674cc 100644 --- a/tests/v1/parsing/standard/classification.spec.ts +++ b/tests/v1/parsing/standard/classification.spec.ts @@ -1,4 +1,4 @@ -import { ClassificationField } from "@/parsing/standard/index.js"; +import { ClassificationField } from "@/v1/parsing/standard/index.js"; import { expect } from "chai"; describe("Test Classification field", () => { diff --git a/tests/v1/parsing/standard/date.spec.ts b/tests/v1/parsing/standard/date.spec.ts index 20519b2f..a928f97c 100644 --- a/tests/v1/parsing/standard/date.spec.ts +++ b/tests/v1/parsing/standard/date.spec.ts @@ -1,4 +1,4 @@ -import { DateField } from "@/parsing/standard/index.js"; +import { DateField } from "@/v1/parsing/standard/index.js"; import { expect } from "chai"; describe("Test Date field", () => { diff --git a/tests/v1/parsing/standard/field.spec.ts b/tests/v1/parsing/standard/field.spec.ts index 01c36a10..2bcbfd07 100644 --- a/tests/v1/parsing/standard/field.spec.ts +++ b/tests/v1/parsing/standard/field.spec.ts @@ -1,5 +1,5 @@ import { expect } from "chai"; -import { Field } from "@/parsing/standard/index.js"; +import { Field } from "@/v1/parsing/standard/index.js"; describe("Test different inits of Field", () => { it("Should create a Field", () => { diff --git a/tests/v1/parsing/standard/locale.spec.ts b/tests/v1/parsing/standard/locale.spec.ts index fbde7c86..01a0984b 100644 --- a/tests/v1/parsing/standard/locale.spec.ts +++ b/tests/v1/parsing/standard/locale.spec.ts @@ -1,4 +1,4 @@ -import { LocaleField } from "@/parsing/standard/index.js"; +import { LocaleField } from "@/v1/parsing/standard/index.js"; import { expect } from "chai"; describe("Test LocaleField field", () => { diff --git a/tests/v1/parsing/standard/orientation.spec.ts b/tests/v1/parsing/standard/orientation.spec.ts index 45ef4c20..5ec946d5 100644 --- a/tests/v1/parsing/standard/orientation.spec.ts +++ b/tests/v1/parsing/standard/orientation.spec.ts @@ -1,4 +1,4 @@ -import { OrientationField } from "@/parsing/common/index.js"; +import { OrientationField } from "@/v1/parsing/common/index.js"; import { expect } from "chai"; describe("Test Orientation field", () => { diff --git a/tests/v1/parsing/standard/paymentDetails.spec.ts b/tests/v1/parsing/standard/paymentDetails.spec.ts index b2f4c9e8..4506a35a 100644 --- a/tests/v1/parsing/standard/paymentDetails.spec.ts +++ b/tests/v1/parsing/standard/paymentDetails.spec.ts @@ -1,4 +1,4 @@ -import { PaymentDetailsField } from "@/parsing/standard/index.js"; +import { PaymentDetailsField } from "@/v1/parsing/standard/index.js"; import { expect } from "chai"; describe("Test PaymentDetailsField field", () => { diff --git a/tests/v1/parsing/standard/position.spec.ts b/tests/v1/parsing/standard/position.spec.ts index 8e8a4c0b..64ef3e8f 100644 --- a/tests/v1/parsing/standard/position.spec.ts +++ b/tests/v1/parsing/standard/position.spec.ts @@ -1,4 +1,4 @@ -import { PositionField } from "@/parsing/standard/index.js"; +import { PositionField } from "@/v1/parsing/standard/index.js"; import { expect } from "chai"; describe("Test Position field", () => { diff --git a/tests/v1/parsing/standard/tax.spec.ts b/tests/v1/parsing/standard/tax.spec.ts index fb52d9ba..d5c124bb 100644 --- a/tests/v1/parsing/standard/tax.spec.ts +++ b/tests/v1/parsing/standard/tax.spec.ts @@ -1,4 +1,4 @@ -import { TaxField } from "@/parsing/standard/index.js"; +import { TaxField } from "@/v1/parsing/standard/index.js"; import { expect } from "chai"; describe("Test Tax field", () => { diff --git a/tests/v1/parsing/standard/text.spec.ts b/tests/v1/parsing/standard/text.spec.ts index 9eaf260c..53986db6 100644 --- a/tests/v1/parsing/standard/text.spec.ts +++ b/tests/v1/parsing/standard/text.spec.ts @@ -1,4 +1,4 @@ -import { StringField } from "@/parsing/standard/index.js"; +import { StringField } from "@/v1/parsing/standard/index.js"; import { expect } from "chai"; describe("Test String field", () => { diff --git a/tests/v1/product/fr/bankAccountDetails/bankAccountDetailsV1.spec.ts b/tests/v1/product/fr/bankAccountDetails/bankAccountDetailsV1.spec.ts index 50b859cc..93ef707b 100644 --- a/tests/v1/product/fr/bankAccountDetails/bankAccountDetailsV1.spec.ts +++ b/tests/v1/product/fr/bankAccountDetails/bankAccountDetailsV1.spec.ts @@ -4,7 +4,6 @@ import { V1_PRODUCT_PATH } from "../../../../index.js"; import { expect } from "chai"; import * as mindee from "@/index.js"; - const dataPath = { complete: path.join(V1_PRODUCT_PATH, "bank_account_details/response_v1/complete.json"), empty: path.join(V1_PRODUCT_PATH, "bank_account_details/response_v1/empty.json"), diff --git a/tests/v1/product/generated/generatedList.spec.ts b/tests/v1/product/generated/generatedList.spec.ts index a93262a9..f52787e5 100644 --- a/tests/v1/product/generated/generatedList.spec.ts +++ b/tests/v1/product/generated/generatedList.spec.ts @@ -1,5 +1,5 @@ import { expect } from "chai"; -import { GeneratedListField } from "@/parsing/generated"; +import { GeneratedListField } from "@/v1/parsing/generated"; describe("Generated List Field Objects", async () => { it("should properly format floats.", async () => { diff --git a/tests/v1/product/generated/generatedObject.spec.ts b/tests/v1/product/generated/generatedObject.spec.ts index 7d5aecda..d57f2973 100644 --- a/tests/v1/product/generated/generatedObject.spec.ts +++ b/tests/v1/product/generated/generatedObject.spec.ts @@ -1,5 +1,5 @@ import { expect } from "chai"; -import { GeneratedObjectField } from "@/parsing/generated"; +import { GeneratedObjectField } from "@/v1/parsing/generated"; describe("Generated Object Field", async () => { it("should properly format booleans.", async () => { diff --git a/tests/v1/product/generated/generatedV1.spec.ts b/tests/v1/product/generated/generatedV1.spec.ts index 834c7778..188d636b 100644 --- a/tests/v1/product/generated/generatedV1.spec.ts +++ b/tests/v1/product/generated/generatedV1.spec.ts @@ -3,10 +3,10 @@ import * as path from "path"; import { expect } from "chai"; import * as mindee from "@/index.js"; import { Page } from "@/index.js"; -import { GeneratedV1 } from "@/product/index.js"; -import { GeneratedListField, GeneratedObjectField } from "@/parsing/generated"; -import { GeneratedV1Page } from "@/product/generated/generatedV1Page"; -import { StringField } from "@/parsing/standard/index.js"; +import { GeneratedV1 } from "@/v1/product/index.js"; +import { GeneratedListField, GeneratedObjectField } from "@/v1/parsing/generated"; +import { GeneratedV1Page } from "@/v1/product/generated/generatedV1Page"; +import { StringField } from "@/v1/parsing/standard/index.js"; import { V1_PRODUCT_PATH } from "../../../index.js"; const dataPathInternationalId = { diff --git a/tests/v1/product/invoiceSplitter/invoiceSplitter.integration.ts b/tests/v1/product/invoiceSplitter/invoiceSplitter.integration.ts index 64fdb566..5ebd756d 100644 --- a/tests/v1/product/invoiceSplitter/invoiceSplitter.integration.ts +++ b/tests/v1/product/invoiceSplitter/invoiceSplitter.integration.ts @@ -1,5 +1,5 @@ import * as mindee from "@/index.js"; -import { InvoiceSplitterV1 } from "@/product/index.js"; +import { InvoiceSplitterV1 } from "@/v1/product/index.js"; import { expect } from "chai"; import { levenshteinRatio } from "../../../testingUtilities"; import { promises as fs } from "fs"; diff --git a/tests/v1/workflows/workflow.integration.ts b/tests/v1/workflows/workflow.integration.ts index 319da6e5..fb602434 100644 --- a/tests/v1/workflows/workflow.integration.ts +++ b/tests/v1/workflows/workflow.integration.ts @@ -1,10 +1,10 @@ import * as mindee from "@/index.js"; -import { ExecutionPriority } from "@/parsing/common/index.js"; +import { ExecutionPriority } from "@/v1/parsing/common/index.js"; import { expect } from "chai"; import { LocalInputSource } from "@/input/index.js"; import { OptionalAsyncOptions } from "@/client.js"; -import { FinancialDocumentV1 } from "@/product/index.js"; -import { RAGExtra } from "@/parsing/common/extras/ragExtra.js"; +import { FinancialDocumentV1 } from "@/v1/product/index.js"; +import { RAGExtra } from "@/v1/parsing/common/extras/ragExtra.js"; import path from "path"; import { V1_PRODUCT_PATH } from "../../index.js"; diff --git a/tests/v2/clientV2.integration.ts b/tests/v2/clientV2.integration.ts index 59867519..295bc97c 100644 --- a/tests/v2/clientV2.integration.ts +++ b/tests/v2/clientV2.integration.ts @@ -9,9 +9,9 @@ import { Base64Input, InferenceResponse, } from "@/index.js"; -import { Inference } from "@/parsing/v2/index.js"; -import { SimpleField } from "@/parsing/v2/field/index.js"; -import { MindeeHttpErrorV2 } from "@/errors/mindeeError.js"; +import { Inference } from "@/v2/parsing/index.js"; +import { SimpleField } from "@/v2/parsing/field/index.js"; +import { MindeeHttpErrorV2 } from "@/v2/http/index.js"; import * as fs from "node:fs"; import { RESOURCE_PATH, V2_PRODUCT_PATH, V2_RESOURCE_PATH } from "../index.js"; diff --git a/tests/v2/clientV2.spec.ts b/tests/v2/clientV2.spec.ts index 95363b36..866ec791 100644 --- a/tests/v2/clientV2.spec.ts +++ b/tests/v2/clientV2.spec.ts @@ -1,10 +1,11 @@ import { expect } from "chai"; import { MockAgent, setGlobalDispatcher } from "undici"; import path from "node:path"; -import { ClientV2, LocalResponse, PathInput, InferenceResponse } from "@/index.js"; -import { MindeeHttpErrorV2 } from "@/errors/mindeeError.js"; +import { ClientV2, PathInput, InferenceResponse } from "@/index.js"; +import { MindeeHttpErrorV2 } from "@/v2/http/index.js"; import assert from "node:assert/strict"; import { RESOURCE_PATH, V2_RESOURCE_PATH } from "../index.js"; +import { LocalResponseV2 } from "@/v2/localResponse.js"; const mockAgent = new MockAgent(); setGlobalDispatcher(mockAgent); @@ -112,7 +113,7 @@ describe("MindeeV2 - ClientV2", () => { "complete.json" ); - const localResponse = new LocalResponse(jsonPath); + const localResponse = new LocalResponseV2(jsonPath); const response: InferenceResponse = await localResponse.deserializeResponse(InferenceResponse); expect(response.inference.model.id).to.equal( diff --git a/tests/v2/input/inferenceParameter.spec.ts b/tests/v2/input/inferenceParameter.spec.ts index 72325c8f..a508f460 100644 --- a/tests/v2/input/inferenceParameter.spec.ts +++ b/tests/v2/input/inferenceParameter.spec.ts @@ -1,4 +1,4 @@ -import { StringDict } from "@/parsing/common/index.js"; +import { StringDict } from "@/parsing/index.js"; import path from "path"; import { V2_RESOURCE_PATH } from "../../index.js"; import { InferenceParameters } from "@/index.js"; diff --git a/tests/v2/input/localResponse.spec.ts b/tests/v2/input/localResponse.spec.ts index c8fe35a0..797ba322 100644 --- a/tests/v2/input/localResponse.spec.ts +++ b/tests/v2/input/localResponse.spec.ts @@ -1,6 +1,6 @@ import * as fs from "node:fs/promises"; import { expect } from "chai"; -import { InferenceResponse, LocalResponse } from "@/index.js"; +import { InferenceResponse, LocalResponseV2 } from "@/v2/index.js"; import path from "path"; import { V2_RESOURCE_PATH } from "../../index.js"; @@ -10,7 +10,7 @@ const signature: string = "1df388c992d87897fe61dfc56c444c58fc3c7369c31e2b5fd20d8 const dummySecretKey: string = "ogNjY44MhvKPGTtVsI8zG82JqWQa68woYQH"; const filePath: string = path.join(V2_RESOURCE_PATH, "inference/standard_field_types.json"); -async function assertLocalResponse(localResponse: LocalResponse) { +async function assertLocalResponse(localResponse: LocalResponseV2) { await localResponse.init(); expect(localResponse.asDict()).to.not.be.null; expect(localResponse.isValidHmacSignature(dummySecretKey, "invalid signature")).to.be.false; @@ -24,22 +24,22 @@ async function assertLocalResponse(localResponse: LocalResponse) { describe("MindeeV2 - Load Local Response", () => { it("should load a string properly.", async () => { const fileObj = await fs.readFile(filePath, { encoding: "utf-8" }); - await assertLocalResponse(new LocalResponse(fileObj)); + await assertLocalResponse(new LocalResponseV2(fileObj)); }); it("should load a file properly.", async () => { - await assertLocalResponse(new LocalResponse(filePath)); + await assertLocalResponse(new LocalResponseV2(filePath)); }); it("should load a buffer properly.", async () => { const fileStr = (await fs.readFile(filePath, { encoding: "utf-8" })).replace(/\r/g, "").replace(/\n/g, ""); const fileBuffer = Buffer.from(fileStr, "utf-8"); - await assertLocalResponse(new LocalResponse(fileBuffer)); + await assertLocalResponse(new LocalResponseV2(fileBuffer)); }); it("should deserialize a prediction.", async () => { const fileObj = await fs.readFile(filePath, { encoding: "utf-8" }); - const localResponse = new LocalResponse(fileObj); + const localResponse = new LocalResponseV2(fileObj); const response = await localResponse.deserializeResponse(InferenceResponse); expect(response).to.be.an.instanceof(InferenceResponse); diff --git a/tests/v2/parsing/inference.spec.ts b/tests/v2/parsing/inference.spec.ts index 3523780d..d63ff6ef 100644 --- a/tests/v2/parsing/inference.spec.ts +++ b/tests/v2/parsing/inference.spec.ts @@ -1,7 +1,7 @@ import { expect } from "chai"; import path from "node:path"; -import { LocalResponse, InferenceResponse, RawText, RagMetadata } from "@/index.js"; -import { FieldConfidence, ListField, ObjectField, SimpleField } from "@/parsing/v2/field/index.js"; +import { LocalResponseV2, InferenceResponse, RawText, RagMetadata } from "@/v2/index.js"; +import { FieldConfidence, ListField, ObjectField, SimpleField } from "@/v2/parsing/field/index.js"; import { promises as fs } from "node:fs"; import { Polygon } from "@/geometry/index.js"; import { V2_RESOURCE_PATH } from "../../index.js"; @@ -14,7 +14,7 @@ const standardFieldRstPath = path.join(inferencePath, "standard_field_types.rst" const locationFieldPath = path.join(findocPath, "complete_with_coordinates.json"); async function loadV2Inference(resourcePath: string): Promise { - const localResponse = new LocalResponse(resourcePath); + const localResponse = new LocalResponseV2(resourcePath); await localResponse.init(); return localResponse.deserializeResponse(InferenceResponse); } diff --git a/tests/v2/parsing/job.spec.ts b/tests/v2/parsing/job.spec.ts index 9e65874b..6d6d8da5 100644 --- a/tests/v2/parsing/job.spec.ts +++ b/tests/v2/parsing/job.spec.ts @@ -1,13 +1,12 @@ -import { JobResponse, LocalResponse } from "@/index.js"; +import { JobResponse, LocalResponseV2, ErrorResponse } from "@/v2/index.js"; import path from "node:path"; import { V2_RESOURCE_PATH } from "../../index.js"; import { expect } from "chai"; -import { ErrorResponse } from "@/parsing/v2/index.js"; const jobPath = path.join(V2_RESOURCE_PATH, "job"); async function loadV2Job(resourcePath: string): Promise { - const localResponse = new LocalResponse(resourcePath); + const localResponse = new LocalResponseV2(resourcePath); await localResponse.init(); return localResponse.deserializeResponse(JobResponse); } From 082c9d7c41fa94552b7a35861fc73281eb218be3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ianar=C3=A9=20S=C3=A9vi?= Date: Mon, 12 Jan 2026 12:36:08 +0100 Subject: [PATCH 2/2] moar rework --- docs/code_samples/bank_account_details_v1.txt | 6 +- docs/code_samples/bank_account_details_v2.txt | 6 +- docs/code_samples/bank_check_v1.txt | 6 +- docs/code_samples/barcode_reader_v1.txt | 6 +- docs/code_samples/carte_grise_v1.txt | 6 +- docs/code_samples/cropper_v1.txt | 6 +- docs/code_samples/default.txt | 6 +- docs/code_samples/default_async.txt | 6 +- docs/code_samples/default_v2.txt | 4 +- docs/code_samples/driver_license_v1_async.txt | 6 +- .../code_samples/energy_bill_fra_v1_async.txt | 6 +- docs/code_samples/expense_receipts_v5.txt | 6 +- .../expense_receipts_v5_async.txt | 6 +- docs/code_samples/financial_document_v1.txt | 6 +- .../financial_document_v1_async.txt | 6 +- .../french_healthcard_v1_async.txt | 6 +- docs/code_samples/idcard_fr_v1.txt | 6 +- docs/code_samples/idcard_fr_v2.txt | 6 +- docs/code_samples/ind_passport_v1_async.txt | 6 +- .../international_id_v2_async.txt | 6 +- .../invoice_splitter_v1_async.txt | 6 +- docs/code_samples/invoices_v4.txt | 6 +- docs/code_samples/invoices_v4_async.txt | 6 +- .../multi_receipts_detector_v1.txt | 6 +- docs/code_samples/passport_v1.txt | 6 +- docs/code_samples/payslip_fra_v2_async.txt | 6 +- docs/code_samples/payslip_fra_v3_async.txt | 6 +- docs/code_samples/resume_v1_async.txt | 6 +- docs/code_samples/us_mail_v3_async.txt | 6 +- docs/code_samples/workflow_execution.txt | 4 +- docs/code_samples/workflow_ots_rag.txt | 6 +- docs/code_samples/workflow_polling.txt | 6 +- .../extractedImage.ts | 6 +- .../imageCompressor.ts | 0 .../imageExtractor.ts | 0 src/image/index.ts | 3 + src/index.ts | 18 +-- src/input/{sources => }/base64Input.ts | 0 src/input/{sources => }/bufferInput.ts | 0 src/input/{sources => }/bytesInput.ts | 0 src/input/index.ts | 19 ++- src/input/{sources => }/inputSource.ts | 0 src/input/{sources => }/localInputSource.ts | 5 +- src/input/{sources => }/pathInput.ts | 0 src/input/sources/index.ts | 15 --- src/input/{sources => }/streamInput.ts | 0 src/input/{sources => }/urlInput.ts | 0 .../localResponseBase.ts} | 2 +- src/pdf/pdfCompressor.ts | 2 +- src/v1/client.ts | 25 ---- .../extraction}/index.ts | 3 - .../extractedInvoiceSplitterImage.ts | 2 +- .../invoiceSplitterExtractor/index.ts | 0 .../invoiceSplitterExtractor.ts | 0 .../extractedMultiReceiptImage.ts | 2 +- .../multiReceiptsExtractor/index.ts | 0 .../multiReceiptsExtractor.ts | 2 +- src/v1/index.ts | 11 +- src/v1/localResponse.ts | 7 -- src/v1/parsing/index.ts | 1 + src/v1/parsing/localResponse.ts | 32 +++++ src/v2/cli.ts | 6 +- src/v2/{clientV2.ts => client.ts} | 111 ++---------------- src/{input => v2/client}/dataSchema.ts | 2 +- src/v2/client/index.ts | 2 + src/v2/client/pollingOptions.ts | 89 ++++++++++++++ src/v2/http/mindeeApiV2.ts | 2 +- src/v2/index.ts | 7 +- src/v2/{ => parsing}/localResponse.ts | 4 +- tests/input/sources.integration.ts | 4 +- tests/input/sources.spec.ts | 2 +- tests/input/urlInputSource.integration.ts | 2 +- tests/v1/api/asyncResponse.spec.ts | 2 +- tests/v1/api/endpoint.spec.ts | 3 +- tests/v1/api/response.spec.ts | 2 +- tests/v1/clientInit.spec.ts | 2 +- .../invoiceSplitterExtractor.spec.ts | 2 +- .../invoiceSplitterReconstruction.spec.ts | 4 +- .../multiReceiptsExtractor.spec.ts | 2 +- ...multiReceiptsReconstruction.integration.ts | 6 +- .../multiReceiptsReconstruction.spec.ts | 5 +- tests/v1/extras/extras.integration.ts | 12 +- tests/v1/extras/fullTextOcr.spec.ts | 2 +- tests/v1/extras/ocr.spec.ts | 2 +- tests/v1/input/localResponse.spec.ts | 24 ++-- .../barcodeReader/barcodeReaderV1.spec.ts | 4 +- tests/v1/product/cropper/cropperV1.spec.ts | 6 +- .../driverLicense/driverLicenseV1.spec.ts | 4 +- .../financialDocumentV1.spec.ts | 10 +- .../bankAccountDetailsV1.spec.ts | 4 +- .../bankAccountDetailsV2.spec.ts | 4 +- .../fr/carteGrise/carteGriseV1.spec.ts | 4 +- .../fr/energyBill/energyBillV1.spec.ts | 4 +- .../fr/healthCard/healthCardV1.spec.ts | 4 +- tests/v1/product/fr/idCard/idCardV1.spec.ts | 6 +- tests/v1/product/fr/idCard/idCardV2.spec.ts | 6 +- tests/v1/product/fr/payslip/payslipV2.spec.ts | 4 +- tests/v1/product/fr/payslip/payslipV3.spec.ts | 4 +- .../product/generated/generatedList.spec.ts | 2 +- .../product/generated/generatedObject.spec.ts | 2 +- .../v1/product/generated/generatedV1.spec.ts | 14 +-- .../indianPassport/indianPassportV1.spec.ts | 4 +- .../internationalId/internationalIdV2.spec.ts | 4 +- tests/v1/product/invoice/invoiceV4.spec.ts | 4 +- .../invoiceSplitter.integration.ts | 12 +- .../invoiceSplitter/invoiceSplitterV1.spec.ts | 4 +- .../multiReceiptsDetectorV1.spec.ts | 4 +- tests/v1/product/passport/passportV1.spec.ts | 4 +- tests/v1/product/receipt/receiptV5.spec.ts | 4 +- tests/v1/product/resume/resumeV1.spec.ts | 4 +- .../product/us/bankCheck/bankCheckV1.spec.ts | 6 +- tests/v1/product/us/usMail/usMailV3.spec.ts | 4 +- tests/v1/workflows/workflow.integration.ts | 6 +- tests/v1/workflows/workflow.spec.ts | 3 +- ...2.integration.ts => client.integration.ts} | 6 +- tests/v2/{clientV2.spec.ts => client.spec.ts} | 10 +- tests/v2/input/inferenceParameter.spec.ts | 2 +- tests/v2/input/localResponse.spec.ts | 12 +- tests/v2/parsing/inference.spec.ts | 4 +- tests/v2/parsing/job.spec.ts | 4 +- 120 files changed, 442 insertions(+), 383 deletions(-) rename src/{imageOperations => image}/extractedImage.ts (96%) rename src/{imageOperations => image}/imageCompressor.ts (100%) rename src/{imageOperations => image}/imageExtractor.ts (100%) create mode 100644 src/image/index.ts rename src/input/{sources => }/base64Input.ts (100%) rename src/input/{sources => }/bufferInput.ts (100%) rename src/input/{sources => }/bytesInput.ts (100%) rename src/input/{sources => }/inputSource.ts (100%) rename src/input/{sources => }/localInputSource.ts (98%) rename src/input/{sources => }/pathInput.ts (100%) delete mode 100644 src/input/sources/index.ts rename src/input/{sources => }/streamInput.ts (100%) rename src/input/{sources => }/urlInput.ts (100%) rename src/{input/localResponse.ts => parsing/localResponseBase.ts} (98%) rename src/{imageOperations => v1/extraction}/index.ts (54%) rename src/{imageOperations => v1/extraction}/invoiceSplitterExtractor/extractedInvoiceSplitterImage.ts (85%) rename src/{imageOperations => v1/extraction}/invoiceSplitterExtractor/index.ts (100%) rename src/{imageOperations => v1/extraction}/invoiceSplitterExtractor/invoiceSplitterExtractor.ts (100%) rename src/{imageOperations => v1/extraction}/multiReceiptsExtractor/extractedMultiReceiptImage.ts (84%) rename src/{imageOperations => v1/extraction}/multiReceiptsExtractor/index.ts (100%) rename src/{imageOperations => v1/extraction}/multiReceiptsExtractor/multiReceiptsExtractor.ts (98%) delete mode 100644 src/v1/localResponse.ts create mode 100644 src/v1/parsing/localResponse.ts rename src/v2/{clientV2.ts => client.ts} (70%) rename src/{input => v2/client}/dataSchema.ts (98%) create mode 100644 src/v2/client/index.ts create mode 100644 src/v2/client/pollingOptions.ts rename src/v2/{ => parsing}/localResponse.ts (89%) rename tests/v1/{imageOperations => extraction}/invoiceSplitterExtractor.spec.ts (95%) rename tests/v1/{imageOperations => extraction}/invoiceSplitterReconstruction.spec.ts (95%) rename tests/v1/{imageOperations => extraction}/multiReceiptsExtractor.spec.ts (97%) rename tests/v1/{imageOperations => extraction}/multiReceiptsReconstruction.integration.ts (97%) rename tests/v1/{imageOperations => extraction}/multiReceiptsReconstruction.spec.ts (95%) rename tests/v2/{clientV2.integration.ts => client.integration.ts} (98%) rename tests/v2/{clientV2.spec.ts => client.spec.ts} (94%) diff --git a/docs/code_samples/bank_account_details_v1.txt b/docs/code_samples/bank_account_details_v1.txt index 2074b2d2..a5edf36a 100644 --- a/docs/code_samples/bank_account_details_v1.txt +++ b/docs/code_samples/bank_account_details_v1.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.parse( - mindee.product.fr.BankAccountDetailsV1, + mindee.v1.product.fr.BankAccountDetailsV1, inputSource ); diff --git a/docs/code_samples/bank_account_details_v2.txt b/docs/code_samples/bank_account_details_v2.txt index e1226a7f..43f3f232 100644 --- a/docs/code_samples/bank_account_details_v2.txt +++ b/docs/code_samples/bank_account_details_v2.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.parse( - mindee.product.fr.BankAccountDetailsV2, + mindee.v1.product.fr.BankAccountDetailsV2, inputSource ); diff --git a/docs/code_samples/bank_check_v1.txt b/docs/code_samples/bank_check_v1.txt index c10957cb..76c8d74f 100644 --- a/docs/code_samples/bank_check_v1.txt +++ b/docs/code_samples/bank_check_v1.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.parse( - mindee.product.us.BankCheckV1, + mindee.v1.product.us.BankCheckV1, inputSource ); diff --git a/docs/code_samples/barcode_reader_v1.txt b/docs/code_samples/barcode_reader_v1.txt index 7368e1c4..afea500f 100644 --- a/docs/code_samples/barcode_reader_v1.txt +++ b/docs/code_samples/barcode_reader_v1.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.parse( - mindee.product.BarcodeReaderV1, + mindee.v1.product.BarcodeReaderV1, inputSource ); diff --git a/docs/code_samples/carte_grise_v1.txt b/docs/code_samples/carte_grise_v1.txt index f597c727..38b8d04d 100644 --- a/docs/code_samples/carte_grise_v1.txt +++ b/docs/code_samples/carte_grise_v1.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.parse( - mindee.product.fr.CarteGriseV1, + mindee.v1.product.fr.CarteGriseV1, inputSource ); diff --git a/docs/code_samples/cropper_v1.txt b/docs/code_samples/cropper_v1.txt index 12afcf3e..e7513d2b 100644 --- a/docs/code_samples/cropper_v1.txt +++ b/docs/code_samples/cropper_v1.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.parse( - mindee.product.CropperV1, + mindee.v1.product.CropperV1, inputSource ); diff --git a/docs/code_samples/default.txt b/docs/code_samples/default.txt index 96b93842..875363d6 100644 --- a/docs/code_samples/default.txt +++ b/docs/code_samples/default.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -20,7 +22,7 @@ const customEndpoint = mindeeClient.createEndpoint( // Parse the file. const apiResponse = mindeeClient .parse( - mindee.product.GeneratedV1, + mindee.v1.product.GeneratedV1, inputSource, { endpoint: customEndpoint } ); diff --git a/docs/code_samples/default_async.txt b/docs/code_samples/default_async.txt index 232c51a3..f4260c2f 100644 --- a/docs/code_samples/default_async.txt +++ b/docs/code_samples/default_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -19,7 +21,7 @@ const customEndpoint = mindeeClient.createEndpoint( // Parse the file asynchronously. const asyncApiResponse = mindeeClient.enqueueAndParse( - mindee.product.GeneratedV1, + mindee.v1.product.GeneratedV1, inputSource, { endpoint: customEndpoint } ); diff --git a/docs/code_samples/default_v2.txt b/docs/code_samples/default_v2.txt index 4f43d600..bf95a030 100644 --- a/docs/code_samples/default_v2.txt +++ b/docs/code_samples/default_v2.txt @@ -7,7 +7,9 @@ const filePath = "/path/to/the/file.ext"; const modelId = "MY_MODEL_ID"; // Init a new client -const mindeeClient = new mindee.ClientV2({ apiKey: apiKey }); +const mindeeClient = new mindee.Client( + { apiKey: apiKey } +); // Set inference parameters const inferenceParams = { diff --git a/docs/code_samples/driver_license_v1_async.txt b/docs/code_samples/driver_license_v1_async.txt index 2c081f3c..c2e4c1b2 100644 --- a/docs/code_samples/driver_license_v1_async.txt +++ b/docs/code_samples/driver_license_v1_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.enqueueAndParse( - mindee.product.DriverLicenseV1, + mindee.v1.product.DriverLicenseV1, inputSource ); diff --git a/docs/code_samples/energy_bill_fra_v1_async.txt b/docs/code_samples/energy_bill_fra_v1_async.txt index 8d5ba1f5..fb52aac3 100644 --- a/docs/code_samples/energy_bill_fra_v1_async.txt +++ b/docs/code_samples/energy_bill_fra_v1_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.enqueueAndParse( - mindee.product.fr.EnergyBillV1, + mindee.v1.product.fr.EnergyBillV1, inputSource ); diff --git a/docs/code_samples/expense_receipts_v5.txt b/docs/code_samples/expense_receipts_v5.txt index bacb0b85..502cad69 100644 --- a/docs/code_samples/expense_receipts_v5.txt +++ b/docs/code_samples/expense_receipts_v5.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.parse( - mindee.product.ReceiptV5, + mindee.v1.product.ReceiptV5, inputSource ); diff --git a/docs/code_samples/expense_receipts_v5_async.txt b/docs/code_samples/expense_receipts_v5_async.txt index ec4162d8..6f8f0d7d 100644 --- a/docs/code_samples/expense_receipts_v5_async.txt +++ b/docs/code_samples/expense_receipts_v5_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.enqueueAndParse( - mindee.product.ReceiptV5, + mindee.v1.product.ReceiptV5, inputSource ); diff --git a/docs/code_samples/financial_document_v1.txt b/docs/code_samples/financial_document_v1.txt index 065e0bca..9e2a1ce3 100644 --- a/docs/code_samples/financial_document_v1.txt +++ b/docs/code_samples/financial_document_v1.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.parse( - mindee.product.FinancialDocumentV1, + mindee.v1.product.FinancialDocumentV1, inputSource ); diff --git a/docs/code_samples/financial_document_v1_async.txt b/docs/code_samples/financial_document_v1_async.txt index e856278e..e5063cf8 100644 --- a/docs/code_samples/financial_document_v1_async.txt +++ b/docs/code_samples/financial_document_v1_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.enqueueAndParse( - mindee.product.FinancialDocumentV1, + mindee.v1.product.FinancialDocumentV1, inputSource ); diff --git a/docs/code_samples/french_healthcard_v1_async.txt b/docs/code_samples/french_healthcard_v1_async.txt index c8d16616..2433d2c0 100644 --- a/docs/code_samples/french_healthcard_v1_async.txt +++ b/docs/code_samples/french_healthcard_v1_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.enqueueAndParse( - mindee.product.fr.HealthCardV1, + mindee.v1.product.fr.HealthCardV1, inputSource ); diff --git a/docs/code_samples/idcard_fr_v1.txt b/docs/code_samples/idcard_fr_v1.txt index 07a0973f..be7f748b 100644 --- a/docs/code_samples/idcard_fr_v1.txt +++ b/docs/code_samples/idcard_fr_v1.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.parse( - mindee.product.fr.IdCardV1, + mindee.v1.product.fr.IdCardV1, inputSource ); diff --git a/docs/code_samples/idcard_fr_v2.txt b/docs/code_samples/idcard_fr_v2.txt index 07db4803..d4e4d001 100644 --- a/docs/code_samples/idcard_fr_v2.txt +++ b/docs/code_samples/idcard_fr_v2.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.parse( - mindee.product.fr.IdCardV2, + mindee.v1.product.fr.IdCardV2, inputSource ); diff --git a/docs/code_samples/ind_passport_v1_async.txt b/docs/code_samples/ind_passport_v1_async.txt index 5daa5913..b8647a39 100644 --- a/docs/code_samples/ind_passport_v1_async.txt +++ b/docs/code_samples/ind_passport_v1_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.enqueueAndParse( - mindee.product.ind.IndianPassportV1, + mindee.v1.product.ind.IndianPassportV1, inputSource ); diff --git a/docs/code_samples/international_id_v2_async.txt b/docs/code_samples/international_id_v2_async.txt index 107261dc..3765f8eb 100644 --- a/docs/code_samples/international_id_v2_async.txt +++ b/docs/code_samples/international_id_v2_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.enqueueAndParse( - mindee.product.InternationalIdV2, + mindee.v1.product.InternationalIdV2, inputSource ); diff --git a/docs/code_samples/invoice_splitter_v1_async.txt b/docs/code_samples/invoice_splitter_v1_async.txt index 81c9a5af..451b6c1f 100644 --- a/docs/code_samples/invoice_splitter_v1_async.txt +++ b/docs/code_samples/invoice_splitter_v1_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.enqueueAndParse( - mindee.product.InvoiceSplitterV1, + mindee.v1.product.InvoiceSplitterV1, inputSource ); diff --git a/docs/code_samples/invoices_v4.txt b/docs/code_samples/invoices_v4.txt index cc80b368..c48565b6 100644 --- a/docs/code_samples/invoices_v4.txt +++ b/docs/code_samples/invoices_v4.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.parse( - mindee.product.InvoiceV4, + mindee.v1.product.InvoiceV4, inputSource ); diff --git a/docs/code_samples/invoices_v4_async.txt b/docs/code_samples/invoices_v4_async.txt index 85e4cc93..f11ed961 100644 --- a/docs/code_samples/invoices_v4_async.txt +++ b/docs/code_samples/invoices_v4_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.enqueueAndParse( - mindee.product.InvoiceV4, + mindee.v1.product.InvoiceV4, inputSource ); diff --git a/docs/code_samples/multi_receipts_detector_v1.txt b/docs/code_samples/multi_receipts_detector_v1.txt index 0c89b623..f17555ca 100644 --- a/docs/code_samples/multi_receipts_detector_v1.txt +++ b/docs/code_samples/multi_receipts_detector_v1.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.parse( - mindee.product.MultiReceiptsDetectorV1, + mindee.v1.product.MultiReceiptsDetectorV1, inputSource ); diff --git a/docs/code_samples/passport_v1.txt b/docs/code_samples/passport_v1.txt index 5fd1b9d2..c60f4ff9 100644 --- a/docs/code_samples/passport_v1.txt +++ b/docs/code_samples/passport_v1.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.parse( - mindee.product.PassportV1, + mindee.v1.product.PassportV1, inputSource ); diff --git a/docs/code_samples/payslip_fra_v2_async.txt b/docs/code_samples/payslip_fra_v2_async.txt index 8a053cd5..4db98d32 100644 --- a/docs/code_samples/payslip_fra_v2_async.txt +++ b/docs/code_samples/payslip_fra_v2_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.enqueueAndParse( - mindee.product.fr.PayslipV2, + mindee.v1.product.fr.PayslipV2, inputSource ); diff --git a/docs/code_samples/payslip_fra_v3_async.txt b/docs/code_samples/payslip_fra_v3_async.txt index 8ac5f253..5f57040a 100644 --- a/docs/code_samples/payslip_fra_v3_async.txt +++ b/docs/code_samples/payslip_fra_v3_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.enqueueAndParse( - mindee.product.fr.PayslipV3, + mindee.v1.product.fr.PayslipV3, inputSource ); diff --git a/docs/code_samples/resume_v1_async.txt b/docs/code_samples/resume_v1_async.txt index 20f699b0..f760cc57 100644 --- a/docs/code_samples/resume_v1_async.txt +++ b/docs/code_samples/resume_v1_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.enqueueAndParse( - mindee.product.ResumeV1, + mindee.v1.product.ResumeV1, inputSource ); diff --git a/docs/code_samples/us_mail_v3_async.txt b/docs/code_samples/us_mail_v3_async.txt index 5938069a..f9881a89 100644 --- a/docs/code_samples/us_mail_v3_async.txt +++ b/docs/code_samples/us_mail_v3_async.txt @@ -3,7 +3,9 @@ const mindee = require("mindee"); // import * as mindee from "mindee"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -12,7 +14,7 @@ const inputSource = new mindee.PathInput( // Parse the file const apiResponse = mindeeClient.enqueueAndParse( - mindee.product.us.UsMailV3, + mindee.v1.product.us.UsMailV3, inputSource ); diff --git a/docs/code_samples/workflow_execution.txt b/docs/code_samples/workflow_execution.txt index 8ee38248..7ab2f67d 100644 --- a/docs/code_samples/workflow_execution.txt +++ b/docs/code_samples/workflow_execution.txt @@ -5,7 +5,9 @@ const mindee = require("mindee"); const workflowId: string = "workflow-id"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( diff --git a/docs/code_samples/workflow_ots_rag.txt b/docs/code_samples/workflow_ots_rag.txt index ad50a07a..0cc72d3e 100644 --- a/docs/code_samples/workflow_ots_rag.txt +++ b/docs/code_samples/workflow_ots_rag.txt @@ -5,7 +5,9 @@ const mindee = require("mindee"); const workflowId: string = "workflow-id"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -20,7 +22,7 @@ const workflowParams = { // Parse the file asynchronously on a workflow queue const asyncApiResponse = mindeeClient.enqueueAndParse( - mindee.product.FinancialDocumentV1, + mindee.v1.product.FinancialDocumentV1, inputSource, workflowParams ); diff --git a/docs/code_samples/workflow_polling.txt b/docs/code_samples/workflow_polling.txt index eba9a306..9d6cf2c0 100644 --- a/docs/code_samples/workflow_polling.txt +++ b/docs/code_samples/workflow_polling.txt @@ -5,7 +5,9 @@ const mindee = require("mindee"); const workflowId: string = "workflow-id"; // Init a new client -const mindeeClient = new mindee.Client({ apiKey: "my-api-key" }); +const mindeeClient = new mindee.v1.Client( + { apiKey: "my-api-key" } +); // Load a file from disk const inputSource = new mindee.PathInput( @@ -27,7 +29,7 @@ const workflowParams = { // Parse the file asynchronously on a workflow queue const asyncApiResponse = mindeeClient.enqueueAndParse( - mindee.product.GeneratedV1, + mindee.v1.product.GeneratedV1, inputSource, workflowParams ); diff --git a/src/imageOperations/extractedImage.ts b/src/image/extractedImage.ts similarity index 96% rename from src/imageOperations/extractedImage.ts rename to src/image/extractedImage.ts index 5e16a1c0..e568014c 100644 --- a/src/imageOperations/extractedImage.ts +++ b/src/image/extractedImage.ts @@ -3,8 +3,7 @@ import { MindeeError } from "@/errors/index.js"; import { writeFileSync } from "node:fs"; import path from "node:path"; import { logger } from "@/logger.js"; -import { BufferInput } from "@/input/index.js"; -import { MIMETYPES } from "@/input/sources/localInputSource.js"; +import { BufferInput, MIMETYPES } from "@/input/index.js"; import { Poppler } from "node-poppler"; import { writeFile } from "fs/promises"; @@ -15,7 +14,6 @@ export class ExtractedImage { public buffer: Buffer; protected internalFileName: string; - protected constructor(buffer: Uint8Array, fileName: string) { this.buffer = Buffer.from(buffer); this.internalFileName = fileName; @@ -65,7 +63,6 @@ export class ExtractedImage { } } - /** * Attempts to saves the document to a file synchronously. * Throws an error if the file extension is not supported or if the file could not be saved to disk for some reason. @@ -92,7 +89,6 @@ export class ExtractedImage { } } - /** * Return the file as a Mindee-compatible BufferInput source. * diff --git a/src/imageOperations/imageCompressor.ts b/src/image/imageCompressor.ts similarity index 100% rename from src/imageOperations/imageCompressor.ts rename to src/image/imageCompressor.ts diff --git a/src/imageOperations/imageExtractor.ts b/src/image/imageExtractor.ts similarity index 100% rename from src/imageOperations/imageExtractor.ts rename to src/image/imageExtractor.ts diff --git a/src/image/index.ts b/src/image/index.ts new file mode 100644 index 00000000..5ace9a21 --- /dev/null +++ b/src/image/index.ts @@ -0,0 +1,3 @@ +export { compressImage } from "./imageCompressor.js"; +export { ExtractedImage } from "./extractedImage.js"; +export { extractFromPage } from "./imageExtractor.js"; diff --git a/src/index.ts b/src/index.ts index c61e2bb0..c40ab2be 100644 --- a/src/index.ts +++ b/src/index.ts @@ -9,30 +9,20 @@ export { PageOptionsOperation, } from "./input/index.js"; export type { PageOptions } from "./input/index.js"; -export * as imageOperations from "./imageOperations/index.js"; +export * as image from "./image/index.js"; // V1 export * as v1 from "./v1/index.js"; -export { - Client, - AsyncPredictResponse, - PredictResponse, - Inference, - Prediction, - Document, - Page, - product, -} from "./v1/index.js"; -export type { PredictOptions, WorkflowOptions } from "./v1/client.js"; // V2 export * as v2 from "./v2/index.js"; export { - ClientV2, + Client, InferenceFile, InferenceResponse, JobResponse, RawText, RagMetadata, + DataSchema, } from "./v2/index.js"; -export type { InferenceParameters, PollingOptions } from "./v2/clientV2.js"; +export type { InferenceParameters, PollingOptions } from "./v2/index.js"; diff --git a/src/input/sources/base64Input.ts b/src/input/base64Input.ts similarity index 100% rename from src/input/sources/base64Input.ts rename to src/input/base64Input.ts diff --git a/src/input/sources/bufferInput.ts b/src/input/bufferInput.ts similarity index 100% rename from src/input/sources/bufferInput.ts rename to src/input/bufferInput.ts diff --git a/src/input/sources/bytesInput.ts b/src/input/bytesInput.ts similarity index 100% rename from src/input/sources/bytesInput.ts rename to src/input/bytesInput.ts diff --git a/src/input/index.ts b/src/input/index.ts index 7a7c52e4..00baaa60 100644 --- a/src/input/index.ts +++ b/src/input/index.ts @@ -1,7 +1,18 @@ +export { Base64Input } from "./base64Input.js"; +export { BufferInput } from "./bufferInput.js"; +export { BytesInput } from "./bytesInput.js"; export { - DataSchema, DataSchemaField, DataSchemaReplace -} from "./dataSchema.js"; -export * from "./sources/index.js"; -export { LocalResponse } from "./localResponse.js"; + InputSource, + INPUT_TYPE_PATH, + INPUT_TYPE_STREAM, + INPUT_TYPE_BUFFER, + INPUT_TYPE_BASE64, + INPUT_TYPE_BYTES +} from "./inputSource.js"; +export type { InputConstructor } from "./inputSource.js"; +export { LocalInputSource, MIMETYPES } from "./localInputSource.js"; +export { PathInput } from "./pathInput.js"; +export { StreamInput } from "./streamInput.js"; +export { UrlInput } from "./urlInput.js"; export { PageOptionsOperation } from "./pageOptions.js"; export type { PageOptions } from "./pageOptions.js"; diff --git a/src/input/sources/inputSource.ts b/src/input/inputSource.ts similarity index 100% rename from src/input/sources/inputSource.ts rename to src/input/inputSource.ts diff --git a/src/input/sources/localInputSource.ts b/src/input/localInputSource.ts similarity index 98% rename from src/input/sources/localInputSource.ts rename to src/input/localInputSource.ts index 9e66615c..68af1c1b 100644 --- a/src/input/sources/localInputSource.ts +++ b/src/input/localInputSource.ts @@ -1,10 +1,10 @@ import { errorHandler } from "@/errors/handler.js"; import { logger } from "@/logger.js"; -import { compressImage } from "@/imageOperations/index.js"; +import { compressImage } from "@/image/index.js"; import { compressPdf, countPages, extractPages, hasSourceText } from "@/pdf/index.js"; import path from "path"; import { fileTypeFromBuffer } from "file-type"; -import { PageOptions } from "../pageOptions.js"; +import { PageOptions } from "../input/pageOptions.js"; import { InputSource, InputConstructor, @@ -24,6 +24,7 @@ export const MIMETYPES = new Map([ [".tiff", "image/tiff"], [".webp", "image/webp"], ]); + const ALLOWED_INPUT_TYPES = [ INPUT_TYPE_STREAM, INPUT_TYPE_BASE64, diff --git a/src/input/sources/pathInput.ts b/src/input/pathInput.ts similarity index 100% rename from src/input/sources/pathInput.ts rename to src/input/pathInput.ts diff --git a/src/input/sources/index.ts b/src/input/sources/index.ts deleted file mode 100644 index 34b7feff..00000000 --- a/src/input/sources/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -export { Base64Input } from "./base64Input.js"; -export { BufferInput } from "./bufferInput.js"; -export { BytesInput } from "./bytesInput.js"; -export { - InputSource, - INPUT_TYPE_PATH, - INPUT_TYPE_STREAM, INPUT_TYPE_BUFFER, - INPUT_TYPE_BASE64, - INPUT_TYPE_BYTES -} from "./inputSource.js"; -export type { InputConstructor } from "./inputSource.js"; -export { LocalInputSource } from "./localInputSource.js"; -export { PathInput } from "./pathInput.js"; -export { StreamInput } from "./streamInput.js"; -export { UrlInput } from "./urlInput.js"; diff --git a/src/input/sources/streamInput.ts b/src/input/streamInput.ts similarity index 100% rename from src/input/sources/streamInput.ts rename to src/input/streamInput.ts diff --git a/src/input/sources/urlInput.ts b/src/input/urlInput.ts similarity index 100% rename from src/input/sources/urlInput.ts rename to src/input/urlInput.ts diff --git a/src/input/localResponse.ts b/src/parsing/localResponseBase.ts similarity index 98% rename from src/input/localResponse.ts rename to src/parsing/localResponseBase.ts index 8b487260..e920f495 100644 --- a/src/input/localResponse.ts +++ b/src/parsing/localResponseBase.ts @@ -8,7 +8,7 @@ import { Buffer } from "buffer"; * Local response loaded from a file. * Note: Has to be initialized through init() before use. */ -export abstract class LocalResponse { +export abstract class LocalResponseBase { private file: Buffer; private readonly inputHandle: Buffer | string; protected initialized = false; diff --git a/src/pdf/pdfCompressor.ts b/src/pdf/pdfCompressor.ts index 32409017..c031a679 100644 --- a/src/pdf/pdfCompressor.ts +++ b/src/pdf/pdfCompressor.ts @@ -4,7 +4,7 @@ import { ExtractedPdfInfo, extractTextFromPdf, hasSourceText } from "./pdfUtils. import * as fs from "node:fs"; import { Poppler } from "node-poppler"; import { PDFDocument, PDFFont, PDFPage, rgb, StandardFonts } from "@cantoo/pdf-lib"; -import { compressImage } from "@/imageOperations/imageCompressor.js"; +import { compressImage } from "@/image/index.js"; /** * Compresses each page of a provided PDF buffer. diff --git a/src/v1/client.ts b/src/v1/client.ts index dc8b45be..51364859 100644 --- a/src/v1/client.ts +++ b/src/v1/client.ts @@ -2,11 +2,9 @@ import { setTimeout } from "node:timers/promises"; import { Dispatcher } from "undici"; import { InputSource, - LocalResponse, PageOptions, } from "@/input/index.js"; import { BaseHttpResponse } from "@/http/index.js"; -import { MindeeError } from "@/errors/index.js"; import { errorHandler } from "@/errors/handler.js"; import { LOG_LEVELS, logger } from "@/logger.js"; import { @@ -248,29 +246,6 @@ export class Client { return new AsyncPredictResponse(productClass, docResponse.data); } - async loadPrediction( - productClass: new (httpResponse: StringDict) => T, - localResponse: LocalResponse - ) { - /** - * Load a prediction. - * - * @param productClass Product class to use for calling the API and parsing the response. - * @param localResponse Local response to load. - * @category Asynchronous - * @returns A valid prediction - */ - try { - const asDict = await localResponse.asDict(); - if (Object.prototype.hasOwnProperty.call(asDict, "job")) { - return new AsyncPredictResponse(productClass, asDict); - } - return new PredictResponse(productClass, asDict); - } catch { - throw new MindeeError("No prediction found in local response."); - } - } - /** * Send the document to an asynchronous endpoint and return its ID in the queue. * @param inputSource file to send to the API. diff --git a/src/imageOperations/index.ts b/src/v1/extraction/index.ts similarity index 54% rename from src/imageOperations/index.ts rename to src/v1/extraction/index.ts index b90e983b..cf7cd9ea 100644 --- a/src/imageOperations/index.ts +++ b/src/v1/extraction/index.ts @@ -1,5 +1,2 @@ export { extractReceipts, ExtractedMultiReceiptImage } from "./multiReceiptsExtractor/index.js"; export { extractInvoices, ExtractedInvoiceSplitterImage } from "./invoiceSplitterExtractor/index.js"; -export { compressImage } from "./imageCompressor.js"; -export { ExtractedImage } from "./extractedImage.js"; -export { extractFromPage } from "./imageExtractor.js"; diff --git a/src/imageOperations/invoiceSplitterExtractor/extractedInvoiceSplitterImage.ts b/src/v1/extraction/invoiceSplitterExtractor/extractedInvoiceSplitterImage.ts similarity index 85% rename from src/imageOperations/invoiceSplitterExtractor/extractedInvoiceSplitterImage.ts rename to src/v1/extraction/invoiceSplitterExtractor/extractedInvoiceSplitterImage.ts index f26160f9..21f3c0c3 100644 --- a/src/imageOperations/invoiceSplitterExtractor/extractedInvoiceSplitterImage.ts +++ b/src/v1/extraction/invoiceSplitterExtractor/extractedInvoiceSplitterImage.ts @@ -1,4 +1,4 @@ -import { ExtractedImage } from "@/imageOperations/extractedImage.js"; +import { ExtractedImage } from "@/image/extractedImage.js"; /** * Wrapper class for extracted invoice pages. diff --git a/src/imageOperations/invoiceSplitterExtractor/index.ts b/src/v1/extraction/invoiceSplitterExtractor/index.ts similarity index 100% rename from src/imageOperations/invoiceSplitterExtractor/index.ts rename to src/v1/extraction/invoiceSplitterExtractor/index.ts diff --git a/src/imageOperations/invoiceSplitterExtractor/invoiceSplitterExtractor.ts b/src/v1/extraction/invoiceSplitterExtractor/invoiceSplitterExtractor.ts similarity index 100% rename from src/imageOperations/invoiceSplitterExtractor/invoiceSplitterExtractor.ts rename to src/v1/extraction/invoiceSplitterExtractor/invoiceSplitterExtractor.ts diff --git a/src/imageOperations/multiReceiptsExtractor/extractedMultiReceiptImage.ts b/src/v1/extraction/multiReceiptsExtractor/extractedMultiReceiptImage.ts similarity index 84% rename from src/imageOperations/multiReceiptsExtractor/extractedMultiReceiptImage.ts rename to src/v1/extraction/multiReceiptsExtractor/extractedMultiReceiptImage.ts index 4ea29ea2..075cc633 100644 --- a/src/imageOperations/multiReceiptsExtractor/extractedMultiReceiptImage.ts +++ b/src/v1/extraction/multiReceiptsExtractor/extractedMultiReceiptImage.ts @@ -1,4 +1,4 @@ -import { ExtractedImage } from "@/imageOperations/extractedImage.js"; +import { ExtractedImage } from "@/image/index.js"; /** * Wrapper class for extracted multiple-receipts images. diff --git a/src/imageOperations/multiReceiptsExtractor/index.ts b/src/v1/extraction/multiReceiptsExtractor/index.ts similarity index 100% rename from src/imageOperations/multiReceiptsExtractor/index.ts rename to src/v1/extraction/multiReceiptsExtractor/index.ts diff --git a/src/imageOperations/multiReceiptsExtractor/multiReceiptsExtractor.ts b/src/v1/extraction/multiReceiptsExtractor/multiReceiptsExtractor.ts similarity index 98% rename from src/imageOperations/multiReceiptsExtractor/multiReceiptsExtractor.ts rename to src/v1/extraction/multiReceiptsExtractor/multiReceiptsExtractor.ts index 86865066..ce830799 100644 --- a/src/imageOperations/multiReceiptsExtractor/multiReceiptsExtractor.ts +++ b/src/v1/extraction/multiReceiptsExtractor/multiReceiptsExtractor.ts @@ -4,7 +4,7 @@ import { Polygon } from "@/geometry/index.js"; import { MultiReceiptsDetectorV1 } from "@/v1/product/index.js"; import { ExtractedMultiReceiptImage } from "./extractedMultiReceiptImage.js"; import { LocalInputSource } from "@/input/index.js"; -import { extractFromPage } from "@/imageOperations/index.js"; +import { extractFromPage } from "@/image/index.js"; import { PositionField } from "@/v1/parsing/standard/index.js"; /** diff --git a/src/v1/index.ts b/src/v1/index.ts index 204892da..a0263960 100644 --- a/src/v1/index.ts +++ b/src/v1/index.ts @@ -1,9 +1,14 @@ +export * as extraction from "./extraction/index.js"; export * as http from "./http/index.js"; -export * as product from "./product/index.js"; export * as parsing from "./parsing/index.js"; -export { LocalResponseV1 } from "./localResponse.js"; +export * as product from "./product/index.js"; +export { LocalResponse } from "./parsing/localResponse.js"; export { Client } from "./client.js"; -export type { PredictOptions, WorkflowOptions } from "./client.js"; +export type { + OptionalAsyncOptions, + PredictOptions, + WorkflowOptions +} from "./client.js"; export { AsyncPredictResponse, PredictResponse, diff --git a/src/v1/localResponse.ts b/src/v1/localResponse.ts deleted file mode 100644 index 7fa8d4cb..00000000 --- a/src/v1/localResponse.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { LocalResponse } from "@/input/index.js"; - -/** - * Local response loaded from a file. - * Note: Has to be initialized through init() before use. - */ -export class LocalResponseV1 extends LocalResponse { } diff --git a/src/v1/parsing/index.ts b/src/v1/parsing/index.ts index 60bee7d4..b2fa95a5 100644 --- a/src/v1/parsing/index.ts +++ b/src/v1/parsing/index.ts @@ -1,3 +1,4 @@ export * as common from "./common/index.js"; export * as generated from "./generated/index.js"; export * as standard from "./standard/index.js"; +export { LocalResponse } from "./localResponse.js"; diff --git a/src/v1/parsing/localResponse.ts b/src/v1/parsing/localResponse.ts new file mode 100644 index 00000000..9ba58346 --- /dev/null +++ b/src/v1/parsing/localResponse.ts @@ -0,0 +1,32 @@ +import { LocalResponseBase } from "@/parsing/localResponseBase.js"; +import { AsyncPredictResponse, Inference, PredictResponse } from "@/v1/index.js"; +import { StringDict } from "@/parsing/index.js"; +import { MindeeError } from "@/errors/index.js"; + +/** + * Local response loaded from a file. + * Note: Has to be initialized through init() before use. + */ +export class LocalResponse extends LocalResponseBase { + async loadPrediction( + productClass: new (httpResponse: StringDict) => T + ) { + /** + * Load a prediction. + * + * @param productClass Product class to use for calling the API and parsing the response. + * @param localResponse Local response to load. + * @category Asynchronous + * @returns A valid prediction + */ + try { + const asDict = await this.asDict(); + if (Object.prototype.hasOwnProperty.call(asDict, "job")) { + return new AsyncPredictResponse(productClass, asDict); + } + return new PredictResponse(productClass, asDict); + } catch { + throw new MindeeError("No prediction found in local response."); + } + } +} diff --git a/src/v2/cli.ts b/src/v2/cli.ts index 5b201fd9..bedb1413 100644 --- a/src/v2/cli.ts +++ b/src/v2/cli.ts @@ -1,5 +1,5 @@ import { Command, OptionValues } from "commander"; -import { ClientV2 } from "./clientV2.js"; +import { Client } from "./client.js"; import { PathInput } from "../input/index.js"; import * as console from "console"; import { Inference } from "@/v2/parsing/index.js"; @@ -11,8 +11,8 @@ const program = new Command(); // EXECUTE THE COMMANDS // -function initClient(options: OptionValues): ClientV2 { - return new ClientV2({ +function initClient(options: OptionValues): Client { + return new Client({ apiKey: options.apiKey, debug: options.debug, }); diff --git a/src/v2/clientV2.ts b/src/v2/client.ts similarity index 70% rename from src/v2/clientV2.ts rename to src/v2/client.ts index 7dc68e47..53e17c29 100644 --- a/src/v2/clientV2.ts +++ b/src/v2/client.ts @@ -1,64 +1,14 @@ -import { Dispatcher } from "undici"; -import { DataSchema, InputSource } from "../input/index.js"; -import { errorHandler } from "../errors/handler.js"; -import { LOG_LEVELS, logger } from "../logger.js"; import { setTimeout } from "node:timers/promises"; -import { ErrorResponse, InferenceResponse, JobResponse } from "@/v2/parsing/index.js"; -import { MindeeApiV2 } from "./http/mindeeApiV2.js"; -import { MindeeHttpErrorV2 } from "@/v2/http/errors.js"; +import { Dispatcher } from "undici"; +import { InputSource } from "@/input/index.js"; +import { errorHandler } from "@/errors/handler.js"; +import { LOG_LEVELS, logger } from "@/logger.js"; import { StringDict } from "@/parsing/stringDict.js"; - -/** - * Parameters for the internal polling loop in {@link ClientV2.enqueueAndGetInference | enqueueAndGetInference()}. - * - * Default behavior: - * - `initialDelaySec` = 2s - * - `delaySec` = 1.5s - * - `maxRetries` = 80 - * - * Validation rules: - * - `initialDelaySec` >= 1 - * - `delaySec` >= 1 - * - `maxRetries` >= 2 - * - * The `initialTimerOptions` and `recurringTimerOptions` objects let you pass an - * `AbortSignal` or make the timer `unref`-ed to the `setTimeout()`. - * - * @category ClientV2 - * @example - * const params = { - * initialDelaySec: 4, - * delaySec: 2, - * maxRetries: 50 - * }; - * - * const inference = await client.enqueueAndGetInference(inputDoc, params); - */ - -export interface PollingOptions { - /** Number of seconds to wait *before the first poll*. */ - initialDelaySec?: number; - /** Interval in seconds between two consecutive polls. */ - delaySec?: number; - /** Maximum number of polling attempts (including the first one). */ - maxRetries?: number; - /** Options passed to the initial `setTimeout()`. */ - initialTimerOptions?: { - ref?: boolean, - signal?: AbortSignal - }; - /** Options passed to every recurring `setTimeout()`. */ - recurringTimerOptions?: { - ref?: boolean, - signal?: AbortSignal - } -} - -interface ValidatedPollingOptions extends PollingOptions { - initialDelaySec: number; - delaySec: number; - maxRetries: number; -} +import { ErrorResponse, InferenceResponse, JobResponse } from "./parsing/index.js"; +import { MindeeApiV2 } from "./http/mindeeApiV2.js"; +import { MindeeHttpErrorV2 } from "./http/errors.js"; +import { PollingOptions, DataSchema } from "./client/index.js"; +import { setAsyncParams } from "./client/pollingOptions.js"; /** * Parameters accepted by the asynchronous **inference** v2 endpoint. @@ -128,6 +78,7 @@ export interface ClientOptions { throwOnError?: boolean; /** Log debug messages. */ debug?: boolean; + /** Custom Dispatcher instance for the HTTP requests. */ dispatcher?: Dispatcher; } @@ -136,7 +87,7 @@ export interface ClientOptions { * * @category ClientV2 */ -export class ClientV2 { +export class Client { /** Mindee V2 API handler. */ protected mindeeApi: MindeeApiV2; @@ -219,44 +170,6 @@ export class ClientV2 { return await this.mindeeApi.reqGetJob(jobId); } - /** - * Checks the values for asynchronous parsing. Returns their corrected value if they are undefined. - * @param asyncParams parameters related to asynchronous parsing - * @returns A valid `AsyncOptions`. - */ - #setAsyncParams(asyncParams: PollingOptions | undefined = undefined): ValidatedPollingOptions { - const minDelaySec = 1; - const minInitialDelay = 1; - const minRetries = 2; - let newAsyncParams: PollingOptions; - if (asyncParams === undefined) { - newAsyncParams = { - delaySec: 1.5, - initialDelaySec: 2, - maxRetries: 80 - }; - } else { - newAsyncParams = { ...asyncParams }; - if ( - !newAsyncParams.delaySec || - !newAsyncParams.initialDelaySec || - !newAsyncParams.maxRetries - ) { - throw Error("Invalid polling options."); - } - if (newAsyncParams.delaySec < minDelaySec) { - throw Error(`Cannot set auto-parsing delay to less than ${minDelaySec} second(s).`); - } - if (newAsyncParams.initialDelaySec < minInitialDelay) { - throw Error(`Cannot set initial parsing delay to less than ${minInitialDelay} second(s).`); - } - if (newAsyncParams.maxRetries < minRetries) { - throw Error(`Cannot set retry to less than ${minRetries}.`); - } - } - return newAsyncParams as ValidatedPollingOptions; - } - /** * Send a document to an endpoint and poll the server until the result is sent or * until the maximum number of tries is reached. @@ -272,7 +185,7 @@ export class ClientV2 { inputSource: InputSource, params: InferenceParameters ): Promise { - const validatedAsyncParams = this.#setAsyncParams(params.pollingOptions); + const validatedAsyncParams = setAsyncParams(params.pollingOptions); const enqueueResponse: JobResponse = await this.enqueueInference(inputSource, params); if (enqueueResponse.job.id === undefined || enqueueResponse.job.id.length === 0) { logger.error(`Failed enqueueing:\n${enqueueResponse.getRawHttp()}`); diff --git a/src/input/dataSchema.ts b/src/v2/client/dataSchema.ts similarity index 98% rename from src/input/dataSchema.ts rename to src/v2/client/dataSchema.ts index 1e3d7a01..19787dc2 100644 --- a/src/input/dataSchema.ts +++ b/src/v2/client/dataSchema.ts @@ -1,5 +1,5 @@ import { StringDict } from "@/parsing/stringDict.js"; -import { MindeeError } from "../errors/index.js"; +import { MindeeError } from "@/errors/index.js"; export class DataSchemaField { /** diff --git a/src/v2/client/index.ts b/src/v2/client/index.ts new file mode 100644 index 00000000..c31c7b5d --- /dev/null +++ b/src/v2/client/index.ts @@ -0,0 +1,2 @@ +export { DataSchema } from "./dataSchema.js"; +export type { PollingOptions, ValidatedPollingOptions } from "./pollingOptions.js"; diff --git a/src/v2/client/pollingOptions.ts b/src/v2/client/pollingOptions.ts new file mode 100644 index 00000000..2ad4a5c8 --- /dev/null +++ b/src/v2/client/pollingOptions.ts @@ -0,0 +1,89 @@ +/** + * Parameters for the internal polling loop in {@link ClientV2.enqueueAndGetInference | enqueueAndGetInference()}. + * + * Default behavior: + * - `initialDelaySec` = 2s + * - `delaySec` = 1.5s + * - `maxRetries` = 80 + * + * Validation rules: + * - `initialDelaySec` >= 1 + * - `delaySec` >= 1 + * - `maxRetries` >= 2 + * + * The `initialTimerOptions` and `recurringTimerOptions` objects let you pass an + * `AbortSignal` or make the timer `unref`-ed to the `setTimeout()`. + * + * @category ClientV2 + * @example + * const params = { + * initialDelaySec: 4, + * delaySec: 2, + * maxRetries: 50 + * }; + * + * const inference = await client.enqueueAndGetInference(inputDoc, params); + */ + +export interface PollingOptions { + /** Number of seconds to wait *before the first poll*. */ + initialDelaySec?: number; + /** Interval in seconds between two consecutive polls. */ + delaySec?: number; + /** Maximum number of polling attempts (including the first one). */ + maxRetries?: number; + /** Options passed to the initial `setTimeout()`. */ + initialTimerOptions?: { + ref?: boolean, + signal?: AbortSignal + }; + /** Options passed to every recurring `setTimeout()`. */ + recurringTimerOptions?: { + ref?: boolean, + signal?: AbortSignal + } +} + +export interface ValidatedPollingOptions extends PollingOptions { + initialDelaySec: number; + delaySec: number; + maxRetries: number; +} + +/** + * Checks the values for asynchronous parsing. Returns their corrected value if they are undefined. + * @param asyncParams parameters related to asynchronous parsing + * @returns A valid `AsyncOptions`. + */ +export function setAsyncParams(asyncParams: PollingOptions | undefined = undefined): ValidatedPollingOptions { + const minDelaySec = 1; + const minInitialDelay = 1; + const minRetries = 2; + let newAsyncParams: PollingOptions; + if (asyncParams === undefined) { + newAsyncParams = { + delaySec: 1.5, + initialDelaySec: 2, + maxRetries: 80 + }; + } else { + newAsyncParams = { ...asyncParams }; + if ( + !newAsyncParams.delaySec || + !newAsyncParams.initialDelaySec || + !newAsyncParams.maxRetries + ) { + throw Error("Invalid polling options."); + } + if (newAsyncParams.delaySec < minDelaySec) { + throw Error(`Cannot set auto-parsing delay to less than ${minDelaySec} second(s).`); + } + if (newAsyncParams.initialDelaySec < minInitialDelay) { + throw Error(`Cannot set initial parsing delay to less than ${minInitialDelay} second(s).`); + } + if (newAsyncParams.maxRetries < minRetries) { + throw Error(`Cannot set retry to less than ${minRetries}.`); + } + } + return newAsyncParams as ValidatedPollingOptions; +} diff --git a/src/v2/http/mindeeApiV2.ts b/src/v2/http/mindeeApiV2.ts index 7e7759d0..201f750c 100644 --- a/src/v2/http/mindeeApiV2.ts +++ b/src/v2/http/mindeeApiV2.ts @@ -1,6 +1,6 @@ import { ApiSettingsV2 } from "./apiSettingsV2.js"; import { Dispatcher } from "undici"; -import { InferenceParameters } from "@/v2/clientV2.js"; +import { InferenceParameters } from "@/v2/client.js"; import { ErrorResponse, InferenceResponse, JobResponse } from "@/v2/parsing/index.js"; import { sendRequestAndReadResponse, BaseHttpResponse } from "@/http/apiCore.js"; import { InputSource, LocalInputSource, UrlInput } from "@/input/index.js"; diff --git a/src/v2/index.ts b/src/v2/index.ts index 43f0d8b7..d36b8748 100644 --- a/src/v2/index.ts +++ b/src/v2/index.ts @@ -1,7 +1,7 @@ export * as http from "./http/index.js"; export * as parsing from "./parsing/index.js"; -export { LocalResponseV2 } from "./localResponse.js"; -export { ClientV2 } from "./clientV2.js"; +export { LocalResponse } from "./parsing/localResponse.js"; +export { Client } from "./client.js"; export { InferenceFile, InferenceResponse, @@ -10,3 +10,6 @@ export { RagMetadata, ErrorResponse, } from "./parsing/index.js"; +export type { InferenceParameters } from "./client.js"; +export { DataSchema } from "./client/index.js"; +export type { PollingOptions } from "./client/index.js"; diff --git a/src/v2/localResponse.ts b/src/v2/parsing/localResponse.ts similarity index 89% rename from src/v2/localResponse.ts rename to src/v2/parsing/localResponse.ts index 994aabc9..dd2a36c2 100644 --- a/src/v2/localResponse.ts +++ b/src/v2/parsing/localResponse.ts @@ -1,13 +1,13 @@ import { StringDict } from "@/parsing/stringDict.js"; import { MindeeError } from "@/errors/index.js"; import { CommonResponse } from "@/v2/parsing/index.js"; -import { LocalResponse } from "@/input/index.js"; +import { LocalResponseBase } from "@/parsing/localResponseBase.js"; /** * Local response loaded from a file. * Note: Has to be initialized through init() before use. */ -export class LocalResponseV2 extends LocalResponse { +export class LocalResponse extends LocalResponseBase { /** * Deserialize the loaded local response into the requested CommonResponse-derived class. diff --git a/tests/input/sources.integration.ts b/tests/input/sources.integration.ts index 926c6ce5..a0452744 100644 --- a/tests/input/sources.integration.ts +++ b/tests/input/sources.integration.ts @@ -8,11 +8,11 @@ import { V1_PRODUCT_PATH } from "../index.js"; import { PathInput, Base64Input, BufferInput, BytesInput, UrlInput } from "@/index.js"; describe("MindeeV1 - File Input Integration Tests", async () => { - let client: mindee.Client; + let client: mindee.v1.Client; let filePath: string; beforeEach(() => { - client = new mindee.Client(); + client = new mindee.v1.Client(); filePath = path.join(V1_PRODUCT_PATH, "invoices/default_sample.jpg"); }); diff --git a/tests/input/sources.spec.ts b/tests/input/sources.spec.ts index f7b0fdb9..188f0125 100644 --- a/tests/input/sources.spec.ts +++ b/tests/input/sources.spec.ts @@ -15,7 +15,7 @@ import * as path from "path"; import { expect } from "chai"; import sharp from "sharp"; import { Buffer } from "node:buffer"; -import { compressImage } from "@/imageOperations/index.js"; +import { compressImage } from "@/image/index.js"; import { compressPdf } from "@/pdf/index.js"; import { extractTextFromPdf } from "@/pdf/pdfUtils.js"; import { logger } from "@/logger.js"; diff --git a/tests/input/urlInputSource.integration.ts b/tests/input/urlInputSource.integration.ts index d74e3962..5e1d1635 100644 --- a/tests/input/urlInputSource.integration.ts +++ b/tests/input/urlInputSource.integration.ts @@ -1,6 +1,6 @@ import { expect } from "chai"; import { UrlInput } from "@/index.js"; -import { Client } from "@/index.js"; +import { Client } from "@/v1/index.js"; import { InvoiceV4 } from "@/v1/product/index.js"; describe("MindeeV1 - URL Input Integration Test", async () => { diff --git a/tests/v1/api/asyncResponse.spec.ts b/tests/v1/api/asyncResponse.spec.ts index 01e91133..4501d95a 100644 --- a/tests/v1/api/asyncResponse.spec.ts +++ b/tests/v1/api/asyncResponse.spec.ts @@ -1,5 +1,5 @@ import { expect } from "chai"; -import { AsyncPredictResponse } from "@/index.js"; +import { AsyncPredictResponse } from "@/v1/index.js"; import { promises as fs } from "fs"; import * as path from "path"; import { StringDict } from "@/v1/parsing/common/index.js"; diff --git a/tests/v1/api/endpoint.spec.ts b/tests/v1/api/endpoint.spec.ts index 6db4f922..460222cd 100644 --- a/tests/v1/api/endpoint.spec.ts +++ b/tests/v1/api/endpoint.spec.ts @@ -2,7 +2,8 @@ import * as fs from "node:fs"; import * as path from "path"; import { expect } from "chai"; import { MockAgent, setGlobalDispatcher } from "undici"; -import { Client, PathInput, product } from "@/index.js"; +import { PathInput } from "@/index.js"; +import { Client, product } from "@/v1/index.js"; import { RESOURCE_PATH, V1_RESOURCE_PATH } from "../../index.js"; import assert from "node:assert/strict"; import { diff --git a/tests/v1/api/response.spec.ts b/tests/v1/api/response.spec.ts index 9483d5ee..226ff069 100644 --- a/tests/v1/api/response.spec.ts +++ b/tests/v1/api/response.spec.ts @@ -1,7 +1,7 @@ import { promises as fs } from "fs"; import * as path from "path"; import { expect } from "chai"; -import { PredictResponse } from "@/index.js"; +import { PredictResponse } from "@/v1/index.js"; import { InvoiceV4, ReceiptV5 } from "@/v1/product/index.js"; import { V1_PRODUCT_PATH } from "../../index.js"; diff --git a/tests/v1/clientInit.spec.ts b/tests/v1/clientInit.spec.ts index 6e5c9c44..bdb59a74 100644 --- a/tests/v1/clientInit.spec.ts +++ b/tests/v1/clientInit.spec.ts @@ -1,4 +1,4 @@ -import { Client } from "@/index.js"; +import { Client } from "@/v1/index.js"; import { expect } from "chai"; import assert from "node:assert/strict"; diff --git a/tests/v1/imageOperations/invoiceSplitterExtractor.spec.ts b/tests/v1/extraction/invoiceSplitterExtractor.spec.ts similarity index 95% rename from tests/v1/imageOperations/invoiceSplitterExtractor.spec.ts rename to tests/v1/extraction/invoiceSplitterExtractor.spec.ts index a9eb06fe..d3d81a87 100644 --- a/tests/v1/imageOperations/invoiceSplitterExtractor.spec.ts +++ b/tests/v1/extraction/invoiceSplitterExtractor.spec.ts @@ -2,7 +2,7 @@ import { expect } from "chai"; import { promises as fs } from "fs"; import path from "path"; import { InvoiceSplitterV1 } from "@/v1/product/index.js"; -import { extractInvoices } from "@/imageOperations/index.js"; +import { extractInvoices } from "@/v1/extraction/index.js"; import { PathInput } from "@/index.js"; import { V1_PRODUCT_PATH } from "../../index.js"; diff --git a/tests/v1/imageOperations/invoiceSplitterReconstruction.spec.ts b/tests/v1/extraction/invoiceSplitterReconstruction.spec.ts similarity index 95% rename from tests/v1/imageOperations/invoiceSplitterReconstruction.spec.ts rename to tests/v1/extraction/invoiceSplitterReconstruction.spec.ts index 9d50c5b5..d87f9106 100644 --- a/tests/v1/imageOperations/invoiceSplitterReconstruction.spec.ts +++ b/tests/v1/extraction/invoiceSplitterReconstruction.spec.ts @@ -1,9 +1,9 @@ import { expect } from "chai"; import { promises as fs } from "fs"; import * as path from "path"; -import { Document } from "@/index.js"; +import { Document } from "@/v1/index.js"; import { InvoiceSplitterV1 } from "@/v1/product/index.js"; -import { extractInvoices } from "@/imageOperations/index.js"; +import { extractInvoices } from "@/v1/extraction/index.js"; import { PathInput } from "@/index.js"; import { V1_PRODUCT_PATH } from "../../index.js"; diff --git a/tests/v1/imageOperations/multiReceiptsExtractor.spec.ts b/tests/v1/extraction/multiReceiptsExtractor.spec.ts similarity index 97% rename from tests/v1/imageOperations/multiReceiptsExtractor.spec.ts rename to tests/v1/extraction/multiReceiptsExtractor.spec.ts index 1eb99bea..218da8f4 100644 --- a/tests/v1/imageOperations/multiReceiptsExtractor.spec.ts +++ b/tests/v1/extraction/multiReceiptsExtractor.spec.ts @@ -2,7 +2,7 @@ import { expect } from "chai"; import { promises as fs } from "fs"; import path from "path"; import { MultiReceiptsDetectorV1 } from "@/v1/product/index.js"; -import { extractReceipts } from "@/imageOperations/index.js"; +import { extractReceipts } from "@/v1/extraction/index.js"; import { PathInput } from "@/index.js"; import { V1_PRODUCT_PATH } from "../../index.js"; diff --git a/tests/v1/imageOperations/multiReceiptsReconstruction.integration.ts b/tests/v1/extraction/multiReceiptsReconstruction.integration.ts similarity index 97% rename from tests/v1/imageOperations/multiReceiptsReconstruction.integration.ts rename to tests/v1/extraction/multiReceiptsReconstruction.integration.ts index 055fcdce..04b77c00 100644 --- a/tests/v1/imageOperations/multiReceiptsReconstruction.integration.ts +++ b/tests/v1/extraction/multiReceiptsReconstruction.integration.ts @@ -1,10 +1,10 @@ import { expect } from "chai"; import * as path from "path"; -import { Client, PathInput } from "@/index.js"; +import { Client } from "@/v1/index.js"; import { MultiReceiptsDetectorV1, ReceiptV5 } from "@/v1/product/index.js"; -import { extractReceipts } from "@/imageOperations/index.js"; +import { extractReceipts } from "@/v1/extraction/index.js"; import { V1_PRODUCT_PATH } from "../../index.js"; -import { LocalInputSource } from "@/input/index.js"; +import { LocalInputSource, PathInput } from "@/input/index.js"; import { setTimeout } from "node:timers/promises"; const apiKey = process.env.MINDEE_API_KEY; diff --git a/tests/v1/imageOperations/multiReceiptsReconstruction.spec.ts b/tests/v1/extraction/multiReceiptsReconstruction.spec.ts similarity index 95% rename from tests/v1/imageOperations/multiReceiptsReconstruction.spec.ts rename to tests/v1/extraction/multiReceiptsReconstruction.spec.ts index d597e657..3cc3efec 100644 --- a/tests/v1/imageOperations/multiReceiptsReconstruction.spec.ts +++ b/tests/v1/extraction/multiReceiptsReconstruction.spec.ts @@ -1,9 +1,10 @@ import { expect } from "chai"; import { promises as fs } from "fs"; import * as path from "path"; -import { Document, PathInput } from "@/index.js"; +import { PathInput } from "@/index.js"; +import { Document } from "@/v1/index.js"; import { MultiReceiptsDetectorV1 } from "@/v1/product/index.js"; -import { extractReceipts } from "@/imageOperations/index.js"; +import { extractReceipts } from "@/v1/extraction/index.js"; import { RESOURCE_PATH, V1_PRODUCT_PATH } from "../../index.js"; const rotations = [ diff --git a/tests/v1/extras/extras.integration.ts b/tests/v1/extras/extras.integration.ts index f58ad306..2d8faeb1 100644 --- a/tests/v1/extras/extras.integration.ts +++ b/tests/v1/extras/extras.integration.ts @@ -5,10 +5,10 @@ import { V1_PRODUCT_PATH } from "../../index.js"; describe("MindeeV1 - Extras Integration Tests", async () => { - let client: mindee.Client; + let client: mindee.v1.Client; beforeEach(() => { - client = new mindee.Client(); + client = new mindee.v1.Client(); }); it("should send cropper extra", async () => { @@ -17,7 +17,7 @@ describe("MindeeV1 - Extras Integration Tests", async () => { }); await sample.init(); const response = await client.parse( - mindee.product.InvoiceV4, sample, { cropper: true } + mindee.v1.product.InvoiceV4, sample, { cropper: true } ); expect(response.document.inference.pages[0]?.extras?.cropper).to.exist; }).timeout(70000); @@ -28,7 +28,7 @@ describe("MindeeV1 - Extras Integration Tests", async () => { }); await sample.init(); const response = await client.enqueueAndParse( - mindee.product.InternationalIdV2, sample, { fullText: true } + mindee.v1.product.InternationalIdV2, sample, { fullText: true } ); expect(response.document?.extras?.fullTextOcr).to.exist; @@ -40,7 +40,7 @@ describe("MindeeV1 - Extras Integration Tests", async () => { }); await sample.init(); const response = await client.parse( - mindee.product.FinancialDocumentV1, sample, { allWords: true } + mindee.v1.product.FinancialDocumentV1, sample, { allWords: true } ); expect(response.document?.ocr).to.exist; expect(response.document?.ocr?.toString()).to.not.be.empty; @@ -53,7 +53,7 @@ describe("MindeeV1 - Extras Integration Tests", async () => { }); await sample.init(); const response = await client.enqueueAndParse( - mindee.product.FinancialDocumentV1, sample, { allWords: true } + mindee.v1.product.FinancialDocumentV1, sample, { allWords: true } ); expect(response.document?.ocr).to.exist; expect(response.document?.ocr?.toString()).to.not.be.empty; diff --git a/tests/v1/extras/fullTextOcr.spec.ts b/tests/v1/extras/fullTextOcr.spec.ts index 33f0345c..d91874f3 100644 --- a/tests/v1/extras/fullTextOcr.spec.ts +++ b/tests/v1/extras/fullTextOcr.spec.ts @@ -1,7 +1,7 @@ import { promises as fs } from "fs"; import path from "path"; import { expect } from "chai"; -import { AsyncPredictResponse } from "@/index.js"; +import { AsyncPredictResponse } from "@/v1/index.js"; import { InternationalIdV2 } from "@/v1/product/index.js"; import { RESOURCE_PATH } from "../../index.js"; diff --git a/tests/v1/extras/ocr.spec.ts b/tests/v1/extras/ocr.spec.ts index 569eb25e..5a109348 100644 --- a/tests/v1/extras/ocr.spec.ts +++ b/tests/v1/extras/ocr.spec.ts @@ -2,7 +2,7 @@ import { promises as fs } from "fs"; import * as path from "path"; import { expect } from "chai"; import { ReceiptV5 } from "@/v1/product/index.js"; -import { Document } from "@/index.js"; +import { Document } from "@/v1/index.js"; import { RESOURCE_PATH } from "../../index.js"; const dataPath = { diff --git a/tests/v1/input/localResponse.spec.ts b/tests/v1/input/localResponse.spec.ts index 2b631b43..43692071 100644 --- a/tests/v1/input/localResponse.spec.ts +++ b/tests/v1/input/localResponse.spec.ts @@ -1,8 +1,7 @@ import * as fs from "node:fs/promises"; import { expect } from "chai"; import path from "path"; -import { AsyncPredictResponse, LocalResponseV1, PredictResponse } from "@/v1/index.js"; -import { Client } from "@/index.js"; +import { AsyncPredictResponse, LocalResponse, PredictResponse } from "@/v1/index.js"; import { InternationalIdV2, InvoiceV4, MultiReceiptsDetectorV1 } from "@/v1/product/index.js"; import { V1_RESOURCE_PATH, V1_PRODUCT_PATH } from "../../index.js"; @@ -20,7 +19,7 @@ const internationalIdPath: string = path.join( describe("MindeeV1 - Load Local Response", () => { it("should load a string properly.", async () => { const fileObj = await fs.readFile(filePath, { encoding: "utf-8" }); - const localResponse = new LocalResponseV1(fileObj); + const localResponse = new LocalResponse(fileObj); await localResponse.init(); expect(localResponse.asDict()).to.not.be.null; expect(localResponse.isValidHmacSignature(dummySecretKey, "invalid signature")).to.be.false; @@ -29,7 +28,7 @@ describe("MindeeV1 - Load Local Response", () => { }); it("should load a file properly.", async () => { - const localResponse = new LocalResponseV1(filePath); + const localResponse = new LocalResponse(filePath); await localResponse.init(); expect(localResponse.asDict()).to.not.be.null; expect(localResponse.isValidHmacSignature(dummySecretKey, "invalid signature")).to.be.false; @@ -40,7 +39,7 @@ describe("MindeeV1 - Load Local Response", () => { it("should load a buffer properly.", async () => { const fileStr = (await fs.readFile(filePath, { encoding: "utf-8" })).replace(/\r/g, "").replace(/\n/g, ""); const fileBuffer = Buffer.from(fileStr, "utf-8"); - const localResponse = new LocalResponseV1(fileBuffer); + const localResponse = new LocalResponse(fileBuffer); await localResponse.init(); expect(localResponse.asDict()).to.not.be.null; expect(localResponse.isValidHmacSignature(dummySecretKey, "invalid signature")).to.be.false; @@ -50,9 +49,8 @@ describe("MindeeV1 - Load Local Response", () => { it("should load into a sync prediction.", async () => { const fileObj = await fs.readFile(multiReceiptsDetectorPath, { encoding: "utf-8" }); - const localResponse = new LocalResponseV1(fileObj); - const dummyClient = new Client({ apiKey: "dummy-key" }); - const prediction = await dummyClient.loadPrediction(MultiReceiptsDetectorV1, localResponse); + const localResponse = new LocalResponse(fileObj); + const prediction = await localResponse.loadPrediction(MultiReceiptsDetectorV1); expect(prediction).to.be.an.instanceof(PredictResponse); expect(JSON.stringify(prediction.getRawHttp())).to.eq(JSON.stringify(JSON.parse(fileObj))); @@ -60,18 +58,16 @@ describe("MindeeV1 - Load Local Response", () => { it("should load a failed prediction.", async () => { const fileObj = await fs.readFile(failedPath, { encoding: "utf-8" }); - const localResponse = new LocalResponseV1(fileObj); - const dummyClient = new Client({ apiKey: "dummy-key" }); - const prediction = await dummyClient.loadPrediction(InvoiceV4, localResponse); + const localResponse = new LocalResponse(fileObj); + const prediction = await localResponse.loadPrediction(InvoiceV4); expect(prediction).to.be.an.instanceof(AsyncPredictResponse); expect((prediction as AsyncPredictResponse).job.status).to.be.eq("failed"); }); it("should load into an async prediction.", async () => { const fileObj = await fs.readFile(internationalIdPath, { encoding: "utf-8" }); - const localResponse = new LocalResponseV1(fileObj); - const dummyClient = new Client({ apiKey: "dummy-key" }); - const prediction = await dummyClient.loadPrediction(InternationalIdV2, localResponse); + const localResponse = new LocalResponse(fileObj); + const prediction = await localResponse.loadPrediction(InternationalIdV2); expect(prediction).to.be.an.instanceof(AsyncPredictResponse); expect(JSON.stringify(prediction.getRawHttp())).to.eq(JSON.stringify(JSON.parse(fileObj))); diff --git a/tests/v1/product/barcodeReader/barcodeReaderV1.spec.ts b/tests/v1/product/barcodeReader/barcodeReaderV1.spec.ts index cdbc159e..623524c8 100644 --- a/tests/v1/product/barcodeReader/barcodeReaderV1.spec.ts +++ b/tests/v1/product/barcodeReader/barcodeReaderV1.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - BarcodeReaderV1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.BarcodeReaderV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.BarcodeReaderV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.codes1D.length).to.be.equals(0); expect(docPrediction.codes2D.length).to.be.equals(0); @@ -25,7 +25,7 @@ describe("MindeeV1 - BarcodeReaderV1 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.BarcodeReaderV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.BarcodeReaderV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/cropper/cropperV1.spec.ts b/tests/v1/product/cropper/cropperV1.spec.ts index 46be40d1..1fc19cf4 100644 --- a/tests/v1/product/cropper/cropperV1.spec.ts +++ b/tests/v1/product/cropper/cropperV1.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - CropperV1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.CropperV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.CropperV1, response.document); const pagePrediction = doc.inference.pages[0].prediction; expect(pagePrediction.cropping.length).to.be.equals(0); }); @@ -24,14 +24,14 @@ describe("MindeeV1 - CropperV1 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.CropperV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.CropperV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); it("should load a complete page 0 prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.CropperV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.CropperV1, response.document); const page0 = doc.inference.pages[0]; const docString = await fs.readFile(path.join(dataPath.page0String)); expect(page0.toString()).to.be.equals(docString.toString()); diff --git a/tests/v1/product/driverLicense/driverLicenseV1.spec.ts b/tests/v1/product/driverLicense/driverLicenseV1.spec.ts index 9de62754..e9182729 100644 --- a/tests/v1/product/driverLicense/driverLicenseV1.spec.ts +++ b/tests/v1/product/driverLicense/driverLicenseV1.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - DriverLicenseV1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.DriverLicenseV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.DriverLicenseV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.countryCode.value).to.be.undefined; expect(docPrediction.state.value).to.be.undefined; @@ -36,7 +36,7 @@ describe("MindeeV1 - DriverLicenseV1 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.DriverLicenseV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.DriverLicenseV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/financialDocument/financialDocumentV1.spec.ts b/tests/v1/product/financialDocument/financialDocumentV1.spec.ts index 7af1f694..b819b4eb 100644 --- a/tests/v1/product/financialDocument/financialDocumentV1.spec.ts +++ b/tests/v1/product/financialDocument/financialDocumentV1.spec.ts @@ -32,7 +32,7 @@ describe("Financial Document V1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.FinancialDocumentV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.FinancialDocumentV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.locale.value).to.be.undefined; expect(docPrediction.totalAmount.value).to.be.undefined; @@ -67,7 +67,7 @@ describe("Financial Document V1 Object initialization", async () => { it("should initialize from an invoice object", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.invoiceComplete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.FinancialDocumentV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.FinancialDocumentV1, response.document); const docString = await fs.readFile(path.join(dataPath.invoiceDocString)); expect(doc.toString()).to.be.equals(docString.toString()); }); @@ -75,7 +75,7 @@ describe("Financial Document V1 Object initialization", async () => { it("should initialize from a receipt object", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.receiptComplete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.FinancialDocumentV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.FinancialDocumentV1, response.document); const docString = await fs.readFile(path.join(dataPath.receiptDocString)); expect(doc.toString()).to.be.equals(docString.toString()); }); @@ -83,7 +83,7 @@ describe("Financial Document V1 Object initialization", async () => { it("should load a complete page 0 invoice prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.invoiceComplete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.FinancialDocumentV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.FinancialDocumentV1, response.document); const page0 = doc.inference.pages[0]; const docString = await fs.readFile(path.join(dataPath.page0InvoiceString)); expect(page0.orientation?.value).to.be.equals(0); @@ -93,7 +93,7 @@ describe("Financial Document V1 Object initialization", async () => { it("should load a complete page 0 receipt prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.receiptComplete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.FinancialDocumentV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.FinancialDocumentV1, response.document); const page0 = doc.inference.pages[0]; const docString = await fs.readFile(path.join(dataPath.page0ReceiptString)); expect(page0.orientation?.value).to.be.equals(0); diff --git a/tests/v1/product/fr/bankAccountDetails/bankAccountDetailsV1.spec.ts b/tests/v1/product/fr/bankAccountDetails/bankAccountDetailsV1.spec.ts index 93ef707b..23a1888d 100644 --- a/tests/v1/product/fr/bankAccountDetails/bankAccountDetailsV1.spec.ts +++ b/tests/v1/product/fr/bankAccountDetails/bankAccountDetailsV1.spec.ts @@ -15,7 +15,7 @@ describe("MindeeV1 - BankAccountDetailsV1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.BankAccountDetailsV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.BankAccountDetailsV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.iban.value).to.be.undefined; expect(docPrediction.accountHolderName.value).to.be.undefined; @@ -25,7 +25,7 @@ describe("MindeeV1 - BankAccountDetailsV1 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.BankAccountDetailsV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.BankAccountDetailsV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/fr/bankAccountDetails/bankAccountDetailsV2.spec.ts b/tests/v1/product/fr/bankAccountDetails/bankAccountDetailsV2.spec.ts index 7acfa6b1..1f867bd7 100644 --- a/tests/v1/product/fr/bankAccountDetails/bankAccountDetailsV2.spec.ts +++ b/tests/v1/product/fr/bankAccountDetails/bankAccountDetailsV2.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - BankAccountDetailsV2 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.BankAccountDetailsV2, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.BankAccountDetailsV2, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.accountHoldersNames.value).to.be.undefined; expect(docPrediction.bban.bbanBankCode).to.be.null; @@ -30,7 +30,7 @@ describe("MindeeV1 - BankAccountDetailsV2 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.BankAccountDetailsV2, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.BankAccountDetailsV2, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/fr/carteGrise/carteGriseV1.spec.ts b/tests/v1/product/fr/carteGrise/carteGriseV1.spec.ts index a8901599..4e57f726 100644 --- a/tests/v1/product/fr/carteGrise/carteGriseV1.spec.ts +++ b/tests/v1/product/fr/carteGrise/carteGriseV1.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - CarteGriseV1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.CarteGriseV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.CarteGriseV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.a.value).to.be.undefined; expect(docPrediction.b.value).to.be.undefined; @@ -64,7 +64,7 @@ describe("MindeeV1 - CarteGriseV1 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.CarteGriseV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.CarteGriseV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/fr/energyBill/energyBillV1.spec.ts b/tests/v1/product/fr/energyBill/energyBillV1.spec.ts index 2147658b..e7a41cc6 100644 --- a/tests/v1/product/fr/energyBill/energyBillV1.spec.ts +++ b/tests/v1/product/fr/energyBill/energyBillV1.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - EnergyBillV1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.EnergyBillV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.EnergyBillV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.invoiceNumber.value).to.be.undefined; expect(docPrediction.contractId.value).to.be.undefined; @@ -41,7 +41,7 @@ describe("MindeeV1 - EnergyBillV1 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.EnergyBillV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.EnergyBillV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/fr/healthCard/healthCardV1.spec.ts b/tests/v1/product/fr/healthCard/healthCardV1.spec.ts index 9185db9a..bdf2ba94 100644 --- a/tests/v1/product/fr/healthCard/healthCardV1.spec.ts +++ b/tests/v1/product/fr/healthCard/healthCardV1.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - HealthCardV1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.HealthCardV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.HealthCardV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.givenNames.length).to.be.equals(0); expect(docPrediction.surname.value).to.be.undefined; @@ -27,7 +27,7 @@ describe("MindeeV1 - HealthCardV1 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.HealthCardV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.HealthCardV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/fr/idCard/idCardV1.spec.ts b/tests/v1/product/fr/idCard/idCardV1.spec.ts index c1bb3755..0bb5892b 100644 --- a/tests/v1/product/fr/idCard/idCardV1.spec.ts +++ b/tests/v1/product/fr/idCard/idCardV1.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - IdCardV1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.IdCardV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.IdCardV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.idNumber.value).to.be.undefined; expect(docPrediction.givenNames.length).to.be.equals(0); @@ -33,14 +33,14 @@ describe("MindeeV1 - IdCardV1 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.IdCardV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.IdCardV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); it("should load a complete page 0 prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.IdCardV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.IdCardV1, response.document); const page0 = doc.inference.pages[0]; const docString = await fs.readFile(path.join(dataPath.page0String)); expect(page0.toString()).to.be.equals(docString.toString()); diff --git a/tests/v1/product/fr/idCard/idCardV2.spec.ts b/tests/v1/product/fr/idCard/idCardV2.spec.ts index f53de20e..bf72915e 100644 --- a/tests/v1/product/fr/idCard/idCardV2.spec.ts +++ b/tests/v1/product/fr/idCard/idCardV2.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - IdCardV2 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.IdCardV2, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.IdCardV2, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.nationality.value).to.be.undefined; expect(docPrediction.cardAccessNumber.value).to.be.undefined; @@ -38,14 +38,14 @@ describe("MindeeV1 - IdCardV2 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.IdCardV2, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.IdCardV2, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); it("should load a complete page 0 prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.IdCardV2, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.IdCardV2, response.document); const page0 = doc.inference.pages[0]; const docString = await fs.readFile(path.join(dataPath.page0String)); expect(page0.toString()).to.be.equals(docString.toString()); diff --git a/tests/v1/product/fr/payslip/payslipV2.spec.ts b/tests/v1/product/fr/payslip/payslipV2.spec.ts index cd07cd3a..9dde43b0 100644 --- a/tests/v1/product/fr/payslip/payslipV2.spec.ts +++ b/tests/v1/product/fr/payslip/payslipV2.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - PayslipV2 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.PayslipV2, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.PayslipV2, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.employee.address).to.be.null; expect(docPrediction.employee.dateOfBirth).to.be.null; @@ -65,7 +65,7 @@ describe("MindeeV1 - PayslipV2 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.PayslipV2, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.PayslipV2, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/fr/payslip/payslipV3.spec.ts b/tests/v1/product/fr/payslip/payslipV3.spec.ts index 22da5181..d8034a58 100644 --- a/tests/v1/product/fr/payslip/payslipV3.spec.ts +++ b/tests/v1/product/fr/payslip/payslipV3.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - PayslipV3 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.PayslipV3, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.PayslipV3, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.payPeriod.endDate).to.be.null; expect(docPrediction.payPeriod.month).to.be.null; @@ -64,7 +64,7 @@ describe("MindeeV1 - PayslipV3 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.fr.PayslipV3, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.fr.PayslipV3, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/generated/generatedList.spec.ts b/tests/v1/product/generated/generatedList.spec.ts index f52787e5..8f41be18 100644 --- a/tests/v1/product/generated/generatedList.spec.ts +++ b/tests/v1/product/generated/generatedList.spec.ts @@ -1,5 +1,5 @@ import { expect } from "chai"; -import { GeneratedListField } from "@/v1/parsing/generated"; +import { GeneratedListField } from "@/v1/parsing/generated/index.js"; describe("Generated List Field Objects", async () => { it("should properly format floats.", async () => { diff --git a/tests/v1/product/generated/generatedObject.spec.ts b/tests/v1/product/generated/generatedObject.spec.ts index d57f2973..976b2178 100644 --- a/tests/v1/product/generated/generatedObject.spec.ts +++ b/tests/v1/product/generated/generatedObject.spec.ts @@ -1,5 +1,5 @@ import { expect } from "chai"; -import { GeneratedObjectField } from "@/v1/parsing/generated"; +import { GeneratedObjectField } from "@/v1/parsing/generated/index.js"; describe("Generated Object Field", async () => { it("should properly format booleans.", async () => { diff --git a/tests/v1/product/generated/generatedV1.spec.ts b/tests/v1/product/generated/generatedV1.spec.ts index 188d636b..1950ee42 100644 --- a/tests/v1/product/generated/generatedV1.spec.ts +++ b/tests/v1/product/generated/generatedV1.spec.ts @@ -2,10 +2,10 @@ import { promises as fs } from "fs"; import * as path from "path"; import { expect } from "chai"; import * as mindee from "@/index.js"; -import { Page } from "@/index.js"; +import { Page } from "@/v1/index.js"; import { GeneratedV1 } from "@/v1/product/index.js"; -import { GeneratedListField, GeneratedObjectField } from "@/v1/parsing/generated"; -import { GeneratedV1Page } from "@/v1/product/generated/generatedV1Page"; +import { GeneratedListField, GeneratedObjectField } from "@/v1/parsing/generated/index.js"; +import { GeneratedV1Page } from "@/v1/product/generated/generatedV1Page.js"; import { StringField } from "@/v1/parsing/standard/index.js"; import { V1_PRODUCT_PATH } from "../../../index.js"; @@ -30,7 +30,7 @@ describe("Generated Document Object initialization on an OTS invoice", async () it("should load an empty document prediction", async () => { const jsonDataNA = await fs.readFile(dataPathInvoice.empty); const response = JSON.parse(jsonDataNA.toString()); - const doc = new mindee.Document(GeneratedV1, response.document); + const doc = new mindee.v1.Document(GeneratedV1, response.document); expect(doc.inference.prediction.fields.get("customer_address").value).to.be.undefined; expect(doc.inference.prediction.fields.get("customer_company_registrations").values.length).to.equals(0); expect(doc.inference.prediction.fields.get("customer_name").value).to.be.undefined; @@ -99,7 +99,7 @@ describe("Generated Document Object initialization on an OTS invoice", async () it("should load a complete document prediction", async () => { const jsonDataNA = await fs.readFile(path.resolve(dataPathInvoice.complete)); const response = JSON.parse(jsonDataNA.toString()); - const doc = new mindee.Document(GeneratedV1, response.document); + const doc = new mindee.v1.Document(GeneratedV1, response.document); expect(doc.inference.prediction.fields.get("customer_address").value).to.equals( "1954 Bloon Street West Toronto, ON, M6P 3K9 Canada" ); @@ -152,7 +152,7 @@ describe("Generated Document Object initialization on an International ID", asyn it("should load an empty document prediction", async () => { const jsonDataNA = await fs.readFile(path.resolve(dataPathInternationalId.empty)); const response = JSON.parse(jsonDataNA.toString()); - const doc = new mindee.Document(GeneratedV1, response.document); + const doc = new mindee.v1.Document(GeneratedV1, response.document); const docString = await fs.readFile(path.join(dataPathInternationalId.emptyDocString)); expect(doc.inference.prediction.fields.get("document_type")).to.be.an.instanceOf(StringField); expect(doc.inference.prediction.fields.get("document_type").value).to.be.undefined; @@ -191,7 +191,7 @@ describe("Generated Document Object initialization on an International ID", asyn it("should load a complete document prediction", async () => { const jsonDataNA = await fs.readFile(path.resolve(dataPathInternationalId.complete)); const response = JSON.parse(jsonDataNA.toString()); - const doc = new mindee.Document(GeneratedV1, response.document); + const doc = new mindee.v1.Document(GeneratedV1, response.document); expect(doc.inference.prediction.fields.get("document_type")).to.be.an.instanceOf(StringField); expect(doc.inference.prediction.fields.get("document_type").value).to.equals("NATIONAL_ID_CARD"); expect(doc.inference.prediction.fields.get("document_number")).to.be.an.instanceOf(StringField); diff --git a/tests/v1/product/ind/indianPassport/indianPassportV1.spec.ts b/tests/v1/product/ind/indianPassport/indianPassportV1.spec.ts index 8d68d075..360f151c 100644 --- a/tests/v1/product/ind/indianPassport/indianPassportV1.spec.ts +++ b/tests/v1/product/ind/indianPassport/indianPassportV1.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - IndianPassportV1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.ind.IndianPassportV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.ind.IndianPassportV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.country.value).to.be.undefined; expect(docPrediction.idNumber.value).to.be.undefined; @@ -44,7 +44,7 @@ describe("MindeeV1 - IndianPassportV1 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.ind.IndianPassportV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.ind.IndianPassportV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/internationalId/internationalIdV2.spec.ts b/tests/v1/product/internationalId/internationalIdV2.spec.ts index 67790b13..53d1550f 100644 --- a/tests/v1/product/internationalId/internationalIdV2.spec.ts +++ b/tests/v1/product/internationalId/internationalIdV2.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - InternationalIdV2 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.InternationalIdV2, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.InternationalIdV2, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.documentNumber.value).to.be.undefined; expect(docPrediction.surnames.length).to.be.equals(0); @@ -39,7 +39,7 @@ describe("MindeeV1 - InternationalIdV2 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.InternationalIdV2, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.InternationalIdV2, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/invoice/invoiceV4.spec.ts b/tests/v1/product/invoice/invoiceV4.spec.ts index ab27ee89..cd7bb554 100644 --- a/tests/v1/product/invoice/invoiceV4.spec.ts +++ b/tests/v1/product/invoice/invoiceV4.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - InvoiceV4 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.InvoiceV4, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.InvoiceV4, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.locale.value).to.be.undefined; expect(docPrediction.invoiceNumber.value).to.be.undefined; @@ -48,7 +48,7 @@ describe("MindeeV1 - InvoiceV4 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.InvoiceV4, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.InvoiceV4, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/invoiceSplitter/invoiceSplitter.integration.ts b/tests/v1/product/invoiceSplitter/invoiceSplitter.integration.ts index 5ebd756d..4e497ed1 100644 --- a/tests/v1/product/invoiceSplitter/invoiceSplitter.integration.ts +++ b/tests/v1/product/invoiceSplitter/invoiceSplitter.integration.ts @@ -1,16 +1,16 @@ import * as mindee from "@/index.js"; import { InvoiceSplitterV1 } from "@/v1/product/index.js"; import { expect } from "chai"; -import { levenshteinRatio } from "../../../testingUtilities"; +import { levenshteinRatio } from "../../../testingUtilities.js"; import { promises as fs } from "fs"; import path from "path"; import { V1_PRODUCT_PATH } from "../../../index.js"; describe("MindeeV1 - InvoiceSplitterV1 Integration Tests", async () => { - let client: mindee.Client; + let client: mindee.v1.Client; beforeEach(() => { - client = new mindee.Client(); + client = new mindee.v1.Client(); }); it("should extract invoices in strict mode.", async () => { @@ -19,11 +19,11 @@ describe("MindeeV1 - InvoiceSplitterV1 Integration Tests", async () => { }); const response = await client.enqueueAndParse( - mindee.product.InvoiceSplitterV1, sample + mindee.v1.product.InvoiceSplitterV1, sample ); const invoiceSplitterInference = response.document?.inference; expect(invoiceSplitterInference).to.be.an.instanceof(InvoiceSplitterV1); - const invoices = await mindee.imageOperations.extractInvoices( + const invoices = await mindee.v1.extraction.extractInvoices( sample, invoiceSplitterInference as InvoiceSplitterV1 ); @@ -32,7 +32,7 @@ describe("MindeeV1 - InvoiceSplitterV1 Integration Tests", async () => { expect(invoices[1].asSource().filename).to.eq("invoice_p_1-1.pdf"); const invoiceResult = await client.parse( - mindee.product.InvoiceV4, invoices[0].asSource() + mindee.v1.product.InvoiceV4, invoices[0].asSource() ); const testStringRstInvoice = await fs.readFile( path.join(V1_PRODUCT_PATH, "invoices/response_v4/summary_full_invoice_p1.rst") diff --git a/tests/v1/product/invoiceSplitter/invoiceSplitterV1.spec.ts b/tests/v1/product/invoiceSplitter/invoiceSplitterV1.spec.ts index 9baefa27..8075affe 100644 --- a/tests/v1/product/invoiceSplitter/invoiceSplitterV1.spec.ts +++ b/tests/v1/product/invoiceSplitter/invoiceSplitterV1.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - InvoiceSplitterV1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.InvoiceSplitterV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.InvoiceSplitterV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.invoicePageGroups.length).to.be.equals(0); }); @@ -24,7 +24,7 @@ describe("MindeeV1 - InvoiceSplitterV1 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.InvoiceSplitterV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.InvoiceSplitterV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/multiReceiptsDetector/multiReceiptsDetectorV1.spec.ts b/tests/v1/product/multiReceiptsDetector/multiReceiptsDetectorV1.spec.ts index b742ceb1..cae5ef4f 100644 --- a/tests/v1/product/multiReceiptsDetector/multiReceiptsDetectorV1.spec.ts +++ b/tests/v1/product/multiReceiptsDetector/multiReceiptsDetectorV1.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - MultiReceiptsDetectorV1 Object initialization", async () => it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.MultiReceiptsDetectorV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.MultiReceiptsDetectorV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.receipts.length).to.be.equals(0); }); @@ -24,7 +24,7 @@ describe("MindeeV1 - MultiReceiptsDetectorV1 Object initialization", async () => it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.MultiReceiptsDetectorV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.MultiReceiptsDetectorV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/passport/passportV1.spec.ts b/tests/v1/product/passport/passportV1.spec.ts index c609e2ac..20b54b5d 100644 --- a/tests/v1/product/passport/passportV1.spec.ts +++ b/tests/v1/product/passport/passportV1.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - PassportV1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.PassportV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.PassportV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.country.value).to.be.undefined; expect(docPrediction.idNumber.value).to.be.undefined; @@ -34,7 +34,7 @@ describe("MindeeV1 - PassportV1 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.PassportV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.PassportV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/receipt/receiptV5.spec.ts b/tests/v1/product/receipt/receiptV5.spec.ts index ff6b90bb..87c8e8c0 100644 --- a/tests/v1/product/receipt/receiptV5.spec.ts +++ b/tests/v1/product/receipt/receiptV5.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - ReceiptV5 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.ReceiptV5, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.ReceiptV5, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.locale.value).to.be.undefined; expect(docPrediction.date.value).to.be.undefined; @@ -37,7 +37,7 @@ describe("MindeeV1 - ReceiptV5 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.ReceiptV5, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.ReceiptV5, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/resume/resumeV1.spec.ts b/tests/v1/product/resume/resumeV1.spec.ts index 229a0dfa..7635a48e 100644 --- a/tests/v1/product/resume/resumeV1.spec.ts +++ b/tests/v1/product/resume/resumeV1.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - ResumeV1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.ResumeV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.ResumeV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.documentLanguage.value).to.be.undefined; expect(docPrediction.givenNames.length).to.be.equals(0); @@ -39,7 +39,7 @@ describe("MindeeV1 - ResumeV1 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.ResumeV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.ResumeV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/product/us/bankCheck/bankCheckV1.spec.ts b/tests/v1/product/us/bankCheck/bankCheckV1.spec.ts index 1536dd92..eaeca795 100644 --- a/tests/v1/product/us/bankCheck/bankCheckV1.spec.ts +++ b/tests/v1/product/us/bankCheck/bankCheckV1.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - BankCheckV1 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.us.BankCheckV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.us.BankCheckV1, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.date.value).to.be.undefined; expect(docPrediction.amount.value).to.be.undefined; @@ -29,14 +29,14 @@ describe("MindeeV1 - BankCheckV1 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.us.BankCheckV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.us.BankCheckV1, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); it("should load a complete page 0 prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.us.BankCheckV1, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.us.BankCheckV1, response.document); const page0 = doc.inference.pages[0]; const docString = await fs.readFile(path.join(dataPath.page0String)); expect(page0.toString()).to.be.equals(docString.toString()); diff --git a/tests/v1/product/us/usMail/usMailV3.spec.ts b/tests/v1/product/us/usMail/usMailV3.spec.ts index cac767ed..fd51beb5 100644 --- a/tests/v1/product/us/usMail/usMailV3.spec.ts +++ b/tests/v1/product/us/usMail/usMailV3.spec.ts @@ -16,7 +16,7 @@ describe("MindeeV1 - UsMailV3 Object initialization", async () => { it("should load an empty document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.empty)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.us.UsMailV3, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.us.UsMailV3, response.document); const docPrediction = doc.inference.prediction; expect(docPrediction.senderName.value).to.be.undefined; expect(docPrediction.senderAddress.city).to.be.null; @@ -32,7 +32,7 @@ describe("MindeeV1 - UsMailV3 Object initialization", async () => { it("should load a complete document prediction", async () => { const jsonData = await fs.readFile(path.resolve(dataPath.complete)); const response = JSON.parse(jsonData.toString()); - const doc = new mindee.Document(mindee.product.us.UsMailV3, response.document); + const doc = new mindee.v1.Document(mindee.v1.product.us.UsMailV3, response.document); const docString = await fs.readFile(path.join(dataPath.docString)); expect(doc.toString()).to.be.equals(docString.toString()); }); diff --git a/tests/v1/workflows/workflow.integration.ts b/tests/v1/workflows/workflow.integration.ts index fb602434..1167af9b 100644 --- a/tests/v1/workflows/workflow.integration.ts +++ b/tests/v1/workflows/workflow.integration.ts @@ -2,19 +2,19 @@ import * as mindee from "@/index.js"; import { ExecutionPriority } from "@/v1/parsing/common/index.js"; import { expect } from "chai"; import { LocalInputSource } from "@/input/index.js"; -import { OptionalAsyncOptions } from "@/client.js"; +import { OptionalAsyncOptions } from "@/v1/index.js"; import { FinancialDocumentV1 } from "@/v1/product/index.js"; import { RAGExtra } from "@/v1/parsing/common/extras/ragExtra.js"; import path from "path"; import { V1_PRODUCT_PATH } from "../../index.js"; describe("MindeeV1 - Workflow calls", () => { - let client: mindee.Client; + let client: mindee.v1.Client; let sample: LocalInputSource; let workflowId: string; beforeEach(async () => { - client = new mindee.Client(); + client = new mindee.v1.Client(); workflowId = process.env["WORKFLOW_ID"] ?? ""; sample = new mindee.PathInput({ inputPath: path.join(V1_PRODUCT_PATH, "financial_document/default_sample.jpg") diff --git a/tests/v1/workflows/workflow.spec.ts b/tests/v1/workflows/workflow.spec.ts index 83d62eb2..edda1c51 100644 --- a/tests/v1/workflows/workflow.spec.ts +++ b/tests/v1/workflows/workflow.spec.ts @@ -3,7 +3,8 @@ import { MockAgent, setGlobalDispatcher } from "undici"; import { promises as fs } from "fs"; import path from "path"; import { RESOURCE_PATH, V1_RESOURCE_PATH } from "../../index.js"; -import { Client, PathInput } from "@/index.js"; +import { Client } from "@/v1/index.js"; +import { PathInput } from "@/index.js"; const mockAgent = new MockAgent(); setGlobalDispatcher(mockAgent); diff --git a/tests/v2/clientV2.integration.ts b/tests/v2/client.integration.ts similarity index 98% rename from tests/v2/clientV2.integration.ts rename to tests/v2/client.integration.ts index 295bc97c..a58515f0 100644 --- a/tests/v2/clientV2.integration.ts +++ b/tests/v2/client.integration.ts @@ -2,7 +2,7 @@ import { expect } from "chai"; import path from "node:path"; import { - ClientV2, + Client, InferenceParameters, PathInput, UrlInput, @@ -35,7 +35,7 @@ function checkEmptyActiveOptions(inference: Inference) { } describe("MindeeV2 – Client Integration Tests", () => { - let client: ClientV2; + let client: Client; let modelId: string; const emptyPdfPath = path.join( @@ -63,7 +63,7 @@ describe("MindeeV2 – Client Integration Tests", () => { const apiKey = process.env["MINDEE_V2_API_KEY"] ?? ""; modelId = process.env["MINDEE_V2_FINDOC_MODEL_ID"] ?? ""; - client = new ClientV2({ apiKey: apiKey, debug: true }); + client = new Client({ apiKey: apiKey, debug: true }); }); before(async () => { dataSchemaReplace = fs.readFileSync(dataSchemaReplacePath).toString(); diff --git a/tests/v2/clientV2.spec.ts b/tests/v2/client.spec.ts similarity index 94% rename from tests/v2/clientV2.spec.ts rename to tests/v2/client.spec.ts index 866ec791..03c130fc 100644 --- a/tests/v2/clientV2.spec.ts +++ b/tests/v2/client.spec.ts @@ -1,11 +1,11 @@ import { expect } from "chai"; import { MockAgent, setGlobalDispatcher } from "undici"; import path from "node:path"; -import { ClientV2, PathInput, InferenceResponse } from "@/index.js"; +import { Client, PathInput, InferenceResponse } from "@/index.js"; import { MindeeHttpErrorV2 } from "@/v2/http/index.js"; import assert from "node:assert/strict"; import { RESOURCE_PATH, V2_RESOURCE_PATH } from "../index.js"; -import { LocalResponseV2 } from "@/v2/localResponse.js"; +import { LocalResponse } from "@/v2/index.js"; const mockAgent = new MockAgent(); setGlobalDispatcher(mockAgent); @@ -60,11 +60,11 @@ describe("MindeeV2 - ClientV2", () => { }); describe("Client configured via environment variables", () => { - let client: ClientV2; + let client: Client; beforeEach(() => { setNockInterceptors(); - client = new ClientV2({ apiKey: "dummy", debug: true, dispatcher: mockAgent }); + client = new Client({ apiKey: "dummy", debug: true, dispatcher: mockAgent }); }); it("inherits base URL, token & headers from the env / options", () => { @@ -113,7 +113,7 @@ describe("MindeeV2 - ClientV2", () => { "complete.json" ); - const localResponse = new LocalResponseV2(jsonPath); + const localResponse = new LocalResponse(jsonPath); const response: InferenceResponse = await localResponse.deserializeResponse(InferenceResponse); expect(response.inference.model.id).to.equal( diff --git a/tests/v2/input/inferenceParameter.spec.ts b/tests/v2/input/inferenceParameter.spec.ts index a508f460..eb5b3e80 100644 --- a/tests/v2/input/inferenceParameter.spec.ts +++ b/tests/v2/input/inferenceParameter.spec.ts @@ -3,7 +3,7 @@ import path from "path"; import { V2_RESOURCE_PATH } from "../../index.js"; import { InferenceParameters } from "@/index.js"; import { expect } from "chai"; -import { DataSchema } from "@/input/index.js"; +import { DataSchema } from "@/index.js"; import { promises as fs } from "fs"; let expectedDataSchemaDict: StringDict; diff --git a/tests/v2/input/localResponse.spec.ts b/tests/v2/input/localResponse.spec.ts index 797ba322..9e423704 100644 --- a/tests/v2/input/localResponse.spec.ts +++ b/tests/v2/input/localResponse.spec.ts @@ -1,6 +1,6 @@ import * as fs from "node:fs/promises"; import { expect } from "chai"; -import { InferenceResponse, LocalResponseV2 } from "@/v2/index.js"; +import { InferenceResponse, LocalResponse } from "@/v2/index.js"; import path from "path"; import { V2_RESOURCE_PATH } from "../../index.js"; @@ -10,7 +10,7 @@ const signature: string = "1df388c992d87897fe61dfc56c444c58fc3c7369c31e2b5fd20d8 const dummySecretKey: string = "ogNjY44MhvKPGTtVsI8zG82JqWQa68woYQH"; const filePath: string = path.join(V2_RESOURCE_PATH, "inference/standard_field_types.json"); -async function assertLocalResponse(localResponse: LocalResponseV2) { +async function assertLocalResponse(localResponse: LocalResponse) { await localResponse.init(); expect(localResponse.asDict()).to.not.be.null; expect(localResponse.isValidHmacSignature(dummySecretKey, "invalid signature")).to.be.false; @@ -24,22 +24,22 @@ async function assertLocalResponse(localResponse: LocalResponseV2) { describe("MindeeV2 - Load Local Response", () => { it("should load a string properly.", async () => { const fileObj = await fs.readFile(filePath, { encoding: "utf-8" }); - await assertLocalResponse(new LocalResponseV2(fileObj)); + await assertLocalResponse(new LocalResponse(fileObj)); }); it("should load a file properly.", async () => { - await assertLocalResponse(new LocalResponseV2(filePath)); + await assertLocalResponse(new LocalResponse(filePath)); }); it("should load a buffer properly.", async () => { const fileStr = (await fs.readFile(filePath, { encoding: "utf-8" })).replace(/\r/g, "").replace(/\n/g, ""); const fileBuffer = Buffer.from(fileStr, "utf-8"); - await assertLocalResponse(new LocalResponseV2(fileBuffer)); + await assertLocalResponse(new LocalResponse(fileBuffer)); }); it("should deserialize a prediction.", async () => { const fileObj = await fs.readFile(filePath, { encoding: "utf-8" }); - const localResponse = new LocalResponseV2(fileObj); + const localResponse = new LocalResponse(fileObj); const response = await localResponse.deserializeResponse(InferenceResponse); expect(response).to.be.an.instanceof(InferenceResponse); diff --git a/tests/v2/parsing/inference.spec.ts b/tests/v2/parsing/inference.spec.ts index d63ff6ef..13a81749 100644 --- a/tests/v2/parsing/inference.spec.ts +++ b/tests/v2/parsing/inference.spec.ts @@ -1,6 +1,6 @@ import { expect } from "chai"; import path from "node:path"; -import { LocalResponseV2, InferenceResponse, RawText, RagMetadata } from "@/v2/index.js"; +import { LocalResponse, InferenceResponse, RawText, RagMetadata } from "@/v2/index.js"; import { FieldConfidence, ListField, ObjectField, SimpleField } from "@/v2/parsing/field/index.js"; import { promises as fs } from "node:fs"; import { Polygon } from "@/geometry/index.js"; @@ -14,7 +14,7 @@ const standardFieldRstPath = path.join(inferencePath, "standard_field_types.rst" const locationFieldPath = path.join(findocPath, "complete_with_coordinates.json"); async function loadV2Inference(resourcePath: string): Promise { - const localResponse = new LocalResponseV2(resourcePath); + const localResponse = new LocalResponse(resourcePath); await localResponse.init(); return localResponse.deserializeResponse(InferenceResponse); } diff --git a/tests/v2/parsing/job.spec.ts b/tests/v2/parsing/job.spec.ts index 6d6d8da5..1c6a291b 100644 --- a/tests/v2/parsing/job.spec.ts +++ b/tests/v2/parsing/job.spec.ts @@ -1,4 +1,4 @@ -import { JobResponse, LocalResponseV2, ErrorResponse } from "@/v2/index.js"; +import { JobResponse, LocalResponse, ErrorResponse } from "@/v2/index.js"; import path from "node:path"; import { V2_RESOURCE_PATH } from "../../index.js"; import { expect } from "chai"; @@ -6,7 +6,7 @@ import { expect } from "chai"; const jobPath = path.join(V2_RESOURCE_PATH, "job"); async function loadV2Job(resourcePath: string): Promise { - const localResponse = new LocalResponseV2(resourcePath); + const localResponse = new LocalResponse(resourcePath); await localResponse.init(); return localResponse.deserializeResponse(JobResponse); }