ts-openapi-codegen 1.0.0-beta.5 → 1.0.0-beta.7

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 (368) hide show
  1. package/README.md +43 -58
  2. package/dist/cli/chekOpenApiConfig/chekOpenApiConfig.d.ts +5 -0
  3. package/dist/cli/chekOpenApiConfig/chekOpenApiConfig.d.ts.map +1 -0
  4. package/dist/cli/chekOpenApiConfig/chekOpenApiConfig.js +40 -0
  5. package/dist/cli/generate/runGenerateOpenApi.js +4 -4
  6. package/dist/cli/index.js +57 -18
  7. package/dist/cli/utils.d.ts +4 -16
  8. package/dist/cli/utils.d.ts.map +1 -1
  9. package/dist/cli/utils.js +22 -20
  10. package/dist/common/Options.d.ts +4 -6
  11. package/dist/common/Options.d.ts.map +1 -1
  12. package/dist/common/UpdateNotifier.d.ts +24 -0
  13. package/dist/common/UpdateNotifier.d.ts.map +1 -0
  14. package/dist/common/UpdateNotifier.js +120 -0
  15. package/dist/common/Utils.d.ts.map +1 -1
  16. package/dist/common/Utils.js +8 -9
  17. package/dist/common/VersionedSchema/CommonSchemas.d.ts +12 -0
  18. package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
  19. package/dist/common/VersionedSchema/CommonSchemas.js +27 -1
  20. package/dist/common/VersionedSchema/{MultiOptionsMigrationPlan.d.ts → MultiOptionsVersioned/MultiOptionsMigrationPlan.d.ts} +1 -1
  21. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsMigrationPlan.d.ts.map +1 -0
  22. package/dist/common/VersionedSchema/{MultiOptionsMigrationPlan.js → MultiOptionsVersioned/MultiOptionsMigrationPlan.js} +18 -7
  23. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts +6 -0
  24. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts.map +1 -0
  25. package/dist/common/VersionedSchema/{MultiOptionsSchemaV1.js → MultiOptionsVersioned/MultiOptionsSchemaV1.js} +4 -4
  26. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts +6 -0
  27. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts.map +1 -0
  28. package/dist/common/VersionedSchema/{MultiOptionsSchemaV2.js → MultiOptionsVersioned/MultiOptionsSchemaV2.js} +4 -4
  29. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts +5 -0
  30. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -0
  31. package/dist/common/VersionedSchema/{MultiOptionsSchemaV3.js → MultiOptionsVersioned/MultiOptionsSchemaV3.js} +3 -3
  32. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts +6 -0
  33. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts.map +1 -0
  34. package/dist/common/VersionedSchema/{MultiOptionsSchemaV4.js → MultiOptionsVersioned/MultiOptionsSchemaV4.js} +4 -4
  35. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts +6 -0
  36. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -0
  37. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.js +22 -0
  38. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.d.ts +3 -0
  39. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.d.ts.map +1 -0
  40. package/dist/common/VersionedSchema/{MultiOptionsVersionedSchemas.js → MultiOptionsVersioned/MultiOptionsVersionedSchemas.js} +10 -5
  41. package/dist/common/VersionedSchema/{OptionsMigrationPlans.d.ts → OptionsVersioned/OptionsMigrationPlans.d.ts} +1 -1
  42. package/dist/common/VersionedSchema/OptionsVersioned/OptionsMigrationPlans.d.ts.map +1 -0
  43. package/dist/common/VersionedSchema/OptionsVersioned/OptionsMigrationPlans.js +23 -0
  44. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +6 -0
  45. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -0
  46. package/dist/common/VersionedSchema/{OptionsSchemaV1.js → OptionsVersioned/OptionsSchemaV1.js} +4 -4
  47. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +6 -0
  48. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts.map +1 -0
  49. package/dist/common/VersionedSchema/{OptionsSchemaV2.js → OptionsVersioned/OptionsSchemaV2.js} +4 -4
  50. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts +5 -0
  51. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts.map +1 -0
  52. package/dist/common/VersionedSchema/{OptionsSchemaV3.js → OptionsVersioned/OptionsSchemaV3.js} +3 -3
  53. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +6 -0
  54. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts.map +1 -0
  55. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.js +17 -0
  56. package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.d.ts +3 -0
  57. package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.d.ts.map +1 -0
  58. package/dist/common/VersionedSchema/{OptionsVersionedSchemas.js → OptionsVersioned/OptionsVersionedSchemas.js} +9 -4
  59. package/dist/common/VersionedSchema/Types.d.ts +0 -4
  60. package/dist/common/VersionedSchema/Types.d.ts.map +1 -1
  61. package/dist/common/__tests__/convertArrayToObject.test.js +62 -59
  62. package/dist/common/__tests__/mergeObjectSchemas.test.js +1 -1
  63. package/dist/common/__tests__/migrationForMultiOptions.test.js +9 -5
  64. package/dist/common/__tests__/migrationForOptions.test.js +17 -8
  65. package/dist/common/defaultOptions.d.ts.map +1 -1
  66. package/dist/common/defaultOptions.js +5 -7
  67. package/dist/core/Context.d.ts +15 -7
  68. package/dist/core/Context.d.ts.map +1 -1
  69. package/dist/core/Context.js +3 -0
  70. package/dist/core/WriteClient.d.ts +94 -0
  71. package/dist/core/WriteClient.d.ts.map +1 -0
  72. package/dist/core/WriteClient.js +293 -0
  73. package/dist/core/__tests__/WriteClient.test.d.ts +2 -0
  74. package/dist/core/__tests__/WriteClient.test.d.ts.map +1 -0
  75. package/dist/core/{utils/__tests__/writeClient.test.js → __tests__/WriteClient.test.js} +16 -12
  76. package/dist/core/api/v2/parser/__tests__/getType.test.js +7 -25
  77. package/dist/core/api/v2/parser/getModel.d.ts.map +1 -1
  78. package/dist/core/api/v2/parser/getModel.js +5 -2
  79. package/dist/core/api/v2/parser/getModelProperties.d.ts.map +1 -1
  80. package/dist/core/api/v2/parser/getModelProperties.js +3 -1
  81. package/dist/core/api/v2/parser/getModels.d.ts.map +1 -1
  82. package/dist/core/api/v2/parser/getModels.js +3 -29
  83. package/dist/core/api/v2/parser/getOperation.d.ts +1 -1
  84. package/dist/core/api/v2/parser/getOperation.d.ts.map +1 -1
  85. package/dist/core/api/v2/parser/getOperation.js +3 -3
  86. package/dist/core/api/v2/parser/getOperationParameter.d.ts +1 -1
  87. package/dist/core/api/v2/parser/getOperationParameter.d.ts.map +1 -1
  88. package/dist/core/api/v2/parser/getOperationParameter.js +4 -2
  89. package/dist/core/api/v2/parser/getOperationParameters.d.ts +1 -1
  90. package/dist/core/api/v2/parser/getOperationParameters.d.ts.map +1 -1
  91. package/dist/core/api/v2/parser/getOperationParameters.js +2 -2
  92. package/dist/core/api/v2/parser/getOperationResponse.d.ts.map +1 -1
  93. package/dist/core/api/v2/parser/getOperationResponse.js +3 -1
  94. package/dist/core/api/v2/parser/getOperationResponses.d.ts +1 -1
  95. package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
  96. package/dist/core/api/v2/parser/getOperationResponses.js +2 -2
  97. package/dist/core/api/v2/parser/getServiceName.d.ts +3 -0
  98. package/dist/core/api/v2/parser/getServiceName.d.ts.map +1 -0
  99. package/dist/core/api/v2/parser/getServiceName.js +8 -0
  100. package/dist/core/api/v2/parser/getServices.d.ts.map +1 -1
  101. package/dist/core/api/v2/parser/getServices.js +21 -32
  102. package/dist/core/api/v2/parser/getType.d.ts.map +1 -1
  103. package/dist/core/api/v2/parser/getType.js +13 -9
  104. package/dist/core/api/v3/parser/__tests__/getType.test.js +6 -24
  105. package/dist/core/api/v3/parser/getModel.d.ts.map +1 -1
  106. package/dist/core/api/v3/parser/getModel.js +5 -2
  107. package/dist/core/api/v3/parser/getModelProperties.d.ts.map +1 -1
  108. package/dist/core/api/v3/parser/getModelProperties.js +3 -1
  109. package/dist/core/api/v3/parser/getModels.d.ts.map +1 -1
  110. package/dist/core/api/v3/parser/getModels.js +3 -29
  111. package/dist/core/api/v3/parser/getOperation.d.ts +1 -1
  112. package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
  113. package/dist/core/api/v3/parser/getOperation.js +4 -4
  114. package/dist/core/api/v3/parser/getOperationParameter.d.ts +1 -1
  115. package/dist/core/api/v3/parser/getOperationParameter.d.ts.map +1 -1
  116. package/dist/core/api/v3/parser/getOperationParameter.js +6 -3
  117. package/dist/core/api/v3/parser/getOperationParameters.d.ts +1 -1
  118. package/dist/core/api/v3/parser/getOperationParameters.d.ts.map +1 -1
  119. package/dist/core/api/v3/parser/getOperationParameters.js +2 -2
  120. package/dist/core/api/v3/parser/getOperationRequestBody.d.ts.map +1 -1
  121. package/dist/core/api/v3/parser/getOperationRequestBody.js +3 -1
  122. package/dist/core/api/v3/parser/getOperationResponse.d.ts.map +1 -1
  123. package/dist/core/api/v3/parser/getOperationResponse.js +3 -1
  124. package/dist/core/api/v3/parser/getOperationResponses.d.ts +1 -1
  125. package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
  126. package/dist/core/api/v3/parser/getOperationResponses.js +2 -2
  127. package/dist/core/api/v3/parser/getServiceName.d.ts +3 -0
  128. package/dist/core/api/v3/parser/getServiceName.d.ts.map +1 -0
  129. package/dist/core/api/v3/parser/getServiceName.js +8 -0
  130. package/dist/core/api/v3/parser/getServices.d.ts.map +1 -1
  131. package/dist/core/api/v3/parser/getServices.js +18 -84
  132. package/dist/core/api/v3/parser/getType.d.ts.map +1 -1
  133. package/dist/core/api/v3/parser/getType.js +22 -10
  134. package/dist/core/api/v3/types/OpenApiPath.model.d.ts +2 -1
  135. package/dist/core/api/v3/types/OpenApiPath.model.d.ts.map +1 -1
  136. package/dist/core/index.d.ts +1 -1
  137. package/dist/core/index.d.ts.map +1 -1
  138. package/dist/core/index.js +21 -22
  139. package/dist/core/types/base/ClientArtifacts.model.d.ts +12 -0
  140. package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -0
  141. package/dist/core/types/base/ExportedModel.model.d.ts +17 -0
  142. package/dist/core/types/base/ExportedModel.model.d.ts.map +1 -0
  143. package/dist/core/types/base/ExportedService.model.d.ts +9 -0
  144. package/dist/core/types/base/ExportedService.model.d.ts.map +1 -0
  145. package/dist/core/types/base/ExportedService.model.js +2 -0
  146. package/dist/core/types/base/OutputPaths.model.d.ts +15 -0
  147. package/dist/core/types/base/OutputPaths.model.d.ts.map +1 -0
  148. package/dist/core/types/base/OutputPaths.model.js +2 -0
  149. package/dist/core/types/base/PrefixArtifacts.model.d.ts +6 -0
  150. package/dist/core/types/base/PrefixArtifacts.model.d.ts.map +1 -0
  151. package/dist/core/types/base/PrefixArtifacts.model.js +2 -0
  152. package/dist/core/types/base/PropertyGroup.model.d.ts +4 -0
  153. package/dist/core/types/base/PropertyGroup.model.d.ts.map +1 -0
  154. package/dist/core/types/base/PropertyGroup.model.js +2 -0
  155. package/dist/core/types/base/RefWithtype.model.d.ts +11 -0
  156. package/dist/core/types/base/RefWithtype.model.d.ts.map +1 -0
  157. package/dist/core/types/base/RefWithtype.model.js +2 -0
  158. package/dist/core/types/base/Root.model.d.ts +5 -0
  159. package/dist/core/types/base/Root.model.d.ts.map +1 -0
  160. package/dist/core/types/base/Root.model.js +2 -0
  161. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts +10 -0
  162. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts.map +1 -0
  163. package/dist/core/types/base/SimpleClientArtifacts.model.js +2 -0
  164. package/dist/core/types/enums/HttpClient.enum.d.ts +7 -0
  165. package/dist/core/types/enums/HttpClient.enum.d.ts.map +1 -0
  166. package/dist/core/types/{Enums.js → enums/HttpClient.enum.js} +1 -9
  167. package/dist/core/types/enums/TypeRef.enum.d.ts +8 -0
  168. package/dist/core/types/enums/TypeRef.enum.d.ts.map +1 -0
  169. package/dist/core/types/enums/TypeRef.enum.js +11 -0
  170. package/dist/core/utils/__tests__/getAbsolutePath.test.js +1 -1
  171. package/dist/core/utils/__tests__/getGatheringRefs.test.js +3 -6
  172. package/dist/core/utils/__tests__/getRefFromSchema.test.js +1 -1
  173. package/dist/core/utils/__tests__/pathHelpers.test.js +4 -4
  174. package/dist/core/utils/__tests__/refResolver.test.d.ts +2 -0
  175. package/dist/core/utils/__tests__/refResolver.test.d.ts.map +1 -0
  176. package/dist/core/utils/__tests__/refResolver.test.js +55 -0
  177. package/dist/core/utils/__tests__/registerHandlebarHelpers.test.js +2 -2
  178. package/dist/core/utils/__tests__/registerHandlebarTemplates.test.js +7 -3
  179. package/dist/core/utils/__tests__/resolveRefToImportPath.test.d.ts +2 -0
  180. package/dist/core/utils/__tests__/resolveRefToImportPath.test.d.ts.map +1 -0
  181. package/dist/core/utils/__tests__/resolveRefToImportPath.test.js +67 -0
  182. package/dist/core/utils/__tests__/sortByRequiredExtended.test.js +24 -24
  183. package/dist/core/utils/__tests__/sortByRequiredSimple.test.js +13 -13
  184. package/dist/core/utils/__tests__/writeClientCore.test.js +14 -6
  185. package/dist/core/utils/__tests__/writeClientFullIndex.test.d.ts +2 -0
  186. package/dist/core/utils/__tests__/writeClientFullIndex.test.d.ts.map +1 -0
  187. package/dist/core/utils/__tests__/{writeClientIndex.test.js → writeClientFullIndex.test.js} +15 -7
  188. package/dist/core/utils/__tests__/writeClientModels.test.js +15 -7
  189. package/dist/core/utils/__tests__/writeClientSchemas.test.js +15 -7
  190. package/dist/core/utils/__tests__/writeClientServices.test.js +15 -7
  191. package/dist/core/utils/advancedDeduplicatePath.d.ts +5 -0
  192. package/dist/core/utils/advancedDeduplicatePath.d.ts.map +1 -0
  193. package/dist/core/utils/advancedDeduplicatePath.js +29 -0
  194. package/dist/core/utils/appendUniqueLinesToFile.d.ts +2 -0
  195. package/dist/core/utils/appendUniqueLinesToFile.d.ts.map +1 -0
  196. package/dist/core/utils/appendUniqueLinesToFile.js +24 -0
  197. package/dist/core/utils/createNormalizedRef.d.ts +7 -0
  198. package/dist/core/utils/createNormalizedRef.d.ts.map +1 -0
  199. package/dist/core/utils/createNormalizedRef.js +24 -0
  200. package/dist/core/utils/findCommonParent.d.ts +7 -0
  201. package/dist/core/utils/findCommonParent.d.ts.map +1 -0
  202. package/dist/core/utils/findCommonParent.js +20 -0
  203. package/dist/core/utils/getAbsolutePath.d.ts.map +1 -1
  204. package/dist/core/utils/getAbsolutePath.js +16 -5
  205. package/dist/core/utils/getGatheringRefs.d.ts +2 -2
  206. package/dist/core/utils/getGatheringRefs.d.ts.map +1 -1
  207. package/dist/core/utils/getGatheringRefs.js +26 -17
  208. package/dist/core/utils/getMappedType.d.ts +0 -1
  209. package/dist/core/utils/getMappedType.d.ts.map +1 -1
  210. package/dist/core/utils/getMappedType.js +3 -4
  211. package/dist/core/utils/getOpenApiSpec.d.ts.map +1 -1
  212. package/dist/core/utils/getOpenApiSpec.js +9 -32
  213. package/dist/core/utils/getOutputPaths.d.ts +2 -2
  214. package/dist/core/utils/getOutputPaths.d.ts.map +1 -1
  215. package/dist/core/utils/getPropertyGroupExtended.d.ts +2 -2
  216. package/dist/core/utils/getPropertyGroupExtended.d.ts.map +1 -1
  217. package/dist/core/utils/getPropertyGroupSimple.d.ts +2 -2
  218. package/dist/core/utils/getPropertyGroupSimple.d.ts.map +1 -1
  219. package/dist/core/utils/getRefFromSchema.js +2 -2
  220. package/dist/core/utils/getRelativeModelImportPath.js +1 -1
  221. package/dist/core/utils/getRelativeModelPath.d.ts.map +1 -1
  222. package/dist/core/utils/getRelativeModelPath.js +5 -0
  223. package/dist/core/utils/isDirectory.d.ts +2 -0
  224. package/dist/core/utils/isDirectory.d.ts.map +1 -0
  225. package/dist/core/utils/isDirectory.js +13 -0
  226. package/dist/core/utils/isFileName.d.ts +7 -0
  227. package/dist/core/utils/isFileName.d.ts.map +1 -0
  228. package/dist/core/utils/isFileName.js +30 -0
  229. package/dist/core/utils/mapPathToTargetDirSafe.d.ts +10 -0
  230. package/dist/core/utils/mapPathToTargetDirSafe.d.ts.map +1 -0
  231. package/dist/core/utils/mapPathToTargetDirSafe.js +49 -0
  232. package/dist/core/utils/modelHelpers.d.ts +28 -0
  233. package/dist/core/utils/modelHelpers.d.ts.map +1 -0
  234. package/dist/core/utils/modelHelpers.js +73 -0
  235. package/dist/core/utils/normalizeAllRefs.d.ts +6 -0
  236. package/dist/core/utils/normalizeAllRefs.d.ts.map +1 -0
  237. package/dist/core/utils/normalizeAllRefs.js +35 -0
  238. package/dist/core/utils/normalizePath.d.ts +5 -0
  239. package/dist/core/utils/normalizePath.d.ts.map +1 -0
  240. package/dist/core/utils/normalizePath.js +19 -0
  241. package/dist/core/utils/normalizeRef.d.ts +5 -0
  242. package/dist/core/utils/normalizeRef.d.ts.map +1 -0
  243. package/dist/core/utils/normalizeRef.js +17 -0
  244. package/dist/core/utils/parseRef.d.ts +18 -0
  245. package/dist/core/utils/parseRef.d.ts.map +1 -0
  246. package/dist/core/utils/parseRef.js +64 -0
  247. package/dist/core/utils/pathHelpers.d.ts +1 -0
  248. package/dist/core/utils/pathHelpers.d.ts.map +1 -1
  249. package/dist/core/utils/pathHelpers.js +23 -3
  250. package/dist/core/utils/prepareAlias.d.ts +3 -0
  251. package/dist/core/utils/prepareAlias.d.ts.map +1 -0
  252. package/dist/core/utils/prepareAlias.js +20 -0
  253. package/dist/core/utils/prepareOptions.d.ts.map +1 -1
  254. package/dist/core/utils/prepareOptions.js +5 -7
  255. package/dist/core/utils/registerHandlebarHelpers.d.ts +1 -1
  256. package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
  257. package/dist/core/utils/registerHandlebarTemplates.d.ts +9 -2
  258. package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
  259. package/dist/core/utils/registerHandlebarTemplates.js +16 -2
  260. package/dist/core/utils/resolveRefPath.d.ts +7 -0
  261. package/dist/core/utils/resolveRefPath.d.ts.map +1 -0
  262. package/dist/core/utils/resolveRefPath.js +34 -0
  263. package/dist/core/utils/resolveRefToImportPath.d.ts +7 -0
  264. package/dist/core/utils/resolveRefToImportPath.d.ts.map +1 -0
  265. package/dist/core/utils/resolveRefToImportPath.js +45 -0
  266. package/dist/core/utils/serviceHelpers.d.ts +41 -0
  267. package/dist/core/utils/serviceHelpers.d.ts.map +1 -0
  268. package/dist/core/utils/serviceHelpers.js +115 -0
  269. package/dist/core/utils/sortModelByName.d.ts +3 -0
  270. package/dist/core/utils/sortModelByName.d.ts.map +1 -0
  271. package/dist/core/utils/sortModelByName.js +12 -0
  272. package/dist/core/utils/writeClientCore.d.ts +4 -2
  273. package/dist/core/utils/writeClientCore.d.ts.map +1 -1
  274. package/dist/core/utils/writeClientCore.js +4 -1
  275. package/dist/core/utils/writeClientCoreIndex.d.ts +11 -0
  276. package/dist/core/utils/writeClientCoreIndex.d.ts.map +1 -0
  277. package/dist/core/utils/writeClientCoreIndex.js +16 -0
  278. package/dist/core/utils/writeClientFullIndex.d.ts +9 -0
  279. package/dist/core/utils/writeClientFullIndex.d.ts.map +1 -0
  280. package/dist/core/utils/writeClientFullIndex.js +22 -0
  281. package/dist/core/utils/writeClientModels.d.ts +3 -2
  282. package/dist/core/utils/writeClientModels.d.ts.map +1 -1
  283. package/dist/core/utils/writeClientModels.js +5 -0
  284. package/dist/core/utils/writeClientModelsIndex.d.ts +12 -0
  285. package/dist/core/utils/writeClientModelsIndex.d.ts.map +1 -0
  286. package/dist/core/utils/writeClientModelsIndex.js +16 -0
  287. package/dist/core/utils/writeClientSchemas.d.ts +3 -2
  288. package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
  289. package/dist/core/utils/writeClientSchemas.js +5 -0
  290. package/dist/core/utils/writeClientSchemasIndex.d.ts +12 -0
  291. package/dist/core/utils/writeClientSchemasIndex.d.ts.map +1 -0
  292. package/dist/core/utils/writeClientSchemasIndex.js +16 -0
  293. package/dist/core/utils/writeClientServices.d.ts +5 -4
  294. package/dist/core/utils/writeClientServices.d.ts.map +1 -1
  295. package/dist/core/utils/writeClientServices.js +4 -0
  296. package/dist/core/utils/writeClientServicesIndex.d.ts +12 -0
  297. package/dist/core/utils/writeClientServicesIndex.d.ts.map +1 -0
  298. package/dist/core/utils/writeClientServicesIndex.js +16 -0
  299. package/dist/core/utils/writeClientSimpleIndex.d.ts +9 -0
  300. package/dist/core/utils/writeClientSimpleIndex.d.ts.map +1 -0
  301. package/dist/core/utils/writeClientSimpleIndex.js +22 -0
  302. package/dist/templatesCompiled/exportModel.js +2 -2
  303. package/dist/templatesCompiled/indexCore.d.ts +9 -0
  304. package/dist/templatesCompiled/indexCore.d.ts.map +1 -0
  305. package/dist/templatesCompiled/indexCore.js +22 -0
  306. package/dist/templatesCompiled/{index.d.ts → indexFull.d.ts} +1 -1
  307. package/dist/templatesCompiled/indexFull.d.ts.map +1 -0
  308. package/dist/templatesCompiled/indexModels.d.ts +15 -0
  309. package/dist/templatesCompiled/indexModels.d.ts.map +1 -0
  310. package/dist/templatesCompiled/indexModels.js +82 -0
  311. package/dist/templatesCompiled/indexServices.d.ts +10 -0
  312. package/dist/templatesCompiled/indexServices.d.ts.map +1 -0
  313. package/dist/templatesCompiled/indexServices.js +35 -0
  314. package/dist/templatesCompiled/indexShemas.d.ts +11 -0
  315. package/dist/templatesCompiled/indexShemas.d.ts.map +1 -0
  316. package/dist/templatesCompiled/indexShemas.js +47 -0
  317. package/dist/templatesCompiled/indexSimple.d.ts +21 -0
  318. package/dist/templatesCompiled/indexSimple.d.ts.map +1 -0
  319. package/dist/templatesCompiled/indexSimple.js +121 -0
  320. package/dist/templatesCompiled/partials/isReadOnly.d.ts +1 -1
  321. package/dist/templatesCompiled/partials/isReadOnly.d.ts.map +1 -1
  322. package/dist/templatesCompiled/partials/isReadOnly.js +1 -2
  323. package/dist/templatesCompiled/partials/isRequiredDefinition.d.ts +9 -0
  324. package/dist/templatesCompiled/partials/isRequiredDefinition.d.ts.map +1 -0
  325. package/dist/templatesCompiled/partials/isRequiredDefinition.js +27 -0
  326. package/dist/templatesCompiled/partials/parametersDefinition.js +1 -1
  327. package/package.json +15 -4
  328. package/dist/common/VersionedSchema/MultiOptionsMigrationPlan.d.ts.map +0 -1
  329. package/dist/common/VersionedSchema/MultiOptionsSchemaV1.d.ts +0 -6
  330. package/dist/common/VersionedSchema/MultiOptionsSchemaV1.d.ts.map +0 -1
  331. package/dist/common/VersionedSchema/MultiOptionsSchemaV2.d.ts +0 -6
  332. package/dist/common/VersionedSchema/MultiOptionsSchemaV2.d.ts.map +0 -1
  333. package/dist/common/VersionedSchema/MultiOptionsSchemaV3.d.ts +0 -5
  334. package/dist/common/VersionedSchema/MultiOptionsSchemaV3.d.ts.map +0 -1
  335. package/dist/common/VersionedSchema/MultiOptionsSchemaV4.d.ts +0 -6
  336. package/dist/common/VersionedSchema/MultiOptionsSchemaV4.d.ts.map +0 -1
  337. package/dist/common/VersionedSchema/MultiOptionsVersionedSchemas.d.ts +0 -3
  338. package/dist/common/VersionedSchema/MultiOptionsVersionedSchemas.d.ts.map +0 -1
  339. package/dist/common/VersionedSchema/OptionsMigrationPlans.d.ts.map +0 -1
  340. package/dist/common/VersionedSchema/OptionsMigrationPlans.js +0 -15
  341. package/dist/common/VersionedSchema/OptionsSchemaV1.d.ts +0 -6
  342. package/dist/common/VersionedSchema/OptionsSchemaV1.d.ts.map +0 -1
  343. package/dist/common/VersionedSchema/OptionsSchemaV2.d.ts +0 -6
  344. package/dist/common/VersionedSchema/OptionsSchemaV2.d.ts.map +0 -1
  345. package/dist/common/VersionedSchema/OptionsSchemaV3.d.ts +0 -5
  346. package/dist/common/VersionedSchema/OptionsSchemaV3.d.ts.map +0 -1
  347. package/dist/common/VersionedSchema/OptionsVersionedSchemas.d.ts +0 -3
  348. package/dist/common/VersionedSchema/OptionsVersionedSchemas.d.ts.map +0 -1
  349. package/dist/core/types/Enums.d.ts +0 -14
  350. package/dist/core/types/Enums.d.ts.map +0 -1
  351. package/dist/core/types/Models.d.ts +0 -37
  352. package/dist/core/types/Models.d.ts.map +0 -1
  353. package/dist/core/types/shared/ConverterData.model.d.ts +0 -7
  354. package/dist/core/types/shared/ConverterData.model.d.ts.map +0 -1
  355. package/dist/core/utils/__tests__/writeClient.test.d.ts +0 -2
  356. package/dist/core/utils/__tests__/writeClient.test.d.ts.map +0 -1
  357. package/dist/core/utils/__tests__/writeClientIndex.test.d.ts +0 -2
  358. package/dist/core/utils/__tests__/writeClientIndex.test.d.ts.map +0 -1
  359. package/dist/core/utils/writeClient.d.ts +0 -89
  360. package/dist/core/utils/writeClient.d.ts.map +0 -1
  361. package/dist/core/utils/writeClient.js +0 -227
  362. package/dist/core/utils/writeClientIndex.d.ts +0 -59
  363. package/dist/core/utils/writeClientIndex.d.ts.map +0 -1
  364. package/dist/core/utils/writeClientIndex.js +0 -27
  365. package/dist/templatesCompiled/index.d.ts.map +0 -1
  366. /package/dist/core/types/{Models.js → base/ClientArtifacts.model.js} +0 -0
  367. /package/dist/core/types/{shared/ConverterData.model.js → base/ExportedModel.model.js} +0 -0
  368. /package/dist/templatesCompiled/{index.js → indexFull.js} +0 -0
