@tsed/schema 7.86.2 → 7.87.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 (399) hide show
  1. package/lib/browser/schema.umd.min.js +1 -1
  2. package/lib/browser/schema.umd.min.js.map +1 -1
  3. package/lib/cjs/components/default/anyMapper.js +1 -2
  4. package/lib/cjs/components/default/anyMapper.js.map +1 -1
  5. package/lib/cjs/components/default/classMapper.js +2 -22
  6. package/lib/cjs/components/default/classMapper.js.map +1 -1
  7. package/lib/cjs/components/default/discriminatorMappingMapper.js.map +1 -1
  8. package/lib/cjs/components/default/genericsMapper.js +61 -47
  9. package/lib/cjs/components/default/genericsMapper.js.map +1 -1
  10. package/lib/cjs/components/default/inheritedClassMapper.js.map +1 -1
  11. package/lib/cjs/components/default/lazyRefMapper.js +1 -2
  12. package/lib/cjs/components/default/lazyRefMapper.js.map +1 -1
  13. package/lib/cjs/components/default/mapMapper.js +0 -2
  14. package/lib/cjs/components/default/mapMapper.js.map +1 -1
  15. package/lib/cjs/components/default/nextMapper.js +80 -0
  16. package/lib/cjs/components/default/nextMapper.js.map +1 -0
  17. package/lib/cjs/components/default/nullableMapper.js.map +1 -1
  18. package/lib/cjs/components/default/objectMapper.js +8 -3
  19. package/lib/cjs/components/default/objectMapper.js.map +1 -1
  20. package/lib/cjs/components/default/ofMapper.js +2 -5
  21. package/lib/cjs/components/default/ofMapper.js.map +1 -1
  22. package/lib/cjs/components/default/requiredMapper.js +2 -2
  23. package/lib/cjs/components/default/requiredMapper.js.map +1 -1
  24. package/lib/cjs/components/default/schemaMapper.js +6 -7
  25. package/lib/cjs/components/default/schemaMapper.js.map +1 -1
  26. package/lib/cjs/components/index.js +1 -7
  27. package/lib/cjs/components/index.js.map +1 -1
  28. package/lib/cjs/components/open-spec/enumsMapper.js.map +1 -1
  29. package/lib/cjs/components/open-spec/generate.js.map +1 -1
  30. package/lib/cjs/components/open-spec/nullableMapper.js +5 -1
  31. package/lib/cjs/components/open-spec/nullableMapper.js.map +1 -1
  32. package/lib/cjs/components/open-spec/operationInFilesMapper.js.map +1 -1
  33. package/lib/cjs/components/open-spec/operationInParameterMapper.js +3 -7
  34. package/lib/cjs/components/open-spec/operationInParameterMapper.js.map +1 -1
  35. package/lib/cjs/components/open-spec/operationInQueryMapper.js +21 -16
  36. package/lib/cjs/components/open-spec/operationInQueryMapper.js.map +1 -1
  37. package/lib/cjs/components/open-spec/operationMediaMapper.js +5 -2
  38. package/lib/cjs/components/open-spec/operationMediaMapper.js.map +1 -1
  39. package/lib/cjs/components/open-spec/operationRequestBodyMapper.js +4 -3
  40. package/lib/cjs/components/open-spec/operationRequestBodyMapper.js.map +1 -1
  41. package/lib/cjs/components/open-spec/pathsMapper.js +1 -0
  42. package/lib/cjs/components/open-spec/pathsMapper.js.map +1 -1
  43. package/lib/cjs/constants/VendorKeys.js +15 -0
  44. package/lib/cjs/constants/VendorKeys.js.map +1 -0
  45. package/lib/cjs/constants/httpStatusMessages.js +1 -1
  46. package/lib/cjs/constants/httpStatusMessages.js.map +1 -1
  47. package/lib/cjs/decorators/class/children.js.map +1 -1
  48. package/lib/cjs/decorators/collections/collectionOf.js +29 -0
  49. package/lib/cjs/decorators/collections/collectionOf.js.map +1 -1
  50. package/lib/cjs/decorators/common/allow.js.map +1 -1
  51. package/lib/cjs/decorators/common/any.js.map +1 -1
  52. package/lib/cjs/decorators/common/defaultMsg.js.map +1 -1
  53. package/lib/cjs/decorators/common/description.js +8 -11
  54. package/lib/cjs/decorators/common/description.js.map +1 -1
  55. package/lib/cjs/decorators/common/discriminatorKey.js +1 -1
  56. package/lib/cjs/decorators/common/discriminatorKey.js.map +1 -1
  57. package/lib/cjs/decorators/common/enum.js.map +1 -1
  58. package/lib/cjs/decorators/common/examples.js.map +1 -1
  59. package/lib/cjs/decorators/common/format.js.map +1 -1
  60. package/lib/cjs/decorators/common/forwardGroups.js +1 -1
  61. package/lib/cjs/decorators/common/forwardGroups.js.map +1 -1
  62. package/lib/cjs/decorators/common/groups.js +15 -26
  63. package/lib/cjs/decorators/common/groups.js.map +1 -1
  64. package/lib/cjs/decorators/common/integer.js.map +1 -1
  65. package/lib/cjs/decorators/common/oneOf.js +1 -2
  66. package/lib/cjs/decorators/common/oneOf.js.map +1 -1
  67. package/lib/cjs/decorators/common/optional.js.map +1 -1
  68. package/lib/cjs/decorators/config/jsonEntityComponent.js.map +1 -1
  69. package/lib/cjs/decorators/generics/genericOf.js +7 -16
  70. package/lib/cjs/decorators/generics/genericOf.js.map +1 -1
  71. package/lib/cjs/decorators/generics/generics.js +3 -3
  72. package/lib/cjs/decorators/generics/generics.js.map +1 -1
  73. package/lib/cjs/decorators/operations/acceptMime.js.map +1 -1
  74. package/lib/cjs/decorators/operations/consumes.js.map +1 -1
  75. package/lib/cjs/decorators/operations/deprecated.js.map +1 -1
  76. package/lib/cjs/decorators/operations/header.js.map +1 -1
  77. package/lib/cjs/decorators/operations/in.js.map +1 -1
  78. package/lib/cjs/decorators/operations/inFile.js +2 -2
  79. package/lib/cjs/decorators/operations/inFile.js.map +1 -1
  80. package/lib/cjs/decorators/operations/operation.js +5 -1
  81. package/lib/cjs/decorators/operations/operation.js.map +1 -1
  82. package/lib/cjs/decorators/operations/operationId.js.map +1 -1
  83. package/lib/cjs/decorators/operations/operationPath.js +1 -1
  84. package/lib/cjs/decorators/operations/operationPath.js.map +1 -1
  85. package/lib/cjs/decorators/operations/path.js.map +1 -1
  86. package/lib/cjs/decorators/operations/produces.js.map +1 -1
  87. package/lib/cjs/decorators/operations/redirect.js +1 -1
  88. package/lib/cjs/decorators/operations/redirect.js.map +1 -1
  89. package/lib/cjs/decorators/operations/returns.js +39 -62
  90. package/lib/cjs/decorators/operations/returns.js.map +1 -1
  91. package/lib/cjs/decorators/operations/security.js.map +1 -1
  92. package/lib/cjs/decorators/operations/status.js.map +1 -1
  93. package/lib/cjs/decorators/operations/summary.js.map +1 -1
  94. package/lib/cjs/decorators/operations/tags.js +10 -1
  95. package/lib/cjs/decorators/operations/tags.js.map +1 -1
  96. package/lib/cjs/domain/DecoratorContext.js.map +1 -1
  97. package/lib/cjs/domain/JsonClassStore.js +1 -1
  98. package/lib/cjs/domain/JsonClassStore.js.map +1 -1
  99. package/lib/cjs/domain/JsonEntityStore.js +40 -35
  100. package/lib/cjs/domain/JsonEntityStore.js.map +1 -1
  101. package/lib/cjs/domain/JsonLazyRef.js.map +1 -1
  102. package/lib/cjs/domain/JsonMap.js.map +1 -1
  103. package/lib/cjs/domain/JsonMedia.js +27 -6
  104. package/lib/cjs/domain/JsonMedia.js.map +1 -1
  105. package/lib/cjs/domain/JsonMethodStore.js +27 -8
  106. package/lib/cjs/domain/JsonMethodStore.js.map +1 -1
  107. package/lib/cjs/domain/JsonOperation.js +36 -8
  108. package/lib/cjs/domain/JsonOperation.js.map +1 -1
  109. package/lib/cjs/domain/JsonParameter.js +20 -5
  110. package/lib/cjs/domain/JsonParameter.js.map +1 -1
  111. package/lib/cjs/domain/JsonParameterStore.js +15 -25
  112. package/lib/cjs/domain/JsonParameterStore.js.map +1 -1
  113. package/lib/cjs/domain/JsonPropertyStore.js +14 -45
  114. package/lib/cjs/domain/JsonPropertyStore.js.map +1 -1
  115. package/lib/cjs/domain/JsonSchema.js +286 -79
  116. package/lib/cjs/domain/JsonSchema.js.map +1 -1
  117. package/lib/cjs/domain/__fixtures__/inspectOperationsPaths.js +11 -0
  118. package/lib/cjs/domain/__fixtures__/inspectOperationsPaths.js.map +1 -0
  119. package/lib/cjs/fn/email.js +2 -2
  120. package/lib/cjs/fn/email.js.map +1 -1
  121. package/lib/cjs/fn/uri.js +2 -2
  122. package/lib/cjs/fn/uri.js.map +1 -1
  123. package/lib/cjs/fn/url.js +2 -2
  124. package/lib/cjs/fn/url.js.map +1 -1
  125. package/lib/cjs/index.js +4 -8
  126. package/lib/cjs/index.js.map +1 -1
  127. package/lib/cjs/utils/generics.js +5 -36
  128. package/lib/cjs/utils/generics.js.map +1 -1
  129. package/lib/cjs/utils/getJsonEntityStore.js +3 -3
  130. package/lib/cjs/utils/getJsonEntityStore.js.map +1 -1
  131. package/lib/cjs/utils/getJsonSchema.js +24 -17
  132. package/lib/cjs/utils/getJsonSchema.js.map +1 -1
  133. package/lib/cjs/utils/getOperationsStores.js.map +1 -1
  134. package/lib/cjs/utils/getPropertiesStores.js.map +1 -1
  135. package/lib/cjs/utils/getSpec.js.map +1 -1
  136. package/lib/cjs/utils/mergeSchema.js +103 -0
  137. package/lib/cjs/utils/mergeSchema.js.map +1 -0
  138. package/lib/cjs/utils/ref.js +15 -13
  139. package/lib/cjs/utils/ref.js.map +1 -1
  140. package/lib/esm/components/default/anyMapper.js +1 -2
  141. package/lib/esm/components/default/anyMapper.js.map +1 -1
  142. package/lib/esm/components/default/classMapper.js +2 -22
  143. package/lib/esm/components/default/classMapper.js.map +1 -1
  144. package/lib/esm/components/default/discriminatorMappingMapper.js.map +1 -1
  145. package/lib/esm/components/default/genericsMapper.js +62 -48
  146. package/lib/esm/components/default/genericsMapper.js.map +1 -1
  147. package/lib/esm/components/default/inheritedClassMapper.js.map +1 -1
  148. package/lib/esm/components/default/lazyRefMapper.js +1 -2
  149. package/lib/esm/components/default/lazyRefMapper.js.map +1 -1
  150. package/lib/esm/components/default/mapMapper.js +0 -2
  151. package/lib/esm/components/default/mapMapper.js.map +1 -1
  152. package/lib/esm/components/default/nextMapper.js +75 -0
  153. package/lib/esm/components/default/nextMapper.js.map +1 -0
  154. package/lib/esm/components/default/nullableMapper.js.map +1 -1
  155. package/lib/esm/components/default/objectMapper.js +8 -3
  156. package/lib/esm/components/default/objectMapper.js.map +1 -1
  157. package/lib/esm/components/default/ofMapper.js +2 -5
  158. package/lib/esm/components/default/ofMapper.js.map +1 -1
  159. package/lib/esm/components/default/requiredMapper.js +2 -2
  160. package/lib/esm/components/default/requiredMapper.js.map +1 -1
  161. package/lib/esm/components/default/schemaMapper.js +7 -8
  162. package/lib/esm/components/default/schemaMapper.js.map +1 -1
  163. package/lib/esm/components/index.js +1 -7
  164. package/lib/esm/components/index.js.map +1 -1
  165. package/lib/esm/components/open-spec/enumsMapper.js.map +1 -1
  166. package/lib/esm/components/open-spec/generate.js.map +1 -1
  167. package/lib/esm/components/open-spec/nullableMapper.js +5 -1
  168. package/lib/esm/components/open-spec/nullableMapper.js.map +1 -1
  169. package/lib/esm/components/open-spec/operationInFilesMapper.js.map +1 -1
  170. package/lib/esm/components/open-spec/operationInParameterMapper.js +3 -7
  171. package/lib/esm/components/open-spec/operationInParameterMapper.js.map +1 -1
  172. package/lib/esm/components/open-spec/operationInQueryMapper.js +22 -17
  173. package/lib/esm/components/open-spec/operationInQueryMapper.js.map +1 -1
  174. package/lib/esm/components/open-spec/operationMediaMapper.js +5 -2
  175. package/lib/esm/components/open-spec/operationMediaMapper.js.map +1 -1
  176. package/lib/esm/components/open-spec/operationRequestBodyMapper.js +4 -3
  177. package/lib/esm/components/open-spec/operationRequestBodyMapper.js.map +1 -1
  178. package/lib/esm/components/open-spec/pathsMapper.js +1 -0
  179. package/lib/esm/components/open-spec/pathsMapper.js.map +1 -1
  180. package/lib/esm/constants/VendorKeys.js +12 -0
  181. package/lib/esm/constants/VendorKeys.js.map +1 -0
  182. package/lib/esm/constants/httpStatusMessages.js +1 -1
  183. package/lib/esm/constants/httpStatusMessages.js.map +1 -1
  184. package/lib/esm/decorators/class/children.js.map +1 -1
  185. package/lib/esm/decorators/collections/collectionOf.js +29 -0
  186. package/lib/esm/decorators/collections/collectionOf.js.map +1 -1
  187. package/lib/esm/decorators/common/allow.js.map +1 -1
  188. package/lib/esm/decorators/common/any.js.map +1 -1
  189. package/lib/esm/decorators/common/defaultMsg.js.map +1 -1
  190. package/lib/esm/decorators/common/description.js +9 -12
  191. package/lib/esm/decorators/common/description.js.map +1 -1
  192. package/lib/esm/decorators/common/discriminatorKey.js +1 -1
  193. package/lib/esm/decorators/common/discriminatorKey.js.map +1 -1
  194. package/lib/esm/decorators/common/enum.js.map +1 -1
  195. package/lib/esm/decorators/common/examples.js.map +1 -1
  196. package/lib/esm/decorators/common/format.js.map +1 -1
  197. package/lib/esm/decorators/common/forwardGroups.js +1 -1
  198. package/lib/esm/decorators/common/forwardGroups.js.map +1 -1
  199. package/lib/esm/decorators/common/groups.js +15 -26
  200. package/lib/esm/decorators/common/groups.js.map +1 -1
  201. package/lib/esm/decorators/common/integer.js.map +1 -1
  202. package/lib/esm/decorators/common/oneOf.js +1 -2
  203. package/lib/esm/decorators/common/oneOf.js.map +1 -1
  204. package/lib/esm/decorators/common/optional.js.map +1 -1
  205. package/lib/esm/decorators/config/jsonEntityComponent.js.map +1 -1
  206. package/lib/esm/decorators/generics/genericOf.js +8 -17
  207. package/lib/esm/decorators/generics/genericOf.js.map +1 -1
  208. package/lib/esm/decorators/generics/generics.js +3 -3
  209. package/lib/esm/decorators/generics/generics.js.map +1 -1
  210. package/lib/esm/decorators/operations/acceptMime.js.map +1 -1
  211. package/lib/esm/decorators/operations/consumes.js.map +1 -1
  212. package/lib/esm/decorators/operations/deprecated.js.map +1 -1
  213. package/lib/esm/decorators/operations/header.js.map +1 -1
  214. package/lib/esm/decorators/operations/in.js.map +1 -1
  215. package/lib/esm/decorators/operations/inFile.js +2 -2
  216. package/lib/esm/decorators/operations/inFile.js.map +1 -1
  217. package/lib/esm/decorators/operations/operation.js +5 -1
  218. package/lib/esm/decorators/operations/operation.js.map +1 -1
  219. package/lib/esm/decorators/operations/operationId.js.map +1 -1
  220. package/lib/esm/decorators/operations/operationPath.js +1 -1
  221. package/lib/esm/decorators/operations/operationPath.js.map +1 -1
  222. package/lib/esm/decorators/operations/path.js.map +1 -1
  223. package/lib/esm/decorators/operations/produces.js.map +1 -1
  224. package/lib/esm/decorators/operations/redirect.js +1 -1
  225. package/lib/esm/decorators/operations/redirect.js.map +1 -1
  226. package/lib/esm/decorators/operations/returns.js +40 -63
  227. package/lib/esm/decorators/operations/returns.js.map +1 -1
  228. package/lib/esm/decorators/operations/security.js.map +1 -1
  229. package/lib/esm/decorators/operations/status.js.map +1 -1
  230. package/lib/esm/decorators/operations/summary.js.map +1 -1
  231. package/lib/esm/decorators/operations/tags.js +10 -1
  232. package/lib/esm/decorators/operations/tags.js.map +1 -1
  233. package/lib/esm/domain/DecoratorContext.js.map +1 -1
  234. package/lib/esm/domain/JsonClassStore.js +1 -1
  235. package/lib/esm/domain/JsonClassStore.js.map +1 -1
  236. package/lib/esm/domain/JsonEntityStore.js +40 -35
  237. package/lib/esm/domain/JsonEntityStore.js.map +1 -1
  238. package/lib/esm/domain/JsonLazyRef.js.map +1 -1
  239. package/lib/esm/domain/JsonMap.js.map +1 -1
  240. package/lib/esm/domain/JsonMedia.js +27 -6
  241. package/lib/esm/domain/JsonMedia.js.map +1 -1
  242. package/lib/esm/domain/JsonMethodStore.js +28 -9
  243. package/lib/esm/domain/JsonMethodStore.js.map +1 -1
  244. package/lib/esm/domain/JsonOperation.js +34 -7
  245. package/lib/esm/domain/JsonOperation.js.map +1 -1
  246. package/lib/esm/domain/JsonParameter.js +20 -5
  247. package/lib/esm/domain/JsonParameter.js.map +1 -1
  248. package/lib/esm/domain/JsonParameterStore.js +16 -26
  249. package/lib/esm/domain/JsonParameterStore.js.map +1 -1
  250. package/lib/esm/domain/JsonPropertyStore.js +15 -46
  251. package/lib/esm/domain/JsonPropertyStore.js.map +1 -1
  252. package/lib/esm/domain/JsonSchema.js +287 -80
  253. package/lib/esm/domain/JsonSchema.js.map +1 -1
  254. package/lib/esm/domain/__fixtures__/inspectOperationsPaths.js +7 -0
  255. package/lib/esm/domain/__fixtures__/inspectOperationsPaths.js.map +1 -0
  256. package/lib/esm/fn/email.js +2 -2
  257. package/lib/esm/fn/email.js.map +1 -1
  258. package/lib/esm/fn/uri.js +2 -2
  259. package/lib/esm/fn/uri.js.map +1 -1
  260. package/lib/esm/fn/url.js +2 -2
  261. package/lib/esm/fn/url.js.map +1 -1
  262. package/lib/esm/index.js +4 -8
  263. package/lib/esm/index.js.map +1 -1
  264. package/lib/esm/utils/generics.js +3 -32
  265. package/lib/esm/utils/generics.js.map +1 -1
  266. package/lib/esm/utils/getJsonEntityStore.js +3 -3
  267. package/lib/esm/utils/getJsonEntityStore.js.map +1 -1
  268. package/lib/esm/utils/getJsonSchema.js +24 -17
  269. package/lib/esm/utils/getJsonSchema.js.map +1 -1
  270. package/lib/esm/utils/getOperationsStores.js.map +1 -1
  271. package/lib/esm/utils/getPropertiesStores.js.map +1 -1
  272. package/lib/esm/utils/getSpec.js.map +1 -1
  273. package/lib/esm/utils/mergeSchema.js +99 -0
  274. package/lib/esm/utils/mergeSchema.js.map +1 -0
  275. package/lib/esm/utils/ref.js +14 -13
  276. package/lib/esm/utils/ref.js.map +1 -1
  277. package/lib/types/components/default/classMapper.d.ts +1 -1
  278. package/lib/types/components/default/genericsMapper.d.ts +9 -2
  279. package/lib/types/components/default/lazyRefMapper.d.ts +1 -1
  280. package/lib/types/components/default/nextMapper.d.ts +5 -0
  281. package/lib/types/components/default/ofMapper.d.ts +1 -1
  282. package/lib/types/components/index.d.ts +1 -7
  283. package/lib/types/components/open-spec/nullableMapper.d.ts +2 -1
  284. package/lib/types/components/open-spec/operationInQueryMapper.d.ts +1 -1
  285. package/lib/types/constants/VendorKeys.d.ts +10 -0
  286. package/lib/types/decorators/collections/collectionOf.d.ts +6 -0
  287. package/lib/types/decorators/generics/genericOf.d.ts +3 -0
  288. package/lib/types/decorators/generics/generics.d.ts +2 -2
  289. package/lib/types/decorators/operations/acceptMime.d.ts +1 -1
  290. package/lib/types/decorators/operations/consumes.d.ts +1 -1
  291. package/lib/types/decorators/operations/header.d.ts +1 -1
  292. package/lib/types/decorators/operations/operationId.d.ts +1 -1
  293. package/lib/types/decorators/operations/operationPath.d.ts +1 -1
  294. package/lib/types/decorators/operations/path.d.ts +1 -1
  295. package/lib/types/decorators/operations/returns.d.ts +11 -9
  296. package/lib/types/decorators/operations/tags.d.ts +11 -2
  297. package/lib/types/domain/JsonClassStore.d.ts +1 -1
  298. package/lib/types/domain/JsonEntityStore.d.ts +20 -16
  299. package/lib/types/domain/JsonMedia.d.ts +4 -5
  300. package/lib/types/domain/JsonMethodStore.d.ts +9 -2
  301. package/lib/types/domain/JsonOperation.d.ts +7 -4
  302. package/lib/types/domain/JsonParameter.d.ts +4 -7
  303. package/lib/types/domain/JsonParameterStore.d.ts +1 -4
  304. package/lib/types/domain/JsonPropertyStore.d.ts +2 -21
  305. package/lib/types/domain/JsonSchema.d.ts +83 -40
  306. package/lib/types/domain/__fixtures__/inspectOperationsPaths.d.ts +5 -0
  307. package/lib/types/index.d.ts +4 -8
  308. package/lib/types/interfaces/JsonSchemaOptions.d.ts +16 -2
  309. package/lib/types/utils/generics.d.ts +7 -48
  310. package/lib/types/utils/getJsonEntityStore.d.ts +3 -3
  311. package/lib/types/utils/getJsonSchema.d.ts +3 -2
  312. package/lib/types/utils/mergeSchema.d.ts +2 -0
  313. package/lib/types/utils/ref.d.ts +4 -2
  314. package/lib/types-esm/components/default/classMapper.d.ts +1 -1
  315. package/lib/types-esm/components/default/genericsMapper.d.ts +9 -2
  316. package/lib/types-esm/components/default/lazyRefMapper.d.ts +1 -1
  317. package/lib/types-esm/components/default/nextMapper.d.ts +5 -0
  318. package/lib/types-esm/components/default/ofMapper.d.ts +1 -1
  319. package/lib/types-esm/components/index.d.ts +1 -7
  320. package/lib/types-esm/components/open-spec/nullableMapper.d.ts +2 -1
  321. package/lib/types-esm/components/open-spec/operationInQueryMapper.d.ts +1 -1
  322. package/lib/types-esm/constants/VendorKeys.d.ts +10 -0
  323. package/lib/types-esm/decorators/collections/collectionOf.d.ts +6 -0
  324. package/lib/types-esm/decorators/generics/genericOf.d.ts +3 -0
  325. package/lib/types-esm/decorators/generics/generics.d.ts +2 -2
  326. package/lib/types-esm/decorators/operations/acceptMime.d.ts +1 -1
  327. package/lib/types-esm/decorators/operations/consumes.d.ts +1 -1
  328. package/lib/types-esm/decorators/operations/header.d.ts +1 -1
  329. package/lib/types-esm/decorators/operations/operationId.d.ts +1 -1
  330. package/lib/types-esm/decorators/operations/operationPath.d.ts +1 -1
  331. package/lib/types-esm/decorators/operations/path.d.ts +1 -1
  332. package/lib/types-esm/decorators/operations/returns.d.ts +11 -9
  333. package/lib/types-esm/decorators/operations/tags.d.ts +11 -2
  334. package/lib/types-esm/domain/JsonClassStore.d.ts +1 -1
  335. package/lib/types-esm/domain/JsonEntityStore.d.ts +20 -16
  336. package/lib/types-esm/domain/JsonMedia.d.ts +4 -5
  337. package/lib/types-esm/domain/JsonMethodStore.d.ts +9 -2
  338. package/lib/types-esm/domain/JsonOperation.d.ts +7 -4
  339. package/lib/types-esm/domain/JsonParameter.d.ts +4 -7
  340. package/lib/types-esm/domain/JsonParameterStore.d.ts +1 -4
  341. package/lib/types-esm/domain/JsonPropertyStore.d.ts +2 -21
  342. package/lib/types-esm/domain/JsonSchema.d.ts +83 -40
  343. package/lib/types-esm/domain/__fixtures__/inspectOperationsPaths.d.ts +5 -0
  344. package/lib/types-esm/index.d.ts +4 -8
  345. package/lib/types-esm/interfaces/JsonSchemaOptions.d.ts +16 -2
  346. package/lib/types-esm/utils/generics.d.ts +7 -48
  347. package/lib/types-esm/utils/getJsonEntityStore.d.ts +3 -3
  348. package/lib/types-esm/utils/getJsonSchema.d.ts +3 -2
  349. package/lib/types-esm/utils/mergeSchema.d.ts +2 -0
  350. package/lib/types-esm/utils/ref.d.ts +4 -2
  351. package/package.json +6 -6
  352. package/lib/cjs/components/async-api/channelsMapper.js +0 -62
  353. package/lib/cjs/components/async-api/channelsMapper.js.map +0 -1
  354. package/lib/cjs/components/async-api/generate.js +0 -20
  355. package/lib/cjs/components/async-api/generate.js.map +0 -1
  356. package/lib/cjs/components/async-api/messageMapper.js +0 -44
  357. package/lib/cjs/components/async-api/messageMapper.js.map +0 -1
  358. package/lib/cjs/components/async-api/payloadMapper.js +0 -52
  359. package/lib/cjs/components/async-api/payloadMapper.js.map +0 -1
  360. package/lib/cjs/components/async-api/responseMapper.js +0 -58
  361. package/lib/cjs/components/async-api/responseMapper.js.map +0 -1
  362. package/lib/cjs/components/default/itemMapper.js +0 -10
  363. package/lib/cjs/components/default/itemMapper.js.map +0 -1
  364. package/lib/cjs/components/default/propertiesMapper.js +0 -25
  365. package/lib/cjs/components/default/propertiesMapper.js.map +0 -1
  366. package/lib/cjs/utils/somethingOf.js +0 -16
  367. package/lib/cjs/utils/somethingOf.js.map +0 -1
  368. package/lib/esm/components/async-api/channelsMapper.js +0 -58
  369. package/lib/esm/components/async-api/channelsMapper.js.map +0 -1
  370. package/lib/esm/components/async-api/generate.js +0 -18
  371. package/lib/esm/components/async-api/generate.js.map +0 -1
  372. package/lib/esm/components/async-api/messageMapper.js +0 -40
  373. package/lib/esm/components/async-api/messageMapper.js.map +0 -1
  374. package/lib/esm/components/async-api/payloadMapper.js +0 -48
  375. package/lib/esm/components/async-api/payloadMapper.js.map +0 -1
  376. package/lib/esm/components/async-api/responseMapper.js +0 -54
  377. package/lib/esm/components/async-api/responseMapper.js.map +0 -1
  378. package/lib/esm/components/default/itemMapper.js +0 -6
  379. package/lib/esm/components/default/itemMapper.js.map +0 -1
  380. package/lib/esm/components/default/propertiesMapper.js +0 -21
  381. package/lib/esm/components/default/propertiesMapper.js.map +0 -1
  382. package/lib/esm/utils/somethingOf.js +0 -12
  383. package/lib/esm/utils/somethingOf.js.map +0 -1
  384. package/lib/types/components/async-api/channelsMapper.d.ts +0 -2
  385. package/lib/types/components/async-api/generate.d.ts +0 -1
  386. package/lib/types/components/async-api/messageMapper.d.ts +0 -6
  387. package/lib/types/components/async-api/payloadMapper.d.ts +0 -4
  388. package/lib/types/components/async-api/responseMapper.d.ts +0 -6
  389. package/lib/types/components/default/itemMapper.d.ts +0 -2
  390. package/lib/types/components/default/propertiesMapper.d.ts +0 -3
  391. package/lib/types/utils/somethingOf.d.ts +0 -1
  392. package/lib/types-esm/components/async-api/channelsMapper.d.ts +0 -2
  393. package/lib/types-esm/components/async-api/generate.d.ts +0 -1
  394. package/lib/types-esm/components/async-api/messageMapper.d.ts +0 -6
  395. package/lib/types-esm/components/async-api/payloadMapper.d.ts +0 -4
  396. package/lib/types-esm/components/async-api/responseMapper.d.ts +0 -6
  397. package/lib/types-esm/components/default/itemMapper.d.ts +0 -2
  398. package/lib/types-esm/components/default/propertiesMapper.d.ts +0 -3
  399. package/lib/types-esm/utils/somethingOf.d.ts +0 -1
