ts-openapi-codegen 2.0.0 → 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.
Files changed (715) hide show
  1. package/README.md +28 -846
  2. package/README.rus.md +28 -846
  3. package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.d.ts +2 -0
  4. package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.d.ts.map +1 -0
  5. package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.js +381 -0
  6. package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.d.ts +2 -0
  7. package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.d.ts.map +1 -0
  8. package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.js +47 -0
  9. package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.d.ts +2 -0
  10. package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.d.ts.map +1 -0
  11. package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.js +152 -0
  12. package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.d.ts +2 -0
  13. package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.d.ts.map +1 -0
  14. package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.js +147 -0
  15. package/dist/cli/analyzeDiff/analyzeDiff.d.ts +29 -0
  16. package/dist/cli/analyzeDiff/analyzeDiff.d.ts.map +1 -0
  17. package/dist/cli/analyzeDiff/analyzeDiff.js +148 -0
  18. package/dist/cli/analyzeDiff/ciSummary.d.ts +9 -0
  19. package/dist/cli/analyzeDiff/ciSummary.d.ts.map +1 -0
  20. package/dist/cli/analyzeDiff/ciSummary.js +24 -0
  21. package/dist/cli/analyzeDiff/ignoreRules.d.ts +11 -0
  22. package/dist/cli/analyzeDiff/ignoreRules.d.ts.map +1 -0
  23. package/dist/cli/analyzeDiff/ignoreRules.js +71 -0
  24. package/dist/cli/analyzeDiff/ignoreSemanticChanges.d.ts +10 -0
  25. package/dist/cli/analyzeDiff/ignoreSemanticChanges.d.ts.map +1 -0
  26. package/dist/cli/analyzeDiff/ignoreSemanticChanges.js +84 -0
  27. package/dist/cli/analyzeDiff/miracles.d.ts +35 -0
  28. package/dist/cli/analyzeDiff/miracles.d.ts.map +1 -0
  29. package/dist/cli/analyzeDiff/miracles.js +107 -0
  30. package/dist/cli/analyzeDiff/pluginPaths.d.ts +5 -0
  31. package/dist/cli/analyzeDiff/pluginPaths.d.ts.map +1 -0
  32. package/dist/cli/analyzeDiff/pluginPaths.js +13 -0
  33. package/dist/cli/analyzeDiff/semanticDiffContext.d.ts +6 -0
  34. package/dist/cli/analyzeDiff/semanticDiffContext.d.ts.map +1 -0
  35. package/dist/cli/analyzeDiff/semanticDiffContext.js +16 -0
  36. package/dist/cli/analyzeDiff/specParser.d.ts +9 -0
  37. package/dist/cli/analyzeDiff/specParser.d.ts.map +1 -0
  38. package/dist/cli/analyzeDiff/specParser.js +59 -0
  39. package/dist/cli/analyzeDiff/types.d.ts +19 -0
  40. package/dist/cli/analyzeDiff/types.d.ts.map +1 -0
  41. package/dist/cli/analyzeDiff/types.js +2 -0
  42. package/dist/cli/analyzeUsage/analyzeUsage.d.ts +4 -0
  43. package/dist/cli/analyzeUsage/analyzeUsage.d.ts.map +1 -0
  44. package/dist/cli/analyzeUsage/analyzeUsage.js +60 -0
  45. package/dist/cli/analyzeUsage/core/Analyzer.d.ts +9 -0
  46. package/dist/cli/analyzeUsage/core/Analyzer.d.ts.map +1 -0
  47. package/dist/cli/analyzeUsage/core/Analyzer.js +29 -0
  48. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts +10 -0
  49. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts.map +1 -0
  50. package/dist/cli/analyzeUsage/core/ProjectContext.js +58 -0
  51. package/dist/cli/analyzeUsage/core/Scanner.d.ts +23 -0
  52. package/dist/cli/analyzeUsage/core/Scanner.d.ts.map +1 -0
  53. package/dist/cli/analyzeUsage/core/Scanner.js +125 -0
  54. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts +14 -0
  55. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts.map +1 -0
  56. package/dist/cli/analyzeUsage/rules/ClientRule.js +86 -0
  57. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts +7 -0
  58. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts.map +1 -0
  59. package/dist/cli/analyzeUsage/rules/CoverageRule.js +55 -0
  60. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts +6 -0
  61. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts.map +1 -0
  62. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.js +63 -0
  63. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts +6 -0
  64. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts.map +1 -0
  65. package/dist/cli/analyzeUsage/rules/ImportRule.js +50 -0
  66. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts +6 -0
  67. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts.map +1 -0
  68. package/dist/cli/analyzeUsage/rules/ModelRule.js +34 -0
  69. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts +6 -0
  70. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts.map +1 -0
  71. package/dist/cli/analyzeUsage/rules/SchemaRule.js +46 -0
  72. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts +15 -0
  73. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts.map +1 -0
  74. package/dist/cli/analyzeUsage/rules/ServiceRule.js +96 -0
  75. package/dist/cli/analyzeUsage/types.d.ts +52 -0
  76. package/dist/cli/analyzeUsage/types.d.ts.map +1 -0
  77. package/dist/cli/analyzeUsage/types.js +2 -0
  78. package/dist/cli/analyzeUsage/utils/fuzzy.d.ts +5 -0
  79. package/dist/cli/analyzeUsage/utils/fuzzy.d.ts.map +1 -0
  80. package/dist/cli/analyzeUsage/utils/fuzzy.js +38 -0
  81. package/dist/cli/analyzeUsage/utils/report.d.ts +16 -0
  82. package/dist/cli/analyzeUsage/utils/report.d.ts.map +1 -0
  83. package/dist/cli/analyzeUsage/utils/report.js +85 -0
  84. package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.d.ts +2 -0
  85. package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.d.ts.map +1 -0
  86. package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.js +53 -0
  87. package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.d.ts +2 -0
  88. package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.d.ts.map +1 -0
  89. package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.js +52 -0
  90. package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts +2 -1
  91. package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts.map +1 -1
  92. package/dist/cli/checkAndUpdateConfig/checkConfig.js +26 -12
  93. package/dist/cli/checkAndUpdateConfig/constants.d.ts +0 -9
  94. package/dist/cli/checkAndUpdateConfig/constants.d.ts.map +1 -1
  95. package/dist/cli/checkAndUpdateConfig/constants.js +1 -10
  96. package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts +2 -1
  97. package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts.map +1 -1
  98. package/dist/cli/checkAndUpdateConfig/updateConfig.js +17 -10
  99. package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.d.ts +2 -0
  100. package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.d.ts.map +1 -0
  101. package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.js +20 -0
  102. package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.d.ts +2 -0
  103. package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.d.ts.map +1 -0
  104. package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.js +35 -0
  105. package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.d.ts +2 -0
  106. package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.d.ts.map +1 -0
  107. package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.js +59 -0
  108. package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.d.ts.map +1 -1
  109. package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.d.ts.map +1 -1
  110. package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.js +6 -3
  111. package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.d.ts.map +1 -1
  112. package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.js +3 -2
  113. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -1
  114. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +19 -1
  115. package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.d.ts +6 -0
  116. package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.d.ts.map +1 -0
  117. package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.js +55 -0
  118. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts +1 -1
  119. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts.map +1 -1
  120. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.js +1 -1
  121. package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.d.ts.map +1 -1
  122. package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.js +2 -2
  123. package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.d.ts +2 -0
  124. package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.d.ts.map +1 -0
  125. package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.js +161 -0
  126. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts +4 -3
  127. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
  128. package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +61 -21
  129. package/dist/cli/index.js +98 -7
  130. package/dist/cli/initOpenApiConfig/Types.d.ts +2 -0
  131. package/dist/cli/initOpenApiConfig/Types.d.ts.map +1 -1
  132. package/dist/cli/initOpenApiConfig/__tests__/init.test.d.ts +2 -0
  133. package/dist/cli/initOpenApiConfig/__tests__/init.test.d.ts.map +1 -0
  134. package/dist/cli/initOpenApiConfig/__tests__/init.test.js +20 -0
  135. package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.d.ts +2 -0
  136. package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.d.ts.map +1 -0
  137. package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.js +49 -0
  138. package/dist/cli/initOpenApiConfig/init.d.ts +2 -1
  139. package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
  140. package/dist/cli/initOpenApiConfig/init.js +59 -14
  141. package/dist/cli/initOpenApiConfig/initConfig.d.ts +6 -0
  142. package/dist/cli/initOpenApiConfig/initConfig.d.ts.map +1 -1
  143. package/dist/cli/initOpenApiConfig/initConfig.js +53 -26
  144. package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts +10 -2
  145. package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts.map +1 -1
  146. package/dist/cli/initOpenApiConfig/initCustomRequest.js +67 -9
  147. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.d.ts +2 -0
  148. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.d.ts.map +1 -0
  149. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.js +93 -0
  150. package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.d.ts +2 -0
  151. package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.d.ts.map +1 -0
  152. package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.js +45 -0
  153. package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.d.ts +2 -0
  154. package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.d.ts.map +1 -0
  155. package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.js +61 -0
  156. package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts +6 -12
  157. package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts.map +1 -1
  158. package/dist/cli/initOpenApiConfig/utils/buildConfig.js +84 -19
  159. package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.d.ts.map +1 -1
  160. package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.js +2 -0
  161. package/dist/cli/initOpenApiConfig/utils/validateSpecFile.d.ts.map +1 -1
  162. package/dist/cli/initOpenApiConfig/utils/validateSpecFile.js +2 -1
  163. package/dist/cli/initOpenApiConfig/utils/writeConfigFile.d.ts.map +1 -1
  164. package/dist/cli/initOpenApiConfig/utils/writeConfigFile.js +2 -1
  165. package/dist/cli/interactive/confirmDialog.d.ts.map +1 -1
  166. package/dist/cli/interactive/confirmDialog.js +3 -2
  167. package/dist/cli/interactive/constants.d.ts +0 -4
  168. package/dist/cli/interactive/constants.d.ts.map +1 -1
  169. package/dist/cli/interactive/constants.js +7 -11
  170. package/dist/cli/interactive/selectDialog.d.ts.map +1 -1
  171. package/dist/cli/interactive/selectDialog.js +11 -6
  172. package/dist/cli/previewChanges/previewChanges.d.ts +2 -1
  173. package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
  174. package/dist/cli/previewChanges/previewChanges.js +49 -21
  175. package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.d.ts +2 -0
  176. package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.d.ts.map +1 -0
  177. package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.js +52 -0
  178. package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.d.ts +2 -0
  179. package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.d.ts.map +1 -0
  180. package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.js +43 -0
  181. package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.d.ts +2 -0
  182. package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.d.ts.map +1 -0
  183. package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.js +32 -0
  184. package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.d.ts +2 -0
  185. package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.d.ts.map +1 -0
  186. package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.js +68 -0
  187. package/dist/cli/previewChanges/utils/formatDiff.d.ts.map +1 -1
  188. package/dist/cli/previewChanges/utils/updateOutputPaths.d.ts.map +1 -1
  189. package/dist/cli/previewChanges/utils/updateOutputPaths.js +5 -12
  190. package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.d.ts +2 -0
  191. package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.d.ts.map +1 -0
  192. package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.js +36 -0
  193. package/dist/cli/schemas/__tests__/generateOptionsSchema.test.d.ts +2 -0
  194. package/dist/cli/schemas/__tests__/generateOptionsSchema.test.d.ts.map +1 -0
  195. package/dist/cli/schemas/__tests__/generateOptionsSchema.test.js +59 -0
  196. package/dist/cli/schemas/__tests__/initOptionsSchema.test.d.ts +2 -0
  197. package/dist/cli/schemas/__tests__/initOptionsSchema.test.d.ts.map +1 -0
  198. package/dist/cli/schemas/__tests__/initOptionsSchema.test.js +43 -0
  199. package/dist/cli/schemas/__tests__/previewChangesSchema.test.d.ts +2 -0
  200. package/dist/cli/schemas/__tests__/previewChangesSchema.test.d.ts.map +1 -0
  201. package/dist/cli/schemas/__tests__/previewChangesSchema.test.js +31 -0
  202. package/dist/cli/schemas/analyzeDiff.d.ts +14 -0
  203. package/dist/cli/schemas/analyzeDiff.d.ts.map +1 -0
  204. package/dist/cli/schemas/analyzeDiff.js +28 -0
  205. package/dist/cli/schemas/analyzeUsage.d.ts +13 -0
  206. package/dist/cli/schemas/analyzeUsage.d.ts.map +1 -0
  207. package/dist/cli/schemas/analyzeUsage.js +41 -0
  208. package/dist/cli/schemas/generate.d.ts +17 -0
  209. package/dist/cli/schemas/generate.d.ts.map +1 -1
  210. package/dist/cli/schemas/generate.js +14 -0
  211. package/dist/cli/schemas/index.d.ts +3 -1
  212. package/dist/cli/schemas/index.d.ts.map +1 -1
  213. package/dist/cli/schemas/index.js +2 -0
  214. package/dist/cli/schemas/init.d.ts +10 -0
  215. package/dist/cli/schemas/init.d.ts.map +1 -1
  216. package/dist/cli/schemas/init.js +3 -1
  217. package/dist/cli/types.d.ts +6 -0
  218. package/dist/cli/types.d.ts.map +1 -0
  219. package/dist/cli/types.js +2 -0
  220. package/dist/common/Consts.d.ts +2 -0
  221. package/dist/common/Consts.d.ts.map +1 -1
  222. package/dist/common/Consts.js +19 -1
  223. package/dist/common/Logger.d.ts +20 -1
  224. package/dist/common/Logger.d.ts.map +1 -1
  225. package/dist/common/Logger.js +70 -9
  226. package/dist/common/LoggerMessages.d.ts +194 -33
  227. package/dist/common/LoggerMessages.d.ts.map +1 -1
  228. package/dist/common/LoggerMessages.js +176 -45
  229. package/dist/common/TEslintFixOptions.d.ts +20 -0
  230. package/dist/common/TEslintFixOptions.d.ts.map +1 -0
  231. package/dist/common/TEslintFixOptions.js +15 -0
  232. package/dist/common/TRawOptions.d.ts.map +1 -1
  233. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
  234. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +7 -3
  235. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts.map +1 -1
  236. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.js +1 -1
  237. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts +4 -0
  238. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -1
  239. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.js +1 -2
  240. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts +8 -0
  241. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
  242. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.js +1 -1
  243. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts +8 -0
  244. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
  245. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.js +1 -1
  246. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts +8 -0
  247. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts.map +1 -1
  248. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts +35 -0
  249. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -1
  250. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.js +4 -1
  251. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts +87 -0
  252. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts.map +1 -0
  253. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.js +29 -0
  254. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +185 -0
  255. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -1
  256. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +9 -1
  257. package/dist/common/VersionedSchema/CommonSchemas.d.ts +40 -0
  258. package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
  259. package/dist/common/VersionedSchema/CommonSchemas.js +36 -1
  260. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts +4 -0
  261. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts.map +1 -1
  262. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts +4 -0
  263. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts.map +1 -1
  264. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.js +1 -1
  265. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts +4 -0
  266. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
  267. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.js +1 -1
  268. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts +4 -0
  269. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts.map +1 -1
  270. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.js +1 -1
  271. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts +4 -0
  272. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
  273. package/dist/common/VersionedSchema/OptionsVersioned/OptionsMigrationPlans.d.ts.map +1 -1
  274. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +6 -2
  275. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
  276. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +6 -2
  277. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts.map +1 -1
  278. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts +4 -0
  279. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts.map +1 -1
  280. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.js +1 -1
  281. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +5 -1
  282. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts.map +1 -1
  283. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -1
  284. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +29 -3
  285. package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.js +4 -16
  286. package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.js +2 -2
  287. package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts.map +1 -1
  288. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts +1 -1
  289. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts.map +1 -1
  290. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.js +1 -1
  291. package/dist/common/VersionedSchema/Utils/createTrivialMigration.d.ts.map +1 -1
  292. package/dist/common/VersionedSchema/Utils/createTrivialMigration.js +1 -1
  293. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
  294. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +4 -6
  295. package/dist/common/VersionedSchema/Utils/getLatestVersionFromMigrationPlans.d.ts.map +1 -1
  296. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
  297. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +7 -8
  298. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.d.ts.map +1 -1
  299. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.js +1 -1
  300. package/dist/common/VersionedSchema/Utils/validateAndSuggestKeyCorrections.d.ts.map +1 -1
  301. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts +1 -1
  302. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts.map +1 -1
  303. package/dist/common/__tests__/Logger.test.d.ts +2 -0
  304. package/dist/common/__tests__/Logger.test.d.ts.map +1 -0
  305. package/dist/common/__tests__/Logger.test.js +100 -0
  306. package/dist/common/utils/__tests__/convertArrayToObject.test.js +3 -0
  307. package/dist/common/utils/__tests__/eslintFix.test.d.ts +2 -0
  308. package/dist/common/utils/__tests__/eslintFix.test.d.ts.map +1 -0
  309. package/dist/common/utils/__tests__/eslintFix.test.js +92 -0
  310. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts +2 -0
  311. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts.map +1 -0
  312. package/dist/common/utils/__tests__/extractEslintFixOptions.test.js +28 -0
  313. package/dist/common/utils/__tests__/format.test.d.ts +2 -0
  314. package/dist/common/utils/__tests__/format.test.d.ts.map +1 -0
  315. package/dist/common/utils/__tests__/format.test.js +99 -0
  316. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts +2 -0
  317. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts.map +1 -0
  318. package/dist/common/utils/__tests__/prepareTempTsConfig.test.js +78 -0
  319. package/dist/common/utils/codegenTempDir.d.ts +20 -0
  320. package/dist/common/utils/codegenTempDir.d.ts.map +1 -0
  321. package/dist/common/utils/codegenTempDir.js +42 -0
  322. package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
  323. package/dist/common/utils/convertArrayToObject.js +6 -8
  324. package/dist/common/utils/eslintFix.d.ts +51 -0
  325. package/dist/common/utils/eslintFix.d.ts.map +1 -0
  326. package/dist/common/utils/eslintFix.js +184 -0
  327. package/dist/common/utils/format.d.ts +1 -1
  328. package/dist/common/utils/format.d.ts.map +1 -1
  329. package/dist/common/utils/format.js +51 -15
  330. package/dist/common/utils/jsonPath.d.ts +5 -0
  331. package/dist/common/utils/jsonPath.d.ts.map +1 -0
  332. package/dist/common/utils/jsonPath.js +27 -0
  333. package/dist/common/utils/prepareTempEslintConfig.d.ts +18 -0
  334. package/dist/common/utils/prepareTempEslintConfig.d.ts.map +1 -0
  335. package/dist/common/utils/prepareTempEslintConfig.js +55 -0
  336. package/dist/common/utils/prepareTempTsConfig.d.ts +23 -0
  337. package/dist/common/utils/prepareTempTsConfig.d.ts.map +1 -0
  338. package/dist/common/utils/prepareTempTsConfig.js +105 -0
  339. package/dist/core/Context.d.ts +8 -1
  340. package/dist/core/Context.d.ts.map +1 -1
  341. package/dist/core/Context.js +25 -10
  342. package/dist/core/OpenApiClient.d.ts +29 -1
  343. package/dist/core/OpenApiClient.d.ts.map +1 -1
  344. package/dist/core/OpenApiClient.js +365 -15
  345. package/dist/core/WriteClient.d.ts +86 -15
  346. package/dist/core/WriteClient.d.ts.map +1 -1
  347. package/dist/core/WriteClient.js +117 -9
  348. package/dist/core/__tests__/WriteClient.test.js +5 -1
  349. package/dist/core/api/v2/parser/__tests__/getModel.test.d.ts +2 -0
  350. package/dist/core/api/v2/parser/__tests__/getModel.test.d.ts.map +1 -0
  351. package/dist/core/api/v2/parser/__tests__/getModel.test.js +34 -0
  352. package/dist/core/api/v2/parser/getModel.d.ts.map +1 -1
  353. package/dist/core/api/v2/parser/getModel.js +6 -1
  354. package/dist/core/api/v2/parser/getOperation.d.ts.map +1 -1
  355. package/dist/core/api/v2/parser/getOperation.js +2 -0
  356. package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
  357. package/dist/core/api/v2/parser/getOperationResponses.js +7 -1
  358. package/dist/core/api/v2/parser/getServiceName.d.ts +1 -1
  359. package/dist/core/api/v2/types/OpenApiSchema.model.d.ts +2 -0
  360. package/dist/core/api/v2/types/OpenApiSchema.model.d.ts.map +1 -1
  361. package/dist/core/api/v3/parser/__tests__/getContent.test.d.ts +2 -0
  362. package/dist/core/api/v3/parser/__tests__/getContent.test.d.ts.map +1 -0
  363. package/dist/core/api/v3/parser/__tests__/getContent.test.js +65 -0
  364. package/dist/core/api/v3/parser/__tests__/getModel.test.d.ts +2 -0
  365. package/dist/core/api/v3/parser/__tests__/getModel.test.d.ts.map +1 -0
  366. package/dist/core/api/v3/parser/__tests__/getModel.test.js +34 -0
  367. package/dist/core/api/v3/parser/getContent.d.ts.map +1 -1
  368. package/dist/core/api/v3/parser/getContent.js +21 -11
  369. package/dist/core/api/v3/parser/getModel.d.ts.map +1 -1
  370. package/dist/core/api/v3/parser/getModel.js +6 -1
  371. package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
  372. package/dist/core/api/v3/parser/getOperation.js +2 -0
  373. package/dist/core/api/v3/parser/getOperationParameters.d.ts.map +1 -1
  374. package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
  375. package/dist/core/api/v3/parser/getOperationResponses.js +7 -1
  376. package/dist/core/api/v3/parser/getServiceName.d.ts +1 -1
  377. package/dist/core/api/v3/types/OpenApiSchema.model.d.ts +2 -0
  378. package/dist/core/api/v3/types/OpenApiSchema.model.d.ts.map +1 -1
  379. package/dist/core/governance/__tests__/evaluateGovernanceRules.test.d.ts +2 -0
  380. package/dist/core/governance/__tests__/evaluateGovernanceRules.test.d.ts.map +1 -0
  381. package/dist/core/governance/__tests__/evaluateGovernanceRules.test.js +100 -0
  382. package/dist/core/governance/__tests__/loadGovernanceConfig.test.d.ts +2 -0
  383. package/dist/core/governance/__tests__/loadGovernanceConfig.test.d.ts.map +1 -0
  384. package/dist/core/governance/__tests__/loadGovernanceConfig.test.js +71 -0
  385. package/dist/core/governance/evaluateGovernanceRules.d.ts +42 -0
  386. package/dist/core/governance/evaluateGovernanceRules.d.ts.map +1 -0
  387. package/dist/core/governance/evaluateGovernanceRules.js +132 -0
  388. package/dist/core/governance/governanceConfigSchema.d.ts +4 -0
  389. package/dist/core/governance/governanceConfigSchema.d.ts.map +1 -0
  390. package/dist/core/governance/governanceConfigSchema.js +39 -0
  391. package/dist/core/governance/loadGovernanceConfig.d.ts +7 -0
  392. package/dist/core/governance/loadGovernanceConfig.d.ts.map +1 -0
  393. package/dist/core/governance/loadGovernanceConfig.js +58 -0
  394. package/dist/core/index.d.ts +3 -0
  395. package/dist/core/index.d.ts.map +1 -1
  396. package/dist/core/index.js +4 -2
  397. package/dist/core/plugins/GeneratorPlugin.model.d.ts +42 -0
  398. package/dist/core/plugins/GeneratorPlugin.model.d.ts.map +1 -0
  399. package/dist/core/plugins/GeneratorPlugin.model.js +2 -0
  400. package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.d.ts +2 -0
  401. package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.d.ts.map +1 -0
  402. package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.js +115 -0
  403. package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.d.ts +2 -0
  404. package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.d.ts.map +1 -0
  405. package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.js +62 -0
  406. package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts +28 -0
  407. package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts.map +1 -0
  408. package/dist/core/plugins/applySemanticDiffPluginHooks.js +160 -0
  409. package/dist/core/plugins/builtins/xTypescriptTypePlugin.d.ts +6 -0
  410. package/dist/core/plugins/builtins/xTypescriptTypePlugin.d.ts.map +1 -0
  411. package/dist/core/plugins/builtins/xTypescriptTypePlugin.js +13 -0
  412. package/dist/core/plugins/getBuiltinPlugins.d.ts +6 -0
  413. package/dist/core/plugins/getBuiltinPlugins.d.ts.map +1 -0
  414. package/dist/core/plugins/getBuiltinPlugins.js +10 -0
  415. package/dist/core/plugins/index.d.ts +4 -0
  416. package/dist/core/plugins/index.d.ts.map +1 -0
  417. package/dist/core/plugins/index.js +5 -0
  418. package/dist/core/plugins/loadGeneratorPlugins.d.ts +6 -0
  419. package/dist/core/plugins/loadGeneratorPlugins.d.ts.map +1 -0
  420. package/dist/core/plugins/loadGeneratorPlugins.js +94 -0
  421. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.d.ts +2 -0
  422. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.d.ts.map +1 -0
  423. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.js +595 -0
  424. package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.d.ts +2 -0
  425. package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.d.ts.map +1 -0
  426. package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.js +85 -0
  427. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts +97 -0
  428. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts.map +1 -0
  429. package/dist/core/semanticDiff/analyzeOpenApiDiff.js +668 -0
  430. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts +16 -0
  431. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts.map +1 -0
  432. package/dist/core/semanticDiff/semanticDiffReportSchema.js +215 -0
  433. package/dist/core/strict/__tests__/validateOpenApiStrict.test.d.ts +2 -0
  434. package/dist/core/strict/__tests__/validateOpenApiStrict.test.d.ts.map +1 -0
  435. package/dist/core/strict/__tests__/validateOpenApiStrict.test.js +156 -0
  436. package/dist/core/strict/validateOpenApiStrict.d.ts +43 -0
  437. package/dist/core/strict/validateOpenApiStrict.d.ts.map +1 -0
  438. package/dist/core/strict/validateOpenApiStrict.js +253 -0
  439. package/dist/core/types/Consts.js +1 -1
  440. package/dist/core/types/DiffReport.model.d.ts +101 -0
  441. package/dist/core/types/DiffReport.model.d.ts.map +1 -0
  442. package/dist/core/types/DiffReport.model.js +5 -0
  443. package/dist/core/types/base/ClientArtifacts.model.d.ts +5 -3
  444. package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -1
  445. package/dist/core/types/base/ExportedModel.model.d.ts +1 -1
  446. package/dist/core/types/base/ExportedModel.model.d.ts.map +1 -1
  447. package/dist/core/types/base/ExportedService.model.d.ts.map +1 -1
  448. package/dist/core/types/base/OutputPaths.model.d.ts.map +1 -1
  449. package/dist/core/types/base/PrefixArtifacts.model.d.ts.map +1 -1
  450. package/dist/core/types/base/PropertyGroup.model.d.ts +1 -1
  451. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts +1 -1
  452. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts.map +1 -1
  453. package/dist/core/types/base/Templates.model.d.ts +4 -0
  454. package/dist/core/types/base/Templates.model.d.ts.map +1 -1
  455. package/dist/core/types/enums/ModelsMode.enum.d.ts +5 -0
  456. package/dist/core/types/enums/ModelsMode.enum.d.ts.map +1 -0
  457. package/dist/core/types/enums/ModelsMode.enum.js +8 -0
  458. package/dist/core/types/shared/Client.model.d.ts +2 -0
  459. package/dist/core/types/shared/Client.model.d.ts.map +1 -1
  460. package/dist/core/types/shared/DiffInfo.model.d.ts +13 -0
  461. package/dist/core/types/shared/DiffInfo.model.d.ts.map +1 -0
  462. package/dist/core/types/shared/DiffInfo.model.js +2 -0
  463. package/dist/core/types/shared/Miracle.model.d.ts +13 -0
  464. package/dist/core/types/shared/Miracle.model.d.ts.map +1 -0
  465. package/dist/core/types/shared/Miracle.model.js +2 -0
  466. package/dist/core/types/shared/Model.model.d.ts +59 -0
  467. package/dist/core/types/shared/Model.model.d.ts.map +1 -1
  468. package/dist/core/types/shared/Operation.model.d.ts +5 -0
  469. package/dist/core/types/shared/Operation.model.d.ts.map +1 -1
  470. package/dist/core/utils/GenerationCache.d.ts +18 -0
  471. package/dist/core/utils/GenerationCache.d.ts.map +1 -0
  472. package/dist/core/utils/GenerationCache.js +41 -0
  473. package/dist/core/utils/__mocks__/templates.d.ts.map +1 -1
  474. package/dist/core/utils/__mocks__/templates.js +10 -0
  475. package/dist/core/utils/__tests__/GenerationCache.test.d.ts +2 -0
  476. package/dist/core/utils/__tests__/GenerationCache.test.d.ts.map +1 -0
  477. package/dist/core/utils/__tests__/GenerationCache.test.js +37 -0
  478. package/dist/core/utils/__tests__/applyDiffReportToClient.test.d.ts +2 -0
  479. package/dist/core/utils/__tests__/applyDiffReportToClient.test.d.ts.map +1 -0
  480. package/dist/core/utils/__tests__/applyDiffReportToClient.test.js +290 -0
  481. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts +2 -0
  482. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts.map +1 -0
  483. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.js +77 -0
  484. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts +2 -0
  485. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts.map +1 -0
  486. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.js +159 -0
  487. package/dist/core/utils/__tests__/getMappedType.test.js +2 -0
  488. package/dist/core/utils/__tests__/getOperationResponseCode.test.js +7 -2
  489. package/dist/core/utils/__tests__/getOperationResults.test.d.ts +2 -0
  490. package/dist/core/utils/__tests__/getOperationResults.test.d.ts.map +1 -0
  491. package/dist/core/utils/__tests__/getOperationResults.test.js +43 -0
  492. package/dist/core/utils/__tests__/loadDiffReport.test.d.ts +2 -0
  493. package/dist/core/utils/__tests__/loadDiffReport.test.d.ts.map +1 -0
  494. package/dist/core/utils/__tests__/loadDiffReport.test.js +246 -0
  495. package/dist/core/utils/__tests__/modelHelpers.test.js +27 -9
  496. package/dist/core/utils/__tests__/postProcessModelImports.test.js +1 -4
  497. package/dist/core/utils/__tests__/postProcessServiceImports.test.js +1 -4
  498. package/dist/core/utils/__tests__/prepareDtoModels.test.d.ts +2 -0
  499. package/dist/core/utils/__tests__/prepareDtoModels.test.d.ts.map +1 -0
  500. package/dist/core/utils/__tests__/prepareDtoModels.test.js +283 -0
  501. package/dist/core/utils/__tests__/registerHandlebarHelpers.test.js +27 -0
  502. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts +2 -0
  503. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts.map +1 -0
  504. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.js +111 -0
  505. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts +2 -0
  506. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts.map +1 -0
  507. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.js +68 -0
  508. package/dist/core/utils/__tests__/serviceHelpers.test.js +11 -11
  509. package/dist/core/utils/__tests__/sortByRequiredExtended.test.js +10 -27
  510. package/dist/core/utils/__tests__/templateRendering.test.d.ts +2 -0
  511. package/dist/core/utils/__tests__/templateRendering.test.d.ts.map +1 -0
  512. package/dist/core/utils/__tests__/templateRendering.test.js +190 -0
  513. package/dist/core/utils/__tests__/writeClientModels.test.js +50 -0
  514. package/dist/core/utils/__tests__/writeFileIfChanged.test.d.ts +2 -0
  515. package/dist/core/utils/__tests__/writeFileIfChanged.test.d.ts.map +1 -0
  516. package/dist/core/utils/__tests__/writeFileIfChanged.test.js +30 -0
  517. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts +2 -0
  518. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts.map +1 -0
  519. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.js +63 -0
  520. package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts +10 -0
  521. package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts.map +1 -0
  522. package/dist/core/utils/adapters/extractMiraclesFromSemantic.js +13 -0
  523. package/dist/core/utils/adapters/index.d.ts +3 -0
  524. package/dist/core/utils/adapters/index.d.ts.map +1 -0
  525. package/dist/core/utils/adapters/index.js +6 -0
  526. package/dist/core/utils/adapters/semanticToStructural.d.ts +12 -0
  527. package/dist/core/utils/adapters/semanticToStructural.d.ts.map +1 -0
  528. package/dist/core/utils/adapters/semanticToStructural.js +36 -0
  529. package/dist/core/utils/applyDiffReportToClient.d.ts +26 -0
  530. package/dist/core/utils/applyDiffReportToClient.d.ts.map +1 -0
  531. package/dist/core/utils/applyDiffReportToClient.js +447 -0
  532. package/dist/core/utils/areEqual.d.ts +1 -1
  533. package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts +25 -0
  534. package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts.map +1 -0
  535. package/dist/core/utils/buildMiraclesFromSemanticChanges.js +146 -0
  536. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts +23 -0
  537. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts.map +1 -0
  538. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.js +163 -0
  539. package/dist/core/utils/getMappedType.d.ts.map +1 -1
  540. package/dist/core/utils/getMappedType.js +2 -0
  541. package/dist/core/utils/getOpenApiSpec.d.ts +6 -0
  542. package/dist/core/utils/getOpenApiSpec.d.ts.map +1 -1
  543. package/dist/core/utils/getOpenApiSpec.js +7 -14
  544. package/dist/core/utils/getOperationErrors.d.ts +2 -2
  545. package/dist/core/utils/getOperationErrors.d.ts.map +1 -1
  546. package/dist/core/utils/getOperationResponseCode.d.ts.map +1 -1
  547. package/dist/core/utils/getOperationResponseCode.js +10 -8
  548. package/dist/core/utils/getOperationResults.d.ts +1 -1
  549. package/dist/core/utils/getPropertyGroupSimple.d.ts.map +1 -1
  550. package/dist/core/utils/getPropertyGroupSimple.js +1 -3
  551. package/dist/core/utils/isSubdirectory.d.ts.map +1 -1
  552. package/dist/core/utils/loadDiffReport.d.ts +20 -0
  553. package/dist/core/utils/loadDiffReport.d.ts.map +1 -0
  554. package/dist/core/utils/loadDiffReport.js +117 -0
  555. package/dist/core/utils/loadSemanticOpenApiSpec.d.ts +15 -0
  556. package/dist/core/utils/loadSemanticOpenApiSpec.d.ts.map +1 -0
  557. package/dist/core/utils/loadSemanticOpenApiSpec.js +61 -0
  558. package/dist/core/utils/modelHelpers.d.ts +13 -5
  559. package/dist/core/utils/modelHelpers.d.ts.map +1 -1
  560. package/dist/core/utils/modelHelpers.js +28 -23
  561. package/dist/core/utils/normalizeString.d.ts.map +1 -1
  562. package/dist/core/utils/normalizeString.js +1 -5
  563. package/dist/core/utils/postProcessServiceImports.d.ts.map +1 -1
  564. package/dist/core/utils/postProcessServiceImports.js +1 -3
  565. package/dist/core/utils/precompileTemplates.js +4 -2
  566. package/dist/core/utils/prepareAlias.d.ts +1 -1
  567. package/dist/core/utils/prepareDtoModels.d.ts +8 -0
  568. package/dist/core/utils/prepareDtoModels.d.ts.map +1 -0
  569. package/dist/core/utils/prepareDtoModels.js +226 -0
  570. package/dist/core/utils/registerHandlebarHelpers.d.ts +1 -0
  571. package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
  572. package/dist/core/utils/registerHandlebarHelpers.js +7 -1
  573. package/dist/core/utils/registerHandlebarTemplates.d.ts +1 -0
  574. package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
  575. package/dist/core/utils/registerHandlebarTemplates.js +8 -0
  576. package/dist/core/utils/resolveClassesModeTypes.d.ts +8 -0
  577. package/dist/core/utils/resolveClassesModeTypes.d.ts.map +1 -0
  578. package/dist/core/utils/resolveClassesModeTypes.js +77 -0
  579. package/dist/core/utils/semanticChangesToDiffEntries.d.ts +28 -0
  580. package/dist/core/utils/semanticChangesToDiffEntries.d.ts.map +1 -0
  581. package/dist/core/utils/semanticChangesToDiffEntries.js +98 -0
  582. package/dist/core/utils/semanticPointerToJsonPath.d.ts +7 -0
  583. package/dist/core/utils/semanticPointerToJsonPath.d.ts.map +1 -0
  584. package/dist/core/utils/semanticPointerToJsonPath.js +67 -0
  585. package/dist/core/utils/serviceHelpers.d.ts +6 -7
  586. package/dist/core/utils/serviceHelpers.d.ts.map +1 -1
  587. package/dist/core/utils/serviceHelpers.js +8 -25
  588. package/dist/core/utils/sortModelByName.d.ts +1 -1
  589. package/dist/core/utils/validateRawOptions.d.ts +1 -1
  590. package/dist/core/utils/validateRawOptions.d.ts.map +1 -1
  591. package/dist/core/utils/validateRawOptions.js +6 -4
  592. package/dist/core/utils/writeClientCore.d.ts +4 -0
  593. package/dist/core/utils/writeClientCore.d.ts.map +1 -1
  594. package/dist/core/utils/writeClientCore.js +44 -17
  595. package/dist/core/utils/writeClientCoreIndex.d.ts +1 -0
  596. package/dist/core/utils/writeClientCoreIndex.d.ts.map +1 -1
  597. package/dist/core/utils/writeClientCoreIndex.js +16 -6
  598. package/dist/core/utils/writeClientExecutor.d.ts +1 -1
  599. package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
  600. package/dist/core/utils/writeClientExecutor.js +6 -7
  601. package/dist/core/utils/writeClientFullIndex.d.ts.map +1 -1
  602. package/dist/core/utils/writeClientFullIndex.js +7 -5
  603. package/dist/core/utils/writeClientModels.d.ts +5 -0
  604. package/dist/core/utils/writeClientModels.d.ts.map +1 -1
  605. package/dist/core/utils/writeClientModels.js +29 -10
  606. package/dist/core/utils/writeClientModelsIndex.d.ts +2 -0
  607. package/dist/core/utils/writeClientModelsIndex.d.ts.map +1 -1
  608. package/dist/core/utils/writeClientModelsIndex.js +16 -6
  609. package/dist/core/utils/writeClientSchemas.d.ts +1 -1
  610. package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
  611. package/dist/core/utils/writeClientSchemas.js +9 -10
  612. package/dist/core/utils/writeClientSchemasIndex.d.ts.map +1 -1
  613. package/dist/core/utils/writeClientSchemasIndex.js +14 -4
  614. package/dist/core/utils/writeClientServices.d.ts +15 -14
  615. package/dist/core/utils/writeClientServices.d.ts.map +1 -1
  616. package/dist/core/utils/writeClientServices.js +12 -15
  617. package/dist/core/utils/writeClientServicesIndex.d.ts.map +1 -1
  618. package/dist/core/utils/writeClientServicesIndex.js +14 -4
  619. package/dist/core/utils/writeClientSimpleIndex.js +4 -4
  620. package/dist/core/utils/writeFileIfChanged.d.ts +3 -0
  621. package/dist/core/utils/writeFileIfChanged.d.ts.map +1 -0
  622. package/dist/core/utils/writeFileIfChanged.js +22 -0
  623. package/dist/templatesCompiled/cli/customCreateExecutorAdapter.d.ts +8 -0
  624. package/dist/templatesCompiled/cli/customCreateExecutorAdapter.d.ts.map +1 -0
  625. package/dist/templatesCompiled/cli/customCreateExecutorAdapter.js +18 -0
  626. package/dist/templatesCompiled/cli/customRequest.js +7 -7
  627. package/dist/templatesCompiled/cli/customRequestExecutor.js +7 -7
  628. package/dist/templatesCompiled/cli/openApiConfig.d.ts +4 -1
  629. package/dist/templatesCompiled/cli/openApiConfig.d.ts.map +1 -1
  630. package/dist/templatesCompiled/cli/openApiConfig.js +88 -37
  631. package/dist/templatesCompiled/client/core/ApiError.js +1 -1
  632. package/dist/templatesCompiled/client/core/ApiRequestOptions.js +1 -1
  633. package/dist/templatesCompiled/client/core/BaseDto.d.ts +8 -0
  634. package/dist/templatesCompiled/client/core/BaseDto.d.ts.map +1 -0
  635. package/dist/templatesCompiled/client/core/BaseDto.js +18 -0
  636. package/dist/templatesCompiled/client/core/axios/getResponseBody.js +1 -1
  637. package/dist/templatesCompiled/client/core/axios/request.js +2 -2
  638. package/dist/templatesCompiled/client/core/axios/sendRequest.js +4 -4
  639. package/dist/templatesCompiled/client/core/dtoUtils.d.ts +8 -0
  640. package/dist/templatesCompiled/client/core/dtoUtils.d.ts.map +1 -0
  641. package/dist/templatesCompiled/client/core/dtoUtils.js +18 -0
  642. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts +0 -6
  643. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts.map +1 -1
  644. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.js +3 -22
  645. package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.d.ts +11 -0
  646. package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.d.ts.map +1 -0
  647. package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.js +28 -0
  648. package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts +2 -0
  649. package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts.map +1 -1
  650. package/dist/templatesCompiled/client/core/executor/requestExecutor.js +8 -2
  651. package/dist/templatesCompiled/client/core/fetch/getResponseBody.js +1 -1
  652. package/dist/templatesCompiled/client/core/fetch/request.js +2 -2
  653. package/dist/templatesCompiled/client/core/functions/catchErrors.js +1 -1
  654. package/dist/templatesCompiled/client/core/functions/isBinary.js +1 -1
  655. package/dist/templatesCompiled/client/core/interceptors/apiErrorInterceptor.js +1 -1
  656. package/dist/templatesCompiled/client/core/interceptors/interceptors.js +1 -1
  657. package/dist/templatesCompiled/client/core/interceptors/withInterceptors.js +1 -1
  658. package/dist/templatesCompiled/client/core/node/getResponseBody.js +1 -1
  659. package/dist/templatesCompiled/client/core/node/request.js +2 -2
  660. package/dist/templatesCompiled/client/core/xhr/getResponseBody.js +1 -1
  661. package/dist/templatesCompiled/client/core/xhr/request.js +2 -2
  662. package/dist/templatesCompiled/client/core/xhr/sendRequest.js +4 -4
  663. package/dist/templatesCompiled/client/exportClient.d.ts +0 -4
  664. package/dist/templatesCompiled/client/exportClient.d.ts.map +1 -1
  665. package/dist/templatesCompiled/client/exportClient.js +9 -45
  666. package/dist/templatesCompiled/client/exportModels.d.ts +40 -0
  667. package/dist/templatesCompiled/client/exportModels.d.ts.map +1 -0
  668. package/dist/templatesCompiled/client/exportModels.js +327 -0
  669. package/dist/templatesCompiled/client/exportService.d.ts +13 -7
  670. package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
  671. package/dist/templatesCompiled/client/exportService.js +109 -62
  672. package/dist/templatesCompiled/client/indexCore.d.ts +3 -1
  673. package/dist/templatesCompiled/client/indexCore.d.ts.map +1 -1
  674. package/dist/templatesCompiled/client/indexCore.js +14 -3
  675. package/dist/templatesCompiled/client/indexFull.d.ts +9 -7
  676. package/dist/templatesCompiled/client/indexFull.d.ts.map +1 -1
  677. package/dist/templatesCompiled/client/indexFull.js +59 -41
  678. package/dist/templatesCompiled/client/indexModels.d.ts +7 -5
  679. package/dist/templatesCompiled/client/indexModels.d.ts.map +1 -1
  680. package/dist/templatesCompiled/client/indexModels.js +27 -18
  681. package/dist/templatesCompiled/client/indexSimple.js +2 -2
  682. package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.d.ts +27 -19
  683. package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.d.ts.map +1 -1
  684. package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.js +144 -63
  685. package/dist/templatesCompiled/client/jsonschema/exportSchema.d.ts +1 -0
  686. package/dist/templatesCompiled/client/jsonschema/exportSchema.d.ts.map +1 -1
  687. package/dist/templatesCompiled/client/jsonschema/exportSchema.js +17 -13
  688. package/dist/templatesCompiled/client/partials/exportInterface.d.ts +13 -5
  689. package/dist/templatesCompiled/client/partials/exportInterface.d.ts.map +1 -1
  690. package/dist/templatesCompiled/client/partials/exportInterface.js +91 -21
  691. package/dist/templatesCompiled/client/partials/header.d.ts +1 -0
  692. package/dist/templatesCompiled/client/partials/header.d.ts.map +1 -1
  693. package/dist/templatesCompiled/client/partials/header.js +11 -2
  694. package/dist/templatesCompiled/client/partials/result.d.ts +6 -4
  695. package/dist/templatesCompiled/client/partials/result.d.ts.map +1 -1
  696. package/dist/templatesCompiled/client/partials/result.js +16 -6
  697. package/dist/templatesCompiled/client/partials/serviceOption.d.ts +1 -0
  698. package/dist/templatesCompiled/client/partials/serviceOption.d.ts.map +1 -1
  699. package/dist/templatesCompiled/client/partials/serviceOption.js +11 -4
  700. package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.d.ts +22 -16
  701. package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.d.ts.map +1 -1
  702. package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.js +72 -60
  703. package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.d.ts +27 -19
  704. package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.d.ts.map +1 -1
  705. package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.js +77 -61
  706. package/dist/test/helpers/silenceLoggers.d.ts +11 -0
  707. package/dist/test/helpers/silenceLoggers.d.ts.map +1 -0
  708. package/dist/test/helpers/silenceLoggers.js +88 -0
  709. package/package.json +132 -134
  710. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts +0 -4
  711. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts.map +0 -1
  712. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.js +0 -21
  713. package/dist/core/utils/appendUniqueLinesToFile.d.ts +0 -2
  714. package/dist/core/utils/appendUniqueLinesToFile.d.ts.map +0 -1
  715. package/dist/core/utils/appendUniqueLinesToFile.js +0 -24
