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
|
@@ -0,0 +1,163 @@
|
|
|
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.expandOpenApiRefsForSemanticDiff = expandOpenApiRefsForSemanticDiff;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const pathHelpers_1 = require("../../common/utils/pathHelpers");
|
|
9
|
+
function isRecord(value) {
|
|
10
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
11
|
+
}
|
|
12
|
+
function isUrlLike(value) {
|
|
13
|
+
return /^[a-z][a-z\d+\-.]*:/i.test(value);
|
|
14
|
+
}
|
|
15
|
+
function normalizeSourceFile(sourceFile) {
|
|
16
|
+
if (!sourceFile || isUrlLike(sourceFile)) {
|
|
17
|
+
return sourceFile;
|
|
18
|
+
}
|
|
19
|
+
return (0, pathHelpers_1.normalizeHelper)(sourceFile);
|
|
20
|
+
}
|
|
21
|
+
function parseRef(ref) {
|
|
22
|
+
const fragmentIndex = ref.indexOf('#');
|
|
23
|
+
if (fragmentIndex === -1) {
|
|
24
|
+
return { file: ref || undefined };
|
|
25
|
+
}
|
|
26
|
+
const file = ref.slice(0, fragmentIndex);
|
|
27
|
+
const pointer = ref.slice(fragmentIndex);
|
|
28
|
+
return {
|
|
29
|
+
file: file || undefined,
|
|
30
|
+
pointer: pointer || '#',
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function normalizeRefFile(file, currentSourceFile) {
|
|
34
|
+
if (!file) {
|
|
35
|
+
return normalizeSourceFile(currentSourceFile);
|
|
36
|
+
}
|
|
37
|
+
if (isUrlLike(file)) {
|
|
38
|
+
return file;
|
|
39
|
+
}
|
|
40
|
+
if (path_1.default.isAbsolute(file)) {
|
|
41
|
+
return (0, pathHelpers_1.normalizeHelper)(file);
|
|
42
|
+
}
|
|
43
|
+
if (currentSourceFile && !isUrlLike(currentSourceFile)) {
|
|
44
|
+
return (0, pathHelpers_1.resolveHelper)(path_1.default.dirname(currentSourceFile), file);
|
|
45
|
+
}
|
|
46
|
+
return (0, pathHelpers_1.normalizeHelper)(file);
|
|
47
|
+
}
|
|
48
|
+
function createCanonicalRef(ref, currentSourceFile) {
|
|
49
|
+
const parsed = parseRef(ref);
|
|
50
|
+
const sourceFile = normalizeRefFile(parsed.file, currentSourceFile);
|
|
51
|
+
const pointer = parsed.pointer;
|
|
52
|
+
if (!sourceFile) {
|
|
53
|
+
return { canonicalRef: pointer ?? ref, pointer };
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
canonicalRef: `${sourceFile}${pointer ?? ''}`,
|
|
57
|
+
sourceFile,
|
|
58
|
+
pointer,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function decodeJsonPointerSegment(segment) {
|
|
62
|
+
return decodeURIComponent(segment).replace(/~1/g, '/').replace(/~0/g, '~');
|
|
63
|
+
}
|
|
64
|
+
function resolveJsonPointer(root, pointer) {
|
|
65
|
+
if (!pointer || pointer === '#') {
|
|
66
|
+
return root;
|
|
67
|
+
}
|
|
68
|
+
if (!pointer.startsWith('#/')) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
return pointer
|
|
72
|
+
.slice(2)
|
|
73
|
+
.split('/')
|
|
74
|
+
.map(decodeJsonPointerSegment)
|
|
75
|
+
.reduce((current, segment) => {
|
|
76
|
+
if (Array.isArray(current)) {
|
|
77
|
+
const index = Number(segment);
|
|
78
|
+
return Number.isInteger(index) ? current[index] : undefined;
|
|
79
|
+
}
|
|
80
|
+
if (isRecord(current)) {
|
|
81
|
+
return current[segment];
|
|
82
|
+
}
|
|
83
|
+
return undefined;
|
|
84
|
+
}, root);
|
|
85
|
+
}
|
|
86
|
+
function readRefFromResolver(refs, candidates) {
|
|
87
|
+
if (!refs) {
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
for (const candidate of candidates) {
|
|
91
|
+
try {
|
|
92
|
+
if (refs.exists && !refs.exists(candidate)) {
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
const value = refs.get(candidate);
|
|
96
|
+
if (value !== undefined) {
|
|
97
|
+
return value;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
function resolveRef(root, ref, currentSourceFile, options) {
|
|
107
|
+
const normalized = createCanonicalRef(ref, currentSourceFile);
|
|
108
|
+
const candidates = [normalized.canonicalRef, ref];
|
|
109
|
+
const resolvedFromRefs = readRefFromResolver(options.refs, [...new Set(candidates)]);
|
|
110
|
+
if (resolvedFromRefs !== undefined) {
|
|
111
|
+
return {
|
|
112
|
+
canonicalRef: normalized.canonicalRef,
|
|
113
|
+
sourceFile: normalized.sourceFile,
|
|
114
|
+
value: resolvedFromRefs,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
const rootSourceFile = normalizeSourceFile(options.sourceFile);
|
|
118
|
+
const isLocalRootRef = !normalized.sourceFile || normalized.sourceFile === rootSourceFile;
|
|
119
|
+
if (isLocalRootRef) {
|
|
120
|
+
const resolvedFromRoot = resolveJsonPointer(root, normalized.pointer);
|
|
121
|
+
if (resolvedFromRoot !== undefined) {
|
|
122
|
+
return {
|
|
123
|
+
canonicalRef: normalized.canonicalRef,
|
|
124
|
+
sourceFile: rootSourceFile,
|
|
125
|
+
value: resolvedFromRoot,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
function expandNode(root, node, currentSourceFile, options, refStack) {
|
|
132
|
+
if (Array.isArray(node)) {
|
|
133
|
+
return node.map(item => expandNode(root, item, currentSourceFile, options, refStack));
|
|
134
|
+
}
|
|
135
|
+
if (!isRecord(node)) {
|
|
136
|
+
return node;
|
|
137
|
+
}
|
|
138
|
+
const ref = node.$ref;
|
|
139
|
+
if (typeof ref === 'string') {
|
|
140
|
+
const target = resolveRef(root, ref, currentSourceFile, options);
|
|
141
|
+
if (!target) {
|
|
142
|
+
return { ...node };
|
|
143
|
+
}
|
|
144
|
+
if (refStack.has(target.canonicalRef)) {
|
|
145
|
+
return { $ref: ref };
|
|
146
|
+
}
|
|
147
|
+
const nextStack = new Set(refStack);
|
|
148
|
+
nextStack.add(target.canonicalRef);
|
|
149
|
+
return expandNode(root, target.value, target.sourceFile ?? currentSourceFile, options, nextStack);
|
|
150
|
+
}
|
|
151
|
+
return Object.fromEntries(Object.entries(node).map(([key, value]) => [key, expandNode(root, value, currentSourceFile, options, refStack)]));
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Строит клон спецификации с развёрнутыми refs для семантического сравнения.
|
|
155
|
+
* Циклы и неразрешённые refs остаются стабильными `$ref`-объектами.
|
|
156
|
+
* @param root корневой узел OpenAPI-документа
|
|
157
|
+
* @param [options] опции резолва ссылок
|
|
158
|
+
* @returns клон с развёрнутыми refs
|
|
159
|
+
*/
|
|
160
|
+
function expandOpenApiRefsForSemanticDiff(root, options = {}) {
|
|
161
|
+
const sourceFile = normalizeSourceFile(options.sourceFile);
|
|
162
|
+
return expandNode(root, root, sourceFile, options, new Set());
|
|
163
|
+
}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { Context } from '../Context';
|
|
2
2
|
import { CommonOpenApi } from '../types/shared/CommonOpenApi.model';
|
|
3
|
+
/**
|
|
4
|
+
* Загружает и резолвит OpenAPI-спецификацию для генерации клиента.
|
|
5
|
+
* @param context контекст генерации
|
|
6
|
+
* @param input путь к файлу спецификации
|
|
7
|
+
* @returns загруженная OpenAPI-спецификация
|
|
8
|
+
*/
|
|
3
9
|
export declare function getOpenApiSpec(context: Context, input: string): Promise<CommonOpenApi>;
|
|
4
10
|
//# sourceMappingURL=getOpenApiSpec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOpenApiSpec.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getOpenApiSpec.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAyB5F"}
|
|
1
|
+
{"version":3,"file":"getOpenApiSpec.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getOpenApiSpec.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAyB5F"}
|
|
@@ -7,6 +7,12 @@ exports.getOpenApiSpec = getOpenApiSpec;
|
|
|
7
7
|
const swagger_parser_1 = __importDefault(require("@apidevtools/swagger-parser"));
|
|
8
8
|
const fileSystemHelpers_1 = require("../../common/utils/fileSystemHelpers");
|
|
9
9
|
const pathHelpers_1 = require("../../common/utils/pathHelpers");
|
|
10
|
+
/**
|
|
11
|
+
* Загружает и резолвит OpenAPI-спецификацию для генерации клиента.
|
|
12
|
+
* @param context контекст генерации
|
|
13
|
+
* @param input путь к файлу спецификации
|
|
14
|
+
* @returns загруженная OpenAPI-спецификация
|
|
15
|
+
*/
|
|
10
16
|
async function getOpenApiSpec(context, input) {
|
|
11
17
|
const absoluteInput = (0, pathHelpers_1.resolveHelper)(process.cwd(), input);
|
|
12
18
|
if (!input) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OperationError } from
|
|
2
|
-
import { OperationResponse } from
|
|
1
|
+
import { OperationError } from '../types/shared/OperationError.model';
|
|
2
|
+
import { OperationResponse } from '../types/shared/OperationResponse.model';
|
|
3
3
|
export declare function getOperationErrors(operationResponses: OperationResponse[]): OperationError[];
|
|
4
4
|
//# sourceMappingURL=getOperationErrors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getOperationErrors.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getOperationErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"getOperationErrors.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getOperationErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAG5E,wBAAgB,kBAAkB,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,cAAc,EAAE,CAS5F"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { OperationResponse } from
|
|
1
|
+
import { OperationResponse } from '../types/shared/OperationResponse.model';
|
|
2
2
|
export declare function getOperationResults(operationResponses: OperationResponse[]): OperationResponse[];
|
|
3
3
|
//# sourceMappingURL=getOperationResults.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPropertyGroupSimple.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getPropertyGroupSimple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"getPropertyGroupSimple.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getPropertyGroupSimple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,GAAG,mBAAmB,CAErE"}
|
|
@@ -3,7 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getPropertyGroupSimple = getPropertyGroupSimple;
|
|
4
4
|
// Auxiliary function for defining a property group
|
|
5
5
|
function getPropertyGroupSimple(prop) {
|
|
6
|
-
return prop.isRequired && prop.default === undefined
|
|
7
|
-
? 'requires-value'
|
|
8
|
-
: 'other';
|
|
6
|
+
return prop.isRequired && prop.default === undefined ? 'requires-value' : 'other';
|
|
9
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isSubdirectory.d.ts","sourceRoot":"","sources":["../../../src/core/utils/isSubdirectory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"isSubdirectory.d.ts","sourceRoot":"","sources":["../../../src/core/utils/isSubdirectory.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,WAK3D"}
|
|
@@ -1,39 +1,20 @@
|
|
|
1
1
|
import type { Logger } from '../../common/Logger';
|
|
2
|
-
import type
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
action: DiffInfo['action'];
|
|
6
|
-
}
|
|
7
|
-
export interface DiffReport {
|
|
8
|
-
version?: string;
|
|
9
|
-
timestamp?: string;
|
|
10
|
-
metadata?: {
|
|
11
|
-
base?: string;
|
|
12
|
-
target?: string;
|
|
13
|
-
baseHash?: string;
|
|
14
|
-
targetHash?: string;
|
|
15
|
-
};
|
|
16
|
-
stats?: {
|
|
17
|
-
totalChanges?: number;
|
|
18
|
-
added?: number;
|
|
19
|
-
removed?: number;
|
|
20
|
-
changed?: number;
|
|
21
|
-
ignored?: number;
|
|
22
|
-
};
|
|
23
|
-
diff?: {
|
|
24
|
-
breaking?: DiffReportEntry[];
|
|
25
|
-
warnings?: DiffReportEntry[];
|
|
26
|
-
info?: DiffReportEntry[];
|
|
27
|
-
all?: DiffReportEntry[];
|
|
28
|
-
};
|
|
29
|
-
miracles?: MiracleEntry[];
|
|
30
|
-
}
|
|
2
|
+
import { type DiffReport, type DiffReportEntry } from '../types/DiffReport.model';
|
|
3
|
+
/** Реэкспорт типов legacy diff-отчёта. */
|
|
4
|
+
export type { DiffReport, DiffReportEntry };
|
|
31
5
|
type LoadDiffReportParams = {
|
|
32
6
|
useHistory?: boolean;
|
|
33
7
|
diffReport?: string;
|
|
34
8
|
inputPath?: string;
|
|
35
9
|
logger: Logger;
|
|
36
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* Загружает diff-отчёт с диска и приводит его к legacy-формату для генерации.
|
|
13
|
+
* @param useHistory признак использования истории изменений; отчёт загружается только при true
|
|
14
|
+
* @param [diffReport] путь к файлу отчёта
|
|
15
|
+
* @param [inputPath] путь к входной спецификации для проверки актуальности отчёта
|
|
16
|
+
* @param logger логгер для диагностических сообщений
|
|
17
|
+
* @returns legacy diff-отчёт или null, если отчёт отсутствует или устарел
|
|
18
|
+
*/
|
|
37
19
|
export declare const loadDiffReport: ({ useHistory, diffReport, inputPath, logger }: LoadDiffReportParams) => DiffReport | null;
|
|
38
|
-
export {};
|
|
39
20
|
//# sourceMappingURL=loadDiffReport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadDiffReport.d.ts","sourceRoot":"","sources":["../../../src/core/utils/loadDiffReport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"loadDiffReport.d.ts","sourceRoot":"","sources":["../../../src/core/utils/loadDiffReport.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAA8D,MAAM,2BAA2B,CAAC;AAG9I,0CAA0C;AAC1C,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;AAE5C,KAAK,oBAAoB,GAAG;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAqDF;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAI,+CAA+C,oBAAoB,KAAG,UAAU,GAAG,IAuDjH,CAAC"}
|
|
@@ -6,6 +6,43 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.loadDiffReport = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const Consts_1 = require("../../common/Consts");
|
|
9
|
+
const LoggerMessages_1 = require("../../common/LoggerMessages");
|
|
10
|
+
const analyzeOpenApiDiff_1 = require("../semanticDiff/analyzeOpenApiDiff");
|
|
11
|
+
const DiffReport_model_1 = require("../types/DiffReport.model");
|
|
12
|
+
const adapters_1 = require("./adapters");
|
|
13
|
+
const isSemanticDiffReport = (value) => {
|
|
14
|
+
if (!value || typeof value !== 'object') {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
const report = value;
|
|
18
|
+
return report.schemaVersion === analyzeOpenApiDiff_1.SEMANTIC_DIFF_REPORT_SCHEMA_VERSION && Array.isArray(report.changes);
|
|
19
|
+
};
|
|
20
|
+
const isUnifiedDiffReport = (value) => {
|
|
21
|
+
if (!value || typeof value !== 'object') {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const report = value;
|
|
25
|
+
return report.schemaVersion === DiffReport_model_1.UNIFIED_DIFF_REPORT_SCHEMA_VERSION && !!report.structural && Array.isArray(report.structural.diff?.all);
|
|
26
|
+
};
|
|
27
|
+
const convertSemanticReportToLegacy = (report) => {
|
|
28
|
+
const structural = (0, adapters_1.adaptSemanticToStructural)(report);
|
|
29
|
+
return {
|
|
30
|
+
version: report.schemaVersion,
|
|
31
|
+
diff: structural.diff,
|
|
32
|
+
miracles: structural.miracles,
|
|
33
|
+
stats: structural.stats,
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
const convertUnifiedReportToLegacy = (report) => {
|
|
37
|
+
return {
|
|
38
|
+
version: report.schemaVersion,
|
|
39
|
+
timestamp: report.timestamp,
|
|
40
|
+
metadata: report.metadata,
|
|
41
|
+
diff: report.structural.diff,
|
|
42
|
+
miracles: report.structural.miracles,
|
|
43
|
+
stats: report.structural.stats,
|
|
44
|
+
};
|
|
45
|
+
};
|
|
9
46
|
const isFreshEnough = (reportPath, inputPath) => {
|
|
10
47
|
if (!inputPath)
|
|
11
48
|
return true;
|
|
@@ -18,33 +55,62 @@ const isFreshEnough = (reportPath, inputPath) => {
|
|
|
18
55
|
return true;
|
|
19
56
|
}
|
|
20
57
|
};
|
|
58
|
+
/**
|
|
59
|
+
* Загружает diff-отчёт с диска и приводит его к legacy-формату для генерации.
|
|
60
|
+
* @param useHistory признак использования истории изменений; отчёт загружается только при true
|
|
61
|
+
* @param [diffReport] путь к файлу отчёта
|
|
62
|
+
* @param [inputPath] путь к входной спецификации для проверки актуальности отчёта
|
|
63
|
+
* @param logger логгер для диагностических сообщений
|
|
64
|
+
* @returns legacy diff-отчёт или null, если отчёт отсутствует или устарел
|
|
65
|
+
*/
|
|
21
66
|
const loadDiffReport = ({ useHistory, diffReport, inputPath, logger }) => {
|
|
22
|
-
|
|
23
|
-
if (!shouldLoad)
|
|
67
|
+
if (!useHistory)
|
|
24
68
|
return null;
|
|
25
69
|
const reportPath = diffReport || Consts_1.DEFAULT_ANALYZE_DIFF_REPORT_PATH;
|
|
26
70
|
if (!fs_1.default.existsSync(reportPath)) {
|
|
27
|
-
logger.info(
|
|
71
|
+
logger.info(LoggerMessages_1.LOGGER_MESSAGES.DIFF_REPORT.NOT_FOUND(reportPath));
|
|
28
72
|
return null;
|
|
29
73
|
}
|
|
30
74
|
if (!isFreshEnough(reportPath, inputPath)) {
|
|
31
|
-
logger.warn(
|
|
75
|
+
logger.warn(LoggerMessages_1.LOGGER_MESSAGES.DIFF_REPORT.STALE(reportPath));
|
|
32
76
|
return null;
|
|
33
77
|
}
|
|
34
78
|
try {
|
|
35
79
|
const raw = fs_1.default.readFileSync(reportPath, 'utf-8');
|
|
36
80
|
const parsed = JSON.parse(raw);
|
|
37
|
-
|
|
38
|
-
|
|
81
|
+
if (isUnifiedDiffReport(parsed)) {
|
|
82
|
+
const legacyReport = convertUnifiedReportToLegacy(parsed);
|
|
83
|
+
const hasDiffEntries = !!legacyReport.diff?.all?.length;
|
|
84
|
+
const hasMiracles = !!legacyReport.miracles?.length;
|
|
85
|
+
if (!hasDiffEntries && !hasMiracles) {
|
|
86
|
+
logger.info(LoggerMessages_1.LOGGER_MESSAGES.DIFF_REPORT.EMPTY(reportPath));
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
logger.info(LoggerMessages_1.LOGGER_MESSAGES.DIFF_REPORT.LOADED(reportPath, legacyReport.diff?.all?.length ?? 0, legacyReport.miracles?.length ?? 0));
|
|
90
|
+
return legacyReport;
|
|
91
|
+
}
|
|
92
|
+
if (isSemanticDiffReport(parsed)) {
|
|
93
|
+
if (!parsed.changes.length) {
|
|
94
|
+
logger.info(LoggerMessages_1.LOGGER_MESSAGES.DIFF_REPORT.EMPTY(reportPath));
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
const legacyReport = convertSemanticReportToLegacy(parsed);
|
|
98
|
+
logger.info(LoggerMessages_1.LOGGER_MESSAGES.DIFF_REPORT.LOADED(reportPath, legacyReport.diff?.all?.length ?? 0, legacyReport.miracles?.length ?? 0));
|
|
99
|
+
return legacyReport;
|
|
100
|
+
}
|
|
101
|
+
const legacyReport = parsed;
|
|
102
|
+
const hasDiffEntries = !!legacyReport?.diff?.all?.length;
|
|
103
|
+
const hasMiracles = !!legacyReport?.miracles?.length;
|
|
39
104
|
if (!hasDiffEntries && !hasMiracles) {
|
|
40
|
-
logger.info(
|
|
105
|
+
logger.info(LoggerMessages_1.LOGGER_MESSAGES.DIFF_REPORT.EMPTY(reportPath));
|
|
41
106
|
return null;
|
|
42
107
|
}
|
|
43
|
-
|
|
108
|
+
logger.info(LoggerMessages_1.LOGGER_MESSAGES.DIFF_REPORT.LOADED(reportPath, legacyReport.diff?.all?.length ?? 0, legacyReport.miracles?.length ?? 0));
|
|
109
|
+
return legacyReport;
|
|
44
110
|
}
|
|
45
111
|
catch (error) {
|
|
46
112
|
const message = error instanceof Error ? error.message : String(error);
|
|
47
|
-
logger.warn(
|
|
113
|
+
logger.warn(LoggerMessages_1.LOGGER_MESSAGES.DIFF_REPORT.READ_FAILED(reportPath, message));
|
|
48
114
|
return null;
|
|
49
115
|
}
|
|
50
116
|
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CommonOpenApi } from '../types/shared/CommonOpenApi.model';
|
|
2
|
+
/**
|
|
3
|
+
* Загружает OpenAPI-файл для семантического diff без полного dereference.
|
|
4
|
+
* @param input путь к файлу спецификации
|
|
5
|
+
* @returns спецификация с развёрнутыми refs для семантического сравнения
|
|
6
|
+
*/
|
|
7
|
+
export declare function loadSemanticOpenApiSpec(input: string): Promise<CommonOpenApi>;
|
|
8
|
+
/**
|
|
9
|
+
* Разворачивает уже загруженный OpenAPI-объект для семантического diff.
|
|
10
|
+
* @param spec загруженная спецификация
|
|
11
|
+
* @param [sourceFile] исходный путь к файлу для резолва внешних refs
|
|
12
|
+
* @returns спецификация с развёрнутыми refs для семантического сравнения
|
|
13
|
+
*/
|
|
14
|
+
export declare function loadSemanticOpenApiObject(spec: unknown, sourceFile?: string): Promise<CommonOpenApi>;
|
|
15
|
+
//# sourceMappingURL=loadSemanticOpenApiSpec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadSemanticOpenApiSpec.d.ts","sourceRoot":"","sources":["../../../src/core/utils/loadSemanticOpenApiSpec.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAqBpE;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAqBnF;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAW1G"}
|
|
@@ -0,0 +1,61 @@
|
|
|
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.loadSemanticOpenApiSpec = loadSemanticOpenApiSpec;
|
|
7
|
+
exports.loadSemanticOpenApiObject = loadSemanticOpenApiObject;
|
|
8
|
+
const swagger_parser_1 = __importDefault(require("@apidevtools/swagger-parser"));
|
|
9
|
+
const fileSystemHelpers_1 = require("../../common/utils/fileSystemHelpers");
|
|
10
|
+
const pathHelpers_1 = require("../../common/utils/pathHelpers");
|
|
11
|
+
const expandOpenApiRefsForSemanticDiff_1 = require("./expandOpenApiRefsForSemanticDiff");
|
|
12
|
+
function createSwaggerRefsResolver(refs) {
|
|
13
|
+
return {
|
|
14
|
+
exists: ref => refs.exists(ref),
|
|
15
|
+
get: ref => refs.get(ref),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function assertOpenApiObject(spec, source) {
|
|
19
|
+
if (!spec || typeof spec !== 'object' || Array.isArray(spec)) {
|
|
20
|
+
throw new Error(`Invalid OpenAPI schema at ${source}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Загружает OpenAPI-файл для семантического diff без полного dereference.
|
|
25
|
+
* @param input путь к файлу спецификации
|
|
26
|
+
* @returns спецификация с развёрнутыми refs для семантического сравнения
|
|
27
|
+
*/
|
|
28
|
+
async function loadSemanticOpenApiSpec(input) {
|
|
29
|
+
const absoluteInput = (0, pathHelpers_1.resolveHelper)(process.cwd(), input);
|
|
30
|
+
if (!input) {
|
|
31
|
+
throw new Error(`OpenAPI spec path is empty`);
|
|
32
|
+
}
|
|
33
|
+
const exists = await fileSystemHelpers_1.fileSystemHelpers.exists(absoluteInput);
|
|
34
|
+
if (!exists) {
|
|
35
|
+
throw new Error(`OpenAPI spec not found: ${absoluteInput}`);
|
|
36
|
+
}
|
|
37
|
+
const parser = new swagger_parser_1.default();
|
|
38
|
+
const resolved = (await parser.resolve(absoluteInput));
|
|
39
|
+
const raw = resolved.get(absoluteInput);
|
|
40
|
+
assertOpenApiObject(raw, absoluteInput);
|
|
41
|
+
return (0, expandOpenApiRefsForSemanticDiff_1.expandOpenApiRefsForSemanticDiff)(raw, {
|
|
42
|
+
refs: createSwaggerRefsResolver(resolved),
|
|
43
|
+
sourceFile: absoluteInput,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Разворачивает уже загруженный OpenAPI-объект для семантического diff.
|
|
48
|
+
* @param spec загруженная спецификация
|
|
49
|
+
* @param [sourceFile] исходный путь к файлу для резолва внешних refs
|
|
50
|
+
* @returns спецификация с развёрнутыми refs для семантического сравнения
|
|
51
|
+
*/
|
|
52
|
+
async function loadSemanticOpenApiObject(spec, sourceFile) {
|
|
53
|
+
assertOpenApiObject(spec, sourceFile ?? 'in-memory OpenAPI object');
|
|
54
|
+
const parser = new swagger_parser_1.default();
|
|
55
|
+
const resolved = (await parser.resolve(spec));
|
|
56
|
+
const absoluteSourceFile = sourceFile ? (0, pathHelpers_1.resolveHelper)(process.cwd(), sourceFile) : undefined;
|
|
57
|
+
return (0, expandOpenApiRefsForSemanticDiff_1.expandOpenApiRefsForSemanticDiff)(spec, {
|
|
58
|
+
refs: createSwaggerRefsResolver(resolved),
|
|
59
|
+
sourceFile: absoluteSourceFile,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import type { Model } from '../types/shared/Model.model';
|
|
2
|
+
type AliasAssignable = {
|
|
3
|
+
name: string;
|
|
4
|
+
alias: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Назначает различающие алиасы, когда несколько элементов имеют одно имя.
|
|
8
|
+
* Первое вхождение сохраняет имя без алиаса; следующие получают $2, $3 и т.д.
|
|
9
|
+
* @param items массив элементов с полями name и alias
|
|
10
|
+
* @returns тот же массив с обновлёнными алиасами
|
|
11
|
+
*/
|
|
12
|
+
export declare const assignDuplicateAliases: <T extends AliasAssignable>(items: T[]) => T[];
|
|
2
13
|
/**
|
|
3
14
|
* Assigns alias to models with the same name.
|
|
4
|
-
* Modifies objects
|
|
5
|
-
*
|
|
6
|
-
* Example: if there are two models with name="Pet", the following will be assigned:
|
|
7
|
-
* - first: alias="Pet$1"
|
|
8
|
-
* - second: alias="Pet$2"
|
|
15
|
+
* Modifies objects in-place and returns the same array.
|
|
9
16
|
*
|
|
10
17
|
* @param models - an array of models sorted by name
|
|
11
18
|
* @returns the same array of models (modified)
|
|
@@ -25,4 +32,5 @@ export declare function setDuplicateModelAliases(models: Model[]): Model[];
|
|
|
25
32
|
* @returns the same array of models (modified)
|
|
26
33
|
*/
|
|
27
34
|
export declare function resolveModelImports(models: Model[], outputModelsDir: string): Model[];
|
|
35
|
+
export {};
|
|
28
36
|
//# sourceMappingURL=modelHelpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelHelpers.d.ts","sourceRoot":"","sources":["../../../src/core/utils/modelHelpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"modelHelpers.d.ts","sourceRoot":"","sources":["../../../src/core/utils/modelHelpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,KAAK,eAAe,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,eAAe,EAAE,OAAO,CAAC,EAAE,KAAG,CAAC,EAoB/E,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAEjE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,KAAK,EAAE,CAyErF"}
|
|
@@ -3,40 +3,45 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.assignDuplicateAliases = void 0;
|
|
6
7
|
exports.setDuplicateModelAliases = setDuplicateModelAliases;
|
|
7
8
|
exports.resolveModelImports = resolveModelImports;
|
|
8
9
|
const path_1 = __importDefault(require("path"));
|
|
9
10
|
const pathHelpers_1 = require("../../common/utils/pathHelpers");
|
|
11
|
+
/**
|
|
12
|
+
* Назначает различающие алиасы, когда несколько элементов имеют одно имя.
|
|
13
|
+
* Первое вхождение сохраняет имя без алиаса; следующие получают $2, $3 и т.д.
|
|
14
|
+
* @param items массив элементов с полями name и alias
|
|
15
|
+
* @returns тот же массив с обновлёнными алиасами
|
|
16
|
+
*/
|
|
17
|
+
const assignDuplicateAliases = (items) => {
|
|
18
|
+
const nameCounts = new Map();
|
|
19
|
+
items.forEach(item => {
|
|
20
|
+
nameCounts.set(item.name, (nameCounts.get(item.name) ?? 0) + 1);
|
|
21
|
+
});
|
|
22
|
+
const nameIndex = new Map();
|
|
23
|
+
items.forEach(item => {
|
|
24
|
+
const count = nameCounts.get(item.name) ?? 1;
|
|
25
|
+
if (count <= 1) {
|
|
26
|
+
item.alias = '';
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const index = (nameIndex.get(item.name) ?? 0) + 1;
|
|
30
|
+
nameIndex.set(item.name, index);
|
|
31
|
+
item.alias = index === 1 ? '' : `${item.name}$${index}`;
|
|
32
|
+
});
|
|
33
|
+
return items;
|
|
34
|
+
};
|
|
35
|
+
exports.assignDuplicateAliases = assignDuplicateAliases;
|
|
10
36
|
/**
|
|
11
37
|
* Assigns alias to models with the same name.
|
|
12
|
-
* Modifies objects
|
|
13
|
-
*
|
|
14
|
-
* Example: if there are two models with name="Pet", the following will be assigned:
|
|
15
|
-
* - first: alias="Pet$1"
|
|
16
|
-
* - second: alias="Pet$2"
|
|
38
|
+
* Modifies objects in-place and returns the same array.
|
|
17
39
|
*
|
|
18
40
|
* @param models - an array of models sorted by name
|
|
19
41
|
* @returns the same array of models (modified)
|
|
20
42
|
*/
|
|
21
43
|
function setDuplicateModelAliases(models) {
|
|
22
|
-
|
|
23
|
-
let index = 1;
|
|
24
|
-
models.forEach(model => {
|
|
25
|
-
if (previous && previous.name === model.name) {
|
|
26
|
-
if (index === 1) {
|
|
27
|
-
previous.alias = `${model.name}$${index}`;
|
|
28
|
-
index++;
|
|
29
|
-
}
|
|
30
|
-
model.alias = `${model.name}$${index}`;
|
|
31
|
-
index++;
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
model.alias = '';
|
|
35
|
-
index = 1;
|
|
36
|
-
}
|
|
37
|
-
previous = model;
|
|
38
|
-
});
|
|
39
|
-
return models;
|
|
44
|
+
return (0, exports.assignDuplicateAliases)(models);
|
|
40
45
|
}
|
|
41
46
|
/**
|
|
42
47
|
* Adjusts the imports fields of the models to relative paths and correct aliases,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeString.d.ts","sourceRoot":"","sources":["../../../src/core/utils/normalizeString.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"normalizeString.d.ts","sourceRoot":"","sources":["../../../src/core/utils/normalizeString.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAMzE"}
|
|
@@ -6,9 +6,5 @@ function normalizeString(value) {
|
|
|
6
6
|
if (!value) {
|
|
7
7
|
return value;
|
|
8
8
|
}
|
|
9
|
-
return value
|
|
10
|
-
.replace(Consts_1.REGEX_BACKSLASH, '/')
|
|
11
|
-
.replace(Consts_1.REGEX_MULTIPLE_SLASHES, '/')
|
|
12
|
-
.replace(Consts_1.REGEX_DOT_SLASH, '/')
|
|
13
|
-
.replace(Consts_1.REGEX_LEADING_DOT_SLASH, './');
|
|
9
|
+
return value.replace(Consts_1.REGEX_BACKSLASH, '/').replace(Consts_1.REGEX_MULTIPLE_SLASHES, '/').replace(Consts_1.REGEX_DOT_SLASH, '/').replace(Consts_1.REGEX_LEADING_DOT_SLASH, './');
|
|
14
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postProcessServiceImports.d.ts","sourceRoot":"","sources":["../../../src/core/utils/postProcessServiceImports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAI7D;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"postProcessServiceImports.d.ts","sourceRoot":"","sources":["../../../src/core/utils/postProcessServiceImports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAI7D;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAEpE"}
|