ts-openapi-codegen 1.0.0-beta.8 → 1.0.0

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 (332) hide show
  1. package/README.md +221 -123
  2. package/README.rus.md +725 -0
  3. package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts +12 -0
  4. package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts.map +1 -0
  5. package/dist/cli/checkAndUpdateConfig/checkConfig.js +66 -0
  6. package/dist/cli/checkAndUpdateConfig/constants.d.ts +13 -0
  7. package/dist/cli/checkAndUpdateConfig/constants.d.ts.map +1 -0
  8. package/dist/cli/checkAndUpdateConfig/constants.js +29 -0
  9. package/dist/cli/checkAndUpdateConfig/types.d.ts +20 -0
  10. package/dist/cli/checkAndUpdateConfig/types.d.ts.map +1 -0
  11. package/dist/cli/checkAndUpdateConfig/types.js +12 -0
  12. package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts +12 -0
  13. package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts.map +1 -0
  14. package/dist/cli/checkAndUpdateConfig/updateConfig.js +56 -0
  15. package/dist/cli/checkAndUpdateConfig/utils/generateConfigExample.d.ts +2 -0
  16. package/dist/cli/checkAndUpdateConfig/utils/generateConfigExample.d.ts.map +1 -0
  17. package/dist/cli/checkAndUpdateConfig/utils/generateConfigExample.js +11 -0
  18. package/dist/cli/checkAndUpdateConfig/utils/prepareConfigData.d.ts +14 -0
  19. package/dist/cli/checkAndUpdateConfig/utils/prepareConfigData.d.ts.map +1 -0
  20. package/dist/cli/checkAndUpdateConfig/utils/prepareConfigData.js +30 -0
  21. package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.d.ts +17 -0
  22. package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.d.ts.map +1 -0
  23. package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.js +29 -0
  24. package/dist/cli/checkAndUpdateConfig/utils/rewriteConfigFile.d.ts +2 -0
  25. package/dist/cli/checkAndUpdateConfig/utils/rewriteConfigFile.d.ts.map +1 -0
  26. package/dist/cli/checkAndUpdateConfig/utils/rewriteConfigFile.js +11 -0
  27. package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.d.ts +29 -0
  28. package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.d.ts.map +1 -0
  29. package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.js +49 -0
  30. package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.d.ts +6 -0
  31. package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.d.ts.map +1 -0
  32. package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.js +22 -0
  33. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts +17 -0
  34. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -0
  35. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +53 -0
  36. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts +34 -0
  37. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts.map +1 -0
  38. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.js +41 -0
  39. package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.d.ts +6 -0
  40. package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.d.ts.map +1 -0
  41. package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.js +18 -0
  42. package/dist/cli/generate/runGenerateOpenApi.d.ts +2 -2
  43. package/dist/cli/generate/runGenerateOpenApi.d.ts.map +1 -1
  44. package/dist/cli/generate/runGenerateOpenApi.js +12 -14
  45. package/dist/cli/index.d.ts +1 -0
  46. package/dist/cli/index.js +56 -30
  47. package/dist/cli/initOpenApiConfig/runInitOpenapiConfig.d.ts.map +1 -1
  48. package/dist/cli/initOpenApiConfig/runInitOpenapiConfig.js +11 -18
  49. package/dist/cli/interactive/confirmDialog.d.ts +17 -0
  50. package/dist/cli/interactive/confirmDialog.d.ts.map +1 -0
  51. package/dist/cli/interactive/confirmDialog.js +36 -0
  52. package/dist/cli/interactive/constants.d.ts +7 -0
  53. package/dist/cli/interactive/constants.d.ts.map +1 -0
  54. package/dist/cli/interactive/constants.js +25 -0
  55. package/dist/cli/interactive/selectDialog.d.ts +17 -0
  56. package/dist/cli/interactive/selectDialog.d.ts.map +1 -0
  57. package/dist/cli/interactive/selectDialog.js +43 -0
  58. package/dist/cli/interactive/types.d.ts +40 -0
  59. package/dist/cli/interactive/types.d.ts.map +1 -0
  60. package/dist/cli/interactive/types.js +12 -0
  61. package/dist/common/Consts.d.ts +23 -0
  62. package/dist/common/Consts.d.ts.map +1 -1
  63. package/dist/common/Consts.js +28 -1
  64. package/dist/common/Enums.d.ts +4 -0
  65. package/dist/common/Enums.d.ts.map +1 -1
  66. package/dist/common/Enums.js +6 -1
  67. package/dist/common/Logger.d.ts +1 -1
  68. package/dist/common/Logger.d.ts.map +1 -1
  69. package/dist/common/Logger.js +5 -38
  70. package/dist/common/UpdateNotifier.d.ts +36 -2
  71. package/dist/common/UpdateNotifier.d.ts.map +1 -1
  72. package/dist/common/UpdateNotifier.js +150 -57
  73. package/dist/common/VersionedSchema/Types.d.ts +5 -0
  74. package/dist/common/VersionedSchema/Types.d.ts.map +1 -1
  75. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts +1 -7
  76. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
  77. package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.d.ts +3 -0
  78. package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.d.ts.map +1 -0
  79. package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.js +14 -0
  80. package/dist/common/VersionedSchema/Utils/getKeyByMapValue.d.ts +2 -0
  81. package/dist/common/VersionedSchema/Utils/getKeyByMapValue.d.ts.map +1 -0
  82. package/dist/common/VersionedSchema/Utils/getKeyByMapValue.js +11 -0
  83. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts +5 -2
  84. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
  85. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +22 -15
  86. package/dist/common/utils/__tests__/__mock__/mockJoiSchema.d.ts.map +1 -0
  87. package/dist/common/utils/__tests__/convertArrayToObject.test.d.ts.map +1 -0
  88. package/dist/common/{__tests__ → utils/__tests__}/convertArrayToObject.test.js +14 -14
  89. package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.d.ts.map +1 -0
  90. package/dist/common/{__tests__ → utils/__tests__}/determineBestMatchingSchemaVersion.test.js +5 -5
  91. package/dist/common/utils/__tests__/generateKeyMappingForInvalidKeys.test.d.ts.map +1 -0
  92. package/dist/common/{__tests__ → utils/__tests__}/generateKeyMappingForInvalidKeys.test.js +4 -4
  93. package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.d.ts.map +1 -0
  94. package/dist/common/{__tests__ → utils/__tests__}/getUniqueKeysFromSchemas.test.js +4 -4
  95. package/dist/common/utils/__tests__/getUniqueObjectKeys.test.d.ts.map +1 -0
  96. package/dist/common/{__tests__ → utils/__tests__}/getUniqueObjectKeys.test.js +5 -5
  97. package/dist/common/utils/__tests__/mergeObjectSchemas.test.d.ts.map +1 -0
  98. package/dist/common/{__tests__ → utils/__tests__}/mergeObjectSchemas.test.js +5 -5
  99. package/dist/common/utils/__tests__/migrationForMultiOptions.test.d.ts.map +1 -0
  100. package/dist/common/{__tests__ → utils/__tests__}/migrationForMultiOptions.test.js +21 -15
  101. package/dist/common/utils/__tests__/migrationForOptions.test.d.ts.map +1 -0
  102. package/dist/common/{__tests__ → utils/__tests__}/migrationForOptions.test.js +13 -9
  103. package/dist/common/utils/__tests__/pathHelpers.test.d.ts.map +1 -0
  104. package/dist/{core → common}/utils/__tests__/pathHelpers.test.js +8 -8
  105. package/dist/common/utils/__tests__/replaceInvalidKeysWithMappedNames.test.d.ts.map +1 -0
  106. package/dist/common/{__tests__ → utils/__tests__}/replaceInvalidKeysWithMappedNames.test.js +5 -5
  107. package/dist/common/utils/__tests__/validateAndSuggestKeyCorrections.test.d.ts.map +1 -0
  108. package/dist/common/{__tests__ → utils/__tests__}/validateAndSuggestKeyCorrections.test.js +5 -5
  109. package/dist/common/utils/convertArrayToObject.d.ts +2 -0
  110. package/dist/common/utils/convertArrayToObject.d.ts.map +1 -0
  111. package/dist/common/{Utils.js → utils/convertArrayToObject.js} +0 -20
  112. package/dist/{core/utils/fileSystem.d.ts → common/utils/fileSystemHelpers.d.ts} +8 -5
  113. package/dist/common/utils/fileSystemHelpers.d.ts.map +1 -0
  114. package/dist/common/utils/fileSystemHelpers.js +85 -0
  115. package/dist/common/utils/format.d.ts +3 -0
  116. package/dist/common/utils/format.d.ts.map +1 -0
  117. package/dist/{core → common}/utils/format.js +2 -2
  118. package/dist/common/utils/loadConfigIfExists.d.ts +2 -0
  119. package/dist/common/utils/loadConfigIfExists.d.ts.map +1 -0
  120. package/dist/common/utils/loadConfigIfExists.js +22 -0
  121. package/dist/common/utils/pathHelpers.d.ts +6 -0
  122. package/dist/common/utils/pathHelpers.d.ts.map +1 -0
  123. package/dist/{core → common}/utils/pathHelpers.js +16 -20
  124. package/dist/common/utils/safeHasOwn.d.ts +2 -0
  125. package/dist/common/utils/safeHasOwn.d.ts.map +1 -0
  126. package/dist/common/utils/safeHasOwn.js +9 -0
  127. package/dist/core/Context.d.ts.map +1 -1
  128. package/dist/core/Context.js +3 -3
  129. package/dist/core/WriteClient.d.ts.map +1 -1
  130. package/dist/core/WriteClient.js +18 -18
  131. package/dist/core/__tests__/WriteClient.test.js +61 -60
  132. package/dist/core/api/v2/Parser.d.ts.map +1 -1
  133. package/dist/core/api/v2/Parser.js +2 -9
  134. package/dist/core/api/v2/parser/__tests__/getServer.test.js +2 -2
  135. package/dist/core/api/v2/parser/__tests__/getType.test.js +3 -3
  136. package/dist/core/api/v2/parser/getModelProperties.d.ts.map +1 -1
  137. package/dist/core/api/v2/parser/getModelProperties.js +2 -5
  138. package/dist/core/api/v2/parser/getModels.d.ts.map +1 -1
  139. package/dist/core/api/v2/parser/getModels.js +2 -1
  140. package/dist/core/api/v2/parser/getOperationParameter.d.ts.map +1 -1
  141. package/dist/core/api/v2/parser/getOperationParameter.js +2 -1
  142. package/dist/core/api/v2/parser/getOperationResponse.d.ts.map +1 -1
  143. package/dist/core/api/v2/parser/getOperationResponse.js +2 -5
  144. package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
  145. package/dist/core/api/v2/parser/getOperationResponses.js +2 -5
  146. package/dist/core/api/v2/parser/getServices.d.ts.map +1 -1
  147. package/dist/core/api/v2/parser/getServices.js +2 -5
  148. package/dist/core/api/v2/parser/getType.js +4 -4
  149. package/dist/core/api/v3/Parser.d.ts +1 -1
  150. package/dist/core/api/v3/Parser.d.ts.map +1 -1
  151. package/dist/core/api/v3/Parser.js +2 -9
  152. package/dist/core/api/v3/parser/__tests__/getServer.test.js +3 -3
  153. package/dist/core/api/v3/parser/__tests__/getType.test.js +3 -3
  154. package/dist/core/api/v3/parser/getModelProperties.d.ts.map +1 -1
  155. package/dist/core/api/v3/parser/getModelProperties.js +2 -5
  156. package/dist/core/api/v3/parser/getModels.d.ts.map +1 -1
  157. package/dist/core/api/v3/parser/getModels.js +2 -1
  158. package/dist/core/api/v3/parser/getOperationResponse.d.ts.map +1 -1
  159. package/dist/core/api/v3/parser/getOperationResponse.js +2 -5
  160. package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
  161. package/dist/core/api/v3/parser/getOperationResponses.js +2 -5
  162. package/dist/core/api/v3/parser/getServer.d.ts.map +1 -1
  163. package/dist/core/api/v3/parser/getServer.js +2 -5
  164. package/dist/core/api/v3/parser/getServices.d.ts.map +1 -1
  165. package/dist/core/api/v3/parser/getServices.js +2 -5
  166. package/dist/core/api/v3/parser/getType.d.ts.map +1 -1
  167. package/dist/core/api/v3/parser/getType.js +5 -13
  168. package/dist/core/index.d.ts +4 -0
  169. package/dist/core/index.d.ts.map +1 -1
  170. package/dist/core/index.js +34 -27
  171. package/dist/core/types/Consts.d.ts +5 -1
  172. package/dist/core/types/Consts.d.ts.map +1 -1
  173. package/dist/core/types/Consts.js +6 -2
  174. package/dist/core/types/base/Root.model.d.ts +1 -0
  175. package/dist/core/types/base/Root.model.d.ts.map +1 -1
  176. package/dist/core/utils/__tests__/escapeDescription.test.js +3 -3
  177. package/dist/core/utils/__tests__/escapeName.test.js +2 -2
  178. package/dist/core/utils/__tests__/flatMap.test.js +2 -2
  179. package/dist/core/utils/__tests__/getAbsolutePath.test.js +6 -6
  180. package/dist/core/utils/__tests__/getClassName.test.js +2 -2
  181. package/dist/core/utils/__tests__/getComment.test.js +2 -2
  182. package/dist/core/utils/__tests__/getEnumFromDescription.test.js +2 -2
  183. package/dist/core/utils/__tests__/getFileName.test.js +2 -2
  184. package/dist/core/utils/__tests__/getGatheringRefs.test.js +2 -2
  185. package/dist/core/utils/__tests__/getMappedType.test.js +2 -2
  186. package/dist/core/utils/__tests__/getModelNames.test.js +2 -2
  187. package/dist/core/utils/__tests__/getOpenApiVersion.test.js +2 -2
  188. package/dist/core/utils/__tests__/getOperationName.test.js +2 -2
  189. package/dist/core/utils/__tests__/getOperationParameterName.test.js +2 -2
  190. package/dist/core/utils/__tests__/getOperationPath.test.js +2 -2
  191. package/dist/core/utils/__tests__/getOperationResponseCode.test.js +2 -2
  192. package/dist/core/utils/__tests__/getPattern.test.js +2 -2
  193. package/dist/core/utils/__tests__/getRefFromSchema.test.js +2 -2
  194. package/dist/core/utils/__tests__/getRefs.test.js +2 -2
  195. package/dist/core/utils/__tests__/getRelativeModelPath.test.js +3 -3
  196. package/dist/core/utils/__tests__/getServiceClassName.test.js +2 -2
  197. package/dist/core/utils/__tests__/getServiceNames.test.js +2 -2
  198. package/dist/core/utils/__tests__/getServiceVersion.test.js +2 -2
  199. package/dist/core/utils/__tests__/isString.test.js +2 -2
  200. package/dist/core/utils/__tests__/isSubdirectory.test.js +10 -10
  201. package/dist/core/utils/__tests__/registerHandlebarHelpers.test.js +2 -2
  202. package/dist/core/utils/__tests__/registerHandlebarTemplates.test.js +2 -2
  203. package/dist/core/utils/__tests__/replaceString.test.js +2 -2
  204. package/dist/core/utils/__tests__/resolveRefToImportPath.test.js +360 -51
  205. package/dist/core/utils/__tests__/sort.test.js +2 -2
  206. package/dist/core/utils/__tests__/sortByRequiredExtended.test.js +11 -11
  207. package/dist/core/utils/__tests__/sortByRequiredSimple.test.js +11 -11
  208. package/dist/core/utils/__tests__/sortModelsByName.test.js +2 -2
  209. package/dist/core/utils/__tests__/sortServicesByName.test.js +2 -2
  210. package/dist/core/utils/__tests__/stripNamespace.test.js +2 -2
  211. package/dist/core/utils/__tests__/unique.test.js +2 -2
  212. package/dist/core/utils/__tests__/writeClientCore.test.js +52 -50
  213. package/dist/core/utils/__tests__/writeClientFullIndex.test.js +39 -37
  214. package/dist/core/utils/__tests__/writeClientModels.test.js +65 -63
  215. package/dist/core/utils/__tests__/writeClientSchemas.test.js +65 -63
  216. package/dist/core/utils/__tests__/writeClientServices.test.js +60 -58
  217. package/dist/core/utils/appendUniqueLinesToFile.js +4 -4
  218. package/dist/core/utils/createNormalizedRef.js +2 -2
  219. package/dist/core/utils/getAbsolutePath.js +3 -3
  220. package/dist/core/utils/getModelNameWithPrefix.d.ts +3 -0
  221. package/dist/core/utils/getModelNameWithPrefix.d.ts.map +1 -0
  222. package/dist/core/utils/getModelNameWithPrefix.js +15 -0
  223. package/dist/core/utils/getOpenApiSpec.d.ts.map +1 -1
  224. package/dist/core/utils/getOpenApiSpec.js +4 -4
  225. package/dist/core/utils/getOutputPaths.d.ts.map +1 -1
  226. package/dist/core/utils/getOutputPaths.js +6 -6
  227. package/dist/core/utils/getPattern.d.ts.map +1 -1
  228. package/dist/core/utils/getPattern.js +2 -1
  229. package/dist/core/utils/getRelativeModelPath.d.ts.map +1 -1
  230. package/dist/core/utils/getRelativeModelPath.js +2 -6
  231. package/dist/core/utils/isSubdirectory.d.ts.map +1 -1
  232. package/dist/core/utils/isSubdirectory.js +4 -3
  233. package/dist/core/utils/mapPathToTargetDirSafe.d.ts.map +1 -1
  234. package/dist/core/utils/mapPathToTargetDirSafe.js +11 -12
  235. package/dist/core/utils/modelHelpers.d.ts.map +1 -1
  236. package/dist/core/utils/modelHelpers.js +18 -6
  237. package/dist/core/utils/normalizeString.d.ts +2 -0
  238. package/dist/core/utils/normalizeString.d.ts.map +1 -0
  239. package/dist/core/utils/normalizeString.js +14 -0
  240. package/dist/core/utils/normalizedAbsolutePath.js +3 -3
  241. package/dist/core/utils/parseRef.d.ts.map +1 -1
  242. package/dist/core/utils/parseRef.js +7 -10
  243. package/dist/core/utils/precompileTemplates.js +14 -10
  244. package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
  245. package/dist/core/utils/registerHandlebarHelpers.js +24 -0
  246. package/dist/core/utils/replaceString.d.ts.map +1 -1
  247. package/dist/core/utils/replaceString.js +2 -1
  248. package/dist/core/utils/resolveRefPath.d.ts.map +1 -1
  249. package/dist/core/utils/resolveRefPath.js +3 -3
  250. package/dist/core/utils/resolveRefToImportPath.d.ts +8 -2
  251. package/dist/core/utils/resolveRefToImportPath.d.ts.map +1 -1
  252. package/dist/core/utils/resolveRefToImportPath.js +91 -31
  253. package/dist/core/utils/serviceHelpers.d.ts.map +1 -1
  254. package/dist/core/utils/serviceHelpers.js +2 -1
  255. package/dist/core/utils/stripNamespace.js +5 -5
  256. package/dist/core/utils/writeClientCore.d.ts.map +1 -1
  257. package/dist/core/utils/writeClientCore.js +12 -12
  258. package/dist/core/utils/writeClientCoreIndex.d.ts.map +1 -1
  259. package/dist/core/utils/writeClientCoreIndex.js +2 -2
  260. package/dist/core/utils/writeClientFullIndex.d.ts.map +1 -1
  261. package/dist/core/utils/writeClientFullIndex.js +4 -4
  262. package/dist/core/utils/writeClientModels.d.ts.map +1 -1
  263. package/dist/core/utils/writeClientModels.js +7 -7
  264. package/dist/core/utils/writeClientModelsIndex.d.ts.map +1 -1
  265. package/dist/core/utils/writeClientModelsIndex.js +2 -2
  266. package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
  267. package/dist/core/utils/writeClientSchemas.js +7 -7
  268. package/dist/core/utils/writeClientSchemasIndex.d.ts.map +1 -1
  269. package/dist/core/utils/writeClientSchemasIndex.js +2 -2
  270. package/dist/core/utils/writeClientServices.d.ts.map +1 -1
  271. package/dist/core/utils/writeClientServices.js +5 -5
  272. package/dist/core/utils/writeClientServicesIndex.d.ts.map +1 -1
  273. package/dist/core/utils/writeClientServicesIndex.js +2 -2
  274. package/dist/core/utils/writeClientSimpleIndex.d.ts.map +1 -1
  275. package/dist/core/utils/writeClientSimpleIndex.js +4 -4
  276. package/dist/templatesCompiled/client/exportModel.js +4 -4
  277. package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
  278. package/dist/templatesCompiled/client/exportService.js +12 -13
  279. package/dist/templatesCompiled/client/indexFull.d.ts.map +1 -1
  280. package/dist/templatesCompiled/client/indexFull.js +35 -29
  281. package/dist/templatesCompiled/client/partials/parameters.d.ts +3 -2
  282. package/dist/templatesCompiled/client/partials/parameters.d.ts.map +1 -1
  283. package/dist/templatesCompiled/client/partials/parameters.js +25 -20
  284. package/dist/templatesCompiled/client/partials/parametersDefinition.d.ts +4 -2
  285. package/dist/templatesCompiled/client/partials/parametersDefinition.d.ts.map +1 -1
  286. package/dist/templatesCompiled/client/partials/parametersDefinition.js +31 -10
  287. package/package.json +15 -13
  288. package/dist/cli/chekOpenApiConfig/chekOpenApiConfig.d.ts +0 -5
  289. package/dist/cli/chekOpenApiConfig/chekOpenApiConfig.d.ts.map +0 -1
  290. package/dist/cli/chekOpenApiConfig/chekOpenApiConfig.js +0 -45
  291. package/dist/common/Utils.d.ts +0 -3
  292. package/dist/common/Utils.d.ts.map +0 -1
  293. package/dist/common/__tests__/__mock__/mockJoiSchema.d.ts.map +0 -1
  294. package/dist/common/__tests__/convertArrayToObject.test.d.ts.map +0 -1
  295. package/dist/common/__tests__/determineBestMatchingSchemaVersion.test.d.ts.map +0 -1
  296. package/dist/common/__tests__/generateKeyMappingForInvalidKeys.test.d.ts.map +0 -1
  297. package/dist/common/__tests__/getUniqueKeysFromSchemas.test.d.ts.map +0 -1
  298. package/dist/common/__tests__/getUniqueObjectKeys.test.d.ts.map +0 -1
  299. package/dist/common/__tests__/mergeObjectSchemas.test.d.ts.map +0 -1
  300. package/dist/common/__tests__/migrationForMultiOptions.test.d.ts.map +0 -1
  301. package/dist/common/__tests__/migrationForOptions.test.d.ts.map +0 -1
  302. package/dist/common/__tests__/replaceInvalidKeysWithMappedNames.test.d.ts.map +0 -1
  303. package/dist/common/__tests__/validateAndSuggestKeyCorrections.test.d.ts.map +0 -1
  304. package/dist/core/utils/__tests__/getRelativeModelImportPath.test.d.ts +0 -2
  305. package/dist/core/utils/__tests__/getRelativeModelImportPath.test.d.ts.map +0 -1
  306. package/dist/core/utils/__tests__/getRelativeModelImportPath.test.js +0 -82
  307. package/dist/core/utils/__tests__/pathHelpers.test.d.ts.map +0 -1
  308. package/dist/core/utils/fileSystem.d.ts.map +0 -1
  309. package/dist/core/utils/fileSystem.js +0 -26
  310. package/dist/core/utils/format.d.ts +0 -2
  311. package/dist/core/utils/format.d.ts.map +0 -1
  312. package/dist/core/utils/getRelativeModelImportPath.d.ts +0 -9
  313. package/dist/core/utils/getRelativeModelImportPath.d.ts.map +0 -1
  314. package/dist/core/utils/getRelativeModelImportPath.js +0 -45
  315. package/dist/core/utils/isDirectory.d.ts +0 -2
  316. package/dist/core/utils/isDirectory.d.ts.map +0 -1
  317. package/dist/core/utils/isDirectory.js +0 -13
  318. package/dist/core/utils/pathHelpers.d.ts +0 -7
  319. package/dist/core/utils/pathHelpers.d.ts.map +0 -1
  320. /package/dist/common/{__tests__ → utils/__tests__}/__mock__/mockJoiSchema.d.ts +0 -0
  321. /package/dist/common/{__tests__ → utils/__tests__}/__mock__/mockJoiSchema.js +0 -0
  322. /package/dist/common/{__tests__ → utils/__tests__}/convertArrayToObject.test.d.ts +0 -0
  323. /package/dist/common/{__tests__ → utils/__tests__}/determineBestMatchingSchemaVersion.test.d.ts +0 -0
  324. /package/dist/common/{__tests__ → utils/__tests__}/generateKeyMappingForInvalidKeys.test.d.ts +0 -0
  325. /package/dist/common/{__tests__ → utils/__tests__}/getUniqueKeysFromSchemas.test.d.ts +0 -0
  326. /package/dist/common/{__tests__ → utils/__tests__}/getUniqueObjectKeys.test.d.ts +0 -0
  327. /package/dist/common/{__tests__ → utils/__tests__}/mergeObjectSchemas.test.d.ts +0 -0
  328. /package/dist/common/{__tests__ → utils/__tests__}/migrationForMultiOptions.test.d.ts +0 -0
  329. /package/dist/common/{__tests__ → utils/__tests__}/migrationForOptions.test.d.ts +0 -0
  330. /package/dist/{core → common}/utils/__tests__/pathHelpers.test.d.ts +0 -0
  331. /package/dist/common/{__tests__ → utils/__tests__}/replaceInvalidKeysWithMappedNames.test.d.ts +0 -0
  332. /package/dist/common/{__tests__ → utils/__tests__}/validateAndSuggestKeyCorrections.test.d.ts +0 -0