@@ -5,16 +5,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const node_assert_1 = __importDefault(require("node:assert"));
7
7
  const node_test_1 = require("node:test");
8
- const Enums_1 = require("../../types/Enums");
8
+ const HttpClient_enum_1 = require("../../types/enums/HttpClient.enum");
9
+ const WriteClient_1 = require("../../WriteClient");
9
10
  const fileSystem_1 = require("../fileSystem");
10
- const writeClientServices_1 = require("../writeClientServices");
11
11
  (0, node_test_1.test)('@unit: writeClientServices writes to filesystem', async () => {
12
12
  const writeFileCalls = [];
13
13
  // Re-assigning the function manually with a mock
14
14
  const originalWriteFile = fileSystem_1.fileSystem.writeFile;
15
- fileSystem_1.fileSystem.writeFile = node_test_1.mock.fn(async (path, content) => {
15
+ fileSystem_1.fileSystem.writeFile = async (path, content) => {
16
16
  writeFileCalls.push([path, content]);
17
- });
17
+ };
18
18
  const services = [
19
19
  {
20
20
  name: 'MyService',
@@ -24,7 +24,14 @@ const writeClientServices_1 = require("../writeClientServices");
24
24
  },
25
25
  ];
26
26
  const templates = {
27
- index: () => 'index',
27
+ indexes: {
28
+ full: () => 'fullIndex',
29
+ simple: () => 'simpleIndex',
30
+ core: () => 'coreIndex',
31
+ models: () => 'modelsIndex',
32
+ schemas: () => 'schemasIndex',
33
+ services: () => 'servicesIndex',
34
+ },
28
35
  exports: {
29
36
  model: () => 'model',
30
37
  schema: () => 'schema',
@@ -40,7 +47,8 @@ const writeClientServices_1 = require("../writeClientServices");
40
47
  httpStatusCode: () => 'httpStatusCode',
41
48
  },
42
49
  };
43
- await (0, writeClientServices_1.writeClientServices)({
50
+ const writeClient = new WriteClient_1.WriteClient();
51
+ await writeClient.writeClientServices({
44
52
  services,
45
53
  templates,
46
54
  outputPaths: {
@@ -48,7 +56,7 @@ const writeClientServices_1 = require("../writeClientServices");
48
56
  outputModels: '/',
49
57
  outputServices: '/',
50
58
  },
51
- httpClient: Enums_1.HttpClient.FETCH,
59
+ httpClient: HttpClient_enum_1.HttpClient.FETCH,
52
60
  useUnionTypes: false,
53
61
  useOptions: false,
54
62
  useCancelableRequest: false,
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Advanced path deduplication - remove consecutive duplicate segments
3
+ */
4
+ export declare function advancedDeduplicatePath(path: string): string;
5
+ //# sourceMappingURL=advancedDeduplicatePath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advancedDeduplicatePath.d.ts","sourceRoot":"","sources":["../../../src/core/utils/advancedDeduplicatePath.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2B5D"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.advancedDeduplicatePath = advancedDeduplicatePath;
4
+ /**
5
+ * Advanced path deduplication - remove consecutive duplicate segments
6
+ */
7
+ function advancedDeduplicatePath(path) {
8
+ const segments = path.split('/');
9
+ const result = [];
10
+ for (let i = 0; i < segments.length; i++) {
11
+ const segment = segments[i];
12
+ if (segment === '' || segment === '.') {
13
+ continue;
14
+ }
15
+ if (segment === '..') {
16
+ if (result.length > 0) {
17
+ result.pop();
18
+ }
19
+ continue;
20
+ }
21
+ // Check if this segment is a duplicate of the previous one
22
+ if (result.length > 0 && result[result.length - 1] === segment) {
23
+ // Skip duplicate segment
24
+ continue;
25
+ }
26
+ result.push(segment);
27
+ }
28
+ return result.length > 0 ? '/' + result.join('/') : '';
29
+ }
@@ -0,0 +1,2 @@
1
+ export declare function appendUniqueLinesToFile(filePath: string, data: string): Promise<void>;
2
+ //# sourceMappingURL=appendUniqueLinesToFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appendUniqueLinesToFile.d.ts","sourceRoot":"","sources":["../../../src/core/utils/appendUniqueLinesToFile.ts"],"names":[],"mappings":"AAEA,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAoB3E"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.appendUniqueLinesToFile = appendUniqueLinesToFile;
4
+ const fileSystem_1 = require("./fileSystem");
5
+ async function appendUniqueLinesToFile(filePath, data) {
6
+ try {
7
+ let existingContent = '';
8
+ const fileExists = await fileSystem_1.fileSystem.exists(filePath);
9
+ if (fileExists) {
10
+ existingContent = await fileSystem_1.fileSystem.readFile(filePath, "utf8");
11
+ }
12
+ const existingLines = existingContent.split(/\r?\n/).filter(Boolean);
13
+ const dataLines = data.split(/\r?\n/).filter(Boolean);
14
+ const linesToAdd = dataLines.filter(line => !existingLines.includes(line.trim()));
15
+ if (linesToAdd.length === 0) {
16
+ return;
17
+ }
18
+ const updatedContent = existingContent + linesToAdd.join('\n') + '\n';
19
+ await fileSystem_1.fileSystem.writeFile(filePath, updatedContent);
20
+ }
21
+ catch (error) {
22
+ throw new Error(`Error when writing to a file: ${error?.message}`);
23
+ }
24
+ }
@@ -0,0 +1,7 @@
1
+ import { ParsedRef } from './parseRef';
2
+ /**
3
+ * Create normalized reference string from parsedRef and resolvedPath.
4
+ * If resolvedPath is a URL, preserve it.
5
+ */
6
+ export declare function createNormalizedRef(parsedRef: ParsedRef, resolvedPath: string): string;
7
+ //# sourceMappingURL=createNormalizedRef.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNormalizedRef.d.ts","sourceRoot":"","sources":["../../../src/core/utils/createNormalizedRef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,YAAY,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAetF"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createNormalizedRef = createNormalizedRef;
4
+ const parseRef_1 = require("./parseRef");
5
+ /**
6
+ * Create normalized reference string from parsedRef and resolvedPath.
7
+ * If resolvedPath is a URL, preserve it.
8
+ */
9
+ function createNormalizedRef(parsedRef, resolvedPath) {
10
+ switch (parsedRef.type) {
11
+ case parseRef_1.RefType.LOCAL_FRAGMENT:
12
+ return `${resolvedPath}${parsedRef.fragment ?? ''}`;
13
+ case parseRef_1.RefType.EXTERNAL_FILE:
14
+ return resolvedPath;
15
+ case parseRef_1.RefType.EXTERNAL_FILE_FRAGMENT:
16
+ return `${resolvedPath}${parsedRef.fragment ?? ''}`;
17
+ case parseRef_1.RefType.ABSOLUTE_PATH:
18
+ return parsedRef.fragment ? `${resolvedPath}${parsedRef.fragment}` : resolvedPath;
19
+ case parseRef_1.RefType.HTTP_URL:
20
+ return parsedRef.originalRef;
21
+ default:
22
+ return resolvedPath;
23
+ }
24
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Finds the common parent directory of two paths
3
+ * @param path1 The value of the path
4
+ * @param path2 The value of the path
5
+ */
6
+ export declare function findCommonParent(path1: string, path2: string): string | null;
7
+ //# sourceMappingURL=findCommonParent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findCommonParent.d.ts","sourceRoot":"","sources":["../../../src/core/utils/findCommonParent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa5E"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findCommonParent = findCommonParent;
4
+ /**
5
+ * Finds the common parent directory of two paths
6
+ * @param path1 The value of the path
7
+ * @param path2 The value of the path
8
+ */
9
+ function findCommonParent(path1, path2) {
10
+ const pathSep = '/';
11
+ const parts1 = path1.split(pathSep).filter(Boolean);
12
+ const parts2 = path2.split(pathSep).filter(Boolean);
13
+ let i = 0;
14
+ while (i < parts1.length && i < parts2.length && parts1[i] === parts2[i]) {
15
+ i++;
16
+ }
17
+ if (i === 0)
18
+ return null;
19
+ return pathSep + parts1.slice(0, i).join(pathSep);
20
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"getAbsolutePath.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getAbsolutePath.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAkB5F"}
1
+ {"version":3,"file":"getAbsolutePath.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getAbsolutePath.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAgC5F"}
@@ -7,14 +7,25 @@ function getAbsolutePath(definitionRef, parentRef) {
7
7
  if (!definitionRef) {
8
8
  return parentRef.startsWith('#/') ? '' : parentRef;
9
9
  }
10
+ const parentBase = parentRef.split('#')[0] || '';
11
+ // If definitionRef is an absolute fragment, attach to parent base
10
12
  if (definitionRef.startsWith('#/')) {
11
- // If definitionRef is an absolute reference (#/), replace the part after # in parentRef.
12
- const basePath = parentRef.split('#')[0]; // We take everything up to #
13
- return `${basePath}${definitionRef}`;
13
+ return `${parentBase}${definitionRef}`;
14
14
  }
15
+ // If parentRef is only a fragment, keep definitionRef as is
15
16
  if (parentRef.startsWith('#/')) {
16
- // If parentRef is an absolute reference, we return definitionRef as it is.
17
17
  return definitionRef;
18
18
  }
19
- return (0, pathHelpers_1.join)((0, pathHelpers_1.dirName)(parentRef), definitionRef);
19
+ // Full URL or absolute filesystem path → return as is
20
+ if (/^https?:\/\//i.test(definitionRef) || definitionRef.startsWith('/')) {
21
+ return definitionRef;
22
+ }
23
+ // If definitionRef already has its own fragment and/or relative path
24
+ if (definitionRef.includes('#')) {
25
+ const [defPath, defFrag] = definitionRef.split('#');
26
+ const absPath = defPath ? (0, pathHelpers_1.join)((0, pathHelpers_1.dirName)(parentBase), defPath) : parentBase;
27
+ return defFrag ? `${absPath}#${defFrag}` : absPath;
28
+ }
29
+ // Plain relative path → resolve against parent base directory
30
+ return (0, pathHelpers_1.join)((0, pathHelpers_1.dirName)(parentBase), definitionRef);
20
31
  }
@@ -1,4 +1,4 @@
1
1
  import { Context } from '../Context';
2
- import { IRefWithtype } from '../types/Models';
3
- export declare function getGatheringRefs(context: Context, object: Record<string, any>, references?: IRefWithtype[], root?: string, isSchema?: boolean): IRefWithtype[];
2
+ import { RefWithType } from '../types/base/RefWithtype.model';
3
+ export declare function getGatheringRefs(context: Context, object: Record<string, any>, references?: RefWithType[], root?: string, isSchema?: boolean): RefWithType[];
4
4
  //# sourceMappingURL=getGatheringRefs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getGatheringRefs.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getGatheringRefs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAY/C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAE,YAAY,EAAO,EAAE,IAAI,GAAE,MAAW,EAAE,QAAQ,GAAE,OAAe,GAAG,YAAY,EAAE,CA+C7K"}
1
+ {"version":3,"file":"getGatheringRefs.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getGatheringRefs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAe9D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAE,WAAW,EAAO,EAAE,IAAI,GAAE,MAAW,EAAE,QAAQ,GAAE,OAAe,GAAG,WAAW,EAAE,CAqD3K"}
@@ -5,8 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getGatheringRefs = getGatheringRefs;
7
7
  const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
8
- const Enums_1 = require("../types/Enums");
9
- const pathHelpers_1 = require("../utils/pathHelpers");
8
+ const TypeRef_enum_1 = require("../types/enums/TypeRef.enum");
9
+ const normalizeRef_1 = require("./normalizeRef");
10
+ const parseRef_1 = require("./parseRef");
11
+ const resolveRefPath_1 = require("./resolveRefPath");
10
12
  function includes(references, value) {
11
13
  return references.findIndex(item => (0, fast_deep_equal_1.default)(item.value, value)) !== -1;
12
14
  }
@@ -20,24 +22,31 @@ function getGatheringRefs(context, object, references = [], root = '', isSchema
20
22
  return references;
21
23
  }
22
24
  if (object.$ref) {
23
- const isAbsoluteRef = object.$ref.startsWith('#/');
24
- const isHttpRef = object.$ref.startsWith('http://') || object.$ref.startsWith('https://');
25
- // Extracting the base path from root
25
+ // Parse the reference to understand its type
26
26
  const baseRoot = extractBasePath(root);
27
- let newRef = isHttpRef ? object.$ref : isAbsoluteRef ? (0, pathHelpers_1.join)(baseRoot, object.$ref) : (0, pathHelpers_1.join)((0, pathHelpers_1.dirName)(baseRoot), object.$ref);
28
- // Remove the extra '/' before the '#' if there is one.
29
- if (newRef.includes('#/')) {
30
- newRef = newRef.replace(/\/#/, '#');
31
- }
32
- if (includes(references, newRef)) {
27
+ const parsedRef = (0, parseRef_1.parseRef)(object.$ref);
28
+ // Create normalized reference for context.get
29
+ const normalizedRef = (0, normalizeRef_1.normalizeRef)(object.$ref, baseRoot);
30
+ if (includes(references, normalizedRef)) {
33
31
  return references;
34
32
  }
35
- references.push({ value: newRef, type: isSchema ? Enums_1.TypeRef.SCHEMA : Enums_1.TypeRef.OTHERS });
36
- const newObject = context.get(newRef);
37
- let newRoot = isHttpRef ? '' : isAbsoluteRef ? baseRoot : (0, pathHelpers_1.join)((0, pathHelpers_1.dirName)(baseRoot), object.$ref);
38
- // Remove the extra '/' before the '#' if there is one.
39
- if (newRoot.includes('#/')) {
40
- newRoot = newRoot.replace(/\/#/, '#');
33
+ references.push({ value: normalizedRef, type: isSchema ? TypeRef_enum_1.TypeRef.SCHEMA : TypeRef_enum_1.TypeRef.OTHERS });
34
+ const newObject = context.get(normalizedRef);
35
+ // For recursive processing, determine the correct root path
36
+ let newRoot;
37
+ if (parsedRef.type === 'local_fragment') {
38
+ // For local fragments, keep the same root
39
+ newRoot = baseRoot;
40
+ }
41
+ else if (parsedRef.type === 'external_file' || parsedRef.type === 'external_file_fragment') {
42
+ // For external files, use the resolved file path
43
+ const resolvedPath = (0, resolveRefPath_1.resolveRefPath)(parsedRef, baseRoot);
44
+ newRoot = resolvedPath;
45
+ }
46
+ else {
47
+ // For other types, use the normalized path without fragment
48
+ const [filePath] = normalizedRef.split('#');
49
+ newRoot = filePath;
41
50
  }
42
51
  return getGatheringRefs(context, newObject, references, newRoot, isSchema);
43
52
  }
@@ -1,4 +1,3 @@
1
- export declare const TYPE_MAPPINGS: Map<string, string>;
2
1
  /**
3
2
  * Get mapped type for given type to any basic Typescript/Javascript type.
4
3
  */
@@ -1 +1 @@
1
- {"version":3,"file":"getMappedType.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getMappedType.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,qBAsBxB,CAAC;AAEH;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD"}
1
+ {"version":3,"file":"getMappedType.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getMappedType.ts"],"names":[],"mappings":"AAwBA;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD"}
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TYPE_MAPPINGS = void 0;
4
3
  exports.getMappedType = getMappedType;
5
4
  exports.hasMappedType = hasMappedType;
6
- exports.TYPE_MAPPINGS = new Map([
5
+ const TYPE_MAPPINGS = new Map([
7
6
  ['File', 'File'],
8
7
  ['file', 'File'],
9
8
  ['any', 'any'],
@@ -30,8 +29,8 @@ exports.TYPE_MAPPINGS = new Map([
30
29
  * Get mapped type for given type to any basic Typescript/Javascript type.
31
30
  */
32
31
  function getMappedType(type) {
33
- return exports.TYPE_MAPPINGS.get(type);
32
+ return TYPE_MAPPINGS.get(type);
34
33
  }
35
34
  function hasMappedType(type) {
36
- return exports.TYPE_MAPPINGS.has(type);
35
+ return TYPE_MAPPINGS.has(type);
37
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getOpenApiSpec.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getOpenApiSpec.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAsBpE;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAmC5F"}
1
+ {"version":3,"file":"getOpenApiSpec.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getOpenApiSpec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAMpE;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA6B5F"}
@@ -4,27 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getOpenApiSpec = getOpenApiSpec;
7
- const json_schema_ref_parser_1 = __importDefault(require("@apidevtools/json-schema-ref-parser"));
8
- const path_1 = require("path");
7
+ const swagger_parser_1 = __importDefault(require("@apidevtools/swagger-parser"));
9
8
  const pathHelpers_1 = require("../utils/pathHelpers");
10
9
  const fileSystem_1 = require("./fileSystem");
11
- function replaceRef(object, context, parentRef) {
12
- if (object.$ref && !(0, path_1.isAbsolute)(object.$ref) && !object.$ref.match(/^(http:\/\/|https:\/\/|#\/)/g)) {
13
- object.$ref = (0, pathHelpers_1.join)(parentRef, object.$ref);
14
- }
15
- else {
16
- for (const key of Object.keys(object)) {
17
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
18
- // @ts-ignore
19
- if (object[key] instanceof Object) {
20
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
21
- // @ts-ignore
22
- replaceRef(object[key], context, parentRef);
23
- }
24
- }
25
- }
26
- return object;
27
- }
10
+ const normalizeAllRefs_1 = require("./normalizeAllRefs");
28
11
  /**
29
12
  * Load and parse te open api spec. If the file extension is ".yml" or ".yaml"
30
13
  * we will try to parse the file as a YAML spec, otherwise we will fallback
@@ -40,23 +23,17 @@ async function getOpenApiSpec(context, input) {
40
23
  if (!fileExists) {
41
24
  throw new Error(`Could not read OpenApi spec: "${absoluteInput}"`);
42
25
  }
43
- const resolvedRefs = await json_schema_ref_parser_1.default.resolve(absoluteInput);
26
+ // const isValidated = await SwaggerParser.validate(absoluteInput)
27
+ const resolvedRefs = await swagger_parser_1.default.resolve(absoluteInput, { validate: false });
28
+ // Coerce to the loose interface expected by Context
44
29
  context.addRefs(resolvedRefs);
45
30
  const raw = resolvedRefs.get(absoluteInput);
46
31
  if (!raw || typeof raw !== 'object' || Array.isArray(raw) || !('paths' in raw)) {
47
32
  throw new Error(`Schema at "${absoluteInput}" is not a valid OpenAPI object`);
48
33
  }
49
34
  const mainSchema = raw;
50
- const newPaths = {};
51
- for (const [pathKey, value] of Object.entries(mainSchema.paths)) {
52
- const maybeRef = value;
53
- if (maybeRef.$ref) {
54
- newPaths[pathKey] = replaceRef(context.get(maybeRef.$ref), context, (0, pathHelpers_1.dirName)(maybeRef.$ref));
55
- }
56
- else {
57
- newPaths[pathKey] = value;
58
- }
59
- }
60
- mainSchema.paths = newPaths;
61
- return mainSchema;
35
+ // Normalize all $ref in the entire schema using the new comprehensive resolver
36
+ const normalizedSchema = (0, normalizeAllRefs_1.normalizeAllRefs)(mainSchema, context, absoluteInput);
37
+ // The schema is already fully normalized, so we can return it directly
38
+ return normalizedSchema;
62
39
  }
@@ -1,9 +1,9 @@
1
- import { IOutput } from '../types/Models';
1
+ import { OutputPaths } from '../types/base/OutputPaths.model';
2
2
  export declare const getOutputPaths: ({ output, outputCore, outputModels, outputSchemas, outputServices, }: {
3
3
  output: string;
4
4
  outputCore?: string | undefined;
5
5
  outputServices?: string | undefined;
6
6
  outputModels?: string | undefined;
7
7
  outputSchemas?: string | undefined;
8
- }) => IOutput;
8
+ }) => OutputPaths;
9
9
  //# sourceMappingURL=getOutputPaths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getOutputPaths.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getOutputPaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI1C,eAAO,MAAM,cAAc,GAAI,sEAM5B;IACC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC,KAAG,OA+BH,CAAC"}
1
+ {"version":3,"file":"getOutputPaths.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getOutputPaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAI9D,eAAO,MAAM,cAAc,GAAI,sEAM5B;IACC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC,KAAG,WA+BH,CAAC"}
@@ -1,4 +1,4 @@
1
- import { TPropertyGroupExtended } from '../types/Models';
1
+ import { PropertyGroupExtended } from '../types/base/PropertyGroup.model';
2
2
  import { OperationParameter } from '../types/shared/OperationParameter.model';
3
- export declare function getPropertyGroupExtended(prop: OperationParameter): TPropertyGroupExtended;
3
+ export declare function getPropertyGroupExtended(prop: OperationParameter): PropertyGroupExtended;
4
4
  //# sourceMappingURL=getPropertyGroupExtended.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPropertyGroupExtended.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getPropertyGroupExtended.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAG9E,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,kBAAkB,GAAG,sBAAsB,CAKzF"}
1
+ {"version":3,"file":"getPropertyGroupExtended.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getPropertyGroupExtended.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAG9E,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,kBAAkB,GAAG,qBAAqB,CAKxF"}
@@ -1,3 +1,3 @@
1
- import { TPropertyGroupSimple } from '../types/Models';
2
- export declare function getPropertyGroupSimple(prop: any): TPropertyGroupSimple;
1
+ import { PropertyGroupSimple } from '../types/base/PropertyGroup.model';
2
+ export declare function getPropertyGroupSimple(prop: any): PropertyGroupSimple;
3
3
  //# sourceMappingURL=getPropertyGroupSimple.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPropertyGroupSimple.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getPropertyGroupSimple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,GAAG,oBAAoB,CAItE"}
1
+ {"version":3,"file":"getPropertyGroupSimple.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getPropertyGroupSimple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,GAAG,mBAAmB,CAIrE"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRefFromSchema = getRefFromSchema;
4
- const Enums_1 = require("../types/Enums");
4
+ const TypeRef_enum_1 = require("../types/enums/TypeRef.enum");
5
5
  const getGatheringRefs_1 = require("./getGatheringRefs");
6
6
  function getRefFromSchema(context, object) {
7
7
  const references = (0, getGatheringRefs_1.getGatheringRefs)(context, object);
8
- return references.filter(item => item.type === Enums_1.TypeRef.SCHEMA).map(value => value.value);
8
+ return references.filter(item => item.type === TypeRef_enum_1.TypeRef.SCHEMA).map(value => value.value);
9
9
  }
@@ -30,7 +30,7 @@ function getRelativeModelImportPath(rootPath, sourcePath, targetPath) {
30
30
  absSourcePath = path_1.default.resolve(absoluteRoot, sourceRelativePath);
31
31
  }
32
32
  const absSourceDir = normalizedSourcePath ? path_1.default.dirname(absSourcePath) : absoluteRoot;
33
- let absTargetPath = path_1.default.resolve(absSourceDir, targetPath);
33
+ let absTargetPath = path_1.default.isAbsolute(targetPath) ? targetPath : path_1.default.resolve(absSourceDir, targetPath);
34
34
  if (!(0, isInsideDirectory_1.isInsideDirectory)(absTargetPath, rootPath)) {
35
35
  const targetRelativePath = (0, getRelativeModelPath_1.getRelativeModelPath)(absoluteRoot, targetPath);
36
36
  absTargetPath = path_1.default.resolve(absoluteRoot, targetRelativePath);
@@ -1 +1 @@
1
- {"version":3,"file":"getRelativeModelPath.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getRelativeModelPath.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,iBAAiB,EAAE,MAAM,UAwB7F"}
1
+ {"version":3,"file":"getRelativeModelPath.d.ts","sourceRoot":"","sources":["../../../src/core/utils/getRelativeModelPath.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,iBAAiB,EAAE,MAAM,UA6B7F"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRelativeModelPath = getRelativeModelPath;
4
+ const getTypeName_1 = require("./getTypeName");
4
5
  const isInsideDirectory_1 = require("./isInsideDirectory");
5
6
  const pathHelpers_1 = require("./pathHelpers");
6
7
  const replaceString_1 = require("./replaceString");
@@ -19,6 +20,10 @@ function getRelativeModelPath(folderPath, relativeModelPath) {
19
20
  const pathSep = '/';
20
21
  let mappedPaths = '';
21
22
  let modelPath = relativeModelPath;
23
+ // If absolute path (filesystem or URL-like), collapse to type name only
24
+ if (modelPath.startsWith('/')) {
25
+ return (0, getTypeName_1.getTypeName)(modelPath);
26
+ }
22
27
  if (modelPath.startsWith('../')) {
23
28
  const pathArray = modelPath.split(pathSep).filter(Boolean);
24
29
  while (pathArray[0] === '..') {
@@ -0,0 +1,2 @@
1
+ export declare function isDirectory(path: string): boolean;
2
+ //# sourceMappingURL=isDirectory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isDirectory.d.ts","sourceRoot":"","sources":["../../../src/core/utils/isDirectory.ts"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjD"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isDirectory = isDirectory;
4
+ const fs_1 = require("fs");
5
+ const pathHelpers_1 = require("./pathHelpers");
6
+ function isDirectory(path) {
7
+ try {
8
+ return (0, fs_1.statSync)((0, pathHelpers_1.normalize)(path)).isDirectory();
9
+ }
10
+ catch {
11
+ return false;
12
+ }
13
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Checks if the string is just a file name (with an extension)
3
+ * @param str - the line to check
4
+ * @returns true, if this is the file name
5
+ */
6
+ export declare function isFileName(str: string): boolean;
7
+ //# sourceMappingURL=isFileName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isFileName.d.ts","sourceRoot":"","sources":["../../../src/core/utils/isFileName.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAmB/C"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFileName = isFileName;
4
+ /**
5
+ * Checks if the string is just a file name (with an extension)
6
+ * @param str - the line to check
7
+ * @returns true, if this is the file name
8
+ */
9
+ function isFileName(str) {
10
+ if (typeof str !== 'string' || !str)
11
+ return false;
12
+ // 1. Does not contain path separators
13
+ if (str.includes('/') || str.includes('\\'))
14
+ return false;
15
+ // 2. Does not start with ./, ../, \
16
+ if (/^\.\.?[\\/\\]/.test(str))
17
+ return false;
18
+ if (str.startsWith('/'))
19
+ return false;
20
+ // 3. Contains at least one dot and does not end with a dot.
21
+ const parts = str.split('.');
22
+ if (parts.length < 2)
23
+ return false;
24
+ if (parts[parts.length - 1] === '')
25
+ return false; // ends with .
26
+ // 4. The file name is not empty
27
+ if (parts[0] === '')
28
+ return false;
29
+ return true;
30
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Safely muppit the path from SourceDir → targetDir
3
+ * Works even if the file is outside SourceDir, but in a common parent
4
+ * @param filePath
5
+ * @param sourceDir
6
+ * @param targetDir
7
+ * @returns
8
+ */
9
+ export declare function mapPathToTargetDirSafe(filePath: string, sourceDir: string, targetDir: string): string;
10
+ //# sourceMappingURL=mapPathToTargetDirSafe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapPathToTargetDirSafe.d.ts","sourceRoot":"","sources":["../../../src/core/utils/mapPathToTargetDirSafe.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CA0CrG"}