@@ -1,9 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toRef = exports.createRef = exports.createRefName = void 0;
3
+ exports.toRef = exports.createRef = exports.createRefName = exports.getSchemaFromRef = void 0;
4
4
  const core_1 = require("@tsed/core");
5
5
  const change_case_1 = require("change-case");
6
6
  const SpecTypes_js_1 = require("../domain/SpecTypes.js");
7
+ const mergeSchema_js_1 = require("./mergeSchema.js");
8
+ function getSchemaFromRef($ref, options) {
9
+ const { components } = options;
10
+ if (components?.schemas && $ref) {
11
+ const host = getHost(options);
12
+ const refName = $ref.replace(`${host}/`, "");
13
+ return components.schemas[refName];
14
+ }
15
+ }
16
+ exports.getSchemaFromRef = getSchemaFromRef;
7
17
  /**
8
18
  * ignore
9
19
  * @param options
@@ -27,19 +37,11 @@ exports.createRefName = createRefName;
27
37
  */
28
38
  function createRef(name, schema, options) {
29
39
  const host = getHost(options);
30
- const ref = {
40
+ return (0, mergeSchema_js_1.mergeSchema)({
31
41
  $ref: `${host}/${name}`
32
- };
33
- const readOnly = schema.isReadOnly;
34
- const writeOnly = schema.isWriteOnly;
35
- return (0, core_1.cleanObject)({
36
- readOnly: readOnly ? true : undefined,
37
- writeOnly: writeOnly ? true : undefined,
38
- ...(readOnly || writeOnly
39
- ? {
40
- anyOf: [ref]
41
- }
42
- : ref)
42
+ }, {
43
+ ...(schema.isReadOnly ? { readOnly: true } : {}),
44
+ ...(schema.isWriteOnly ? { writeOnly: true } : {})
43
45
  });
44
46
  }
45
47
  exports.createRef = createRef;
@@ -1 +1 @@
1
- {"version":3,"file":"ref.js","sourceRoot":"","sources":["../../../src/utils/ref.ts"],"names":[],"mappings":";;;AAAA,qCAAiD;AACjD,6CAAuC;AAEvC,yDAAiD;AAGjD;;;GAGG;AACH,SAAS,OAAO,CAAC,OAA0B;IACzC,MAAM,EAAC,IAAI,GAAG,KAAK,CAAC,wBAAS,CAAC,OAAO,EAAE,wBAAS,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa,EAAE,EAAC,GAC9H,OAAO,CAAC;IAEV,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,OAA0B;IACpE,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3C,OAAO,IAAA,wBAAU,EAAC,GAAG,IAAI,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KAChF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAND,sCAMC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAY,EAAE,MAAkB,EAAE,OAA0B;IACpF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG;QACV,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE;KACxB,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;IACnC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;IAErC,OAAO,IAAA,kBAAW,EAAC;QACjB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACrC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACvC,GAAG,CAAC,QAAQ,IAAI,SAAS;YACvB,CAAC,CAAC;gBACE,KAAK,EAAE,CAAC,GAAG,CAAC;aACb;YACH,CAAC,CAAC,GAAG,CAAC;KACT,CAAC,CAAC;AACL,CAAC;AAlBD,8BAkBC;AAED;;GAEG;AACH,SAAgB,KAAK,CAAC,KAAiB,EAAE,MAA2B,EAAE,OAA0B;IAC9F,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAErD,IAAI,MAAM,EAAE;QACV,IAAA,eAAQ,EAAC,OAAO,EAAE,sBAAsB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;KACzD;IAED,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AARD,sBAQC"}
1
+ {"version":3,"file":"ref.js","sourceRoot":"","sources":["../../../src/utils/ref.ts"],"names":[],"mappings":";;;AAAA,qCAAoC;AACpC,6CAAuC;AAIvC,yDAAiD;AAEjD,qDAA6C;AAE7C,SAAgB,gBAAgB,CAAC,IAAwB,EAAE,OAA0B;IACnF,MAAM,EAAC,UAAU,EAAC,GAAG,OAAO,CAAC;IAE7B,IAAI,UAAU,EAAE,OAAO,IAAI,IAAI,EAAE;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QAE7C,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACpC;AACH,CAAC;AATD,4CASC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,OAA0B;IACzC,MAAM,EAAC,IAAI,GAAG,KAAK,CAAC,wBAAS,CAAC,OAAO,EAAE,wBAAS,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa,EAAE,EAAC,GAC9H,OAAO,CAAC;IAEV,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,OAA0B;IACpE,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3C,OAAO,IAAA,wBAAU,EAAC,GAAG,IAAI,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KAChF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAND,sCAMC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAY,EAAE,MAAkB,EAAE,OAA0B;IACpF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9B,OAAO,IAAA,4BAAW,EAChB;QACE,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE;KACxB,EACD;QACE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACjD,CACF,CAAC;AACJ,CAAC;AAZD,8BAYC;AAED;;GAEG;AACH,SAAgB,KAAK,CAAC,KAAiB,EAAE,MAAsC,EAAE,OAA0B;IACzG,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAErD,IAAI,MAAM,EAAE;QACV,IAAA,eAAQ,EAAC,OAAO,EAAE,sBAAsB,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;KACzD;IAED,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AARD,sBAQC"}
@@ -1,7 +1,6 @@
1
1
  import { JsonLazyRef } from "../../domain/JsonLazyRef.js";
2
2
  import { JsonSchema } from "../../domain/JsonSchema.js";
3
3
  import { execMapper, execOneOfMapper, registerJsonSchemaMapper } from "../../registries/JsonSchemaMapperContainer.js";
4
- import { mapGenericsOptions } from "../../utils/generics.js";
5
4
  import { toRef } from "../../utils/ref.js";
6
5
  export function anyMapper(input, options = {}) {
7
6
  if (typeof input !== "object" || input === null) {
@@ -16,7 +15,7 @@ export function anyMapper(input, options = {}) {
16
15
  }
17
16
  if (input.$kind && input.$isJsonDocument) {
18
17
  const kind = execOneOfMapper([input.$kind, "map"], options);
19
- const schema = execMapper(kind, [input], mapGenericsOptions(options));
18
+ const schema = execMapper(kind, [input], options);
20
19
  return input.canRef ? toRef(input, schema, options) : schema;
21
20
  }
22
21
  return execMapper("object", [input], options);
@@ -1 +1 @@
1
- {"version":3,"file":"anyMapper.js","sourceRoot":"","sources":["../../../../src/components/default/anyMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAC,UAAU,EAAE,eAAe,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACpH,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAEzC,MAAM,UAAU,SAAS,CAAC,KAAU,EAAE,UAA6B,EAAE;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;QAC/C,OAAO,KAAK,CAAC;KACd;IAED,IAAI,KAAK,YAAY,WAAW,EAAE;QAChC,OAAO,UAAU,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;KAChD;IAED,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,UAAU,EAAE;QAC1E,MAAM,UAAU,GAAe,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEjD,OAAO,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;KAC/D;IAED,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE;QACxC,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QAEtE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;KAC9D;IAED,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"anyMapper.js","sourceRoot":"","sources":["../../../../src/components/default/anyMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAC,UAAU,EAAE,eAAe,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACpH,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAEzC,MAAM,UAAU,SAAS,CAAC,KAAU,EAAE,UAA6B,EAAE;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;QAC/C,OAAO,KAAK,CAAC;KACd;IAED,IAAI,KAAK,YAAY,WAAW,EAAE;QAChC,OAAO,UAAU,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;KAChD;IAED,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,UAAU,EAAE;QAC1E,MAAM,UAAU,GAAe,KAAK,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAElD,OAAO,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;KAC/D;IAED,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE;QACxC,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAElD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;KAC9D;IAED,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC"}
@@ -1,37 +1,17 @@
1
1
  import { getValue, setValue } from "@tsed/core";
2
2
  import { JsonEntityStore } from "../../domain/JsonEntityStore.js";
3
3
  import { execMapper, registerJsonSchemaMapper } from "../../registries/JsonSchemaMapperContainer.js";
4
- import { mapGenericsOptions, popGenerics } from "../../utils/generics.js";
5
4
  import { createRef, createRefName } from "../../utils/ref.js";
6
5
  export function classMapper(value, options) {
7
6
  const store = JsonEntityStore.from(value.class);
8
7
  const name = createRefName(store.schema.getName() || value.getName(), options);
9
- if (value.hasGenerics) {
10
- // Inline generic
11
- const { type, properties, additionalProperties, items, ...props } = value.toJSON(options);
12
- const schema = {
13
- ...execMapper("any", [store.schema], {
14
- ...options,
15
- ...popGenerics(value),
16
- root: false
17
- }),
18
- ...props
19
- };
20
- if (schema.title) {
21
- const name = createRefName(schema.title, options);
22
- setValue(options.components, `schemas.${name}`, schema);
23
- delete schema.title;
24
- return createRef(name, value, options);
25
- }
26
- return schema;
27
- }
28
8
  if (!getValue(options, `components.schemas.${name}`)) {
29
9
  // avoid infinite calls
30
10
  setValue(options, `components.schemas.${name}`, {});
31
- options.components.schemas[name] = execMapper("any", [store.schema], mapGenericsOptions({
11
+ options.components.schemas[name] = execMapper("any", [store.schema], {
32
12
  ...options,
33
13
  root: false
34
- }));
14
+ });
35
15
  }
36
16
  return createRef(name, value, options);
37
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"classMapper.js","sourceRoot":"","sources":["../../../../src/components/default/classMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAGhE,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACnG,OAAO,EAAC,kBAAkB,EAAE,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAC,SAAS,EAAE,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAE5D,MAAM,UAAU,WAAW,CAAC,KAAiB,EAAE,OAA0B;IACvE,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAE/E,IAAI,KAAK,CAAC,WAAW,EAAE;QACrB,iBAAiB;QACjB,MAAM,EAAC,IAAI,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,EAAE,GAAG,KAAK,EAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG;YACb,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBACnC,GAAG,OAAO;gBACV,GAAG,WAAW,CAAC,KAAK,CAAC;gBACrB,IAAI,EAAE,KAAK;aACZ,CAAC;YACF,GAAG,KAAK;SACT,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAClD,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;YAExD,OAAO,MAAM,CAAC,KAAK,CAAC;YAEpB,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;SACxC;QAED,OAAO,MAAM,CAAC;KACf;IAED,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,IAAI,EAAE,CAAC,EAAE;QACpD,uBAAuB;QACvB,QAAQ,CAAC,OAAO,EAAE,sBAAsB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAEpD,OAAO,CAAC,UAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAC5C,KAAK,EACL,CAAC,KAAK,CAAC,MAAM,CAAC,EACd,kBAAkB,CAAC;YACjB,GAAG,OAAO;YACV,IAAI,EAAE,KAAK;SACZ,CAAC,CACH,CAAC;KACH;IAED,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"classMapper.js","sourceRoot":"","sources":["../../../../src/components/default/classMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAC,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAGhE,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACnG,OAAO,EAAC,SAAS,EAAE,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAE5D,MAAM,UAAU,WAAW,CAAC,KAAiB,EAAE,OAA0B;IACvE,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IAE/E,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,IAAI,EAAE,CAAC,EAAE;QACpD,uBAAuB;QACvB,QAAQ,CAAC,OAAO,EAAE,sBAAsB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAEpD,OAAO,CAAC,UAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YACpE,GAAG,OAAO;YACV,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;KACJ;IAED,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"discriminatorMappingMapper.js","sourceRoot":"","sources":["../../../../src/components/default/discriminatorMappingMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAIpC,OAAO,EAAC,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAMzC,MAAM,UAAU,0BAA0B,CAAC,GAA4B,EAAE,CAAa,EAAE,OAA0B;IAChH,IAAI,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,UAAU,GAA2B,EAAE,CAAC;QAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE;YAClC,UAAU,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;SAC9E;QAED,GAAG,CAAC,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;KACxC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iCAAiC,CAAC,GAA4B;IACrE,IAAI,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE;QAC9B,OAAO,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC;KAClC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAGD,wBAAwB,CAAC,sBAAsB,EAAE,iCAAiC,CAAC,CAAC"}
1
+ {"version":3,"file":"discriminatorMappingMapper.js","sourceRoot":"","sources":["../../../../src/components/default/discriminatorMappingMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAIpC,OAAO,EAAC,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAMzC,MAAM,UAAU,0BAA0B,CAAC,GAA4B,EAAE,CAAa,EAAE,OAA0B;IAChH,IAAI,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,UAAU,GAA2B,EAAE,CAAC;QAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE;YAClC,UAAU,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAK,CAAC;SAC/E;QAED,GAAG,CAAC,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;KACxC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iCAAiC,CAAC,GAA4B;IACrE,IAAI,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE;QAC9B,OAAO,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC;KAClC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wBAAwB,CAAC,sBAAsB,EAAE,iCAAiC,CAAC,CAAC"}
@@ -1,58 +1,72 @@
1
- import { isClass, isPrimitiveClass } from "@tsed/core";
2
- import { JsonEntityStore } from "../../domain/JsonEntityStore.js";
1
+ import { isObject } from "@tsed/core";
2
+ import { VendorKeys } from "../../constants/VendorKeys.js";
3
+ import { JsonSchema } from "../../domain/JsonSchema.js";
3
4
  import { execMapper, registerJsonSchemaMapper } from "../../registries/JsonSchemaMapperContainer.js";
4
- import { popGenerics } from "../../utils/generics.js";
5
- import { getJsonType } from "../../utils/getJsonType.js";
5
+ import { toRef } from "../../utils/ref.js";
6
+ function getNestedSchema(propertyKey, schema, options) {
7
+ if ("isLazyRef" in schema) {
8
+ return null;
9
+ }
10
+ if (schema.isGeneric) {
11
+ const genericLabel = schema.get(VendorKeys.GENERIC_LABEL);
12
+ const genericValue = options.generics?.[genericLabel];
13
+ if (!genericValue) {
14
+ return null;
15
+ }
16
+ const [model, next] = genericValue;
17
+ const refSchema = JsonSchema.from(model);
18
+ const modelSchema = execMapper("schema", [refSchema], {
19
+ ...options,
20
+ generics: next
21
+ });
22
+ if (next || !refSchema.isClass) {
23
+ return modelSchema;
24
+ }
25
+ return toRef(refSchema, modelSchema, options);
26
+ }
27
+ if (schema?.has("items")) {
28
+ const nestedSchema = getNestedSchema(propertyKey, schema.get("items"), options);
29
+ if (nestedSchema) {
30
+ return {
31
+ type: "array",
32
+ items: nestedSchema
33
+ };
34
+ }
35
+ }
36
+ if (schema.has("additionalProperties") && isObject(schema.get("additionalProperties"))) {
37
+ const nestedSchema = getNestedSchema(propertyKey, schema.get("additionalProperties"), options);
38
+ if (nestedSchema) {
39
+ return {
40
+ type: "object",
41
+ additionalProperties: nestedSchema
42
+ };
43
+ }
44
+ }
45
+ return null;
46
+ }
6
47
  /**
7
48
  * @ignore
8
49
  */
9
- export function genericsMapper(obj, options) {
10
- const { generics } = options;
11
- if (generics && obj.$ref) {
12
- if (generics.has(obj.$ref)) {
13
- let type = generics.get(obj.$ref);
14
- if (isPrimitiveClass(type)) {
15
- return {
16
- type: getJsonType(type)
17
- };
18
- }
19
- if (type === Date) {
20
- return {
21
- type: "string",
22
- format: "date-time"
23
- };
24
- }
25
- if (type.toJSON) {
26
- return type.toJSON({
27
- ...options,
28
- generics: undefined
29
- });
30
- }
31
- if (type === Object) {
32
- return {
33
- type: "object"
34
- };
35
- }
36
- if (isClass(type)) {
37
- const model = {
38
- class: type
39
- };
40
- if (options.nestedGenerics.length === 0) {
41
- return execMapper("class", [model], {
42
- ...options,
43
- generics: undefined
44
- });
45
- }
46
- const store = JsonEntityStore.from(model.class);
47
- return execMapper("schema", [store.schema], {
48
- ...options,
49
- ...popGenerics(options),
50
- root: false
51
- });
50
+ export function genericsMapper(baseObj, schema, options) {
51
+ if (schema.genericLabels?.length && schema.has("properties")) {
52
+ const properties = schema.get("properties");
53
+ let hasProps = false;
54
+ const additionalObj = Object.entries(properties || {}).reduce((obj, [propertyKey, jsonSchema]) => {
55
+ const nestedSchema = getNestedSchema(propertyKey, jsonSchema, options);
56
+ if (nestedSchema) {
57
+ obj[propertyKey] = nestedSchema;
58
+ hasProps = true;
52
59
  }
60
+ return obj;
61
+ }, {});
62
+ if (hasProps) {
63
+ return {
64
+ allOf: [toRef(schema, baseObj, options), { properties: additionalObj, type: "object" }]
65
+ };
53
66
  }
67
+ return baseObj;
54
68
  }
55
- return obj;
69
+ return baseObj;
56
70
  }
57
71
  registerJsonSchemaMapper("generics", genericsMapper);
58
72
  //# sourceMappingURL=genericsMapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"genericsMapper.js","sourceRoot":"","sources":["../../../../src/components/default/genericsMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,gBAAgB,EAAC,MAAM,YAAY,CAAC;AACrD,OAAO,EAAC,eAAe,EAAC,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACnG,OAAO,EAAkB,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAQ,EAAE,OAAwB;IAC/D,MAAM,EAAC,QAAQ,EAAC,GAAG,OAAO,CAAC;IAE3B,IAAI,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE;QACxB,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC1B,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAElC,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBAC1B,OAAO;oBACL,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;iBACxB,CAAC;aACH;YAED,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,WAAW;iBACpB,CAAC;aACH;YAED,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,OAAO,IAAI,CAAC,MAAM,CAAC;oBACjB,GAAG,OAAO;oBACV,QAAQ,EAAE,SAAS;iBACpB,CAAC,CAAC;aACJ;YAED,IAAI,IAAI,KAAK,MAAM,EAAE;gBACnB,OAAO;oBACL,IAAI,EAAE,QAAQ;iBACf,CAAC;aACH;YAED,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;gBACjB,MAAM,KAAK,GAAG;oBACZ,KAAK,EAAE,IAAI;iBACZ,CAAC;gBAEF,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;oBACvC,OAAO,UAAU,CAAC,OAAO,EAAE,CAAC,KAAY,CAAC,EAAE;wBACzC,GAAG,OAAO;wBACV,QAAQ,EAAE,SAAS;qBACpB,CAAC,CAAC;iBACJ;gBAED,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAEhD,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC1C,GAAG,OAAO;oBACV,GAAG,WAAW,CAAC,OAAO,CAAC;oBACvB,IAAI,EAAE,KAAK;iBACZ,CAAC,CAAC;aACJ;SACF;KACF;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wBAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"genericsMapper.js","sourceRoot":"","sources":["../../../../src/components/default/genericsMapper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"inheritedClassMapper.js","sourceRoot":"","sources":["../../../../src/components/default/inheritedClassMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,SAAS,EAAC,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACnG,OAAO,EAAC,kBAAkB,EAAC,MAAM,mCAAmC,CAAC;AAErE,SAAS,UAAU,CAAC,CAAS,EAAE,GAAQ;IACrC,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE;QAC1B,MAAM,EAAC,IAAI,EAAE,GAAG,MAAM,EAAC,GAAG,GAAG,CAAC;QAE9B,GAAG,GAAG;YACJ,KAAK,EAAE;gBACL;oBACE,IAAI;iBACL;gBACD,MAAM;aACP;SACF,CAAC;KACH;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAQ,EAAE,EAAC,MAAM,EAAE,GAAG,OAAO,EAAoB;IACpF,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAExH,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE;YAC9C,OAAO,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC,CAAC;QAC5F,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC,CAAC;KACpD;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wBAAwB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"inheritedClassMapper.js","sourceRoot":"","sources":["../../../../src/components/default/inheritedClassMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,SAAS,EAAC,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACnG,OAAO,EAAC,kBAAkB,EAAC,MAAM,mCAAmC,CAAC;AAErE,SAAS,UAAU,CAAC,CAAS,EAAE,GAAQ;IACrC,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE;QAC1B,MAAM,EAAC,IAAI,EAAE,GAAG,MAAM,EAAC,GAAG,GAAG,CAAC;QAE9B,GAAG,GAAG;YACJ,KAAK,EAAE;gBACL;oBACE,IAAI;iBACL;gBACD,MAAM;aACP;SACF,CAAC;KACH;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAQ,EAAE,EAAC,MAAM,EAAE,GAAG,OAAO,EAAoB;IACpF,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAExH,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE;YAC9C,OAAO,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC,CAAC;QAC5F,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC,CAAC;KACpD;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wBAAwB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { execMapper, registerJsonSchemaMapper } from "../../registries/JsonSchemaMapperContainer.js";
2
- import { mapGenericsOptions } from "../../utils/generics.js";
3
2
  import { createRef, toRef } from "../../utils/ref.js";
4
3
  export function lazyRefMapper(jsonLazyRef, options) {
5
4
  const name = jsonLazyRef.name;
@@ -7,7 +6,7 @@ export function lazyRefMapper(jsonLazyRef, options) {
7
6
  return createRef(name, jsonLazyRef.schema, options);
8
7
  }
9
8
  options.$refs = [...(options.$refs || []), jsonLazyRef.target];
10
- const schema = jsonLazyRef.getType() && execMapper("schema", [jsonLazyRef.schema], mapGenericsOptions(options));
9
+ const schema = jsonLazyRef.getType() && execMapper("schema", [jsonLazyRef.schema], options);
11
10
  return toRef(jsonLazyRef.schema, schema, options);
12
11
  }
13
12
  registerJsonSchemaMapper("lazyRef", lazyRefMapper);
@@ -1 +1 @@
1
- {"version":3,"file":"lazyRefMapper.js","sourceRoot":"","sources":["../../../../src/components/default/lazyRefMapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACnG,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAEpD,MAAM,UAAU,aAAa,CAAC,WAAwB,EAAE,OAA0B;IAChF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAE9B,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,EAAE;QAC7D,OAAO,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrD;IAED,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhH,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,wBAAwB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"lazyRefMapper.js","sourceRoot":"","sources":["../../../../src/components/default/lazyRefMapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AACnG,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAEpD,MAAM,UAAU,aAAa,CAAC,WAAwB,EAAE,OAA0B;IAChF,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAE9B,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,EAAE;QAC7D,OAAO,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrD;IAED,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IAE5F,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,wBAAwB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC"}
@@ -1,4 +1,3 @@
1
- import { mapGenericsOptions } from "../../utils/generics.js";
2
1
  import { execMapper, registerJsonSchemaMapper } from "../../registries/JsonSchemaMapperContainer.js";
3
2
  /**
4
3
  * Serialize class which inherit from Map like JsonMap, JsonOperation, JsonParameter.
@@ -8,7 +7,6 @@ import { execMapper, registerJsonSchemaMapper } from "../../registries/JsonSchem
8
7
  * @ignore
9
8
  */
10
9
  export function mapMapper(input, { ignore = [], ...options } = {}) {
11
- options = mapGenericsOptions(options);
12
10
  return Array.from(input.entries()).reduce((obj, [key, value]) => {
13
11
  if (ignore.includes(key)) {
14
12
  return obj;
@@ -1 +1 @@
1
- {"version":3,"file":"mapMapper.js","sourceRoot":"","sources":["../../../../src/components/default/mapMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AAEnG;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,KAAuB,EAAE,EAAC,MAAM,GAAG,EAAE,EAAE,GAAG,OAAO,KAAuB,EAAE;IAClG,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEtC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACnE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QAED,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"mapMapper.js","sourceRoot":"","sources":["../../../../src/components/default/mapMapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AAEnG;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,KAAuB,EAAE,EAAC,MAAM,GAAG,EAAE,EAAE,GAAG,OAAO,KAAuB,EAAE;IAClG,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACnE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;QAED,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC"}
@@ -0,0 +1,75 @@
1
+ import { JsonSchema } from "../../domain/JsonSchema.js";
2
+ import { execMapper, registerJsonSchemaMapper } from "../../registries/JsonSchemaMapperContainer.js";
3
+ import { getGenericsOptions } from "../../utils/generics.js";
4
+ import { mergeSchema } from "../../utils/mergeSchema.js";
5
+ function getMapper(input, mapper, root) {
6
+ if (input.isClass && !input.isLocalSchema && !root) {
7
+ return mapper || "class";
8
+ }
9
+ return "any";
10
+ }
11
+ function buildAndMergeSchemas(mapper, schema1, schema2, options) {
12
+ const schema = execMapper(getMapper(schema2, mapper, options.root), [schema2], {
13
+ ...options,
14
+ root: false,
15
+ mapper: mapper === "next" ? options.mapper : undefined
16
+ });
17
+ let extraSchema = execMapper(options.root ? "any" : mapper, [schema1], {
18
+ ...options,
19
+ root: false,
20
+ generics: undefined,
21
+ mapper: mapper === "next" ? options.mapper : undefined
22
+ });
23
+ if ((schema.$ref || schema.allOf) && extraSchema.type && Object.keys(extraSchema).length === 1) {
24
+ extraSchema = {};
25
+ }
26
+ if (schema1.canRef) {
27
+ const name = extraSchema.$ref.split("/").pop();
28
+ const titleSchema = options.components.schemas[name];
29
+ options.components.schemas[name] = mergeSchema(schema, titleSchema);
30
+ return extraSchema;
31
+ }
32
+ return mergeSchema(schema, extraSchema);
33
+ }
34
+ export function itemMapper(input, options) {
35
+ if (input && input instanceof JsonSchema) {
36
+ if (!input.isCollection && input?.itemSchema?.()) {
37
+ const { generics, mapper } = getGenericsOptions(input, options);
38
+ const schema1 = input;
39
+ const schema2 = input.itemSchema();
40
+ return buildAndMergeSchemas("next", schema1, schema2, { ...options, generics, mapper });
41
+ }
42
+ }
43
+ return execMapper("next", [input], options);
44
+ }
45
+ export function nextMapper(input, options) {
46
+ if (input && input instanceof JsonSchema && !input.isLocalSchema) {
47
+ const refSchema = input.getRefSchema();
48
+ if (refSchema) {
49
+ let { generics, mapper } = getGenericsOptions(input, options);
50
+ mapper = getMapper(input, mapper);
51
+ return buildAndMergeSchemas(mapper, input, refSchema, {
52
+ ...options,
53
+ generics
54
+ });
55
+ }
56
+ }
57
+ return execMapper(getMapper(input, options.mapper), [input], {
58
+ ...options,
59
+ root: false,
60
+ mapper: undefined
61
+ });
62
+ }
63
+ registerJsonSchemaMapper("item", itemMapper);
64
+ registerJsonSchemaMapper("next", nextMapper);
65
+ registerJsonSchemaMapper("properties", nextMapper);
66
+ registerJsonSchemaMapper("items", nextMapper);
67
+ registerJsonSchemaMapper("additionalProperties", nextMapper);
68
+ registerJsonSchemaMapper("propertyNames", nextMapper);
69
+ registerJsonSchemaMapper("contains", nextMapper);
70
+ registerJsonSchemaMapper("dependencies", nextMapper);
71
+ registerJsonSchemaMapper("patternProperties", nextMapper);
72
+ registerJsonSchemaMapper("additionalItems", nextMapper);
73
+ registerJsonSchemaMapper("not", nextMapper);
74
+ registerJsonSchemaMapper("definitions", nextMapper);
75
+ //# sourceMappingURL=nextMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextMapper.js","sourceRoot":"","sources":["../../../../src/components/default/nextMapper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nullableMapper.js","sourceRoot":"","sources":["../../../../src/components/default/nullableMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,kBAAkB,EAAC,MAAM,yCAAyC,CAAC;AAE3E,OAAO,EAAC,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AAEvF,MAAM,UAAU,cAAc,CAAC,GAAQ,EAAE,MAAyB;IAChE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE;QACvB,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;QACtB,IAAI,GAAG,CAAC,IAAI,EAAE;YACZ,GAAG,GAAG,WAAW,CAAC;gBAChB,GAAG,GAAG;gBACN,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL,EAAC,IAAI,EAAE,MAAM,EAAC;oBACd;wBACE,IAAI,EAAE,GAAG,CAAC,IAAI;qBACf;iBACF;aACF,CAAC,CAAC;SACJ;aAAM;YACL,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAe,EAAE,EAAE;gBAC1C,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE;oBAChB,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;oBAExE,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;wBAE1B,GAAG,GAAG,WAAW,CAAC;4BAChB,GAAG,GAAG;4BACN,GAAG,IAAI,CAAC,CAAC,CAAC;4BACV,CAAC,OAAO,CAAC,EAAE,SAAS;4BACpB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;yBAC5E,CAAC,CAAC;qBACJ;yBAAM;wBACL,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;4BACrE,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gCACrC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;6BACvB;4BACD,OAAO,IAAI,CAAC;wBACd,CAAC,CAAC,CAAC;wBACH,OAAO,GAAG,CAAC,IAAI,CAAC;qBACjB;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;KACF;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wBAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"nullableMapper.js","sourceRoot":"","sources":["../../../../src/components/default/nullableMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAC,kBAAkB,EAAC,MAAM,yCAAyC,CAAC;AAE3E,OAAO,EAAC,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AAEvF,MAAM,UAAU,cAAc,CAAC,GAAQ,EAAE,MAAyB;IAChE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE;QACvB,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;QACtB,IAAI,GAAG,CAAC,IAAI,EAAE;YACZ,GAAG,GAAG,WAAW,CAAC;gBAChB,GAAG,GAAG;gBACN,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL,EAAC,IAAI,EAAE,MAAM,EAAC;oBACd;wBACE,IAAI,EAAE,GAAG,CAAC,IAAI;qBACf;iBACF;aACF,CAAC,CAAC;SACJ;aAAM;YACL,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAe,EAAE,EAAE;gBAC1C,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE;oBAChB,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;oBAExE,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;wBAE1B,GAAG,GAAG,WAAW,CAAC;4BAChB,GAAG,GAAG;4BACN,GAAG,IAAI,CAAC,CAAC,CAAC;4BACV,CAAC,OAAO,CAAC,EAAE,SAAS;4BACpB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;yBAC5E,CAAC,CAAC;qBACJ;yBAAM;wBACL,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;4BACrE,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gCACrC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;6BACvB;4BACD,OAAO,IAAI,CAAC;wBACd,CAAC,CAAC,CAAC;wBACH,OAAO,GAAG,CAAC,IAAI,CAAC;qBACjB;iBACF;YACH,CAAC,CAAC,CAAC;SACJ;KACF;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wBAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { isArray } from "@tsed/core";
2
+ import { VendorKeys } from "../../constants/VendorKeys.js";
2
3
  import { alterIgnore } from "../../hooks/alterIgnore.js";
3
4
  import { execMapper, registerJsonSchemaMapper } from "../../registries/JsonSchemaMapperContainer.js";
4
5
  /**
@@ -8,16 +9,20 @@ import { execMapper, registerJsonSchemaMapper } from "../../registries/JsonSchem
8
9
  * @ignore
9
10
  */
10
11
  export function objectMapper(input, options) {
11
- const { specType, operationIdFormatter, root, components, genericTypes, nestedGenerics, useAlias, genericLabels, ...ctx } = options;
12
+ const { specType, operationIdFormatter, root, components, useAlias, ...ctx } = options;
12
13
  return Object.entries(input).reduce((obj, [key, value]) => {
13
14
  if (options.withIgnoredProps !== false && !alterIgnore(value, ctx)) {
14
15
  const opts = {
15
16
  ...options,
16
- groups: input?.$forwardGroups || value?.$forwardGroups ? options.groups : undefined
17
+ parent: value,
18
+ groups: input?.get?.(VendorKeys.FORWARD_GROUPS) || value?.get?.(VendorKeys.FORWARD_GROUPS) ? options.groups : undefined
17
19
  };
18
- // remove groups to avoid bad schema generation over children models
19
20
  obj[key] = execMapper("item", [value], opts);
20
21
  obj[key] = execMapper("nullable", [obj[key], value], opts);
22
+ if (value.isGeneric && obj[key]?.type) {
23
+ const { type, ...rest } = obj[key];
24
+ obj[key] = rest;
25
+ }
21
26
  }
22
27
  return obj;
23
28
  }, isArray(input) ? [] : {});
@@ -1 +1 @@
1
- {"version":3,"file":"objectMapper.js","sourceRoot":"","sources":["../../../../src/components/default/objectMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AAEnG;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAU,EAAE,OAA0B;IACjE,MAAM,EAAC,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,GAAG,EAAC,GAAG,OAAO,CAAC;IAElI,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAA6B,EAAE,EAAE;QAChD,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;YAClE,MAAM,IAAI,GAAG;gBACX,GAAG,OAAO;gBACV,MAAM,EAAE,KAAK,EAAE,cAAc,IAAI,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;aACpF,CAAC;YAEF,oEAAoE;YACpE,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7C,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;SAC5D;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EACD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CACzB,CAAC;AACJ,CAAC;AAED,wBAAwB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"objectMapper.js","sourceRoot":"","sources":["../../../../src/components/default/objectMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAC,UAAU,EAAC,MAAM,+BAA+B,CAAC;AAEzD,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AAEnG;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAU,EAAE,OAA0B;IACjE,MAAM,EAAC,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAC,GAAG,OAAO,CAAC;IAErF,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CACjC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAA6B,EAAE,EAAE;QAChD,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;YAClE,MAAM,IAAI,GAAG;gBACX,GAAG,OAAO;gBACV,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;aACxH,CAAC;YAEF,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7C,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YAE3D,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;gBACrC,MAAM,EAAC,IAAI,EAAE,GAAG,IAAI,EAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACjB;SACF;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EACD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CACzB,CAAC;AACJ,CAAC;AAED,wBAAwB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC"}
@@ -1,10 +1,7 @@
1
1
  import { execMapper, registerJsonSchemaMapper } from "../../registries/JsonSchemaMapperContainer.js";
2
- export function ofMapper(input, options, parent) {
2
+ export function ofMapper(input, options) {
3
3
  return input.map((value) => {
4
- return execMapper("item", [value], {
5
- ...options,
6
- genericLabels: parent.genericLabels
7
- });
4
+ return execMapper("item", [value], options);
8
5
  });
9
6
  }
10
7
  registerJsonSchemaMapper("anyOf", ofMapper);
@@ -1 +1 @@
1
- {"version":3,"file":"ofMapper.js","sourceRoot":"","sources":["../../../../src/components/default/ofMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AAInG,MAAM,UAAU,QAAQ,CAAC,KAA2B,EAAE,OAA0B,EAAE,MAAkB;IAClG,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAuB,EAAE,EAAE;QAC3C,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;YACjC,GAAG,OAAO;YACV,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC5C,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC5C,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"ofMapper.js","sourceRoot":"","sources":["../../../../src/components/default/ofMapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AAEnG,MAAM,UAAU,QAAQ,CAAC,KAA2B,EAAE,OAA0B;IAC9E,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAuB,EAAE,EAAE;QAC3C,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC5C,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC5C,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC"}
@@ -14,7 +14,7 @@ function mapRequiredProps(obj, schema, options = {}) {
14
14
  }
15
15
  function extractRequiredProps(obj, schema, options) {
16
16
  let required = obj.required || [];
17
- required = [...required, ...schema.$required];
17
+ required = [...required, ...schema.getRequiredFields()];
18
18
  if (schema.get("properties")) {
19
19
  required = Object.entries(schema.get("properties")).reduce((required, [key, prop]) => {
20
20
  if (prop && prop.$selfRequired !== undefined) {
@@ -26,7 +26,7 @@ function extractRequiredProps(obj, schema, options) {
26
26
  return alterRequiredGroups(uniq(required), schema, options);
27
27
  }
28
28
  export function requiredMapper(obj, schema, options) {
29
- if (options.groups && options.groups.includes("partial")) {
29
+ if (options.groups && options.groups?.includes("partial")) {
30
30
  if (obj.discriminator) {
31
31
  return {
32
32
  ...obj,
@@ -1 +1 @@
1
- {"version":3,"file":"requiredMapper.js","sourceRoot":"","sources":["../../../../src/components/default/requiredMapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requiredMapper.js","sourceRoot":"","sources":["../../../../src/components/default/requiredMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AAGhC,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAC,wBAAwB,EAAC,MAAM,+CAA+C,CAAC;AAEvF,SAAS,gBAAgB,CAAC,GAAQ,EAAE,MAAkB,EAAE,UAA6B,EAAE;IACrF,MAAM,EAAC,QAAQ,EAAC,GAAG,OAAO,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAEhD,OAAO,CAAC,IAAc,EAAE,GAAW,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAY,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAE7E,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SAChC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAQ,EAAE,MAAkB,EAAE,OAA0B;IACpF,IAAI,QAAQ,GAAa,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IAE5C,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAExD,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;QAC5B,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,CAAgB,EAAE,EAAE;YAClG,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;gBAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;aACtF;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC,EAAE,QAAQ,CAAC,CAAC;KACd;IAED,OAAO,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAQ,EAAE,MAAkB,EAAE,OAA0B;IACrF,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;QACzD,IAAI,GAAG,CAAC,aAAa,EAAE;YACrB,OAAO;gBACL,GAAG,GAAG;gBACN,QAAQ,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC;aAC3C,CAAC;SACH;QAED,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,QAAQ,GAAG,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1D,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAE7E,IAAI,GAAG,CAAC,aAAa,EAAE;QACrB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;KAC/C;IAED,IAAI,QAAQ,CAAC,MAAM,EAAE;QACnB,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;KACzB;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wBAAwB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { getValue, isObject, isFunction } from "@tsed/core";
1
+ import { getValue, isFunction, isObject } from "@tsed/core";
2
2
  import { mapAliasedProperties } from "../../domain/JsonAliasMap.js";
3
3
  import { SpecTypes } from "../../domain/SpecTypes.js";
4
4
  import { alterOneOf } from "../../hooks/alterOneOf.js";
@@ -13,6 +13,7 @@ const IGNORES = ["name", "$required", "$hooks", "_nestedGenerics", SpecTypes.OPE
13
13
  const IGNORES_OPENSPEC = [];
14
14
  /**
15
15
  * @ignore
16
+ * TODO check if we can remove this
16
17
  */
17
18
  function isEmptyProperties(key, value) {
18
19
  return typeof value === "object" && ["items", "properties", "additionalProperties"].includes(key) && Object.keys(value).length === 0;
@@ -28,7 +29,8 @@ function shouldMapAlias(key, value, useAlias) {
28
29
  */
29
30
  function shouldSkipKey(key, { specType = SpecTypes.JSON, customKeys = false }) {
30
31
  return (IGNORES.includes(key) ||
31
- (key.startsWith("#") && (customKeys === false || specType !== SpecTypes.JSON)) ||
32
+ key.startsWith("x-") ||
33
+ (key.startsWith("#") && (!customKeys || specType !== SpecTypes.JSON)) ||
32
34
  (specType !== SpecTypes.JSON && IGNORES_OPENSPEC.includes(key)));
33
35
  }
34
36
  function isExample(key, value, options) {
@@ -81,17 +83,13 @@ function mapKeys(schema, options) {
81
83
  }
82
84
  function serializeSchema(schema, options) {
83
85
  let obj = mapKeys(schema, options);
84
- if (schema.isClass) {
86
+ if (schema.isClass && !schema.isLocalSchema) {
85
87
  obj = execMapper("inheritedClass", [obj], {
86
88
  ...options,
87
89
  root: false,
88
- target: schema.getComputedType()
90
+ target: schema.class
89
91
  });
90
92
  }
91
- obj = execMapper("generics", [obj], {
92
- ...options,
93
- root: false
94
- });
95
93
  if (schema.has(options.specType)) {
96
94
  obj = {
97
95
  ...obj,
@@ -106,6 +104,7 @@ function serializeSchema(schema, options) {
106
104
  obj = alterOneOf(obj, schema, options);
107
105
  obj = execMapper("enums", [obj, schema], options);
108
106
  obj = execMapper("discriminatorMapping", [obj, schema], options);
107
+ obj = execMapper("generics", [obj, schema], options);
109
108
  return obj;
110
109
  }
111
110
  export function schemaMapper(schema, opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"schemaMapper.js","sourceRoot":"","sources":["../../../../src/components/default/schemaMapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemaMapper.js","sourceRoot":"","sources":["../../../../src/components/default/schemaMapper.ts"],"names":[],"mappings":"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"}