@tsed/schema 7.0.0-alpha.1 → 7.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (767) hide show
  1. package/jest.config.js +14 -0
  2. package/lib/cjs/components/anyMapper.js +23 -0
  3. package/lib/cjs/components/anyMapper.js.map +1 -0
  4. package/lib/cjs/components/classMapper.js +41 -0
  5. package/lib/cjs/components/classMapper.js.map +1 -0
  6. package/lib/cjs/components/genericsMapper.js +62 -0
  7. package/lib/cjs/components/genericsMapper.js.map +1 -0
  8. package/lib/cjs/components/inheritedClassMapper.js +22 -0
  9. package/lib/cjs/components/inheritedClassMapper.js.map +1 -0
  10. package/lib/cjs/components/itemMapper.js +10 -0
  11. package/lib/cjs/components/itemMapper.js.map +1 -0
  12. package/lib/cjs/components/lazyRefMapper.js +19 -0
  13. package/lib/cjs/components/lazyRefMapper.js.map +1 -0
  14. package/lib/cjs/components/mapMapper.js +25 -0
  15. package/lib/cjs/components/mapMapper.js.map +1 -0
  16. package/lib/cjs/components/objectMapper.js +31 -0
  17. package/lib/cjs/components/objectMapper.js.map +1 -0
  18. package/lib/cjs/components/ofMapper.js +17 -0
  19. package/lib/cjs/components/ofMapper.js.map +1 -0
  20. package/lib/cjs/components/propertiesMapper.js +25 -0
  21. package/lib/cjs/components/propertiesMapper.js.map +1 -0
  22. package/lib/cjs/components/schemaMapper.js +95 -0
  23. package/lib/cjs/components/schemaMapper.js.map +1 -0
  24. package/lib/cjs/constants/httpMethods.js +46 -0
  25. package/lib/cjs/constants/httpMethods.js.map +1 -0
  26. package/lib/cjs/constants/httpStatusMessages.js +26 -0
  27. package/lib/cjs/constants/httpStatusMessages.js.map +1 -0
  28. package/lib/cjs/decorators/class/children.js +24 -0
  29. package/lib/cjs/decorators/class/children.js.map +1 -0
  30. package/lib/cjs/decorators/collections/collectionContains.js +29 -0
  31. package/lib/cjs/decorators/collections/collectionContains.js.map +1 -0
  32. package/lib/cjs/decorators/collections/collectionOf.js +103 -0
  33. package/lib/cjs/decorators/collections/collectionOf.js.map +1 -0
  34. package/lib/cjs/decorators/collections/maxItems.js +60 -0
  35. package/lib/cjs/decorators/collections/maxItems.js.map +1 -0
  36. package/lib/cjs/decorators/collections/maxProperties.js +83 -0
  37. package/lib/cjs/decorators/collections/maxProperties.js.map +1 -0
  38. package/lib/cjs/decorators/collections/minItems.js +64 -0
  39. package/lib/cjs/decorators/collections/minItems.js.map +1 -0
  40. package/lib/cjs/decorators/collections/minProperties.js +82 -0
  41. package/lib/cjs/decorators/collections/minProperties.js.map +1 -0
  42. package/lib/cjs/decorators/collections/uniqueItems.js +60 -0
  43. package/lib/cjs/decorators/collections/uniqueItems.js.map +1 -0
  44. package/lib/cjs/decorators/common/additionalProperties.js +20 -0
  45. package/lib/cjs/decorators/common/additionalProperties.js.map +1 -0
  46. package/lib/cjs/decorators/common/allOf.js +22 -0
  47. package/lib/cjs/decorators/common/allOf.js.map +1 -0
  48. package/lib/cjs/decorators/common/allow.js +47 -0
  49. package/lib/cjs/decorators/common/allow.js.map +1 -0
  50. package/lib/cjs/decorators/common/any.js +46 -0
  51. package/lib/cjs/decorators/common/any.js.map +1 -0
  52. package/lib/cjs/decorators/common/anyOf.js +26 -0
  53. package/lib/cjs/decorators/common/anyOf.js.map +1 -0
  54. package/lib/cjs/decorators/common/const.js +70 -0
  55. package/lib/cjs/decorators/common/const.js.map +1 -0
  56. package/lib/cjs/decorators/common/customKey.js +43 -0
  57. package/lib/cjs/decorators/common/customKey.js.map +1 -0
  58. package/lib/cjs/decorators/common/default.js +51 -0
  59. package/lib/cjs/decorators/common/default.js.map +1 -0
  60. package/lib/cjs/decorators/common/description.js +76 -0
  61. package/lib/cjs/decorators/common/description.js.map +1 -0
  62. package/lib/cjs/decorators/common/enum.js +11 -0
  63. package/lib/cjs/decorators/common/enum.js.map +1 -0
  64. package/lib/cjs/decorators/common/example.js +21 -0
  65. package/lib/cjs/decorators/common/example.js.map +1 -0
  66. package/lib/cjs/decorators/common/examples.js +21 -0
  67. package/lib/cjs/decorators/common/examples.js.map +1 -0
  68. package/lib/cjs/decorators/common/exclusiveMaximum.js +77 -0
  69. package/lib/cjs/decorators/common/exclusiveMaximum.js.map +1 -0
  70. package/lib/cjs/decorators/common/exclusiveMinimum.js +77 -0
  71. package/lib/cjs/decorators/common/exclusiveMinimum.js.map +1 -0
  72. package/lib/cjs/decorators/common/format.js +486 -0
  73. package/lib/cjs/decorators/common/format.js.map +1 -0
  74. package/lib/cjs/decorators/common/forwardGroups.js +20 -0
  75. package/lib/cjs/decorators/common/forwardGroups.js.map +1 -0
  76. package/lib/cjs/decorators/common/groups.js +41 -0
  77. package/lib/cjs/decorators/common/groups.js.map +1 -0
  78. package/lib/cjs/decorators/common/hidden.js +40 -0
  79. package/lib/cjs/decorators/common/hidden.js.map +1 -0
  80. package/lib/cjs/decorators/common/ignore.js +71 -0
  81. package/lib/cjs/decorators/common/ignore.js.map +1 -0
  82. package/lib/cjs/decorators/common/integer.js +71 -0
  83. package/lib/cjs/decorators/common/integer.js.map +1 -0
  84. package/lib/cjs/decorators/common/jsonEntityFn.js +32 -0
  85. package/lib/cjs/decorators/common/jsonEntityFn.js.map +1 -0
  86. package/lib/cjs/decorators/common/maxLength.js +89 -0
  87. package/lib/cjs/decorators/common/maxLength.js.map +1 -0
  88. package/lib/cjs/decorators/common/maximum.js +151 -0
  89. package/lib/cjs/decorators/common/maximum.js.map +1 -0
  90. package/lib/cjs/decorators/common/minLength.js +90 -0
  91. package/lib/cjs/decorators/common/minLength.js.map +1 -0
  92. package/lib/cjs/decorators/common/minimum.js +149 -0
  93. package/lib/cjs/decorators/common/minimum.js.map +1 -0
  94. package/lib/cjs/decorators/common/multipleOf.js +81 -0
  95. package/lib/cjs/decorators/common/multipleOf.js.map +1 -0
  96. package/lib/cjs/decorators/common/name.js +52 -0
  97. package/lib/cjs/decorators/common/name.js.map +1 -0
  98. package/lib/cjs/decorators/common/nullable.js +34 -0
  99. package/lib/cjs/decorators/common/nullable.js.map +1 -0
  100. package/lib/cjs/decorators/common/oneOf.js +27 -0
  101. package/lib/cjs/decorators/common/oneOf.js.map +1 -0
  102. package/lib/cjs/decorators/common/optional.js +28 -0
  103. package/lib/cjs/decorators/common/optional.js.map +1 -0
  104. package/lib/cjs/decorators/common/pattern.js +103 -0
  105. package/lib/cjs/decorators/common/pattern.js.map +1 -0
  106. package/lib/cjs/decorators/common/property.js +27 -0
  107. package/lib/cjs/decorators/common/property.js.map +1 -0
  108. package/lib/cjs/decorators/common/readOnly.js +21 -0
  109. package/lib/cjs/decorators/common/readOnly.js.map +1 -0
  110. package/lib/cjs/decorators/common/recordOf.js +63 -0
  111. package/lib/cjs/decorators/common/recordOf.js.map +1 -0
  112. package/lib/cjs/decorators/common/required.js +53 -0
  113. package/lib/cjs/decorators/common/required.js.map +1 -0
  114. package/lib/cjs/decorators/common/requiredGroups.js +26 -0
  115. package/lib/cjs/decorators/common/requiredGroups.js.map +1 -0
  116. package/lib/cjs/decorators/common/schema.js +68 -0
  117. package/lib/cjs/decorators/common/schema.js.map +1 -0
  118. package/lib/cjs/decorators/common/title.js +49 -0
  119. package/lib/cjs/decorators/common/title.js.map +1 -0
  120. package/lib/cjs/decorators/common/writeOnly.js +21 -0
  121. package/lib/cjs/decorators/common/writeOnly.js.map +1 -0
  122. package/lib/cjs/decorators/config/jsonEntityComponent.js +18 -0
  123. package/lib/cjs/decorators/config/jsonEntityComponent.js.map +1 -0
  124. package/lib/cjs/decorators/generics/genericOf.js +99 -0
  125. package/lib/cjs/decorators/generics/genericOf.js.map +1 -0
  126. package/lib/cjs/decorators/generics/generics.js +25 -0
  127. package/lib/cjs/decorators/generics/generics.js.map +1 -0
  128. package/lib/cjs/decorators/operations/acceptMime.js +28 -0
  129. package/lib/cjs/decorators/operations/acceptMime.js.map +1 -0
  130. package/lib/cjs/decorators/operations/consumes.js +39 -0
  131. package/lib/cjs/decorators/operations/consumes.js.map +1 -0
  132. package/lib/cjs/decorators/operations/contentType.js +28 -0
  133. package/lib/cjs/decorators/operations/contentType.js.map +1 -0
  134. package/lib/cjs/decorators/operations/deprecated.js +43 -0
  135. package/lib/cjs/decorators/operations/deprecated.js.map +1 -0
  136. package/lib/cjs/decorators/operations/header.js +59 -0
  137. package/lib/cjs/decorators/operations/header.js.map +1 -0
  138. package/lib/cjs/decorators/operations/in.js +80 -0
  139. package/lib/cjs/decorators/operations/in.js.map +1 -0
  140. package/lib/cjs/decorators/operations/inFile.js +45 -0
  141. package/lib/cjs/decorators/operations/inFile.js.map +1 -0
  142. package/lib/cjs/decorators/operations/location.js +29 -0
  143. package/lib/cjs/decorators/operations/location.js.map +1 -0
  144. package/lib/cjs/decorators/operations/operationId.js +24 -0
  145. package/lib/cjs/decorators/operations/operationId.js.map +1 -0
  146. package/lib/cjs/decorators/operations/operationPath.js +34 -0
  147. package/lib/cjs/decorators/operations/operationPath.js.map +1 -0
  148. package/lib/cjs/decorators/operations/partial.js +18 -0
  149. package/lib/cjs/decorators/operations/partial.js.map +1 -0
  150. package/lib/cjs/decorators/operations/path.js +29 -0
  151. package/lib/cjs/decorators/operations/path.js.map +1 -0
  152. package/lib/cjs/decorators/operations/produces.js +46 -0
  153. package/lib/cjs/decorators/operations/produces.js.map +1 -0
  154. package/lib/cjs/decorators/operations/redirect.js +26 -0
  155. package/lib/cjs/decorators/operations/redirect.js.map +1 -0
  156. package/lib/cjs/decorators/operations/returns.js +252 -0
  157. package/lib/cjs/decorators/operations/returns.js.map +1 -0
  158. package/lib/cjs/decorators/operations/route.js +200 -0
  159. package/lib/cjs/decorators/operations/route.js.map +1 -0
  160. package/lib/cjs/decorators/operations/security.js +43 -0
  161. package/lib/cjs/decorators/operations/security.js.map +1 -0
  162. package/lib/cjs/decorators/operations/status.js +133 -0
  163. package/lib/cjs/decorators/operations/status.js.map +1 -0
  164. package/lib/cjs/decorators/operations/summary.js +34 -0
  165. package/lib/cjs/decorators/operations/summary.js.map +1 -0
  166. package/lib/cjs/decorators/operations/tags.js +52 -0
  167. package/lib/cjs/decorators/operations/tags.js.map +1 -0
  168. package/lib/cjs/decorators/operations/view.js +31 -0
  169. package/lib/cjs/decorators/operations/view.js.map +1 -0
  170. package/lib/cjs/domain/DecoratorContext.js +88 -0
  171. package/lib/cjs/domain/DecoratorContext.js.map +1 -0
  172. package/lib/cjs/domain/JsonAliasMap.js +15 -0
  173. package/lib/cjs/domain/JsonAliasMap.js.map +1 -0
  174. package/lib/cjs/domain/JsonClassStore.js +37 -0
  175. package/lib/cjs/domain/JsonClassStore.js.map +1 -0
  176. package/lib/cjs/domain/JsonEntityStore.js +166 -0
  177. package/lib/cjs/domain/JsonEntityStore.js.map +1 -0
  178. package/lib/cjs/domain/JsonFormatTypes.js +22 -0
  179. package/lib/cjs/domain/JsonFormatTypes.js.map +1 -0
  180. package/lib/cjs/domain/JsonLazyRef.js +26 -0
  181. package/lib/cjs/domain/JsonLazyRef.js.map +1 -0
  182. package/lib/cjs/domain/JsonMap.js +27 -0
  183. package/lib/cjs/domain/JsonMap.js.map +1 -0
  184. package/lib/cjs/domain/JsonMethodStore.js +143 -0
  185. package/lib/cjs/domain/JsonMethodStore.js.map +1 -0
  186. package/lib/cjs/domain/JsonOperation.js +235 -0
  187. package/lib/cjs/domain/JsonOperation.js.map +1 -0
  188. package/lib/cjs/domain/JsonOperationPathsMap.js +29 -0
  189. package/lib/cjs/domain/JsonOperationPathsMap.js.map +1 -0
  190. package/lib/cjs/domain/JsonOperationRoute.js +60 -0
  191. package/lib/cjs/domain/JsonOperationRoute.js.map +1 -0
  192. package/lib/cjs/domain/JsonParameter.js +119 -0
  193. package/lib/cjs/domain/JsonParameter.js.map +1 -0
  194. package/lib/cjs/domain/JsonParameterStore.js +99 -0
  195. package/lib/cjs/domain/JsonParameterStore.js.map +1 -0
  196. package/lib/cjs/domain/JsonParameterTypes.js +27 -0
  197. package/lib/cjs/domain/JsonParameterTypes.js.map +1 -0
  198. package/lib/cjs/domain/JsonPropertyStore.js +72 -0
  199. package/lib/cjs/domain/JsonPropertyStore.js.map +1 -0
  200. package/lib/cjs/domain/JsonRequestBody.js +32 -0
  201. package/lib/cjs/domain/JsonRequestBody.js.map +1 -0
  202. package/lib/cjs/domain/JsonResponse.js +76 -0
  203. package/lib/cjs/domain/JsonResponse.js.map +1 -0
  204. package/lib/cjs/domain/JsonSchema.js +716 -0
  205. package/lib/cjs/domain/JsonSchema.js.map +1 -0
  206. package/lib/cjs/domain/SpecTypes.js +10 -0
  207. package/lib/cjs/domain/SpecTypes.js.map +1 -0
  208. package/lib/cjs/hooks/alterIgnore.js +21 -0
  209. package/lib/cjs/hooks/alterIgnore.js.map +1 -0
  210. package/lib/cjs/hooks/alterOneOf.js +14 -0
  211. package/lib/cjs/hooks/alterOneOf.js.map +1 -0
  212. package/lib/cjs/hooks/alterRequiredGroups.js +15 -0
  213. package/lib/cjs/hooks/alterRequiredGroups.js.map +1 -0
  214. package/lib/cjs/index.js +154 -0
  215. package/lib/cjs/index.js.map +1 -0
  216. package/lib/cjs/interfaces/IgnoreCallback.js +3 -0
  217. package/lib/cjs/interfaces/IgnoreCallback.js.map +1 -0
  218. package/lib/cjs/interfaces/JsonHookContext.js +3 -0
  219. package/lib/cjs/interfaces/JsonHookContext.js.map +1 -0
  220. package/lib/cjs/interfaces/JsonOpenSpec.js +3 -0
  221. package/lib/cjs/interfaces/JsonOpenSpec.js.map +1 -0
  222. package/lib/cjs/interfaces/JsonSchemaOptions.js +3 -0
  223. package/lib/cjs/interfaces/JsonSchemaOptions.js.map +1 -0
  224. package/lib/cjs/package.json +3 -0
  225. package/lib/cjs/registries/JsonSchemaMapperContainer.js +37 -0
  226. package/lib/cjs/registries/JsonSchemaMapperContainer.js.map +1 -0
  227. package/lib/cjs/utils/buildPath.js +13 -0
  228. package/lib/cjs/utils/buildPath.js.map +1 -0
  229. package/lib/cjs/utils/concatParameters.js +16 -0
  230. package/lib/cjs/utils/concatParameters.js.map +1 -0
  231. package/lib/cjs/utils/concatPath.js +8 -0
  232. package/lib/cjs/utils/concatPath.js.map +1 -0
  233. package/lib/cjs/utils/defineStatusModel.js +13 -0
  234. package/lib/cjs/utils/defineStatusModel.js.map +1 -0
  235. package/lib/cjs/utils/from.js +273 -0
  236. package/lib/cjs/utils/from.js.map +1 -0
  237. package/lib/cjs/utils/generateSpec.js +46 -0
  238. package/lib/cjs/utils/generateSpec.js.map +1 -0
  239. package/lib/cjs/utils/generics.js +40 -0
  240. package/lib/cjs/utils/generics.js.map +1 -0
  241. package/lib/cjs/utils/getComputedType.js +26 -0
  242. package/lib/cjs/utils/getComputedType.js.map +1 -0
  243. package/lib/cjs/utils/getInheritedStores.js +23 -0
  244. package/lib/cjs/utils/getInheritedStores.js.map +1 -0
  245. package/lib/cjs/utils/getJsonEntityStore.js +18 -0
  246. package/lib/cjs/utils/getJsonEntityStore.js.map +1 -0
  247. package/lib/cjs/utils/getJsonPathParameters.js +73 -0
  248. package/lib/cjs/utils/getJsonPathParameters.js.map +1 -0
  249. package/lib/cjs/utils/getJsonSchema.js +65 -0
  250. package/lib/cjs/utils/getJsonSchema.js.map +1 -0
  251. package/lib/cjs/utils/getJsonType.js +40 -0
  252. package/lib/cjs/utils/getJsonType.js.map +1 -0
  253. package/lib/cjs/utils/getOperationsRoutes.js +37 -0
  254. package/lib/cjs/utils/getOperationsRoutes.js.map +1 -0
  255. package/lib/cjs/utils/getOperationsStores.js +33 -0
  256. package/lib/cjs/utils/getOperationsStores.js.map +1 -0
  257. package/lib/cjs/utils/getPropertiesStores.js +45 -0
  258. package/lib/cjs/utils/getPropertiesStores.js.map +1 -0
  259. package/lib/cjs/utils/getRequiredProperties.js +66 -0
  260. package/lib/cjs/utils/getRequiredProperties.js.map +1 -0
  261. package/lib/cjs/utils/getSpec.js +102 -0
  262. package/lib/cjs/utils/getSpec.js.map +1 -0
  263. package/lib/cjs/utils/getSpecType.js +21 -0
  264. package/lib/cjs/utils/getSpecType.js.map +1 -0
  265. package/lib/cjs/utils/isSuccessStatus.js +8 -0
  266. package/lib/cjs/utils/isSuccessStatus.js.map +1 -0
  267. package/lib/cjs/utils/mapHeaders.js +29 -0
  268. package/lib/cjs/utils/mapHeaders.js.map +1 -0
  269. package/lib/cjs/utils/mapNullableType.js +44 -0
  270. package/lib/cjs/utils/mapNullableType.js.map +1 -0
  271. package/lib/cjs/utils/mapOpenSpec.js +41 -0
  272. package/lib/cjs/utils/mapOpenSpec.js.map +1 -0
  273. package/lib/cjs/utils/mapOpenSpec2.js +34 -0
  274. package/lib/cjs/utils/mapOpenSpec2.js.map +1 -0
  275. package/lib/cjs/utils/mapOpenSpec3.js +26 -0
  276. package/lib/cjs/utils/mapOpenSpec3.js.map +1 -0
  277. package/lib/cjs/utils/mapOpenSpecInfo.js +21 -0
  278. package/lib/cjs/utils/mapOpenSpecInfo.js.map +1 -0
  279. package/lib/cjs/utils/mapRouteOptions.js +26 -0
  280. package/lib/cjs/utils/mapRouteOptions.js.map +1 -0
  281. package/lib/cjs/utils/matchGroups.js +23 -0
  282. package/lib/cjs/utils/matchGroups.js.map +1 -0
  283. package/lib/cjs/utils/mergeOperation.js +45 -0
  284. package/lib/cjs/utils/mergeOperation.js.map +1 -0
  285. package/lib/cjs/utils/mergeSpec.js +46 -0
  286. package/lib/cjs/utils/mergeSpec.js.map +1 -0
  287. package/lib/cjs/utils/operationIdFormatter.js +37 -0
  288. package/lib/cjs/utils/operationIdFormatter.js.map +1 -0
  289. package/lib/cjs/utils/ref.js +65 -0
  290. package/lib/cjs/utils/ref.js.map +1 -0
  291. package/lib/cjs/utils/serializeEnumValues.js +26 -0
  292. package/lib/cjs/utils/serializeEnumValues.js.map +1 -0
  293. package/lib/cjs/utils/toJsonMapCollection.js +15 -0
  294. package/lib/cjs/utils/toJsonMapCollection.js.map +1 -0
  295. package/lib/cjs/utils/toJsonRegex.js +12 -0
  296. package/lib/cjs/utils/toJsonRegex.js.map +1 -0
  297. package/lib/cjs/utils/transformToOS2.js +510 -0
  298. package/lib/cjs/utils/transformToOS2.js.map +1 -0
  299. package/lib/esm/components/anyMapper.js +19 -0
  300. package/lib/esm/components/anyMapper.js.map +1 -0
  301. package/lib/esm/components/classMapper.js +37 -0
  302. package/lib/esm/components/classMapper.js.map +1 -0
  303. package/lib/esm/components/genericsMapper.js +58 -0
  304. package/lib/esm/components/genericsMapper.js.map +1 -0
  305. package/lib/esm/components/inheritedClassMapper.js +18 -0
  306. package/lib/esm/components/inheritedClassMapper.js.map +1 -0
  307. package/lib/esm/components/itemMapper.js +6 -0
  308. package/lib/esm/components/itemMapper.js.map +1 -0
  309. package/lib/esm/components/lazyRefMapper.js +15 -0
  310. package/lib/esm/components/lazyRefMapper.js.map +1 -0
  311. package/lib/esm/components/mapMapper.js +21 -0
  312. package/lib/esm/components/mapMapper.js.map +1 -0
  313. package/lib/esm/components/objectMapper.js +27 -0
  314. package/lib/esm/components/objectMapper.js.map +1 -0
  315. package/lib/esm/components/ofMapper.js +13 -0
  316. package/lib/esm/components/ofMapper.js.map +1 -0
  317. package/lib/esm/components/propertiesMapper.js +21 -0
  318. package/lib/esm/components/propertiesMapper.js.map +1 -0
  319. package/lib/esm/components/schemaMapper.js +91 -0
  320. package/lib/esm/components/schemaMapper.js.map +1 -0
  321. package/lib/esm/constants/httpMethods.js +43 -0
  322. package/lib/esm/constants/httpMethods.js.map +1 -0
  323. package/lib/esm/constants/httpStatusMessages.js +20 -0
  324. package/lib/esm/constants/httpStatusMessages.js.map +1 -0
  325. package/lib/esm/decorators/class/children.js +20 -0
  326. package/lib/esm/decorators/class/children.js.map +1 -0
  327. package/lib/esm/decorators/collections/collectionContains.js +25 -0
  328. package/lib/esm/decorators/collections/collectionContains.js.map +1 -0
  329. package/lib/esm/decorators/collections/collectionOf.js +97 -0
  330. package/lib/esm/decorators/collections/collectionOf.js.map +1 -0
  331. package/lib/esm/decorators/collections/maxItems.js +56 -0
  332. package/lib/esm/decorators/collections/maxItems.js.map +1 -0
  333. package/lib/esm/decorators/collections/maxProperties.js +79 -0
  334. package/lib/esm/decorators/collections/maxProperties.js.map +1 -0
  335. package/lib/esm/decorators/collections/minItems.js +60 -0
  336. package/lib/esm/decorators/collections/minItems.js.map +1 -0
  337. package/lib/esm/decorators/collections/minProperties.js +78 -0
  338. package/lib/esm/decorators/collections/minProperties.js.map +1 -0
  339. package/lib/esm/decorators/collections/uniqueItems.js +56 -0
  340. package/lib/esm/decorators/collections/uniqueItems.js.map +1 -0
  341. package/lib/esm/decorators/common/additionalProperties.js +16 -0
  342. package/lib/esm/decorators/common/additionalProperties.js.map +1 -0
  343. package/lib/esm/decorators/common/allOf.js +18 -0
  344. package/lib/esm/decorators/common/allOf.js.map +1 -0
  345. package/lib/esm/decorators/common/allow.js +43 -0
  346. package/lib/esm/decorators/common/allow.js.map +1 -0
  347. package/lib/esm/decorators/common/any.js +42 -0
  348. package/lib/esm/decorators/common/any.js.map +1 -0
  349. package/lib/esm/decorators/common/anyOf.js +22 -0
  350. package/lib/esm/decorators/common/anyOf.js.map +1 -0
  351. package/lib/esm/decorators/common/const.js +66 -0
  352. package/lib/esm/decorators/common/const.js.map +1 -0
  353. package/lib/esm/decorators/common/customKey.js +38 -0
  354. package/lib/esm/decorators/common/customKey.js.map +1 -0
  355. package/lib/esm/decorators/common/default.js +47 -0
  356. package/lib/esm/decorators/common/default.js.map +1 -0
  357. package/lib/esm/decorators/common/description.js +72 -0
  358. package/lib/esm/decorators/common/description.js.map +1 -0
  359. package/lib/esm/decorators/common/enum.js +7 -0
  360. package/lib/esm/decorators/common/enum.js.map +1 -0
  361. package/lib/esm/decorators/common/example.js +17 -0
  362. package/lib/esm/decorators/common/example.js.map +1 -0
  363. package/lib/esm/decorators/common/examples.js +17 -0
  364. package/lib/esm/decorators/common/examples.js.map +1 -0
  365. package/lib/esm/decorators/common/exclusiveMaximum.js +73 -0
  366. package/lib/esm/decorators/common/exclusiveMaximum.js.map +1 -0
  367. package/lib/esm/decorators/common/exclusiveMinimum.js +73 -0
  368. package/lib/esm/decorators/common/exclusiveMinimum.js.map +1 -0
  369. package/lib/esm/decorators/common/format.js +476 -0
  370. package/lib/esm/decorators/common/format.js.map +1 -0
  371. package/lib/esm/decorators/common/forwardGroups.js +16 -0
  372. package/lib/esm/decorators/common/forwardGroups.js.map +1 -0
  373. package/lib/esm/decorators/common/groups.js +37 -0
  374. package/lib/esm/decorators/common/groups.js.map +1 -0
  375. package/lib/esm/decorators/common/hidden.js +36 -0
  376. package/lib/esm/decorators/common/hidden.js.map +1 -0
  377. package/lib/esm/decorators/common/ignore.js +67 -0
  378. package/lib/esm/decorators/common/ignore.js.map +1 -0
  379. package/lib/esm/decorators/common/integer.js +67 -0
  380. package/lib/esm/decorators/common/integer.js.map +1 -0
  381. package/lib/esm/decorators/common/jsonEntityFn.js +28 -0
  382. package/lib/esm/decorators/common/jsonEntityFn.js.map +1 -0
  383. package/lib/esm/decorators/common/maxLength.js +85 -0
  384. package/lib/esm/decorators/common/maxLength.js.map +1 -0
  385. package/lib/esm/decorators/common/maximum.js +146 -0
  386. package/lib/esm/decorators/common/maximum.js.map +1 -0
  387. package/lib/esm/decorators/common/minLength.js +86 -0
  388. package/lib/esm/decorators/common/minLength.js.map +1 -0
  389. package/lib/esm/decorators/common/minimum.js +144 -0
  390. package/lib/esm/decorators/common/minimum.js.map +1 -0
  391. package/lib/esm/decorators/common/multipleOf.js +77 -0
  392. package/lib/esm/decorators/common/multipleOf.js.map +1 -0
  393. package/lib/esm/decorators/common/name.js +48 -0
  394. package/lib/esm/decorators/common/name.js.map +1 -0
  395. package/lib/esm/decorators/common/nullable.js +30 -0
  396. package/lib/esm/decorators/common/nullable.js.map +1 -0
  397. package/lib/esm/decorators/common/oneOf.js +23 -0
  398. package/lib/esm/decorators/common/oneOf.js.map +1 -0
  399. package/lib/esm/decorators/common/optional.js +24 -0
  400. package/lib/esm/decorators/common/optional.js.map +1 -0
  401. package/lib/esm/decorators/common/pattern.js +99 -0
  402. package/lib/esm/decorators/common/pattern.js.map +1 -0
  403. package/lib/esm/decorators/common/property.js +23 -0
  404. package/lib/esm/decorators/common/property.js.map +1 -0
  405. package/lib/esm/decorators/common/readOnly.js +17 -0
  406. package/lib/esm/decorators/common/readOnly.js.map +1 -0
  407. package/lib/esm/decorators/common/recordOf.js +59 -0
  408. package/lib/esm/decorators/common/recordOf.js.map +1 -0
  409. package/lib/esm/decorators/common/required.js +49 -0
  410. package/lib/esm/decorators/common/required.js.map +1 -0
  411. package/lib/esm/decorators/common/requiredGroups.js +22 -0
  412. package/lib/esm/decorators/common/requiredGroups.js.map +1 -0
  413. package/lib/esm/decorators/common/schema.js +63 -0
  414. package/lib/esm/decorators/common/schema.js.map +1 -0
  415. package/lib/esm/decorators/common/title.js +45 -0
  416. package/lib/esm/decorators/common/title.js.map +1 -0
  417. package/lib/esm/decorators/common/writeOnly.js +17 -0
  418. package/lib/esm/decorators/common/writeOnly.js.map +1 -0
  419. package/lib/esm/decorators/config/jsonEntityComponent.js +14 -0
  420. package/lib/esm/decorators/config/jsonEntityComponent.js.map +1 -0
  421. package/lib/esm/decorators/generics/genericOf.js +95 -0
  422. package/lib/esm/decorators/generics/genericOf.js.map +1 -0
  423. package/lib/esm/decorators/generics/generics.js +21 -0
  424. package/lib/esm/decorators/generics/generics.js.map +1 -0
  425. package/lib/esm/decorators/operations/acceptMime.js +24 -0
  426. package/lib/esm/decorators/operations/acceptMime.js.map +1 -0
  427. package/lib/esm/decorators/operations/consumes.js +35 -0
  428. package/lib/esm/decorators/operations/consumes.js.map +1 -0
  429. package/lib/esm/decorators/operations/contentType.js +24 -0
  430. package/lib/esm/decorators/operations/contentType.js.map +1 -0
  431. package/lib/esm/decorators/operations/deprecated.js +39 -0
  432. package/lib/esm/decorators/operations/deprecated.js.map +1 -0
  433. package/lib/esm/decorators/operations/header.js +55 -0
  434. package/lib/esm/decorators/operations/header.js.map +1 -0
  435. package/lib/esm/decorators/operations/in.js +76 -0
  436. package/lib/esm/decorators/operations/in.js.map +1 -0
  437. package/lib/esm/decorators/operations/inFile.js +41 -0
  438. package/lib/esm/decorators/operations/inFile.js.map +1 -0
  439. package/lib/esm/decorators/operations/location.js +25 -0
  440. package/lib/esm/decorators/operations/location.js.map +1 -0
  441. package/lib/esm/decorators/operations/operationId.js +20 -0
  442. package/lib/esm/decorators/operations/operationId.js.map +1 -0
  443. package/lib/esm/decorators/operations/operationPath.js +30 -0
  444. package/lib/esm/decorators/operations/operationPath.js.map +1 -0
  445. package/lib/esm/decorators/operations/partial.js +14 -0
  446. package/lib/esm/decorators/operations/partial.js.map +1 -0
  447. package/lib/esm/decorators/operations/path.js +25 -0
  448. package/lib/esm/decorators/operations/path.js.map +1 -0
  449. package/lib/esm/decorators/operations/produces.js +42 -0
  450. package/lib/esm/decorators/operations/produces.js.map +1 -0
  451. package/lib/esm/decorators/operations/redirect.js +22 -0
  452. package/lib/esm/decorators/operations/redirect.js.map +1 -0
  453. package/lib/esm/decorators/operations/returns.js +248 -0
  454. package/lib/esm/decorators/operations/returns.js.map +1 -0
  455. package/lib/esm/decorators/operations/route.js +188 -0
  456. package/lib/esm/decorators/operations/route.js.map +1 -0
  457. package/lib/esm/decorators/operations/security.js +39 -0
  458. package/lib/esm/decorators/operations/security.js.map +1 -0
  459. package/lib/esm/decorators/operations/status.js +129 -0
  460. package/lib/esm/decorators/operations/status.js.map +1 -0
  461. package/lib/esm/decorators/operations/summary.js +30 -0
  462. package/lib/esm/decorators/operations/summary.js.map +1 -0
  463. package/lib/esm/decorators/operations/tags.js +48 -0
  464. package/lib/esm/decorators/operations/tags.js.map +1 -0
  465. package/lib/esm/decorators/operations/view.js +27 -0
  466. package/lib/esm/decorators/operations/view.js.map +1 -0
  467. package/lib/esm/domain/DecoratorContext.js +84 -0
  468. package/lib/esm/domain/DecoratorContext.js.map +1 -0
  469. package/lib/esm/domain/JsonAliasMap.js +11 -0
  470. package/lib/esm/domain/JsonAliasMap.js.map +1 -0
  471. package/lib/esm/domain/JsonClassStore.js +34 -0
  472. package/lib/esm/domain/JsonClassStore.js.map +1 -0
  473. package/lib/esm/domain/JsonEntityStore.js +162 -0
  474. package/lib/esm/domain/JsonEntityStore.js.map +1 -0
  475. package/lib/esm/domain/JsonFormatTypes.js +19 -0
  476. package/lib/esm/domain/JsonFormatTypes.js.map +1 -0
  477. package/lib/esm/domain/JsonLazyRef.js +22 -0
  478. package/lib/esm/domain/JsonLazyRef.js.map +1 -0
  479. package/lib/esm/domain/JsonMap.js +23 -0
  480. package/lib/esm/domain/JsonMap.js.map +1 -0
  481. package/lib/esm/domain/JsonMethodStore.js +140 -0
  482. package/lib/esm/domain/JsonMethodStore.js.map +1 -0
  483. package/lib/esm/domain/JsonOperation.js +231 -0
  484. package/lib/esm/domain/JsonOperation.js.map +1 -0
  485. package/lib/esm/domain/JsonOperationPathsMap.js +25 -0
  486. package/lib/esm/domain/JsonOperationPathsMap.js.map +1 -0
  487. package/lib/esm/domain/JsonOperationRoute.js +56 -0
  488. package/lib/esm/domain/JsonOperationRoute.js.map +1 -0
  489. package/lib/esm/domain/JsonParameter.js +115 -0
  490. package/lib/esm/domain/JsonParameter.js.map +1 -0
  491. package/lib/esm/domain/JsonParameterStore.js +96 -0
  492. package/lib/esm/domain/JsonParameterStore.js.map +1 -0
  493. package/lib/esm/domain/JsonParameterTypes.js +22 -0
  494. package/lib/esm/domain/JsonParameterTypes.js.map +1 -0
  495. package/lib/esm/domain/JsonPropertyStore.js +69 -0
  496. package/lib/esm/domain/JsonPropertyStore.js.map +1 -0
  497. package/lib/esm/domain/JsonRequestBody.js +28 -0
  498. package/lib/esm/domain/JsonRequestBody.js.map +1 -0
  499. package/lib/esm/domain/JsonResponse.js +71 -0
  500. package/lib/esm/domain/JsonResponse.js.map +1 -0
  501. package/lib/esm/domain/JsonSchema.js +712 -0
  502. package/lib/esm/domain/JsonSchema.js.map +1 -0
  503. package/lib/esm/domain/SpecTypes.js +7 -0
  504. package/lib/esm/domain/SpecTypes.js.map +1 -0
  505. package/lib/esm/hooks/alterIgnore.js +17 -0
  506. package/lib/esm/hooks/alterIgnore.js.map +1 -0
  507. package/lib/esm/hooks/alterOneOf.js +10 -0
  508. package/lib/esm/hooks/alterOneOf.js.map +1 -0
  509. package/lib/esm/hooks/alterRequiredGroups.js +11 -0
  510. package/lib/esm/hooks/alterRequiredGroups.js.map +1 -0
  511. package/lib/esm/index.js +151 -0
  512. package/lib/esm/index.js.map +1 -0
  513. package/lib/esm/interfaces/IgnoreCallback.js +2 -0
  514. package/lib/esm/interfaces/IgnoreCallback.js.map +1 -0
  515. package/lib/esm/interfaces/JsonHookContext.js +2 -0
  516. package/lib/esm/interfaces/JsonHookContext.js.map +1 -0
  517. package/lib/esm/interfaces/JsonOpenSpec.js +2 -0
  518. package/lib/esm/interfaces/JsonOpenSpec.js.map +1 -0
  519. package/lib/esm/interfaces/JsonSchemaOptions.js +2 -0
  520. package/lib/esm/interfaces/JsonSchemaOptions.js.map +1 -0
  521. package/lib/esm/package.json +3 -0
  522. package/lib/esm/registries/JsonSchemaMapperContainer.js +30 -0
  523. package/lib/esm/registries/JsonSchemaMapperContainer.js.map +1 -0
  524. package/lib/esm/utils/buildPath.js +9 -0
  525. package/lib/esm/utils/buildPath.js.map +1 -0
  526. package/lib/esm/utils/concatParameters.js +12 -0
  527. package/lib/esm/utils/concatParameters.js.map +1 -0
  528. package/lib/esm/utils/concatPath.js +4 -0
  529. package/lib/esm/utils/concatPath.js.map +1 -0
  530. package/lib/esm/utils/defineStatusModel.js +8 -0
  531. package/lib/esm/utils/defineStatusModel.js.map +1 -0
  532. package/lib/esm/utils/from.js +250 -0
  533. package/lib/esm/utils/from.js.map +1 -0
  534. package/lib/esm/utils/generateSpec.js +41 -0
  535. package/lib/esm/utils/generateSpec.js.map +1 -0
  536. package/lib/esm/utils/generics.js +34 -0
  537. package/lib/esm/utils/generics.js.map +1 -0
  538. package/lib/esm/utils/getComputedType.js +22 -0
  539. package/lib/esm/utils/getComputedType.js.map +1 -0
  540. package/lib/esm/utils/getInheritedStores.js +19 -0
  541. package/lib/esm/utils/getInheritedStores.js.map +1 -0
  542. package/lib/esm/utils/getJsonEntityStore.js +14 -0
  543. package/lib/esm/utils/getJsonEntityStore.js.map +1 -0
  544. package/lib/esm/utils/getJsonPathParameters.js +69 -0
  545. package/lib/esm/utils/getJsonPathParameters.js.map +1 -0
  546. package/lib/esm/utils/getJsonSchema.js +61 -0
  547. package/lib/esm/utils/getJsonSchema.js.map +1 -0
  548. package/lib/esm/utils/getJsonType.js +36 -0
  549. package/lib/esm/utils/getJsonType.js.map +1 -0
  550. package/lib/esm/utils/getOperationsRoutes.js +33 -0
  551. package/lib/esm/utils/getOperationsRoutes.js.map +1 -0
  552. package/lib/esm/utils/getOperationsStores.js +29 -0
  553. package/lib/esm/utils/getOperationsStores.js.map +1 -0
  554. package/lib/esm/utils/getPropertiesStores.js +40 -0
  555. package/lib/esm/utils/getPropertiesStores.js.map +1 -0
  556. package/lib/esm/utils/getRequiredProperties.js +62 -0
  557. package/lib/esm/utils/getRequiredProperties.js.map +1 -0
  558. package/lib/esm/utils/getSpec.js +98 -0
  559. package/lib/esm/utils/getSpec.js.map +1 -0
  560. package/lib/esm/utils/getSpecType.js +16 -0
  561. package/lib/esm/utils/getSpecType.js.map +1 -0
  562. package/lib/esm/utils/isSuccessStatus.js +3 -0
  563. package/lib/esm/utils/isSuccessStatus.js.map +1 -0
  564. package/lib/esm/utils/mapHeaders.js +25 -0
  565. package/lib/esm/utils/mapHeaders.js.map +1 -0
  566. package/lib/esm/utils/mapNullableType.js +40 -0
  567. package/lib/esm/utils/mapNullableType.js.map +1 -0
  568. package/lib/esm/utils/mapOpenSpec.js +37 -0
  569. package/lib/esm/utils/mapOpenSpec.js.map +1 -0
  570. package/lib/esm/utils/mapOpenSpec2.js +30 -0
  571. package/lib/esm/utils/mapOpenSpec2.js.map +1 -0
  572. package/lib/esm/utils/mapOpenSpec3.js +22 -0
  573. package/lib/esm/utils/mapOpenSpec3.js.map +1 -0
  574. package/lib/esm/utils/mapOpenSpecInfo.js +17 -0
  575. package/lib/esm/utils/mapOpenSpecInfo.js.map +1 -0
  576. package/lib/esm/utils/mapRouteOptions.js +22 -0
  577. package/lib/esm/utils/mapRouteOptions.js.map +1 -0
  578. package/lib/esm/utils/matchGroups.js +18 -0
  579. package/lib/esm/utils/matchGroups.js.map +1 -0
  580. package/lib/esm/utils/mergeOperation.js +41 -0
  581. package/lib/esm/utils/mergeOperation.js.map +1 -0
  582. package/lib/esm/utils/mergeSpec.js +42 -0
  583. package/lib/esm/utils/mergeSpec.js.map +1 -0
  584. package/lib/esm/utils/operationIdFormatter.js +33 -0
  585. package/lib/esm/utils/operationIdFormatter.js.map +1 -0
  586. package/lib/esm/utils/ref.js +59 -0
  587. package/lib/esm/utils/ref.js.map +1 -0
  588. package/lib/esm/utils/serializeEnumValues.js +21 -0
  589. package/lib/esm/utils/serializeEnumValues.js.map +1 -0
  590. package/lib/esm/utils/toJsonMapCollection.js +11 -0
  591. package/lib/esm/utils/toJsonMapCollection.js.map +1 -0
  592. package/lib/esm/utils/toJsonRegex.js +8 -0
  593. package/lib/esm/utils/toJsonRegex.js.map +1 -0
  594. package/lib/esm/utils/transformToOS2.js +504 -0
  595. package/lib/esm/utils/transformToOS2.js.map +1 -0
  596. package/lib/{components → types/components}/anyMapper.d.ts +0 -0
  597. package/lib/{components → types/components}/classMapper.d.ts +1 -1
  598. package/lib/{components → types/components}/genericsMapper.d.ts +0 -0
  599. package/lib/{components → types/components}/inheritedClassMapper.d.ts +1 -1
  600. package/lib/{components → types/components}/itemMapper.d.ts +0 -0
  601. package/lib/types/components/lazyRefMapper.d.ts +3 -0
  602. package/lib/{components → types/components}/mapMapper.d.ts +1 -1
  603. package/lib/{components → types/components}/objectMapper.d.ts +0 -0
  604. package/lib/types/components/ofMapper.d.ts +3 -0
  605. package/lib/types/components/propertiesMapper.d.ts +3 -0
  606. package/lib/{components → types/components}/schemaMapper.d.ts +1 -1
  607. package/lib/types/constants/httpMethods.d.ts +12 -0
  608. package/lib/types/constants/httpStatusMessages.d.ts +11 -0
  609. package/lib/types/decorators/class/children.d.ts +11 -0
  610. package/lib/{decorators → types/decorators}/collections/collectionContains.d.ts +0 -0
  611. package/lib/{decorators → types/decorators}/collections/collectionOf.d.ts +1 -1
  612. package/lib/{decorators → types/decorators}/collections/maxItems.d.ts +0 -0
  613. package/lib/{decorators → types/decorators}/collections/maxProperties.d.ts +0 -0
  614. package/lib/{decorators → types/decorators}/collections/minItems.d.ts +0 -0
  615. package/lib/{decorators → types/decorators}/collections/minProperties.d.ts +0 -0
  616. package/lib/{decorators → types/decorators}/collections/uniqueItems.d.ts +0 -0
  617. package/lib/{decorators → types/decorators}/common/additionalProperties.d.ts +0 -0
  618. package/lib/{decorators → types/decorators}/common/allOf.d.ts +0 -0
  619. package/lib/{decorators → types/decorators}/common/allow.d.ts +0 -0
  620. package/lib/{decorators → types/decorators}/common/any.d.ts +1 -1
  621. package/lib/{decorators → types/decorators}/common/anyOf.d.ts +0 -0
  622. package/lib/{decorators → types/decorators}/common/const.d.ts +1 -1
  623. package/lib/{decorators → types/decorators}/common/customKey.d.ts +0 -0
  624. package/lib/{decorators → types/decorators}/common/default.d.ts +0 -0
  625. package/lib/{decorators → types/decorators}/common/description.d.ts +0 -0
  626. package/lib/{decorators → types/decorators}/common/enum.d.ts +1 -1
  627. package/lib/{decorators → types/decorators}/common/example.d.ts +0 -0
  628. package/lib/types/decorators/common/examples.d.ts +12 -0
  629. package/lib/{decorators → types/decorators}/common/exclusiveMaximum.d.ts +0 -0
  630. package/lib/{decorators → types/decorators}/common/exclusiveMinimum.d.ts +0 -0
  631. package/lib/{decorators → types/decorators}/common/format.d.ts +0 -0
  632. package/lib/{decorators → types/decorators}/common/forwardGroups.d.ts +0 -0
  633. package/lib/{decorators → types/decorators}/common/groups.d.ts +0 -0
  634. package/lib/{decorators → types/decorators}/common/hidden.d.ts +0 -0
  635. package/lib/{decorators → types/decorators}/common/ignore.d.ts +1 -1
  636. package/lib/{decorators → types/decorators}/common/integer.d.ts +0 -0
  637. package/lib/{decorators → types/decorators}/common/jsonEntityFn.d.ts +2 -2
  638. package/lib/{decorators → types/decorators}/common/maxLength.d.ts +0 -0
  639. package/lib/{decorators → types/decorators}/common/maximum.d.ts +0 -0
  640. package/lib/{decorators → types/decorators}/common/minLength.d.ts +0 -0
  641. package/lib/{decorators → types/decorators}/common/minimum.d.ts +0 -0
  642. package/lib/{decorators → types/decorators}/common/multipleOf.d.ts +0 -0
  643. package/lib/{decorators → types/decorators}/common/name.d.ts +0 -0
  644. package/lib/{decorators → types/decorators}/common/nullable.d.ts +1 -1
  645. package/lib/{decorators → types/decorators}/common/oneOf.d.ts +0 -0
  646. package/lib/{decorators → types/decorators}/common/optional.d.ts +0 -0
  647. package/lib/{decorators → types/decorators}/common/pattern.d.ts +0 -0
  648. package/lib/{decorators → types/decorators}/common/property.d.ts +1 -0
  649. package/lib/{decorators → types/decorators}/common/readOnly.d.ts +0 -0
  650. package/lib/types/decorators/common/recordOf.d.ts +46 -0
  651. package/lib/{decorators → types/decorators}/common/required.d.ts +0 -0
  652. package/lib/{decorators → types/decorators}/common/requiredGroups.d.ts +1 -1
  653. package/lib/{decorators → types/decorators}/common/schema.d.ts +0 -0
  654. package/lib/{decorators → types/decorators}/common/title.d.ts +0 -0
  655. package/lib/{decorators → types/decorators}/common/writeOnly.d.ts +0 -0
  656. package/lib/{decorators → types/decorators}/config/jsonEntityComponent.d.ts +0 -0
  657. package/lib/{decorators → types/decorators}/generics/genericOf.d.ts +0 -0
  658. package/lib/{decorators → types/decorators}/generics/generics.d.ts +0 -0
  659. package/lib/types/decorators/operations/acceptMime.d.ts +19 -0
  660. package/lib/{decorators → types/decorators}/operations/consumes.d.ts +0 -0
  661. package/lib/{decorators → types/decorators}/operations/contentType.d.ts +0 -0
  662. package/lib/{decorators → types/decorators}/operations/deprecated.d.ts +0 -0
  663. package/lib/{decorators → types/decorators}/operations/header.d.ts +0 -0
  664. package/lib/{decorators → types/decorators}/operations/in.d.ts +1 -1
  665. package/lib/types/decorators/operations/inFile.d.ts +25 -0
  666. package/lib/{decorators → types/decorators}/operations/location.d.ts +0 -0
  667. package/lib/{decorators → types/decorators}/operations/operationId.d.ts +0 -0
  668. package/lib/{decorators → types/decorators}/operations/operationPath.d.ts +1 -11
  669. package/lib/{decorators → types/decorators}/operations/partial.d.ts +0 -0
  670. package/lib/{decorators → types/decorators}/operations/path.d.ts +0 -0
  671. package/lib/{decorators → types/decorators}/operations/produces.d.ts +0 -0
  672. package/lib/{decorators → types/decorators}/operations/redirect.d.ts +0 -0
  673. package/lib/{decorators → types/decorators}/operations/returns.d.ts +16 -1
  674. package/lib/types/decorators/operations/route.d.ts +188 -0
  675. package/lib/{decorators → types/decorators}/operations/security.d.ts +0 -0
  676. package/lib/{decorators → types/decorators}/operations/status.d.ts +0 -0
  677. package/lib/{decorators → types/decorators}/operations/summary.d.ts +0 -0
  678. package/lib/{decorators → types/decorators}/operations/tags.d.ts +0 -0
  679. package/lib/types/decorators/operations/view.d.ts +23 -0
  680. package/lib/{domain → types/domain}/DecoratorContext.d.ts +7 -2
  681. package/lib/{domain → types/domain}/JsonAliasMap.d.ts +0 -0
  682. package/lib/types/domain/JsonClassStore.d.ts +12 -0
  683. package/lib/types/domain/JsonEntityStore.d.ts +136 -0
  684. package/lib/{domain → types/domain}/JsonFormatTypes.d.ts +0 -0
  685. package/lib/{domain → types/domain}/JsonLazyRef.d.ts +0 -0
  686. package/lib/{domain → types/domain}/JsonMap.d.ts +1 -1
  687. package/lib/types/domain/JsonMethodStore.d.ts +89 -0
  688. package/lib/{domain → types/domain}/JsonOperation.d.ts +3 -1
  689. package/lib/types/domain/JsonOperationPathsMap.d.ts +7 -0
  690. package/lib/types/domain/JsonOperationRoute.d.ts +26 -0
  691. package/lib/{domain → types/domain}/JsonParameter.d.ts +5 -2
  692. package/lib/types/domain/JsonParameterStore.d.ts +52 -0
  693. package/lib/{domain → types/domain}/JsonParameterTypes.d.ts +0 -0
  694. package/lib/types/domain/JsonPropertyStore.d.ts +30 -0
  695. package/lib/{domain → types/domain}/JsonRequestBody.d.ts +0 -0
  696. package/lib/{domain → types/domain}/JsonResponse.d.ts +2 -1
  697. package/lib/{domain → types/domain}/JsonSchema.d.ts +8 -14
  698. package/lib/{domain → types/domain}/SpecTypes.d.ts +0 -0
  699. package/lib/{hooks → types/hooks}/alterIgnore.d.ts +0 -0
  700. package/lib/types/hooks/alterOneOf.d.ts +3 -0
  701. package/lib/{hooks → types/hooks}/alterRequiredGroups.d.ts +0 -0
  702. package/lib/types/index.d.ts +150 -0
  703. package/lib/{interfaces → types/interfaces}/IgnoreCallback.d.ts +0 -0
  704. package/lib/{interfaces → types/interfaces}/JsonHookContext.d.ts +0 -0
  705. package/lib/{interfaces → types/interfaces}/JsonOpenSpec.d.ts +0 -0
  706. package/lib/{interfaces → types/interfaces}/JsonSchemaOptions.d.ts +0 -0
  707. package/lib/{registries → types/registries}/JsonSchemaMapperContainer.d.ts +3 -2
  708. package/lib/{utils → types/utils}/buildPath.d.ts +0 -0
  709. package/lib/{utils → types/utils}/concatParameters.d.ts +0 -0
  710. package/lib/types/utils/concatPath.d.ts +1 -0
  711. package/lib/{utils → types/utils}/defineStatusModel.d.ts +0 -0
  712. package/lib/{utils → types/utils}/from.d.ts +0 -0
  713. package/lib/types/utils/generateSpec.d.ts +16 -0
  714. package/lib/{utils → types/utils}/generics.d.ts +1 -1
  715. package/lib/{utils → types/utils}/getComputedType.d.ts +0 -0
  716. package/lib/{utils → types/utils}/getInheritedStores.d.ts +2 -2
  717. package/lib/types/utils/getJsonEntityStore.d.ts +15 -0
  718. package/lib/{utils → types/utils}/getJsonPathParameters.d.ts +0 -0
  719. package/lib/types/utils/getJsonSchema.d.ts +14 -0
  720. package/lib/{utils → types/utils}/getJsonType.d.ts +0 -0
  721. package/lib/types/utils/getOperationsRoutes.d.ts +8 -0
  722. package/lib/types/utils/getOperationsStores.d.ts +6 -0
  723. package/lib/types/utils/getPropertiesStores.d.ts +20 -0
  724. package/lib/{utils → types/utils}/getRequiredProperties.d.ts +0 -0
  725. package/lib/types/utils/getSpec.d.ts +30 -0
  726. package/lib/types/utils/getSpecType.d.ts +12 -0
  727. package/lib/{utils → types/utils}/isSuccessStatus.d.ts +0 -0
  728. package/lib/{utils → types/utils}/mapHeaders.d.ts +0 -0
  729. package/lib/{utils → types/utils}/mapNullableType.d.ts +1 -1
  730. package/lib/types/utils/mapOpenSpec.d.ts +10 -0
  731. package/lib/types/utils/mapOpenSpec2.d.ts +9 -0
  732. package/lib/types/utils/mapOpenSpec3.d.ts +8 -0
  733. package/lib/types/utils/mapOpenSpecInfo.d.ts +6 -0
  734. package/lib/types/utils/mapRouteOptions.d.ts +5 -0
  735. package/lib/{utils → types/utils}/matchGroups.d.ts +0 -0
  736. package/lib/{utils → types/utils}/mergeOperation.d.ts +0 -0
  737. package/lib/{utils → types/utils}/mergeSpec.d.ts +0 -0
  738. package/lib/{utils → types/utils}/operationIdFormatter.d.ts +0 -0
  739. package/lib/types/utils/ref.d.ts +14 -0
  740. package/lib/types/utils/serializeEnumValues.d.ts +5 -0
  741. package/lib/{utils → types/utils}/toJsonMapCollection.d.ts +0 -0
  742. package/lib/{utils → types/utils}/toJsonRegex.d.ts +0 -0
  743. package/lib/types/utils/transformToOS2.d.ts +25 -0
  744. package/package.json +43 -21
  745. package/readme.md +1 -0
  746. package/tsconfig.compile.esm.json +13 -0
  747. package/lib/components/index.d.ts +0 -9
  748. package/lib/components/lazyRefMapper.d.ts +0 -19
  749. package/lib/constants/httpStatusMessages.d.ts +0 -5
  750. package/lib/decorators/index.d.ts +0 -64
  751. package/lib/domain/JsonEntityStore.d.ts +0 -94
  752. package/lib/domain/index.d.ts +0 -11
  753. package/lib/index.d.ts +0 -16
  754. package/lib/index.js +0 -7632
  755. package/lib/index.js.map +0 -1
  756. package/lib/index.modern.js +0 -7499
  757. package/lib/index.modern.js.map +0 -1
  758. package/lib/interfaces/index.d.ts +0 -4
  759. package/lib/registries/JsonEntitiesContainer.d.ts +0 -6
  760. package/lib/utils/getJsonEntityStore.d.ts +0 -6
  761. package/lib/utils/getJsonSchema.d.ts +0 -5
  762. package/lib/utils/getOperationsStores.d.ts +0 -6
  763. package/lib/utils/getPropertiesStores.d.ts +0 -20
  764. package/lib/utils/getSpec.d.ts +0 -49
  765. package/lib/utils/isJsonClass.d.ts +0 -4
  766. package/lib/utils/mergeSpec.benchmark.d.ts +0 -1
  767. package/lib/utils/ref.d.ts +0 -46
