ts-openapi-codegen 2.0.0-beta.8 → 2.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts +2 -1
- package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/checkConfig.js +14 -6
- package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts +2 -1
- package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/updateConfig.js +13 -5
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +4 -5
- package/dist/cli/index.js +5 -5
- package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/init.js +5 -13
- package/dist/cli/initOpenApiConfig/initConfig.js +3 -3
- package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
- package/dist/cli/previewChanges/previewChanges.js +12 -5
- package/dist/cli/schemas/base.d.ts +6 -1
- package/dist/cli/schemas/base.d.ts.map +1 -1
- package/dist/cli/schemas/base.js +10 -6
- package/dist/cli/schemas/checkConfig.d.ts +1 -1
- package/dist/cli/schemas/generate.d.ts +1 -25
- package/dist/cli/schemas/generate.d.ts.map +1 -1
- package/dist/cli/schemas/generate.js +21 -32
- package/dist/cli/schemas/index.d.ts +2 -1
- package/dist/cli/schemas/index.d.ts.map +1 -1
- package/dist/cli/schemas/index.js +1 -0
- package/dist/cli/schemas/init.d.ts +5 -5
- package/dist/cli/schemas/init.d.ts.map +1 -1
- package/dist/cli/schemas/init.js +4 -5
- package/dist/cli/schemas/previewChanges.d.ts +9 -0
- package/dist/cli/schemas/previewChanges.d.ts.map +1 -0
- package/dist/cli/schemas/previewChanges.js +11 -0
- package/dist/cli/schemas/updateConfig.d.ts +1 -1
- package/dist/common/Consts.d.ts +2 -0
- package/dist/common/Consts.d.ts.map +1 -1
- package/dist/common/Consts.js +4 -1
- package/dist/common/LoggerMessages.js +1 -1
- package/dist/common/TRawOptions.d.ts +1 -1
- package/dist/common/TRawOptions.d.ts.map +1 -1
- package/dist/common/Validation/formatZodError.d.ts +10 -0
- package/dist/common/Validation/formatZodError.d.ts.map +1 -0
- package/dist/{cli/validation/errorFormatter.js → common/Validation/formatZodError.js} +14 -13
- package/dist/common/Validation/index.d.ts +3 -0
- package/dist/common/Validation/index.d.ts.map +1 -0
- package/dist/{cli/validation → common/Validation}/index.js +2 -2
- package/dist/{cli/validation/validateCLIOptions.d.ts → common/Validation/validateZodOptions.d.ts} +4 -4
- package/dist/common/Validation/validateZodOptions.d.ts.map +1 -0
- package/dist/{cli/validation/validateCLIOptions.js → common/Validation/validateZodOptions.js} +7 -10
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts +6 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.js +8 -14
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts +28 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.js +25 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts +36 -6
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.js +33 -37
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts +37 -6
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.js +30 -37
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts +40 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts.map +1 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.js +36 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +65 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +31 -0
- package/dist/common/VersionedSchema/CommonSchemas.d.ts +53 -30
- package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/CommonSchemas.js +47 -72
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts +25 -5
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.js +34 -17
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts +25 -5
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.js +28 -19
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts +25 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.js +29 -2
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts +25 -5
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.js +30 -14
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts +23 -5
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.js +33 -18
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.d.ts +3 -2
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.js +18 -11
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +22 -5
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.js +30 -12
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +22 -5
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.js +27 -13
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts +22 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.js +28 -2
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +22 -5
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.js +31 -12
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.d.ts +3 -2
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.js +15 -9
- package/dist/common/VersionedSchema/Types.d.ts +5 -5
- package/dist/common/VersionedSchema/Types.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts +16 -0
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -0
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +85 -0
- package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.d.ts +2 -0
- package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.d.ts.map +1 -0
- package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.js +23 -0
- package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.d.ts +2 -0
- package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.d.ts.map +1 -0
- package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.js +75 -0
- package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts +12 -0
- package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts.map +1 -0
- package/dist/common/VersionedSchema/Utils/buildVersionedSchema.js +13 -0
- package/dist/common/VersionedSchema/Utils/compareShapes.d.ts +16 -0
- package/dist/common/VersionedSchema/Utils/compareShapes.d.ts.map +1 -0
- package/dist/common/VersionedSchema/Utils/compareShapes.js +30 -0
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts +2 -1
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +5 -5
- package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.d.ts +2 -2
- package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.js +15 -7
- package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.d.ts +2 -2
- package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.js +16 -3
- package/dist/common/VersionedSchema/Utils/getUniqueObjectKeys.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/getUniqueObjectKeys.js +19 -2
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts +2 -1
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +10 -9
- package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts +4 -0
- package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts.map +1 -0
- package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.js +43 -0
- package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts +4 -0
- package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts.map +1 -0
- package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.js +21 -0
- package/dist/core/Context.d.ts +6 -5
- package/dist/core/Context.d.ts.map +1 -1
- package/dist/core/Context.js +69 -26
- package/dist/core/OpenApiClient.d.ts.map +1 -1
- package/dist/core/OpenApiClient.js +12 -8
- package/dist/core/api/v2/Parser.d.ts +1 -1
- package/dist/core/api/v2/Parser.d.ts.map +1 -1
- package/dist/core/api/v2/Parser.js +2 -2
- package/dist/core/api/v2/parser/getModel.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getModel.js +2 -5
- package/dist/core/api/v2/parser/getModelProperties.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getModelProperties.js +1 -3
- package/dist/core/api/v2/parser/getModels.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getModels.js +1 -2
- package/dist/core/api/v2/parser/getOperationParameter.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getOperationParameter.js +2 -5
- package/dist/core/api/v2/parser/getOperationParameters.js +1 -1
- package/dist/core/api/v2/parser/getOperationResponse.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getOperationResponse.js +1 -3
- package/dist/core/api/v2/parser/getOperationResponses.js +1 -1
- package/dist/core/api/v2/parser/getServices.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getServices.js +4 -3
- package/dist/core/api/v2/parser/getType.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getType.js +2 -2
- package/dist/core/api/v3/Parser.d.ts +1 -1
- package/dist/core/api/v3/Parser.d.ts.map +1 -1
- package/dist/core/api/v3/Parser.js +2 -2
- package/dist/core/api/v3/parser/getModel.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getModel.js +2 -5
- package/dist/core/api/v3/parser/getModelProperties.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getModelProperties.js +1 -3
- package/dist/core/api/v3/parser/getModels.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getModels.js +1 -2
- package/dist/core/api/v3/parser/getOperation.js +1 -1
- package/dist/core/api/v3/parser/getOperationParameter.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationParameter.js +2 -5
- package/dist/core/api/v3/parser/getOperationParameters.js +1 -1
- package/dist/core/api/v3/parser/getOperationRequestBody.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationRequestBody.js +1 -3
- package/dist/core/api/v3/parser/getOperationResponse.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationResponse.js +1 -3
- package/dist/core/api/v3/parser/getOperationResponses.js +1 -1
- package/dist/core/api/v3/parser/getServices.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getServices.js +4 -3
- package/dist/core/api/v3/parser/getType.js +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -0
- package/dist/core/utils/__tests__/isSubdirectory.test.js +2 -2
- package/dist/core/utils/serviceHelpers.d.ts.map +1 -1
- package/dist/core/utils/serviceHelpers.js +32 -6
- package/dist/core/utils/validateRawOptions.d.ts +3 -0
- package/dist/core/utils/validateRawOptions.d.ts.map +1 -0
- package/dist/core/utils/validateRawOptions.js +15 -0
- package/dist/templatesCompiled/client/exportService.js +1 -1
- package/dist/templatesCompiled/client/partials/exportComposition.d.ts +2 -0
- package/dist/templatesCompiled/client/partials/exportComposition.d.ts.map +1 -1
- package/dist/templatesCompiled/client/partials/exportComposition.js +17 -9
- package/package.json +1 -1
- package/dist/cli/validation/errorFormatter.d.ts +0 -6
- package/dist/cli/validation/errorFormatter.d.ts.map +0 -1
- package/dist/cli/validation/index.d.ts +0 -3
- package/dist/cli/validation/index.d.ts.map +0 -1
- package/dist/cli/validation/validateCLIOptions.d.ts.map +0 -1
- package/dist/common/VersionedSchema/Utils/getErrorFieldsFromValidation.d.ts +0 -6
- package/dist/common/VersionedSchema/Utils/getErrorFieldsFromValidation.d.ts.map +0 -1
- package/dist/common/VersionedSchema/Utils/getErrorFieldsFromValidation.js +0 -7
- package/dist/common/VersionedSchema/Utils/joiHandlers.d.ts +0 -6
- package/dist/common/VersionedSchema/Utils/joiHandlers.d.ts.map +0 -1
- package/dist/common/VersionedSchema/Utils/joiHandlers.js +0 -59
- package/dist/common/VersionedSchema/Utils/mergeObjectSchemas.d.ts +0 -3
- package/dist/common/VersionedSchema/Utils/mergeObjectSchemas.d.ts.map +0 -1
- package/dist/common/VersionedSchema/Utils/mergeObjectSchemas.js +0 -12
- package/dist/common/VersionedSchema/Utils/traverseObjectStructure.d.ts +0 -3
- package/dist/common/VersionedSchema/Utils/traverseObjectStructure.d.ts.map +0 -1
- package/dist/common/VersionedSchema/Utils/traverseObjectStructure.js +0 -31
- package/dist/common/schemas/configSchemas.d.ts +0 -91
- package/dist/common/schemas/configSchemas.d.ts.map +0 -1
- package/dist/common/schemas/configSchemas.js +0 -131
- package/dist/common/utils/__tests__/__mock__/mockJoiSchema.d.ts +0 -19
- package/dist/common/utils/__tests__/__mock__/mockJoiSchema.d.ts.map +0 -1
- package/dist/common/utils/__tests__/__mock__/mockJoiSchema.js +0 -14
- package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.d.ts +0 -2
- package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.d.ts.map +0 -1
- package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.js +0 -38
- package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.d.ts +0 -2
- package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.d.ts.map +0 -1
- package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.js +0 -20
- package/dist/common/utils/__tests__/mergeObjectSchemas.test.d.ts +0 -2
- package/dist/common/utils/__tests__/mergeObjectSchemas.test.d.ts.map +0 -1
- package/dist/common/utils/__tests__/mergeObjectSchemas.test.js +0 -35
- package/dist/common/utils/__tests__/migrationForMultiOptions.test.d.ts +0 -2
- package/dist/common/utils/__tests__/migrationForMultiOptions.test.d.ts.map +0 -1
- package/dist/common/utils/__tests__/migrationForMultiOptions.test.js +0 -112
- package/dist/common/utils/__tests__/migrationForOptions.test.d.ts +0 -2
- package/dist/common/utils/__tests__/migrationForOptions.test.d.ts.map +0 -1
- package/dist/common/utils/__tests__/migrationForOptions.test.js +0 -56
- package/dist/core/utils/__tests__/getRelativeModelPath.test.d.ts +0 -2
- package/dist/core/utils/__tests__/getRelativeModelPath.test.d.ts.map +0 -1
- package/dist/core/utils/__tests__/getRelativeModelPath.test.js +0 -21
- package/dist/core/utils/getRelativeModelPath.d.ts +0 -9
- package/dist/core/utils/getRelativeModelPath.d.ts.map +0 -1
- package/dist/core/utils/getRelativeModelPath.js +0 -37
|
@@ -2,24 +2,30 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.optionsVersionedSchemas = void 0;
|
|
4
4
|
const Enums_1 = require("../Enums");
|
|
5
|
+
const buildVersionedSchema_1 = require("../Utils/buildVersionedSchema");
|
|
5
6
|
const OptionsSchemaV1_1 = require("./OptionsSchemaV1");
|
|
6
7
|
const OptionsSchemaV2_1 = require("./OptionsSchemaV2");
|
|
7
8
|
const OptionsSchemaV3_1 = require("./OptionsSchemaV3");
|
|
8
9
|
const OptionsSchemaV4_1 = require("./OptionsSchemaV4");
|
|
9
|
-
exports.optionsVersionedSchemas = [
|
|
10
|
+
exports.optionsVersionedSchemas = [
|
|
11
|
+
(0, buildVersionedSchema_1.buildVersionedSchema)({
|
|
10
12
|
version: 'v1',
|
|
11
|
-
|
|
13
|
+
base: OptionsSchemaV1_1.optionsSchemaV1,
|
|
12
14
|
type: Enums_1.EVersionedSchemaType.OPTIONS,
|
|
13
|
-
},
|
|
15
|
+
}),
|
|
16
|
+
(0, buildVersionedSchema_1.buildVersionedSchema)({
|
|
14
17
|
version: 'v2',
|
|
15
|
-
|
|
18
|
+
base: OptionsSchemaV2_1.optionsSchemaV2,
|
|
16
19
|
type: Enums_1.EVersionedSchemaType.OPTIONS,
|
|
17
|
-
},
|
|
20
|
+
}),
|
|
21
|
+
(0, buildVersionedSchema_1.buildVersionedSchema)({
|
|
18
22
|
version: 'v3',
|
|
19
|
-
|
|
23
|
+
base: OptionsSchemaV3_1.optionsSchemaV3,
|
|
20
24
|
type: Enums_1.EVersionedSchemaType.OPTIONS,
|
|
21
|
-
},
|
|
25
|
+
}),
|
|
26
|
+
(0, buildVersionedSchema_1.buildVersionedSchema)({
|
|
22
27
|
version: 'v4',
|
|
23
|
-
|
|
28
|
+
base: OptionsSchemaV4_1.optionsSchemaV4,
|
|
24
29
|
type: Enums_1.EVersionedSchemaType.OPTIONS,
|
|
25
|
-
}
|
|
30
|
+
}),
|
|
31
|
+
];
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { z } from 'zod';
|
|
2
2
|
import { EVersionedSchemaType } from './Enums';
|
|
3
|
-
export type VersionedSchema<
|
|
4
|
-
schema:
|
|
5
|
-
|
|
3
|
+
export type VersionedSchema<TSchema extends z.ZodTypeAny> = {
|
|
4
|
+
schema: TSchema;
|
|
5
|
+
baseSchema: z.ZodObject<any>;
|
|
6
6
|
version: string;
|
|
7
|
+
type: EVersionedSchemaType;
|
|
7
8
|
};
|
|
8
9
|
export type SchemaMigrationPlan<From, To> = {
|
|
9
10
|
fromVersion: string;
|
|
@@ -15,7 +16,6 @@ export type SchemaMigrationPlan<From, To> = {
|
|
|
15
16
|
*/
|
|
16
17
|
description?: string;
|
|
17
18
|
};
|
|
18
|
-
export type TraverseHandler<T> = (value: any, recurse: (v: any) => void, result: T) => boolean;
|
|
19
19
|
export type VersionMatchResult = {
|
|
20
20
|
lastVersionIndex: number;
|
|
21
21
|
latestVersion: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/common/VersionedSchema/Types.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/common/VersionedSchema/Types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,CAAC,CAAC,UAAU,IAAI;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,oBAAoB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,IAAI,EAAE,EAAE,IAAI;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACxB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EVersionedSchemaType } from '../../Enums';
|
|
2
|
+
import { CompatibilityIssue } from '../compareShapes';
|
|
3
|
+
type CompatibilityCase = {
|
|
4
|
+
type: EVersionedSchemaType;
|
|
5
|
+
from: string;
|
|
6
|
+
to: string;
|
|
7
|
+
expect: CompatibilityIssue[];
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* ВАЖНО!
|
|
11
|
+
* Для корректной работы механизма миграции версий опций необходимо после добавления
|
|
12
|
+
* новой схемы обновлять compatibilityCases.
|
|
13
|
+
*/
|
|
14
|
+
export declare const compatibilityCases: CompatibilityCase[];
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=compatibilityCases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compatibilityCases.d.ts","sourceRoot":"","sources":["../../../../../src/common/VersionedSchema/Utils/__mocks__/compatibilityCases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,KAAK,iBAAiB,GAAG;IACrB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAChC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,iBAAiB,EA2EjD,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compatibilityCases = void 0;
|
|
4
|
+
const Enums_1 = require("../../Enums");
|
|
5
|
+
/**
|
|
6
|
+
* ВАЖНО!
|
|
7
|
+
* Для корректной работы механизма миграции версий опций необходимо после добавления
|
|
8
|
+
* новой схемы обновлять compatibilityCases.
|
|
9
|
+
*/
|
|
10
|
+
exports.compatibilityCases = [
|
|
11
|
+
{
|
|
12
|
+
type: Enums_1.EVersionedSchemaType.OPTIONS,
|
|
13
|
+
from: 'v1',
|
|
14
|
+
to: 'v2',
|
|
15
|
+
expect: [
|
|
16
|
+
{ type: 'removed', key: 'client' },
|
|
17
|
+
{ type: 'added', key: 'httpClient' },
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
type: Enums_1.EVersionedSchemaType.OPTIONS,
|
|
22
|
+
from: 'v2',
|
|
23
|
+
to: 'v3',
|
|
24
|
+
expect: [{ type: 'added', key: 'useCancelableRequest' }],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
type: Enums_1.EVersionedSchemaType.OPTIONS,
|
|
28
|
+
from: 'v3',
|
|
29
|
+
to: 'v4',
|
|
30
|
+
expect: [
|
|
31
|
+
{ type: 'removed', key: 'exportCore' },
|
|
32
|
+
{ type: 'removed', key: 'exportServices' },
|
|
33
|
+
{ type: 'removed', key: 'exportModels' },
|
|
34
|
+
{ type: 'removed', key: 'exportSchemas' },
|
|
35
|
+
{ type: 'removed', key: 'clean' },
|
|
36
|
+
{ type: 'added', key: 'excludeCoreServiceFiles' },
|
|
37
|
+
{ type: 'added', key: 'includeSchemasFiles' },
|
|
38
|
+
{ type: 'added', key: 'sortByRequired' },
|
|
39
|
+
{ type: 'added', key: 'useSeparatedIndexes' },
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
type: Enums_1.EVersionedSchemaType.MULTI_OPTIONS,
|
|
44
|
+
from: 'v1',
|
|
45
|
+
to: 'v2',
|
|
46
|
+
expect: [
|
|
47
|
+
{ type: 'removed', key: 'client' },
|
|
48
|
+
{ type: 'added', key: 'httpClient' },
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
type: Enums_1.EVersionedSchemaType.MULTI_OPTIONS,
|
|
53
|
+
from: 'v2',
|
|
54
|
+
to: 'v3',
|
|
55
|
+
expect: [{ type: 'added', key: 'useCancelableRequest' }],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
type: Enums_1.EVersionedSchemaType.MULTI_OPTIONS,
|
|
59
|
+
from: 'v4',
|
|
60
|
+
to: 'v5',
|
|
61
|
+
expect: [
|
|
62
|
+
{ type: 'removed', key: 'exportCore' },
|
|
63
|
+
{ type: 'removed', key: 'exportServices' },
|
|
64
|
+
{ type: 'removed', key: 'exportModels' },
|
|
65
|
+
{ type: 'removed', key: 'exportSchemas' },
|
|
66
|
+
{ type: 'removed', key: 'clean' },
|
|
67
|
+
{ type: 'added', key: 'excludeCoreServiceFiles' },
|
|
68
|
+
{ type: 'added', key: 'includeSchemasFiles' },
|
|
69
|
+
{ type: 'added', key: 'sortByRequired' },
|
|
70
|
+
{ type: 'added', key: 'useSeparatedIndexes' },
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
type: Enums_1.EVersionedSchemaType.UNIFIED_OPTIONS,
|
|
75
|
+
from: 'v1',
|
|
76
|
+
to: 'v2',
|
|
77
|
+
expect: [{ type: 'added', key: 'validationLibrary' }],
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: Enums_1.EVersionedSchemaType.UNIFIED_OPTIONS,
|
|
81
|
+
from: 'v2',
|
|
82
|
+
to: 'v3',
|
|
83
|
+
expect: [{ type: 'added', key: 'logLevel' }, { type: 'added', key: 'logTarget' }],
|
|
84
|
+
},
|
|
85
|
+
];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compareShapes.test.d.ts","sourceRoot":"","sources":["../../../../../src/common/VersionedSchema/Utils/__tests__/compareShapes.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/* eslint-disable simple-import-sort/imports */
|
|
7
|
+
const node_test_1 = __importDefault(require("node:test"));
|
|
8
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
9
|
+
const compareShapes_1 = require("../compareShapes");
|
|
10
|
+
const AllVersionedSchemas_1 = require("../../../VersionedSchema/AllVersionedSchemas/AllVersionedSchemas");
|
|
11
|
+
const compatibilityCases_1 = require("../__mocks__/compatibilityCases");
|
|
12
|
+
(0, node_test_1.default)('@unit: schema versions compatibility', () => {
|
|
13
|
+
for (const testCase of compatibilityCases_1.compatibilityCases) {
|
|
14
|
+
const { type, from, to, expect } = testCase;
|
|
15
|
+
const prev = AllVersionedSchemas_1.allVersionedSchemas.find(vs => vs.type === type && vs.version === `${type}_${from}`)?.baseSchema;
|
|
16
|
+
const next = AllVersionedSchemas_1.allVersionedSchemas.find(vs => vs.type === type && vs.version === `${type}_${to}`)?.baseSchema;
|
|
17
|
+
if (!prev || !next) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const issues = (0, compareShapes_1.compareShapes)(prev, next);
|
|
21
|
+
node_assert_1.default.deepStrictEqual(issues, expect, `${type} ${from} → ${to} mismatch`);
|
|
22
|
+
}
|
|
23
|
+
});
|
package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrateDataToLatestSchemaVersion.test.d.ts","sourceRoot":"","sources":["../../../../../src/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/* eslint-disable simple-import-sort/imports */
|
|
7
|
+
const node_test_1 = __importDefault(require("node:test"));
|
|
8
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
9
|
+
const ValidationLibrary_enum_1 = require("../../../../core/types/enums/ValidationLibrary.enum");
|
|
10
|
+
const Enums_1 = require("../../../Enums");
|
|
11
|
+
const AllMigrationPlans_1 = require("../../AllVersionedSchemas/AllMigrationPlans");
|
|
12
|
+
const AllVersionedSchemas_1 = require("../../AllVersionedSchemas/AllVersionedSchemas");
|
|
13
|
+
const Enums_2 = require("../../Enums");
|
|
14
|
+
const MultiOptionsMigrationPlan_1 = require("../../MultiOptionsVersioned/MultiOptionsMigrationPlan");
|
|
15
|
+
const MultiOptionsVersionedSchemas_1 = require("../../MultiOptionsVersioned/MultiOptionsVersionedSchemas");
|
|
16
|
+
const OptionsMigrationPlans_1 = require("../../OptionsVersioned/OptionsMigrationPlans");
|
|
17
|
+
const OptionsVersionedSchemas_1 = require("../../OptionsVersioned/OptionsVersionedSchemas");
|
|
18
|
+
const migrateDataToLatestSchemaVersion_1 = require("../migrateDataToLatestSchemaVersion");
|
|
19
|
+
(0, node_test_1.default)('@unit: migrateDataToLatestSchemaVersion (options → latest options)', () => {
|
|
20
|
+
const rawInput = {
|
|
21
|
+
input: './spec.json',
|
|
22
|
+
output: './dist',
|
|
23
|
+
httpClient: 'fetch',
|
|
24
|
+
};
|
|
25
|
+
const result = (0, migrateDataToLatestSchemaVersion_1.migrateDataToLatestSchemaVersion)({
|
|
26
|
+
rawInput,
|
|
27
|
+
migrationPlans: OptionsMigrationPlans_1.optionsMigrationPlans,
|
|
28
|
+
versionedSchemas: OptionsVersionedSchemas_1.optionsVersionedSchemas,
|
|
29
|
+
migrationMode: Enums_1.EMigrationMode.VALIDATE_CONFIG,
|
|
30
|
+
});
|
|
31
|
+
node_assert_1.default.ok(result);
|
|
32
|
+
node_assert_1.default.strictEqual(result?.schemaType, Enums_2.EVersionedSchemaType.OPTIONS);
|
|
33
|
+
node_assert_1.default.strictEqual(result?.schemaVersion, 'v4');
|
|
34
|
+
node_assert_1.default.strictEqual(result?.value.httpClient, 'fetch');
|
|
35
|
+
node_assert_1.default.strictEqual(result?.value.httpClient, 'fetch');
|
|
36
|
+
});
|
|
37
|
+
(0, node_test_1.default)('@unit: migrateDataToLatestSchemaVersion (multi-options → latest multi-options)', () => {
|
|
38
|
+
const rawInput = {
|
|
39
|
+
httpClient: 'fetch',
|
|
40
|
+
items: [{ input: './spec.json', output: './dist' }],
|
|
41
|
+
};
|
|
42
|
+
const result = (0, migrateDataToLatestSchemaVersion_1.migrateDataToLatestSchemaVersion)({
|
|
43
|
+
rawInput,
|
|
44
|
+
migrationPlans: MultiOptionsMigrationPlan_1.multiOptionsMigrationPlan,
|
|
45
|
+
versionedSchemas: MultiOptionsVersionedSchemas_1.multiOptionsVersionedSchema,
|
|
46
|
+
migrationMode: Enums_1.EMigrationMode.VALIDATE_CONFIG,
|
|
47
|
+
});
|
|
48
|
+
node_assert_1.default.ok(result);
|
|
49
|
+
node_assert_1.default.strictEqual(result?.schemaType, Enums_2.EVersionedSchemaType.MULTI_OPTIONS);
|
|
50
|
+
node_assert_1.default.strictEqual(result?.schemaVersion, 'v5');
|
|
51
|
+
node_assert_1.default.strictEqual(result?.value.httpClient, 'fetch');
|
|
52
|
+
const item = result?.value.items?.[0];
|
|
53
|
+
node_assert_1.default.ok(item);
|
|
54
|
+
node_assert_1.default.strictEqual(item?.input, './spec.json');
|
|
55
|
+
node_assert_1.default.strictEqual(item?.output, './dist');
|
|
56
|
+
});
|
|
57
|
+
(0, node_test_1.default)('@unit: migrateDataToLatestSchemaVersion (unified schemas)', () => {
|
|
58
|
+
const rawInput = {
|
|
59
|
+
input: './spec.json',
|
|
60
|
+
output: './dist',
|
|
61
|
+
httpClient: 'fetch',
|
|
62
|
+
validationLibrary: ValidationLibrary_enum_1.ValidationLibrary.NONE,
|
|
63
|
+
};
|
|
64
|
+
const result = (0, migrateDataToLatestSchemaVersion_1.migrateDataToLatestSchemaVersion)({
|
|
65
|
+
rawInput,
|
|
66
|
+
migrationPlans: AllMigrationPlans_1.allMigrationPlans,
|
|
67
|
+
versionedSchemas: AllVersionedSchemas_1.allVersionedSchemas,
|
|
68
|
+
migrationMode: Enums_1.EMigrationMode.VALIDATE_CONFIG,
|
|
69
|
+
});
|
|
70
|
+
node_assert_1.default.ok(result);
|
|
71
|
+
node_assert_1.default.strictEqual(result?.schemaType, Enums_2.EVersionedSchemaType.UNIFIED_OPTIONS);
|
|
72
|
+
node_assert_1.default.strictEqual(result?.schemaVersion, 'UNIFIED_OPTIONS_v3');
|
|
73
|
+
node_assert_1.default.strictEqual(result?.value.httpClient, 'fetch');
|
|
74
|
+
node_assert_1.default.strictEqual(result?.value.validationLibrary, ValidationLibrary_enum_1.ValidationLibrary.NONE);
|
|
75
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { EVersionedSchemaType } from '../Enums';
|
|
3
|
+
import { VersionedSchema } from '../Types';
|
|
4
|
+
type BuildVersionedSchemaParams<TBase extends z.ZodObject<any>> = {
|
|
5
|
+
base: TBase;
|
|
6
|
+
refine?: (data: z.infer<TBase>, ctx: z.RefinementCtx) => void;
|
|
7
|
+
version: string;
|
|
8
|
+
type: EVersionedSchemaType;
|
|
9
|
+
};
|
|
10
|
+
export declare function buildVersionedSchema<TBase extends z.ZodObject<any>>(params: BuildVersionedSchemaParams<TBase>): VersionedSchema<z.ZodTypeAny>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=buildVersionedSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildVersionedSchema.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/buildVersionedSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,KAAK,0BAA0B,CAAC,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI;IAC9D,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,oBAAoB,CAAC;CAC9B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAC/D,MAAM,EAAE,0BAA0B,CAAC,KAAK,CAAC,GAC1C,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAW/B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildVersionedSchema = buildVersionedSchema;
|
|
4
|
+
function buildVersionedSchema(params) {
|
|
5
|
+
const { base, refine, version, type } = params;
|
|
6
|
+
const schema = refine ? base.superRefine(refine) : base;
|
|
7
|
+
return {
|
|
8
|
+
schema,
|
|
9
|
+
baseSchema: base,
|
|
10
|
+
version,
|
|
11
|
+
type,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export type CompatibilityIssue = {
|
|
3
|
+
type: 'removed';
|
|
4
|
+
key: string;
|
|
5
|
+
} | {
|
|
6
|
+
type: 'added';
|
|
7
|
+
key: string;
|
|
8
|
+
} | {
|
|
9
|
+
type: 'type-changed';
|
|
10
|
+
key: string;
|
|
11
|
+
} | {
|
|
12
|
+
type: 'optional-to-required';
|
|
13
|
+
key: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function compareShapes(prev: z.ZodObject<any>, next: z.ZodObject<any>): CompatibilityIssue[];
|
|
16
|
+
//# sourceMappingURL=compareShapes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compareShapes.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/compareShapes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3L,wBAAgB,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,kBAAkB,EAAE,CAiClG"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compareShapes = compareShapes;
|
|
4
|
+
function compareShapes(prev, next) {
|
|
5
|
+
const prevShape = prev.shape;
|
|
6
|
+
const nextShape = next.shape;
|
|
7
|
+
const issues = [];
|
|
8
|
+
// removed / changed / optional → required
|
|
9
|
+
for (const key of Object.keys(prevShape)) {
|
|
10
|
+
if (!(key in nextShape)) {
|
|
11
|
+
issues.push({ type: 'removed', key });
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
const prevField = prevShape[key];
|
|
15
|
+
const nextField = nextShape[key];
|
|
16
|
+
if (prevField._def.typeName !== nextField._def.typeName) {
|
|
17
|
+
issues.push({ type: 'type-changed', key });
|
|
18
|
+
}
|
|
19
|
+
if (prevField.isOptional() && !nextField.isOptional()) {
|
|
20
|
+
issues.push({ type: 'optional-to-required', key });
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// added
|
|
24
|
+
for (const key of Object.keys(nextShape)) {
|
|
25
|
+
if (!(key in prevShape)) {
|
|
26
|
+
issues.push({ type: 'added', key });
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return issues;
|
|
30
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
import { VersionedSchema, VersionMatchResult } from '../Types';
|
|
2
|
-
export declare function determineBestMatchingSchemaVersion(inputData: Record<string, any>, versionedSchemas: VersionedSchema<
|
|
3
|
+
export declare function determineBestMatchingSchemaVersion(inputData: Record<string, any>, versionedSchemas: VersionedSchema<z.ZodTypeAny>[]): VersionMatchResult;
|
|
3
4
|
//# sourceMappingURL=determineBestMatchingSchemaVersion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"determineBestMatchingSchemaVersion.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"determineBestMatchingSchemaVersion.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAK/D,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,kBAAkB,CA4CxJ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.determineBestMatchingSchemaVersion = determineBestMatchingSchemaVersion;
|
|
4
|
-
const
|
|
4
|
+
const validateZodOptions_1 = require("../../Validation/validateZodOptions");
|
|
5
5
|
const getUniqueKeysFromSchemas_1 = require("./getUniqueKeysFromSchemas");
|
|
6
6
|
const getUniqueObjectKeys_1 = require("./getUniqueObjectKeys");
|
|
7
7
|
// Determining the most appropriate schema version
|
|
@@ -12,8 +12,8 @@ function determineBestMatchingSchemaVersion(inputData, versionedSchemas) {
|
|
|
12
12
|
const inputKeys = (0, getUniqueObjectKeys_1.getUniqueObjectKeys)(inputData);
|
|
13
13
|
const matchingSchemas = versionedSchemas
|
|
14
14
|
.map(({ schema, version }, idx) => {
|
|
15
|
-
const
|
|
16
|
-
const errorFields =
|
|
15
|
+
const validationResult = (0, validateZodOptions_1.validateZodOptionsRaw)(schema, inputData);
|
|
16
|
+
const errorFields = !validationResult.success ? validationResult.error.issues.filter(err => err.code !== 'invalid_value') : [];
|
|
17
17
|
return errorFields.length === 0 ? { version, index: idx } : null;
|
|
18
18
|
})
|
|
19
19
|
.filter((match) => match !== null);
|
|
@@ -27,8 +27,8 @@ function determineBestMatchingSchemaVersion(inputData, versionedSchemas) {
|
|
|
27
27
|
}
|
|
28
28
|
const schemaMatches = versionedSchemas.map(({ schema, version }, idx) => {
|
|
29
29
|
const schemaKeys = (0, getUniqueKeysFromSchemas_1.getUniqueKeysFromSchemas)([schema]);
|
|
30
|
-
const
|
|
31
|
-
const errorFields =
|
|
30
|
+
const validationResult = (0, validateZodOptions_1.validateZodOptionsRaw)(schema, inputData);
|
|
31
|
+
const errorFields = !validationResult.success ? validationResult.error.issues.filter(err => err.code !== 'invalid_value') : [];
|
|
32
32
|
const matchingKeys = inputKeys.filter(key => schemaKeys.has(key));
|
|
33
33
|
return { index: idx, version, errorFields, matchingKeys };
|
|
34
34
|
});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare function getCurrentErrorMessage(error:
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare function getCurrentErrorMessage(error: z.ZodError, replaicingKeysMap: Map<string, string>): void;
|
|
3
3
|
//# sourceMappingURL=getCurrentErrorMessage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCurrentErrorMessage.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/getCurrentErrorMessage.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"getCurrentErrorMessage.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/getCurrentErrorMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAqB/F"}
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCurrentErrorMessage = getCurrentErrorMessage;
|
|
4
|
-
const
|
|
4
|
+
const formatZodError_1 = require("../../Validation/formatZodError");
|
|
5
5
|
const getKeyByMapValue_1 = require("./getKeyByMapValue");
|
|
6
6
|
function getCurrentErrorMessage(error, replaicingKeysMap) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
let currentMessage = error.message;
|
|
10
|
-
if (reverseKey) {
|
|
11
|
-
currentMessage = error.message.replace(path, reverseKey);
|
|
7
|
+
if (!error || error.issues.length === 0) {
|
|
8
|
+
return;
|
|
12
9
|
}
|
|
13
|
-
|
|
10
|
+
const messages = new Set();
|
|
11
|
+
error.issues.forEach(issue => {
|
|
12
|
+
const path = (0, formatZodError_1.formatZodPath)(issue.path);
|
|
13
|
+
const reverseKey = (0, getKeyByMapValue_1.getKeyByMapValue)(replaicingKeysMap, path);
|
|
14
|
+
let currentMessage = issue.message;
|
|
15
|
+
if (reverseKey) {
|
|
16
|
+
currentMessage = error.message.replace(path, reverseKey);
|
|
17
|
+
}
|
|
18
|
+
messages.add(currentMessage);
|
|
19
|
+
});
|
|
20
|
+
const result = Array.from(messages.values());
|
|
21
|
+
throw new Error(result.join('\n'));
|
|
14
22
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { z } from 'zod';
|
|
2
2
|
/**
|
|
3
3
|
* Get all the unique parameter keys of all Joi schemes in the array
|
|
4
4
|
* @param schemas array of joi schemes
|
|
5
5
|
* @returns All the unique parameter keys of all Joi schemes in the array
|
|
6
6
|
*/
|
|
7
|
-
export declare function getUniqueKeysFromSchemas(schemas:
|
|
7
|
+
export declare function getUniqueKeysFromSchemas(schemas: z.ZodTypeAny[]): Set<string>;
|
|
8
8
|
//# sourceMappingURL=getUniqueKeysFromSchemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUniqueKeysFromSchemas.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"getUniqueKeysFromSchemas.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqBxB;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAQ7E"}
|
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getUniqueKeysFromSchemas = getUniqueKeysFromSchemas;
|
|
4
|
-
const
|
|
5
|
-
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
function collectKeys(schema, result) {
|
|
6
|
+
if (!(schema instanceof zod_1.z.ZodObject)) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
const shape = schema.shape;
|
|
10
|
+
for (const key of Object.keys(shape)) {
|
|
11
|
+
result.add(key);
|
|
12
|
+
const fieldSchema = shape[key];
|
|
13
|
+
// если поле — вложенный объект, идём глубже
|
|
14
|
+
if (fieldSchema instanceof zod_1.z.ZodObject) {
|
|
15
|
+
collectKeys(fieldSchema, result);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
6
19
|
/**
|
|
7
20
|
* Get all the unique parameter keys of all Joi schemes in the array
|
|
8
21
|
* @param schemas array of joi schemes
|
|
@@ -11,7 +24,7 @@ const traverseObjectStructure_1 = require("./traverseObjectStructure");
|
|
|
11
24
|
function getUniqueKeysFromSchemas(schemas) {
|
|
12
25
|
const result = new Set();
|
|
13
26
|
for (const schema of schemas) {
|
|
14
|
-
(
|
|
27
|
+
collectKeys(schema, result);
|
|
15
28
|
}
|
|
16
29
|
return result;
|
|
17
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUniqueObjectKeys.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/getUniqueObjectKeys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getUniqueObjectKeys.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/getUniqueObjectKeys.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAKhE"}
|
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getUniqueObjectKeys = getUniqueObjectKeys;
|
|
4
|
-
|
|
4
|
+
function collectUniqueObjectKeys(root, result) {
|
|
5
|
+
const recurse = (v) => collectUniqueObjectKeys(v, result);
|
|
6
|
+
if (root && typeof root === 'object') {
|
|
7
|
+
if (Array.isArray(root)) {
|
|
8
|
+
for (const item of root) {
|
|
9
|
+
recurse(item);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
for (const key of Object.keys(root)) {
|
|
14
|
+
if (result instanceof Set) {
|
|
15
|
+
result.add(key);
|
|
16
|
+
}
|
|
17
|
+
recurse(root[key]);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
5
22
|
/**
|
|
6
23
|
* Get unique keys from object properties (set of options)
|
|
7
24
|
* @param rawInput object properties (set of options)
|
|
@@ -9,6 +26,6 @@ const traverseObjectStructure_1 = require("./traverseObjectStructure");
|
|
|
9
26
|
*/
|
|
10
27
|
function getUniqueObjectKeys(rawInput) {
|
|
11
28
|
const result = new Set();
|
|
12
|
-
(
|
|
29
|
+
collectUniqueObjectKeys(rawInput, result);
|
|
13
30
|
return Array.from(result);
|
|
14
31
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
import { EMigrationMode } from '../../Enums';
|
|
2
3
|
import { EVersionedSchemaType } from '../Enums';
|
|
3
4
|
import { SchemaMigrationPlan, VersionedSchema, VersionMatchResult } from '../Types';
|
|
4
5
|
type MigrateToLatestProps = {
|
|
5
6
|
rawInput: Record<string, any>;
|
|
6
7
|
migrationPlans: SchemaMigrationPlan<Record<string, any>, Record<string, any>>[];
|
|
7
|
-
versionedSchemas: VersionedSchema<
|
|
8
|
+
versionedSchemas: VersionedSchema<z.ZodTypeAny>[];
|
|
8
9
|
migrationMode: EMigrationMode;
|
|
9
10
|
};
|
|
10
11
|
type MigrateToLatestResult = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateDataToLatestSchemaVersion.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"migrateDataToLatestSchemaVersion.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AASpF,KAAK,oBAAoB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,cAAc,EAAE,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IAChF,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;IAClD,aAAa,EAAE,cAAc,CAAC;CACjC,CAAC;AAEF,KAAK,qBAAqB,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,cAAc,EAAE,kBAAkB,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,oBAAoB,CAAC;CACpC,CAAC;AAEF,wBAAgB,gCAAgC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,IAAI,CAiElK"}
|