@@ -1,4 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_OPENAPI_CONFIG_FILENAME = void 0;
3
+ exports.APP_LOGGER = exports.COMMON_DEFAULT_OPTIONS_VALUES = exports.DEFAULT_OPENAPI_CONFIG_FILENAME = void 0;
4
+ const core_1 = require("../core");
5
+ const Enums_1 = require("./Enums");
6
+ const Logger_1 = require("./Logger");
4
7
  exports.DEFAULT_OPENAPI_CONFIG_FILENAME = 'openapi.config.json';
8
+ exports.COMMON_DEFAULT_OPTIONS_VALUES = {
9
+ outputCore: '',
10
+ outputServices: '',
11
+ outputModels: '',
12
+ outputSchemas: '',
13
+ httpClient: core_1.HttpClient.FETCH,
14
+ useOptions: false,
15
+ useUnionTypes: false,
16
+ excludeCoreServiceFiles: false,
17
+ includeSchemasFiles: false,
18
+ interfacePrefix: 'I',
19
+ enumPrefix: 'E',
20
+ typePrefix: 'T',
21
+ useCancelableRequest: false,
22
+ logLevel: Enums_1.ELogLevel.ERROR,
23
+ logTarget: Enums_1.ELogOutput.CONSOLE,
24
+ sortByRequired: false,
25
+ useSeparatedIndexes: false,
26
+ };
27
+ exports.APP_LOGGER = new Logger_1.Logger({
28
+ level: Enums_1.ELogLevel.INFO,
29
+ instanceId: 'cli',
30
+ logOutput: Enums_1.ELogOutput.CONSOLE,
31
+ });
@@ -7,4 +7,8 @@ export declare enum ELogOutput {
7
7
  CONSOLE = "console",
8
8
  FILE = "file"
9
9
  }