@@ -0,0 +1,504 @@
1
+ "use strict";
2
+ import { cleanObject } from "@tsed/core";
3
+ const HTTP_METHODS = ["get", "put", "post", "delete", "options", "head", "patch", "trace"];
4
+ const SCHEMA_PROPERTIES = [
5
+ "format",
6
+ "minimum",
7
+ "maximum",
8
+ "exclusiveMinimum",
9
+ "exclusiveMaximum",
10
+ "minLength",
11
+ "maxLength",
12
+ "multipleOf",
13
+ "minItems",
14
+ "maxItems",
15
+ "uniqueItems",
16
+ "minProperties",
17
+ "maxProperties",
18
+ "additionalProperties",
19
+ "pattern",
20
+ "enum",
21
+ "default"
22
+ ];
23
+ const ARRAY_PROPERTIES = ["type", "items"];
24
+ const APPLICATION_JSON_REGEX = /^(application\/json|[^;\/ \t]+\/[^;\/ \t]+[+]json)[ \t]*(;.*)?$/;
25
+ const SUPPORTED_MIME_TYPES = {
26
+ APPLICATION_X_WWW_URLENCODED: "application/x-www-form-urlencoded",
27
+ MULTIPART_FORM_DATA: "multipart/form-data"
28
+ };
29
+ function fixRef(ref) {
30
+ return ref.replace("#/components/schemas/", "#/definitions/").replace("#/components/", "#/x-components/");
31
+ }
32
+ function fixRefs(obj) {
33
+ if (Array.isArray(obj)) {
34
+ obj.forEach(fixRefs);
35
+ }
36
+ else if (typeof obj === "object") {
37
+ for (let key in obj) {
38
+ if (key === "$ref") {
39
+ obj.$ref = fixRef(obj.$ref);
40
+ }
41
+ else {
42
+ fixRefs(obj[key]);
43
+ }
44
+ }
45
+ }
46
+ }
47
+ function isJsonMimeType(type) {
48
+ return new RegExp(APPLICATION_JSON_REGEX, "i").test(type);
49
+ }
50
+ function getSupportedMimeTypes(content) {
51
+ const MIME_VALUES = Object.keys(SUPPORTED_MIME_TYPES).map((key) => {
52
+ return SUPPORTED_MIME_TYPES[key];
53
+ });
54
+ return Object.keys(content).filter((key) => {
55
+ return MIME_VALUES.indexOf(key) > -1 || isJsonMimeType(key);
56
+ });
57
+ }
58
+ export function transformSecurity(securitySchemes) {
59
+ function map(security) {
60
+ const { scheme, type, name, bearerFormat, flows, ...props } = security;
61
+ switch (type) {
62
+ case "http":
63
+ if (scheme === "basic") {
64
+ return {
65
+ ...props,
66
+ type: scheme
67
+ };
68
+ }
69
+ if (scheme === "bearer") {
70
+ return {
71
+ ...props,
72
+ type: "apiKey",
73
+ name: "Authorization",
74
+ in: "header"
75
+ };
76
+ }
77
+ break;
78
+ case "oauth2":
79
+ const flowName = Object.keys(flows)[0];
80
+ const flow = flows[flowName];
81
+ let flowType = flowName;
82
+ if (flowType === "clientCredentials") {
83
+ flowType = "application";
84
+ }
85
+ else if (flowType === "authorizationCode") {
86
+ flowType = "accessCode";
87
+ }
88
+ return {
89
+ type,
90
+ flow: flowType,
91
+ authorizationUrl: flow.authorizationUrl,
92
+ tokenUrl: flow.tokenUrl,
93
+ scopes: flow.scopes
94
+ };
95
+ }
96
+ }
97
+ return Object.entries(securitySchemes).reduce((securityDefinitions, [key, security]) => {
98
+ return {
99
+ ...securityDefinitions,
100
+ [key]: map(security)
101
+ };
102
+ }, {});
103
+ }
104
+ export function transformInformation(server) {
105
+ let serverUrl = server.url;
106
+ const variables = server["variables"] || {};
107
+ for (const variable in variables) {
108
+ const variableObject = variables[variable] || {};
109
+ if (variableObject["default"]) {
110
+ const re = RegExp(`{${variable}}`, "g");
111
+ serverUrl = serverUrl.replace(re, variableObject["default"]);
112
+ }
113
+ }
114
+ const url = new URL(serverUrl);
115
+ return {
116
+ host: url.host ? url.host : undefined,
117
+ basePath: url.pathname,
118
+ schemes: url.protocol !== null ? [url.protocol.substring(0, url.protocol.length - 1)] : undefined
119
+ };
120
+ }
121
+ export class Converter {
122
+ constructor(spec) {
123
+ this.spec = JSON.parse(JSON.stringify(spec));
124
+ }
125
+ convertInfos() {
126
+ const server = this.spec.servers && this.spec.servers[0];
127
+ if (server) {
128
+ return transformInformation(server);
129
+ }
130
+ return {};
131
+ }
132
+ resolveReference(base, obj, shouldClone) {
133
+ if (!obj || !obj.$ref) {
134
+ return obj;
135
+ }
136
+ const ref = obj.$ref;
137
+ if (ref.startsWith("#")) {
138
+ const keys = ref.split("/").map((k) => k.replace(/~1/g, "/").replace(/~0/g, "~"));
139
+ keys.shift();
140
+ let cur = base;
141
+ keys.forEach((k) => {
142
+ cur = cur[k];
143
+ });
144
+ return shouldClone ? JSON.parse(JSON.stringify(cur)) : cur;
145
+ }
146
+ }
147
+ convert() {
148
+ const spec = {
149
+ swagger: "2.0",
150
+ ...this.convertInfos(),
151
+ paths: this.spec.paths ? this.convertOperations(this.spec.paths, this.spec) : undefined
152
+ };
153
+ if (this.spec.components) {
154
+ this.convertSchemas();
155
+ this.convertSecurityDefinitions();
156
+ this.spec["x-components"] = this.spec.components;
157
+ delete this.spec.components;
158
+ fixRefs(this.spec);
159
+ }
160
+ delete this.spec.servers;
161
+ delete this.spec.openapi;
162
+ delete this.spec["x-components"];
163
+ return cleanObject({
164
+ ...spec,
165
+ ...this.spec
166
+ });
167
+ }
168
+ convertOperations(paths, spec) {
169
+ return Object.entries(paths).reduce((paths, [path, operation]) => {
170
+ const pathObject = (paths[path] = this.resolveReference({ ...spec, paths }, operation, true));
171
+ this.convertParameters(pathObject); // converts common parameters
172
+ Object.keys(pathObject).forEach((method) => {
173
+ if (HTTP_METHODS.indexOf(method) >= 0) {
174
+ const operation = (pathObject[method] = this.resolveReference({ ...spec, paths }, pathObject[method], true));
175
+ this.convertOperationParameters(operation);
176
+ this.convertResponses(operation);
177
+ }
178
+ });
179
+ return paths;
180
+ }, paths);
181
+ }
182
+ convertOperationParameters(operation) {
183
+ let content, contentKey, mediaRanges, mediaTypes;
184
+ operation.parameters = operation.parameters || [];
185
+ if (operation.requestBody) {
186
+ let param = this.resolveReference(this.spec, operation.requestBody, true);
187
+ // fixing external $ref in body
188
+ if (operation.requestBody.content) {
189
+ const type = getSupportedMimeTypes(operation.requestBody.content)[0];
190
+ const structuredObj = { content: {} };
191
+ const data = operation.requestBody.content[type];
192
+ if (data && data.schema && data.schema.$ref && !data.schema.$ref.startsWith("#")) {
193
+ param = this.resolveReference(this.spec, data.schema, true);
194
+ structuredObj["content"][`${type}`] = { schema: param };
195
+ param = structuredObj;
196
+ }
197
+ }
198
+ param.name = "body";
199
+ content = param.content;
200
+ if (content && Object.keys(content).length) {
201
+ mediaRanges = Object.keys(content).filter((mediaRange) => mediaRange.indexOf("/") > 0);
202
+ mediaTypes = mediaRanges.filter((range) => range.indexOf("*") < 0);
203
+ contentKey = getSupportedMimeTypes(content)[0];
204
+ delete param.content;
205
+ if ([SUPPORTED_MIME_TYPES.APPLICATION_X_WWW_URLENCODED, SUPPORTED_MIME_TYPES.MULTIPART_FORM_DATA].includes(contentKey)) {
206
+ operation.consumes = mediaTypes;
207
+ param.in = "formData";
208
+ param.schema = content[contentKey].schema;
209
+ param.schema = this.resolveReference(this.spec, param.schema, true);
210
+ if (param.schema.type === "object" && param.schema.properties) {
211
+ const required = param.schema.required || [];
212
+ Object.keys(param.schema.properties).forEach((name) => {
213
+ var _a;
214
+ const schema = param.schema.properties[name];
215
+ // readOnly properties should not be sent in requests
216
+ if (!schema.readOnly) {
217
+ const formDataParam = {
218
+ name,
219
+ in: "formData",
220
+ schema
221
+ };
222
+ if (required.indexOf(name) >= 0) {
223
+ formDataParam.required = true;
224
+ }
225
+ (_a = operation.parameters) === null || _a === void 0 ? void 0 : _a.push(formDataParam);
226
+ }
227
+ });
228
+ }
229
+ else {
230
+ operation.parameters.push(param);
231
+ }
232
+ }
233
+ else if (contentKey) {
234
+ operation.consumes = mediaTypes;
235
+ param.in = "body";
236
+ param.schema = content[contentKey].schema;
237
+ operation.parameters.push(param);
238
+ }
239
+ else if (mediaRanges) {
240
+ operation.consumes = mediaTypes || ["application/octet-stream"];
241
+ param.in = "body";
242
+ param.name = param.name || "file";
243
+ delete param.type;
244
+ param.schema = content[mediaRanges[0]].schema || {
245
+ type: "string",
246
+ format: "binary"
247
+ };
248
+ operation.parameters.push(param);
249
+ }
250
+ if (param.schema) {
251
+ this.convertSchema(param.schema, "request");
252
+ }
253
+ }
254
+ delete operation.requestBody;
255
+ }
256
+ this.convertParameters(operation);
257
+ }
258
+ convertParameters(obj) {
259
+ if (obj.parameters === undefined) {
260
+ return;
261
+ }
262
+ obj.parameters = obj.parameters || [];
263
+ (obj.parameters || []).forEach((param, i) => {
264
+ param = obj.parameters[i] = this.resolveReference(this.spec, param, false);
265
+ if (param.in !== "body") {
266
+ this.copySchemaProperties(param, SCHEMA_PROPERTIES);
267
+ this.copySchemaProperties(param, ARRAY_PROPERTIES);
268
+ this.copySchemaXProperties(param);
269
+ if (!param.description) {
270
+ const schema = this.resolveReference(this.spec, param.schema, false);
271
+ if (!!schema && schema.description) {
272
+ param.description = schema.description;
273
+ }
274
+ }
275
+ if (param.example !== undefined) {
276
+ param["x-example"] = param.example;
277
+ }
278
+ delete param.schema;
279
+ delete param.allowReserved;
280
+ delete param.example;
281
+ }
282
+ if (param.type === "array") {
283
+ let style = param.style || (param.in === "query" || param.in === "cookie" ? "form" : "simple");
284
+ switch (style) {
285
+ case "matrix":
286
+ param.collectionFormat = param.explode ? undefined : "csv";
287
+ break;
288
+ case "label":
289
+ param.collectionFormat = undefined;
290
+ break;
291
+ case "simple":
292
+ param.collectionFormat = "csv";
293
+ break;
294
+ case "spaceDelimited":
295
+ param.collectionFormat = "ssv";
296
+ break;
297
+ case "pipeDelimited":
298
+ param.collectionFormat = "pipes";
299
+ break;
300
+ case "deepOpbject":
301
+ param.collectionFormat = "multi";
302
+ break;
303
+ case "form":
304
+ param.collectionFormat = param.explode === false ? "csv" : "multi";
305
+ break;
306
+ }
307
+ }
308
+ delete param.style;
309
+ delete param.explode;
310
+ });
311
+ }
312
+ copySchemaProperties(obj, props) {
313
+ let schema = this.resolveReference(this.spec, obj.schema, true);
314
+ if (!schema) {
315
+ return;
316
+ }
317
+ props.forEach((prop) => {
318
+ const value = schema[prop];
319
+ if (prop === "additionalProperties" && typeof value === "boolean") {
320
+ return;
321
+ }
322
+ if (value !== undefined) {
323
+ obj[prop] = value;
324
+ }
325
+ });
326
+ }
327
+ copySchemaXProperties(obj) {
328
+ let schema = this.resolveReference(this.spec, obj.schema, true);
329
+ if (!schema) {
330
+ return;
331
+ }
332
+ Object.keys(schema).forEach((propName) => {
333
+ if (Reflect.hasOwnProperty.call(schema, propName) && !Reflect.hasOwnProperty.call(obj, propName) && propName.startsWith("x-")) {
334
+ obj[propName] = schema[propName];
335
+ }
336
+ });
337
+ }
338
+ convertResponses(operation) {
339
+ // var anySchema, code, content, jsonSchema, mediaRange, mediaType, response, resolved, headers
340
+ Object.keys(operation.responses || {}).forEach((code) => {
341
+ const response = (operation.responses[code] = this.resolveReference(this.spec, operation.responses[code], true));
342
+ if (response.content) {
343
+ let anySchema = null;
344
+ let jsonSchema = null;
345
+ Object.keys(response.content).forEach((mediaRange) => {
346
+ // produces and examples only allow media types, not ranges
347
+ // use application/octet-stream as a catch-all type
348
+ const mediaType = mediaRange.indexOf("*") < 0 ? mediaRange : "application/octet-stream";
349
+ if (!operation.produces) {
350
+ operation.produces = [mediaType];
351
+ }
352
+ else if (operation.produces.indexOf(mediaType) < 0) {
353
+ operation.produces.push(mediaType);
354
+ }
355
+ const content = response.content[mediaRange];
356
+ anySchema = anySchema || content.schema;
357
+ if (!jsonSchema && isJsonMimeType(mediaType)) {
358
+ jsonSchema = content.schema;
359
+ }
360
+ if (content.example) {
361
+ response.examples = response.examples || {};
362
+ response.examples[mediaType] = content.example;
363
+ }
364
+ });
365
+ if (anySchema) {
366
+ response.schema = jsonSchema || anySchema;
367
+ const resolved = this.resolveReference(this.spec, response.schema, true);
368
+ if (resolved && response.schema.$ref && !response.schema.$ref.startsWith("#")) {
369
+ response.schema = resolved;
370
+ }
371
+ this.convertSchema(response.schema, "response");
372
+ }
373
+ }
374
+ Object.keys(response.headers || {}).forEach((header) => {
375
+ // Always resolve headers when converting to v2.
376
+ const resolved = this.resolveReference(this.spec, response.headers[header], true);
377
+ // Headers should be converted like parameters.
378
+ if (resolved.schema) {
379
+ resolved.type = resolved.schema.type;
380
+ resolved.format = resolved.schema.format;
381
+ delete resolved.schema;
382
+ }
383
+ response.headers[header] = resolved;
384
+ });
385
+ delete response.content;
386
+ });
387
+ }
388
+ convertSchema(def, operationDirection) {
389
+ if (def.oneOf) {
390
+ delete def.oneOf;
391
+ if (def.discriminator) {
392
+ delete def.discriminator;
393
+ }
394
+ }
395
+ if (def.anyOf) {
396
+ delete def.anyOf;
397
+ if (def.discriminator) {
398
+ delete def.discriminator;
399
+ }
400
+ }
401
+ if (def.allOf) {
402
+ for (const i in def.allOf) {
403
+ this.convertSchema(def.allOf[i], operationDirection);
404
+ }
405
+ }
406
+ if (def.discriminator) {
407
+ if (def.discriminator.mapping) {
408
+ this.convertDiscriminatorMapping(def.discriminator.mapping);
409
+ }
410
+ def.discriminator = def.discriminator.propertyName;
411
+ }
412
+ switch (def.type) {
413
+ case "object":
414
+ if (def.properties) {
415
+ Object.keys(def.properties).forEach((propName) => {
416
+ if (def.properties[propName].writeOnly === true && operationDirection === "response") {
417
+ delete def.properties[propName];
418
+ }
419
+ else {
420
+ this.convertSchema(def.properties[propName], operationDirection);
421
+ delete def.properties[propName].writeOnly;
422
+ }
423
+ });
424
+ }
425
+ break;
426
+ case "array":
427
+ if (def.items) {
428
+ this.convertSchema(def.items, operationDirection);
429
+ }
430
+ }
431
+ if (def.nullable) {
432
+ def["x-nullable"] = true;
433
+ delete def.nullable;
434
+ }
435
+ // OpenAPI 3 has boolean "deprecated" on Schema, OpenAPI 2 does not
436
+ // Convert to x-deprecated for Autorest (and perhaps others)
437
+ if (def["deprecated"] !== undefined) {
438
+ // Move to x-deprecated, unless it is already defined
439
+ if (def["x-deprecated"] === undefined) {
440
+ def["x-deprecated"] = def.deprecated;
441
+ }
442
+ delete def.deprecated;
443
+ }
444
+ }
445
+ convertSchemas() {
446
+ this.spec.definitions = this.spec.components.schemas;
447
+ Object.keys(this.spec.definitions || {}).forEach((defName) => {
448
+ this.convertSchema(this.spec.definitions[defName]);
449
+ });
450
+ delete this.spec.components.schemas;
451
+ }
452
+ convertDiscriminatorMapping(mapping) {
453
+ Object.keys(mapping).forEach((payload) => {
454
+ const schemaNameOrRef = mapping[payload];
455
+ if (typeof schemaNameOrRef !== "string") {
456
+ console.warn(`Ignoring ${schemaNameOrRef} for ${payload} in discriminator.mapping.`);
457
+ return;
458
+ }
459
+ // payload may be a schema name or JSON Reference string.
460
+ // OAS3 spec limits schema names to ^[a-zA-Z0-9._-]+$
461
+ // Note: Valid schema name could be JSON file name without extension.
462
+ // Prefer schema name, with file name as fallback.
463
+ let schema;
464
+ if (/^[a-zA-Z0-9._-]+$/.test(schemaNameOrRef)) {
465
+ try {
466
+ schema = this.resolveReference(this.spec, { $ref: `#/components/schemas/${schemaNameOrRef}` }, false);
467
+ }
468
+ catch (err) {
469
+ console.debug(`Error resolving ${schemaNameOrRef} for ${payload} as schema name in discriminator.mapping: ${err}`);
470
+ }
471
+ }
472
+ // schemaNameRef is not a schema name. Try to resolve as JSON Ref.
473
+ if (!schema) {
474
+ try {
475
+ schema = this.resolveReference(this.spec, { $ref: schemaNameOrRef }, false);
476
+ }
477
+ catch (err) {
478
+ console.debug(`Error resolving ${schemaNameOrRef} for ${payload} in discriminator.mapping: ${err}`);
479
+ }
480
+ }
481
+ if (schema) {
482
+ // Swagger Codegen + OpenAPI Generator extension
483
+ // https://github.com/swagger-api/swagger-codegen/pull/4252
484
+ schema["x-discriminator-value"] = payload;
485
+ // AutoRest extension
486
+ // https://github.com/Azure/autorest/pull/474
487
+ schema["x-ms-discriminator-value"] = payload;
488
+ }
489
+ else {
490
+ console.warn(`Unable to resolve ${schemaNameOrRef} for ${payload} in discriminator.mapping.`);
491
+ }
492
+ });
493
+ }
494
+ convertSecurityDefinitions() {
495
+ if (this.spec.components.securitySchemes) {
496
+ this.spec.securityDefinitions = transformSecurity(this.spec.components.securitySchemes);
497
+ delete this.spec.components.securitySchemes;
498
+ }
499
+ }
500
+ }
501
+ export function transformToOS2(spec) {
502
+ return new Converter(spec).convert();
503
+ }
504
+ //# sourceMappingURL=transformToOS2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformToOS2.js","sourceRoot":"","sources":["../../../src/utils/transformToOS2.ts"],"names":[],"mappings":"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","sourcesContent":["\"use strict\";\nimport {OpenSpec2, OpenSpec3, OS3Operation} from \"@tsed/openspec\";\nimport {cleanObject} from \"@tsed/core\";\n\nconst HTTP_METHODS = [\"get\", \"put\", \"post\", \"delete\", \"options\", \"head\", \"patch\", \"trace\"];\nconst SCHEMA_PROPERTIES = [\n \"format\",\n \"minimum\",\n \"maximum\",\n \"exclusiveMinimum\",\n \"exclusiveMaximum\",\n \"minLength\",\n \"maxLength\",\n \"multipleOf\",\n \"minItems\",\n \"maxItems\",\n \"uniqueItems\",\n \"minProperties\",\n \"maxProperties\",\n \"additionalProperties\",\n \"pattern\",\n \"enum\",\n \"default\"\n];\nconst ARRAY_PROPERTIES = [\"type\", \"items\"];\n\nconst APPLICATION_JSON_REGEX = /^(application\\/json|[^;\\/ \\t]+\\/[^;\\/ \\t]+[+]json)[ \\t]*(;.*)?$/;\nconst SUPPORTED_MIME_TYPES: Record<string, any> = {\n APPLICATION_X_WWW_URLENCODED: \"application/x-www-form-urlencoded\",\n MULTIPART_FORM_DATA: \"multipart/form-data\"\n};\n\nfunction fixRef(ref: string) {\n return ref.replace(\"#/components/schemas/\", \"#/definitions/\").replace(\"#/components/\", \"#/x-components/\");\n}\n\nfunction fixRefs(obj: any) {\n if (Array.isArray(obj)) {\n obj.forEach(fixRefs);\n } else if (typeof obj === \"object\") {\n for (let key in obj) {\n if (key === \"$ref\") {\n obj.$ref = fixRef(obj.$ref);\n } else {\n fixRefs(obj[key]);\n }\n }\n }\n}\n\nfunction isJsonMimeType(type: string) {\n return new RegExp(APPLICATION_JSON_REGEX, \"i\").test(type);\n}\n\nfunction getSupportedMimeTypes(content: any) {\n const MIME_VALUES = Object.keys(SUPPORTED_MIME_TYPES).map((key) => {\n return SUPPORTED_MIME_TYPES[key];\n });\n return Object.keys(content).filter((key) => {\n return MIME_VALUES.indexOf(key) > -1 || isJsonMimeType(key);\n });\n}\n\nexport function transformSecurity(securitySchemes: any) {\n function map(security: any) {\n const {scheme, type, name, bearerFormat, flows, ...props} = security;\n\n switch (type) {\n case \"http\":\n if (scheme === \"basic\") {\n return {\n ...props,\n type: scheme\n };\n }\n\n if (scheme === \"bearer\") {\n return {\n ...props,\n type: \"apiKey\",\n name: \"Authorization\",\n in: \"header\"\n };\n }\n break;\n case \"oauth2\":\n const flowName = Object.keys(flows)[0];\n const flow = flows[flowName];\n let flowType = flowName;\n\n if (flowType === \"clientCredentials\") {\n flowType = \"application\";\n } else if (flowType === \"authorizationCode\") {\n flowType = \"accessCode\";\n }\n\n return {\n type,\n flow: flowType,\n authorizationUrl: flow.authorizationUrl,\n tokenUrl: flow.tokenUrl,\n scopes: flow.scopes\n };\n }\n }\n\n return Object.entries(securitySchemes).reduce((securityDefinitions, [key, security]) => {\n return {\n ...securityDefinitions,\n [key]: map(security)\n };\n }, {});\n}\n\nexport function transformInformation(server: any) {\n let serverUrl = server.url;\n\n const variables = server[\"variables\"] || {};\n\n for (const variable in variables) {\n const variableObject = variables[variable] || {};\n if (variableObject[\"default\"]) {\n const re = RegExp(`{${variable}}`, \"g\");\n serverUrl = serverUrl.replace(re, variableObject[\"default\"]);\n }\n }\n\n const url = new URL(serverUrl);\n\n return {\n host: url.host ? url.host : undefined,\n basePath: url.pathname,\n schemes: url.protocol !== null ? [url.protocol.substring(0, url.protocol.length - 1)] : undefined\n };\n}\n\nexport class Converter {\n private spec: any;\n\n constructor(spec: Partial<OpenSpec3>) {\n this.spec = JSON.parse(JSON.stringify(spec));\n }\n\n convertInfos() {\n const server = this.spec.servers && this.spec.servers[0];\n\n if (server) {\n return transformInformation(server);\n }\n\n return {};\n }\n\n resolveReference(base: any, obj: any, shouldClone: boolean) {\n if (!obj || !obj.$ref) {\n return obj;\n }\n\n const ref: string = obj.$ref;\n\n if (ref.startsWith(\"#\")) {\n const keys = ref.split(\"/\").map((k) => k.replace(/~1/g, \"/\").replace(/~0/g, \"~\"));\n keys.shift();\n\n let cur = base;\n keys.forEach((k) => {\n cur = cur[k];\n });\n\n return shouldClone ? JSON.parse(JSON.stringify(cur)) : cur;\n }\n }\n\n convert() {\n const spec = {\n swagger: \"2.0\",\n ...this.convertInfos(),\n paths: this.spec.paths ? this.convertOperations(this.spec.paths, this.spec) : undefined\n };\n\n if (this.spec.components) {\n this.convertSchemas();\n this.convertSecurityDefinitions();\n\n this.spec[\"x-components\"] = this.spec.components;\n delete this.spec.components;\n\n fixRefs(this.spec);\n }\n\n delete this.spec.servers;\n delete this.spec.openapi;\n delete this.spec[\"x-components\"];\n\n return cleanObject({\n ...spec,\n ...this.spec\n });\n }\n\n convertOperations(paths: any, spec: any) {\n return Object.entries(paths).reduce((paths, [path, operation]) => {\n const pathObject = (paths[path] = this.resolveReference({...spec, paths}, operation, true));\n\n this.convertParameters(pathObject); // converts common parameters\n\n Object.keys(pathObject).forEach((method) => {\n if (HTTP_METHODS.indexOf(method) >= 0) {\n const operation = (pathObject[method] = this.resolveReference({...spec, paths}, pathObject[method], true));\n\n this.convertOperationParameters(operation);\n this.convertResponses(operation);\n }\n });\n\n return paths;\n }, paths);\n }\n\n convertOperationParameters(operation: OS3Operation) {\n let content, contentKey, mediaRanges, mediaTypes;\n operation.parameters = operation.parameters || [];\n\n if (operation.requestBody) {\n let param = this.resolveReference(this.spec, operation.requestBody, true);\n\n // fixing external $ref in body\n if (operation.requestBody.content) {\n const type = getSupportedMimeTypes(operation.requestBody.content)[0];\n const structuredObj: any = {content: {}};\n const data = operation.requestBody.content[type];\n\n if (data && data.schema && data.schema.$ref && !data.schema.$ref.startsWith(\"#\")) {\n param = this.resolveReference(this.spec, data.schema, true);\n structuredObj[\"content\"][`${type}`] = {schema: param};\n param = structuredObj;\n }\n }\n\n param.name = \"body\";\n content = param.content;\n\n if (content && Object.keys(content).length) {\n mediaRanges = Object.keys(content).filter((mediaRange) => mediaRange.indexOf(\"/\") > 0);\n mediaTypes = mediaRanges.filter((range) => range.indexOf(\"*\") < 0);\n contentKey = getSupportedMimeTypes(content)[0];\n\n delete param.content;\n\n if ([SUPPORTED_MIME_TYPES.APPLICATION_X_WWW_URLENCODED, SUPPORTED_MIME_TYPES.MULTIPART_FORM_DATA].includes(contentKey)) {\n (operation as any).consumes = mediaTypes;\n\n param.in = \"formData\";\n param.schema = content[contentKey].schema;\n param.schema = this.resolveReference(this.spec, param.schema, true);\n\n if (param.schema.type === \"object\" && param.schema.properties) {\n const required = param.schema.required || [];\n\n Object.keys(param.schema.properties).forEach((name) => {\n const schema = param.schema.properties[name];\n\n // readOnly properties should not be sent in requests\n if (!schema.readOnly) {\n const formDataParam: any = {\n name,\n in: \"formData\",\n schema\n };\n if (required.indexOf(name) >= 0) {\n formDataParam.required = true;\n }\n\n operation.parameters?.push(formDataParam);\n }\n });\n } else {\n operation.parameters.push(param);\n }\n } else if (contentKey) {\n (operation as any).consumes = mediaTypes;\n param.in = \"body\";\n param.schema = content[contentKey].schema;\n operation.parameters.push(param);\n } else if (mediaRanges) {\n (operation as any).consumes = mediaTypes || [\"application/octet-stream\"];\n param.in = \"body\";\n param.name = param.name || \"file\";\n delete param.type;\n\n param.schema = content[mediaRanges[0]].schema || {\n type: \"string\",\n format: \"binary\"\n };\n\n operation.parameters.push(param);\n }\n\n if (param.schema) {\n this.convertSchema(param.schema, \"request\");\n }\n }\n\n delete operation.requestBody;\n }\n this.convertParameters(operation);\n }\n\n convertParameters(obj: any) {\n if (obj.parameters === undefined) {\n return;\n }\n\n obj.parameters = obj.parameters || [];\n\n (obj.parameters || []).forEach((param: any, i: number) => {\n param = obj.parameters[i] = this.resolveReference(this.spec, param, false);\n\n if (param.in !== \"body\") {\n this.copySchemaProperties(param, SCHEMA_PROPERTIES);\n this.copySchemaProperties(param, ARRAY_PROPERTIES);\n this.copySchemaXProperties(param);\n\n if (!param.description) {\n const schema = this.resolveReference(this.spec, param.schema, false);\n if (!!schema && schema.description) {\n param.description = schema.description;\n }\n }\n\n if (param.example !== undefined) {\n param[\"x-example\"] = param.example;\n }\n\n delete param.schema;\n delete param.allowReserved;\n delete param.example;\n }\n\n if (param.type === \"array\") {\n let style = param.style || (param.in === \"query\" || param.in === \"cookie\" ? \"form\" : \"simple\");\n\n switch (style) {\n case \"matrix\":\n param.collectionFormat = param.explode ? undefined : \"csv\";\n break;\n case \"label\":\n param.collectionFormat = undefined;\n break;\n case \"simple\":\n param.collectionFormat = \"csv\";\n break;\n case \"spaceDelimited\":\n param.collectionFormat = \"ssv\";\n break;\n case \"pipeDelimited\":\n param.collectionFormat = \"pipes\";\n break;\n case \"deepOpbject\":\n param.collectionFormat = \"multi\";\n break;\n case \"form\":\n param.collectionFormat = param.explode === false ? \"csv\" : \"multi\";\n break;\n }\n }\n\n delete param.style;\n delete param.explode;\n });\n }\n\n copySchemaProperties(obj: any, props: any[]) {\n let schema = this.resolveReference(this.spec, obj.schema, true);\n\n if (!schema) {\n return;\n }\n\n props.forEach((prop) => {\n const value = schema[prop];\n\n if (prop === \"additionalProperties\" && typeof value === \"boolean\") {\n return;\n }\n\n if (value !== undefined) {\n obj[prop] = value;\n }\n });\n }\n\n copySchemaXProperties(obj: Record<string, any>) {\n let schema = this.resolveReference(this.spec, obj.schema, true);\n if (!schema) {\n return;\n }\n\n Object.keys(schema).forEach((propName) => {\n if (Reflect.hasOwnProperty.call(schema, propName) && !Reflect.hasOwnProperty.call(obj, propName) && propName.startsWith(\"x-\")) {\n obj[propName] = schema[propName];\n }\n });\n }\n\n convertResponses(operation: Record<string, any>) {\n // var anySchema, code, content, jsonSchema, mediaRange, mediaType, response, resolved, headers\n\n Object.keys(operation.responses || {}).forEach((code) => {\n const response = (operation.responses[code] = this.resolveReference(this.spec, operation.responses[code], true));\n\n if (response.content) {\n let anySchema: any = null;\n let jsonSchema: any = null;\n\n Object.keys(response.content).forEach((mediaRange) => {\n // produces and examples only allow media types, not ranges\n // use application/octet-stream as a catch-all type\n const mediaType = mediaRange.indexOf(\"*\") < 0 ? mediaRange : \"application/octet-stream\";\n\n if (!operation.produces) {\n operation.produces = [mediaType];\n } else if (operation.produces.indexOf(mediaType) < 0) {\n operation.produces.push(mediaType);\n }\n\n const content = response.content[mediaRange];\n anySchema = anySchema || content.schema;\n\n if (!jsonSchema && isJsonMimeType(mediaType)) {\n jsonSchema = content.schema;\n }\n\n if (content.example) {\n response.examples = response.examples || {};\n response.examples[mediaType] = content.example;\n }\n });\n\n if (anySchema) {\n response.schema = jsonSchema || anySchema;\n const resolved = this.resolveReference(this.spec, response.schema, true);\n\n if (resolved && response.schema.$ref && !response.schema.$ref.startsWith(\"#\")) {\n response.schema = resolved;\n }\n\n this.convertSchema(response.schema, \"response\");\n }\n }\n\n Object.keys(response.headers || {}).forEach((header) => {\n // Always resolve headers when converting to v2.\n const resolved = this.resolveReference(this.spec, response.headers[header], true);\n\n // Headers should be converted like parameters.\n if (resolved.schema) {\n resolved.type = resolved.schema.type;\n resolved.format = resolved.schema.format;\n delete resolved.schema;\n }\n\n response.headers[header] = resolved;\n });\n\n delete response.content;\n });\n }\n\n convertSchema(def: any, operationDirection?: any) {\n if (def.oneOf) {\n delete def.oneOf;\n\n if (def.discriminator) {\n delete def.discriminator;\n }\n }\n\n if (def.anyOf) {\n delete def.anyOf;\n\n if (def.discriminator) {\n delete def.discriminator;\n }\n }\n\n if (def.allOf) {\n for (const i in def.allOf) {\n this.convertSchema(def.allOf[i], operationDirection);\n }\n }\n\n if (def.discriminator) {\n if (def.discriminator.mapping) {\n this.convertDiscriminatorMapping(def.discriminator.mapping);\n }\n\n def.discriminator = def.discriminator.propertyName;\n }\n\n switch (def.type) {\n case \"object\":\n if (def.properties) {\n Object.keys(def.properties).forEach((propName) => {\n if (def.properties[propName].writeOnly === true && operationDirection === \"response\") {\n delete def.properties[propName];\n } else {\n this.convertSchema(def.properties[propName], operationDirection);\n delete def.properties[propName].writeOnly;\n }\n });\n }\n break;\n case \"array\":\n if (def.items) {\n this.convertSchema(def.items, operationDirection);\n }\n }\n\n if (def.nullable) {\n def[\"x-nullable\"] = true;\n delete def.nullable;\n }\n\n // OpenAPI 3 has boolean \"deprecated\" on Schema, OpenAPI 2 does not\n // Convert to x-deprecated for Autorest (and perhaps others)\n if (def[\"deprecated\"] !== undefined) {\n // Move to x-deprecated, unless it is already defined\n if (def[\"x-deprecated\"] === undefined) {\n def[\"x-deprecated\"] = def.deprecated;\n }\n delete def.deprecated;\n }\n }\n\n convertSchemas() {\n this.spec.definitions = this.spec.components.schemas;\n\n Object.keys(this.spec.definitions || {}).forEach((defName) => {\n this.convertSchema(this.spec.definitions[defName]);\n });\n\n delete this.spec.components.schemas;\n }\n\n convertDiscriminatorMapping(mapping: any) {\n Object.keys(mapping).forEach((payload) => {\n const schemaNameOrRef = mapping[payload];\n\n if (typeof schemaNameOrRef !== \"string\") {\n console.warn(`Ignoring ${schemaNameOrRef} for ${payload} in discriminator.mapping.`);\n return;\n }\n\n // payload may be a schema name or JSON Reference string.\n // OAS3 spec limits schema names to ^[a-zA-Z0-9._-]+$\n // Note: Valid schema name could be JSON file name without extension.\n // Prefer schema name, with file name as fallback.\n let schema;\n if (/^[a-zA-Z0-9._-]+$/.test(schemaNameOrRef)) {\n try {\n schema = this.resolveReference(this.spec, {$ref: `#/components/schemas/${schemaNameOrRef}`}, false);\n } catch (err) {\n console.debug(`Error resolving ${schemaNameOrRef} for ${payload} as schema name in discriminator.mapping: ${err}`);\n }\n }\n\n // schemaNameRef is not a schema name. Try to resolve as JSON Ref.\n if (!schema) {\n try {\n schema = this.resolveReference(this.spec, {$ref: schemaNameOrRef}, false);\n } catch (err) {\n console.debug(`Error resolving ${schemaNameOrRef} for ${payload} in discriminator.mapping: ${err}`);\n }\n }\n\n if (schema) {\n // Swagger Codegen + OpenAPI Generator extension\n // https://github.com/swagger-api/swagger-codegen/pull/4252\n schema[\"x-discriminator-value\"] = payload;\n\n // AutoRest extension\n // https://github.com/Azure/autorest/pull/474\n schema[\"x-ms-discriminator-value\"] = payload;\n } else {\n console.warn(`Unable to resolve ${schemaNameOrRef} for ${payload} in discriminator.mapping.`);\n }\n });\n }\n\n convertSecurityDefinitions() {\n if (this.spec.components.securitySchemes) {\n this.spec.securityDefinitions = transformSecurity(this.spec.components.securitySchemes);\n delete this.spec.components.securitySchemes;\n }\n }\n}\n\nexport function transformToOS2(spec: any): Partial<OpenSpec2> {\n return new Converter(spec).convert();\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { JsonSchema } from "../domain/JsonSchema";
2
2
  import { JsonSchemaOptions } from "../interfaces/JsonSchemaOptions";
