ts-openapi-codegen 1.0.0-beta.8 → 1.0.0
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/README.md +221 -123
- package/README.rus.md +725 -0
- package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts +12 -0
- package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/checkConfig.js +66 -0
- package/dist/cli/checkAndUpdateConfig/constants.d.ts +13 -0
- package/dist/cli/checkAndUpdateConfig/constants.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/constants.js +29 -0
- package/dist/cli/checkAndUpdateConfig/types.d.ts +20 -0
- package/dist/cli/checkAndUpdateConfig/types.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/types.js +12 -0
- package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts +12 -0
- package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/updateConfig.js +56 -0
- package/dist/cli/checkAndUpdateConfig/utils/generateConfigExample.d.ts +2 -0
- package/dist/cli/checkAndUpdateConfig/utils/generateConfigExample.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/generateConfigExample.js +11 -0
- package/dist/cli/checkAndUpdateConfig/utils/prepareConfigData.d.ts +14 -0
- package/dist/cli/checkAndUpdateConfig/utils/prepareConfigData.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/prepareConfigData.js +30 -0
- package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.d.ts +17 -0
- package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.js +29 -0
- package/dist/cli/checkAndUpdateConfig/utils/rewriteConfigFile.d.ts +2 -0
- package/dist/cli/checkAndUpdateConfig/utils/rewriteConfigFile.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/rewriteConfigFile.js +11 -0
- package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.d.ts +29 -0
- package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.js +49 -0
- package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.d.ts +6 -0
- package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.js +22 -0
- package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts +17 -0
- package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +53 -0
- package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts +34 -0
- package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.js +41 -0
- package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.d.ts +6 -0
- package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.js +18 -0
- package/dist/cli/generate/runGenerateOpenApi.d.ts +2 -2
- package/dist/cli/generate/runGenerateOpenApi.d.ts.map +1 -1
- package/dist/cli/generate/runGenerateOpenApi.js +12 -14
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +56 -30
- package/dist/cli/initOpenApiConfig/runInitOpenapiConfig.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/runInitOpenapiConfig.js +11 -18
- package/dist/cli/interactive/confirmDialog.d.ts +17 -0
- package/dist/cli/interactive/confirmDialog.d.ts.map +1 -0
- package/dist/cli/interactive/confirmDialog.js +36 -0
- package/dist/cli/interactive/constants.d.ts +7 -0
- package/dist/cli/interactive/constants.d.ts.map +1 -0
- package/dist/cli/interactive/constants.js +25 -0
- package/dist/cli/interactive/selectDialog.d.ts +17 -0
- package/dist/cli/interactive/selectDialog.d.ts.map +1 -0
- package/dist/cli/interactive/selectDialog.js +43 -0
- package/dist/cli/interactive/types.d.ts +40 -0
- package/dist/cli/interactive/types.d.ts.map +1 -0
- package/dist/cli/interactive/types.js +12 -0
- package/dist/common/Consts.d.ts +23 -0
- package/dist/common/Consts.d.ts.map +1 -1
- package/dist/common/Consts.js +28 -1
- package/dist/common/Enums.d.ts +4 -0
- package/dist/common/Enums.d.ts.map +1 -1
- package/dist/common/Enums.js +6 -1
- package/dist/common/Logger.d.ts +1 -1
- package/dist/common/Logger.d.ts.map +1 -1
- package/dist/common/Logger.js +5 -38
- package/dist/common/UpdateNotifier.d.ts +36 -2
- package/dist/common/UpdateNotifier.d.ts.map +1 -1
- package/dist/common/UpdateNotifier.js +150 -57
- package/dist/common/VersionedSchema/Types.d.ts +5 -0
- package/dist/common/VersionedSchema/Types.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts +1 -7
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.d.ts +3 -0
- package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.d.ts.map +1 -0
- package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.js +14 -0
- package/dist/common/VersionedSchema/Utils/getKeyByMapValue.d.ts +2 -0
- package/dist/common/VersionedSchema/Utils/getKeyByMapValue.d.ts.map +1 -0
- package/dist/common/VersionedSchema/Utils/getKeyByMapValue.js +11 -0
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts +5 -2
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +22 -15
- package/dist/common/utils/__tests__/__mock__/mockJoiSchema.d.ts.map +1 -0
- package/dist/common/utils/__tests__/convertArrayToObject.test.d.ts.map +1 -0
- package/dist/common/{__tests__ → utils/__tests__}/convertArrayToObject.test.js +14 -14
- package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.d.ts.map +1 -0
- package/dist/common/{__tests__ → utils/__tests__}/determineBestMatchingSchemaVersion.test.js +5 -5
- package/dist/common/utils/__tests__/generateKeyMappingForInvalidKeys.test.d.ts.map +1 -0
- package/dist/common/{__tests__ → utils/__tests__}/generateKeyMappingForInvalidKeys.test.js +4 -4
- package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.d.ts.map +1 -0
- package/dist/common/{__tests__ → utils/__tests__}/getUniqueKeysFromSchemas.test.js +4 -4
- package/dist/common/utils/__tests__/getUniqueObjectKeys.test.d.ts.map +1 -0
- package/dist/common/{__tests__ → utils/__tests__}/getUniqueObjectKeys.test.js +5 -5
- package/dist/common/utils/__tests__/mergeObjectSchemas.test.d.ts.map +1 -0
- package/dist/common/{__tests__ → utils/__tests__}/mergeObjectSchemas.test.js +5 -5
- package/dist/common/utils/__tests__/migrationForMultiOptions.test.d.ts.map +1 -0
- package/dist/common/{__tests__ → utils/__tests__}/migrationForMultiOptions.test.js +21 -15
- package/dist/common/utils/__tests__/migrationForOptions.test.d.ts.map +1 -0
- package/dist/common/{__tests__ → utils/__tests__}/migrationForOptions.test.js +13 -9
- package/dist/common/utils/__tests__/pathHelpers.test.d.ts.map +1 -0
- package/dist/{core → common}/utils/__tests__/pathHelpers.test.js +8 -8
- package/dist/common/utils/__tests__/replaceInvalidKeysWithMappedNames.test.d.ts.map +1 -0
- package/dist/common/{__tests__ → utils/__tests__}/replaceInvalidKeysWithMappedNames.test.js +5 -5
- package/dist/common/utils/__tests__/validateAndSuggestKeyCorrections.test.d.ts.map +1 -0
- package/dist/common/{__tests__ → utils/__tests__}/validateAndSuggestKeyCorrections.test.js +5 -5
- package/dist/common/utils/convertArrayToObject.d.ts +2 -0
- package/dist/common/utils/convertArrayToObject.d.ts.map +1 -0
- package/dist/common/{Utils.js → utils/convertArrayToObject.js} +0 -20
- package/dist/{core/utils/fileSystem.d.ts → common/utils/fileSystemHelpers.d.ts} +8 -5
- package/dist/common/utils/fileSystemHelpers.d.ts.map +1 -0
- package/dist/common/utils/fileSystemHelpers.js +85 -0
- package/dist/common/utils/format.d.ts +3 -0
- package/dist/common/utils/format.d.ts.map +1 -0
- package/dist/{core → common}/utils/format.js +2 -2
- package/dist/common/utils/loadConfigIfExists.d.ts +2 -0
- package/dist/common/utils/loadConfigIfExists.d.ts.map +1 -0
- package/dist/common/utils/loadConfigIfExists.js +22 -0
- package/dist/common/utils/pathHelpers.d.ts +6 -0
- package/dist/common/utils/pathHelpers.d.ts.map +1 -0
- package/dist/{core → common}/utils/pathHelpers.js +16 -20
- package/dist/common/utils/safeHasOwn.d.ts +2 -0
- package/dist/common/utils/safeHasOwn.d.ts.map +1 -0
- package/dist/common/utils/safeHasOwn.js +9 -0
- package/dist/core/Context.d.ts.map +1 -1
- package/dist/core/Context.js +3 -3
- package/dist/core/WriteClient.d.ts.map +1 -1
- package/dist/core/WriteClient.js +18 -18
- package/dist/core/__tests__/WriteClient.test.js +61 -60
- package/dist/core/api/v2/Parser.d.ts.map +1 -1
- package/dist/core/api/v2/Parser.js +2 -9
- package/dist/core/api/v2/parser/__tests__/getServer.test.js +2 -2
- package/dist/core/api/v2/parser/__tests__/getType.test.js +3 -3
- package/dist/core/api/v2/parser/getModelProperties.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getModelProperties.js +2 -5
- package/dist/core/api/v2/parser/getModels.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getModels.js +2 -1
- package/dist/core/api/v2/parser/getOperationParameter.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getOperationParameter.js +2 -1
- package/dist/core/api/v2/parser/getOperationResponse.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getOperationResponse.js +2 -5
- package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getOperationResponses.js +2 -5
- package/dist/core/api/v2/parser/getServices.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getServices.js +2 -5
- package/dist/core/api/v2/parser/getType.js +4 -4
- 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 -9
- package/dist/core/api/v3/parser/__tests__/getServer.test.js +3 -3
- package/dist/core/api/v3/parser/__tests__/getType.test.js +3 -3
- package/dist/core/api/v3/parser/getModelProperties.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getModelProperties.js +2 -5
- package/dist/core/api/v3/parser/getModels.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getModels.js +2 -1
- package/dist/core/api/v3/parser/getOperationResponse.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationResponse.js +2 -5
- package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationResponses.js +2 -5
- package/dist/core/api/v3/parser/getServer.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getServer.js +2 -5
- package/dist/core/api/v3/parser/getServices.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getServices.js +2 -5
- package/dist/core/api/v3/parser/getType.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getType.js +5 -13
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +34 -27
- package/dist/core/types/Consts.d.ts +5 -1
- package/dist/core/types/Consts.d.ts.map +1 -1
- package/dist/core/types/Consts.js +6 -2
- package/dist/core/types/base/Root.model.d.ts +1 -0
- package/dist/core/types/base/Root.model.d.ts.map +1 -1
- package/dist/core/utils/__tests__/escapeDescription.test.js +3 -3
- package/dist/core/utils/__tests__/escapeName.test.js +2 -2
- package/dist/core/utils/__tests__/flatMap.test.js +2 -2
- package/dist/core/utils/__tests__/getAbsolutePath.test.js +6 -6
- package/dist/core/utils/__tests__/getClassName.test.js +2 -2
- package/dist/core/utils/__tests__/getComment.test.js +2 -2
- package/dist/core/utils/__tests__/getEnumFromDescription.test.js +2 -2
- package/dist/core/utils/__tests__/getFileName.test.js +2 -2
- package/dist/core/utils/__tests__/getGatheringRefs.test.js +2 -2
- package/dist/core/utils/__tests__/getMappedType.test.js +2 -2
- package/dist/core/utils/__tests__/getModelNames.test.js +2 -2
- package/dist/core/utils/__tests__/getOpenApiVersion.test.js +2 -2
- package/dist/core/utils/__tests__/getOperationName.test.js +2 -2
- package/dist/core/utils/__tests__/getOperationParameterName.test.js +2 -2
- package/dist/core/utils/__tests__/getOperationPath.test.js +2 -2
- package/dist/core/utils/__tests__/getOperationResponseCode.test.js +2 -2
- package/dist/core/utils/__tests__/getPattern.test.js +2 -2
- package/dist/core/utils/__tests__/getRefFromSchema.test.js +2 -2
- package/dist/core/utils/__tests__/getRefs.test.js +2 -2
- package/dist/core/utils/__tests__/getRelativeModelPath.test.js +3 -3
- package/dist/core/utils/__tests__/getServiceClassName.test.js +2 -2
- package/dist/core/utils/__tests__/getServiceNames.test.js +2 -2
- package/dist/core/utils/__tests__/getServiceVersion.test.js +2 -2
- package/dist/core/utils/__tests__/isString.test.js +2 -2
- package/dist/core/utils/__tests__/isSubdirectory.test.js +10 -10
- package/dist/core/utils/__tests__/registerHandlebarHelpers.test.js +2 -2
- package/dist/core/utils/__tests__/registerHandlebarTemplates.test.js +2 -2
- package/dist/core/utils/__tests__/replaceString.test.js +2 -2
- package/dist/core/utils/__tests__/resolveRefToImportPath.test.js +360 -51
- package/dist/core/utils/__tests__/sort.test.js +2 -2
- package/dist/core/utils/__tests__/sortByRequiredExtended.test.js +11 -11
- package/dist/core/utils/__tests__/sortByRequiredSimple.test.js +11 -11
- package/dist/core/utils/__tests__/sortModelsByName.test.js +2 -2
- package/dist/core/utils/__tests__/sortServicesByName.test.js +2 -2
- package/dist/core/utils/__tests__/stripNamespace.test.js +2 -2
- package/dist/core/utils/__tests__/unique.test.js +2 -2
- package/dist/core/utils/__tests__/writeClientCore.test.js +52 -50
- package/dist/core/utils/__tests__/writeClientFullIndex.test.js +39 -37
- package/dist/core/utils/__tests__/writeClientModels.test.js +65 -63
- package/dist/core/utils/__tests__/writeClientSchemas.test.js +65 -63
- package/dist/core/utils/__tests__/writeClientServices.test.js +60 -58
- package/dist/core/utils/appendUniqueLinesToFile.js +4 -4
- package/dist/core/utils/createNormalizedRef.js +2 -2
- package/dist/core/utils/getAbsolutePath.js +3 -3
- package/dist/core/utils/getModelNameWithPrefix.d.ts +3 -0
- package/dist/core/utils/getModelNameWithPrefix.d.ts.map +1 -0
- package/dist/core/utils/getModelNameWithPrefix.js +15 -0
- package/dist/core/utils/getOpenApiSpec.d.ts.map +1 -1
- package/dist/core/utils/getOpenApiSpec.js +4 -4
- package/dist/core/utils/getOutputPaths.d.ts.map +1 -1
- package/dist/core/utils/getOutputPaths.js +6 -6
- package/dist/core/utils/getPattern.d.ts.map +1 -1
- package/dist/core/utils/getPattern.js +2 -1
- package/dist/core/utils/getRelativeModelPath.d.ts.map +1 -1
- package/dist/core/utils/getRelativeModelPath.js +2 -6
- package/dist/core/utils/isSubdirectory.d.ts.map +1 -1
- package/dist/core/utils/isSubdirectory.js +4 -3
- package/dist/core/utils/mapPathToTargetDirSafe.d.ts.map +1 -1
- package/dist/core/utils/mapPathToTargetDirSafe.js +11 -12
- package/dist/core/utils/modelHelpers.d.ts.map +1 -1
- package/dist/core/utils/modelHelpers.js +18 -6
- package/dist/core/utils/normalizeString.d.ts +2 -0
- package/dist/core/utils/normalizeString.d.ts.map +1 -0
- package/dist/core/utils/normalizeString.js +14 -0
- package/dist/core/utils/normalizedAbsolutePath.js +3 -3
- package/dist/core/utils/parseRef.d.ts.map +1 -1
- package/dist/core/utils/parseRef.js +7 -10
- package/dist/core/utils/precompileTemplates.js +14 -10
- package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
- package/dist/core/utils/registerHandlebarHelpers.js +24 -0
- package/dist/core/utils/replaceString.d.ts.map +1 -1
- package/dist/core/utils/replaceString.js +2 -1
- package/dist/core/utils/resolveRefPath.d.ts.map +1 -1
- package/dist/core/utils/resolveRefPath.js +3 -3
- package/dist/core/utils/resolveRefToImportPath.d.ts +8 -2
- package/dist/core/utils/resolveRefToImportPath.d.ts.map +1 -1
- package/dist/core/utils/resolveRefToImportPath.js +91 -31
- package/dist/core/utils/serviceHelpers.d.ts.map +1 -1
- package/dist/core/utils/serviceHelpers.js +2 -1
- package/dist/core/utils/stripNamespace.js +5 -5
- package/dist/core/utils/writeClientCore.d.ts.map +1 -1
- package/dist/core/utils/writeClientCore.js +12 -12
- package/dist/core/utils/writeClientCoreIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientCoreIndex.js +2 -2
- package/dist/core/utils/writeClientFullIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientFullIndex.js +4 -4
- package/dist/core/utils/writeClientModels.d.ts.map +1 -1
- package/dist/core/utils/writeClientModels.js +7 -7
- package/dist/core/utils/writeClientModelsIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientModelsIndex.js +2 -2
- package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
- package/dist/core/utils/writeClientSchemas.js +7 -7
- package/dist/core/utils/writeClientSchemasIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientSchemasIndex.js +2 -2
- package/dist/core/utils/writeClientServices.d.ts.map +1 -1
- package/dist/core/utils/writeClientServices.js +5 -5
- package/dist/core/utils/writeClientServicesIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientServicesIndex.js +2 -2
- package/dist/core/utils/writeClientSimpleIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientSimpleIndex.js +4 -4
- package/dist/templatesCompiled/client/exportModel.js +4 -4
- package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
- package/dist/templatesCompiled/client/exportService.js +12 -13
- package/dist/templatesCompiled/client/indexFull.d.ts.map +1 -1
- package/dist/templatesCompiled/client/indexFull.js +35 -29
- package/dist/templatesCompiled/client/partials/parameters.d.ts +3 -2
- package/dist/templatesCompiled/client/partials/parameters.d.ts.map +1 -1
- package/dist/templatesCompiled/client/partials/parameters.js +25 -20
- package/dist/templatesCompiled/client/partials/parametersDefinition.d.ts +4 -2
- package/dist/templatesCompiled/client/partials/parametersDefinition.d.ts.map +1 -1
- package/dist/templatesCompiled/client/partials/parametersDefinition.js +31 -10
- package/package.json +15 -13
- package/dist/cli/chekOpenApiConfig/chekOpenApiConfig.d.ts +0 -5
- package/dist/cli/chekOpenApiConfig/chekOpenApiConfig.d.ts.map +0 -1
- package/dist/cli/chekOpenApiConfig/chekOpenApiConfig.js +0 -45
- package/dist/common/Utils.d.ts +0 -3
- package/dist/common/Utils.d.ts.map +0 -1
- package/dist/common/__tests__/__mock__/mockJoiSchema.d.ts.map +0 -1
- package/dist/common/__tests__/convertArrayToObject.test.d.ts.map +0 -1
- package/dist/common/__tests__/determineBestMatchingSchemaVersion.test.d.ts.map +0 -1
- package/dist/common/__tests__/generateKeyMappingForInvalidKeys.test.d.ts.map +0 -1
- package/dist/common/__tests__/getUniqueKeysFromSchemas.test.d.ts.map +0 -1
- package/dist/common/__tests__/getUniqueObjectKeys.test.d.ts.map +0 -1
- package/dist/common/__tests__/mergeObjectSchemas.test.d.ts.map +0 -1
- package/dist/common/__tests__/migrationForMultiOptions.test.d.ts.map +0 -1
- package/dist/common/__tests__/migrationForOptions.test.d.ts.map +0 -1
- package/dist/common/__tests__/replaceInvalidKeysWithMappedNames.test.d.ts.map +0 -1
- package/dist/common/__tests__/validateAndSuggestKeyCorrections.test.d.ts.map +0 -1
- package/dist/core/utils/__tests__/getRelativeModelImportPath.test.d.ts +0 -2
- package/dist/core/utils/__tests__/getRelativeModelImportPath.test.d.ts.map +0 -1
- package/dist/core/utils/__tests__/getRelativeModelImportPath.test.js +0 -82
- package/dist/core/utils/__tests__/pathHelpers.test.d.ts.map +0 -1
- package/dist/core/utils/fileSystem.d.ts.map +0 -1
- package/dist/core/utils/fileSystem.js +0 -26
- package/dist/core/utils/format.d.ts +0 -2
- package/dist/core/utils/format.d.ts.map +0 -1
- package/dist/core/utils/getRelativeModelImportPath.d.ts +0 -9
- package/dist/core/utils/getRelativeModelImportPath.d.ts.map +0 -1
- package/dist/core/utils/getRelativeModelImportPath.js +0 -45
- package/dist/core/utils/isDirectory.d.ts +0 -2
- package/dist/core/utils/isDirectory.d.ts.map +0 -1
- package/dist/core/utils/isDirectory.js +0 -13
- package/dist/core/utils/pathHelpers.d.ts +0 -7
- package/dist/core/utils/pathHelpers.d.ts.map +0 -1
- /package/dist/common/{__tests__ → utils/__tests__}/__mock__/mockJoiSchema.d.ts +0 -0
- /package/dist/common/{__tests__ → utils/__tests__}/__mock__/mockJoiSchema.js +0 -0
- /package/dist/common/{__tests__ → utils/__tests__}/convertArrayToObject.test.d.ts +0 -0
- /package/dist/common/{__tests__ → utils/__tests__}/determineBestMatchingSchemaVersion.test.d.ts +0 -0
- /package/dist/common/{__tests__ → utils/__tests__}/generateKeyMappingForInvalidKeys.test.d.ts +0 -0
- /package/dist/common/{__tests__ → utils/__tests__}/getUniqueKeysFromSchemas.test.d.ts +0 -0
- /package/dist/common/{__tests__ → utils/__tests__}/getUniqueObjectKeys.test.d.ts +0 -0
- /package/dist/common/{__tests__ → utils/__tests__}/mergeObjectSchemas.test.d.ts +0 -0
- /package/dist/common/{__tests__ → utils/__tests__}/migrationForMultiOptions.test.d.ts +0 -0
- /package/dist/common/{__tests__ → utils/__tests__}/migrationForOptions.test.d.ts +0 -0
- /package/dist/{core → common}/utils/__tests__/pathHelpers.test.d.ts +0 -0
- /package/dist/common/{__tests__ → utils/__tests__}/replaceInvalidKeysWithMappedNames.test.d.ts +0 -0
- /package/dist/common/{__tests__ → utils/__tests__}/validateAndSuggestKeyCorrections.test.d.ts +0 -0
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.migrateDataToLatestSchemaVersion = migrateDataToLatestSchemaVersion;
|
|
4
|
+
const Enums_1 = require("../../Enums");
|
|
4
5
|
const determineBestMatchingSchemaVersion_1 = require("./determineBestMatchingSchemaVersion");
|
|
5
6
|
const generateKeyMappingForInvalidKeys_1 = require("./generateKeyMappingForInvalidKeys");
|
|
7
|
+
const getCurrentErrorMessage_1 = require("./getCurrentErrorMessage");
|
|
6
8
|
const getUniqueKeysFromSchemas_1 = require("./getUniqueKeysFromSchemas");
|
|
7
9
|
const getUniqueObjectKeys_1 = require("./getUniqueObjectKeys");
|
|
8
10
|
const replaceInvalidKeysWithMappedNames_1 = require("./replaceInvalidKeysWithMappedNames");
|
|
9
11
|
const validateAndSuggestKeyCorrections_1 = require("./validateAndSuggestKeyCorrections");
|
|
10
|
-
function migrateDataToLatestSchemaVersion({ rawInput, migrationPlans, versionedSchemas }) {
|
|
12
|
+
function migrateDataToLatestSchemaVersion({ rawInput, migrationPlans, versionedSchemas, migrationMode }) {
|
|
11
13
|
const schemas = versionedSchemas.map(el => el.schema);
|
|
12
14
|
const allUniqueKeysFromSchemas = (0, getUniqueKeysFromSchemas_1.getUniqueKeysFromSchemas)(schemas);
|
|
13
15
|
const allUniqueKeysFromRawInput = (0, getUniqueObjectKeys_1.getUniqueObjectKeys)(rawInput);
|
|
@@ -17,27 +19,32 @@ function migrateDataToLatestSchemaVersion({ rawInput, migrationPlans, versionedS
|
|
|
17
19
|
const schemaPossibleKeys = (0, getUniqueKeysFromSchemas_1.getUniqueKeysFromSchemas)([guessedValidationSchema]);
|
|
18
20
|
const replacingKeysMap = (0, generateKeyMappingForInvalidKeys_1.generateKeyMappingForInvalidKeys)(allUniqueKeysFromRawInput, schemaPossibleKeys);
|
|
19
21
|
let currentData = replacingKeysMap.size ? (0, replaceInvalidKeysWithMappedNames_1.replaceInvalidKeysWithMappedNames)(rawInput, replacingKeysMap) : rawInput;
|
|
22
|
+
const actualVersionIndex = versionedSchemas.length - 1;
|
|
23
|
+
const actualSchema = versionedSchemas[actualVersionIndex];
|
|
20
24
|
for (let idx = guessedVersion.lastVersionIndex; idx < versionedSchemas.length - 1; idx++) {
|
|
25
|
+
const { error: firstError } = versionedSchemas[idx].schema.validate(currentData);
|
|
26
|
+
if (firstError) {
|
|
27
|
+
(0, getCurrentErrorMessage_1.getCurrentErrorMessage)(firstError, replacingKeysMap);
|
|
28
|
+
}
|
|
21
29
|
const fromVersion = versionedSchemas[idx].version;
|
|
22
30
|
const migrationPlan = migrationPlans.find(p => p.fromVersion === fromVersion);
|
|
23
31
|
if (!migrationPlan) {
|
|
24
32
|
throw new Error(`No migration plan from ${fromVersion}`);
|
|
25
33
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
throw new Error(`Error during post-migration validation ${fromVersion}->${migrationPlan.toVersion}: ${error.message}`);
|
|
31
|
-
}
|
|
32
|
-
currentData = { ...migratedRaw };
|
|
34
|
+
const migratedRaw = migrationPlan.migrate(currentData);
|
|
35
|
+
const { error } = versionedSchemas[idx + 1].schema.validate(migratedRaw, { allowUnknown: false });
|
|
36
|
+
if (error) {
|
|
37
|
+
throw new Error(error.message);
|
|
33
38
|
}
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
currentData = { ...migratedRaw };
|
|
40
|
+
const isLastIteration = idx + 1 === actualVersionIndex;
|
|
41
|
+
if (isLastIteration && migrationMode === Enums_1.EMigrationMode.GENERATE_OPENAPI) {
|
|
42
|
+
console.warn('Для выполнения генерации OpenApi потребовалось мигрировать схему Ваших данных на актуальную. Для обновленмя конфигурации в файле используйте команду `npm name_cli_tool update-config`');
|
|
36
43
|
}
|
|
37
44
|
}
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return { value, schemaVersion:
|
|
45
|
+
const { error } = actualSchema.schema.validate(currentData, { allowUnknown: false });
|
|
46
|
+
if (error) {
|
|
47
|
+
(0, getCurrentErrorMessage_1.getCurrentErrorMessage)(error, replacingKeysMap);
|
|
48
|
+
}
|
|
49
|
+
return { value: currentData, guessedVersion, schemaVersion: actualSchema.version, schemaType: actualSchema.type };
|
|
43
50
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockJoiSchema.d.ts","sourceRoot":"","sources":["../../../../../src/common/utils/__tests__/__mock__/mockJoiSchema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,EAAE,SAAS,OAAO,EAAE,SAAQ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAO,EAAE,iBAAe;sBACxG,GAAG,WAAW,GAAG;;;sBADyC,MAAM;sBAAQ,MAAM;;;;;;;;;CASlG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertArrayToObject.test.d.ts","sourceRoot":"","sources":["../../../../src/common/utils/__tests__/convertArrayToObject.test.ts"],"names":[],"mappings":""}
|
|
@@ -5,11 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
7
|
const node_test_1 = require("node:test");
|
|
8
|
-
const
|
|
9
|
-
(0, node_test_1.describe)('convertArrayToObject', () => {
|
|
10
|
-
(0, node_test_1.test)('
|
|
8
|
+
const convertArrayToObject_1 = require("../convertArrayToObject");
|
|
9
|
+
(0, node_test_1.describe)('@unit: convertArrayToObject', () => {
|
|
10
|
+
(0, node_test_1.test)('Empty array', () => {
|
|
11
11
|
const input = [];
|
|
12
|
-
const result = (0,
|
|
12
|
+
const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
|
|
13
13
|
const expected = {
|
|
14
14
|
items: [],
|
|
15
15
|
excludeCoreServiceFiles: undefined,
|
|
@@ -20,7 +20,7 @@ const Utils_1 = require("common/Utils");
|
|
|
20
20
|
};
|
|
21
21
|
node_assert_1.default.deepStrictEqual(result, expected);
|
|
22
22
|
});
|
|
23
|
-
(0, node_test_1.test)('
|
|
23
|
+
(0, node_test_1.test)('An array with one element', () => {
|
|
24
24
|
const input = [
|
|
25
25
|
{
|
|
26
26
|
input: 'url1',
|
|
@@ -56,10 +56,10 @@ const Utils_1 = require("common/Utils");
|
|
|
56
56
|
useSeparatedIndexes: undefined,
|
|
57
57
|
useUnionTypes: undefined,
|
|
58
58
|
};
|
|
59
|
-
const result = (0,
|
|
59
|
+
const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
|
|
60
60
|
node_assert_1.default.deepStrictEqual(result, expected);
|
|
61
61
|
});
|
|
62
|
-
(0, node_test_1.test)('
|
|
62
|
+
(0, node_test_1.test)('Multiple elements with the same outer margins', () => {
|
|
63
63
|
const input = [
|
|
64
64
|
{ input: 'url1', output: 'res1', exportCore: true, request: 'req1', useOptions: true },
|
|
65
65
|
{ input: 'url2', output: 'res2', exportCore: true, request: 'req1', useOptions: true },
|
|
@@ -98,10 +98,10 @@ const Utils_1 = require("common/Utils");
|
|
|
98
98
|
useSeparatedIndexes: undefined,
|
|
99
99
|
useUnionTypes: undefined,
|
|
100
100
|
};
|
|
101
|
-
const result = (0,
|
|
101
|
+
const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
|
|
102
102
|
node_assert_1.default.deepStrictEqual(result, expected);
|
|
103
103
|
});
|
|
104
|
-
(0, node_test_1.test)('
|
|
104
|
+
(0, node_test_1.test)('Multiple elements with different external margins', () => {
|
|
105
105
|
const input = [
|
|
106
106
|
{ input: 'url1', output: 'res1', exportCore: true, request: 'req1', useOptions: true },
|
|
107
107
|
{ input: 'url2', output: 'res2', exportCore: false, request: 'req2', useOptions: false },
|
|
@@ -140,10 +140,10 @@ const Utils_1 = require("common/Utils");
|
|
|
140
140
|
useSeparatedIndexes: undefined,
|
|
141
141
|
useUnionTypes: undefined,
|
|
142
142
|
};
|
|
143
|
-
const result = (0,
|
|
143
|
+
const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
|
|
144
144
|
node_assert_1.default.deepStrictEqual(result, expected);
|
|
145
145
|
});
|
|
146
|
-
(0, node_test_1.test)('
|
|
146
|
+
(0, node_test_1.test)('No optional fields', () => {
|
|
147
147
|
const input = [
|
|
148
148
|
{ input: 'url1', output: 'res1' },
|
|
149
149
|
{ input: 'url2', output: 'res2' },
|
|
@@ -182,10 +182,10 @@ const Utils_1 = require("common/Utils");
|
|
|
182
182
|
useSeparatedIndexes: undefined,
|
|
183
183
|
useUnionTypes: undefined,
|
|
184
184
|
};
|
|
185
|
-
const result = (0,
|
|
185
|
+
const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
|
|
186
186
|
node_assert_1.default.deepStrictEqual(result, expected);
|
|
187
187
|
});
|
|
188
|
-
(0, node_test_1.test)('
|
|
188
|
+
(0, node_test_1.test)('Mixed presence of optional fields', () => {
|
|
189
189
|
const input = [
|
|
190
190
|
{ input: 'url1', output: 'res1', exportCore: true },
|
|
191
191
|
{ input: 'url2', output: 'res2', request: 'req2' },
|
|
@@ -224,7 +224,7 @@ const Utils_1 = require("common/Utils");
|
|
|
224
224
|
useSeparatedIndexes: undefined,
|
|
225
225
|
useUnionTypes: undefined,
|
|
226
226
|
};
|
|
227
|
-
const result = (0,
|
|
227
|
+
const result = (0, convertArrayToObject_1.convertArrayToObject)(input);
|
|
228
228
|
node_assert_1.default.deepStrictEqual(result, expected);
|
|
229
229
|
});
|
|
230
230
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"determineBestMatchingSchemaVersion.test.d.ts","sourceRoot":"","sources":["../../../../src/common/utils/__tests__/determineBestMatchingSchemaVersion.test.ts"],"names":[],"mappings":""}
|
package/dist/common/{__tests__ → utils/__tests__}/determineBestMatchingSchemaVersion.test.js
RENAMED
|
@@ -5,11 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
7
|
const node_test_1 = require("node:test");
|
|
8
|
-
const Enums_1 = require("../../
|
|
9
|
-
const determineBestMatchingSchemaVersion_1 = require("
|
|
8
|
+
const Enums_1 = require("../../VersionedSchema/Enums");
|
|
9
|
+
const determineBestMatchingSchemaVersion_1 = require("../../VersionedSchema/Utils/determineBestMatchingSchemaVersion");
|
|
10
10
|
const mockJoiSchema_1 = require("./__mock__/mockJoiSchema");
|
|
11
|
-
(0, node_test_1.describe)('determineBestMatchingSchemaVersion', () => {
|
|
12
|
-
(0, node_test_1.test)('
|
|
11
|
+
(0, node_test_1.describe)('@unit: determineBestMatchingSchemaVersion', () => {
|
|
12
|
+
(0, node_test_1.test)('it should return the latest version if there is an exact match.', async () => {
|
|
13
13
|
const schemas = [
|
|
14
14
|
{ schema: (0, mockJoiSchema_1.mockJoiSchema)(['name'], true), version: '1.0', type: Enums_1.EVersionedSchemaType.OPTIONS },
|
|
15
15
|
{ schema: (0, mockJoiSchema_1.mockJoiSchema)(['name', 'age'], true), version: '2.0', type: Enums_1.EVersionedSchemaType.OPTIONS },
|
|
@@ -22,7 +22,7 @@ const mockJoiSchema_1 = require("./__mock__/mockJoiSchema");
|
|
|
22
22
|
firstVersion: '1.0',
|
|
23
23
|
});
|
|
24
24
|
});
|
|
25
|
-
(0, node_test_1.test)('
|
|
25
|
+
(0, node_test_1.test)('should return the best scheme in the absence of exact matches.', async () => {
|
|
26
26
|
const schemas = [
|
|
27
27
|
{ schema: (0, mockJoiSchema_1.mockJoiSchema)(['name'], false, [{ path: 'age', type: 'string' }]), version: '1.0', type: Enums_1.EVersionedSchemaType.OPTIONS },
|
|
28
28
|
{ schema: (0, mockJoiSchema_1.mockJoiSchema)(['name', 'age'], true), version: '2.0', type: Enums_1.EVersionedSchemaType.OPTIONS },
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateKeyMappingForInvalidKeys.test.d.ts","sourceRoot":"","sources":["../../../../src/common/utils/__tests__/generateKeyMappingForInvalidKeys.test.ts"],"names":[],"mappings":""}
|
|
@@ -5,15 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
7
|
const node_test_1 = require("node:test");
|
|
8
|
-
const generateKeyMappingForInvalidKeys_1 = require("
|
|
9
|
-
(0, node_test_1.describe)('generateKeyMappingForInvalidKeys', () => {
|
|
10
|
-
(0, node_test_1.test)('
|
|
8
|
+
const generateKeyMappingForInvalidKeys_1 = require("../../VersionedSchema/Utils/generateKeyMappingForInvalidKeys");
|
|
9
|
+
(0, node_test_1.describe)('@unit: generateKeyMappingForInvalidKeys', () => {
|
|
10
|
+
(0, node_test_1.test)('must create a replacement card for invalid keys', async () => {
|
|
11
11
|
const inputKeys = ['nmae', 'title'];
|
|
12
12
|
const allowedKeys = new Set(['name', 'title']);
|
|
13
13
|
const result = (0, generateKeyMappingForInvalidKeys_1.generateKeyMappingForInvalidKeys)(inputKeys, allowedKeys);
|
|
14
14
|
node_assert_1.default.deepEqual(result, new Map([['nmae', 'name']]));
|
|
15
15
|
});
|
|
16
|
-
(0, node_test_1.test)('
|
|
16
|
+
(0, node_test_1.test)('must return an empty card if all keys are valid.', async () => {
|
|
17
17
|
const inputKeys = ['name', 'title'];
|
|
18
18
|
const allowedKeys = new Set(['name', 'title']);
|
|
19
19
|
const result = (0, generateKeyMappingForInvalidKeys_1.generateKeyMappingForInvalidKeys)(inputKeys, allowedKeys);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUniqueKeysFromSchemas.test.d.ts","sourceRoot":"","sources":["../../../../src/common/utils/__tests__/getUniqueKeysFromSchemas.test.ts"],"names":[],"mappings":""}
|
|
@@ -5,15 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
7
|
const node_test_1 = require("node:test");
|
|
8
|
-
const getUniqueKeysFromSchemas_1 = require("
|
|
8
|
+
const getUniqueKeysFromSchemas_1 = require("../../VersionedSchema/Utils/getUniqueKeysFromSchemas");
|
|
9
9
|
const mockJoiSchema_1 = require("./__mock__/mockJoiSchema");
|
|
10
|
-
(0, node_test_1.describe)('getUniqueKeysFromSchemas', () => {
|
|
11
|
-
(0, node_test_1.test)('
|
|
10
|
+
(0, node_test_1.describe)('@unit: getUniqueKeysFromSchemas', () => {
|
|
11
|
+
(0, node_test_1.test)('must return unique keys from the schema', async () => {
|
|
12
12
|
const schema = (0, mockJoiSchema_1.mockJoiSchema)(['name', 'age'], true);
|
|
13
13
|
const result = (0, getUniqueKeysFromSchemas_1.getUniqueKeysFromSchemas)([schema]);
|
|
14
14
|
node_assert_1.default.deepEqual(result, new Set(['name', 'age']));
|
|
15
15
|
});
|
|
16
|
-
(0, node_test_1.test)('
|
|
16
|
+
(0, node_test_1.test)('should return an empty set for an empty list of schemas', async () => {
|
|
17
17
|
const result = (0, getUniqueKeysFromSchemas_1.getUniqueKeysFromSchemas)([]);
|
|
18
18
|
node_assert_1.default.deepEqual(result, new Set());
|
|
19
19
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUniqueObjectKeys.test.d.ts","sourceRoot":"","sources":["../../../../src/common/utils/__tests__/getUniqueObjectKeys.test.ts"],"names":[],"mappings":""}
|
|
@@ -5,19 +5,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
7
|
const node_test_1 = require("node:test");
|
|
8
|
-
const getUniqueObjectKeys_1 = require("
|
|
9
|
-
(0, node_test_1.describe)('getUniqueObjectKeys', () => {
|
|
10
|
-
(0, node_test_1.test)('
|
|
8
|
+
const getUniqueObjectKeys_1 = require("../../VersionedSchema/Utils/getUniqueObjectKeys");
|
|
9
|
+
(0, node_test_1.describe)('@unit: getUniqueObjectKeys', () => {
|
|
10
|
+
(0, node_test_1.test)('must return unique keys from the object', async () => {
|
|
11
11
|
const input = { name: 'John', age: 30, nested: { id: 1 } };
|
|
12
12
|
const result = (0, getUniqueObjectKeys_1.getUniqueObjectKeys)(input);
|
|
13
13
|
node_assert_1.default.deepEqual(result, ['name', 'age', 'nested', 'id']);
|
|
14
14
|
});
|
|
15
|
-
(0, node_test_1.test)('
|
|
15
|
+
(0, node_test_1.test)('must return unique keys from an array of objects', async () => {
|
|
16
16
|
const input = [{ name: 'John' }, { age: 30 }];
|
|
17
17
|
const result = (0, getUniqueObjectKeys_1.getUniqueObjectKeys)(input);
|
|
18
18
|
node_assert_1.default.deepEqual(result, ['name', 'age']);
|
|
19
19
|
});
|
|
20
|
-
(0, node_test_1.test)('
|
|
20
|
+
(0, node_test_1.test)('must return an empty array for an empty object', async () => {
|
|
21
21
|
const result = (0, getUniqueObjectKeys_1.getUniqueObjectKeys)({});
|
|
22
22
|
node_assert_1.default.deepEqual(result, []);
|
|
23
23
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeObjectSchemas.test.d.ts","sourceRoot":"","sources":["../../../../src/common/utils/__tests__/mergeObjectSchemas.test.ts"],"names":[],"mappings":""}
|
|
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
7
|
const node_test_1 = require("node:test");
|
|
8
8
|
const joi_1 = __importDefault(require("joi"));
|
|
9
|
-
const OptionsSchemaV2_1 = require("
|
|
10
|
-
const mergeObjectSchemas_1 = require("
|
|
11
|
-
(0, node_test_1.describe)('mergeObjectSchemas', () => {
|
|
12
|
-
(0, node_test_1.test)('
|
|
9
|
+
const OptionsSchemaV2_1 = require("../../VersionedSchema/OptionsVersioned/OptionsSchemaV2");
|
|
10
|
+
const mergeObjectSchemas_1 = require("../../VersionedSchema/Utils/mergeObjectSchemas");
|
|
11
|
+
(0, node_test_1.describe)('@unit: mergeObjectSchemas', () => {
|
|
12
|
+
(0, node_test_1.test)('should combine multiple schemas correctly', () => {
|
|
13
13
|
const schema1 = joi_1.default.object({ a: joi_1.default.string().required() });
|
|
14
14
|
const schema2 = joi_1.default.object({ b: joi_1.default.number().optional() });
|
|
15
15
|
const mergedSchema = (0, mergeObjectSchemas_1.mergeObjectSchemas)(schema1, schema2);
|
|
@@ -18,7 +18,7 @@ const mergeObjectSchemas_1 = require("../VersionedSchema/Utils/mergeObjectSchema
|
|
|
18
18
|
node_assert_1.default.equal(mergedSchema.validate(validData).error, null, 'Valid data should pass validation');
|
|
19
19
|
node_assert_1.default.notEqual(mergedSchema.validate(invalidData).error, null, 'Invalid data should fail validation');
|
|
20
20
|
});
|
|
21
|
-
(0, node_test_1.test)('
|
|
21
|
+
(0, node_test_1.test)('should work with real schemas from OptionSchemas', () => {
|
|
22
22
|
const validData = {
|
|
23
23
|
input: 'source/path',
|
|
24
24
|
httpClient: 'axios',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrationForMultiOptions.test.d.ts","sourceRoot":"","sources":["../../../../src/common/utils/__tests__/migrationForMultiOptions.test.ts"],"names":[],"mappings":""}
|
|
@@ -5,18 +5,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
7
7
|
const node_test_1 = require("node:test");
|
|
8
|
-
const Enums_1 = require("
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
8
|
+
const Enums_1 = require("../../Enums");
|
|
9
|
+
const Enums_2 = require("../../VersionedSchema/Enums");
|
|
10
|
+
const MultiOptionsMigrationPlan_1 = require("../../VersionedSchema/MultiOptionsVersioned/MultiOptionsMigrationPlan");
|
|
11
|
+
const MultiOptionsVersionedSchemas_1 = require("../../VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas");
|
|
12
|
+
const migrateDataToLatestSchemaVersion_1 = require("../../VersionedSchema/Utils/migrateDataToLatestSchemaVersion");
|
|
12
13
|
const mockJoiSchema_1 = require("./__mock__/mockJoiSchema");
|
|
13
|
-
|
|
14
|
-
(0, node_test_1.test)('
|
|
14
|
+
node_test_1.describe.skip('@unit: migrationForMultiOptions', () => {
|
|
15
|
+
(0, node_test_1.test)('must successfully migrate MULTI_OPTIONS data to the latest version', async () => {
|
|
15
16
|
const input = { input: 'input/path', output: 'output/path', client: 'fetch', items: [{ input: 'path/item1' }] };
|
|
16
17
|
const result = (0, migrateDataToLatestSchemaVersion_1.migrateDataToLatestSchemaVersion)({
|
|
17
18
|
rawInput: input,
|
|
18
19
|
migrationPlans: MultiOptionsMigrationPlan_1.multiOptionsMigrationPlan,
|
|
19
20
|
versionedSchemas: MultiOptionsVersionedSchemas_1.multiOptionsVersionedSchema,
|
|
21
|
+
migrationMode: Enums_1.EMigrationMode.GENERATE_OPENAPI,
|
|
20
22
|
});
|
|
21
23
|
strict_1.default.deepEqual(result, {
|
|
22
24
|
value: {
|
|
@@ -35,30 +37,32 @@ const mockJoiSchema_1 = require("./__mock__/mockJoiSchema");
|
|
|
35
37
|
],
|
|
36
38
|
sortByRequired: false,
|
|
37
39
|
useCancelableRequest: false,
|
|
38
|
-
useSeparatedIndexes: false
|
|
40
|
+
useSeparatedIndexes: false,
|
|
39
41
|
},
|
|
40
42
|
schemaVersion: 'v5',
|
|
41
|
-
schemaType:
|
|
43
|
+
schemaType: Enums_2.EVersionedSchemaType.MULTI_OPTIONS,
|
|
42
44
|
});
|
|
43
45
|
});
|
|
44
|
-
(0, node_test_1.test)('
|
|
46
|
+
(0, node_test_1.test)('should return null in case of validation error of the last MULTI_OPTIONS scheme', async () => {
|
|
45
47
|
const input = { input: 'input/path' };
|
|
46
48
|
const result = (0, migrateDataToLatestSchemaVersion_1.migrateDataToLatestSchemaVersion)({
|
|
47
49
|
rawInput: input,
|
|
48
50
|
migrationPlans: MultiOptionsMigrationPlan_1.multiOptionsMigrationPlan,
|
|
49
51
|
versionedSchemas: MultiOptionsVersionedSchemas_1.multiOptionsVersionedSchema,
|
|
52
|
+
migrationMode: Enums_1.EMigrationMode.GENERATE_OPENAPI,
|
|
50
53
|
});
|
|
51
54
|
strict_1.default.equal(result, null);
|
|
52
55
|
});
|
|
53
|
-
(0, node_test_1.test)('
|
|
56
|
+
(0, node_test_1.test)('should throw an error if the migration plan for MULTI_OPTIONS is not found.', async () => {
|
|
54
57
|
const input = { input: 'input/path', output: 'output/path', client: 'fetch', items: [{ input: 'path/item1' }] };
|
|
55
58
|
strict_1.default.throws(() => (0, migrateDataToLatestSchemaVersion_1.migrateDataToLatestSchemaVersion)({
|
|
56
59
|
rawInput: input,
|
|
57
60
|
migrationPlans: [],
|
|
58
61
|
versionedSchemas: MultiOptionsVersionedSchemas_1.multiOptionsVersionedSchema,
|
|
62
|
+
migrationMode: Enums_1.EMigrationMode.GENERATE_OPENAPI,
|
|
59
63
|
}), /No migration plan from v1/);
|
|
60
64
|
});
|
|
61
|
-
(0, node_test_1.test)('
|
|
65
|
+
(0, node_test_1.test)('should throw an error on unrecognized fields in MULTI_OPTIONS', async () => {
|
|
62
66
|
const input = {
|
|
63
67
|
input: 'input/path',
|
|
64
68
|
output: 'output/path',
|
|
@@ -69,19 +73,20 @@ const mockJoiSchema_1 = require("./__mock__/mockJoiSchema");
|
|
|
69
73
|
rawInput: input,
|
|
70
74
|
migrationPlans: MultiOptionsMigrationPlan_1.multiOptionsMigrationPlan,
|
|
71
75
|
versionedSchemas: MultiOptionsVersionedSchemas_1.multiOptionsVersionedSchema,
|
|
76
|
+
migrationMode: Enums_1.EMigrationMode.GENERATE_OPENAPI,
|
|
72
77
|
}), /The "name" field is not recognized./);
|
|
73
78
|
});
|
|
74
|
-
(0, node_test_1.test)('
|
|
79
|
+
(0, node_test_1.test)('must process an empty array of MULTI_OPTIONS data', async () => {
|
|
75
80
|
const schemas = [
|
|
76
81
|
{
|
|
77
82
|
schema: (0, mockJoiSchema_1.mockJoiSchema)(['name'], true, [], true),
|
|
78
83
|
version: '1.0',
|
|
79
|
-
type:
|
|
84
|
+
type: Enums_2.EVersionedSchemaType.MULTI_OPTIONS,
|
|
80
85
|
},
|
|
81
86
|
{
|
|
82
87
|
schema: (0, mockJoiSchema_1.mockJoiSchema)(['name', 'options'], true, [], true),
|
|
83
88
|
version: '2.0',
|
|
84
|
-
type:
|
|
89
|
+
type: Enums_2.EVersionedSchemaType.MULTI_OPTIONS,
|
|
85
90
|
},
|
|
86
91
|
];
|
|
87
92
|
const migrationPlans = [
|
|
@@ -96,11 +101,12 @@ const mockJoiSchema_1 = require("./__mock__/mockJoiSchema");
|
|
|
96
101
|
rawInput: input,
|
|
97
102
|
migrationPlans,
|
|
98
103
|
versionedSchemas: schemas,
|
|
104
|
+
migrationMode: Enums_1.EMigrationMode.GENERATE_OPENAPI,
|
|
99
105
|
});
|
|
100
106
|
strict_1.default.deepEqual(result, {
|
|
101
107
|
value: [],
|
|
102
108
|
schemaVersion: '2.0',
|
|
103
|
-
schemaType:
|
|
109
|
+
schemaType: Enums_2.EVersionedSchemaType.MULTI_OPTIONS,
|
|
104
110
|
});
|
|
105
111
|
});
|
|
106
112
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrationForOptions.test.d.ts","sourceRoot":"","sources":["../../../../src/common/utils/__tests__/migrationForOptions.test.ts"],"names":[],"mappings":""}
|
|
@@ -5,17 +5,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
7
7
|
const node_test_1 = require("node:test");
|
|
8
|
-
const Enums_1 = require("
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
const Enums_1 = require("../../Enums");
|
|
9
|
+
const Enums_2 = require("../../VersionedSchema/Enums");
|
|
10
|
+
const OptionsMigrationPlans_1 = require("../../VersionedSchema/OptionsVersioned/OptionsMigrationPlans");
|
|
11
|
+
const OptionsVersionedSchemas_1 = require("../../VersionedSchema/OptionsVersioned/OptionsVersionedSchemas");
|
|
12
|
+
const migrateDataToLatestSchemaVersion_1 = require("../../VersionedSchema/Utils/migrateDataToLatestSchemaVersion");
|
|
13
|
+
node_test_1.describe.skip('@unit: migrationForOptions', () => {
|
|
14
|
+
(0, node_test_1.test)('must migrate data to the latest schema version', async () => {
|
|
14
15
|
const input = { input: 'input/path', output: 'output/path', client: 'fetch' };
|
|
15
16
|
const result = (0, migrateDataToLatestSchemaVersion_1.migrateDataToLatestSchemaVersion)({
|
|
16
17
|
rawInput: input,
|
|
17
18
|
migrationPlans: OptionsMigrationPlans_1.optionsMigrationPlans,
|
|
18
19
|
versionedSchemas: OptionsVersionedSchemas_1.optionsVersionedSchemas,
|
|
20
|
+
migrationMode: Enums_1.EMigrationMode.GENERATE_OPENAPI,
|
|
19
21
|
});
|
|
20
22
|
strict_1.default.deepEqual(result, {
|
|
21
23
|
value: {
|
|
@@ -29,24 +31,26 @@ const migrateDataToLatestSchemaVersion_1 = require("../VersionedSchema/Utils/mig
|
|
|
29
31
|
useSeparatedIndexes: false,
|
|
30
32
|
},
|
|
31
33
|
schemaVersion: 'v4',
|
|
32
|
-
schemaType:
|
|
34
|
+
schemaType: Enums_2.EVersionedSchemaType.OPTIONS,
|
|
33
35
|
});
|
|
34
36
|
});
|
|
35
|
-
(0, node_test_1.test)('
|
|
37
|
+
(0, node_test_1.test)('should return null if the validation error occurred for the last schema.', async () => {
|
|
36
38
|
const input = { input: 'input/path' };
|
|
37
39
|
const result = (0, migrateDataToLatestSchemaVersion_1.migrateDataToLatestSchemaVersion)({
|
|
38
40
|
rawInput: input,
|
|
39
41
|
migrationPlans: OptionsMigrationPlans_1.optionsMigrationPlans,
|
|
40
42
|
versionedSchemas: OptionsVersionedSchemas_1.optionsVersionedSchemas,
|
|
43
|
+
migrationMode: Enums_1.EMigrationMode.GENERATE_OPENAPI,
|
|
41
44
|
});
|
|
42
45
|
strict_1.default.equal(result, null);
|
|
43
46
|
});
|
|
44
|
-
(0, node_test_1.test)('
|
|
47
|
+
(0, node_test_1.test)('It should throw an error if the migration plan is not found.', async () => {
|
|
45
48
|
const input = { input: 'input/path', output: 'output/path', client: 'fetch' };
|
|
46
49
|
strict_1.default.throws(() => (0, migrateDataToLatestSchemaVersion_1.migrateDataToLatestSchemaVersion)({
|
|
47
50
|
rawInput: input,
|
|
48
51
|
migrationPlans: [],
|
|
49
52
|
versionedSchemas: OptionsVersionedSchemas_1.optionsVersionedSchemas,
|
|
53
|
+
migrationMode: Enums_1.EMigrationMode.GENERATE_OPENAPI,
|
|
50
54
|
}), /No migration plan from v1/);
|
|
51
55
|
});
|
|
52
56
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathHelpers.test.d.ts","sourceRoot":"","sources":["../../../../src/common/utils/__tests__/pathHelpers.test.ts"],"names":[],"mappings":""}
|
|
@@ -6,13 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
7
|
const node_test_1 = require("node:test");
|
|
8
8
|
const pathHelpers_1 = require("../pathHelpers");
|
|
9
|
-
(0, node_test_1.describe)('path', () => {
|
|
10
|
-
(0, node_test_1.test)('
|
|
11
|
-
node_assert_1.default.strictEqual((0, pathHelpers_1.
|
|
12
|
-
node_assert_1.default.strictEqual((0, pathHelpers_1.
|
|
13
|
-
node_assert_1.default.strictEqual((0, pathHelpers_1.
|
|
14
|
-
node_assert_1.default.strictEqual((0, pathHelpers_1.
|
|
15
|
-
node_assert_1.default.strictEqual((0, pathHelpers_1.
|
|
16
|
-
node_assert_1.default.strictEqual((0, pathHelpers_1.
|
|
9
|
+
(0, node_test_1.describe)('@unit: path', () => {
|
|
10
|
+
(0, node_test_1.test)('should relative', () => {
|
|
11
|
+
node_assert_1.default.strictEqual((0, pathHelpers_1.relativeHelper)('/test/server', '/test/model'), '../model');
|
|
12
|
+
node_assert_1.default.strictEqual((0, pathHelpers_1.relativeHelper)('/test/server', '/test/server'), './');
|
|
13
|
+
node_assert_1.default.strictEqual((0, pathHelpers_1.relativeHelper)('/test/server', '/test/server/model'), './model');
|
|
14
|
+
node_assert_1.default.strictEqual((0, pathHelpers_1.relativeHelper)('/test/server', '/model'), '../../model');
|
|
15
|
+
node_assert_1.default.strictEqual((0, pathHelpers_1.relativeHelper)('/test', '/test'), './');
|
|
16
|
+
node_assert_1.default.strictEqual((0, pathHelpers_1.relativeHelper)('/test', '/test/model'), './model');
|
|
17
17
|
});
|
|
18
18
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replaceInvalidKeysWithMappedNames.test.d.ts","sourceRoot":"","sources":["../../../../src/common/utils/__tests__/replaceInvalidKeysWithMappedNames.test.ts"],"names":[],"mappings":""}
|
|
@@ -5,21 +5,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
7
|
const node_test_1 = require("node:test");
|
|
8
|
-
const replaceInvalidKeysWithMappedNames_1 = require("
|
|
9
|
-
(0, node_test_1.describe)('replaceInvalidKeysWithMappedNames', () => {
|
|
10
|
-
(0, node_test_1.test)('
|
|
8
|
+
const replaceInvalidKeysWithMappedNames_1 = require("../../VersionedSchema/Utils/replaceInvalidKeysWithMappedNames");
|
|
9
|
+
(0, node_test_1.describe)('@unit: replaceInvalidKeysWithMappedNames', () => {
|
|
10
|
+
(0, node_test_1.test)('must replace invalid keys in the object', async () => {
|
|
11
11
|
const input = { nmae: 'John', title: 'Mr' };
|
|
12
12
|
const keyMap = new Map([['nmae', 'name']]);
|
|
13
13
|
const result = (0, replaceInvalidKeysWithMappedNames_1.replaceInvalidKeysWithMappedNames)(input, keyMap);
|
|
14
14
|
node_assert_1.default.deepEqual(result, { name: 'John', title: 'Mr' });
|
|
15
15
|
});
|
|
16
|
-
(0, node_test_1.test)('
|
|
16
|
+
(0, node_test_1.test)('must replace invalid keys in an array of objects', async () => {
|
|
17
17
|
const input = [{ nmae: 'John' }, { nmae: 'Jane' }];
|
|
18
18
|
const keyMap = new Map([['nmae', 'name']]);
|
|
19
19
|
const result = (0, replaceInvalidKeysWithMappedNames_1.replaceInvalidKeysWithMappedNames)(input, keyMap);
|
|
20
20
|
node_assert_1.default.deepEqual(result, [{ name: 'John' }, { name: 'Jane' }]);
|
|
21
21
|
});
|
|
22
|
-
(0, node_test_1.test)('
|
|
22
|
+
(0, node_test_1.test)('should throw an error for null or undefined', async () => {
|
|
23
23
|
node_assert_1.default.throws(() => (0, replaceInvalidKeysWithMappedNames_1.replaceInvalidKeysWithMappedNames)(null, new Map()), /The input data cannot be null or undefined./);
|
|
24
24
|
});
|
|
25
25
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateAndSuggestKeyCorrections.test.d.ts","sourceRoot":"","sources":["../../../../src/common/utils/__tests__/validateAndSuggestKeyCorrections.test.ts"],"names":[],"mappings":""}
|
|
@@ -5,19 +5,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
7
|
const node_test_1 = require("node:test");
|
|
8
|
-
const validateAndSuggestKeyCorrections_1 = require("
|
|
9
|
-
(0, node_test_1.describe)('validateAndSuggestKeyCorrections', () => {
|
|
10
|
-
(0, node_test_1.test)('
|
|
8
|
+
const validateAndSuggestKeyCorrections_1 = require("../../VersionedSchema/Utils/validateAndSuggestKeyCorrections");
|
|
9
|
+
(0, node_test_1.describe)('@unit: validateAndSuggestKeyCorrections', () => {
|
|
10
|
+
(0, node_test_1.test)('should throw an error for unknown keys with a suggestion for correction', async () => {
|
|
11
11
|
const inputKeys = ['nmae'];
|
|
12
12
|
const allowedKeys = new Set(['name', 'title']);
|
|
13
13
|
node_assert_1.default.throws(() => (0, validateAndSuggestKeyCorrections_1.validateAndSuggestKeyCorrections)(inputKeys, allowedKeys), /The "nmae" field is not recognized. Perhaps you meant "name"./);
|
|
14
14
|
});
|
|
15
|
-
(0, node_test_1.test)('
|
|
15
|
+
(0, node_test_1.test)('should throw an error without suggestions for keys with a large distance', async () => {
|
|
16
16
|
const inputKeys = ['unknown'];
|
|
17
17
|
const allowedKeys = new Set(['name', 'title']);
|
|
18
18
|
node_assert_1.default.throws(() => (0, validateAndSuggestKeyCorrections_1.validateAndSuggestKeyCorrections)(inputKeys, allowedKeys), /The "unknown" field is not recognized./);
|
|
19
19
|
});
|
|
20
|
-
(0, node_test_1.test)('
|
|
20
|
+
(0, node_test_1.test)('should not throw an error for valid keys', async () => {
|
|
21
21
|
const inputKeys = ['name', 'title'];
|
|
22
22
|
const allowedKeys = new Set(['name', 'title']);
|
|
23
23
|
node_assert_1.default.doesNotThrow(() => (0, validateAndSuggestKeyCorrections_1.validateAndSuggestKeyCorrections)(inputKeys, allowedKeys));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertArrayToObject.d.ts","sourceRoot":"","sources":["../../../src/common/utils/convertArrayToObject.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA4DxH"}
|
|
@@ -1,26 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.loadConfigIfExists = loadConfigIfExists;
|
|
7
3
|
exports.convertArrayToObject = convertArrayToObject;
|
|
8
|
-
const fs_1 = __importDefault(require("fs"));
|
|
9
|
-
const utils_1 = require("../cli/utils");
|
|
10
|
-
const pathHelpers_1 = require("../core/utils/pathHelpers");
|
|
11
|
-
const Consts_1 = require("./Consts");
|
|
12
|
-
function loadConfigIfExists(configPath) {
|
|
13
|
-
const configFilePath = (0, pathHelpers_1.resolve)(process.cwd(), configPath ?? Consts_1.DEFAULT_OPENAPI_CONFIG_FILENAME);
|
|
14
|
-
let configData;
|
|
15
|
-
if (fs_1.default.existsSync(configFilePath)) {
|
|
16
|
-
const dataString = fs_1.default.readFileSync(configFilePath, { encoding: 'utf-8' });
|
|
17
|
-
configData = (0, utils_1.isValidJson)(dataString) ? JSON.parse(dataString) : [];
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
configData = null;
|
|
21
|
-
}
|
|
22
|
-
return configData;
|
|
23
|
-
}
|
|
24
4
|
function convertArrayToObject(optionsArr) {
|
|
25
5
|
const emptyResult = {
|
|
26
6
|
items: [],
|