ts-openapi-codegen 2.1.0-beta.1 → 2.1.0-beta.10
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 +27 -934
- package/README.rus.md +27 -934
- package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.js +40 -24
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.d.ts +2 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.js +47 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.js +17 -7
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.js +17 -7
- package/dist/cli/analyzeDiff/analyzeDiff.d.ts +14 -2
- package/dist/cli/analyzeDiff/analyzeDiff.d.ts.map +1 -1
- package/dist/cli/analyzeDiff/analyzeDiff.js +58 -15
- package/dist/cli/analyzeDiff/ciSummary.d.ts +6 -3
- package/dist/cli/analyzeDiff/ciSummary.d.ts.map +1 -1
- package/dist/cli/analyzeDiff/ciSummary.js +10 -6
- package/dist/cli/analyzeDiff/ignoreRules.d.ts +0 -22
- package/dist/cli/analyzeDiff/ignoreRules.d.ts.map +1 -1
- package/dist/cli/analyzeDiff/ignoreRules.js +3 -25
- package/dist/cli/analyzeDiff/miracles.d.ts +0 -54
- package/dist/cli/analyzeDiff/miracles.d.ts.map +1 -1
- package/dist/cli/analyzeDiff/miracles.js +1 -219
- package/dist/cli/analyzeDiff/specParser.d.ts +0 -13
- package/dist/cli/analyzeDiff/specParser.d.ts.map +1 -1
- package/dist/cli/analyzeDiff/specParser.js +2 -23
- package/dist/cli/analyzeDiff/types.d.ts +0 -42
- package/dist/cli/analyzeDiff/types.d.ts.map +1 -1
- package/dist/cli/analyzeUsage/analyzeUsage.d.ts +4 -0
- package/dist/cli/analyzeUsage/analyzeUsage.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/analyzeUsage.js +60 -0
- package/dist/cli/analyzeUsage/core/Analyzer.d.ts +9 -0
- package/dist/cli/analyzeUsage/core/Analyzer.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/core/Analyzer.js +29 -0
- package/dist/cli/analyzeUsage/core/ProjectContext.d.ts +10 -0
- package/dist/cli/analyzeUsage/core/ProjectContext.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/core/ProjectContext.js +58 -0
- package/dist/cli/analyzeUsage/core/Scanner.d.ts +23 -0
- package/dist/cli/analyzeUsage/core/Scanner.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/core/Scanner.js +125 -0
- package/dist/cli/analyzeUsage/rules/ClientRule.d.ts +14 -0
- package/dist/cli/analyzeUsage/rules/ClientRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/ClientRule.js +86 -0
- package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts +7 -0
- package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/CoverageRule.js +55 -0
- package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts +6 -0
- package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/DiagnosticsRule.js +63 -0
- package/dist/cli/analyzeUsage/rules/ImportRule.d.ts +6 -0
- package/dist/cli/analyzeUsage/rules/ImportRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/ImportRule.js +50 -0
- package/dist/cli/analyzeUsage/rules/ModelRule.d.ts +6 -0
- package/dist/cli/analyzeUsage/rules/ModelRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/ModelRule.js +34 -0
- package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts +6 -0
- package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/SchemaRule.js +46 -0
- package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts +15 -0
- package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/ServiceRule.js +96 -0
- package/dist/cli/analyzeUsage/types.d.ts +52 -0
- package/dist/cli/analyzeUsage/types.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/types.js +2 -0
- package/dist/cli/analyzeUsage/utils/fuzzy.d.ts +5 -0
- package/dist/cli/analyzeUsage/utils/fuzzy.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/utils/fuzzy.js +38 -0
- package/dist/cli/analyzeUsage/utils/report.d.ts +16 -0
- package/dist/cli/analyzeUsage/utils/report.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/utils/report.js +85 -0
- package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.d.ts +2 -0
- package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.js +53 -0
- package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.d.ts +2 -0
- package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.js +52 -0
- 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 +15 -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 +8 -5
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.d.ts +2 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.js +20 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.d.ts +2 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.js +35 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.d.ts +2 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.js +59 -0
- package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +19 -1
- package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.d.ts +6 -0
- package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.js +55 -0
- package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.js +1 -1
- package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.js +18 -9
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts +2 -5
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +24 -20
- package/dist/cli/index.js +45 -9
- package/dist/cli/initOpenApiConfig/Types.d.ts +2 -0
- package/dist/cli/initOpenApiConfig/Types.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/__tests__/init.test.d.ts +2 -0
- package/dist/cli/initOpenApiConfig/__tests__/init.test.d.ts.map +1 -0
- package/dist/cli/initOpenApiConfig/__tests__/init.test.js +20 -0
- package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.d.ts +2 -0
- package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.d.ts.map +1 -0
- package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.js +49 -0
- package/dist/cli/initOpenApiConfig/init.d.ts +2 -1
- package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/init.js +52 -20
- package/dist/cli/initOpenApiConfig/initConfig.d.ts +5 -0
- package/dist/cli/initOpenApiConfig/initConfig.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/initConfig.js +8 -4
- package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts +3 -2
- package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/initCustomRequest.js +36 -10
- package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.d.ts +2 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.d.ts.map +1 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.js +93 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.d.ts +2 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.d.ts.map +1 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.js +45 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.d.ts +2 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.d.ts.map +1 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.js +61 -0
- package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts +6 -12
- package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/utils/buildConfig.js +24 -19
- package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.js +2 -0
- package/dist/cli/interactive/constants.d.ts +0 -4
- package/dist/cli/interactive/constants.d.ts.map +1 -1
- package/dist/cli/interactive/constants.js +1 -5
- package/dist/cli/previewChanges/previewChanges.d.ts +2 -1
- package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
- package/dist/cli/previewChanges/previewChanges.js +8 -8
- package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.d.ts +2 -0
- package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.d.ts.map +1 -0
- package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.js +52 -0
- package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.d.ts +2 -0
- package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.d.ts.map +1 -0
- package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.js +43 -0
- package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.d.ts +2 -0
- package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.d.ts.map +1 -0
- package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.js +32 -0
- package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.d.ts +2 -0
- package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.d.ts.map +1 -0
- package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.js +68 -0
- package/dist/cli/previewChanges/utils/formatDiff.d.ts.map +1 -1
- package/dist/cli/previewChanges/utils/updateOutputPaths.d.ts.map +1 -1
- package/dist/cli/previewChanges/utils/updateOutputPaths.js +5 -12
- package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.d.ts +2 -0
- package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.d.ts.map +1 -0
- package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.js +36 -0
- package/dist/cli/schemas/__tests__/generateOptionsSchema.test.d.ts +2 -0
- package/dist/cli/schemas/__tests__/generateOptionsSchema.test.d.ts.map +1 -0
- package/dist/cli/schemas/__tests__/generateOptionsSchema.test.js +59 -0
- package/dist/cli/schemas/__tests__/initOptionsSchema.test.d.ts +2 -0
- package/dist/cli/schemas/__tests__/initOptionsSchema.test.d.ts.map +1 -0
- package/dist/cli/schemas/__tests__/initOptionsSchema.test.js +43 -0
- package/dist/cli/schemas/__tests__/previewChangesSchema.test.d.ts +2 -0
- package/dist/cli/schemas/__tests__/previewChangesSchema.test.d.ts.map +1 -0
- package/dist/cli/schemas/__tests__/previewChangesSchema.test.js +31 -0
- package/dist/cli/schemas/analyzeUsage.d.ts +13 -0
- package/dist/cli/schemas/analyzeUsage.d.ts.map +1 -0
- package/dist/cli/schemas/analyzeUsage.js +41 -0
- package/dist/cli/schemas/generate.d.ts +10 -2
- package/dist/cli/schemas/generate.d.ts.map +1 -1
- package/dist/cli/schemas/generate.js +7 -2
- package/dist/cli/schemas/index.d.ts +2 -2
- package/dist/cli/schemas/index.d.ts.map +1 -1
- package/dist/cli/schemas/index.js +1 -1
- package/dist/cli/schemas/init.d.ts +10 -0
- package/dist/cli/schemas/init.d.ts.map +1 -1
- package/dist/cli/schemas/init.js +3 -1
- package/dist/cli/types.d.ts +6 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/common/Consts.d.ts +1 -0
- package/dist/common/Consts.d.ts.map +1 -1
- package/dist/common/Consts.js +7 -3
- package/dist/common/Logger.d.ts.map +1 -1
- package/dist/common/Logger.js +3 -3
- package/dist/common/LoggerMessages.d.ts +71 -12
- package/dist/common/LoggerMessages.d.ts.map +1 -1
- package/dist/common/LoggerMessages.js +76 -18
- package/dist/common/TEslintFixOptions.d.ts +20 -0
- package/dist/common/TEslintFixOptions.d.ts.map +1 -0
- package/dist/common/TEslintFixOptions.js +15 -0
- package/dist/common/TRawOptions.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +2 -4
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.js +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.js +1 -2
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.js +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.js +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts +10 -2
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.js +15 -5
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +18 -4
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +7 -1
- package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/CommonSchemas.js +4 -2
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.js +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.js +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.js +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsMigrationPlans.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +2 -2
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +2 -2
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.js +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +1 -1
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +7 -1
- package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.js +4 -16
- package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts +1 -1
- package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.js +1 -1
- package/dist/common/VersionedSchema/Utils/createTrivialMigration.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/createTrivialMigration.js +1 -1
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +4 -6
- package/dist/common/VersionedSchema/Utils/getLatestVersionFromMigrationPlans.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +6 -8
- package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.js +1 -1
- package/dist/common/VersionedSchema/Utils/validateAndSuggestKeyCorrections.d.ts.map +1 -1
- package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts +1 -1
- package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts.map +1 -1
- package/dist/common/utils/__tests__/eslintFix.test.js +25 -67
- package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts +2 -0
- package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts.map +1 -0
- package/dist/common/utils/__tests__/extractEslintFixOptions.test.js +28 -0
- package/dist/common/utils/__tests__/format.test.js +26 -17
- package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts +2 -0
- package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts.map +1 -0
- package/dist/common/utils/__tests__/prepareTempTsConfig.test.js +78 -0
- package/dist/common/utils/codegenTempDir.d.ts +20 -0
- package/dist/common/utils/codegenTempDir.d.ts.map +1 -0
- package/dist/common/utils/codegenTempDir.js +42 -0
- package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
- package/dist/common/utils/convertArrayToObject.js +3 -8
- package/dist/common/utils/eslintFix.d.ts +48 -4
- package/dist/common/utils/eslintFix.d.ts.map +1 -1
- package/dist/common/utils/eslintFix.js +121 -15
- package/dist/common/utils/format.d.ts +1 -1
- package/dist/common/utils/format.d.ts.map +1 -1
- package/dist/common/utils/format.js +23 -11
- package/dist/common/utils/jsonPath.d.ts.map +1 -1
- package/dist/common/utils/prepareTempEslintConfig.d.ts +18 -0
- package/dist/common/utils/prepareTempEslintConfig.d.ts.map +1 -0
- package/dist/common/utils/prepareTempEslintConfig.js +55 -0
- package/dist/common/utils/prepareTempTsConfig.d.ts +23 -0
- package/dist/common/utils/prepareTempTsConfig.d.ts.map +1 -0
- package/dist/common/utils/prepareTempTsConfig.js +105 -0
- package/dist/core/Context.d.ts.map +1 -1
- package/dist/core/Context.js +2 -6
- package/dist/core/OpenApiClient.d.ts +27 -1
- package/dist/core/OpenApiClient.d.ts.map +1 -1
- package/dist/core/OpenApiClient.js +259 -19
- package/dist/core/WriteClient.d.ts +84 -17
- package/dist/core/WriteClient.d.ts.map +1 -1
- package/dist/core/WriteClient.js +96 -22
- package/dist/core/__tests__/WriteClient.test.js +2 -1
- package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getOperationResponses.js +1 -3
- package/dist/core/api/v2/parser/getServiceName.d.ts +1 -1
- package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationParameters.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationResponses.js +1 -3
- package/dist/core/api/v3/parser/getServiceName.d.ts +1 -1
- package/dist/core/governance/evaluateGovernanceRules.d.ts.map +1 -1
- package/dist/core/governance/evaluateGovernanceRules.js +1 -3
- package/dist/core/governance/loadGovernanceConfig.d.ts.map +1 -1
- package/dist/core/governance/loadGovernanceConfig.js +2 -4
- package/dist/core/plugins/GeneratorPlugin.model.d.ts.map +1 -1
- package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts.map +1 -1
- package/dist/core/plugins/getBuiltinPlugins.d.ts.map +1 -1
- package/dist/core/plugins/loadGeneratorPlugins.d.ts.map +1 -1
- package/dist/core/plugins/loadGeneratorPlugins.js +1 -1
- package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.js +79 -21
- package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.js +20 -1
- package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts +58 -6
- package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts.map +1 -1
- package/dist/core/semanticDiff/analyzeOpenApiDiff.js +47 -19
- package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts +8 -3
- package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts.map +1 -1
- package/dist/core/semanticDiff/semanticDiffReportSchema.js +139 -56
- package/dist/core/strict/validateOpenApiStrict.d.ts.map +1 -1
- package/dist/core/types/Consts.js +1 -1
- package/dist/core/types/DiffReport.model.d.ts +101 -0
- package/dist/core/types/DiffReport.model.d.ts.map +1 -0
- package/dist/core/types/DiffReport.model.js +5 -0
- package/dist/core/types/base/ClientArtifacts.model.d.ts +3 -3
- package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -1
- package/dist/core/types/base/ExportedModel.model.d.ts +1 -1
- package/dist/core/types/base/ExportedModel.model.d.ts.map +1 -1
- package/dist/core/types/base/ExportedService.model.d.ts.map +1 -1
- package/dist/core/types/base/OutputPaths.model.d.ts.map +1 -1
- package/dist/core/types/base/PrefixArtifacts.model.d.ts.map +1 -1
- package/dist/core/types/base/PropertyGroup.model.d.ts +1 -1
- package/dist/core/types/base/SimpleClientArtifacts.model.d.ts +1 -1
- package/dist/core/types/base/SimpleClientArtifacts.model.d.ts.map +1 -1
- package/dist/core/types/base/Templates.model.d.ts +1 -0
- package/dist/core/types/base/Templates.model.d.ts.map +1 -1
- package/dist/core/types/shared/Client.model.d.ts +1 -1
- package/dist/core/types/shared/Client.model.d.ts.map +1 -1
- package/dist/core/types/shared/Model.model.d.ts +37 -1
- package/dist/core/types/shared/Model.model.d.ts.map +1 -1
- package/dist/core/utils/GenerationCache.d.ts +18 -0
- package/dist/core/utils/GenerationCache.d.ts.map +1 -0
- package/dist/core/utils/GenerationCache.js +41 -0
- package/dist/core/utils/__mocks__/templates.d.ts.map +1 -1
- package/dist/core/utils/__mocks__/templates.js +1 -0
- package/dist/core/utils/__tests__/GenerationCache.test.d.ts +2 -0
- package/dist/core/utils/__tests__/GenerationCache.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/GenerationCache.test.js +37 -0
- package/dist/core/utils/__tests__/applyDiffReportToClient.test.js +182 -0
- package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts +2 -0
- package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.js +77 -0
- package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts +2 -0
- package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.js +159 -0
- package/dist/core/utils/__tests__/loadDiffReport.test.d.ts +2 -0
- package/dist/core/utils/__tests__/loadDiffReport.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/loadDiffReport.test.js +246 -0
- package/dist/core/utils/__tests__/modelHelpers.test.js +27 -9
- package/dist/core/utils/__tests__/postProcessModelImports.test.js +1 -4
- package/dist/core/utils/__tests__/postProcessServiceImports.test.js +1 -4
- package/dist/core/utils/__tests__/prepareDtoModels.test.js +168 -1
- package/dist/core/utils/__tests__/registerHandlebarHelpers.test.js +27 -0
- package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts +2 -0
- package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/resolveClassesModeTypes.test.js +111 -0
- package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts +2 -0
- package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.js +68 -0
- package/dist/core/utils/__tests__/serviceHelpers.test.js +10 -11
- package/dist/core/utils/__tests__/sortByRequiredExtended.test.js +10 -27
- package/dist/core/utils/__tests__/templateRendering.test.d.ts +2 -0
- package/dist/core/utils/__tests__/templateRendering.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/templateRendering.test.js +190 -0
- package/dist/core/utils/__tests__/writeFileIfChanged.test.d.ts +2 -0
- package/dist/core/utils/__tests__/writeFileIfChanged.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/writeFileIfChanged.test.js +30 -0
- package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts +2 -0
- package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts.map +1 -0
- package/dist/core/utils/adapters/__tests__/semanticToStructural.test.js +63 -0
- package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts +10 -0
- package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts.map +1 -0
- package/dist/core/utils/adapters/extractMiraclesFromSemantic.js +13 -0
- package/dist/core/utils/adapters/index.d.ts +3 -0
- package/dist/core/utils/adapters/index.d.ts.map +1 -0
- package/dist/core/utils/adapters/index.js +6 -0
- package/dist/core/utils/adapters/semanticToStructural.d.ts +12 -0
- package/dist/core/utils/adapters/semanticToStructural.d.ts.map +1 -0
- package/dist/core/utils/adapters/semanticToStructural.js +36 -0
- package/dist/core/utils/applyDiffReportToClient.d.ts +13 -1
- package/dist/core/utils/applyDiffReportToClient.d.ts.map +1 -1
- package/dist/core/utils/applyDiffReportToClient.js +189 -109
- package/dist/core/utils/areEqual.d.ts +1 -1
- package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts +25 -0
- package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts.map +1 -0
- package/dist/core/utils/buildMiraclesFromSemanticChanges.js +146 -0
- package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts +23 -0
- package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts.map +1 -0
- package/dist/core/utils/expandOpenApiRefsForSemanticDiff.js +163 -0
- package/dist/core/utils/getOpenApiSpec.d.ts +6 -0
- package/dist/core/utils/getOpenApiSpec.d.ts.map +1 -1
- package/dist/core/utils/getOpenApiSpec.js +6 -0
- package/dist/core/utils/getOperationErrors.d.ts +2 -2
- package/dist/core/utils/getOperationErrors.d.ts.map +1 -1
- package/dist/core/utils/getOperationResults.d.ts +1 -1
- package/dist/core/utils/getPropertyGroupSimple.d.ts.map +1 -1
- package/dist/core/utils/getPropertyGroupSimple.js +1 -3
- package/dist/core/utils/isSubdirectory.d.ts.map +1 -1
- package/dist/core/utils/loadDiffReport.d.ts +11 -30
- package/dist/core/utils/loadDiffReport.d.ts.map +1 -1
- package/dist/core/utils/loadDiffReport.js +75 -9
- package/dist/core/utils/loadSemanticOpenApiSpec.d.ts +15 -0
- package/dist/core/utils/loadSemanticOpenApiSpec.d.ts.map +1 -0
- package/dist/core/utils/loadSemanticOpenApiSpec.js +61 -0
- package/dist/core/utils/modelHelpers.d.ts +13 -5
- package/dist/core/utils/modelHelpers.d.ts.map +1 -1
- package/dist/core/utils/modelHelpers.js +28 -23
- package/dist/core/utils/normalizeString.d.ts.map +1 -1
- package/dist/core/utils/normalizeString.js +1 -5
- package/dist/core/utils/postProcessServiceImports.d.ts.map +1 -1
- package/dist/core/utils/postProcessServiceImports.js +1 -3
- package/dist/core/utils/precompileTemplates.js +4 -2
- package/dist/core/utils/prepareAlias.d.ts +1 -1
- package/dist/core/utils/prepareDtoModels.d.ts +5 -0
- package/dist/core/utils/prepareDtoModels.d.ts.map +1 -1
- package/dist/core/utils/prepareDtoModels.js +57 -20
- package/dist/core/utils/registerHandlebarHelpers.d.ts +1 -0
- package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
- package/dist/core/utils/registerHandlebarHelpers.js +3 -0
- package/dist/core/utils/registerHandlebarTemplates.d.ts +1 -0
- package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
- package/dist/core/utils/registerHandlebarTemplates.js +2 -0
- package/dist/core/utils/resolveClassesModeTypes.d.ts +8 -0
- package/dist/core/utils/resolveClassesModeTypes.d.ts.map +1 -0
- package/dist/core/utils/resolveClassesModeTypes.js +77 -0
- package/dist/core/utils/semanticChangesToDiffEntries.d.ts +28 -0
- package/dist/core/utils/semanticChangesToDiffEntries.d.ts.map +1 -0
- package/dist/core/utils/semanticChangesToDiffEntries.js +98 -0
- package/dist/core/utils/semanticPointerToJsonPath.d.ts +7 -0
- package/dist/core/utils/semanticPointerToJsonPath.d.ts.map +1 -0
- package/dist/core/utils/semanticPointerToJsonPath.js +67 -0
- package/dist/core/utils/serviceHelpers.d.ts +6 -7
- package/dist/core/utils/serviceHelpers.d.ts.map +1 -1
- package/dist/core/utils/serviceHelpers.js +8 -25
- package/dist/core/utils/sortModelByName.d.ts +1 -1
- package/dist/core/utils/validateRawOptions.js +2 -2
- package/dist/core/utils/writeClientCore.d.ts +2 -0
- package/dist/core/utils/writeClientCore.d.ts.map +1 -1
- package/dist/core/utils/writeClientCore.js +43 -21
- package/dist/core/utils/writeClientCoreIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientCoreIndex.js +14 -4
- package/dist/core/utils/writeClientExecutor.d.ts +1 -3
- package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
- package/dist/core/utils/writeClientExecutor.js +6 -11
- package/dist/core/utils/writeClientFullIndex.js +4 -4
- package/dist/core/utils/writeClientModels.d.ts +1 -2
- package/dist/core/utils/writeClientModels.d.ts.map +1 -1
- package/dist/core/utils/writeClientModels.js +14 -16
- package/dist/core/utils/writeClientModelsIndex.d.ts +1 -1
- package/dist/core/utils/writeClientModelsIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientModelsIndex.js +14 -4
- package/dist/core/utils/writeClientSchemas.d.ts +1 -3
- package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
- package/dist/core/utils/writeClientSchemas.js +9 -14
- package/dist/core/utils/writeClientSchemasIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientSchemasIndex.js +14 -4
- package/dist/core/utils/writeClientServices.d.ts +15 -16
- package/dist/core/utils/writeClientServices.d.ts.map +1 -1
- package/dist/core/utils/writeClientServices.js +12 -19
- package/dist/core/utils/writeClientServicesIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientServicesIndex.js +14 -4
- package/dist/core/utils/writeClientSimpleIndex.js +4 -4
- package/dist/core/utils/writeFileIfChanged.d.ts +3 -0
- package/dist/core/utils/writeFileIfChanged.d.ts.map +1 -0
- package/dist/core/utils/writeFileIfChanged.js +22 -0
- package/dist/templatesCompiled/cli/customCreateExecutorAdapter.d.ts +8 -0
- package/dist/templatesCompiled/cli/customCreateExecutorAdapter.d.ts.map +1 -0
- package/dist/templatesCompiled/cli/customCreateExecutorAdapter.js +18 -0
- package/dist/templatesCompiled/cli/customRequest.js +7 -7
- package/dist/templatesCompiled/cli/customRequestExecutor.js +7 -7
- package/dist/templatesCompiled/client/core/ApiError.js +1 -1
- package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts +0 -6
- package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts.map +1 -1
- package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.js +3 -22
- package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.d.ts +11 -0
- package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.d.ts.map +1 -0
- package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.js +28 -0
- package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts +2 -0
- package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts.map +1 -1
- package/dist/templatesCompiled/client/core/executor/requestExecutor.js +8 -2
- package/dist/templatesCompiled/client/core/functions/catchErrors.js +1 -1
- package/dist/templatesCompiled/client/core/interceptors/apiErrorInterceptor.js +1 -1
- package/dist/templatesCompiled/client/core/interceptors/interceptors.js +1 -1
- package/dist/templatesCompiled/client/core/interceptors/withInterceptors.js +1 -1
- package/dist/templatesCompiled/client/exportClient.d.ts +0 -4
- package/dist/templatesCompiled/client/exportClient.d.ts.map +1 -1
- package/dist/templatesCompiled/client/exportClient.js +9 -45
- package/dist/templatesCompiled/client/exportModels.d.ts +17 -11
- package/dist/templatesCompiled/client/exportModels.d.ts.map +1 -1
- package/dist/templatesCompiled/client/exportModels.js +96 -49
- package/dist/templatesCompiled/client/exportService.d.ts +13 -10
- package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
- package/dist/templatesCompiled/client/exportService.js +95 -67
- package/dist/templatesCompiled/client/indexCore.js +4 -4
- package/dist/templatesCompiled/client/indexFull.js +8 -8
- package/dist/templatesCompiled/client/indexSimple.js +2 -2
- package/dist/templatesCompiled/client/partials/header.d.ts +1 -0
- package/dist/templatesCompiled/client/partials/header.d.ts.map +1 -1
- package/dist/templatesCompiled/client/partials/header.js +11 -2
- package/dist/test/helpers/silenceLoggers.d.ts +11 -0
- package/dist/test/helpers/silenceLoggers.d.ts.map +1 -0
- package/dist/test/helpers/silenceLoggers.js +88 -0
- package/package.json +132 -136
- package/dist/cli/analyzeDiff/buildLegacyReport.d.ts +0 -17
- package/dist/cli/analyzeDiff/buildLegacyReport.d.ts.map +0 -1
- package/dist/cli/analyzeDiff/buildLegacyReport.js +0 -54
- package/dist/cli/analyzeDiff/diffEngine.d.ts +0 -54
- package/dist/cli/analyzeDiff/diffEngine.d.ts.map +0 -1
- package/dist/cli/analyzeDiff/diffEngine.js +0 -209
- package/dist/cli/analyzeDiff/logLegacyReport.d.ts +0 -6
- package/dist/cli/analyzeDiff/logLegacyReport.d.ts.map +0 -1
- package/dist/cli/analyzeDiff/logLegacyReport.js +0 -29
- package/dist/cli/analyzeDiff/report.d.ts +0 -3
- package/dist/cli/analyzeDiff/report.d.ts.map +0 -1
- package/dist/cli/analyzeDiff/report.js +0 -7
- package/dist/cli/analyzeDiff/writeLegacyReport.d.ts +0 -6
- package/dist/cli/analyzeDiff/writeLegacyReport.d.ts.map +0 -1
- package/dist/cli/analyzeDiff/writeLegacyReport.js +0 -21
- package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts +0 -4
- package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts.map +0 -1
- package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.js +0 -21
- package/dist/common/utils/normalizeObject.d.ts +0 -2
- package/dist/common/utils/normalizeObject.d.ts.map +0 -1
- package/dist/common/utils/normalizeObject.js +0 -63
- package/dist/core/utils/appendUniqueLinesToFile.d.ts +0 -2
- package/dist/core/utils/appendUniqueLinesToFile.d.ts.map +0 -1
- package/dist/core/utils/appendUniqueLinesToFile.js +0 -24
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { GovernancePolicyConfig, GovernanceReport } from '../governance/evaluateGovernanceRules';
|
|
2
|
+
import type { UnifiedDiffReport } from '../types/DiffReport.model';
|
|
2
3
|
import { CommonOpenApi } from '../types/shared/CommonOpenApi.model';
|
|
4
|
+
import type { MiracleEntry } from '../types/shared/Miracle.model';
|
|
3
5
|
type ChangeSeverity = 'breaking' | 'non-breaking' | 'informational';
|
|
4
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Сводка семантических изменений по уровню серьёзности.
|
|
8
|
+
* @property breaking количество breaking-изменений
|
|
9
|
+
* @property nonBreaking количество обратно совместимых изменений
|
|
10
|
+
* @property informational количество информационных изменений
|
|
11
|
+
*/
|
|
12
|
+
export type SemanticDiffSummary = {
|
|
5
13
|
breaking: number;
|
|
6
14
|
nonBreaking: number;
|
|
7
15
|
informational: number;
|
|
@@ -9,37 +17,81 @@ type SemanticDiffSummary = {
|
|
|
9
17
|
type SemanticDiffSemverRecommendation = 'major' | 'minor' | 'patch';
|
|
10
18
|
type SemanticDiffConfidence = 'high' | 'medium' | 'low';
|
|
11
19
|
type SemanticDiffRecommendationReason = 'HAS_BREAKING_CHANGES' | 'HAS_BACKWARD_COMPATIBLE_CHANGES' | 'HAS_INFORMATIONAL_ONLY_CHANGES' | 'NO_API_SURFACE_CHANGES';
|
|
12
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Рекомендация по semver-версии на основе семантического diff.
|
|
22
|
+
* @property semver рекомендуемый уровень версии
|
|
23
|
+
* @property confidence уверенность в рекомендации
|
|
24
|
+
* @property reason человекочитаемое объяснение
|
|
25
|
+
* @property reasons машиночитаемые коды причин
|
|
26
|
+
*/
|
|
27
|
+
export type SemanticDiffRecommendation = {
|
|
13
28
|
semver: SemanticDiffSemverRecommendation;
|
|
14
29
|
confidence: SemanticDiffConfidence;
|
|
15
30
|
reason: string;
|
|
16
31
|
reasons: SemanticDiffRecommendationReason[];
|
|
17
32
|
};
|
|
18
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Одно семантическое изменение OpenAPI.
|
|
35
|
+
* @property type тип изменения
|
|
36
|
+
* @property severity уровень серьёзности
|
|
37
|
+
* @property message описание изменения
|
|
38
|
+
* @property path JSON Pointer путь к изменённому элементу
|
|
39
|
+
* @property [from] значение до изменения
|
|
40
|
+
* @property [to] значение после изменения
|
|
41
|
+
* @property [fromRequired] обязательность до изменения
|
|
42
|
+
* @property [toRequired] обязательность после изменения
|
|
43
|
+
* @property [fromNullable] nullable до изменения
|
|
44
|
+
* @property [toNullable] nullable после изменения
|
|
45
|
+
*/
|
|
46
|
+
export type SemanticDiffChange = {
|
|
19
47
|
type: string;
|
|
20
48
|
severity: ChangeSeverity;
|
|
21
49
|
message: string;
|
|
22
50
|
path: string;
|
|
51
|
+
from?: unknown;
|
|
52
|
+
to?: unknown;
|
|
53
|
+
fromRequired?: boolean;
|
|
54
|
+
toRequired?: boolean;
|
|
55
|
+
fromNullable?: boolean;
|
|
56
|
+
toNullable?: boolean;
|
|
23
57
|
};
|
|
58
|
+
/** Версия схемы семантического diff-отчёта. */
|
|
24
59
|
export declare const SEMANTIC_DIFF_REPORT_SCHEMA_VERSION = "1.1.0";
|
|
60
|
+
/**
|
|
61
|
+
* Семантический diff-отчёт OpenAPI.
|
|
62
|
+
* @property schemaVersion версия схемы отчёта
|
|
63
|
+
* @property summary сводка изменений по серьёзности
|
|
64
|
+
* @property recommendation рекомендация по semver
|
|
65
|
+
* @property governance результат проверки governance-правил
|
|
66
|
+
* @property changes список семантических изменений
|
|
67
|
+
* @property [miracles] кандидаты на переименование и приведение типов
|
|
68
|
+
*/
|
|
25
69
|
export type SemanticDiffReport = {
|
|
26
70
|
schemaVersion: string;
|
|
27
71
|
summary: SemanticDiffSummary;
|
|
28
72
|
recommendation: SemanticDiffRecommendation;
|
|
29
73
|
governance: GovernanceReport;
|
|
30
74
|
changes: SemanticDiffChange[];
|
|
75
|
+
miracles?: MiracleEntry[];
|
|
31
76
|
};
|
|
32
77
|
type AnalyzeOpenApiDiffOptions = {
|
|
33
78
|
allowBreaking?: boolean;
|
|
34
79
|
governanceConfig?: GovernancePolicyConfig;
|
|
35
80
|
};
|
|
36
81
|
/**
|
|
37
|
-
*
|
|
82
|
+
* Формирует семантический diff-отчёт между двумя OpenAPI-спецификациями.
|
|
83
|
+
* @param oldSpec базовая спецификация
|
|
84
|
+
* @param newSpec целевая спецификация
|
|
85
|
+
* @param [options] опции анализа, включая governance и разрешение breaking-изменений
|
|
86
|
+
* @returns семантический diff-отчёт
|
|
38
87
|
*/
|
|
39
88
|
export declare function analyzeOpenApiDiff(oldSpec: CommonOpenApi, newSpec: CommonOpenApi, options?: AnalyzeOpenApiDiffOptions): SemanticDiffReport;
|
|
40
89
|
/**
|
|
41
|
-
*
|
|
90
|
+
* Записывает семантический или унифицированный diff-отчёт в JSON-файл.
|
|
91
|
+
* @param report отчёт для сохранения
|
|
92
|
+
* @param reportFilePath путь к файлу отчёта
|
|
93
|
+
* @returns абсолютный путь к сохранённому файлу
|
|
42
94
|
*/
|
|
43
|
-
export declare function writeSemanticDiffReport(report: SemanticDiffReport, reportFilePath: string): Promise<string>;
|
|
95
|
+
export declare function writeSemanticDiffReport(report: SemanticDiffReport | UnifiedDiffReport, reportFilePath: string): Promise<string>;
|
|
44
96
|
export {};
|
|
45
97
|
//# sourceMappingURL=analyzeOpenApiDiff.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzeOpenApiDiff.d.ts","sourceRoot":"","sources":["../../../src/core/semanticDiff/analyzeOpenApiDiff.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"analyzeOpenApiDiff.d.ts","sourceRoot":"","sources":["../../../src/core/semanticDiff/analyzeOpenApiDiff.ts"],"names":[],"mappings":"AAKA,OAAO,EAA2B,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC1H,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,KAAK,cAAc,GAAG,UAAU,GAAG,cAAc,GAAG,eAAe,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,gCAAgC,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AACpE,KAAK,sBAAsB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AACxD,KAAK,gCAAgC,GAAG,sBAAsB,GAAG,iCAAiC,GAAG,gCAAgC,GAAG,wBAAwB,CAAC;AAEjK;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACrC,MAAM,EAAE,gCAAgC,CAAC;IACzC,UAAU,EAAE,sBAAsB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gCAAgC,EAAE,CAAC;CAC/C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAIF,+CAA+C;AAC/C,eAAO,MAAM,mCAAmC,UAAU,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,cAAc,EAAE,0BAA0B,CAAC;IAC3C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC7B,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC7C,CAAC;AA0zBF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAE,yBAA8B,GAAG,kBAAkB,CA2B9I;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,kBAAkB,GAAG,iBAAiB,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAarI"}
|
|
@@ -11,6 +11,7 @@ const fileSystemHelpers_1 = require("../../common/utils/fileSystemHelpers");
|
|
|
11
11
|
const format_1 = require("../../common/utils/format");
|
|
12
12
|
const pathHelpers_1 = require("../../common/utils/pathHelpers");
|
|
13
13
|
const evaluateGovernanceRules_1 = require("../governance/evaluateGovernanceRules");
|
|
14
|
+
/** Версия схемы семантического diff-отчёта. */
|
|
14
15
|
exports.SEMANTIC_DIFF_REPORT_SCHEMA_VERSION = '1.1.0';
|
|
15
16
|
const HTTP_METHODS = ['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace'];
|
|
16
17
|
/**
|
|
@@ -373,10 +374,19 @@ function buildCanonicalOperations(spec) {
|
|
|
373
374
|
}
|
|
374
375
|
}
|
|
375
376
|
}
|
|
377
|
+
const operationId = typeof operation.operationId === 'string' ? operation.operationId : undefined;
|
|
378
|
+
const summary = typeof operation.summary === 'string' ? operation.summary : undefined;
|
|
379
|
+
const description = typeof operation.description === 'string' ? operation.description : undefined;
|
|
380
|
+
const tagsRaw = operation.tags;
|
|
381
|
+
const tags = Array.isArray(tagsRaw) ? tagsRaw.map(tag => String(tag)) : undefined;
|
|
376
382
|
operations.set(operationKey, {
|
|
377
383
|
parameters,
|
|
378
384
|
requestBodyRequired,
|
|
379
385
|
successResponses,
|
|
386
|
+
operationId,
|
|
387
|
+
summary,
|
|
388
|
+
description,
|
|
389
|
+
tags,
|
|
380
390
|
});
|
|
381
391
|
}
|
|
382
392
|
}
|
|
@@ -385,8 +395,8 @@ function buildCanonicalOperations(spec) {
|
|
|
385
395
|
/**
|
|
386
396
|
* Pushes change entry to report collection.
|
|
387
397
|
*/
|
|
388
|
-
function pushChange(changes, severity, type, path, message) {
|
|
389
|
-
changes.push({ severity, type, path, message });
|
|
398
|
+
function pushChange(changes, severity, type, path, message, extras) {
|
|
399
|
+
changes.push({ severity, type, path, message, ...extras });
|
|
390
400
|
}
|
|
391
401
|
/**
|
|
392
402
|
* Normalizes, deduplicates and sorts changes for stable CI output.
|
|
@@ -440,13 +450,13 @@ function diffModels(oldModels, newModels, changes) {
|
|
|
440
450
|
}
|
|
441
451
|
for (const oldPropertyName of oldModel.properties.keys()) {
|
|
442
452
|
if (!newModel.properties.has(oldPropertyName)) {
|
|
443
|
-
pushChange(changes, 'breaking', 'model.property.removed', `#/components/schemas/${modelName}/properties/${oldPropertyName}`, `Property "${oldPropertyName}" was removed from model "${modelName}"
|
|
453
|
+
pushChange(changes, 'breaking', 'model.property.removed', `#/components/schemas/${modelName}/properties/${oldPropertyName}`, `Property "${oldPropertyName}" was removed from model "${modelName}".`, { from: { type: oldModel.properties.get(oldPropertyName) } });
|
|
444
454
|
}
|
|
445
455
|
}
|
|
446
|
-
for (const [newPropertyName] of newModel.properties.entries()) {
|
|
456
|
+
for (const [newPropertyName, newPropertyType] of newModel.properties.entries()) {
|
|
447
457
|
if (!oldModel.properties.has(newPropertyName)) {
|
|
448
458
|
const isRequired = newModel.required.has(newPropertyName);
|
|
449
|
-
pushChange(changes, isRequired ? 'breaking' : 'non-breaking', 'model.property.added', `#/components/schemas/${modelName}/properties/${newPropertyName}`, `Property "${newPropertyName}" was added to model "${modelName}"
|
|
459
|
+
pushChange(changes, isRequired ? 'breaking' : 'non-breaking', 'model.property.added', `#/components/schemas/${modelName}/properties/${newPropertyName}`, `Property "${newPropertyName}" was added to model "${modelName}".`, { to: { type: newPropertyType } });
|
|
450
460
|
}
|
|
451
461
|
}
|
|
452
462
|
for (const [propertyName, oldPropertyType] of oldModel.properties.entries()) {
|
|
@@ -456,22 +466,26 @@ function diffModels(oldModels, newModels, changes) {
|
|
|
456
466
|
}
|
|
457
467
|
if (oldPropertyType !== newPropertyType) {
|
|
458
468
|
const severity = classifyTypeTransition(oldPropertyType, newPropertyType);
|
|
459
|
-
pushChange(changes, severity, 'model.property.type.changed', `#/components/schemas/${modelName}/properties/${propertyName}`, `Property "${propertyName}" type changed in model "${modelName}" from "${oldPropertyType}" to "${newPropertyType}"
|
|
469
|
+
pushChange(changes, severity, 'model.property.type.changed', `#/components/schemas/${modelName}/properties/${propertyName}`, `Property "${propertyName}" type changed in model "${modelName}" from "${oldPropertyType}" to "${newPropertyType}".`, { from: oldPropertyType, to: newPropertyType });
|
|
460
470
|
}
|
|
461
471
|
const wasRequired = oldModel.required.has(propertyName);
|
|
462
472
|
const isRequired = newModel.required.has(propertyName);
|
|
463
473
|
if (wasRequired !== isRequired) {
|
|
464
|
-
pushChange(changes, isRequired ? 'breaking' : 'non-breaking', 'model.property.required.changed', `#/components/schemas/${modelName}/required/${propertyName}`, `Property "${propertyName}" required flag changed in model "${modelName}" from "${wasRequired}" to "${isRequired}"
|
|
474
|
+
pushChange(changes, isRequired ? 'breaking' : 'non-breaking', 'model.property.required.changed', `#/components/schemas/${modelName}/required/${propertyName}`, `Property "${propertyName}" required flag changed in model "${modelName}" from "${wasRequired}" to "${isRequired}".`, { fromRequired: wasRequired, toRequired: isRequired });
|
|
465
475
|
}
|
|
466
476
|
}
|
|
467
477
|
for (const oldEnumValue of oldModel.enumValues) {
|
|
468
478
|
if (!newModel.enumValues.has(oldEnumValue)) {
|
|
469
|
-
pushChange(changes, 'breaking', 'model.enum.value.removed', `#/components/schemas/${modelName}/enum`, `Enum value "${oldEnumValue}" was removed from model "${modelName}"
|
|
479
|
+
pushChange(changes, 'breaking', 'model.enum.value.removed', `#/components/schemas/${modelName}/enum`, `Enum value "${oldEnumValue}" was removed from model "${modelName}".`, {
|
|
480
|
+
from: oldEnumValue,
|
|
481
|
+
});
|
|
470
482
|
}
|
|
471
483
|
}
|
|
472
484
|
for (const newEnumValue of newModel.enumValues) {
|
|
473
485
|
if (!oldModel.enumValues.has(newEnumValue)) {
|
|
474
|
-
pushChange(changes, 'non-breaking', 'model.enum.value.added', `#/components/schemas/${modelName}/enum`, `Enum value "${newEnumValue}" was added to model "${modelName}"
|
|
486
|
+
pushChange(changes, 'non-breaking', 'model.enum.value.added', `#/components/schemas/${modelName}/enum`, `Enum value "${newEnumValue}" was added to model "${modelName}".`, {
|
|
487
|
+
to: newEnumValue,
|
|
488
|
+
});
|
|
475
489
|
}
|
|
476
490
|
}
|
|
477
491
|
}
|
|
@@ -480,9 +494,16 @@ function diffModels(oldModels, newModels, changes) {
|
|
|
480
494
|
* Diffs canonical operations and appends semantic changes.
|
|
481
495
|
*/
|
|
482
496
|
function diffOperations(oldOperations, newOperations, changes) {
|
|
483
|
-
for (const oldOperationKey of oldOperations.
|
|
497
|
+
for (const [oldOperationKey, oldOperation] of oldOperations.entries()) {
|
|
484
498
|
if (!newOperations.has(oldOperationKey)) {
|
|
485
|
-
pushChange(changes, 'breaking', 'operation.removed', `#/paths/${oldOperationKey}`, `Operation "${oldOperationKey}" was removed
|
|
499
|
+
pushChange(changes, 'breaking', 'operation.removed', `#/paths/${oldOperationKey}`, `Operation "${oldOperationKey}" was removed.`, {
|
|
500
|
+
from: {
|
|
501
|
+
operationId: oldOperation.operationId,
|
|
502
|
+
summary: oldOperation.summary,
|
|
503
|
+
description: oldOperation.description,
|
|
504
|
+
tags: oldOperation.tags,
|
|
505
|
+
},
|
|
506
|
+
});
|
|
486
507
|
}
|
|
487
508
|
}
|
|
488
509
|
for (const newOperationKey of newOperations.keys()) {
|
|
@@ -497,12 +518,12 @@ function diffOperations(oldOperations, newOperations, changes) {
|
|
|
497
518
|
}
|
|
498
519
|
for (const oldParameterName of oldOperation.parameters.keys()) {
|
|
499
520
|
if (!newOperation.parameters.has(oldParameterName)) {
|
|
500
|
-
pushChange(changes, 'breaking', 'operation.parameter.removed', `#/paths/${operationKey}/parameters/${oldParameterName}`, `Parameter "${oldParameterName}" was removed from operation "${operationKey}"
|
|
521
|
+
pushChange(changes, 'breaking', 'operation.parameter.removed', `#/paths/${operationKey}/parameters/${oldParameterName}`, `Parameter "${oldParameterName}" was removed from operation "${operationKey}".`, { from: { type: oldOperation.parameters.get(oldParameterName)?.type } });
|
|
501
522
|
}
|
|
502
523
|
}
|
|
503
524
|
for (const [newParameterName, newParameter] of newOperation.parameters.entries()) {
|
|
504
525
|
if (!oldOperation.parameters.has(newParameterName)) {
|
|
505
|
-
pushChange(changes, newParameter.required ? 'breaking' : 'non-breaking', 'operation.parameter.added', `#/paths/${operationKey}/parameters/${newParameterName}`, `Parameter "${newParameterName}" was added to operation "${operationKey}"
|
|
526
|
+
pushChange(changes, newParameter.required ? 'breaking' : 'non-breaking', 'operation.parameter.added', `#/paths/${operationKey}/parameters/${newParameterName}`, `Parameter "${newParameterName}" was added to operation "${operationKey}".`, { to: { type: newParameter.type, required: newParameter.required } });
|
|
506
527
|
}
|
|
507
528
|
}
|
|
508
529
|
for (const [parameterName, oldParameter] of oldOperation.parameters.entries()) {
|
|
@@ -511,15 +532,15 @@ function diffOperations(oldOperations, newOperations, changes) {
|
|
|
511
532
|
continue;
|
|
512
533
|
}
|
|
513
534
|
if (oldParameter.required !== newParameter.required) {
|
|
514
|
-
pushChange(changes, newParameter.required ? 'breaking' : 'non-breaking', 'operation.parameter.required.changed', `#/paths/${operationKey}/parameters/${parameterName}/required`, `Required flag for parameter "${parameterName}" changed in operation "${operationKey}"
|
|
535
|
+
pushChange(changes, newParameter.required ? 'breaking' : 'non-breaking', 'operation.parameter.required.changed', `#/paths/${operationKey}/parameters/${parameterName}/required`, `Required flag for parameter "${parameterName}" changed in operation "${operationKey}".`, { fromRequired: oldParameter.required, toRequired: newParameter.required });
|
|
515
536
|
}
|
|
516
537
|
if (oldParameter.type !== newParameter.type) {
|
|
517
538
|
const severity = classifyTypeTransition(oldParameter.type, newParameter.type);
|
|
518
|
-
pushChange(changes, severity, 'operation.parameter.type.changed', `#/paths/${operationKey}/parameters/${parameterName}/schema`, `Type for parameter "${parameterName}" changed in operation "${operationKey}" from "${oldParameter.type}" to "${newParameter.type}"
|
|
539
|
+
pushChange(changes, severity, 'operation.parameter.type.changed', `#/paths/${operationKey}/parameters/${parameterName}/schema`, `Type for parameter "${parameterName}" changed in operation "${operationKey}" from "${oldParameter.type}" to "${newParameter.type}".`, { from: oldParameter.type, to: newParameter.type });
|
|
519
540
|
}
|
|
520
541
|
}
|
|
521
542
|
if (oldOperation.requestBodyRequired !== newOperation.requestBodyRequired) {
|
|
522
|
-
pushChange(changes, newOperation.requestBodyRequired ? 'breaking' : 'non-breaking', 'operation.requestBody.required.changed', `#/paths/${operationKey}/requestBody/required`, `requestBody.required changed in operation "${operationKey}" from "${oldOperation.requestBodyRequired}" to "${newOperation.requestBodyRequired}"
|
|
543
|
+
pushChange(changes, newOperation.requestBodyRequired ? 'breaking' : 'non-breaking', 'operation.requestBody.required.changed', `#/paths/${operationKey}/requestBody/required`, `requestBody.required changed in operation "${operationKey}" from "${oldOperation.requestBodyRequired}" to "${newOperation.requestBodyRequired}".`, { from: oldOperation.requestBodyRequired, to: newOperation.requestBodyRequired });
|
|
523
544
|
}
|
|
524
545
|
for (const oldResponseCode of oldOperation.successResponses.keys()) {
|
|
525
546
|
if (!newOperation.successResponses.has(oldResponseCode)) {
|
|
@@ -537,7 +558,7 @@ function diffOperations(oldOperations, newOperations, changes) {
|
|
|
537
558
|
continue;
|
|
538
559
|
}
|
|
539
560
|
const severity = classifyTypeTransition(oldResponseType, newResponseType);
|
|
540
|
-
pushChange(changes, severity, 'operation.response.success.type.changed', `#/paths/${operationKey}/responses/${responseCode}/content`, `Successful response "${responseCode}" payload type changed in operation "${operationKey}" from "${oldResponseType}" to "${newResponseType}"
|
|
561
|
+
pushChange(changes, severity, 'operation.response.success.type.changed', `#/paths/${operationKey}/responses/${responseCode}/content`, `Successful response "${responseCode}" payload type changed in operation "${operationKey}" from "${oldResponseType}" to "${newResponseType}".`, { from: oldResponseType, to: newResponseType });
|
|
541
562
|
}
|
|
542
563
|
}
|
|
543
564
|
}
|
|
@@ -598,7 +619,11 @@ function buildSemverRecommendation(summary) {
|
|
|
598
619
|
};
|
|
599
620
|
}
|
|
600
621
|
/**
|
|
601
|
-
*
|
|
622
|
+
* Формирует семантический diff-отчёт между двумя OpenAPI-спецификациями.
|
|
623
|
+
* @param oldSpec базовая спецификация
|
|
624
|
+
* @param newSpec целевая спецификация
|
|
625
|
+
* @param [options] опции анализа, включая governance и разрешение breaking-изменений
|
|
626
|
+
* @returns семантический diff-отчёт
|
|
602
627
|
*/
|
|
603
628
|
function analyzeOpenApiDiff(oldSpec, newSpec, options = {}) {
|
|
604
629
|
const oldModels = buildCanonicalModels(oldSpec);
|
|
@@ -625,7 +650,10 @@ function analyzeOpenApiDiff(oldSpec, newSpec, options = {}) {
|
|
|
625
650
|
};
|
|
626
651
|
}
|
|
627
652
|
/**
|
|
628
|
-
*
|
|
653
|
+
* Записывает семантический или унифицированный diff-отчёт в JSON-файл.
|
|
654
|
+
* @param report отчёт для сохранения
|
|
655
|
+
* @param reportFilePath путь к файлу отчёта
|
|
656
|
+
* @returns абсолютный путь к сохранённому файлу
|
|
629
657
|
*/
|
|
630
658
|
async function writeSemanticDiffReport(report, reportFilePath) {
|
|
631
659
|
const resolvedPath = (0, pathHelpers_1.resolveHelper)(process.cwd(), reportFilePath);
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Результат валидации diff-отчёта по JSON Schema.
|
|
3
|
+
* @property valid признак успешной валидации
|
|
4
|
+
* @property errors список ошибок валидации
|
|
5
|
+
*/
|
|
2
6
|
export type SemanticDiffReportSchemaValidationResult = {
|
|
3
7
|
valid: boolean;
|
|
4
8
|
errors: string[];
|
|
5
9
|
};
|
|
6
|
-
export declare const semanticDiffReportJsonSchema: JSONSchema7;
|
|
7
10
|
/**
|
|
8
|
-
*
|
|
11
|
+
* Валидирует payload diff-отчёта по JSON Schema контракту.
|
|
12
|
+
* @param report проверяемый отчёт
|
|
13
|
+
* @returns результат валидации с перечнем ошибок
|
|
9
14
|
*/
|
|
10
15
|
export declare function validateSemanticDiffReportSchema(report: unknown): SemanticDiffReportSchemaValidationResult;
|
|
11
16
|
//# sourceMappingURL=semanticDiffReportSchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semanticDiffReportSchema.d.ts","sourceRoot":"","sources":["../../../src/core/semanticDiff/semanticDiffReportSchema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"semanticDiffReportSchema.d.ts","sourceRoot":"","sources":["../../../src/core/semanticDiff/semanticDiffReportSchema.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,MAAM,wCAAwC,GAAG;IACnD,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAmMF;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,OAAO,GAAG,wCAAwC,CAc1G"}
|
|
@@ -1,121 +1,204 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.semanticDiffReportJsonSchema = void 0;
|
|
4
3
|
exports.validateSemanticDiffReportSchema = validateSemanticDiffReportSchema;
|
|
5
4
|
const json_schema_1 = require("json-schema");
|
|
6
|
-
const
|
|
7
|
-
|
|
5
|
+
const DiffReport_model_1 = require("../types/DiffReport.model");
|
|
6
|
+
/** JSON Schema контракт унифицированного diff-отчёта. */
|
|
7
|
+
const semanticDiffReportJsonSchema = {
|
|
8
8
|
type: 'object',
|
|
9
9
|
additionalProperties: false,
|
|
10
10
|
properties: {
|
|
11
11
|
schemaVersion: {
|
|
12
12
|
type: 'string',
|
|
13
|
-
enum: [
|
|
13
|
+
enum: [DiffReport_model_1.UNIFIED_DIFF_REPORT_SCHEMA_VERSION],
|
|
14
14
|
required: true,
|
|
15
15
|
},
|
|
16
|
-
|
|
16
|
+
timestamp: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
minLength: 1,
|
|
19
|
+
required: true,
|
|
20
|
+
},
|
|
21
|
+
metadata: {
|
|
17
22
|
type: 'object',
|
|
18
23
|
additionalProperties: false,
|
|
19
24
|
required: true,
|
|
20
25
|
properties: {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
base: { type: 'string', minLength: 1, required: true },
|
|
27
|
+
target: { type: 'string', minLength: 1, required: true },
|
|
28
|
+
baseHash: { type: 'string', minLength: 1, required: true },
|
|
29
|
+
targetHash: { type: 'string', minLength: 1, required: true },
|
|
24
30
|
},
|
|
25
31
|
},
|
|
26
|
-
|
|
32
|
+
semantic: {
|
|
27
33
|
type: 'object',
|
|
28
34
|
additionalProperties: false,
|
|
29
35
|
required: true,
|
|
30
36
|
properties: {
|
|
31
|
-
|
|
32
|
-
type: '
|
|
33
|
-
|
|
37
|
+
summary: {
|
|
38
|
+
type: 'object',
|
|
39
|
+
additionalProperties: false,
|
|
34
40
|
required: true,
|
|
41
|
+
properties: {
|
|
42
|
+
breaking: { type: 'integer', minimum: 0, required: true },
|
|
43
|
+
nonBreaking: { type: 'integer', minimum: 0, required: true },
|
|
44
|
+
informational: { type: 'integer', minimum: 0, required: true },
|
|
45
|
+
},
|
|
35
46
|
},
|
|
36
|
-
|
|
37
|
-
type: '
|
|
38
|
-
|
|
47
|
+
recommendation: {
|
|
48
|
+
type: 'object',
|
|
49
|
+
additionalProperties: false,
|
|
39
50
|
required: true,
|
|
51
|
+
properties: {
|
|
52
|
+
semver: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
enum: ['major', 'minor', 'patch'],
|
|
55
|
+
required: true,
|
|
56
|
+
},
|
|
57
|
+
confidence: {
|
|
58
|
+
type: 'string',
|
|
59
|
+
enum: ['high', 'medium', 'low'],
|
|
60
|
+
required: true,
|
|
61
|
+
},
|
|
62
|
+
reason: {
|
|
63
|
+
type: 'string',
|
|
64
|
+
minLength: 1,
|
|
65
|
+
required: true,
|
|
66
|
+
},
|
|
67
|
+
reasons: {
|
|
68
|
+
type: 'array',
|
|
69
|
+
minItems: 1,
|
|
70
|
+
required: true,
|
|
71
|
+
items: {
|
|
72
|
+
type: 'string',
|
|
73
|
+
enum: ['HAS_BREAKING_CHANGES', 'HAS_BACKWARD_COMPATIBLE_CHANGES', 'HAS_INFORMATIONAL_ONLY_CHANGES', 'NO_API_SURFACE_CHANGES'],
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
},
|
|
40
77
|
},
|
|
41
|
-
|
|
42
|
-
type: '
|
|
43
|
-
|
|
78
|
+
governance: {
|
|
79
|
+
type: 'object',
|
|
80
|
+
additionalProperties: false,
|
|
44
81
|
required: true,
|
|
82
|
+
properties: {
|
|
83
|
+
summary: {
|
|
84
|
+
type: 'object',
|
|
85
|
+
additionalProperties: false,
|
|
86
|
+
required: true,
|
|
87
|
+
properties: {
|
|
88
|
+
errors: { type: 'integer', minimum: 0, required: true },
|
|
89
|
+
warnings: { type: 'integer', minimum: 0, required: true },
|
|
90
|
+
info: { type: 'integer', minimum: 0, required: true },
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
violations: {
|
|
94
|
+
type: 'array',
|
|
95
|
+
required: true,
|
|
96
|
+
items: {
|
|
97
|
+
type: 'object',
|
|
98
|
+
additionalProperties: false,
|
|
99
|
+
properties: {
|
|
100
|
+
ruleId: { type: 'string', minLength: 1, required: true },
|
|
101
|
+
severity: {
|
|
102
|
+
type: 'string',
|
|
103
|
+
enum: ['error', 'warning', 'info'],
|
|
104
|
+
required: true,
|
|
105
|
+
},
|
|
106
|
+
message: { type: 'string', minLength: 1, required: true },
|
|
107
|
+
path: { type: 'string', minLength: 1, required: true },
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
},
|
|
45
112
|
},
|
|
46
|
-
|
|
113
|
+
changes: {
|
|
47
114
|
type: 'array',
|
|
48
|
-
minItems: 1,
|
|
49
115
|
required: true,
|
|
50
116
|
items: {
|
|
51
|
-
type: '
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
'
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
117
|
+
type: 'object',
|
|
118
|
+
additionalProperties: false,
|
|
119
|
+
properties: {
|
|
120
|
+
type: { type: 'string', minLength: 1, required: true },
|
|
121
|
+
severity: {
|
|
122
|
+
type: 'string',
|
|
123
|
+
enum: ['breaking', 'non-breaking', 'informational'],
|
|
124
|
+
required: true,
|
|
125
|
+
},
|
|
126
|
+
message: { type: 'string', minLength: 1, required: true },
|
|
127
|
+
path: { type: 'string', minLength: 1, required: true },
|
|
128
|
+
from: {},
|
|
129
|
+
to: {},
|
|
130
|
+
fromRequired: { type: 'boolean' },
|
|
131
|
+
toRequired: { type: 'boolean' },
|
|
132
|
+
fromNullable: { type: 'boolean' },
|
|
133
|
+
toNullable: { type: 'boolean' },
|
|
134
|
+
},
|
|
58
135
|
},
|
|
59
136
|
},
|
|
60
137
|
},
|
|
61
138
|
},
|
|
62
|
-
|
|
139
|
+
structural: {
|
|
63
140
|
type: 'object',
|
|
64
141
|
additionalProperties: false,
|
|
65
142
|
required: true,
|
|
66
143
|
properties: {
|
|
67
|
-
|
|
144
|
+
diff: {
|
|
68
145
|
type: 'object',
|
|
69
146
|
additionalProperties: false,
|
|
70
147
|
required: true,
|
|
71
148
|
properties: {
|
|
72
|
-
|
|
73
|
-
warnings: { type: '
|
|
74
|
-
info: { type: '
|
|
149
|
+
breaking: { type: 'array', required: true, items: { type: 'object' } },
|
|
150
|
+
warnings: { type: 'array', required: true, items: { type: 'object' } },
|
|
151
|
+
info: { type: 'array', required: true, items: { type: 'object' } },
|
|
152
|
+
all: { type: 'array', required: true, items: { type: 'object' } },
|
|
75
153
|
},
|
|
76
154
|
},
|
|
77
|
-
|
|
155
|
+
miracles: {
|
|
78
156
|
type: 'array',
|
|
79
157
|
required: true,
|
|
80
158
|
items: {
|
|
81
159
|
type: 'object',
|
|
82
160
|
additionalProperties: false,
|
|
83
161
|
properties: {
|
|
84
|
-
|
|
85
|
-
|
|
162
|
+
oldPath: { type: 'string', minLength: 1, required: true },
|
|
163
|
+
newPath: { type: 'string', minLength: 1, required: true },
|
|
164
|
+
type: {
|
|
86
165
|
type: 'string',
|
|
87
|
-
enum: ['
|
|
166
|
+
enum: ['RENAME', 'TYPE_COERCION'],
|
|
88
167
|
required: true,
|
|
89
168
|
},
|
|
90
|
-
|
|
91
|
-
|
|
169
|
+
confidence: { type: 'number', minimum: 0, maximum: 1, required: true },
|
|
170
|
+
status: {
|
|
171
|
+
type: 'string',
|
|
172
|
+
enum: ['auto-generated', 'confirmed'],
|
|
173
|
+
required: true,
|
|
174
|
+
},
|
|
175
|
+
modelName: { type: 'string' },
|
|
176
|
+
oldProperty: { type: 'string' },
|
|
177
|
+
newProperty: { type: 'string' },
|
|
92
178
|
},
|
|
93
179
|
},
|
|
94
180
|
},
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
type: 'string',
|
|
107
|
-
enum: ['breaking', 'non-breaking', 'informational'],
|
|
108
|
-
required: true,
|
|
181
|
+
stats: {
|
|
182
|
+
type: 'object',
|
|
183
|
+
additionalProperties: false,
|
|
184
|
+
required: true,
|
|
185
|
+
properties: {
|
|
186
|
+
totalChanges: { type: 'integer', minimum: 0, required: true },
|
|
187
|
+
added: { type: 'integer', minimum: 0, required: true },
|
|
188
|
+
removed: { type: 'integer', minimum: 0, required: true },
|
|
189
|
+
changed: { type: 'integer', minimum: 0, required: true },
|
|
190
|
+
ignored: { type: 'integer', minimum: 0 },
|
|
191
|
+
stabilityScore: { type: 'integer', minimum: 0, maximum: 100, required: true },
|
|
109
192
|
},
|
|
110
|
-
message: { type: 'string', minLength: 1, required: true },
|
|
111
|
-
path: { type: 'string', minLength: 1, required: true },
|
|
112
193
|
},
|
|
113
194
|
},
|
|
114
195
|
},
|
|
115
196
|
},
|
|
116
197
|
};
|
|
117
198
|
/**
|
|
118
|
-
*
|
|
199
|
+
* Валидирует payload diff-отчёта по JSON Schema контракту.
|
|
200
|
+
* @param report проверяемый отчёт
|
|
201
|
+
* @returns результат валидации с перечнем ошибок
|
|
119
202
|
*/
|
|
120
203
|
function validateSemanticDiffReportSchema(report) {
|
|
121
204
|
if (report === null || typeof report !== 'object') {
|
|
@@ -124,7 +207,7 @@ function validateSemanticDiffReportSchema(report) {
|
|
|
124
207
|
errors: ['root: report must be an object'],
|
|
125
208
|
};
|
|
126
209
|
}
|
|
127
|
-
const result = (0, json_schema_1.validate)(report,
|
|
210
|
+
const result = (0, json_schema_1.validate)(report, semanticDiffReportJsonSchema);
|
|
128
211
|
return {
|
|
129
212
|
valid: result.valid,
|
|
130
213
|
errors: result.errors.map(error => `${error.property}: ${error.message}`),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateOpenApiStrict.d.ts","sourceRoot":"","sources":["../../../src/core/strict/validateOpenApiStrict.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"validateOpenApiStrict.d.ts","sourceRoot":"","sources":["../../../src/core/strict/validateOpenApiStrict.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAA2B,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,KAAK,mBAAmB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAExD,KAAK,WAAW,GAAG;IACf,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,IAAI,EAAE,gBAAgB,GAAG,6BAA6B,GAAG,6BAA6B,GAAG,sBAAsB,GAAG,kCAAkC,CAAC;IACrJ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,aAAa,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC;AAEF,KAAK,uBAAuB,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAEzH,KAAK,2BAA2B,GAAG;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,uBAAuB,CAAC;IACjC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC7C,CAAC;AAqNF;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAiBzF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,mBAAmB,CAe9F;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAanH"}
|