package/README.rus.md CHANGED
@@ -14,7 +14,6 @@
14
14
  ![lines-image]
15
15
  ![Minimum node.js version](https://badgen.net/npm/node/next)
16
16
 
17
-
18
17
  > Node.js библиотека, которая генерирует клиенты Typescript на основе спецификации OpenAPI.
19
18
 
20
19
  ## Почему?
@@ -28,864 +27,47 @@
28
27
  - Поддерживает tsc и @babel/plugin-transform-typescript
29
28
  - Поддерживает кастомизацию имен моделей
30
29
  - Поддерживает внешние ссылки с помощью [`swagger-parser`](https://github.com/APIDevTools/swagger-parser/)
30
+ - Поддерживает strict-диагностику OpenAPI с JSON-отчетом (`--strict-openapi`, `--report-file`)
31
+ - Поддерживает плагины генератора (`plugins`), включая встроенный `x-typescript-type`
32
+ - Поддерживает генерацию бинарных request/response (`format: binary` -> `Blob`)
33
+ - Поддерживает opt-in кэш генерации и инкрементальную запись (`--cache`, `--cachePath`, `--cacheStrategy`, `--cacheDebug`)
34
+ - Сгенерированные сервисы принимают `RequestExecutor` в конструкторе (`request` / `requestRaw`, interceptors, `customExecutorPath` / `createExecutorAdapter`, `createLegacyRequestAdapter`)
35
+ - CLI `init --requestFormat` создаёт scaffold кастомного HTTP-слоя: legacy transport, `createExecutorAdapter` или автономный `RequestExecutor`
36
+ - `check-config` проверяет наличие файлов `request` / `customExecutorPath` и экспорт `createExecutorAdapter`
37
+ - Опциональное форматирование вывода через `prettierConfigPath` (явный путь к конфигу Prettier)
38
+ - Опциональный пакетный ESLint `--fix` после генерации при указании `tsconfigPath` и `eslintConfigPath`
39
+ - Поддерживает унифицированный отчёт `analyze-diff` (`schemaVersion: 2.0.0`) с отдельными секциями `semantic` (CI/governance) и `structural` (генерация)
40
+ - Восстанавливает совместимость `generate --useHistory` с semantic diff-отчётами (ghost operations/properties, coercion, rename miracles)
41
+ - Использует селективное раскрытие OpenAPI `$ref` в analyze-diff для более быстрого и безопасного сравнения
42
+ - Автоматическое обнаружение RENAME / TYPE_COERCION miracles из semantic-изменений свойств
31
43
 
32
44
  ## Установка
33
45
 
34
- ```
35
- npm install ts-openapi-codegen --save-dev
36
- ```
37
-
38
- ## Использование
39
-
40
- CLI инструмент поддерживает пять команд: `generate`, `check-config`, `update-config`, `init` и `preview-changes`.
41
-
42
- ### Команда: `generate`
43
-
44
- Генерирует TypeScript клиент на основе спецификаций OpenAPI.
45
-
46
- **Базовое использование:**
47
- ```bash
48
- openapi generate --input ./spec.json --output ./dist
49
- ```
50
-
51
- **Все доступные опции:**
52
-
53
- | Опция | Короткая | Тип | По умолчанию | Описание |
54
- |-------|----------|-----|--------------|----------|
55
- | `--input` | `-i` | string | - | Спецификация OpenAPI (путь, URL или строковое содержимое) - **обязательно** |
56
- | `--output` | `-o` | string | - | Выходная директория - **обязательно** |
57
- | `--openapi-config` | `-ocn` | string | `openapi.config.json` | Путь к файлу конфигурации |
58
- | `--outputCore` | `-oc` | string | `{output}` | Выходная директория для core файлов |
59
- | `--outputServices` | `-os` | string | `{output}` | Выходная директория для сервисов |
60
- | `--outputModels` | `-om` | string | `{output}` | Выходная директория для моделей |
61
- | `--outputSchemas` | `-osm` | string | `{output}` | Выходная директория для схем |
62
- | `--httpClient` | `-c` | string | `fetch` | HTTP клиент для генерации: `fetch`, `xhr`, `node`, или `axios` |
63
- | `--useOptions` | - | boolean | `false` | Использовать опции вместо аргументов |
64
- | `--useUnionTypes` | - | boolean | `false` | Использовать union типы вместо enums |
65
- | `--excludeCoreServiceFiles` | - | boolean | `false` | Исключить генерацию core и сервисных файлов |
66
- | `--request` | - | string | - | Путь к пользовательскому файлу запросов |
67
- | `--customExecutorPath` | - | string | - | Путь к пользовательскому модулю `createExecutorAdapter` |
68
- | `--interfacePrefix` | - | string | `I` | Префикс для интерфейсов моделей |
69
- | `--enumPrefix` | - | string | `E` | Префикс для enum моделей |
70
- | `--typePrefix` | - | string | `T` | Префикс для type моделей |
71
- | `--useCancelableRequest` | - | boolean | `false` | Использовать отменяемый promise как тип возврата |
72
- | `--sortByRequired` | `-s` | boolean | `false` | Использовать расширенную стратегию сортировки для аргументов функций |
73
- | `--useSeparatedIndexes` | - | boolean | `false` | Использовать отдельные index файлы для core, models, schemas и services |
74
- | `--logLevel` | `-l` | string | `error` | Уровень логирования: `info`, `warn`, или `error` |
75
- | `--logTarget` | `-t` | string | `console` | Цель логирования: `console` или `file` |
76
- | `--validationLibrary` | - | string | `none` | Библиотека валидации для генерации схем: `none`, `zod`, `joi`, `yup`, или `jsonschema` |
77
- | `--emptySchemaStrategy` | - | string | `keep` | Стратегия для пустых схем: `keep`, `semantic`, или `skip` |
78
-
79
- **Примеры:**
80
- ```bash
81
- # Базовая генерация
82
- openapi generate --input ./spec.json --output ./dist
83
-
84
- # С пользовательским HTTP клиентом
85
- openapi generate --input ./spec.json --output ./dist --httpClient axios
86
-
87
- # С файлом конфигурации
88
- openapi generate --openapi-config ./my-config.json
89
-
90
- # Со всеми опциями через CLI
91
- openapi generate \
92
- --input ./spec.json \
93
- --output ./dist \
94
- --httpClient fetch \
95
- --useOptions \
96
- --useUnionTypes \
97
- --logLevel info
98
- ```
99
-
100
- ### Команда: `check-config`
101
-
102
- Проверяет структуру и значения файла конфигурации.
103
-
104
- **Использование:**
105
- ```bash
106
- openapi check-config
107
- openapi check-config --openapi-config ./custom-config.json
108
- ```
109
-
110
- **Опции:**
111
- - `--openapi-config` / `-ocn` - Путь к файлу конфигурации (по умолчанию: `openapi.config.json`)
112
-
113
- ### Команда: `update-config`
114
-
115
- Обновляет файл конфигурации до последней поддерживаемой версии схемы.
116
-
117
- **Использование:**
118
- ```bash
119
- openapi update-config
120
- openapi update-config --openapi-config ./custom-config.json
121
- ```
122
-
123
- **Опции:**
124
- - `--openapi-config` / `-ocn` - Путь к файлу конфигурации (по умолчанию: `openapi.config.json`)
125
-
126
- ### Команда: `init`
127
-
128
- Генерирует шаблон файла конфигурации.
129
-
130
- **Использование:**
131
- ```bash
132
- # Генерация шаблона с настройками по умолчанию
133
- openapi init
134
-
135
- # Пользовательское имя файла конфигурации
136
- openapi init --openapi-config ./my-config.json
137
-
138
- # Явно указать директорию со спецификациями OpenAPI
139
- openapi init --specs-dir ./openapi
140
- ```
141
-
142
- **Опции:**
143
- - `--openapi-config` / `-ocn` - Путь к выходному файлу конфигурации (по умолчанию: `openapi.config.json`)
144
- - `--specs-dir` / `-sd` - Директория с файлами OpenAPI спецификаций (по умолчанию: `./openapi`)
145
- - `--request` - Путь к пользовательскому request-файлу
146
- - `--useCancelableRequest` - Включить генерацию cancelable request
147
- - `--useInteractiveMode` - Включить интерактивный режим настройки
148
-
149
- ### Команда: `preview-changes`
150
-
151
- Показывает различия между уже сгенерированным кодом и новым результатом генерации без перезаписи текущей директории generated-кода.
152
-
153
- **Использование:**
154
- ```bash
155
- openapi preview-changes
156
- openapi preview-changes --openapi-config ./custom-config.json
157
- ```
158
-
159
- **Опции:**
160
- - `--openapi-config` / `-ocn` - Путь к файлу конфигурации (по умолчанию: `openapi.config.json`)
161
- - `--generated-dir` / `-gd` - Директория с текущим generated-кодом (по умолчанию: `./generated`)
162
- - `--preview-dir` / `-pd` - Временная директория для preview-генерации (по умолчанию: `./.ts-openapi-codegen-preview-changes`)
163
- - `--diff-dir` / `-dd` - Директория для diff-отчетов (по умолчанию: `./.ts-openapi-codegen-diff-changes`)
164
-
165
- ### Файл конфигурации
166
-
167
- Вместо передачи всех опций через CLI, вы можете использовать файл конфигурации. Создайте `openapi.config.json` в корне вашего проекта:
168
-
169
- **Формат с одним набором опций:**
170
- ```json
171
- {
172
- "input": "./spec.json",
173
- "output": "./dist",
174
- "client": "fetch",
175
- "useOptions": false,
176
- "useUnionTypes": false,
177
- "excludeCoreServiceFiles": false,
178
- "interfacePrefix": "I",
179
- "enumPrefix": "E",
180
- "typePrefix": "T",
181
- "useCancelableRequest": false,
182
- "sortByRequired": false,
183
- "useSeparatedIndexes": false,
184
- "request": "./custom-request.ts",
185
- "customExecutorPath": "./custom/createExecutorAdapter.ts"
186
- }
187
- ```
188
-
189
- **Формат с несколькими наборами опций (с общим блоком):**
190
- ```json
191
- {
192
- "output": "./dist",
193
- "client": "fetch",
194
- "excludeCoreServiceFiles": true,
195
- "items": [
196
- {
197
- "input": "./first.yml"
198
- },
199
- {
200
- "input": "./second.yml",
201
- "output": "./dist-v2"
202
- }
203
- ]
204
- }
205
- ```
206
-
207
- **Формат массива (несколько конфигураций):**
208
- ```json
209
- [
210
- {
211
- "input": "./first.yml",
212
- "output": "./dist",
213
- "client": "xhr"
214
- },
215
- {
216
- "input": "./second.yml",
217
- "output": "./dist",
218
- "client": "fetch"
219
- }
220
- ]
221
- ```
222
-
223
- | Имя | Тип | По умолчанию | Описание |
224
- |-----|-----|--------------|----------|
225
- | `input` | string | - | Путь/URL спецификации OpenAPI (обязательно для items) |
226
- | `output` | string | - | Выходная директория (обязательно) |
227
- | `outputCore` | string | `{output}` | Выходная директория для core файлов |
228
- | `outputServices` | string | `{output}` | Выходная директория для сервисов |
229
- | `outputModels` | string | `{output}` | Выходная директория для моделей |
230
- | `outputSchemas` | string | `{output}` | Выходная директория для схем |
231
- | `client` | string | `fetch` | HTTP клиент: `fetch`, `xhr`, `node`, или `axios` |
232
- | `useOptions` | boolean | `false` | Использовать опции вместо аргументов |
233
- | `useUnionTypes` | boolean | `false` | Использовать union типы вместо enums |
234
- | `excludeCoreServiceFiles` | boolean | `false` | Исключить генерацию core и сервисных файлов |
235
- | `request` | string | - | Путь к пользовательскому файлу запросов |
236
- | `customExecutorPath` | string | - | Путь к пользовательскому модулю `createExecutorAdapter` |
237
- | `interfacePrefix` | string | `I` | Префикс для интерфейсов моделей |
238
- | `enumPrefix` | string | `E` | Префикс для enum моделей |
239
- | `typePrefix` | string | `T` | Префикс для type моделей |
240
- | `useCancelableRequest` | boolean | `false` | Использовать отменяемый promise как тип возврата |
241
- | `sortByRequired` | boolean | `false` | Расширенная стратегия сортировки для аргументов |
242
- | `useSeparatedIndexes` | boolean | `false` | Использовать отдельные index файлы |
243
- | `items` | array | - | Массив конфигураций (для формата multi-options) |
244
- | `validationLibrary` | string | `none` | Библиотека валидации для генерации схем: `none`, `zod`, `joi`, `yup`, или `jsonschema` |
245
- | `emptySchemaStrategy` | string | `keep` | Стратегия для пустых схем: `keep`, `semantic`, или `skip` |
246
-
247
- **Примечание:** Вы можете использовать команду `init` для генерации шаблона файла конфигурации.
248
-
249
- ## Примеры
250
-
251
- ### Использование CLI команд
252
-
253
- **Базовая генерация:**
254
- ```bash
255
- openapi generate --input ./spec.json --output ./dist
256
- ```
257
-
258
- **С файлом конфигурации:**
259
- ```bash
260
- # Сначала создайте файл конфигурации
261
- openapi init
262
-
263
- # Затем выполните генерацию
264
- openapi generate
265
- ```
266
-
267
- **Проверка конфигурации:**
268
46
  ```bash
269
- openapi check-config
270
- openapi update-config
47
+ npm install ts-openapi-codegen --save-dev
271
48
  ```
272
49
 
273
- **Предпросмотр изменений перед применением:**
274
- ```bash
275
- openapi preview-changes
276
- ```
50
+ ## Agent Skills
277
51
 
278
- ### Использование NPX
52
+ Для AI-агентов в пакете есть [Agent Skills](https://agentskills.io) по RequestExecutor и Marauder. После установки:
279
53
 
280
54
  ```bash
281
- npx ts-openapi-codegen generate --input ./spec.json --output ./dist
282
- ```
283
-
284
- ### Использование скриптов в package.json
285
-
286
- **package.json**
287
- ```json
288
- {
289
- "scripts": {
290
- "generate": "openapi generate --input ./spec.json --output ./dist",
291
- "generate:config": "openapi generate",
292
- "check-config": "openapi check-config",
293
- "update-config": "openapi update-config",
294
- "init-config": "openapi init",
295
- "preview-changes": "openapi preview-changes"
296
- }
297
- }
298
- ```
299
-
300
- ### Node.js API
301
-
302
- ```javascript
303
- const OpenAPI = require('ts-openapi-codegen');
304
-
305
- OpenAPI.generate({
306
- input: './spec.json',
307
- output: './dist'
308
- });
309
-
310
- // Или передав содержимое спецификации напрямую 🚀
311
- OpenAPI.generate({
312
- input: require('./spec.json'),
313
- output: './dist'
314
- });
315
- ```
316
-
317
-
318
- ## Возможности
319
-
320
- ### HTTP Клиенты
321
-
322
- Генератор поддерживает несколько HTTP клиентов:
323
- - **fetch** (по умолчанию) - Browser Fetch API
324
- - **xhr** - XMLHttpRequest
325
- - **node** - Node.js совместимый клиент, использующий `node-fetch`
326
- - **axios** - Axios HTTP клиент
327
-
328
- Выберите клиент используя опцию `--httpClient` или свойство `client` в файле конфигурации.
329
-
330
- ### Стиль аргументов vs. Стиль объектов `--useOptions`
331
- В JavaScript или TypeScript нет [именованных параметров](https://en.wikipedia.org/wiki/Named_parameter), поэтому
332
- мы предлагаем флаг `--useOptions` для генерации кода в двух разных стилях.
333
-
334
- **Стиль аргументов:**
335
- ```typescript
336
- function createUser(name: string, password: string, type?: string, address?: string) {
337
- // ...
338
- }
339
-
340
- // Использование
341
- createUser('Jack', '123456', undefined, 'NY US');
342
- ```
343
-
344
- **Стиль объектов:**
345
- ```typescript
346
- function createUser({ name, password, type, address }: {
347
- name: string,
348
- password: string,
349
- type?: string
350
- address?: string
351
- }) {
352
- // ...
353
- }
354
-
355
- // Использование
356
- createUser({
357
- name: 'Jack',
358
- password: '123456',
359
- address: 'NY US'
360
- });
361
- ```
362
-
363
- ### Enums vs. Union Types `--useUnionTypes`
364
- Спецификация OpenAPI позволяет определять [enums](https://swagger.io/docs/specification/data-models/enums/) внутри
365
- модели данных. По умолчанию мы конвертируем эти определения enums в [TypeScript enums](https://www.typescriptlang.org/docs/handbook/enums.html).
366
- Однако эти enums объединяются внутри namespace модели, что не поддерживается Babel, [см. документацию](https://babeljs.io/docs/en/babel-plugin-transform-typescript#impartial-namespace-support).
367
- Поскольку мы также хотим поддерживать проекты, использующие Babel [@babel/plugin-transform-typescript](https://babeljs.io/docs/en/babel-plugin-transform-typescript),
368
- мы предлагаем флаг `--useUnionTypes` для генерации [union типов](https://www.typescriptlang.org/docs/handbook/unions-and-intersections.html#union-types)
369
- вместо традиционных enums. Разницу можно увидеть ниже:
370
-
371
- **Enums:**
372
- ```typescript
373
- // Модель
374
- export interface Order {
375
- id?: number;
376
- quantity?: number;
377
- status?: Order.status;
378
- }
379
-
380
- export namespace Order {
381
- export enum status {
382
- PLACED = 'placed',
383
- APPROVED = 'approved',
384
- DELIVERED = 'delivered',
385
- }
386
- }
387
-
388
- // Использование
389
- const order: Order = {
390
- id: 1,
391
- quantity: 40,
392
- status: Order.status.PLACED
393
- }
394
- ```
395
-
396
- **Union Types:**
397
- ```typescript
398
- // Модель
399
- export interface Order {
400
- id?: number;
401
- quantity?: number;
402
- status?: 'placed' | 'approved' | 'delivered';
403
- }
404
-
405
- // Использование
406
- const order: Order = {
407
- id: 1,
408
- quantity: 40,
409
- status: 'placed'
410
- }
55
+ cp -r node_modules/ts-openapi-codegen/skills ./openapi-codegen-skills
411
56
  ```
412
57
 
413
- ### Схемы проверки `--validationLibrary`
414
- По умолчанию генератор OpenAPI экспортирует только интерфейсы для ваших моделей. Эти интерфейсы помогут вам во время
415
- разработки, но не будут доступны в JavaScript во время выполнения. Однако OpenAPI позволяет определять свойства,
416
- которые могут быть полезны во время выполнения, например: `maxLength` строки или `pattern` для сопоставления и т.д.
58
+ Подробнее: [skills/README.md](skills/README.md) пути для Cursor, Claude Code, Codex и список навыков.
417
59
 
418
- Параметр `--validationLibrary` позволяет генерировать схемы валидации времени выполнения с использованием популярных библиотек валидации:
419
- - **none** (по умолчанию) - Схемы валидации не генерируются
420
- - **zod** - Генерация схем валидации Zod
421
- - **joi** - Генерация схем валидации Joi
422
- - **yup** - Генерация схем валидации Yup
423
- - **jsonschema** - Генерация схем валидации JSON Schema
60
+ ## Документация
424
61
 
425
- Допустим, у нас есть следующая модель:
426
-
427
- ```json
428
- {
429
- "MyModel": {
430
- "required": [
431
- "key",
432
- "name"
433
- ],
434
- "type": "object",
435
- "properties": {
436
- "key": {
437
- "maxLength": 64,
438
- "pattern": "^[a-zA-Z0-9_]*$",
439
- "type": "string"
440
- },
441
- "name": {
442
- "maxLength": 255,
443
- "type": "string"
444
- },
445
- "enabled": {
446
- "type": "boolean",
447
- "readOnly": true
448
- },
449
- "modified": {
450
- "type": "string",
451
- "format": "date-time",
452
- "readOnly": true
453
- }
454
- }
455
- }
456
- }
457
- ```
458
-
459
- **С Zod (`--validationLibrary zod`):**
460
-
461
- ```ts
462
- import { z } from 'zod';
463
-
464
- export const MyModelSchema = z.object({
465
- key: z.string().max(64).regex(/^[a-zA-Z0-9_]*$/),
466
- name: z.string().max(255),
467
- enabled: z.boolean().readonly().optional(),
468
- modified: z.string().datetime().readonly().optional(),
469
- });
470
-
471
- export type MyModel = z.infer<typeof MyModelSchema>;
472
-
473
- export function validateMyModel(data: unknown): MyModel {
474
- return MyModelSchema.parse(data);
475
- }
476
-
477
- export function safeValidateMyModel(data: unknown): { success: true; data: MyModel } | { success: false; error: z.ZodError } {
478
- const result = MyModelSchema.safeParse(data);
479
- if (result.success) {
480
- return { success: true, data: result.data };
481
- }
482
- return { success: false, error: result.error };
483
- }
484
- ```
485
-
486
- **С Joi (`--validationLibrary joi`):**
487
-
488
- ```ts
489
- import Joi from 'joi';
490
-
491
- export const MyModelSchema = Joi.object({
492
- key: Joi.string().max(64).pattern(/^[a-zA-Z0-9_]*$/).required(),
493
- name: Joi.string().max(255).required(),
494
- enabled: Joi.boolean().readonly(),
495
- modified: Joi.string().isoDate().readonly(),
496
- });
497
- ```
498
-
499
- **С Yup (`--validationLibrary yup`):**
500
-
501
- ```ts
502
- import * as yup from 'yup';
503
-
504
- export const MyModelSchema = yup.object({
505
- key: yup.string().max(64).matches(/^[a-zA-Z0-9_]*$/).required(),
506
- name: yup.string().max(255).required(),
507
- enabled: yup.boolean().readonly(),
508
- modified: yup.string().datetime().readonly(),
509
- });
510
- ```
511
-
512
- **С JSON Schema (`--validationLibrary jsonschema`):**
513
-
514
- ```ts
515
- export const MyModelSchema = {
516
- type: 'object',
517
- required: ['key', 'name'],
518
- properties: {
519
- key: {
520
- type: 'string',
521
- maxLength: 64,
522
- pattern: '^[a-zA-Z0-9_]*$',
523
- },
524
- name: {
525
- type: 'string',
526
- maxLength: 255,
527
- },
528
- enabled: {
529
- type: 'boolean',
530
- readOnly: true,
531
- },
532
- modified: {
533
- type: 'string',
534
- format: 'date-time',
535
- readOnly: true,
536
- },
537
- },
538
- };
539
- ```
540
-
541
- Эти схемы валидации могут быть использованы для генерации форм, валидации ввода и проверки типов во время выполнения в вашем приложении.
542
-
543
- ### Отменяемый promise `--useCancelableRequest`
544
- По умолчанию генератор OpenAPI генерирует сервисы для доступа к API, которые используют неотменяемые запросы. Поэтому мы добавили возможность переключить генератор на генерацию отменяемых API запросов. Для этого используйте флаг `--useCancelableRequest`.
545
- Пример отменяемого запроса будет выглядеть так:
546
-
547
- ```typescript
548
- export function request<T>(config: TOpenAPIConfig, options: ApiRequestOptions): CancelablePromise<T> {
549
- return new CancelablePromise(async(resolve, reject, onCancel) => {
550
- const url = `${config.BASE}${options.path}`.replace('{api-version}', config.VERSION);
551
- try {
552
- if (!onCancel.isCancelled) {
553
- const response = await sendRequest(options, url, config, onCancel);
554
- const responseBody = await getResponseBody(response);
555
- const responseHeader = getResponseHeader(response, options.responseHeader);
556
- const result: ApiResult = {
557
- url,
558
- ok: response.ok,
559
- status: response.status,
560
- statusText: response.statusText,
561
- body: responseHeader || responseBody,
562
- };
563
-
564
- catchErrors(options, result);
565
- resolve(result.body);
566
- }
567
- } catch (e) {
568
- reject(e);
569
- }
570
- });
571
- }
572
- ```
573
-
574
- ### RequestExecutor
575
-
576
- Начиная с версии **2.0.0**, сгенерированные сервисы используют интерфейс `RequestExecutor`
577
- вместо прямых вызовов core-функции `request`.
578
-
579
- `RequestExecutor` — это единая точка интеграции HTTP-логики, отвечающая за выполнение запросов
580
- и расширение поведения клиента. Он позволяет:
581
- - использовать любой транспорт (fetch / axios / xhr / custom);
582
- - централизованно обрабатывать запросы, ответы и ошибки;
583
- - расширять поведение клиента без изменения сгенерированных сервисов.
584
-
585
- #### Interceptors
586
-
587
- `RequestExecutor` поддерживает **interceptors**, которые позволяют внедрять дополнительную
588
- логику на разных этапах жизненного цикла запроса:
589
-
590
- - `onRequest` — модификация запроса перед отправкой (headers, auth, логирование);
591
- - `onResponse` — обработка успешных ответов;
592
- - `onError` — централизованная обработка ошибок.
593
-
594
- Interceptors применяются на уровне executor’а и автоматически используются всеми
595
- сгенерированными сервисами.
596
-
597
- ```ts
598
- import { createClient } from './generated';
599
-
600
- const client = createClient({
601
- interceptors: {
602
- onRequest: [
603
- (config) => ({
604
- ...config,
605
- headers: {
606
- ...config.headers,
607
- Authorization: 'Bearer token',
608
- },
609
- }),
610
- ],
611
- onError: [
612
- (error) => {
613
- console.error(error);
614
- throw error;
615
- },
616
- ],
617
- },
618
- });
619
- ```
620
-
621
- #### Пользовательская реализация RequestExecutor с interceptors
622
-
623
- Пользовательский `RequestExecutor` может быть использован вместе с interceptors.
624
- В этом случае executor отвечает только за транспорт и выполнение запроса,
625
- а interceptors — за расширяемую бизнес-логику (авторизация, логирование, обработка ошибок).
626
-
627
- ```ts
628
- import type { RequestExecutor, RequestConfig } from './generated/core/executor/requestExecutor';
629
- import { withInterceptors } from './generated/core/interceptors/withInterceptors';
630
- import { SimpleService } from './generated/services/SimpleService';
631
-
632
- interface MyCustomOptions {
633
- timeout?: number;
634
- }
635
-
636
- const baseExecutor: RequestExecutor<MyCustomOptions> = {
637
- async request<T>(config: RequestConfig, options?: MyCustomOptions): Promise<T> {
638
- const response = await fetch(config.url, {
639
- method: config.method,
640
- headers: config.headers,
641
- body: config.body ? JSON.stringify(config.body) : undefined,
642
- signal: options?.timeout
643
- ? AbortSignal.timeout(options.timeout)
644
- : undefined,
645
- });
646
-
647
- if (!response.ok) {
648
- throw new Error(`Request failed: ${response.status}`);
649
- }
650
-
651
- return response.json();
652
- },
653
- };
654
-
655
- // Оборачиваем executor interceptors
656
- const executor = withInterceptors(baseExecutor, {
657
- onRequest: [
658
- (config) => ({
659
- ...config,
660
- headers: {
661
- ...config.headers,
662
- Authorization: 'Bearer token',
663
- },
664
- }),
665
- ],
666
- onError: [
667
- (error) => {
668
- console.error(error);
669
- throw error;
670
- },
671
- ],
672
- });
673
-
674
- const service = new SimpleService(executor);
675
- await service.getCallWithoutParametersAndResponse({ timeout: 5000 });
676
- ```
677
-
678
- #### Использование сгенерированного `createClient` с `customExecutorPath` и `executorFactory`
679
-
680
- Если в конфигурации генерации задан `customExecutorPath`, в `createClient.ts` будет импортирован ваш
681
- пользовательский `createExecutorAdapter`, и он станет базовым executor по умолчанию.
682
-
683
- Дополнительно в runtime можно передать `executorFactory`, чтобы обернуть/расширить этот базовый executor
684
- (retry, tracing, metrics и т.д.) без изменения сгенерированных сервисов.
685
-
686
- ```ts
687
- import { createClient } from './generated';
688
-
689
- const client = createClient({
690
- executorFactory: ({ openApiConfig, createDefaultExecutor }) => {
691
- const baseExecutor = createDefaultExecutor();
692
-
693
- return {
694
- async request<TResponse>(config, options) {
695
- console.debug('Request to', openApiConfig.BASE, config.path);
696
- return baseExecutor.request<TResponse>(config, options);
697
- },
698
- };
699
- },
700
- });
701
- ```
702
-
703
- ### Стратегия сортировки аргументов функций `--sortByRequired`
704
- По умолчанию генератор OpenAPI сортирует параметры сервисных функций согласно упрощенной схеме. Если вам нужна более строгая опция сортировки, используйте флаг `--sortByRequired`. Упрощенная опция сортировки похожа на ту, что использовалась в версии 0.2.3 генератора OpenAPI. Этот флаг позволяет обновиться до новой версии генератора, если вы "застряли" на версии 0.2.3.
705
-
706
- ### Отдельные index файлы `--useSeparatedIndexes`
707
- По умолчанию генератор создает один index файл, который экспортирует весь сгенерированный код. С флагом `--useSeparatedIndexes` вы можете генерировать отдельные index файлы для core, models, schemas и services, что может помочь с лучшей организацией кода и tree-shaking.
708
-
709
- ### Enum с пользовательскими именами и описаниями
710
- Вы можете использовать `x-enum-varnames` и `x-enum-descriptions` в вашей спецификации для генерации enum с пользовательскими именами и описаниями.
711
- Это еще не в официальной [спецификации](https://github.com/OAI/OpenAPI-Specification/issues/681). Но это поддерживаемое расширение,
712
- которое может помочь разработчикам использовать более осмысленные перечислители.
713
- ```json
714
- {
715
- "EnumWithStrings": {
716
- "description": "This is a simple enum with strings",
717
- "enum": [
718
- 0,
719
- 1,
720
- 2
721
- ],
722
- "x-enum-varnames": [
723
- "Success",
724
- "Warning",
725
- "Error"
726
- ],
727
- "x-enum-descriptions": [
728
- "Used when the status of something is successful",
729
- "Used when the status of something has a warning",
730
- "Used when the status of something has an error"
731
- ]
732
- }
733
- }
734
- ```
735
-
736
- Сгенерированный код:
737
- ```typescript
738
- enum EnumWithStrings {
739
- /*
740
- * Used when the status of something is successful
741
- */
742
- Success = 0,
743
- /*
744
- * Used when the status of something has a warning
745
- */
746
- Waring = 1,
747
- /*
748
- * Used when the status of something has an error
749
- */
750
- Error = 2,
751
- }
752
- ```
753
-
754
-
755
- ### Nullable в OpenAPI v2
756
- В спецификации OpenAPI v3 вы можете создавать свойства, которые могут быть NULL, указав `nullable: true` в вашей схеме.
757
- Однако спецификация v2 не позволяет этого делать. Вы можете использовать неофициальный `x-nullable` в вашей спецификации
758
- для генерации nullable свойств в OpenApi v2.
759
-
760
- ```json
761
- {
762
- "ModelWithNullableString": {
763
- "required": ["requiredProp"],
764
- "description": "This is a model with one string property",
765
- "type": "object",
766
- "properties": {
767
- "prop": {
768
- "description": "This is a simple string property",
769
- "type": "string",
770
- "x-nullable": true
771
- },
772
- "requiredProp": {
773
- "description": "This is a simple string property",
774
- "type": "string",
775
- "x-nullable": true
776
- }
777
- }
778
- }
779
- }
780
- ```
781
-
782
- Сгенерированный код:
783
- ```typescript
784
- interface ModelWithNullableString {
785
- prop?: string | null,
786
- requiredProp: string | null,
787
- }
788
- ```
789
-
790
-
791
- ### Авторизация
792
- Генератор OpenAPI поддерживает авторизацию Bearer Token. Для включения отправки
793
- токенов в каждом запросе вы можете установить токен используя глобальную конфигурацию OpenAPI:
794
-
795
- ```typescript
796
- import { OpenAPI } from './generated';
797
-
798
- OpenAPI.TOKEN = 'some-bearer-token';
799
- ```
800
-
801
- Альтернативно, мы также поддерживаем асинхронный метод, который предоставляет токен для каждого запроса.
802
- Вы можете просто назначить этот метод тому же свойству `TOKEN` в глобальном объекте OpenAPI.
803
-
804
- ```typescript
805
- import { OpenAPI } from './generated';
806
-
807
- const getToken = async () => {
808
- // Какой-то код, который запрашивает токен...
809
- return 'SOME_TOKEN';
810
- }
811
-
812
- OpenAPI.TOKEN = getToken;
813
- ```
814
-
815
- ### Ссылки
816
-
817
- Локальные ссылки на определения схем (начинающиеся с `#/definitions/schemas/`)
818
- будут преобразованы в ссылки на типы к эквивалентному сгенерированному типу верхнего уровня.
819
-
820
- Генератор OpenAPI также поддерживает внешние ссылки, что позволяет разбить
821
- ваш openapi.yml на несколько подфайлов или включить сторонние схемы
822
- как часть ваших типов, чтобы обеспечить возможность генерации TypeScript для всего.
823
-
824
- Внешние ссылки могут быть:
825
- * *относительными ссылками* - ссылки на другие файлы в том же расположении, например
826
- `{ $ref: 'schemas/customer.yml' }`
827
- * *удаленными ссылками* - полностью квалифицированные ссылки на другое удаленное расположение
828
- например `{ $ref: 'https://myexampledomain.com/schemas/customer_schema.yml' }`
829
-
830
- Для удаленных ссылок поддерживаются как файлы (когда файл находится в текущей файловой системе),
831
- так и http(s) URL.
832
-
833
- Внешние ссылки также могут содержать внутренние пути во внешней схеме (например,
834
- `schemas/collection.yml#/definitions/schemas/Customer`) и обратные ссылки на
835
- базовый файл openapi или между файлами (так что вы можете ссылаться на другую
836
- схему в главном файле как тип свойства объекта или массива, например).
837
-
838
- При запуске файл OpenAPI или Swagger с внешними ссылками будет "собран",
839
- так что все внешние ссылки и обратные ссылки будут разрешены (но локальные
840
- ссылки сохранены).
841
-
842
- FAQ
843
- ===
844
-
845
- ### Поддержка Babel
846
- Если вы используете enums внутри ваших моделей / определений, то эти enums по умолчанию находятся внутри namespace с тем же именем,
847
- что и ваша модель. Это называется объединением объявлений. Однако [@babel/plugin-transform-typescript](https://babeljs.io/docs/en/babel-plugin-transform-typescript)
848
- не поддерживает эти namespace, поэтому если вы используете babel в вашем проекте, пожалуйста используйте флаг `--useUnionTypes`
849
- для генерации union типов вместо традиционных enums. Больше информации можно найти здесь: [Enums vs. Union Types](#enums-vs-union-types---useuniontypes).
850
-
851
- **Примечание:** Если вы используете Babel 7 и Typescript 3.8 (или выше), то вы должны включить `onlyRemoveTypeImports` для
852
- игнорирования любых импортов 'type only', см. https://babeljs.io/docs/en/babel-preset-typescript#onlyremovetypeimports для большей информации
853
-
854
- ```javascript
855
- module.exports = {
856
- presets: [
857
- ['@babel/preset-typescript', {
858
- onlyRemoveTypeImports: true,
859
- }],
860
- ],
861
- };
862
- ```
863
-
864
-
865
- ### Поддержка Node.js
866
- По умолчанию эта библиотека будет генерировать клиент, совместимый с (браузерным) [fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API),
867
- однако этот клиент не будет работать в среде Node.js. Если вы хотите сгенерировать клиент, совместимый с Node.js, то
868
- вы можете указать `--httpClient node` в вызове openapi:
869
-
870
- `openapi generate --input ./spec.json --output ./dist --httpClient node`
871
-
872
- Это сгенерирует клиент, который использует [`node-fetch`](https://www.npmjs.com/package/node-fetch) внутри. Однако,
873
- для компиляции и запуска этого клиента вам нужно установить зависимости `node-fetch`:
874
-
875
- ```
876
- npm install @types/node-fetch --save-dev
877
- npm install node-fetch --save-dev
878
- npm install form-data --save-dev
879
- ```
880
-
881
- Для компиляции проекта и разрешения импортов вам нужно включить `allowSyntheticDefaultImports`
882
- в вашем файле `tsconfig.json`.
883
-
884
- ```json
885
- {
886
- "allowSyntheticDefaultImports": true
887
- }
888
- ```
62
+ - [Использование](docs/ru/usage.md)
63
+ - [Файл конфигурации](docs/ru/configuration.md)
64
+ - [Примеры](docs/ru/examples.md)
65
+ - [Возможности](docs/ru/features.md)
66
+ - [Руководство по миграции](MIGRATION.RU.md)
67
+ - [Плагины](docs/ru/plugins.md)
68
+ - [Plugin API v2 (RFC)](docs/ru/plugin-api-v2.md)
69
+ - [English README](README.md)
70
+ - [English docs](docs/en/usage.md)
889
71
 
890
72
  [npm-url]: https://www.npmjs.com/package/ts-openapi-codegen
891
73
  [npm-image]: https://img.shields.io/npm/v/ts-openapi-codegen.svg