10
+ export declare enum EMigrationMode {
11
+ GENERATE_OPENAPI = "GENERATE_OPENAPI",
12
+ VALIDATE_CONFIG = "VALIDATE_CONFIG"
13
+ }
10
14
  //# sourceMappingURL=Enums.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Enums.d.ts","sourceRoot":"","sources":["../../src/common/Enums.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACjB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;AAED,oBAAY,UAAU;IAClB,OAAO,YAAY;IACnB,IAAI,SAAS;CAChB"}
1
+ {"version":3,"file":"Enums.d.ts","sourceRoot":"","sources":["../../src/common/Enums.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACjB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;AAED,oBAAY,UAAU;IAClB,OAAO,YAAY;IACnB,IAAI,SAAS;CAChB;AAED,oBAAY,cAAc;IACtB,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;CACtC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ELogOutput = exports.ELogLevel = void 0;
3
+ exports.EMigrationMode = exports.ELogOutput = exports.ELogLevel = void 0;
4
4
  var ELogLevel;
5
5
  (function (ELogLevel) {
6
6
  ELogLevel["INFO"] = "info";
@@ -12,3 +12,8 @@ var ELogOutput;
12
12
  ELogOutput["CONSOLE"] = "console";
13
13
  ELogOutput["FILE"] = "file";
14
14
  })(ELogOutput || (exports.ELogOutput = ELogOutput = {}));
15
+ var EMigrationMode;
16
+ (function (EMigrationMode) {
17
+ EMigrationMode["GENERATE_OPENAPI"] = "GENERATE_OPENAPI";
18
+ EMigrationMode["VALIDATE_CONFIG"] = "VALIDATE_CONFIG";
19
+ })(EMigrationMode || (exports.EMigrationMode = EMigrationMode = {}));
@@ -23,7 +23,7 @@ export declare class Logger {
23
23
  private _instanceId;
24
24
  constructor(options: LoggerOptions);
25
25
  setLevel(level: ELogLevel): void;
26
- error(message: string): void;
26
+ error(message: string, error?: any): void;
27
27
  warn(message: string): void;
28
28
  info(message: string, hasSeparator?: boolean): void;
29
29
  forceInfo(message: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/common/Logger.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEhD,UAAU,aAAa;IACnB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,0CAA0C;IAC1C,SAAS,EAAE,UAAU,CAAC;IACtB,mDAAmD;IACnD,sDAAsD;IACtD,MAAM,CAAC,EAAE;QACL,6CAA6C;QAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,+CAA+C;QAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,uDAAuD;QACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL;AAED,qBAAa,MAAM;IACf,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,aAAa;IA6C3B,QAAQ,CAAC,KAAK,EAAE,SAAS;IAKzB,KAAK,CAAC,OAAO,EAAE,MAAM;IAKrB,IAAI,CAAC,OAAO,EAAE,MAAM;IAIpB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IAO5C,SAAS,CAAC,OAAO,EAAE,MAAM;IAOzB,cAAc,IAAI,IAAI;CAahC"}
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/common/Logger.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGhD,UAAU,aAAa;IACnB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,KAAK,EAAE,SAAS,CAAC;IACjB,0CAA0C;IAC1C,SAAS,EAAE,UAAU,CAAC;IACtB,mDAAmD;IACnD,sDAAsD;IACtD,MAAM,CAAC,EAAE;QACL,6CAA6C;QAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,+CAA+C;QAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,uDAAuD;QACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL;AAED,qBAAa,MAAM;IACf,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,aAAa;IA6C3B,QAAQ,CAAC,KAAK,EAAE,SAAS;IAKzB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAKlC,IAAI,CAAC,OAAO,EAAE,MAAM;IAIpB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IAO5C,SAAS,CAAC,OAAO,EAAE,MAAM;IAOzB,cAAc,IAAI,IAAI;CAahC"}
@@ -1,46 +1,13 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
4
  };
38
5
  Object.defineProperty(exports, "__esModule", { value: true });
39
6
  exports.Logger = void 0;
40
- const path = __importStar(require("path"));
41
7
  const winston_1 = require("winston");
42
8
  const winston_daily_rotate_file_1 = __importDefault(require("winston-daily-rotate-file"));
43
9
  const Enums_1 = require("./Enums");
10
+ const pathHelpers_1 = require("./utils/pathHelpers");
44
11
  class Logger {
45
12
  _logger;
46
13
  _currentLevel;
@@ -58,9 +25,9 @@ class Logger {
58
25
  }));
59
26
  }
60
27
  else {
61
- const logDir = path.join(process.cwd(), '__logs__');
28
+ const logDir = (0, pathHelpers_1.joinHelper)(process.cwd(), '__logs__');
62
29
  chosenTransports.push(new winston_daily_rotate_file_1.default({
63
- filename: path.join(logDir, 'app-%DATE%.log'),
30
+ filename: (0, pathHelpers_1.joinHelper)(logDir, 'app-%DATE%.log'),
64
31
  datePattern: rotate.datePattern,
65
32
  zippedArchive: true,
66
33
  maxSize: rotate.maxSize,
@@ -81,8 +48,8 @@ class Logger {
81
48
  this._currentLevel = level;
82
49
  this._logger.level = level;
83
50
  }
84
- error(message) {
85
- this._logger.error(`Error: ${message}`);
51
+ error(message, error) {
52
+ this._logger.error(`Error: ${message}`, error);
86
53
  process.exit(1);
87
54
  }
88
55
  warn(message) {
@@ -1,3 +1,26 @@
1
+ import semver from 'semver';
2
+ import { Logger } from './Logger';
3
+ type TPackageStoreInfo = {
4
+ currentVersion: string;
5
+ differenceType: semver.ReleaseType | null;
6
+ latestVersion: string;
7
+ packageName: string;
8
+ };
9
+ interface IUpdateChecker {
10
+ fetchLatestVersion(): Promise<string | null>;
11
+ }
12
+ interface INotificationService {
13
+ notify(updateInfo: TPackageStoreInfo): void;
14
+ }
15
+ interface IUpdateNotifierOptions {
16
+ packageName: string;
17
+ packageVersion: string;
18
+ logger?: Logger;
19
+ updateChecker?: IUpdateChecker;
20
+ notificationService?: INotificationService;
21
+ checkInterval?: number;
22
+ enabled?: boolean;
23
+ }
1
24
  /**
2
25
  * A class for tracking the release of a newer version of the generator
3
26
  */
@@ -7,7 +30,11 @@ export declare class UpdateNotifier {
7
30
  private _configStore;
8
31
  private _packageStoreInfo;
9
32
  private _logger;
10
- constructor(packageName: string, packageVersion: string);
33
+ private _updateChecker;
34
+ private _notificationService;
35
+ private _checkInterval;
36
+ private _enabled;
37
+ constructor(options: IUpdateNotifierOptions);
11
38
  /**
12
39
  * Requests the latest version of the generator via npm
13
40
  */
@@ -18,7 +45,14 @@ export declare class UpdateNotifier {
18
45
  private checkUpdate;
19
46
  /**
20
47
  * Checks for updates and notifies about the possibility to install a new version.
48
+ * This method waits for the check to complete before returning.
49
+ */
50
+ checkAndNotify(): Promise<void>;
51
+ /**
52
+ * Synchronous version for backward compatibility
53
+ * @deprecated Use checkAndNotify() instead
21
54
  */
22
- checkAndNotify(): void;
55
+ checkAndNotifySync(): void;
23
56
  }
57
+ export {};
24
58
  //# sourceMappingURL=UpdateNotifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateNotifier.d.ts","sourceRoot":"","sources":["../../src/common/UpdateNotifier.ts"],"names":[],"mappings":"AAqBA;;GAEG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,OAAO,CAAS;gBAEZ,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IA0BvD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBnB;;OAEG;IACH,cAAc;CAmCjB"}
1
+ {"version":3,"file":"UpdateNotifier.d.ts","sourceRoot":"","sources":["../../src/common/UpdateNotifier.ts"],"names":[],"mappings":"AAIA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AASlC,KAAK,iBAAiB,GAAG;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,UAAU,cAAc;IACpB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAChD;AAED,UAAU,oBAAoB;IAC1B,MAAM,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC/C;AAmED,UAAU,sBAAsB;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAU;gBAEd,OAAO,EAAE,sBAAsB;IAmC3C;;OAEG;YACW,mBAAmB;IAkBjC;;OAEG;YACW,WAAW;IAkBzB;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IA+CrC;;;OAGG;IACH,kBAAkB,IAAI,IAAI;CAM7B"}
@@ -9,11 +9,70 @@ const chalk_1 = __importDefault(require("chalk"));
9
9
  const child_process_1 = require("child_process");
10
10
  const configstore_1 = __importDefault(require("configstore"));
11
11
  const semver_1 = __importDefault(require("semver"));
12
+ const util_1 = require("util");
12
13
  const Enums_1 = require("./Enums");
13
14
  const Logger_1 = require("./Logger");
15
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
14
16
  // one week
15
17
  const UPDATE_CHECK_INTERVAL = 1000 * 60 * 60 * 24 * 7;
16
18
  const INCLUDED_RELEASE_TYPES = ['major', 'minor'];
19
+ /**
20
+ * Default implementation for fetching package version from npm registry
21
+ */
22
+ class NpmUpdateChecker {
23
+ packageName;
24
+ constructor(packageName) {
25
+ this.packageName = packageName;
26
+ }
27
+ async fetchLatestVersion() {
28
+ try {
29
+ // We get all versions of the package
30
+ const { stdout } = await execAsync(`npm view ${this.packageName} versions --json`, {
31
+ timeout: 5000, // 5 seconds timeout
32
+ });
33
+ const versions = JSON.parse(stdout);
34
+ if (!Array.isArray(versions) || versions.length === 0) {
35
+ return null;
36
+ }
37
+ // Filtering stable versions (excluding pre-release: alpha, beta, rc, etc.)
38
+ const stableVersions = versions.filter(version => {
39
+ const parsed = semver_1.default.parse(version);
40
+ return parsed && !parsed.prerelease.length;
41
+ });
42
+ if (stableVersions.length === 0) {
43
+ // If there are no stable versions, we return the latest of all
44
+ return versions[versions.length - 1];
45
+ }
46
+ // We sort the stable versions and return the latest one.
47
+ stableVersions.sort((a, b) => semver_1.default.compare(a, b));
48
+ return stableVersions[stableVersions.length - 1];
49
+ }
50
+ catch {
51
+ return null;
52
+ }
53
+ }
54
+ }
55
+ /**
56
+ * Default implementation for console notifications
57
+ */
58
+ class ConsoleNotificationService {
59
+ notify(updateInfo) {
60
+ const { packageName, currentVersion, latestVersion } = updateInfo;
61
+ const scriptText = chalk_1.default.yellowBright(`npm i -D ${packageName}@${latestVersion}`);
62
+ const message = `
63
+ An update is available: ${chalk_1.default.gray(currentVersion)} -> ${chalk_1.default.greenBright(latestVersion)}
64
+ Run ${scriptText} to update
65
+ `;
66
+ console.log((0, boxen_1.default)(message, {
67
+ borderColor: 'cyanBright',
68
+ margin: 1,
69
+ padding: 1,
70
+ title: 'Pay attention',
71
+ titleAlignment: 'center',
72
+ textAlignment: 'center',
73
+ }));
74
+ }
75
+ }
17
76
  /**
18
77
  * A class for tracking the release of a newer version of the generator
19
78
  */
@@ -23,20 +82,33 @@ class UpdateNotifier {
23
82
  _configStore = null;
24
83
  _packageStoreInfo = null;
25
84
  _logger;
26
- constructor(packageName, packageVersion) {
27
- this._logger = new Logger_1.Logger({
28
- instanceId: '',
29
- level: Enums_1.ELogLevel.INFO,
30
- logOutput: Enums_1.ELogOutput.CONSOLE,
31
- });
32
- if (!packageName || !packageVersion) {
85
+ _updateChecker;
86
+ _notificationService;
87
+ _checkInterval;
88
+ _enabled;
89
+ constructor(options) {
90
+ this._packageName = options.packageName;
91
+ this._packageVersion = options.packageVersion;
92
+ this._logger =
93
+ options.logger ??
94
+ new Logger_1.Logger({
95
+ instanceId: '',
96
+ level: Enums_1.ELogLevel.INFO,
97
+ logOutput: Enums_1.ELogOutput.CONSOLE,
98
+ });
99
+ this._updateChecker = options.updateChecker ?? new NpmUpdateChecker(this._packageName);
100
+ this._notificationService = options.notificationService ?? new ConsoleNotificationService();
101
+ this._checkInterval = options.checkInterval ?? UPDATE_CHECK_INTERVAL;
102
+ this._enabled = options.enabled ?? true;
103
+ if (!this._packageName || !this._packageVersion) {
33
104
  this._logger.warn(`
34
105
  The necessary parameters for checking the version are not specified.
35
- Current values packageName: ${packageName}, packageVersion: ${packageVersion}
106
+ Current values packageName: ${this._packageName}, packageVersion: ${this._packageVersion}
36
107
  `);
37
108
  }
38
- this._packageName = packageName;
39
- this._packageVersion = packageVersion;
109
+ if (!this._enabled) {
110
+ return;
111
+ }
40
112
  try {
41
113
  this._configStore = new configstore_1.default(`-${this._packageName}`, {
42
114
  lastUpdateCheck: Date.now(),
@@ -49,72 +121,93 @@ class UpdateNotifier {
49
121
  /**
50
122
  * Requests the latest version of the generator via npm
51
123
  */
52
- fetchNpmPackageInfo() {
53
- try {
54
- const latestVersion = (0, child_process_1.execSync)(`npm view ${this._packageName} version`).toString().trim();
55
- const releaseType = semver_1.default.diff(this._packageVersion, latestVersion);
56
- return {
57
- currentVersion: this._packageVersion,
58
- differenceType: releaseType,
59
- latestVersion,
60
- packageName: this._packageName,
61
- };
62
- }
63
- catch {
124
+ async fetchNpmPackageInfo() {
125
+ const latestVersion = await this._updateChecker.fetchLatestVersion();
126
+ if (!latestVersion) {
64
127
  this._logger.warn("Couldn't get information about the latest current version");
65
128
  return null;
66
129
  }
130
+ const releaseType = semver_1.default.diff(this._packageVersion, latestVersion);
131
+ return {
132
+ currentVersion: this._packageVersion,
133
+ differenceType: releaseType,
134
+ latestVersion,
135
+ packageName: this._packageName,
136
+ };
67
137
  }
68
138
  /**
69
139
  * Checks for updates and writes useful information to the cache
70
140
  */
71
- checkUpdate() {
72
- if (!this._configStore) {
73
- return;
74
- }
75
- this._packageStoreInfo = this._configStore.get('package_store_info');
76
- if (this._packageStoreInfo) {
77
- this._packageStoreInfo.currentVersion = this._packageVersion;
78
- // clean cache
79
- this._configStore.delete('package_store_info');
80
- }
81
- if (Date.now() - this._configStore.get('lastUpdateCheck') < UPDATE_CHECK_INTERVAL) {
141
+ async checkUpdate() {
142
+ if (!this._configStore || !this._enabled) {
82
143
  return;
83
144
  }
84
- const fetchInfo = this.fetchNpmPackageInfo();
85
- this._configStore.set('lastUpdateCheck', Date.now());
145
+ const fetchInfo = await this.fetchNpmPackageInfo();
146
+ // We update lastUpdateCheck ONLY if we find a suitable update (major/minor)
147
+ // This ensures that the check will be repeated until a suitable version is found
86
148
  if (fetchInfo?.differenceType && INCLUDED_RELEASE_TYPES.includes(fetchInfo.differenceType)) {
87
149
  this._configStore.set('package_store_info', fetchInfo);
150
+ this._configStore.set('lastUpdateCheck', Date.now());
151
+ this._packageStoreInfo = fetchInfo;
88
152
  }
153
+ // If no suitable update found, we don't update lastUpdateCheck,
154
+ // so the check will happen again on next run
89
155
  }
90
156
  /**
91
157
  * Checks for updates and notifies about the possibility to install a new version.
158
+ * This method waits for the check to complete before returning.
92
159
  */
93
- checkAndNotify() {
94
- if (!this._configStore) {
95
- this._logger.warn("Couldn't get information about the latest current version");
96
- this._logger.shutdownLogger();
160
+ async checkAndNotify() {
161
+ if (!this._configStore || !this._enabled) {
97
162
  return;
98
163
  }
99
- this.checkUpdate();
100
- if (!this._packageStoreInfo || !semver_1.default.gt(this._packageStoreInfo.latestVersion, this._packageStoreInfo.currentVersion)) {
101
- return;
164
+ try {
165
+ // First, check if we have cached update info
166
+ const cachedInfo = this._configStore.get('package_store_info');
167
+ if (cachedInfo) {
168
+ // Update current version in cache
169
+ cachedInfo.currentVersion = this._packageVersion;
170
+ // Check if we need to show notification
171
+ if (semver_1.default.gt(cachedInfo.latestVersion, cachedInfo.currentVersion)) {
172
+ this._notificationService.notify(cachedInfo);
173
+ // Remove from cache after showing, so we don't show it again
174
+ this._configStore.delete('package_store_info');
175
+ return;
176
+ }
177
+ else {
178
+ // Version is already up to date, clear cache
179
+ this._configStore.delete('package_store_info');
180
+ }
181
+ }
182
+ // Check if we need to perform a new check
183
+ const lastCheck = this._configStore.get('lastUpdateCheck');
184
+ if (Date.now() - lastCheck < this._checkInterval) {
185
+ // return;
186
+ }
187
+ // Perform update check and WAIT for it to complete
188
+ await this.checkUpdate();
189
+ // After check, see if we have info to show
190
+ if (this._packageStoreInfo && semver_1.default.gt(this._packageStoreInfo.latestVersion, this._packageStoreInfo.currentVersion)) {
191
+ this._notificationService.notify(this._packageStoreInfo);
192
+ // Remove from cache after showing
193
+ this._configStore.delete('package_store_info');
194
+ }
102
195
  }
103
- const { packageName, currentVersion, latestVersion } = this._packageStoreInfo;
104
- const scriptText = chalk_1.default.yellowBright(`npm i -D ${packageName}@${latestVersion}`);
105
- const message = `
106
- An update is available: ${chalk_1.default.gray(currentVersion)} -> ${chalk_1.default.greenBright(latestVersion)}}
107
- Run ${scriptText} to update
108
- `;
109
- console.log((0, boxen_1.default)(message, {
110
- borderColor: 'cyanBright',
111
- margin: 1,
112
- padding: 1,
113
- title: 'Pay attention',
114
- titleAlignment: 'center',
115
- textAlignment: 'center',
116
- }));
117
- this._logger.shutdownLogger();
196
+ catch (error) {
197
+ // Silently fail - update check should not break the main flow
198
+ this._logger.warn(`Update check failed: ${error instanceof Error ? error.message : String(error)}`);
199
+ }
200
+ // REMOVED shutdownLogger() - Logger lifecycle should be managed at application level
201
+ }
202
+ /**
203
+ * Synchronous version for backward compatibility
204
+ * @deprecated Use checkAndNotify() instead
205
+ */
206
+ checkAndNotifySync() {
207
+ // For backward compatibility, but should be removed
208
+ this.checkAndNotify().catch(() => {
209
+ // Ignore errors in sync version
210
+ });
118
211
  }
119
212
  }
120
213
  exports.UpdateNotifier = UpdateNotifier;
@@ -11,4 +11,9 @@ export type SchemaMigrationPlan<From, To> = {
11
11
  migrate: (input: From) => To;
12
12
  };
13
13
  export type TraverseHandler<T> = (value: any, recurse: (v: any) => void, result: T) => boolean;
14
+ export type VersionMatchResult = {
15
+ lastVersionIndex: number;
16
+ latestVersion: string;
17
+ firstVersion: string;
18
+ };
14
19
  //# sourceMappingURL=Types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/common/VersionedSchema/Types.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACnB,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,IAAI,EAAE,EAAE,IAAI;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;CAChC,CAAA;AAGD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC"}
1
+ {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../../src/common/VersionedSchema/Types.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACnB,CAAA;AAED,MAAM,MAAM,mBAAmB,CAAC,IAAI,EAAE,EAAE,IAAI;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;CAChC,CAAA;AAGD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC;AAG/F,MAAM,MAAM,kBAAkB,GAAG;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACxB,CAAC"}
@@ -1,9 +1,3 @@
1
- import { VersionedSchema } from '../Types';
2
- type VersionMatchResult = {
3
- lastVersionIndex: number;
4
- latestVersion: string;
5
- firstVersion: string;
6
- };
1
+ import { VersionedSchema, VersionMatchResult } from '../Types';
7
2
  export declare function determineBestMatchingSchemaVersion(inputData: Record<string, any>, versionedSchemas: VersionedSchema<Record<string, any>>[]): VersionMatchResult;
8
- export {};
9
3
  //# sourceMappingURL=determineBestMatchingSchemaVersion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"determineBestMatchingSchemaVersion.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAK3C,KAAK,kBAAkB,GAAG;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACxB,CAAC;AAGF,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,gBAAgB,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,kBAAkB,CA4C/J"}
1
+ {"version":3,"file":"determineBestMatchingSchemaVersion.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAM/D,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,gBAAgB,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,kBAAkB,CA4C/J"}
@@ -0,0 +1,3 @@
1
+ import Joi from "joi";
2
+ export declare function getCurrentErrorMessage(error: Joi.ValidationError, replaicingKeysMap: Map<string, string>): void;
3
+ //# sourceMappingURL=getCurrentErrorMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCurrentErrorMessage.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/getCurrentErrorMessage.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAKtB,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAQxG"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCurrentErrorMessage = getCurrentErrorMessage;
4
+ const getErrorFieldsFromValidation_1 = require("./getErrorFieldsFromValidation");
5
+ const getKeyByMapValue_1 = require("./getKeyByMapValue");
6
+ function getCurrentErrorMessage(error, replaicingKeysMap) {
7
+ const { path } = (0, getErrorFieldsFromValidation_1.getErrorFieldsFromValidation)(error)[0];
8
+ const reverseKey = (0, getKeyByMapValue_1.getKeyByMapValue)(replaicingKeysMap, path);
9
+ let currentMessage = error.message;
10
+ if (reverseKey) {
11
+ currentMessage = error.message.replace(path, reverseKey);
12
+ }
13
+ throw new Error(currentMessage);
14
+ }
@@ -0,0 +1,2 @@
1
+ export declare function getKeyByMapValue(keysMap: Map<string, string>, searchValue: string): string | undefined;
2
+ //# sourceMappingURL=getKeyByMapValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getKeyByMapValue.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/getKeyByMapValue.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,MAAM,sBAQjF"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getKeyByMapValue = getKeyByMapValue;
4
+ function getKeyByMapValue(keysMap, searchValue) {
5
+ for (const [key, value] of keysMap.entries()) {
6
+ if (value === searchValue) {
7
+ return key;
8
+ }
9
+ }
10
+ return undefined;
11
+ }
@@ -1,15 +1,18 @@
1
+ import { EMigrationMode } from '../../Enums';
1
2
  import { EVersionedSchemaType } from '../Enums';
2
- import { SchemaMigrationPlan, VersionedSchema } from '../Types';
3
+ import { SchemaMigrationPlan, VersionedSchema, VersionMatchResult } from '../Types';
3
4
  type MigrateToLatestProps = {
4
5
  rawInput: Record<string, any>;
5
6
  migrationPlans: SchemaMigrationPlan<Record<string, any>, Record<string, any>>[];
6
7
  versionedSchemas: VersionedSchema<Record<string, any>>[];
8
+ migrationMode: EMigrationMode;
7
9
  };
8
10
  type MigrateToLatestResult = {
9
11
  value: Record<string, any>;
12
+ guessedVersion: VersionMatchResult;
10
13
  schemaVersion: string;
11
14
  schemaType: EVersionedSchemaType;
12
15
  };
13
- export declare function migrateDataToLatestSchemaVersion({ rawInput, migrationPlans, versionedSchemas }: MigrateToLatestProps): MigrateToLatestResult | null;
16
+ export declare function migrateDataToLatestSchemaVersion({ rawInput, migrationPlans, versionedSchemas, migrationMode }: MigrateToLatestProps): MigrateToLatestResult | null;
14
17
  export {};
15
18
  //# sourceMappingURL=migrateDataToLatestSchemaVersion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrateDataToLatestSchemaVersion.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQhE,KAAK,oBAAoB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,cAAc,EAAE,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IAChF,gBAAgB,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;CAC5D,CAAC;AAEF,KAAK,qBAAqB,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,oBAAoB,CAAC;CACpC,CAAC;AAEF,wBAAgB,gCAAgC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,IAAI,CAwCnJ"}
1
+ {"version":3,"file":"migrateDataToLatestSchemaVersion.d.ts","sourceRoot":"","sources":["../../../../src/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AASpF,KAAK,oBAAoB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,cAAc,EAAE,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IAChF,gBAAgB,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IACzD,aAAa,EAAE,cAAc,CAAC;CACjC,CAAC;AAEF,KAAK,qBAAqB,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,cAAc,EAAE,kBAAkB,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,oBAAoB,CAAC;CACpC,CAAC;AAEF,wBAAgB,gCAAgC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,IAAI,CAqDlK"}