ts-openapi-codegen 2.0.0 → 2.1.0-beta.1
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 +91 -2
- package/README.rus.md +91 -2
- package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.d.ts +2 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.js +365 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.d.ts +2 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.js +142 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.d.ts +2 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.js +137 -0
- package/dist/cli/analyzeDiff/analyzeDiff.d.ts +17 -0
- package/dist/cli/analyzeDiff/analyzeDiff.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/analyzeDiff.js +105 -0
- package/dist/cli/analyzeDiff/buildLegacyReport.d.ts +17 -0
- package/dist/cli/analyzeDiff/buildLegacyReport.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/buildLegacyReport.js +54 -0
- package/dist/cli/analyzeDiff/ciSummary.d.ts +6 -0
- package/dist/cli/analyzeDiff/ciSummary.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/ciSummary.js +20 -0
- package/dist/cli/analyzeDiff/diffEngine.d.ts +54 -0
- package/dist/cli/analyzeDiff/diffEngine.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/diffEngine.js +209 -0
- package/dist/cli/analyzeDiff/ignoreRules.d.ts +33 -0
- package/dist/cli/analyzeDiff/ignoreRules.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/ignoreRules.js +93 -0
- package/dist/cli/analyzeDiff/ignoreSemanticChanges.d.ts +10 -0
- package/dist/cli/analyzeDiff/ignoreSemanticChanges.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/ignoreSemanticChanges.js +84 -0
- package/dist/cli/analyzeDiff/logLegacyReport.d.ts +6 -0
- package/dist/cli/analyzeDiff/logLegacyReport.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/logLegacyReport.js +29 -0
- package/dist/cli/analyzeDiff/miracles.d.ts +89 -0
- package/dist/cli/analyzeDiff/miracles.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/miracles.js +325 -0
- package/dist/cli/analyzeDiff/pluginPaths.d.ts +5 -0
- package/dist/cli/analyzeDiff/pluginPaths.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/pluginPaths.js +13 -0
- package/dist/cli/analyzeDiff/report.d.ts +3 -0
- package/dist/cli/analyzeDiff/report.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/report.js +7 -0
- package/dist/cli/analyzeDiff/semanticDiffContext.d.ts +6 -0
- package/dist/cli/analyzeDiff/semanticDiffContext.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/semanticDiffContext.js +16 -0
- package/dist/cli/analyzeDiff/specParser.d.ts +22 -0
- package/dist/cli/analyzeDiff/specParser.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/specParser.js +80 -0
- package/dist/cli/analyzeDiff/types.d.ts +61 -0
- package/dist/cli/analyzeDiff/types.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/types.js +2 -0
- package/dist/cli/analyzeDiff/writeLegacyReport.d.ts +6 -0
- package/dist/cli/analyzeDiff/writeLegacyReport.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/writeLegacyReport.js +21 -0
- package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/checkConfig.js +13 -8
- package/dist/cli/checkAndUpdateConfig/constants.d.ts +0 -9
- package/dist/cli/checkAndUpdateConfig/constants.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/constants.js +1 -10
- package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/updateConfig.js +11 -7
- package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.js +6 -3
- package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.js +3 -2
- package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.js +2 -2
- package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.d.ts +2 -0
- package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.d.ts.map +1 -0
- package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.js +152 -0
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts +6 -2
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +54 -18
- package/dist/cli/index.js +57 -2
- package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/init.js +19 -6
- package/dist/cli/initOpenApiConfig/initConfig.d.ts +1 -0
- package/dist/cli/initOpenApiConfig/initConfig.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/initConfig.js +47 -24
- package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts +8 -1
- package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/initCustomRequest.js +40 -8
- package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/utils/buildConfig.js +60 -0
- package/dist/cli/initOpenApiConfig/utils/validateSpecFile.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/utils/validateSpecFile.js +2 -1
- package/dist/cli/initOpenApiConfig/utils/writeConfigFile.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/utils/writeConfigFile.js +2 -1
- package/dist/cli/interactive/confirmDialog.d.ts.map +1 -1
- package/dist/cli/interactive/confirmDialog.js +3 -2
- package/dist/cli/interactive/constants.d.ts +2 -2
- package/dist/cli/interactive/constants.js +8 -8
- package/dist/cli/interactive/selectDialog.d.ts.map +1 -1
- package/dist/cli/interactive/selectDialog.js +11 -6
- package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
- package/dist/cli/previewChanges/previewChanges.js +45 -17
- package/dist/cli/schemas/analyzeDiff.d.ts +14 -0
- package/dist/cli/schemas/analyzeDiff.d.ts.map +1 -0
- package/dist/cli/schemas/analyzeDiff.js +28 -0
- package/dist/cli/schemas/generate.d.ts +9 -0
- package/dist/cli/schemas/generate.d.ts.map +1 -1
- package/dist/cli/schemas/generate.js +9 -0
- package/dist/cli/schemas/index.d.ts +3 -1
- package/dist/cli/schemas/index.d.ts.map +1 -1
- package/dist/cli/schemas/index.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 +15 -1
- package/dist/common/Logger.d.ts +20 -1
- package/dist/common/Logger.d.ts.map +1 -1
- package/dist/common/Logger.js +70 -9
- package/dist/common/LoggerMessages.d.ts +135 -33
- package/dist/common/LoggerMessages.d.ts.map +1 -1
- package/dist/common/LoggerMessages.js +118 -45
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +7 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts +4 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts +8 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts +8 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts +8 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts +35 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.js +4 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts +79 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts.map +1 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.js +19 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +171 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +2 -0
- package/dist/common/VersionedSchema/CommonSchemas.d.ts +40 -0
- package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/CommonSchemas.js +34 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts +4 -0
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts +4 -0
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts +4 -0
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts +4 -0
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts +4 -0
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +4 -0
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +4 -0
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts +4 -0
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +4 -0
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +23 -3
- package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.js +2 -2
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +2 -1
- package/dist/common/__tests__/Logger.test.d.ts +2 -0
- package/dist/common/__tests__/Logger.test.d.ts.map +1 -0
- package/dist/common/__tests__/Logger.test.js +100 -0
- package/dist/common/utils/__tests__/convertArrayToObject.test.js +3 -0
- package/dist/common/utils/__tests__/eslintFix.test.d.ts +2 -0
- package/dist/common/utils/__tests__/eslintFix.test.d.ts.map +1 -0
- package/dist/common/utils/__tests__/eslintFix.test.js +134 -0
- package/dist/common/utils/__tests__/format.test.d.ts +2 -0
- package/dist/common/utils/__tests__/format.test.d.ts.map +1 -0
- package/dist/common/utils/__tests__/format.test.js +90 -0
- package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
- package/dist/common/utils/convertArrayToObject.js +3 -0
- package/dist/common/utils/eslintFix.d.ts +7 -0
- package/dist/common/utils/eslintFix.d.ts.map +1 -0
- package/dist/common/utils/eslintFix.js +78 -0
- 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 +39 -15
- package/dist/common/utils/jsonPath.d.ts +5 -0
- package/dist/common/utils/jsonPath.d.ts.map +1 -0
- package/dist/common/utils/jsonPath.js +27 -0
- package/dist/common/utils/normalizeObject.d.ts +2 -0
- package/dist/common/utils/normalizeObject.d.ts.map +1 -0
- package/dist/common/utils/normalizeObject.js +63 -0
- package/dist/core/Context.d.ts +8 -1
- package/dist/core/Context.d.ts.map +1 -1
- package/dist/core/Context.js +23 -4
- package/dist/core/OpenApiClient.d.ts +2 -0
- package/dist/core/OpenApiClient.d.ts.map +1 -1
- package/dist/core/OpenApiClient.js +116 -6
- package/dist/core/WriteClient.d.ts +4 -0
- package/dist/core/WriteClient.d.ts.map +1 -1
- package/dist/core/WriteClient.js +38 -4
- package/dist/core/__tests__/WriteClient.test.js +4 -1
- package/dist/core/api/v2/parser/__tests__/getModel.test.d.ts +2 -0
- package/dist/core/api/v2/parser/__tests__/getModel.test.d.ts.map +1 -0
- package/dist/core/api/v2/parser/__tests__/getModel.test.js +34 -0
- package/dist/core/api/v2/parser/getModel.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getModel.js +6 -1
- package/dist/core/api/v2/parser/getOperation.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getOperation.js +2 -0
- package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getOperationResponses.js +9 -1
- package/dist/core/api/v2/types/OpenApiSchema.model.d.ts +2 -0
- package/dist/core/api/v2/types/OpenApiSchema.model.d.ts.map +1 -1
- package/dist/core/api/v3/parser/__tests__/getContent.test.d.ts +2 -0
- package/dist/core/api/v3/parser/__tests__/getContent.test.d.ts.map +1 -0
- package/dist/core/api/v3/parser/__tests__/getContent.test.js +65 -0
- package/dist/core/api/v3/parser/__tests__/getModel.test.d.ts +2 -0
- package/dist/core/api/v3/parser/__tests__/getModel.test.d.ts.map +1 -0
- package/dist/core/api/v3/parser/__tests__/getModel.test.js +34 -0
- package/dist/core/api/v3/parser/getContent.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getContent.js +21 -11
- package/dist/core/api/v3/parser/getModel.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getModel.js +6 -1
- package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperation.js +2 -0
- package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationResponses.js +9 -1
- package/dist/core/api/v3/types/OpenApiSchema.model.d.ts +2 -0
- package/dist/core/api/v3/types/OpenApiSchema.model.d.ts.map +1 -1
- package/dist/core/governance/__tests__/evaluateGovernanceRules.test.d.ts +2 -0
- package/dist/core/governance/__tests__/evaluateGovernanceRules.test.d.ts.map +1 -0
- package/dist/core/governance/__tests__/evaluateGovernanceRules.test.js +100 -0
- package/dist/core/governance/__tests__/loadGovernanceConfig.test.d.ts +2 -0
- package/dist/core/governance/__tests__/loadGovernanceConfig.test.d.ts.map +1 -0
- package/dist/core/governance/__tests__/loadGovernanceConfig.test.js +71 -0
- package/dist/core/governance/evaluateGovernanceRules.d.ts +42 -0
- package/dist/core/governance/evaluateGovernanceRules.d.ts.map +1 -0
- package/dist/core/governance/evaluateGovernanceRules.js +134 -0
- package/dist/core/governance/governanceConfigSchema.d.ts +4 -0
- package/dist/core/governance/governanceConfigSchema.d.ts.map +1 -0
- package/dist/core/governance/governanceConfigSchema.js +39 -0
- package/dist/core/governance/loadGovernanceConfig.d.ts +7 -0
- package/dist/core/governance/loadGovernanceConfig.d.ts.map +1 -0
- package/dist/core/governance/loadGovernanceConfig.js +60 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -2
- package/dist/core/plugins/GeneratorPlugin.model.d.ts +42 -0
- package/dist/core/plugins/GeneratorPlugin.model.d.ts.map +1 -0
- package/dist/core/plugins/GeneratorPlugin.model.js +2 -0
- package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.d.ts +2 -0
- package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.d.ts.map +1 -0
- package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.js +115 -0
- package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.d.ts +2 -0
- package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.d.ts.map +1 -0
- package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.js +62 -0
- package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts +28 -0
- package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts.map +1 -0
- package/dist/core/plugins/applySemanticDiffPluginHooks.js +160 -0
- package/dist/core/plugins/builtins/xTypescriptTypePlugin.d.ts +6 -0
- package/dist/core/plugins/builtins/xTypescriptTypePlugin.d.ts.map +1 -0
- package/dist/core/plugins/builtins/xTypescriptTypePlugin.js +13 -0
- package/dist/core/plugins/getBuiltinPlugins.d.ts +6 -0
- package/dist/core/plugins/getBuiltinPlugins.d.ts.map +1 -0
- package/dist/core/plugins/getBuiltinPlugins.js +10 -0
- package/dist/core/plugins/index.d.ts +4 -0
- package/dist/core/plugins/index.d.ts.map +1 -0
- package/dist/core/plugins/index.js +5 -0
- package/dist/core/plugins/loadGeneratorPlugins.d.ts +6 -0
- package/dist/core/plugins/loadGeneratorPlugins.d.ts.map +1 -0
- package/dist/core/plugins/loadGeneratorPlugins.js +94 -0
- package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.d.ts +2 -0
- package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.d.ts.map +1 -0
- package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.js +537 -0
- package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.d.ts +2 -0
- package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.d.ts.map +1 -0
- package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.js +66 -0
- package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts +45 -0
- package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts.map +1 -0
- package/dist/core/semanticDiff/analyzeOpenApiDiff.js +640 -0
- package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts +11 -0
- package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts.map +1 -0
- package/dist/core/semanticDiff/semanticDiffReportSchema.js +132 -0
- package/dist/core/strict/__tests__/validateOpenApiStrict.test.d.ts +2 -0
- package/dist/core/strict/__tests__/validateOpenApiStrict.test.d.ts.map +1 -0
- package/dist/core/strict/__tests__/validateOpenApiStrict.test.js +156 -0
- package/dist/core/strict/validateOpenApiStrict.d.ts +43 -0
- package/dist/core/strict/validateOpenApiStrict.d.ts.map +1 -0
- package/dist/core/strict/validateOpenApiStrict.js +253 -0
- package/dist/core/types/base/ClientArtifacts.model.d.ts +2 -0
- package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -1
- package/dist/core/types/base/Templates.model.d.ts +3 -0
- package/dist/core/types/base/Templates.model.d.ts.map +1 -1
- package/dist/core/types/enums/ModelsMode.enum.d.ts +5 -0
- package/dist/core/types/enums/ModelsMode.enum.d.ts.map +1 -0
- package/dist/core/types/enums/ModelsMode.enum.js +8 -0
- package/dist/core/types/shared/Client.model.d.ts +2 -0
- package/dist/core/types/shared/Client.model.d.ts.map +1 -1
- package/dist/core/types/shared/DiffInfo.model.d.ts +13 -0
- package/dist/core/types/shared/DiffInfo.model.d.ts.map +1 -0
- package/dist/core/types/shared/DiffInfo.model.js +2 -0
- package/dist/core/types/shared/Miracle.model.d.ts +13 -0
- package/dist/core/types/shared/Miracle.model.d.ts.map +1 -0
- package/dist/core/types/shared/Miracle.model.js +2 -0
- package/dist/core/types/shared/Model.model.d.ts +23 -0
- package/dist/core/types/shared/Model.model.d.ts.map +1 -1
- package/dist/core/types/shared/Operation.model.d.ts +5 -0
- package/dist/core/types/shared/Operation.model.d.ts.map +1 -1
- package/dist/core/utils/__mocks__/templates.d.ts.map +1 -1
- package/dist/core/utils/__mocks__/templates.js +9 -0
- package/dist/core/utils/__tests__/applyDiffReportToClient.test.d.ts +2 -0
- package/dist/core/utils/__tests__/applyDiffReportToClient.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/applyDiffReportToClient.test.js +108 -0
- package/dist/core/utils/__tests__/getMappedType.test.js +2 -0
- package/dist/core/utils/__tests__/getOperationResponseCode.test.js +7 -2
- package/dist/core/utils/__tests__/getOperationResults.test.d.ts +2 -0
- package/dist/core/utils/__tests__/getOperationResults.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/getOperationResults.test.js +43 -0
- package/dist/core/utils/__tests__/prepareDtoModels.test.d.ts +2 -0
- package/dist/core/utils/__tests__/prepareDtoModels.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/prepareDtoModels.test.js +116 -0
- package/dist/core/utils/__tests__/serviceHelpers.test.js +1 -0
- package/dist/core/utils/__tests__/writeClientModels.test.js +50 -0
- package/dist/core/utils/applyDiffReportToClient.d.ts +14 -0
- package/dist/core/utils/applyDiffReportToClient.d.ts.map +1 -0
- package/dist/core/utils/applyDiffReportToClient.js +367 -0
- package/dist/core/utils/getMappedType.d.ts.map +1 -1
- package/dist/core/utils/getMappedType.js +2 -0
- package/dist/core/utils/getOpenApiSpec.d.ts.map +1 -1
- package/dist/core/utils/getOpenApiSpec.js +1 -14
- package/dist/core/utils/getOperationResponseCode.d.ts.map +1 -1
- package/dist/core/utils/getOperationResponseCode.js +10 -8
- package/dist/core/utils/loadDiffReport.d.ts +39 -0
- package/dist/core/utils/loadDiffReport.d.ts.map +1 -0
- package/dist/core/utils/loadDiffReport.js +51 -0
- package/dist/core/utils/prepareDtoModels.d.ts +3 -0
- package/dist/core/utils/prepareDtoModels.d.ts.map +1 -0
- package/dist/core/utils/prepareDtoModels.js +189 -0
- package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
- package/dist/core/utils/registerHandlebarHelpers.js +4 -1
- package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
- package/dist/core/utils/registerHandlebarTemplates.js +6 -0
- package/dist/core/utils/validateRawOptions.d.ts +1 -1
- package/dist/core/utils/validateRawOptions.d.ts.map +1 -1
- package/dist/core/utils/validateRawOptions.js +4 -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 +6 -1
- package/dist/core/utils/writeClientCoreIndex.d.ts +1 -0
- package/dist/core/utils/writeClientCoreIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientCoreIndex.js +2 -2
- package/dist/core/utils/writeClientExecutor.d.ts +2 -0
- package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
- package/dist/core/utils/writeClientExecutor.js +6 -2
- package/dist/core/utils/writeClientFullIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientFullIndex.js +3 -1
- package/dist/core/utils/writeClientModels.d.ts +6 -0
- package/dist/core/utils/writeClientModels.d.ts.map +1 -1
- package/dist/core/utils/writeClientModels.js +24 -3
- package/dist/core/utils/writeClientModelsIndex.d.ts +2 -0
- 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 +2 -0
- package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
- package/dist/core/utils/writeClientSchemas.js +6 -2
- package/dist/core/utils/writeClientServices.d.ts +2 -0
- package/dist/core/utils/writeClientServices.d.ts.map +1 -1
- package/dist/core/utils/writeClientServices.js +6 -2
- package/dist/templatesCompiled/cli/openApiConfig.d.ts +4 -1
- package/dist/templatesCompiled/cli/openApiConfig.d.ts.map +1 -1
- package/dist/templatesCompiled/cli/openApiConfig.js +88 -37
- package/dist/templatesCompiled/client/core/ApiRequestOptions.js +1 -1
- package/dist/templatesCompiled/client/core/BaseDto.d.ts +8 -0
- package/dist/templatesCompiled/client/core/BaseDto.d.ts.map +1 -0
- package/dist/templatesCompiled/client/core/BaseDto.js +18 -0
- package/dist/templatesCompiled/client/core/axios/getResponseBody.js +1 -1
- package/dist/templatesCompiled/client/core/axios/request.js +2 -2
- package/dist/templatesCompiled/client/core/axios/sendRequest.js +4 -4
- package/dist/templatesCompiled/client/core/dtoUtils.d.ts +8 -0
- package/dist/templatesCompiled/client/core/dtoUtils.d.ts.map +1 -0
- package/dist/templatesCompiled/client/core/dtoUtils.js +18 -0
- package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.js +2 -2
- package/dist/templatesCompiled/client/core/executor/requestExecutor.js +1 -1
- package/dist/templatesCompiled/client/core/fetch/getResponseBody.js +1 -1
- package/dist/templatesCompiled/client/core/fetch/request.js +2 -2
- package/dist/templatesCompiled/client/core/functions/isBinary.js +1 -1
- package/dist/templatesCompiled/client/core/node/getResponseBody.js +1 -1
- package/dist/templatesCompiled/client/core/node/request.js +2 -2
- package/dist/templatesCompiled/client/core/xhr/getResponseBody.js +1 -1
- package/dist/templatesCompiled/client/core/xhr/request.js +2 -2
- package/dist/templatesCompiled/client/core/xhr/sendRequest.js +4 -4
- package/dist/templatesCompiled/client/exportModels.d.ts +34 -0
- package/dist/templatesCompiled/client/exportModels.d.ts.map +1 -0
- package/dist/templatesCompiled/client/exportModels.js +280 -0
- package/dist/templatesCompiled/client/exportService.d.ts +7 -4
- package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
- package/dist/templatesCompiled/client/exportService.js +52 -33
- package/dist/templatesCompiled/client/indexCore.d.ts +3 -1
- package/dist/templatesCompiled/client/indexCore.d.ts.map +1 -1
- package/dist/templatesCompiled/client/indexCore.js +13 -2
- package/dist/templatesCompiled/client/indexFull.d.ts +9 -7
- package/dist/templatesCompiled/client/indexFull.d.ts.map +1 -1
- package/dist/templatesCompiled/client/indexFull.js +52 -34
- package/dist/templatesCompiled/client/indexModels.d.ts +7 -5
- package/dist/templatesCompiled/client/indexModels.d.ts.map +1 -1
- package/dist/templatesCompiled/client/indexModels.js +27 -18
- package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.d.ts +27 -19
- package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.d.ts.map +1 -1
- package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.js +144 -63
- package/dist/templatesCompiled/client/jsonschema/exportSchema.d.ts +1 -0
- package/dist/templatesCompiled/client/jsonschema/exportSchema.d.ts.map +1 -1
- package/dist/templatesCompiled/client/jsonschema/exportSchema.js +17 -13
- package/dist/templatesCompiled/client/partials/exportInterface.d.ts +13 -5
- package/dist/templatesCompiled/client/partials/exportInterface.d.ts.map +1 -1
- package/dist/templatesCompiled/client/partials/exportInterface.js +91 -21
- package/dist/templatesCompiled/client/partials/result.d.ts +6 -4
- package/dist/templatesCompiled/client/partials/result.d.ts.map +1 -1
- package/dist/templatesCompiled/client/partials/result.js +16 -6
- package/dist/templatesCompiled/client/partials/serviceOption.d.ts +1 -0
- package/dist/templatesCompiled/client/partials/serviceOption.d.ts.map +1 -1
- package/dist/templatesCompiled/client/partials/serviceOption.js +11 -4
- package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.d.ts +22 -16
- package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.d.ts.map +1 -1
- package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.js +72 -60
- package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.d.ts +27 -19
- package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.d.ts.map +1 -1
- package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.js +77 -61
- package/package.json +7 -5
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.buildMiracles = exports.collectPropertyScalarTypes = exports.computeConfidence = exports.descriptionSimilarityBonus = exports.isSimilarityCandidate = exports.isSchemaPropertyPath = exports.extractPropertyChange = exports.getDescription = exports.normalizeScalarType = exports.getTypeSignature = exports.normalizeName = void 0;
|
|
7
|
+
const camelcase_1 = __importDefault(require("camelcase"));
|
|
8
|
+
const leven_1 = __importDefault(require("leven"));
|
|
9
|
+
const jsonPath_1 = require("../../common/utils/jsonPath");
|
|
10
|
+
/**
|
|
11
|
+
* Нормализует строковое имя (удаляет спецсимволы, приводит к camelCase и lower-case).
|
|
12
|
+
* @param value исходная строка
|
|
13
|
+
* @returns нормализованное имя
|
|
14
|
+
*/
|
|
15
|
+
const normalizeName = (value) => {
|
|
16
|
+
const clean = value.replace(/[^a-zA-Z0-9]+/g, ' ').trim();
|
|
17
|
+
if (!clean) {
|
|
18
|
+
return value.toLowerCase();
|
|
19
|
+
}
|
|
20
|
+
return (0, camelcase_1.default)(clean).toLowerCase();
|
|
21
|
+
};
|
|
22
|
+
exports.normalizeName = normalizeName;
|
|
23
|
+
/**
|
|
24
|
+
* Получает сигнатуру типа из описания свойства схемы (учитывает $ref, type, oneOf/anyOf/allOf).
|
|
25
|
+
* @param payload объект описания свойства
|
|
26
|
+
* @returns строковая сигнатура типа или undefined
|
|
27
|
+
*/
|
|
28
|
+
const getTypeSignature = (payload) => {
|
|
29
|
+
if (typeof payload.$ref === 'string') {
|
|
30
|
+
return `ref:${payload.$ref}`;
|
|
31
|
+
}
|
|
32
|
+
if (typeof payload.type === 'string') {
|
|
33
|
+
return String(payload.type);
|
|
34
|
+
}
|
|
35
|
+
if (Array.isArray(payload.oneOf)) {
|
|
36
|
+
return 'oneOf';
|
|
37
|
+
}
|
|
38
|
+
if (Array.isArray(payload.anyOf)) {
|
|
39
|
+
return 'anyOf';
|
|
40
|
+
}
|
|
41
|
+
if (Array.isArray(payload.allOf)) {
|
|
42
|
+
return 'allOf';
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
};
|
|
46
|
+
exports.getTypeSignature = getTypeSignature;
|
|
47
|
+
/**
|
|
48
|
+
* Приводит разные обозначения скалярных типов к общим (number/string/boolean).
|
|
49
|
+
* @param value строковая сигнатура типа
|
|
50
|
+
* @returns нормализованный скалярный тип или undefined
|
|
51
|
+
*/
|
|
52
|
+
const normalizeScalarType = (value) => {
|
|
53
|
+
if (!value)
|
|
54
|
+
return undefined;
|
|
55
|
+
const normalized = value.toLowerCase();
|
|
56
|
+
if (normalized === 'int' || normalized === 'integer')
|
|
57
|
+
return 'number';
|
|
58
|
+
if (normalized === 'float' || normalized === 'double')
|
|
59
|
+
return 'number';
|
|
60
|
+
if (normalized === 'string')
|
|
61
|
+
return 'string';
|
|
62
|
+
if (normalized === 'number')
|
|
63
|
+
return 'number';
|
|
64
|
+
if (normalized === 'boolean')
|
|
65
|
+
return 'boolean';
|
|
66
|
+
return undefined;
|
|
67
|
+
};
|
|
68
|
+
exports.normalizeScalarType = normalizeScalarType;
|
|
69
|
+
/**
|
|
70
|
+
* Извлекает и тримит описание свойства, если оно присутствует.
|
|
71
|
+
* @param payload объект описания свойства
|
|
72
|
+
* @returns описание или undefined
|
|
73
|
+
*/
|
|
74
|
+
const getDescription = (payload) => {
|
|
75
|
+
if (typeof payload.description === 'string') {
|
|
76
|
+
return payload.description.trim();
|
|
77
|
+
}
|
|
78
|
+
return undefined;
|
|
79
|
+
};
|
|
80
|
+
exports.getDescription = getDescription;
|
|
81
|
+
/**
|
|
82
|
+
* Пытается извлечь подробную информацию об изменении свойства схемы из записи diff.
|
|
83
|
+
* Возвращает null если запись не представляет изменение свойства.
|
|
84
|
+
* @param entry запись diff
|
|
85
|
+
* @returns объект PropertyChange или null
|
|
86
|
+
*/
|
|
87
|
+
const extractPropertyChange = (entry) => {
|
|
88
|
+
const segments = (0, jsonPath_1.parseJsonPath)(entry.path);
|
|
89
|
+
const propertiesIndex = segments.indexOf('properties');
|
|
90
|
+
if (propertiesIndex === -1 || propertiesIndex + 1 !== segments.length - 1) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
const schemaPath = segments.slice(0, propertiesIndex).join('.');
|
|
94
|
+
const schemaName = segments[propertiesIndex - 1] ?? '';
|
|
95
|
+
const propertyName = segments[propertiesIndex + 1];
|
|
96
|
+
if (!schemaName || !propertyName)
|
|
97
|
+
return null;
|
|
98
|
+
const payload = (entry.action === 'removed' ? entry.from : entry.to);
|
|
99
|
+
if (!payload || typeof payload !== 'object')
|
|
100
|
+
return null;
|
|
101
|
+
return {
|
|
102
|
+
schemaPath,
|
|
103
|
+
schemaName,
|
|
104
|
+
propertyName,
|
|
105
|
+
entry,
|
|
106
|
+
payload,
|
|
107
|
+
typeSignature: (0, exports.getTypeSignature)(payload),
|
|
108
|
+
description: (0, exports.getDescription)(payload),
|
|
109
|
+
scalarType: (0, exports.normalizeScalarType)((0, exports.getTypeSignature)(payload)),
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
exports.extractPropertyChange = extractPropertyChange;
|
|
113
|
+
/**
|
|
114
|
+
* Определяет, указывает ли путь записи на свойство в схеме (содержит 'properties').
|
|
115
|
+
* @param entry запись diff
|
|
116
|
+
* @returns true если путь относится к свойству схемы
|
|
117
|
+
*/
|
|
118
|
+
const isSchemaPropertyPath = (entry) => {
|
|
119
|
+
const segments = (0, jsonPath_1.parseJsonPath)(entry.path);
|
|
120
|
+
return segments.includes('properties');
|
|
121
|
+
};
|
|
122
|
+
exports.isSchemaPropertyPath = isSchemaPropertyPath;
|
|
123
|
+
/**
|
|
124
|
+
* Оценивает, могут ли два изменения (удаление и добавление) являться кандидатами на совпадение (rename).
|
|
125
|
+
* Сравнивает путь схемы и, при наличии, сигнатуры типов.
|
|
126
|
+
* @param removed информация об удалённом свойстве
|
|
127
|
+
* @param added информация о добавленном свойстве
|
|
128
|
+
* @returns true если кандидаты совместимы
|
|
129
|
+
*/
|
|
130
|
+
const isSimilarityCandidate = (removed, added) => {
|
|
131
|
+
if (removed.schemaPath !== added.schemaPath)
|
|
132
|
+
return false;
|
|
133
|
+
if (removed.typeSignature && added.typeSignature) {
|
|
134
|
+
return removed.typeSignature === added.typeSignature;
|
|
135
|
+
}
|
|
136
|
+
return true;
|
|
137
|
+
};
|
|
138
|
+
exports.isSimilarityCandidate = isSimilarityCandidate;
|
|
139
|
+
/**
|
|
140
|
+
* Вычисляет бонус к confidence на основе схожести описаний свойств.
|
|
141
|
+
* @param removed описание для удалённого свойства
|
|
142
|
+
* @param added описание для добавленного свойства
|
|
143
|
+
* @returns числовой бонус (0..0.05)
|
|
144
|
+
*/
|
|
145
|
+
const descriptionSimilarityBonus = (removed, added) => {
|
|
146
|
+
if (!removed || !added)
|
|
147
|
+
return 0;
|
|
148
|
+
const a = (0, exports.normalizeName)(removed);
|
|
149
|
+
const b = (0, exports.normalizeName)(added);
|
|
150
|
+
if (!a || !b)
|
|
151
|
+
return 0;
|
|
152
|
+
const distance = (0, leven_1.default)(a, b);
|
|
153
|
+
const ratio = distance / Math.max(a.length, b.length);
|
|
154
|
+
return ratio <= 0.4 ? 0.05 : 0;
|
|
155
|
+
};
|
|
156
|
+
exports.descriptionSimilarityBonus = descriptionSimilarityBonus;
|
|
157
|
+
/**
|
|
158
|
+
* Комбинирует факторы в итоговую confidence (0..1) для RENAME эвристики.
|
|
159
|
+
* @param nameRatio нормализованное расстояние имён
|
|
160
|
+
* @param sameType флаг совпадения сигнатур типов
|
|
161
|
+
* @param onlyCandidate флаг единственного кандидата
|
|
162
|
+
* @param descBonus бонус от схожести описаний
|
|
163
|
+
* @returns итоговое confidence
|
|
164
|
+
*/
|
|
165
|
+
const computeConfidence = (nameRatio, sameType, onlyCandidate, descBonus) => {
|
|
166
|
+
let confidence = 1 - nameRatio;
|
|
167
|
+
if (sameType)
|
|
168
|
+
confidence += 0.1;
|
|
169
|
+
if (onlyCandidate)
|
|
170
|
+
confidence += 0.05;
|
|
171
|
+
confidence += descBonus;
|
|
172
|
+
if (confidence > 1)
|
|
173
|
+
confidence = 1;
|
|
174
|
+
if (confidence < 0)
|
|
175
|
+
confidence = 0;
|
|
176
|
+
return Number(confidence.toFixed(3));
|
|
177
|
+
};
|
|
178
|
+
exports.computeConfidence = computeConfidence;
|
|
179
|
+
/**
|
|
180
|
+
* Собирает карту путей свойств → нормализованный скалярный тип из спецификации.
|
|
181
|
+
* @param spec спецификация OpenAPI
|
|
182
|
+
* @returns Map с json-path как ключом и скалярным типом как значением
|
|
183
|
+
*/
|
|
184
|
+
const collectPropertyScalarTypes = (spec) => {
|
|
185
|
+
const result = new Map();
|
|
186
|
+
if (!spec || typeof spec !== 'object')
|
|
187
|
+
return result;
|
|
188
|
+
const record = spec;
|
|
189
|
+
const schemas = (record.components && typeof record.components === 'object' ? record.components.schemas : undefined) ?? record.definitions;
|
|
190
|
+
if (!schemas || typeof schemas !== 'object')
|
|
191
|
+
return result;
|
|
192
|
+
for (const [schemaName, schemaValue] of Object.entries(schemas)) {
|
|
193
|
+
if (!schemaValue || typeof schemaValue !== 'object')
|
|
194
|
+
continue;
|
|
195
|
+
const schema = schemaValue;
|
|
196
|
+
const properties = schema.properties;
|
|
197
|
+
if (!properties || typeof properties !== 'object')
|
|
198
|
+
continue;
|
|
199
|
+
for (const [propertyName, propertyValue] of Object.entries(properties)) {
|
|
200
|
+
if (!propertyValue || typeof propertyValue !== 'object')
|
|
201
|
+
continue;
|
|
202
|
+
const property = propertyValue;
|
|
203
|
+
const typeSignature = (0, exports.getTypeSignature)(property);
|
|
204
|
+
const scalar = (0, exports.normalizeScalarType)(typeSignature);
|
|
205
|
+
if (!scalar)
|
|
206
|
+
continue;
|
|
207
|
+
const baseSegments = record.components ? ['components', 'schemas', schemaName] : ['definitions', schemaName];
|
|
208
|
+
const path = (0, jsonPath_1.toJsonPath)([...baseSegments, 'properties', propertyName]);
|
|
209
|
+
result.set(path, scalar);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return result;
|
|
213
|
+
};
|
|
214
|
+
exports.collectPropertyScalarTypes = collectPropertyScalarTypes;
|
|
215
|
+
/**
|
|
216
|
+
* Формирует список эвристических находок (miracles): переименования и коэрцирования типов.
|
|
217
|
+
* Сравнивает удалённые/добавленные свойства и изменения типов, добавляет записи с confidence.
|
|
218
|
+
* @param entries все собранные записи diff
|
|
219
|
+
* @param oldSpec нормализованная старая спецификация
|
|
220
|
+
* @param newSpec нормализованная новая спецификация
|
|
221
|
+
* @returns массив MiracleEntry
|
|
222
|
+
*/
|
|
223
|
+
const buildMiracles = (entries, oldSpec, newSpec) => {
|
|
224
|
+
const removedProps = [];
|
|
225
|
+
const addedProps = [];
|
|
226
|
+
const changedTypeProps = [];
|
|
227
|
+
for (const entry of entries) {
|
|
228
|
+
if (!(0, exports.isSchemaPropertyPath)(entry))
|
|
229
|
+
continue;
|
|
230
|
+
if (entry.action === 'removed' || entry.action === 'added') {
|
|
231
|
+
const change = (0, exports.extractPropertyChange)(entry);
|
|
232
|
+
if (!change)
|
|
233
|
+
continue;
|
|
234
|
+
if (entry.action === 'removed') {
|
|
235
|
+
removedProps.push(change);
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
addedProps.push(change);
|
|
239
|
+
}
|
|
240
|
+
continue;
|
|
241
|
+
}
|
|
242
|
+
if (entry.action === 'changed') {
|
|
243
|
+
const segments = (0, jsonPath_1.parseJsonPath)(entry.path);
|
|
244
|
+
if (segments[segments.length - 1] !== 'type')
|
|
245
|
+
continue;
|
|
246
|
+
const propertyPath = (0, jsonPath_1.toJsonPath)(segments.slice(0, -1));
|
|
247
|
+
const fromTypeRaw = typeof entry.from === 'string' ? entry.from : (0, exports.getTypeSignature)((entry.from ?? {}));
|
|
248
|
+
const toTypeRaw = typeof entry.to === 'string' ? entry.to : (0, exports.getTypeSignature)((entry.to ?? {}));
|
|
249
|
+
const fromType = (0, exports.normalizeScalarType)(fromTypeRaw);
|
|
250
|
+
const toType = (0, exports.normalizeScalarType)(toTypeRaw);
|
|
251
|
+
if (!fromType || !toType || fromType === toType)
|
|
252
|
+
continue;
|
|
253
|
+
changedTypeProps.push({
|
|
254
|
+
path: propertyPath,
|
|
255
|
+
fromType,
|
|
256
|
+
toType,
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
const miracles = [];
|
|
261
|
+
for (const removed of removedProps) {
|
|
262
|
+
const candidates = addedProps.filter(added => (0, exports.isSimilarityCandidate)(removed, added));
|
|
263
|
+
if (candidates.length === 0)
|
|
264
|
+
continue;
|
|
265
|
+
const removedName = (0, exports.normalizeName)(removed.propertyName);
|
|
266
|
+
if (!removedName)
|
|
267
|
+
continue;
|
|
268
|
+
let best = null;
|
|
269
|
+
for (const candidate of candidates) {
|
|
270
|
+
const addedName = (0, exports.normalizeName)(candidate.propertyName);
|
|
271
|
+
if (!addedName)
|
|
272
|
+
continue;
|
|
273
|
+
const distance = (0, leven_1.default)(removedName, addedName);
|
|
274
|
+
const ratio = distance / Math.max(removedName.length, addedName.length);
|
|
275
|
+
if (!best || ratio < best.ratio) {
|
|
276
|
+
best = { candidate, ratio };
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
if (!best)
|
|
280
|
+
continue;
|
|
281
|
+
if (best.ratio > 0.2)
|
|
282
|
+
continue;
|
|
283
|
+
const sameType = !!removed.typeSignature && !!best.candidate.typeSignature && removed.typeSignature === best.candidate.typeSignature;
|
|
284
|
+
const onlyCandidate = candidates.length === 1;
|
|
285
|
+
const descBonus = (0, exports.descriptionSimilarityBonus)(removed.description, best.candidate.description);
|
|
286
|
+
const confidence = (0, exports.computeConfidence)(best.ratio, sameType, onlyCandidate, descBonus);
|
|
287
|
+
miracles.push({
|
|
288
|
+
oldPath: removed.entry.path,
|
|
289
|
+
newPath: best.candidate.entry.path,
|
|
290
|
+
type: 'RENAME',
|
|
291
|
+
confidence,
|
|
292
|
+
status: 'auto-generated',
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
const typeCoercionPaths = new Set();
|
|
296
|
+
for (const change of changedTypeProps) {
|
|
297
|
+
typeCoercionPaths.add(change.path);
|
|
298
|
+
miracles.push({
|
|
299
|
+
oldPath: change.path,
|
|
300
|
+
newPath: change.path,
|
|
301
|
+
type: 'TYPE_COERCION',
|
|
302
|
+
confidence: 1,
|
|
303
|
+
status: 'auto-generated',
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
const oldTypes = (0, exports.collectPropertyScalarTypes)(oldSpec);
|
|
307
|
+
const newTypes = (0, exports.collectPropertyScalarTypes)(newSpec);
|
|
308
|
+
for (const [path, oldType] of oldTypes.entries()) {
|
|
309
|
+
const newType = newTypes.get(path);
|
|
310
|
+
if (!newType || newType === oldType)
|
|
311
|
+
continue;
|
|
312
|
+
if (typeCoercionPaths.has(path))
|
|
313
|
+
continue;
|
|
314
|
+
typeCoercionPaths.add(path);
|
|
315
|
+
miracles.push({
|
|
316
|
+
oldPath: path,
|
|
317
|
+
newPath: path,
|
|
318
|
+
type: 'TYPE_COERCION',
|
|
319
|
+
confidence: 1,
|
|
320
|
+
status: 'auto-generated',
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
return miracles;
|
|
324
|
+
};
|
|
325
|
+
exports.buildMiracles = buildMiracles;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginPaths.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/pluginPaths.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAInE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolvePluginPaths = resolvePluginPaths;
|
|
4
|
+
const convertArrayToObject_1 = require("../../common/utils/convertArrayToObject");
|
|
5
|
+
const loadConfigIfExists_1 = require("../../common/utils/loadConfigIfExists");
|
|
6
|
+
/**
|
|
7
|
+
* Reads plugin paths from openapi config for semantic diff hooks.
|
|
8
|
+
*/
|
|
9
|
+
function resolvePluginPaths(openapiConfig) {
|
|
10
|
+
const configData = (0, loadConfigIfExists_1.loadConfigIfExists)(openapiConfig);
|
|
11
|
+
const config = (0, convertArrayToObject_1.convertArrayToObject)(configData);
|
|
12
|
+
return Array.isArray(config.plugins) ? config.plugins.filter((item) => typeof item === 'string' && !!item.trim()) : [];
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writeReportToFile = exports.buildReport = void 0;
|
|
4
|
+
var buildLegacyReport_1 = require("./buildLegacyReport");
|
|
5
|
+
Object.defineProperty(exports, "buildReport", { enumerable: true, get: function () { return buildLegacyReport_1.buildLegacyReport; } });
|
|
6
|
+
var writeLegacyReport_1 = require("./writeLegacyReport");
|
|
7
|
+
Object.defineProperty(exports, "writeReportToFile", { enumerable: true, get: function () { return writeLegacyReport_1.writeLegacyReport; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semanticDiffContext.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/semanticDiffContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKhE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSemanticDiffContext = createSemanticDiffContext;
|
|
4
|
+
const pathHelpers_1 = require("../../common/utils/pathHelpers");
|
|
5
|
+
const Context_1 = require("../../core/Context");
|
|
6
|
+
const getOutputPaths_1 = require("../../core/utils/getOutputPaths");
|
|
7
|
+
const SEMANTIC_DIFF_TMP_OUTPUT = './test/generated/.semantic-diff-tmp';
|
|
8
|
+
/**
|
|
9
|
+
* Creates lightweight context for OpenAPI parsing in semantic diff mode.
|
|
10
|
+
*/
|
|
11
|
+
function createSemanticDiffContext(input) {
|
|
12
|
+
return new Context_1.Context({
|
|
13
|
+
input: (0, pathHelpers_1.resolveHelper)(process.cwd(), input),
|
|
14
|
+
output: (0, getOutputPaths_1.getOutputPaths)({ output: SEMANTIC_DIFF_TMP_OUTPUT }),
|
|
15
|
+
});
|
|
16
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { JsonValue } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Читает и парсит спецификацию из файла. Поддерживает JSON и YAML через SwaggerParser.
|
|
4
|
+
* @param specPath путь к файлу спецификации
|
|
5
|
+
* @returns распарсенная спецификация
|
|
6
|
+
*/
|
|
7
|
+
export declare const parseSpecFile: (specPath: string) => Promise<JsonValue>;
|
|
8
|
+
/**
|
|
9
|
+
* Парсит содержимое спецификации, переданное как строка. При YAML создаёт временный файл для парсинга.
|
|
10
|
+
* @param content строковое содержимое спецификации
|
|
11
|
+
* @param sourcePath исходный путь/идентификатор (используется для расширения временного файла)
|
|
12
|
+
* @returns распарсенная спецификация
|
|
13
|
+
*/
|
|
14
|
+
export declare const parseSpecContent: (content: string, sourcePath: string) => Promise<JsonValue>;
|
|
15
|
+
/**
|
|
16
|
+
* Извлекает содержимое файла спецификации из Git по ref и парсит его.
|
|
17
|
+
* @param ref git-реф (например, HEAD~1)
|
|
18
|
+
* @param specPath путь к спецификации в репозитории
|
|
19
|
+
* @returns распарсенная спецификация из git
|
|
20
|
+
*/
|
|
21
|
+
export declare const readSpecFromGit: (ref: string, specPath: string) => Promise<JsonValue>;
|
|
22
|
+
//# sourceMappingURL=specParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specParser.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/specParser.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,SAAS,CAgBvE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAU,SAAS,MAAM,EAAE,YAAY,MAAM,KAAG,OAAO,CAAC,SAAS,CAuB7F,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAU,KAAK,MAAM,EAAE,UAAU,MAAM,KAAG,OAAO,CAAC,SAAS,CAYtF,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.readSpecFromGit = exports.parseSpecContent = exports.parseSpecFile = void 0;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const os_1 = __importDefault(require("os"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
/**
|
|
12
|
+
* Читает и парсит спецификацию из файла. Поддерживает JSON и YAML через SwaggerParser.
|
|
13
|
+
* @param specPath путь к файлу спецификации
|
|
14
|
+
* @returns распарсенная спецификация
|
|
15
|
+
*/
|
|
16
|
+
const parseSpecFile = async (specPath) => {
|
|
17
|
+
const content = fs_1.default.readFileSync(specPath, 'utf-8');
|
|
18
|
+
const trimmed = content.trim();
|
|
19
|
+
if (!trimmed) {
|
|
20
|
+
throw new Error(`Specification file is empty: ${specPath}`);
|
|
21
|
+
}
|
|
22
|
+
if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
|
|
23
|
+
return JSON.parse(trimmed);
|
|
24
|
+
}
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
26
|
+
const SwaggerParser = require('@apidevtools/swagger-parser');
|
|
27
|
+
const parser = new SwaggerParser();
|
|
28
|
+
return parser.parse(specPath);
|
|
29
|
+
};
|
|
30
|
+
exports.parseSpecFile = parseSpecFile;
|
|
31
|
+
/**
|
|
32
|
+
* Парсит содержимое спецификации, переданное как строка. При YAML создаёт временный файл для парсинга.
|
|
33
|
+
* @param content строковое содержимое спецификации
|
|
34
|
+
* @param sourcePath исходный путь/идентификатор (используется для расширения временного файла)
|
|
35
|
+
* @returns распарсенная спецификация
|
|
36
|
+
*/
|
|
37
|
+
const parseSpecContent = async (content, sourcePath) => {
|
|
38
|
+
const trimmed = content.trim();
|
|
39
|
+
if (!trimmed) {
|
|
40
|
+
throw new Error(`Specification content is empty: ${sourcePath}`);
|
|
41
|
+
}
|
|
42
|
+
if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
|
|
43
|
+
return JSON.parse(trimmed);
|
|
44
|
+
}
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
46
|
+
const SwaggerParser = require('@apidevtools/swagger-parser');
|
|
47
|
+
const parser = new SwaggerParser();
|
|
48
|
+
const tmpDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'openapi-diff-'));
|
|
49
|
+
const ext = path_1.default.extname(sourcePath) || '.yaml';
|
|
50
|
+
const tmpFile = path_1.default.join(tmpDir, `spec${ext}`);
|
|
51
|
+
try {
|
|
52
|
+
fs_1.default.writeFileSync(tmpFile, content, 'utf-8');
|
|
53
|
+
return await parser.parse(tmpFile);
|
|
54
|
+
}
|
|
55
|
+
finally {
|
|
56
|
+
fs_1.default.rmSync(tmpDir, { recursive: true, force: true });
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
exports.parseSpecContent = parseSpecContent;
|
|
60
|
+
/**
|
|
61
|
+
* Извлекает содержимое файла спецификации из Git по ref и парсит его.
|
|
62
|
+
* @param ref git-реф (например, HEAD~1)
|
|
63
|
+
* @param specPath путь к спецификации в репозитории
|
|
64
|
+
* @returns распарсенная спецификация из git
|
|
65
|
+
*/
|
|
66
|
+
const readSpecFromGit = async (ref, specPath) => {
|
|
67
|
+
const relativePath = path_1.default.isAbsolute(specPath) ? path_1.default.relative(process.cwd(), specPath) : specPath;
|
|
68
|
+
const normalizedPath = path_1.default.normalize(relativePath);
|
|
69
|
+
const gitCommand = `git show ${ref}:${normalizedPath}`;
|
|
70
|
+
let content;
|
|
71
|
+
try {
|
|
72
|
+
content = (0, child_process_1.execSync)(gitCommand, { encoding: 'utf-8' });
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
const hint = `Failed to read '${specPath}' from git ref '${ref}'. Ensure you run this command in a git repository and the path exists at the specified ref.`;
|
|
76
|
+
throw new Error(`${hint} (${String(err)})`);
|
|
77
|
+
}
|
|
78
|
+
return (0, exports.parseSpecContent)(content, `${ref}:${normalizedPath}`);
|
|
79
|
+
};
|
|
80
|
+
exports.readSpecFromGit = readSpecFromGit;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export type JsonValue = unknown;
|
|
2
|
+
export type DiffAction = 'added' | 'removed' | 'changed';
|
|
3
|
+
export type DiffSeverity = 'breaking' | 'warning' | 'info';
|
|
4
|
+
export interface DiffEntry {
|
|
5
|
+
action: DiffAction;
|
|
6
|
+
path: string;
|
|
7
|
+
from?: JsonValue;
|
|
8
|
+
to?: JsonValue;
|
|
9
|
+
severity: DiffSeverity;
|
|
10
|
+
note?: string;
|
|
11
|
+
type?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface DiffStats {
|
|
14
|
+
totalChanges: number;
|
|
15
|
+
added: number;
|
|
16
|
+
removed: number;
|
|
17
|
+
changed: number;
|
|
18
|
+
ignored?: number;
|
|
19
|
+
stabilityScore?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface DiffReport {
|
|
22
|
+
version: string;
|
|
23
|
+
timestamp: string;
|
|
24
|
+
metadata: {
|
|
25
|
+
base: string;
|
|
26
|
+
target: string;
|
|
27
|
+
baseHash?: string;
|
|
28
|
+
targetHash?: string;
|
|
29
|
+
};
|
|
30
|
+
stats: DiffStats;
|
|
31
|
+
diff: {
|
|
32
|
+
breaking: DiffEntry[];
|
|
33
|
+
warnings: DiffEntry[];
|
|
34
|
+
info: DiffEntry[];
|
|
35
|
+
all: DiffEntry[];
|
|
36
|
+
};
|
|
37
|
+
miracles: MiracleEntry[];
|
|
38
|
+
}
|
|
39
|
+
export type MiracleType = 'RENAME' | 'TYPE_COERCION';
|
|
40
|
+
export type MiracleStatus = 'auto-generated' | 'confirmed';
|
|
41
|
+
export interface MiracleEntry {
|
|
42
|
+
oldPath: string;
|
|
43
|
+
newPath: string;
|
|
44
|
+
type: MiracleType;
|
|
45
|
+
confidence: number;
|
|
46
|
+
status: MiracleStatus;
|
|
47
|
+
}
|
|
48
|
+
export type IgnoreRule = {
|
|
49
|
+
path?: string;
|
|
50
|
+
pattern?: string;
|
|
51
|
+
reason?: string;
|
|
52
|
+
until?: string;
|
|
53
|
+
};
|
|
54
|
+
export type AnalyzeDiffResult = {
|
|
55
|
+
success: boolean;
|
|
56
|
+
reportPath?: string;
|
|
57
|
+
skipped?: boolean;
|
|
58
|
+
ignored?: number;
|
|
59
|
+
error?: string;
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC;AAEhC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEzD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE;QACF,QAAQ,EAAE,SAAS,EAAE,CAAC;QACtB,QAAQ,EAAE,SAAS,EAAE,CAAC;QACtB,IAAI,EAAE,SAAS,EAAE,CAAC;QAClB,GAAG,EAAE,SAAS,EAAE,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,eAAe,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,MAAM,UAAU,GAAG;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeLegacyReport.d.ts","sourceRoot":"","sources":["../../../src/cli/analyzeDiff/writeLegacyReport.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,GAAE,MAAyC,GAAG,IAAI,CASjH"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.writeLegacyReport = writeLegacyReport;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const Consts_1 = require("../../common/Consts");
|
|
10
|
+
const logLegacyReport_1 = require("./logLegacyReport");
|
|
11
|
+
/**
|
|
12
|
+
* Сохраняет legacy report на диск и логирует summary.
|
|
13
|
+
*/
|
|
14
|
+
function writeLegacyReport(report, reportPath = Consts_1.DEFAULT_ANALYZE_DIFF_REPORT_PATH) {
|
|
15
|
+
const reportDir = path_1.default.dirname(reportPath);
|
|
16
|
+
if (reportDir && reportDir !== '.' && !fs_1.default.existsSync(reportDir)) {
|
|
17
|
+
fs_1.default.mkdirSync(reportDir, { recursive: true });
|
|
18
|
+
}
|
|
19
|
+
fs_1.default.writeFileSync(reportPath, JSON.stringify(report, null, 2), 'utf-8');
|
|
20
|
+
(0, logLegacyReport_1.logLegacyReport)(report, reportPath);
|
|
21
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/checkAndUpdateConfig/checkConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"checkConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/checkAndUpdateConfig/checkConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAWzC;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDtE"}
|