3
- export declare function classMapper(value: JsonSchema, options?: JsonSchemaOptions): any;
3
+ export declare function classMapper(value: JsonSchema, options: JsonSchemaOptions): any;
@@ -2,4 +2,4 @@ import { JsonSchemaOptions } from "../interfaces/JsonSchemaOptions";
2
2
  /**
3
3
  * @ignore
4
4
  */
5
- export declare function inheritedClassMapper(obj: any, { target, ...options }?: JsonSchemaOptions): any;
5
+ export declare function inheritedClassMapper(obj: any, { target, ...options }: JsonSchemaOptions): any;
@@ -0,0 +1,3 @@
1
+ import { JsonLazyRef } from "../domain/JsonLazyRef";
2
+ import { JsonSchemaOptions } from "../interfaces/JsonSchemaOptions";
3
+ export declare function lazyRefMapper(input: JsonLazyRef, options: JsonSchemaOptions): any;
@@ -6,4 +6,4 @@ import { JsonSchemaOptions } from "../interfaces/JsonSchemaOptions";
6
6
  * @param options
7
7
  * @ignore
8
8
  */
9
- export declare function mapMapper(input: Map<string, any>, { ignore, ...options }?: JsonSchemaOptions): any;
9
+ export declare function mapMapper(input: Map<string, any>, { ignore, ...options }: JsonSchemaOptions): any;
@@ -0,0 +1,3 @@
1
+ import type { JsonSchema } from "../domain/JsonSchema";
2
+ import type { JsonSchemaOptions } from "../interfaces/JsonSchemaOptions";
3
+ export declare function ofMapper(input: (any | JsonSchema)[], options: JsonSchemaOptions, parent: JsonSchema): any[];
@@ -0,0 +1,3 @@
1
+ import type { JsonSchema } from "../domain/JsonSchema";
2
+ import type { JsonSchemaOptions } from "../interfaces/JsonSchemaOptions";
3
+ export declare function propertiesMapper(input: any | JsonSchema, options: JsonSchemaOptions, parent: JsonSchema): any;
@@ -1,3 +1,3 @@
1
1
  import { JsonSchema } from "../domain/JsonSchema";
2
2
  import { JsonSchemaOptions } from "../interfaces/JsonSchemaOptions";
3
- export declare function schemaMapper(schema: JsonSchema, options?: JsonSchemaOptions): any;
3
+ export declare function schemaMapper(schema: JsonSchema, options: JsonSchemaOptions): any;
@@ -0,0 +1,12 @@
1
+ export declare const HTTP_METHODS: string[];
2
+ export declare enum OperationMethods {
3
+ ALL = "ALL",
4
+ GET = "GET",
5
+ POST = "POST",
6
+ PUT = "PUT",
7
+ PATCH = "PATCH",
8
+ HEAD = "HEAD",
9
+ DELETE = "DELETE",
10
+ OPTIONS = "OPTIONS",
11
+ CUSTOM = "CUSTOM"
12
+ }