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,35 @@
|
|
|
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
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
|
+
const node_test_1 = require("node:test");
|
|
8
|
+
const Consts_1 = require("../../../../common/Consts");
|
|
9
|
+
const HttpClient_enum_1 = require("../../../../core/types/enums/HttpClient.enum");
|
|
10
|
+
const removeDefaultConfigValues_1 = require("../removeDefaultConfigValues");
|
|
11
|
+
(0, node_test_1.describe)('@unit: removeDefaultConfigValues', () => {
|
|
12
|
+
(0, node_test_1.test)('removes keys that match COMMON_DEFAULT_OPTIONS_VALUES', () => {
|
|
13
|
+
const cleaned = (0, removeDefaultConfigValues_1.removeDefaultConfigValues)({
|
|
14
|
+
input: './spec.json',
|
|
15
|
+
output: './generated',
|
|
16
|
+
httpClient: Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.httpClient,
|
|
17
|
+
sortByRequired: Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.sortByRequired,
|
|
18
|
+
});
|
|
19
|
+
node_assert_1.default.deepStrictEqual(cleaned, {
|
|
20
|
+
input: './spec.json',
|
|
21
|
+
output: './generated',
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
(0, node_test_1.test)('keeps custom values that differ from defaults', () => {
|
|
25
|
+
const cleaned = (0, removeDefaultConfigValues_1.removeDefaultConfigValues)({
|
|
26
|
+
input: './spec.json',
|
|
27
|
+
output: './generated',
|
|
28
|
+
httpClient: HttpClient_enum_1.HttpClient.AXIOS,
|
|
29
|
+
interfacePrefix: 'Api',
|
|
30
|
+
});
|
|
31
|
+
node_assert_1.default.strictEqual(cleaned.httpClient, HttpClient_enum_1.HttpClient.AXIOS);
|
|
32
|
+
node_assert_1.default.strictEqual(cleaned.interfacePrefix, 'Api');
|
|
33
|
+
node_assert_1.default.strictEqual(cleaned.input, './spec.json');
|
|
34
|
+
});
|
|
35
|
+
});
|
package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateAndMigrateConfigData.test.d.ts","sourceRoot":"","sources":["../../../../../src/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,59 @@
|
|
|
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
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
|
+
const node_test_1 = require("node:test");
|
|
8
|
+
const Consts_1 = require("../../../../common/Consts");
|
|
9
|
+
const HttpClient_enum_1 = require("../../../../core/types/enums/HttpClient.enum");
|
|
10
|
+
const validateAndMigrateConfigData_1 = require("../validateAndMigrateConfigData");
|
|
11
|
+
const flatConfig = {
|
|
12
|
+
input: './test/spec/v3.json',
|
|
13
|
+
output: './generated',
|
|
14
|
+
httpClient: HttpClient_enum_1.HttpClient.FETCH,
|
|
15
|
+
};
|
|
16
|
+
(0, node_test_1.describe)('@unit: validateAndMigrateConfigData', () => {
|
|
17
|
+
(0, node_test_1.test)('accepts current flat object config', () => {
|
|
18
|
+
const result = (0, validateAndMigrateConfigData_1.validateAndMigrateConfigData)({ ...flatConfig });
|
|
19
|
+
node_assert_1.default.strictEqual(result.isActualConfigVersion, true);
|
|
20
|
+
node_assert_1.default.strictEqual(result.migratedData.input, flatConfig.input);
|
|
21
|
+
node_assert_1.default.strictEqual(result.migratedData.output, flatConfig.output);
|
|
22
|
+
});
|
|
23
|
+
(0, node_test_1.test)('marks deprecated array format as outdated', () => {
|
|
24
|
+
const warnMock = node_test_1.mock.method(Consts_1.APP_LOGGER, 'warn', () => undefined);
|
|
25
|
+
const legacyArray = [
|
|
26
|
+
{ input: './a.json', output: './generated/a', httpClient: HttpClient_enum_1.HttpClient.AXIOS, useOptions: true },
|
|
27
|
+
{ input: './b.json', output: './generated/b', httpClient: HttpClient_enum_1.HttpClient.AXIOS, useOptions: true },
|
|
28
|
+
];
|
|
29
|
+
const result = (0, validateAndMigrateConfigData_1.validateAndMigrateConfigData)(legacyArray);
|
|
30
|
+
node_assert_1.default.strictEqual(result.isActualConfigVersion, false);
|
|
31
|
+
node_assert_1.default.ok(Array.isArray(result.migratedData.items));
|
|
32
|
+
node_assert_1.default.strictEqual(result.migratedData.items.length, 2);
|
|
33
|
+
node_assert_1.default.strictEqual(warnMock.mock.callCount(), 1);
|
|
34
|
+
warnMock.mock.restore();
|
|
35
|
+
});
|
|
36
|
+
(0, node_test_1.test)('migrates multi-options config with items', () => {
|
|
37
|
+
const multiConfig = {
|
|
38
|
+
items: [
|
|
39
|
+
{ input: './api/v1.json', output: './generated/v1' },
|
|
40
|
+
{ input: './api/v2.json', output: './generated/v2' },
|
|
41
|
+
],
|
|
42
|
+
httpClient: HttpClient_enum_1.HttpClient.AXIOS,
|
|
43
|
+
};
|
|
44
|
+
const result = (0, validateAndMigrateConfigData_1.validateAndMigrateConfigData)(multiConfig);
|
|
45
|
+
node_assert_1.default.ok(result.migratedData.items);
|
|
46
|
+
node_assert_1.default.strictEqual(result.migratedData.items.length, 2);
|
|
47
|
+
node_assert_1.default.strictEqual(result.migratedData.httpClient, HttpClient_enum_1.HttpClient.AXIOS);
|
|
48
|
+
});
|
|
49
|
+
(0, node_test_1.test)('detects default values when config matches defaults', () => {
|
|
50
|
+
const withDefaults = {
|
|
51
|
+
...flatConfig,
|
|
52
|
+
httpClient: HttpClient_enum_1.HttpClient.FETCH,
|
|
53
|
+
sortByRequired: false,
|
|
54
|
+
};
|
|
55
|
+
const result = (0, validateAndMigrateConfigData_1.validateAndMigrateConfigData)(withDefaults);
|
|
56
|
+
node_assert_1.default.strictEqual(result.hasDefaultValues, true);
|
|
57
|
+
node_assert_1.default.strictEqual(result.migratedData.httpClient, undefined);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"removeDefaultConfigValues.d.ts","sourceRoot":"","sources":["../../../../src/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"removeDefaultConfigValues.d.ts","sourceRoot":"","sources":["../../../../src/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAW9F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateAndMigrateConfigData.d.ts","sourceRoot":"","sources":["../../../../src/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"validateAndMigrateConfigData.d.ts","sourceRoot":"","sources":["../../../../src/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AA2BnD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,uBAAuB,CAmC7H"}
|
|
@@ -12,6 +12,24 @@ const OptionsVersionedSchemas_1 = require("../../../common/VersionedSchema/Optio
|
|
|
12
12
|
const migrateDataToLatestSchemaVersion_1 = require("../../../common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion");
|
|
13
13
|
const isInstanceOfMultiOptions_1 = require("../../../core/utils/isInstanceOfMultiOptions");
|
|
14
14
|
const removeDefaultConfigValues_1 = require("./removeDefaultConfigValues");
|
|
15
|
+
const omitUndefinedValues = (data) => {
|
|
16
|
+
const result = {};
|
|
17
|
+
for (const [key, value] of Object.entries(data)) {
|
|
18
|
+
if (value === undefined) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
if (Array.isArray(value)) {
|
|
22
|
+
result[key] = value.map(item => (item && typeof item === 'object' && !Array.isArray(item) ? omitUndefinedValues(item) : item));
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (value && typeof value === 'object') {
|
|
26
|
+
result[key] = omitUndefinedValues(value);
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
result[key] = value;
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
};
|
|
15
33
|
/**
|
|
16
34
|
* Валидирует и мигрирует данные конфигурации до последней версии схемы.
|
|
17
35
|
* Определяет тип конфигурации (одиночная или множественная опция) и применяет соответствующий план миграции.
|
|
@@ -31,7 +49,7 @@ function validateAndMigrateConfigData(configData) {
|
|
|
31
49
|
if (isArrayFormat) {
|
|
32
50
|
Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.ARRAY_DEPRECATED);
|
|
33
51
|
}
|
|
34
|
-
const normalizedData = (0, convertArrayToObject_1.convertArrayToObject)(configData);
|
|
52
|
+
const normalizedData = omitUndefinedValues((0, convertArrayToObject_1.convertArrayToObject)(configData));
|
|
35
53
|
const isMultiOptions = (0, isInstanceOfMultiOptions_1.isInstanceOfMultioptions)(normalizedData);
|
|
36
54
|
// Выбрать соответствующие схемы и планы миграции
|
|
37
55
|
const migrationPlans = isMultiOptions ? MultiOptionsMigrationPlan_1.multiOptionsMigrationPlan : OptionsMigrationPlans_1.optionsMigrationPlans;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validates request/customExecutorPath semantics after schema migration.
|
|
3
|
+
* Returns human-readable warnings (non-fatal).
|
|
4
|
+
*/
|
|
5
|
+
export declare function validateExecutorSetup(configData: Record<string, unknown>, cwd?: string): string[];
|
|
6
|
+
//# sourceMappingURL=validateExecutorSetup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateExecutorSetup.d.ts","sourceRoot":"","sources":["../../../../src/cli/checkAndUpdateConfig/utils/validateExecutorSetup.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAE,MAAsB,GAAG,MAAM,EAAE,CA6ChH"}
|
|
@@ -0,0 +1,55 @@
|
|
|
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.validateExecutorSetup = validateExecutorSetup;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const collectConfigItems = (configData) => {
|
|
10
|
+
if (Array.isArray(configData.items)) {
|
|
11
|
+
return configData.items;
|
|
12
|
+
}
|
|
13
|
+
return [configData];
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Validates request/customExecutorPath semantics after schema migration.
|
|
17
|
+
* Returns human-readable warnings (non-fatal).
|
|
18
|
+
*/
|
|
19
|
+
function validateExecutorSetup(configData, cwd = process.cwd()) {
|
|
20
|
+
const warnings = [];
|
|
21
|
+
const rootRequest = typeof configData.request === 'string' ? configData.request : undefined;
|
|
22
|
+
const rootCustomExecutorPath = typeof configData.customExecutorPath === 'string' ? configData.customExecutorPath : undefined;
|
|
23
|
+
const validatePath = (field, value, itemLabel) => {
|
|
24
|
+
const prefix = itemLabel ? `${itemLabel}: ` : '';
|
|
25
|
+
const resolved = path_1.default.resolve(cwd, value);
|
|
26
|
+
if (!(0, fs_1.existsSync)(resolved)) {
|
|
27
|
+
warnings.push(`${prefix}${field} file not found: ${value}`);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (field === 'customExecutorPath') {
|
|
31
|
+
const content = (0, fs_1.readFileSync)(resolved, 'utf8');
|
|
32
|
+
if (!/\bexport\s+function\s+createExecutorAdapter\b/.test(content)) {
|
|
33
|
+
warnings.push(`${prefix}customExecutorPath should export function createExecutorAdapter`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
if (rootRequest) {
|
|
38
|
+
validatePath('request', rootRequest);
|
|
39
|
+
}
|
|
40
|
+
if (rootCustomExecutorPath) {
|
|
41
|
+
validatePath('customExecutorPath', rootCustomExecutorPath);
|
|
42
|
+
}
|
|
43
|
+
collectConfigItems(configData).forEach((item, index) => {
|
|
44
|
+
const itemRequest = typeof item.request === 'string' ? item.request : undefined;
|
|
45
|
+
const itemCustomExecutorPath = typeof item.customExecutorPath === 'string' ? item.customExecutorPath : undefined;
|
|
46
|
+
const label = `items[${index}]`;
|
|
47
|
+
if (itemRequest && itemRequest !== rootRequest) {
|
|
48
|
+
validatePath('request', itemRequest, label);
|
|
49
|
+
}
|
|
50
|
+
if (itemCustomExecutorPath && itemCustomExecutorPath !== rootCustomExecutorPath) {
|
|
51
|
+
validatePath('customExecutorPath', itemCustomExecutorPath, label);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return warnings;
|
|
55
|
+
}
|
|
@@ -29,6 +29,6 @@ interface IWriteConfigFileOptions {
|
|
|
29
29
|
* isUpdating: false,
|
|
30
30
|
* });
|
|
31
31
|
*/
|
|
32
|
-
export declare function writeConfigFile({ data, configPath, isUpdating
|
|
32
|
+
export declare function writeConfigFile({ data, configPath, isUpdating }: IWriteConfigFileOptions): Promise<void>;
|
|
33
33
|
export {};
|
|
34
34
|
//# sourceMappingURL=writeConfigFile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeConfigFile.d.ts","sourceRoot":"","sources":["../../../../src/cli/checkAndUpdateConfig/utils/writeConfigFile.ts"],"names":[],"mappings":"AAIA,UAAU,uBAAuB;IAC7B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,UAAU,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"writeConfigFile.d.ts","sourceRoot":"","sources":["../../../../src/cli/checkAndUpdateConfig/utils/writeConfigFile.ts"],"names":[],"mappings":"AAIA,UAAU,uBAAuB;IAC7B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,UAAU,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,eAAe,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAY9G"}
|
|
@@ -27,7 +27,7 @@ const writeExampleConfigFile_1 = require("./writeExampleConfigFile");
|
|
|
27
27
|
* isUpdating: false,
|
|
28
28
|
* });
|
|
29
29
|
*/
|
|
30
|
-
async function writeConfigFile({ data, configPath, isUpdating
|
|
30
|
+
async function writeConfigFile({ data, configPath, isUpdating }) {
|
|
31
31
|
const preparedData = await (0, prepareConfigData_1.prepareConfigData)(data);
|
|
32
32
|
if (!preparedData) {
|
|
33
33
|
throw new Error('Failed to prepare configuration data for writing');
|
|
@@ -7,6 +7,7 @@ const node_assert_1 = __importDefault(require("node:assert"));
|
|
|
7
7
|
const node_fs_1 = require("node:fs");
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const node_test_1 = require("node:test");
|
|
10
|
+
const silenceLoggers_1 = require("../../../test/helpers/silenceLoggers");
|
|
10
11
|
const generateOpenApiClient_1 = require("../generateOpenApiClient");
|
|
11
12
|
const repoRoot = node_path_1.default.join(__dirname, '..', '..', '..', '..');
|
|
12
13
|
const cliDefaults = {
|
|
@@ -35,23 +36,31 @@ function createTempDir(t, prefix) {
|
|
|
35
36
|
return tempDir;
|
|
36
37
|
}
|
|
37
38
|
function runStrictGenerate(options) {
|
|
38
|
-
return (0, generateOpenApiClient_1.
|
|
39
|
+
return (0, generateOpenApiClient_1.generateOpenApiClient)({
|
|
39
40
|
...cliDefaults,
|
|
40
41
|
...options,
|
|
41
42
|
});
|
|
42
43
|
}
|
|
43
44
|
(0, node_test_1.describe)('@unit: generateOpenApiClient strict-openapi', () => {
|
|
44
|
-
|
|
45
|
+
let restoreLoggers;
|
|
46
|
+
(0, node_test_1.beforeEach)(() => {
|
|
47
|
+
restoreLoggers = (0, silenceLoggers_1.installSilenceLoggers)();
|
|
48
|
+
});
|
|
49
|
+
(0, node_test_1.afterEach)(() => {
|
|
50
|
+
restoreLoggers?.();
|
|
51
|
+
restoreLoggers = undefined;
|
|
52
|
+
});
|
|
53
|
+
(0, node_test_1.test)('returns success and writes report file when strict has no errors', async (t) => {
|
|
45
54
|
const tempDir = createTempDir(t, 'openapi-cli-strict-ok-');
|
|
46
55
|
const reportFile = node_path_1.default.join(tempDir, 'strict-report.json');
|
|
47
56
|
const outputDir = node_path_1.default.join(tempDir, 'generated');
|
|
48
|
-
const
|
|
57
|
+
const result = await runStrictGenerate({
|
|
49
58
|
input: node_path_1.default.join(repoRoot, 'test/spec/lom/lom_api.yaml'),
|
|
50
59
|
output: outputDir,
|
|
51
60
|
strictOpenapi: true,
|
|
52
61
|
reportFile,
|
|
53
62
|
});
|
|
54
|
-
node_assert_1.default.strictEqual(
|
|
63
|
+
node_assert_1.default.strictEqual(result.success, true);
|
|
55
64
|
const report = JSON.parse((0, node_fs_1.readFileSync)(reportFile, 'utf8'));
|
|
56
65
|
node_assert_1.default.ok(Array.isArray(report.issues));
|
|
57
66
|
node_assert_1.default.ok(Array.isArray(report.governance.violations));
|
|
@@ -59,7 +68,7 @@ function runStrictGenerate(options) {
|
|
|
59
68
|
node_assert_1.default.strictEqual(typeof report.summary.warnings, 'number');
|
|
60
69
|
node_assert_1.default.strictEqual(typeof report.summary.info, 'number');
|
|
61
70
|
});
|
|
62
|
-
(0, node_test_1.test)('returns
|
|
71
|
+
(0, node_test_1.test)('returns failure and writes report file when strict finds errors', async (t) => {
|
|
63
72
|
const tempDir = createTempDir(t, 'openapi-cli-strict-error-');
|
|
64
73
|
const inputSpec = node_path_1.default.join(tempDir, 'broken-openapi.json');
|
|
65
74
|
const reportFile = node_path_1.default.join(tempDir, 'strict-report.json');
|
|
@@ -92,13 +101,13 @@ function runStrictGenerate(options) {
|
|
|
92
101
|
schemas: {},
|
|
93
102
|
},
|
|
94
103
|
}));
|
|
95
|
-
const
|
|
104
|
+
const result = await runStrictGenerate({
|
|
96
105
|
input: inputSpec,
|
|
97
106
|
output: outputDir,
|
|
98
107
|
strictOpenapi: true,
|
|
99
108
|
reportFile,
|
|
100
109
|
});
|
|
101
|
-
node_assert_1.default.strictEqual(
|
|
110
|
+
node_assert_1.default.strictEqual(result.success, false);
|
|
102
111
|
const report = JSON.parse((0, node_fs_1.readFileSync)(reportFile, 'utf8'));
|
|
103
112
|
node_assert_1.default.ok(report.summary.errors > 0);
|
|
104
113
|
node_assert_1.default.ok(report.issues.some(issue => issue.severity === 'error'));
|
|
@@ -137,14 +146,14 @@ function runStrictGenerate(options) {
|
|
|
137
146
|
},
|
|
138
147
|
},
|
|
139
148
|
}));
|
|
140
|
-
const
|
|
149
|
+
const result = await runStrictGenerate({
|
|
141
150
|
input: inputSpec,
|
|
142
151
|
output: outputDir,
|
|
143
152
|
strictOpenapi: true,
|
|
144
153
|
reportFile,
|
|
145
154
|
governanceConfig,
|
|
146
155
|
});
|
|
147
|
-
node_assert_1.default.strictEqual(
|
|
156
|
+
node_assert_1.default.strictEqual(result.success, true);
|
|
148
157
|
const report = JSON.parse((0, node_fs_1.readFileSync)(reportFile, 'utf8'));
|
|
149
158
|
node_assert_1.default.ok(!report.governance.violations.some(violation => violation.ruleId === 'REQUIRE_OPERATION_ID'));
|
|
150
159
|
node_assert_1.default.ok(report.governance.violations.some(violation => violation.ruleId === 'NO_DEFAULT_WITHOUT_2XX' && violation.severity === 'error'));
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { OptionValues } from 'commander';
|
|
2
|
+
import { CLICommandResult } from '../types';
|
|
2
3
|
/**
|
|
3
4
|
* Runs OpenAPI client generation and returns a process exit code.
|
|
4
5
|
* Does not call `process.exit` — safe for in-process unit tests.
|
|
5
6
|
*/
|
|
6
|
-
export declare function
|
|
7
|
-
/**
|
|
8
|
-
* CLI entry: runs generation and terminates the process with the resulting exit code.
|
|
9
|
-
*/
|
|
10
|
-
export declare function generateOpenApiClient(options: OptionValues): Promise<void>;
|
|
7
|
+
export declare function generateOpenApiClient(options: OptionValues): Promise<CLICommandResult>;
|
|
11
8
|
//# sourceMappingURL=generateOpenApiClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateOpenApiClient.d.ts","sourceRoot":"","sources":["../../../src/cli/generateOpenApiClient/generateOpenApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"generateOpenApiClient.d.ts","sourceRoot":"","sources":["../../../src/cli/generateOpenApiClient/generateOpenApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAezC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAY5C;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2G5F"}
|
|
@@ -33,14 +33,13 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.runGenerateOpenApiClient = runGenerateOpenApiClient;
|
|
37
36
|
exports.generateOpenApiClient = generateOpenApiClient;
|
|
38
37
|
const Consts_1 = require("../../common/Consts");
|
|
39
38
|
const Enums_1 = require("../../common/Enums");
|
|
40
39
|
const LoggerMessages_1 = require("../../common/LoggerMessages");
|
|
41
40
|
const convertArrayToObject_1 = require("../../common/utils/convertArrayToObject");
|
|
42
41
|
const loadConfigIfExists_1 = require("../../common/utils/loadConfigIfExists");
|
|
43
|
-
const
|
|
42
|
+
const Validation_1 = require("../../common/Validation");
|
|
44
43
|
const AllMigrationPlans_1 = require("../../common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans");
|
|
45
44
|
const AllVersionedSchemas_1 = require("../../common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas");
|
|
46
45
|
const UnifiedVersionedSchemas_1 = require("../../common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas");
|
|
@@ -60,10 +59,10 @@ const generateCliFlatSchema = UnifiedVersionedSchemas_1.flatOptionsSchema.strict
|
|
|
60
59
|
* Runs OpenAPI client generation and returns a process exit code.
|
|
61
60
|
* Does not call `process.exit` — safe for in-process unit tests.
|
|
62
61
|
*/
|
|
63
|
-
async function
|
|
62
|
+
async function generateOpenApiClient(options) {
|
|
64
63
|
const { openapiConfig, ...clientOptions } = options;
|
|
65
64
|
try {
|
|
66
|
-
const validationResult = (0,
|
|
65
|
+
const validationResult = (0, Validation_1.validateZodOptions)(schemas_1.generateOptionsSchema, {
|
|
67
66
|
openapiConfig,
|
|
68
67
|
...clientOptions,
|
|
69
68
|
});
|
|
@@ -73,12 +72,12 @@ async function runGenerateOpenApiClient(options) {
|
|
|
73
72
|
message: LoggerMessages_1.LOGGER_MESSAGES.ERROR.GENERIC(validationResult.errors.join('\n')),
|
|
74
73
|
});
|
|
75
74
|
await Consts_1.APP_LOGGER.shutdownLoggerAsync();
|
|
76
|
-
return
|
|
75
|
+
return { success: false, error: validationResult.errors.join('\n') };
|
|
77
76
|
}
|
|
78
77
|
const validatedOptions = validationResult.data;
|
|
79
78
|
const hasMinimumRequiredOptions = !!validatedOptions.input && !!validatedOptions.output;
|
|
80
79
|
if (hasMinimumRequiredOptions) {
|
|
81
|
-
const directOptionsValidationResult = (0,
|
|
80
|
+
const directOptionsValidationResult = (0, Validation_1.validateZodOptions)(generateCliFlatSchema, {
|
|
82
81
|
input: validatedOptions.input,
|
|
83
82
|
output: validatedOptions.output,
|
|
84
83
|
...clientOptions,
|
|
@@ -89,11 +88,16 @@ async function runGenerateOpenApiClient(options) {
|
|
|
89
88
|
message: LoggerMessages_1.LOGGER_MESSAGES.ERROR.GENERIC(directOptionsValidationResult.errors.join('\n')),
|
|
90
89
|
});
|
|
91
90
|
await Consts_1.APP_LOGGER.shutdownLoggerAsync();
|
|
92
|
-
return
|
|
91
|
+
return { success: false, error: directOptionsValidationResult.errors.join('\n') };
|
|
93
92
|
}
|
|
94
|
-
await OpenAPI.generate(
|
|
93
|
+
await OpenAPI.generate({
|
|
94
|
+
...directOptionsValidationResult.data,
|
|
95
|
+
prettierConfigPath: validatedOptions.prettierConfigPath,
|
|
96
|
+
tsconfigPath: validatedOptions.tsconfigPath,
|
|
97
|
+
eslintConfigPath: validatedOptions.eslintConfigPath,
|
|
98
|
+
});
|
|
95
99
|
await Consts_1.APP_LOGGER.shutdownLoggerAsync();
|
|
96
|
-
return
|
|
100
|
+
return { success: true };
|
|
97
101
|
}
|
|
98
102
|
const configData = (0, loadConfigIfExists_1.loadConfigIfExists)(validatedOptions.openapiConfig);
|
|
99
103
|
if (!configData) {
|
|
@@ -102,7 +106,7 @@ async function runGenerateOpenApiClient(options) {
|
|
|
102
106
|
message: `${LoggerMessages_1.LOGGER_MESSAGES.CONFIG.FILE_MISSING}\n${LoggerMessages_1.LOGGER_MESSAGES.CONFIG.FILE_MISSING_HINT}`,
|
|
103
107
|
});
|
|
104
108
|
await Consts_1.APP_LOGGER.shutdownLoggerAsync();
|
|
105
|
-
return
|
|
109
|
+
return { success: false, error: LoggerMessages_1.LOGGER_MESSAGES.CONFIG.FILE_MISSING };
|
|
106
110
|
}
|
|
107
111
|
if (Array.isArray(configData)) {
|
|
108
112
|
Consts_1.APP_LOGGER.warn(LoggerMessages_1.LOGGER_MESSAGES.CONFIG.ARRAY_DEPRECATED);
|
|
@@ -120,7 +124,7 @@ async function runGenerateOpenApiClient(options) {
|
|
|
120
124
|
message: LoggerMessages_1.LOGGER_MESSAGES.CONFIG.CONVERSION_FAILED,
|
|
121
125
|
});
|
|
122
126
|
await Consts_1.APP_LOGGER.shutdownLoggerAsync();
|
|
123
|
-
return
|
|
127
|
+
return { success: false, error: LoggerMessages_1.LOGGER_MESSAGES.CONFIG.CONVERSION_FAILED };
|
|
124
128
|
}
|
|
125
129
|
const { value } = migratedOptions;
|
|
126
130
|
const mergedOptions = {
|
|
@@ -128,10 +132,17 @@ async function runGenerateOpenApiClient(options) {
|
|
|
128
132
|
strictOpenapi: validatedOptions.strictOpenapi ?? value.strictOpenapi,
|
|
129
133
|
reportFile: validatedOptions.reportFile ?? value.reportFile,
|
|
130
134
|
governanceConfig: validatedOptions.governanceConfig ?? value.governanceConfig,
|
|
135
|
+
cache: validatedOptions.cache ?? value.cache,
|
|
136
|
+
cachePath: validatedOptions.cachePath ?? value.cachePath,
|
|
137
|
+
cacheStrategy: validatedOptions.cacheStrategy ?? value.cacheStrategy,
|
|
138
|
+
cacheDebug: validatedOptions.cacheDebug ?? value.cacheDebug,
|
|
139
|
+
prettierConfigPath: validatedOptions.prettierConfigPath ?? value.prettierConfigPath,
|
|
140
|
+
tsconfigPath: validatedOptions.tsconfigPath ?? value.tsconfigPath,
|
|
141
|
+
eslintConfigPath: validatedOptions.eslintConfigPath ?? value.eslintConfigPath,
|
|
131
142
|
};
|
|
132
143
|
await OpenAPI.generate(mergedOptions);
|
|
133
144
|
await Consts_1.APP_LOGGER.shutdownLoggerAsync();
|
|
134
|
-
return
|
|
145
|
+
return { success: true };
|
|
135
146
|
}
|
|
136
147
|
catch (error) {
|
|
137
148
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -141,13 +152,6 @@ async function runGenerateOpenApiClient(options) {
|
|
|
141
152
|
error,
|
|
142
153
|
});
|
|
143
154
|
await Consts_1.APP_LOGGER.shutdownLoggerAsync();
|
|
144
|
-
return
|
|
155
|
+
return { success: false, error: message };
|
|
145
156
|
}
|
|
146
157
|
}
|
|
147
|
-
/**
|
|
148
|
-
* CLI entry: runs generation and terminates the process with the resulting exit code.
|
|
149
|
-
*/
|
|
150
|
-
async function generateOpenApiClient(options) {
|
|
151
|
-
const exitCode = await runGenerateOpenApiClient(options);
|
|
152
|
-
process.exit(exitCode);
|
|
153
|
-
}
|
package/dist/cli/index.js
CHANGED
|
@@ -16,6 +16,7 @@ const HttpClient_enum_1 = require("../core/types/enums/HttpClient.enum");
|
|
|
16
16
|
const ModelsMode_enum_1 = require("../core/types/enums/ModelsMode.enum");
|
|
17
17
|
const ValidationLibrary_enum_1 = require("../core/types/enums/ValidationLibrary.enum");
|
|
18
18
|
const analyzeDiff_1 = require("./analyzeDiff/analyzeDiff");
|
|
19
|
+
const analyzeUsage_1 = require("./analyzeUsage/analyzeUsage");
|
|
19
20
|
const checkConfig_1 = require("./checkAndUpdateConfig/checkConfig");
|
|
20
21
|
const updateConfig_1 = require("./checkAndUpdateConfig/updateConfig");
|
|
21
22
|
const generateOpenApiClient_1 = require("./generateOpenApiClient/generateOpenApiClient");
|
|
@@ -31,6 +32,12 @@ const updateNotifier = new UpdateNotifier_1.UpdateNotifier({
|
|
|
31
32
|
packageVersion: APP_VERSION,
|
|
32
33
|
});
|
|
33
34
|
const program = new commander_1.Command();
|
|
35
|
+
const finishCommand = (result) => {
|
|
36
|
+
if (!result || !result.success) {
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
process.exit(0);
|
|
40
|
+
};
|
|
34
41
|
program.version(APP_VERSION).name(APP_NAME).description(APP_DESCRIPTION).addHelpText('before', (0, utils_1.getCLIName)(APP_NAME));
|
|
35
42
|
/**
|
|
36
43
|
* generate - Команда для генерации кода на основе OpenAPI спецификации
|
|
@@ -69,13 +76,19 @@ program
|
|
|
69
76
|
.option('--governance-config <value>', 'Path to governance rules JSON config file')
|
|
70
77
|
.addOption(new commander_1.Option('--validationLibrary <value>', 'Validation library to use for schema validation').choices([...Object.values(ValidationLibrary_enum_1.ValidationLibrary)]).default(ValidationLibrary_enum_1.ValidationLibrary.NONE))
|
|
71
78
|
.addOption(new commander_1.Option('--emptySchemaStrategy <value>', 'How to handle empty generated schemas').choices([...Object.values(EmptySchemaStrategy_enum_1.EmptySchemaStrategy)]).default(EmptySchemaStrategy_enum_1.EmptySchemaStrategy.KEEP))
|
|
72
|
-
.option('--
|
|
73
|
-
.option('--
|
|
79
|
+
.option('--prettierConfigPath <value>', 'Path to Prettier config file for formatting generated code')
|
|
80
|
+
.option('--tsconfigPath <value>', 'Path to project tsconfig.json for batch ESLint fix (requires --eslintConfigPath)')
|
|
81
|
+
.option('--eslintConfigPath <value>', 'Path to project ESLint config for batch ESLint fix (requires --tsconfigPath)')
|
|
82
|
+
.option('--cache', 'Enable generation cache (default: disabled)')
|
|
83
|
+
.option('--cachePath <value>', 'Path to generation cache file relative to output directory (default: .openapi-codegen-cache.json)')
|
|
84
|
+
.addOption(new commander_1.Option('--cacheStrategy <value>', 'Cache strategy').choices(['content', 'entity']).default('entity'))
|
|
85
|
+
.option('--cacheDebug', 'Show cache hit/miss debug logs (default: false)')
|
|
74
86
|
.hook('preAction', async () => {
|
|
75
87
|
await updateNotifier.checkAndNotify();
|
|
76
88
|
})
|
|
77
89
|
.action(async (options) => {
|
|
78
|
-
await (0, generateOpenApiClient_1.generateOpenApiClient)(options);
|
|
90
|
+
const result = await (0, generateOpenApiClient_1.generateOpenApiClient)(options);
|
|
91
|
+
finishCommand(result);
|
|
79
92
|
});
|
|
80
93
|
/**
|
|
81
94
|
* check - Команда для проверки конфигурационного файла
|
|
@@ -89,7 +102,8 @@ program
|
|
|
89
102
|
await updateNotifier.checkAndNotify();
|
|
90
103
|
})
|
|
91
104
|
.action(async (options) => {
|
|
92
|
-
await (0, checkConfig_1.checkConfig)(options);
|
|
105
|
+
const result = await (0, checkConfig_1.checkConfig)(options);
|
|
106
|
+
finishCommand(result);
|
|
93
107
|
});
|
|
94
108
|
/**
|
|
95
109
|
* update - Команда для обновления конфигурационного файла
|
|
@@ -103,7 +117,8 @@ program
|
|
|
103
117
|
await updateNotifier.checkAndNotify();
|
|
104
118
|
})
|
|
105
119
|
.action(async (options) => {
|
|
106
|
-
await (0, updateConfig_1.updateConfig)(options);
|
|
120
|
+
const result = await (0, updateConfig_1.updateConfig)(options);
|
|
121
|
+
finishCommand(result);
|
|
107
122
|
});
|
|
108
123
|
/**
|
|
109
124
|
* init - Команда для инициализации конфигурационного файла
|
|
@@ -115,13 +130,15 @@ program
|
|
|
115
130
|
.option('-ocn, --openapi-config <value>', 'The path to the configuration file, listing the options', Consts_1.DEFAULT_OPENAPI_CONFIG_FILENAME)
|
|
116
131
|
.option('-sd, --specs-dir <value>', 'Путь до директории с файлами спецификации', './openapi')
|
|
117
132
|
.option('--request <value>', 'Path to custom request file')
|
|
133
|
+
.option('--requestFormat <value>', 'Scaffold format for --request: transport | adapter | executor (default: transport)')
|
|
118
134
|
.option('--useCancelableRequest', 'Use cancelled promise as returned data type in request (default: false)')
|
|
119
135
|
.option('--useInteractiveMode', 'Использовать интерактивный режим команды. В терминале будут задаваться вопросы (default: false)')
|
|
120
136
|
.hook('preAction', async () => {
|
|
121
137
|
await updateNotifier.checkAndNotify();
|
|
122
138
|
})
|
|
123
139
|
.action(async (options) => {
|
|
124
|
-
await (0, init_1.init)(options);
|
|
140
|
+
const result = await (0, init_1.init)(options);
|
|
141
|
+
finishCommand(result);
|
|
125
142
|
});
|
|
126
143
|
/**
|
|
127
144
|
* preview-changes - Команда для предпросмотра изменений перед генерацией
|
|
@@ -138,7 +155,8 @@ program
|
|
|
138
155
|
await updateNotifier.checkAndNotify();
|
|
139
156
|
})
|
|
140
157
|
.action(async (options) => {
|
|
141
|
-
await (0, previewChanges_1.previewChanges)(options);
|
|
158
|
+
const result = await (0, previewChanges_1.previewChanges)(options);
|
|
159
|
+
finishCommand(result);
|
|
142
160
|
});
|
|
143
161
|
/**
|
|
144
162
|
* analyze-diff - Команда для анализа изменений между двумя версиями OpenAPI спецификации
|
|
@@ -180,8 +198,26 @@ program
|
|
|
180
198
|
})
|
|
181
199
|
.action(async (options) => {
|
|
182
200
|
const result = await (0, analyzeDiff_1.analyzeDiff)(options);
|
|
183
|
-
|
|
184
|
-
|
|
201
|
+
finishCommand(result);
|
|
202
|
+
});
|
|
203
|
+
/**
|
|
204
|
+
* analyze-usage - Команда для анализа использования generated API в consumer-проекте
|
|
205
|
+
*/
|
|
206
|
+
program
|
|
207
|
+
.command('analyze-usage')
|
|
208
|
+
.description('Analyzes generated API usage in a TypeScript consumer project and produces usage reports')
|
|
209
|
+
.addHelpText('before', (0, utils_1.getCLIName)(APP_NAME))
|
|
210
|
+
.option('-s, --sourcePath <value>', 'Path to generated API file')
|
|
211
|
+
.option('-p, --projectPath <value>', 'Root of your React/TS project')
|
|
212
|
+
.option('-t, --tsconfigPath <value>', 'Optional path to tsconfig.json')
|
|
213
|
+
.option('-o, --output <value>', 'Output report filename', 'api-report.json')
|
|
214
|
+
.option('-c, --check', 'CI mode (exit code 1 when errors are found)')
|
|
215
|
+
.hook('preAction', async () => {
|
|
216
|
+
await updateNotifier.checkAndNotify();
|
|
217
|
+
})
|
|
218
|
+
.action(async (options) => {
|
|
219
|
+
const result = await (0, analyzeUsage_1.analyzeUsage)(options);
|
|
220
|
+
finishCommand(result);
|
|
185
221
|
});
|
|
186
222
|
program.exitOverride();
|
|
187
223
|
program.showSuggestionAfterError(false);
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
export type RequestScaffoldFormat = 'transport' | 'executor' | 'adapter';
|
|
1
2
|
export type CLITemplates = {
|
|
2
3
|
config: Handlebars.TemplateDelegate;
|
|
3
4
|
request: Handlebars.TemplateDelegate;
|
|
4
5
|
requestExecutor: Handlebars.TemplateDelegate;
|
|
6
|
+
createExecutorAdapter: Handlebars.TemplateDelegate;
|
|
5
7
|
};
|
|
6
8
|
//# sourceMappingURL=Types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/cli/initOpenApiConfig/Types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACvB,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,UAAU,CAAC,gBAAgB,CAAC;IACrC,eAAe,EAAE,UAAU,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/cli/initOpenApiConfig/Types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG;IACvB,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,UAAU,CAAC,gBAAgB,CAAC;IACrC,eAAe,EAAE,UAAU,CAAC,gBAAgB,CAAC;IAC7C,qBAAqB,EAAE,UAAU,CAAC,gBAAgB,CAAC;CACtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/initOpenApiConfig/__tests__/init.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
|
+
const node_test_1 = require("node:test");
|
|
8
|
+
const Consts_1 = require("../../../common/Consts");
|
|
9
|
+
const init_1 = require("../init");
|
|
10
|
+
(0, node_test_1.describe)('@unit: init', () => {
|
|
11
|
+
(0, node_test_1.test)('returns failure when options fail schema validation', async () => {
|
|
12
|
+
const shutdownMock = node_test_1.mock.method(Consts_1.APP_LOGGER, 'shutdownLoggerAsync', async () => undefined);
|
|
13
|
+
const errorMock = node_test_1.mock.method(Consts_1.APP_LOGGER, 'error', () => undefined);
|
|
14
|
+
const result = await (0, init_1.init)({ specsDir: 123 });
|
|
15
|
+
node_assert_1.default.strictEqual(result.success, false);
|
|
16
|
+
node_assert_1.default.ok(result.error);
|
|
17
|
+
shutdownMock.mock.restore();
|
|
18
|
+
errorMock.mock.restore();
|
|
19
|
+
});
|
|
20
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initConfig.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/initOpenApiConfig/__tests__/initConfig.test.ts"],"names":[],"mappings":""}
|