diff --git a/src/v2/product/classification/classification.ts b/src/v2/product/classification/classification.ts index ceafaf077..dcef46268 100644 --- a/src/v2/product/classification/classification.ts +++ b/src/v2/product/classification/classification.ts @@ -1,5 +1,5 @@ import { ClassificationResponse } from "./classificationResponse.js"; -import { ClassificationParameters } from "./classificationParameters.js"; +import { ClassificationParameters } from "./params/index.js"; import { BaseProduct } from "@/v2/product/baseProduct.js"; export class Classification extends BaseProduct { diff --git a/src/v2/product/classification/index.ts b/src/v2/product/classification/index.ts index 389576bdc..fad96ecc8 100644 --- a/src/v2/product/classification/index.ts +++ b/src/v2/product/classification/index.ts @@ -1,5 +1,5 @@ export { Classification } from "./classification.js"; -export { ClassificationParameters } from "./classificationParameters.js"; +export { ClassificationParameters } from "./params/index.js"; export { ClassificationResponse } from "./classificationResponse.js"; export { ClassificationInference } from "./classificationInference.js"; export { ClassificationResult } from "./classificationResult.js"; diff --git a/src/v2/product/classification/classificationParameters.ts b/src/v2/product/classification/params/classificationParameters.ts similarity index 100% rename from src/v2/product/classification/classificationParameters.ts rename to src/v2/product/classification/params/classificationParameters.ts diff --git a/src/v2/product/classification/params/index.ts b/src/v2/product/classification/params/index.ts new file mode 100644 index 000000000..60d0d0e56 --- /dev/null +++ b/src/v2/product/classification/params/index.ts @@ -0,0 +1 @@ +export { ClassificationParameters } from "./classificationParameters.js"; diff --git a/src/v2/product/crop/crop.ts b/src/v2/product/crop/crop.ts index 9254409a6..aaf1ade05 100644 --- a/src/v2/product/crop/crop.ts +++ b/src/v2/product/crop/crop.ts @@ -1,5 +1,5 @@ import { CropResponse } from "./cropResponse.js"; -import { CropParameters } from "./cropParameters.js"; +import { CropParameters } from "./params/index.js"; import { BaseProduct } from "@/v2/product/baseProduct.js"; export class Crop extends BaseProduct { diff --git a/src/v2/product/crop/index.ts b/src/v2/product/crop/index.ts index 7d3b2527c..13fcc6493 100644 --- a/src/v2/product/crop/index.ts +++ b/src/v2/product/crop/index.ts @@ -1,5 +1,5 @@ export { Crop } from "./crop.js"; -export { CropParameters } from "./cropParameters.js"; +export { CropParameters } from "./params/index.js"; export { CropInference } from "./cropInference.js"; export { CropItem } from "./cropItem.js"; export { CropResponse } from "./cropResponse.js"; diff --git a/src/v2/product/crop/cropParameters.ts b/src/v2/product/crop/params/cropParameters.ts similarity index 100% rename from src/v2/product/crop/cropParameters.ts rename to src/v2/product/crop/params/cropParameters.ts diff --git a/src/v2/product/crop/params/index.ts b/src/v2/product/crop/params/index.ts new file mode 100644 index 000000000..71b2e6e46 --- /dev/null +++ b/src/v2/product/crop/params/index.ts @@ -0,0 +1 @@ +export { CropParameters } from "./cropParameters.js"; diff --git a/src/v2/product/extraction/extraction.ts b/src/v2/product/extraction/extraction.ts index 15030511a..96febbc2d 100644 --- a/src/v2/product/extraction/extraction.ts +++ b/src/v2/product/extraction/extraction.ts @@ -1,5 +1,5 @@ import { ExtractionResponse } from "./extractionResponse.js"; -import { ExtractionParameters } from "./extractionParameters.js"; +import { ExtractionParameters } from "./params/index.js"; import { BaseProduct } from "@/v2/product/baseProduct.js"; export class Extraction extends BaseProduct { diff --git a/src/v2/product/extraction/index.ts b/src/v2/product/extraction/index.ts index d6cb61bd2..fd6960081 100644 --- a/src/v2/product/extraction/index.ts +++ b/src/v2/product/extraction/index.ts @@ -1,6 +1,6 @@ export { Extraction } from "./extraction.js"; -export { ExtractionParameters } from "./extractionParameters.js"; -export { DataSchema } from "./dataSchema.js"; +export { ExtractionParameters } from "./params/index.js"; +export * as params from "./params/index.js"; export { ExtractionInference } from "./extractionInference.js"; export { ExtractionActiveOptions } from "./extractionActiveOptions.js"; export { ExtractionResponse } from "./extractionResponse.js"; diff --git a/src/v2/product/extraction/params/dataSchema.ts b/src/v2/product/extraction/params/dataSchema.ts new file mode 100644 index 000000000..29a23254e --- /dev/null +++ b/src/v2/product/extraction/params/dataSchema.ts @@ -0,0 +1,29 @@ +import { StringDict } from "@/parsing/stringDict.js"; +import { DataSchemaReplace } from "./dataSchemaReplace.js"; + +/** + * Modify the Data Schema. + */ +export class DataSchema { + /** + * If set, completely replaces the data schema of the model. + */ + replace?: DataSchemaReplace; + + constructor(dataSchema: StringDict | string) { + if (typeof dataSchema === "string") { + this.replace = new DataSchemaReplace(JSON.parse(dataSchema)["replace"]); + } else if (dataSchema instanceof DataSchema) { + this.replace = dataSchema.replace; + } else { + this.replace = new DataSchemaReplace(dataSchema["replace"] as StringDict); + } + } + + toJSON() { + return { replace: this.replace?.toJSON() }; + } + toString() { + return JSON.stringify(this.toJSON()); + } +} diff --git a/src/v2/product/extraction/dataSchema.ts b/src/v2/product/extraction/params/dataSchemaField.ts similarity index 59% rename from src/v2/product/extraction/dataSchema.ts rename to src/v2/product/extraction/params/dataSchemaField.ts index 90579c9fb..3b53fcd01 100644 --- a/src/v2/product/extraction/dataSchema.ts +++ b/src/v2/product/extraction/params/dataSchemaField.ts @@ -1,5 +1,4 @@ -import { StringDict } from "@/parsing/stringDict.js"; -import { MindeeError } from "@/errors/index.js"; +import { StringDict } from "@/parsing/index.js"; export class DataSchemaField { /** @@ -77,58 +76,3 @@ export class DataSchemaField { return JSON.stringify(this.toJSON()); } } - -/** - * The structure to completely replace the data schema of the model. - */ -export class DataSchemaReplace { - /** - * List of fields in the Data Schema. - */ - fields: Array; - - constructor(dataSchemaReplace: StringDict) { - if (!dataSchemaReplace || !dataSchemaReplace.fields ) { - throw new MindeeError("Invalid Data Schema provided."); - } - if (dataSchemaReplace["fields"].length === 0) { - throw new TypeError("Data Schema replacement fields cannot be empty."); - } - this.fields = dataSchemaReplace["fields"].map((field: StringDict) => (new DataSchemaField(field))); - } - - toJSON() { - return { fields: this.fields.map(e => e.toJSON()) }; - } - - toString() { - return JSON.stringify(this.toJSON()); - } -} - -/** - * Modify the Data Schema. - */ -export class DataSchema { - /** - * If set, completely replaces the data schema of the model. - */ - replace?: DataSchemaReplace; - - constructor(dataSchema: StringDict | string) { - if (typeof dataSchema === "string") { - this.replace = new DataSchemaReplace(JSON.parse(dataSchema)["replace"]); - } else if (dataSchema instanceof DataSchema) { - this.replace = dataSchema.replace; - } else { - this.replace = new DataSchemaReplace(dataSchema["replace"] as StringDict); - } - } - - toJSON() { - return { replace: this.replace?.toJSON() }; - } - toString() { - return JSON.stringify(this.toJSON()); - } -} diff --git a/src/v2/product/extraction/params/dataSchemaReplace.ts b/src/v2/product/extraction/params/dataSchemaReplace.ts new file mode 100644 index 000000000..b56b8564f --- /dev/null +++ b/src/v2/product/extraction/params/dataSchemaReplace.ts @@ -0,0 +1,31 @@ +import { StringDict } from "@/parsing/index.js"; +import { DataSchemaField } from "./dataSchemaField.js"; +import { MindeeError } from "@/errors/index.js"; + +/** + * The structure to completely replace the data schema of the model. + */ +export class DataSchemaReplace { + /** + * List of fields in the Data Schema. + */ + fields: Array; + + constructor(dataSchemaReplace: StringDict) { + if (!dataSchemaReplace || !dataSchemaReplace.fields ) { + throw new MindeeError("Invalid Data Schema provided."); + } + if (dataSchemaReplace["fields"].length === 0) { + throw new TypeError("Data Schema replacement fields cannot be empty."); + } + this.fields = dataSchemaReplace["fields"].map((field: StringDict) => (new DataSchemaField(field))); + } + + toJSON() { + return { fields: this.fields.map(e => e.toJSON()) }; + } + + toString() { + return JSON.stringify(this.toJSON()); + } +} diff --git a/src/v2/product/extraction/extractionParameters.ts b/src/v2/product/extraction/params/extractionParameters.ts similarity index 100% rename from src/v2/product/extraction/extractionParameters.ts rename to src/v2/product/extraction/params/extractionParameters.ts diff --git a/src/v2/product/extraction/params/index.ts b/src/v2/product/extraction/params/index.ts new file mode 100644 index 000000000..f79e739ff --- /dev/null +++ b/src/v2/product/extraction/params/index.ts @@ -0,0 +1,4 @@ +export { ExtractionParameters } from "./extractionParameters.js"; +export { DataSchema } from "./dataSchema.js"; +export { DataSchemaReplace } from "./dataSchemaReplace.js"; +export { DataSchemaField } from "./dataSchemaField.js"; diff --git a/src/v2/product/ocr/index.ts b/src/v2/product/ocr/index.ts index 4b6fabc75..781483dbd 100644 --- a/src/v2/product/ocr/index.ts +++ b/src/v2/product/ocr/index.ts @@ -1,5 +1,5 @@ export { Ocr } from "./ocr.js"; -export { OcrParameters } from "./ocrParameters.js"; +export { OcrParameters } from "./params/index.js"; export { OcrResponse } from "./ocrResponse.js"; export { OcrInference } from "./ocrInference.js"; export { OcrResult } from "./ocrResult.js"; diff --git a/src/v2/product/ocr/ocr.ts b/src/v2/product/ocr/ocr.ts index 8f742b091..adce9d1c9 100644 --- a/src/v2/product/ocr/ocr.ts +++ b/src/v2/product/ocr/ocr.ts @@ -1,5 +1,5 @@ import { OcrResponse } from "./ocrResponse.js"; -import { OcrParameters } from "./ocrParameters.js"; +import { OcrParameters } from "./params/index.js"; import { BaseProduct } from "@/v2/product/baseProduct.js"; export class Ocr extends BaseProduct { diff --git a/src/v2/product/ocr/params/index.ts b/src/v2/product/ocr/params/index.ts new file mode 100644 index 000000000..705ef889e --- /dev/null +++ b/src/v2/product/ocr/params/index.ts @@ -0,0 +1 @@ +export { OcrParameters } from "./ocrParameters.js"; diff --git a/src/v2/product/ocr/ocrParameters.ts b/src/v2/product/ocr/params/ocrParameters.ts similarity index 100% rename from src/v2/product/ocr/ocrParameters.ts rename to src/v2/product/ocr/params/ocrParameters.ts diff --git a/src/v2/product/split/index.ts b/src/v2/product/split/index.ts index 59891e87e..d92687bc8 100644 --- a/src/v2/product/split/index.ts +++ b/src/v2/product/split/index.ts @@ -1,5 +1,5 @@ export { Split } from "./split.js"; -export { SplitParameters } from "./splitParameters.js"; +export { SplitParameters } from "./params/index.js"; export { SplitResponse } from "./splitResponse.js"; export { SplitInference } from "./splitInference.js"; export { SplitRange } from "./splitRange.js"; diff --git a/src/v2/product/split/params/index.ts b/src/v2/product/split/params/index.ts new file mode 100644 index 000000000..964b656ad --- /dev/null +++ b/src/v2/product/split/params/index.ts @@ -0,0 +1 @@ +export { SplitParameters } from "./splitParameters.js"; diff --git a/src/v2/product/split/splitParameters.ts b/src/v2/product/split/params/splitParameters.ts similarity index 100% rename from src/v2/product/split/splitParameters.ts rename to src/v2/product/split/params/splitParameters.ts diff --git a/src/v2/product/split/split.ts b/src/v2/product/split/split.ts index 42d217715..8933c863e 100644 --- a/src/v2/product/split/split.ts +++ b/src/v2/product/split/split.ts @@ -1,5 +1,5 @@ import { SplitResponse } from "./splitResponse.js"; -import { SplitParameters } from "./splitParameters.js"; +import { SplitParameters } from "./params/index.js"; import { BaseProduct } from "@/v2/product/baseProduct.js"; export class Split extends BaseProduct { diff --git a/tests/v2/product/extractionParameter.spec.ts b/tests/v2/product/extractionParameter.spec.ts index ce554c173..3318210ff 100644 --- a/tests/v2/product/extractionParameter.spec.ts +++ b/tests/v2/product/extractionParameter.spec.ts @@ -7,7 +7,7 @@ import { extraction } from "@/v2/product/index.js"; let expectedDataSchemaDict: StringDict; let expectedDataSchemaString: string; -let expectedDataSchemaObject: extraction.DataSchema; +let expectedDataSchemaObject: extraction.params.DataSchema; describe("MindeeV2 - Extraction Parameter", () => { const modelIdValue = "test-model-id"; @@ -34,7 +34,7 @@ describe("MindeeV2 - Extraction Parameter", () => { ); expectedDataSchemaDict = JSON.parse(fileContents.toString()); expectedDataSchemaString = JSON.stringify(expectedDataSchemaDict); - expectedDataSchemaObject = new extraction.DataSchema(expectedDataSchemaDict); + expectedDataSchemaObject = new extraction.params.DataSchema(expectedDataSchemaDict); }); it("shouldn't replace when unset", () => {