@tsed/schema 8.9.5 → 8.10.0-rc.2

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 (404) hide show
  1. package/lib/browser/components/async-api/channelsMapper.js +51 -0
  2. package/lib/browser/components/async-api/channelsMapper.js.map +1 -0
  3. package/lib/browser/components/async-api/generate.js +15 -0
  4. package/lib/browser/components/async-api/generate.js.map +1 -0
  5. package/lib/browser/components/async-api/messageMapper.js +31 -0
  6. package/lib/browser/components/async-api/messageMapper.js.map +1 -0
  7. package/lib/browser/components/async-api/payloadMapper.js +47 -0
  8. package/lib/browser/components/async-api/payloadMapper.js.map +1 -0
  9. package/lib/browser/components/async-api/responseMapper.js +37 -0
  10. package/lib/browser/components/async-api/responseMapper.js.map +1 -0
  11. package/lib/browser/components/default/anyMapper.js +25 -0
  12. package/lib/browser/components/default/anyMapper.js.map +1 -0
  13. package/lib/browser/components/default/classMapper.js +36 -0
  14. package/lib/browser/components/default/classMapper.js.map +1 -0
  15. package/lib/browser/components/default/discriminatorMappingMapper.js +22 -0
  16. package/lib/browser/components/default/discriminatorMappingMapper.js.map +1 -0
  17. package/lib/browser/components/default/enumsMapper.js +10 -0
  18. package/lib/browser/components/default/enumsMapper.js.map +1 -0
  19. package/lib/browser/components/default/genericsMapper.js +51 -0
  20. package/lib/browser/components/default/genericsMapper.js.map +1 -0
  21. package/lib/browser/components/default/inheritedClassMapper.js +30 -0
  22. package/lib/browser/components/default/inheritedClassMapper.js.map +1 -0
  23. package/lib/browser/components/default/itemMapper.js +9 -0
  24. package/lib/browser/components/default/itemMapper.js.map +1 -0
  25. package/lib/browser/components/default/lazyRefMapper.js +17 -0
  26. package/lib/browser/components/default/lazyRefMapper.js.map +1 -0
  27. package/lib/browser/components/default/mapMapper.js +10 -0
  28. package/lib/browser/components/default/mapMapper.js.map +1 -0
  29. package/lib/browser/components/default/nullableMapper.js +32 -0
  30. package/lib/browser/components/default/nullableMapper.js.map +1 -0
  31. package/lib/browser/components/default/objectMapper.js +24 -0
  32. package/lib/browser/components/default/objectMapper.js.map +1 -0
  33. package/lib/browser/components/default/ofMapper.js +14 -0
  34. package/lib/browser/components/default/ofMapper.js.map +1 -0
  35. package/lib/browser/components/default/propertiesMapper.js +21 -0
  36. package/lib/browser/components/default/propertiesMapper.js.map +1 -0
  37. package/lib/browser/components/default/requiredMapper.js +28 -0
  38. package/lib/browser/components/default/requiredMapper.js.map +1 -0
  39. package/lib/browser/components/default/schemaMapper.js +68 -0
  40. package/lib/browser/components/default/schemaMapper.js.map +1 -0
  41. package/lib/browser/components/index.js +66 -0
  42. package/lib/browser/components/index.js.map +1 -0
  43. package/lib/browser/components/open-spec/discriminatorMappingMapper.js +7 -0
  44. package/lib/browser/components/open-spec/discriminatorMappingMapper.js.map +1 -0
  45. package/lib/browser/components/open-spec/enumsMapper.js +13 -0
  46. package/lib/browser/components/open-spec/enumsMapper.js.map +1 -0
  47. package/lib/browser/components/open-spec/generate.js +18 -0
  48. package/lib/browser/components/open-spec/generate.js.map +1 -0
  49. package/lib/browser/components/open-spec/nullableMapper.js +36 -0
  50. package/lib/browser/components/open-spec/nullableMapper.js.map +1 -0
  51. package/lib/browser/components/open-spec/operationInFilesMapper.js +21 -0
  52. package/lib/browser/components/open-spec/operationInFilesMapper.js.map +1 -0
  53. package/lib/browser/components/open-spec/operationInParameterMapper.js +31 -0
  54. package/lib/browser/components/open-spec/operationInParameterMapper.js.map +1 -0
  55. package/lib/browser/components/open-spec/operationInParametersMapper.js +9 -0
  56. package/lib/browser/components/open-spec/operationInParametersMapper.js.map +1 -0
  57. package/lib/browser/components/open-spec/operationInQueryMapper.js +46 -0
  58. package/lib/browser/components/open-spec/operationInQueryMapper.js.map +1 -0
  59. package/lib/browser/components/open-spec/operationMapper.js +33 -0
  60. package/lib/browser/components/open-spec/operationMapper.js.map +1 -0
  61. package/lib/browser/components/open-spec/operationMediaMapper.js +10 -0
  62. package/lib/browser/components/open-spec/operationMediaMapper.js.map +1 -0
  63. package/lib/browser/components/open-spec/operationRequestBodyMapper.js +40 -0
  64. package/lib/browser/components/open-spec/operationRequestBodyMapper.js.map +1 -0
  65. package/lib/browser/components/open-spec/operationResponseMapper.js +17 -0
  66. package/lib/browser/components/open-spec/operationResponseMapper.js.map +1 -0
  67. package/lib/browser/components/open-spec/pathsMapper.js +88 -0
  68. package/lib/browser/components/open-spec/pathsMapper.js.map +1 -0
  69. package/lib/browser/constants/OperationVerbs.js +24 -0
  70. package/lib/browser/constants/OperationVerbs.js.map +1 -0
  71. package/lib/browser/constants/httpStatusMessages.js +25 -0
  72. package/lib/browser/constants/httpStatusMessages.js.map +1 -0
  73. package/lib/browser/constants/jsonSchemaProperties.js +21 -0
  74. package/lib/browser/constants/jsonSchemaProperties.js.map +1 -0
  75. package/lib/browser/decorators/class/children.js +13 -0
  76. package/lib/browser/decorators/class/children.js.map +1 -0
  77. package/lib/browser/decorators/class/discriminatorValue.js +11 -0
  78. package/lib/browser/decorators/class/discriminatorValue.js.map +1 -0
  79. package/lib/browser/decorators/collections/collectionContains.js +8 -0
  80. package/lib/browser/decorators/collections/collectionContains.js.map +1 -0
  81. package/lib/browser/decorators/collections/collectionOf.js +26 -0
  82. package/lib/browser/decorators/collections/collectionOf.js.map +1 -0
  83. package/lib/browser/decorators/collections/maxItems.js +13 -0
  84. package/lib/browser/decorators/collections/maxItems.js.map +1 -0
  85. package/lib/browser/decorators/collections/maxProperties.js +13 -0
  86. package/lib/browser/decorators/collections/maxProperties.js.map +1 -0
  87. package/lib/browser/decorators/collections/minItems.js +13 -0
  88. package/lib/browser/decorators/collections/minItems.js.map +1 -0
  89. package/lib/browser/decorators/collections/minProperties.js +13 -0
  90. package/lib/browser/decorators/collections/minProperties.js.map +1 -0
  91. package/lib/browser/decorators/collections/uniqueItems.js +9 -0
  92. package/lib/browser/decorators/collections/uniqueItems.js.map +1 -0
  93. package/lib/browser/decorators/common/additionalProperties.js +10 -0
  94. package/lib/browser/decorators/common/additionalProperties.js.map +1 -0
  95. package/lib/browser/decorators/common/allOf.js +10 -0
  96. package/lib/browser/decorators/common/allOf.js.map +1 -0
  97. package/lib/browser/decorators/common/allow.js +16 -0
  98. package/lib/browser/decorators/common/allow.js.map +1 -0
  99. package/lib/browser/decorators/common/any.js +10 -0
  100. package/lib/browser/decorators/common/any.js.map +1 -0
  101. package/lib/browser/decorators/common/anyOf.js +10 -0
  102. package/lib/browser/decorators/common/anyOf.js.map +1 -0
  103. package/lib/browser/decorators/common/const.js +10 -0
  104. package/lib/browser/decorators/common/const.js.map +1 -0
  105. package/lib/browser/decorators/common/customKey.js +18 -0
  106. package/lib/browser/decorators/common/customKey.js.map +1 -0
  107. package/lib/browser/decorators/common/default.js +10 -0
  108. package/lib/browser/decorators/common/default.js.map +1 -0
  109. package/lib/browser/decorators/common/defaultMsg.js +9 -0
  110. package/lib/browser/decorators/common/defaultMsg.js.map +1 -0
  111. package/lib/browser/decorators/common/description.js +23 -0
  112. package/lib/browser/decorators/common/description.js.map +1 -0
  113. package/lib/browser/decorators/common/discriminatorKey.js +15 -0
  114. package/lib/browser/decorators/common/discriminatorKey.js.map +1 -0
  115. package/lib/browser/decorators/common/enum.js +12 -0
  116. package/lib/browser/decorators/common/enum.js.map +1 -0
  117. package/lib/browser/decorators/common/errorMsg.js +11 -0
  118. package/lib/browser/decorators/common/errorMsg.js.map +1 -0
  119. package/lib/browser/decorators/common/example.js +10 -0
  120. package/lib/browser/decorators/common/example.js.map +1 -0
  121. package/lib/browser/decorators/common/examples.js +10 -0
  122. package/lib/browser/decorators/common/examples.js.map +1 -0
  123. package/lib/browser/decorators/common/exclusiveMaximum.js +7 -0
  124. package/lib/browser/decorators/common/exclusiveMaximum.js.map +1 -0
  125. package/lib/browser/decorators/common/exclusiveMinimum.js +7 -0
  126. package/lib/browser/decorators/common/exclusiveMinimum.js.map +1 -0
  127. package/lib/browser/decorators/common/format.js +16 -0
  128. package/lib/browser/decorators/common/format.js.map +1 -0
  129. package/lib/browser/decorators/common/forwardGroups.js +10 -0
  130. package/lib/browser/decorators/common/forwardGroups.js.map +1 -0
  131. package/lib/browser/decorators/common/groups.js +31 -0
  132. package/lib/browser/decorators/common/groups.js.map +1 -0
  133. package/lib/browser/decorators/common/hidden.js +8 -0
  134. package/lib/browser/decorators/common/hidden.js.map +1 -0
  135. package/lib/browser/decorators/common/ignore.js +10 -0
  136. package/lib/browser/decorators/common/ignore.js.map +1 -0
  137. package/lib/browser/decorators/common/integer.js +10 -0
  138. package/lib/browser/decorators/common/integer.js.map +1 -0
  139. package/lib/browser/decorators/common/jsonEntityFn.js +11 -0
  140. package/lib/browser/decorators/common/jsonEntityFn.js.map +1 -0
  141. package/lib/browser/decorators/common/labelledAs.js +10 -0
  142. package/lib/browser/decorators/common/labelledAs.js.map +1 -0
  143. package/lib/browser/decorators/common/maxLength.js +13 -0
  144. package/lib/browser/decorators/common/maxLength.js.map +1 -0
  145. package/lib/browser/decorators/common/maximum.js +10 -0
  146. package/lib/browser/decorators/common/maximum.js.map +1 -0
  147. package/lib/browser/decorators/common/minLength.js +13 -0
  148. package/lib/browser/decorators/common/minLength.js.map +1 -0
  149. package/lib/browser/decorators/common/minimum.js +10 -0
  150. package/lib/browser/decorators/common/minimum.js.map +1 -0
  151. package/lib/browser/decorators/common/multipleOf.js +13 -0
  152. package/lib/browser/decorators/common/multipleOf.js.map +1 -0
  153. package/lib/browser/decorators/common/name.js +20 -0
  154. package/lib/browser/decorators/common/name.js.map +1 -0
  155. package/lib/browser/decorators/common/nullable.js +10 -0
  156. package/lib/browser/decorators/common/nullable.js.map +1 -0
  157. package/lib/browser/decorators/common/oneOf.js +10 -0
  158. package/lib/browser/decorators/common/oneOf.js.map +1 -0
  159. package/lib/browser/decorators/common/optional.js +18 -0
  160. package/lib/browser/decorators/common/optional.js.map +1 -0
  161. package/lib/browser/decorators/common/pattern.js +9 -0
  162. package/lib/browser/decorators/common/pattern.js.map +1 -0
  163. package/lib/browser/decorators/common/property.js +11 -0
  164. package/lib/browser/decorators/common/property.js.map +1 -0
  165. package/lib/browser/decorators/common/readOnly.js +10 -0
  166. package/lib/browser/decorators/common/readOnly.js.map +1 -0
  167. package/lib/browser/decorators/common/recordOf.js +15 -0
  168. package/lib/browser/decorators/common/recordOf.js.map +1 -0
  169. package/lib/browser/decorators/common/required.js +8 -0
  170. package/lib/browser/decorators/common/required.js.map +1 -0
  171. package/lib/browser/decorators/common/requiredGroups.js +11 -0
  172. package/lib/browser/decorators/common/requiredGroups.js.map +1 -0
  173. package/lib/browser/decorators/common/schema.js +16 -0
  174. package/lib/browser/decorators/common/schema.js.map +1 -0
  175. package/lib/browser/decorators/common/title.js +10 -0
  176. package/lib/browser/decorators/common/title.js.map +1 -0
  177. package/lib/browser/decorators/common/typeError.js +10 -0
  178. package/lib/browser/decorators/common/typeError.js.map +1 -0
  179. package/lib/browser/decorators/common/writeOnly.js +10 -0
  180. package/lib/browser/decorators/common/writeOnly.js.map +1 -0
  181. package/lib/browser/decorators/config/jsonEntityComponent.js +10 -0
  182. package/lib/browser/decorators/config/jsonEntityComponent.js.map +1 -0
  183. package/lib/browser/decorators/generics/genericOf.js +19 -0
  184. package/lib/browser/decorators/generics/genericOf.js.map +1 -0
  185. package/lib/browser/decorators/generics/generics.js +11 -0
  186. package/lib/browser/decorators/generics/generics.js.map +1 -0
  187. package/lib/browser/decorators/operations/acceptMime.js +9 -0
  188. package/lib/browser/decorators/operations/acceptMime.js.map +1 -0
  189. package/lib/browser/decorators/operations/consumes.js +20 -0
  190. package/lib/browser/decorators/operations/consumes.js.map +1 -0
  191. package/lib/browser/decorators/operations/contentType.js +8 -0
  192. package/lib/browser/decorators/operations/contentType.js.map +1 -0
  193. package/lib/browser/decorators/operations/deprecated.js +26 -0
  194. package/lib/browser/decorators/operations/deprecated.js.map +1 -0
  195. package/lib/browser/decorators/operations/header.js +9 -0
  196. package/lib/browser/decorators/operations/header.js.map +1 -0
  197. package/lib/browser/decorators/operations/in.js +27 -0
  198. package/lib/browser/decorators/operations/in.js.map +1 -0
  199. package/lib/browser/decorators/operations/inFile.js +27 -0
  200. package/lib/browser/decorators/operations/inFile.js.map +1 -0
  201. package/lib/browser/decorators/operations/location.js +8 -0
  202. package/lib/browser/decorators/operations/location.js.map +1 -0
  203. package/lib/browser/decorators/operations/operation.js +45 -0
  204. package/lib/browser/decorators/operations/operation.js.map +1 -0
  205. package/lib/browser/decorators/operations/operationId.js +13 -0
  206. package/lib/browser/decorators/operations/operationId.js.map +1 -0
  207. package/lib/browser/decorators/operations/operationPath.js +13 -0
  208. package/lib/browser/decorators/operations/operationPath.js.map +1 -0
  209. package/lib/browser/decorators/operations/partial.js +8 -0
  210. package/lib/browser/decorators/operations/partial.js.map +1 -0
  211. package/lib/browser/decorators/operations/path.js +13 -0
  212. package/lib/browser/decorators/operations/path.js.map +1 -0
  213. package/lib/browser/decorators/operations/produces.js +20 -0
  214. package/lib/browser/decorators/operations/produces.js.map +1 -0
  215. package/lib/browser/decorators/operations/publish.js +9 -0
  216. package/lib/browser/decorators/operations/publish.js.map +1 -0
  217. package/lib/browser/decorators/operations/redirect.js +20 -0
  218. package/lib/browser/decorators/operations/redirect.js.map +1 -0
  219. package/lib/browser/decorators/operations/returns.js +180 -0
  220. package/lib/browser/decorators/operations/returns.js.map +1 -0
  221. package/lib/browser/decorators/operations/route.js +37 -0
  222. package/lib/browser/decorators/operations/route.js.map +1 -0
  223. package/lib/browser/decorators/operations/security.js +20 -0
  224. package/lib/browser/decorators/operations/security.js.map +1 -0
  225. package/lib/browser/decorators/operations/status.js +8 -0
  226. package/lib/browser/decorators/operations/status.js.map +1 -0
  227. package/lib/browser/decorators/operations/subscribe.js +9 -0
  228. package/lib/browser/decorators/operations/subscribe.js.map +1 -0
  229. package/lib/browser/decorators/operations/summary.js +13 -0
  230. package/lib/browser/decorators/operations/summary.js.map +1 -0
  231. package/lib/browser/decorators/operations/tags.js +25 -0
  232. package/lib/browser/decorators/operations/tags.js.map +1 -0
  233. package/lib/browser/decorators/operations/view.js +8 -0
  234. package/lib/browser/decorators/operations/view.js.map +1 -0
  235. package/lib/browser/domain/DecoratorContext.js +62 -0
  236. package/lib/browser/domain/DecoratorContext.js.map +1 -0
  237. package/lib/browser/domain/JsonAliasMap.js +7 -0
  238. package/lib/browser/domain/JsonAliasMap.js.map +1 -0
  239. package/lib/browser/domain/JsonClassStore.js +32 -0
  240. package/lib/browser/domain/JsonClassStore.js.map +1 -0
  241. package/lib/browser/domain/JsonDiscriminator.js +41 -0
  242. package/lib/browser/domain/JsonDiscriminator.js.map +1 -0
  243. package/lib/browser/domain/JsonEntityStore.js +131 -0
  244. package/lib/browser/domain/JsonEntityStore.js.map +1 -0
  245. package/lib/browser/domain/JsonFormatTypes.js +5 -0
  246. package/lib/browser/domain/JsonFormatTypes.js.map +1 -0
  247. package/lib/browser/domain/JsonLazyRef.js +20 -0
  248. package/lib/browser/domain/JsonLazyRef.js.map +1 -0
  249. package/lib/browser/domain/JsonMap.js +19 -0
  250. package/lib/browser/domain/JsonMap.js.map +1 -0
  251. package/lib/browser/domain/JsonMedia.js +16 -0
  252. package/lib/browser/domain/JsonMedia.js.map +1 -0
  253. package/lib/browser/domain/JsonMethodStore.js +121 -0
  254. package/lib/browser/domain/JsonMethodStore.js.map +1 -0
  255. package/lib/browser/domain/JsonOperation.js +129 -0
  256. package/lib/browser/domain/JsonOperation.js.map +1 -0
  257. package/lib/browser/domain/JsonOperationPathsMap.js +13 -0
  258. package/lib/browser/domain/JsonOperationPathsMap.js.map +1 -0
  259. package/lib/browser/domain/JsonOperationRoute.js +54 -0
  260. package/lib/browser/domain/JsonOperationRoute.js.map +1 -0
  261. package/lib/browser/domain/JsonParameter.js +41 -0
  262. package/lib/browser/domain/JsonParameter.js.map +1 -0
  263. package/lib/browser/domain/JsonParameterStore.js +69 -0
  264. package/lib/browser/domain/JsonParameterStore.js.map +1 -0
  265. package/lib/browser/domain/JsonParameterTypes.js +13 -0
  266. package/lib/browser/domain/JsonParameterTypes.js.map +1 -0
  267. package/lib/browser/domain/JsonPropertyStore.js +64 -0
  268. package/lib/browser/domain/JsonPropertyStore.js.map +1 -0
  269. package/lib/browser/domain/JsonRequestBody.js +24 -0
  270. package/lib/browser/domain/JsonRequestBody.js.map +1 -0
  271. package/lib/browser/domain/JsonResponse.js +36 -0
  272. package/lib/browser/domain/JsonResponse.js.map +1 -0
  273. package/lib/browser/domain/JsonSchema.js +625 -0
  274. package/lib/browser/domain/JsonSchema.js.map +1 -0
  275. package/lib/browser/domain/SpecTypes.js +5 -0
  276. package/lib/browser/domain/SpecTypes.js.map +1 -0
  277. package/lib/browser/domain/__fixtures__/inspectOperationsPaths.js +10 -0
  278. package/lib/browser/domain/__fixtures__/inspectOperationsPaths.js.map +1 -0
  279. package/lib/browser/fn/allOf.js +8 -0
  280. package/lib/browser/fn/allOf.js.map +1 -0
  281. package/lib/browser/fn/any.js +8 -0
  282. package/lib/browser/fn/any.js.map +1 -0
  283. package/lib/browser/fn/anyOf.js +8 -0
  284. package/lib/browser/fn/anyOf.js.map +1 -0
  285. package/lib/browser/fn/boolean.js +8 -0
  286. package/lib/browser/fn/boolean.js.map +1 -0
  287. package/lib/browser/fn/collection.js +16 -0
  288. package/lib/browser/fn/collection.js.map +1 -0
  289. package/lib/browser/fn/date.js +17 -0
  290. package/lib/browser/fn/date.js.map +1 -0
  291. package/lib/browser/fn/email.js +9 -0
  292. package/lib/browser/fn/email.js.map +1 -0
  293. package/lib/browser/fn/enums.js +10 -0
  294. package/lib/browser/fn/enums.js.map +1 -0
  295. package/lib/browser/fn/from.js +18 -0
  296. package/lib/browser/fn/from.js.map +1 -0
  297. package/lib/browser/fn/integer.js +8 -0
  298. package/lib/browser/fn/integer.js.map +1 -0
  299. package/lib/browser/fn/lazyRef.js +14 -0
  300. package/lib/browser/fn/lazyRef.js.map +1 -0
  301. package/lib/browser/fn/number.js +8 -0
  302. package/lib/browser/fn/number.js.map +1 -0
  303. package/lib/browser/fn/object.js +8 -0
  304. package/lib/browser/fn/object.js.map +1 -0
  305. package/lib/browser/fn/oneOf.js +8 -0
  306. package/lib/browser/fn/oneOf.js.map +1 -0
  307. package/lib/browser/fn/string.js +8 -0
  308. package/lib/browser/fn/string.js.map +1 -0
  309. package/lib/browser/fn/uri.js +9 -0
  310. package/lib/browser/fn/uri.js.map +1 -0
  311. package/lib/browser/fn/url.js +9 -0
  312. package/lib/browser/fn/url.js.map +1 -0
  313. package/lib/browser/hooks/alterIgnore.js +12 -0
  314. package/lib/browser/hooks/alterIgnore.js.map +1 -0
  315. package/lib/browser/hooks/alterOneOf.js +30 -0
  316. package/lib/browser/hooks/alterOneOf.js.map +1 -0
  317. package/lib/browser/hooks/alterRequiredGroups.js +8 -0
  318. package/lib/browser/hooks/alterRequiredGroups.js.map +1 -0
  319. package/lib/browser/index.js +450 -0
  320. package/lib/browser/index.js.map +1 -0
  321. package/lib/browser/registries/JsonSchemaMapperContainer.js +27 -0
  322. package/lib/browser/registries/JsonSchemaMapperContainer.js.map +1 -0
  323. package/lib/browser/registries/enumRegistries.js +5 -0
  324. package/lib/browser/registries/enumRegistries.js.map +1 -0
  325. package/lib/browser/utils/buildPath.js +7 -0
  326. package/lib/browser/utils/buildPath.js.map +1 -0
  327. package/lib/browser/utils/concatParameters.js +7 -0
  328. package/lib/browser/utils/concatParameters.js.map +1 -0
  329. package/lib/browser/utils/concatPath.js +17 -0
  330. package/lib/browser/utils/concatPath.js.map +1 -0
  331. package/lib/browser/utils/defineStatusModel.js +12 -0
  332. package/lib/browser/utils/defineStatusModel.js.map +1 -0
  333. package/lib/browser/utils/generateSpec.js +24 -0
  334. package/lib/browser/utils/generateSpec.js.map +1 -0
  335. package/lib/browser/utils/generics.js +26 -0
  336. package/lib/browser/utils/generics.js.map +1 -0
  337. package/lib/browser/utils/getComputedType.js +8 -0
  338. package/lib/browser/utils/getComputedType.js.map +1 -0
  339. package/lib/browser/utils/getInheritedStores.js +10 -0
  340. package/lib/browser/utils/getInheritedStores.js.map +1 -0
  341. package/lib/browser/utils/getJsonEntityStore.js +17 -0
  342. package/lib/browser/utils/getJsonEntityStore.js.map +1 -0
  343. package/lib/browser/utils/getJsonPathParameters.js +51 -0
  344. package/lib/browser/utils/getJsonPathParameters.js.map +1 -0
  345. package/lib/browser/utils/getJsonSchema.js +72 -0
  346. package/lib/browser/utils/getJsonSchema.js.map +1 -0
  347. package/lib/browser/utils/getJsonType.js +10 -0
  348. package/lib/browser/utils/getJsonType.js.map +1 -0
  349. package/lib/browser/utils/getOperationsRoutes.js +30 -0
  350. package/lib/browser/utils/getOperationsRoutes.js.map +1 -0
  351. package/lib/browser/utils/getOperationsStores.js +24 -0
  352. package/lib/browser/utils/getOperationsStores.js.map +1 -0
  353. package/lib/browser/utils/getPropertiesStores.js +26 -0
  354. package/lib/browser/utils/getPropertiesStores.js.map +1 -0
  355. package/lib/browser/utils/getSpec.js +56 -0
  356. package/lib/browser/utils/getSpec.js.map +1 -0
  357. package/lib/browser/utils/getSpecType.js +12 -0
  358. package/lib/browser/utils/getSpecType.js.map +1 -0
  359. package/lib/browser/utils/isSuccessStatus.js +6 -0
  360. package/lib/browser/utils/isSuccessStatus.js.map +1 -0
  361. package/lib/browser/utils/mapHeaders.js +14 -0
  362. package/lib/browser/utils/mapHeaders.js.map +1 -0
  363. package/lib/browser/utils/mapOpenSpec.js +27 -0
  364. package/lib/browser/utils/mapOpenSpec.js.map +1 -0
  365. package/lib/browser/utils/mapOpenSpec2.js +40 -0
  366. package/lib/browser/utils/mapOpenSpec2.js.map +1 -0
  367. package/lib/browser/utils/mapOpenSpec3.js +19 -0
  368. package/lib/browser/utils/mapOpenSpec3.js.map +1 -0
  369. package/lib/browser/utils/mapOpenSpecInfo.js +16 -0
  370. package/lib/browser/utils/mapOpenSpecInfo.js.map +1 -0
  371. package/lib/browser/utils/mapOperationOptions.js +17 -0
  372. package/lib/browser/utils/mapOperationOptions.js.map +1 -0
  373. package/lib/browser/utils/matchGroups.js +27 -0
  374. package/lib/browser/utils/matchGroups.js.map +1 -0
  375. package/lib/browser/utils/mergeSpec.js +23 -0
  376. package/lib/browser/utils/mergeSpec.js.map +1 -0
  377. package/lib/browser/utils/operationIdFormatter.js +29 -0
  378. package/lib/browser/utils/operationIdFormatter.js.map +1 -0
  379. package/lib/browser/utils/ref.js +32 -0
  380. package/lib/browser/utils/ref.js.map +1 -0
  381. package/lib/browser/utils/removeHiddenOperation.js +7 -0
  382. package/lib/browser/utils/removeHiddenOperation.js.map +1 -0
  383. package/lib/browser/utils/serializeEnumValues.js +11 -0
  384. package/lib/browser/utils/serializeEnumValues.js.map +1 -0
  385. package/lib/browser/utils/somethingOf.js +7 -0
  386. package/lib/browser/utils/somethingOf.js.map +1 -0
  387. package/lib/browser/utils/toJsonMapCollection.js +8 -0
  388. package/lib/browser/utils/toJsonMapCollection.js.map +1 -0
  389. package/lib/browser/utils/toJsonRegex.js +7 -0
  390. package/lib/browser/utils/toJsonRegex.js.map +1 -0
  391. package/lib/browser/utils/transformToOS2.js +302 -0
  392. package/lib/browser/utils/transformToOS2.js.map +1 -0
  393. package/lib/browser/utils/withErrorMsg.js +31 -0
  394. package/lib/browser/utils/withErrorMsg.js.map +1 -0
  395. package/lib/esm/domain/JsonEntityStore.js +6 -0
  396. package/lib/esm/domain/JsonEntityStore.js.map +1 -1
  397. package/lib/types/domain/JsonEntityStore.d.ts +2 -0
  398. package/package.json +19 -16
  399. package/src/domain/JsonEntityStore.ts +8 -0
  400. package/vite.config.mts +45 -0
  401. package/lib/browser/schema.umd.min.js +0 -3
  402. package/lib/browser/schema.umd.min.js.LICENSE.txt +0 -6
  403. package/lib/browser/schema.umd.min.js.map +0 -1
  404. package/webpack.config.cjs +0 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchGroups.js","sources":["../../../src/utils/matchGroups.ts"],"sourcesContent":["import picomatch from \"picomatch\";\n\nfunction micromatch(list: string[], patterns: string[]) {\n patterns = ([] as string[]).concat(patterns);\n list = ([] as string[]).concat(list);\n\n let omit = new Set();\n let keep = new Set();\n let items = new Set();\n let negatives = 0;\n\n let onResult = (state: any) => {\n items.add(state.output);\n };\n\n for (let i = 0; i < patterns.length; i++) {\n let isMatch: any = picomatch(String(patterns[i]), {onResult}, true);\n let negated = isMatch.state.negated || isMatch.state.negatedExtglob;\n\n if (negated) {\n negatives++;\n }\n\n for (let item of list) {\n let matched = isMatch(item, true);\n\n let match = negated ? !matched.isMatch : matched.isMatch;\n if (!match) continue;\n\n if (negated) {\n omit.add(matched.output);\n } else {\n omit.delete(matched.output);\n keep.add(matched.output);\n }\n }\n }\n\n let result = negatives === patterns.length ? [...items] : [...keep];\n return !!result.filter((item) => !omit.has(item)).length;\n}\n\n/**\n * @ignore\n */\nexport function matchGroups(groups: string[], compareWith: string[] = []) {\n const groupsExcludes = groups.filter((group) => group.startsWith(\"!\")).map((group) => group.replace(\"!\", \"\"));\n const groupsIncludes = groups.filter((group) => !group.startsWith(\"!\"));\n\n if (groupsExcludes.length) {\n if (compareWith.length && micromatch(groupsExcludes, compareWith)) {\n return true;\n }\n }\n\n if (groupsIncludes.length) {\n return !micromatch(\n groups.filter((group) => !group.startsWith(\"!\")),\n compareWith\n );\n }\n\n return false;\n}\n"],"names":["micromatch","list","patterns","omit","keep","items","negatives","onResult","state","i","isMatch","picomatch","negated","item","matched","matchGroups","groups","compareWith","groupsExcludes","group","groupsIncludes"],"mappings":";AAEA,SAASA,EAAWC,GAAgBC,GAAoB;AAC1C,EAAAA,IAAA,CAAA,EAAgB,OAAOA,CAAQ,GACnCD,IAAA,CAAA,EAAgB,OAAOA,CAAI;AAE/B,MAAAE,wBAAW,IAAI,GACfC,wBAAW,IAAI,GACfC,wBAAY,IAAI,GAChBC,IAAY,GAEZC,IAAW,CAACC,MAAe;AACvB,IAAAH,EAAA,IAAIG,EAAM,MAAM;AAAA,EACxB;AAEA,WAASC,IAAI,GAAGA,IAAIP,EAAS,QAAQO,KAAK;AACpC,QAAAC,IAAeC,EAAU,OAAOT,EAASO,CAAC,CAAC,GAAG,EAAC,UAAAF,EAAQ,GAAG,EAAI,GAC9DK,IAAUF,EAAQ,MAAM,WAAWA,EAAQ,MAAM;AAErD,IAAIE,KACFN;AAGF,aAASO,KAAQZ,GAAM;AACjB,UAAAa,IAAUJ,EAAQG,GAAM,EAAI;AAGhC,OADYD,IAAU,CAACE,EAAQ,UAAUA,EAAQ,aAG7CF,IACGT,EAAA,IAAIW,EAAQ,MAAM,KAElBX,EAAA,OAAOW,EAAQ,MAAM,GACrBV,EAAA,IAAIU,EAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AAIK,SAAA,CAAC,EADKR,MAAcJ,EAAS,SAAS,CAAC,GAAGG,CAAK,IAAI,CAAC,GAAGD,CAAI,GAClD,OAAO,CAACS,MAAS,CAACV,EAAK,IAAIU,CAAI,CAAC,EAAE;AACpD;AAKO,SAASE,EAAYC,GAAkBC,IAAwB,IAAI;AACxE,QAAMC,IAAiBF,EAAO,OAAO,CAACG,MAAUA,EAAM,WAAW,GAAG,CAAC,EAAE,IAAI,CAACA,MAAUA,EAAM,QAAQ,KAAK,EAAE,CAAC,GACtGC,IAAiBJ,EAAO,OAAO,CAACG,MAAU,CAACA,EAAM,WAAW,GAAG,CAAC;AAEtE,SAAID,EAAe,UACbD,EAAY,UAAUjB,EAAWkB,GAAgBD,CAAW,IACvD,KAIPG,EAAe,SACV,CAACpB;AAAA,IACNgB,EAAO,OAAO,CAACG,MAAU,CAACA,EAAM,WAAW,GAAG,CAAC;AAAA,IAC/CF;AAAA,EACF,IAGK;AACT;"}
@@ -0,0 +1,23 @@
1
+ import { mergeReducerBuilder as s, deepMerge as i } from "@tsed/core";
2
+ const n = s((e, t) => e.type && e.type && e.type === t.type && t.type === "array" ? JSON.stringify(e.items) === JSON.stringify(t.items) : e.type && e.type === t.type || e.$ref && e.$ref === t.$ref), p = s((e, t) => e.in === t.in && e.name === t.name), y = s((e, t) => !!Object.keys(t).find((r) => !!e[r])), f = s((e, t) => e.name === t.name), m = {
3
+ security: y,
4
+ parameters: p,
5
+ oneOf: n,
6
+ anyOf: n,
7
+ allOf: n,
8
+ tags: f
9
+ };
10
+ function d(e, t) {
11
+ return i(e, t, {
12
+ reducers: m,
13
+ cleanUndefinedProps: !0
14
+ });
15
+ }
16
+ export {
17
+ d as mergeSpec,
18
+ p as parameters,
19
+ n as schemesReducer,
20
+ y as security,
21
+ f as tagsReducer
22
+ };
23
+ //# sourceMappingURL=mergeSpec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeSpec.js","sources":["../../../src/utils/mergeSpec.ts"],"sourcesContent":["import {deepMerge, mergeReducerBuilder} from \"@tsed/core\";\nimport {OpenSpec2, OpenSpec3} from \"@tsed/openspec\";\n\n/**\n * @ignore\n */\nexport const schemesReducer = mergeReducerBuilder((current, value) => {\n if (current.type && current.type && current.type === value.type && value.type === \"array\") {\n return JSON.stringify(current.items) === JSON.stringify(value.items);\n }\n\n return (current.type && current.type === value.type) || (current.$ref && current.$ref === value.$ref);\n});\n\n/**\n * @ignore\n */\nexport const parameters = mergeReducerBuilder((current, value) => current.in === value.in && current.name === value.name);\n\n/**\n * @ignore\n */\nexport const security = mergeReducerBuilder((current, value) => {\n return !!Object.keys(value).find((key) => !!current[key]);\n});\n\n/**\n * @ignore\n */\nexport const tagsReducer = mergeReducerBuilder((current, value) => current.name === value.name);\n\n/**\n * @ignore\n */\nconst SPEC_REDUCERS = {\n security,\n parameters,\n oneOf: schemesReducer,\n anyOf: schemesReducer,\n allOf: schemesReducer,\n tags: tagsReducer\n};\n\n/**\n * Merge two spec\n * @param spec\n * @param input\n */\nexport function mergeSpec<Spec = OpenSpec2 | OpenSpec3>(spec: Partial<Spec>, input: Partial<Spec>): Partial<Spec> {\n return deepMerge(spec, input, {\n reducers: SPEC_REDUCERS,\n cleanUndefinedProps: true\n });\n}\n"],"names":["schemesReducer","mergeReducerBuilder","current","value","parameters","security","key","tagsReducer","SPEC_REDUCERS","mergeSpec","spec","input","deepMerge"],"mappings":";AAMO,MAAMA,IAAiBC,EAAoB,CAACC,GAASC,MACtDD,EAAQ,QAAQA,EAAQ,QAAQA,EAAQ,SAASC,EAAM,QAAQA,EAAM,SAAS,UACzE,KAAK,UAAUD,EAAQ,KAAK,MAAM,KAAK,UAAUC,EAAM,KAAK,IAG7DD,EAAQ,QAAQA,EAAQ,SAASC,EAAM,QAAUD,EAAQ,QAAQA,EAAQ,SAASC,EAAM,IACjG,GAKYC,IAAaH,EAAoB,CAACC,GAASC,MAAUD,EAAQ,OAAOC,EAAM,MAAMD,EAAQ,SAASC,EAAM,IAAI,GAK3GE,IAAWJ,EAAoB,CAACC,GAASC,MAC7C,CAAC,CAAC,OAAO,KAAKA,CAAK,EAAE,KAAK,CAACG,MAAQ,CAAC,CAACJ,EAAQI,CAAG,CAAC,CACzD,GAKYC,IAAcN,EAAoB,CAACC,GAASC,MAAUD,EAAQ,SAASC,EAAM,IAAI,GAKxFK,IAAgB;AAAA,EACpB,UAAAH;AAAA,EACA,YAAAD;AAAA,EACA,OAAOJ;AAAA,EACP,OAAOA;AAAA,EACP,OAAOA;AAAA,EACP,MAAMO;AACR;AAOgB,SAAAE,EAAwCC,GAAqBC,GAAqC;AACzG,SAAAC,EAAUF,GAAMC,GAAO;AAAA,IAC5B,UAAUH;AAAA,IACV,qBAAqB;AAAA,EAAA,CACtB;AACH;"}
@@ -0,0 +1,29 @@
1
+ import { camelCase as u } from "/home/runner/work/tsed/tsed/node_modules/change-case/dist/index.js";
2
+ const f = "%c.%m";
3
+ function d(n = "") {
4
+ const t = /* @__PURE__ */ new Map(), c = (e, r) => {
5
+ const o = (n || f).replace(/%c/, e).replace(/%m/, r);
6
+ return n === "" ? u(o) : o;
7
+ };
8
+ return (e, r, o = "") => {
9
+ const s = c(e, r), a = e + r;
10
+ if (!t.has(a))
11
+ return t.set(a, 0), s;
12
+ const i = o.match(/{(\w+)}/gi);
13
+ if (i) {
14
+ const p = e + r + i[0];
15
+ if (!t.has(p))
16
+ return t.set(p, 0), u(`${s} By ${i}`);
17
+ }
18
+ const m = t.get(a) + 1;
19
+ return t.set(a, m), `${s}_${m}`;
20
+ };
21
+ }
22
+ function g(n, { store: t, operationIdFormatter: c }) {
23
+ return c(t.parent.schema.get("name") || t.parent.targetName, t.propertyName, n);
24
+ }
25
+ export {
26
+ g as getOperationId,
27
+ d as operationIdFormatter
28
+ };
29
+ //# sourceMappingURL=operationIdFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operationIdFormatter.js","sources":["../../../src/utils/operationIdFormatter.ts"],"sourcesContent":["import {camelCase} from \"change-case\";\n\nimport {JsonSchemaOptions} from \"../interfaces/JsonSchemaOptions.js\";\n\nconst DEFAULT_PATTERN = \"%c.%m\";\n\n/**\n * @ignore\n */\nexport function operationIdFormatter(pattern: string = \"\") {\n const OPERATION_IDS = new Map<string, number>();\n\n const transform = (name: string, propertyKey: string) => {\n const str = (pattern || DEFAULT_PATTERN).replace(/%c/, name).replace(/%m/, propertyKey);\n return pattern === \"\" ? camelCase(str) : str;\n };\n\n return (name: string, propertyKey: string, path: string = \"\") => {\n const operationId = transform(name, propertyKey);\n const operationKey = name + propertyKey;\n\n if (!OPERATION_IDS.has(operationKey)) {\n OPERATION_IDS.set(operationKey, 0);\n\n return operationId;\n }\n\n // try with paths\n const result = path.match(/{(\\w+)}/gi);\n if (result) {\n const operationKey = name + propertyKey + result[0];\n\n if (!OPERATION_IDS.has(operationKey)) {\n OPERATION_IDS.set(operationKey, 0);\n\n return camelCase(`${operationId} By ${result}`);\n }\n }\n\n const id = OPERATION_IDS.get(operationKey)! + 1;\n OPERATION_IDS.set(operationKey, id);\n\n return `${operationId}_${id}`;\n };\n}\n\nexport function getOperationId(path: string, {store, operationIdFormatter}: JsonSchemaOptions) {\n return operationIdFormatter!(store.parent.schema.get(\"name\") || store.parent.targetName, store.propertyName, path);\n}\n"],"names":["DEFAULT_PATTERN","operationIdFormatter","pattern","OPERATION_IDS","transform","name","propertyKey","str","camelCase","path","operationId","operationKey","result","id","getOperationId","store"],"mappings":";AAIA,MAAMA,IAAkB;AAKR,SAAAC,EAAqBC,IAAkB,IAAI;AACnD,QAAAC,wBAAoB,IAAoB,GAExCC,IAAY,CAACC,GAAcC,MAAwB;AACjD,UAAAC,KAAOL,KAAWF,GAAiB,QAAQ,MAAMK,CAAI,EAAE,QAAQ,MAAMC,CAAW;AACtF,WAAOJ,MAAY,KAAKM,EAAUD,CAAG,IAAIA;AAAA,EAC3C;AAEA,SAAO,CAACF,GAAcC,GAAqBG,IAAe,OAAO;AACzD,UAAAC,IAAcN,EAAUC,GAAMC,CAAW,GACzCK,IAAeN,IAAOC;AAE5B,QAAI,CAACH,EAAc,IAAIQ,CAAY;AACnB,aAAAR,EAAA,IAAIQ,GAAc,CAAC,GAE1BD;AAIH,UAAAE,IAASH,EAAK,MAAM,WAAW;AACrC,QAAIG,GAAQ;AACV,YAAMD,IAAeN,IAAOC,IAAcM,EAAO,CAAC;AAElD,UAAI,CAACT,EAAc,IAAIQ,CAAY;AACnB,eAAAR,EAAA,IAAIQ,GAAc,CAAC,GAE1BH,EAAU,GAAGE,CAAW,OAAOE,CAAM,EAAE;AAAA,IAChD;AAGF,UAAMC,IAAKV,EAAc,IAAIQ,CAAY,IAAK;AAChC,WAAAR,EAAA,IAAIQ,GAAcE,CAAE,GAE3B,GAAGH,CAAW,IAAIG,CAAE;AAAA,EAC7B;AACF;AAEO,SAASC,EAAeL,GAAc,EAAC,OAAAM,GAAO,sBAAAd,KAA0C;AAC7F,SAAOA,EAAsBc,EAAM,OAAO,OAAO,IAAI,MAAM,KAAKA,EAAM,OAAO,YAAYA,EAAM,cAAcN,CAAI;AACnH;"}
@@ -0,0 +1,32 @@
1
+ import { setValue as u, cleanObject as i } from "@tsed/core";
2
+ import { pascalCase as a } from "/home/runner/work/tsed/tsed/node_modules/change-case/dist/index.js";
3
+ import { SpecTypes as f } from "../domain/SpecTypes.js";
4
+ function m(t) {
5
+ const { host: e = `#/${[f.OPENAPI, f.ASYNCAPI].includes(t.specType) ? "components/schemas" : "definitions"}` } = t;
6
+ return e;
7
+ }
8
+ function l(t, e) {
9
+ return e.groups && e.groups.length ? a(`${t} ${e.groupsName || e.groups.join(" ")}`) : t;
10
+ }
11
+ function p(t, e, r) {
12
+ const o = {
13
+ $ref: `${m(r)}/${t}`
14
+ }, s = e.isReadOnly, c = e.isWriteOnly;
15
+ return i({
16
+ readOnly: s ? !0 : void 0,
17
+ writeOnly: c ? !0 : void 0,
18
+ ...s || c ? {
19
+ anyOf: [o]
20
+ } : o
21
+ });
22
+ }
23
+ function g(t, e, r) {
24
+ const n = l(t.getName(), r);
25
+ return e && u(r, `components.schemas.${n}`, e), p(n, t, r);
26
+ }
27
+ export {
28
+ p as createRef,
29
+ l as createRefName,
30
+ g as toRef
31
+ };
32
+ //# sourceMappingURL=ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.js","sources":["../../../src/utils/ref.ts"],"sourcesContent":["import {cleanObject, setValue} from \"@tsed/core\";\nimport {pascalCase} from \"change-case\";\n\nimport type {JsonSchema} from \"../domain/JsonSchema.js\";\nimport {SpecTypes} from \"../domain/SpecTypes.js\";\nimport {JsonSchemaOptions} from \"../interfaces/JsonSchemaOptions.js\";\n\n/**\n * ignore\n * @param options\n */\nfunction getHost(options: JsonSchemaOptions) {\n const {host = `#/${[SpecTypes.OPENAPI, SpecTypes.ASYNCAPI].includes(options.specType!) ? \"components/schemas\" : \"definitions\"}`} =\n options;\n\n return host;\n}\n\n/**\n * @ignore\n */\nexport function createRefName(name: string, options: JsonSchemaOptions) {\n if (options.groups && options.groups.length) {\n return pascalCase(`${name} ${options.groupsName || options.groups.join(\" \")}`);\n }\n\n return name;\n}\n\n/**\n * @ignore\n */\nexport function createRef(name: string, schema: JsonSchema, options: JsonSchemaOptions) {\n const host = getHost(options);\n const ref = {\n $ref: `${host}/${name}`\n };\n\n const readOnly = schema.isReadOnly;\n const writeOnly = schema.isWriteOnly;\n\n return cleanObject({\n readOnly: readOnly ? true : undefined,\n writeOnly: writeOnly ? true : undefined,\n ...(readOnly || writeOnly\n ? {\n anyOf: [ref]\n }\n : ref)\n });\n}\n\n/**\n * @ignore\n */\nexport function toRef(value: JsonSchema, schema: unknown | undefined, options: JsonSchemaOptions) {\n const name = createRefName(value.getName(), options);\n\n if (schema) {\n setValue(options, `components.schemas.${name}`, schema);\n }\n\n return createRef(name, value, options);\n}\n"],"names":["getHost","options","host","SpecTypes","createRefName","name","pascalCase","createRef","schema","ref","readOnly","writeOnly","cleanObject","toRef","value","setValue"],"mappings":";;;AAWA,SAASA,EAAQC,GAA4B;AAC3C,QAAM,EAAC,MAAAC,IAAO,KAAK,CAACC,EAAU,SAASA,EAAU,QAAQ,EAAE,SAASF,EAAQ,QAAS,IAAI,uBAAuB,aAAa,OAC3HA;AAEK,SAAAC;AACT;AAKgB,SAAAE,EAAcC,GAAcJ,GAA4B;AACtE,SAAIA,EAAQ,UAAUA,EAAQ,OAAO,SAC5BK,EAAW,GAAGD,CAAI,IAAIJ,EAAQ,cAAcA,EAAQ,OAAO,KAAK,GAAG,CAAC,EAAE,IAGxEI;AACT;AAKgB,SAAAE,EAAUF,GAAcG,GAAoBP,GAA4B;AAEtF,QAAMQ,IAAM;AAAA,IACV,MAAM,GAFKT,EAAQC,CAAO,CAEb,IAAII,CAAI;AAAA,EACvB,GAEMK,IAAWF,EAAO,YAClBG,IAAYH,EAAO;AAEzB,SAAOI,EAAY;AAAA,IACjB,UAAUF,IAAW,KAAO;AAAA,IAC5B,WAAWC,IAAY,KAAO;AAAA,IAC9B,GAAID,KAAYC,IACZ;AAAA,MACE,OAAO,CAACF,CAAG;AAAA,IAAA,IAEbA;AAAA,EAAA,CACL;AACH;AAKgB,SAAAI,EAAMC,GAAmBN,GAA6BP,GAA4B;AAChG,QAAMI,IAAOD,EAAcU,EAAM,QAAA,GAAWb,CAAO;AAEnD,SAAIO,KACFO,EAASd,GAAS,sBAAsBI,CAAI,IAAIG,CAAM,GAGjDD,EAAUF,GAAMS,GAAOb,CAAO;AACvC;"}
@@ -0,0 +1,7 @@
1
+ function n(e) {
2
+ return !e.store.get("hidden");
3
+ }
4
+ export {
5
+ n as removeHiddenOperation
6
+ };
7
+ //# sourceMappingURL=removeHiddenOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeHiddenOperation.js","sources":["../../../src/utils/removeHiddenOperation.ts"],"sourcesContent":["import {JsonMethodStore} from \"../domain/JsonMethodStore.js\";\n\nexport function removeHiddenOperation(operationStore: JsonMethodStore) {\n return !operationStore.store.get(\"hidden\");\n}\n"],"names":["removeHiddenOperation","operationStore"],"mappings":"AAEO,SAASA,EAAsBC,GAAiC;AACrE,SAAO,CAACA,EAAe,MAAM,IAAI,QAAQ;AAC3C;"}
@@ -0,0 +1,11 @@
1
+ import { uniq as c, isObject as i } from "@tsed/core";
2
+ const o = (e) => i(e) && e !== null ? Object.entries(e).reduce((r, [n, s]) => isNaN(+n) ? r.concat(s) : r, []) : e;
3
+ function a(e) {
4
+ const r = e.reduce((t, u) => t.concat(o(u)), []), n = (t) => t === null ? "null" : typeof t, s = r.reduce((t, u) => t.add(n(u)), /* @__PURE__ */ new Set());
5
+ return { values: c(r), types: s };
6
+ }
7
+ export {
8
+ o as serializeEnum,
9
+ a as serializeEnumValues
10
+ };
11
+ //# sourceMappingURL=serializeEnumValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializeEnumValues.js","sources":["../../../src/utils/serializeEnumValues.ts"],"sourcesContent":["import {isObject, uniq} from \"@tsed/core\";\n\nexport const serializeEnum = (enumValue: any) => {\n if (isObject(enumValue) && enumValue !== null) {\n return Object.entries(enumValue).reduce((acc: any, [key, value]: any) => {\n if (isNaN(+key)) {\n return acc.concat(value);\n }\n\n return acc;\n }, []);\n }\n\n return enumValue;\n};\n\nexport function serializeEnumValues(enumValues: any[]) {\n const values = enumValues.reduce((acc, value) => acc.concat(serializeEnum(value)), []);\n\n const getValue = (value: any) => {\n return value === null ? \"null\" : typeof value;\n };\n\n const types = values.reduce((set: Set<any>, value: any) => set.add(getValue(value)), new Set());\n\n return {values: uniq(values), types};\n}\n"],"names":["serializeEnum","enumValue","isObject","acc","key","value","serializeEnumValues","enumValues","values","getValue","types","set","uniq"],"mappings":";AAEa,MAAAA,IAAgB,CAACC,MACxBC,EAASD,CAAS,KAAKA,MAAc,OAChC,OAAO,QAAQA,CAAS,EAAE,OAAO,CAACE,GAAU,CAACC,GAAKC,CAAK,MACxD,MAAM,CAACD,CAAG,IACLD,EAAI,OAAOE,CAAK,IAGlBF,GACN,EAAE,IAGAF;AAGF,SAASK,EAAoBC,GAAmB;AACrD,QAAMC,IAASD,EAAW,OAAO,CAACJ,GAAKE,MAAUF,EAAI,OAAOH,EAAcK,CAAK,CAAC,GAAG,CAAA,CAAE,GAE/EI,IAAW,CAACJ,MACTA,MAAU,OAAO,SAAS,OAAOA,GAGpCK,IAAQF,EAAO,OAAO,CAACG,GAAeN,MAAeM,EAAI,IAAIF,EAASJ,CAAK,CAAC,GAAG,oBAAI,KAAK;AAE9F,SAAO,EAAC,QAAQO,EAAKJ,CAAM,GAAG,OAAAE,EAAK;AACrC;"}
@@ -0,0 +1,7 @@
1
+ function t(r, n) {
2
+ return n.length ? n.length === 1 ? n[0] : { [r]: n } : null;
3
+ }
4
+ export {
5
+ t as makeOf
6
+ };
7
+ //# sourceMappingURL=somethingOf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"somethingOf.js","sources":["../../../src/utils/somethingOf.ts"],"sourcesContent":["export function makeOf(key: string, schemes: unknown[]) {\n if (schemes.length) {\n if (schemes.length === 1) {\n return schemes[0];\n } else {\n return {[key]: schemes};\n }\n }\n\n return null;\n}\n"],"names":["makeOf","key","schemes"],"mappings":"AAAgB,SAAAA,EAAOC,GAAaC,GAAoB;AACtD,SAAIA,EAAQ,SACNA,EAAQ,WAAW,IACdA,EAAQ,CAAC,IAET,EAAC,CAACD,CAAG,GAAGC,EAAO,IAInB;AACT;"}
@@ -0,0 +1,8 @@
1
+ import { JsonMap as r } from "../domain/JsonMap.js";
2
+ function s(n, o = r) {
3
+ return Object.entries(n).reduce((e, [t, i]) => (e.set(t, new o(i)), e), new r());
4
+ }
5
+ export {
6
+ s as toJsonMapCollection
7
+ };
8
+ //# sourceMappingURL=toJsonMapCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toJsonMapCollection.js","sources":["../../../src/utils/toJsonMapCollection.ts"],"sourcesContent":["import {JsonMap} from \"../domain/JsonMap.js\";\n\n/**\n * @ignore\n */\nexport function toJsonMapCollection(content: {[key: string]: any}, klass = JsonMap) {\n return Object.entries(content).reduce((content, [key, value]) => {\n content.set(key, new klass(value));\n\n return content;\n }, new JsonMap<any>());\n}\n"],"names":["toJsonMapCollection","content","klass","JsonMap","key","value"],"mappings":";AAKgB,SAAAA,EAAoBC,GAA+BC,IAAQC,GAAS;AAC3E,SAAA,OAAO,QAAQF,CAAO,EAAE,OAAO,CAACA,GAAS,CAACG,GAAKC,CAAK,OACzDJ,EAAQ,IAAIG,GAAK,IAAIF,EAAMG,CAAK,CAAC,GAE1BJ,IACN,IAAIE,EAAA,CAAc;AACvB;"}
@@ -0,0 +1,7 @@
1
+ function n(e) {
2
+ return String(e).replace(/^(\/)(.*)(\/)$/, "$2");
3
+ }
4
+ export {
5
+ n as toJsonRegex
6
+ };
7
+ //# sourceMappingURL=toJsonRegex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toJsonRegex.js","sources":["../../../src/utils/toJsonRegex.ts"],"sourcesContent":["/**\n * @ignore\n * @param pattern\n */\nexport function toJsonRegex(pattern: string | RegExp) {\n return String(pattern).replace(/^(\\/)(.*)(\\/)$/, \"$2\");\n}\n"],"names":["toJsonRegex","pattern"],"mappings":"AAIO,SAASA,EAAYC,GAA0B;AACpD,SAAO,OAAOA,CAAO,EAAE,QAAQ,kBAAkB,IAAI;AACvD;"}
@@ -0,0 +1,302 @@
1
+ import { cleanObject as y } from "@tsed/core";
2
+ const v = ["get", "put", "post", "delete", "options", "head", "patch", "trace"], O = [
3
+ "format",
4
+ "minimum",
5
+ "maximum",
6
+ "exclusiveMinimum",
7
+ "exclusiveMaximum",
8
+ "minLength",
9
+ "maxLength",
10
+ "multipleOf",
11
+ "minItems",
12
+ "maxItems",
13
+ "uniqueItems",
14
+ "minProperties",
15
+ "maxProperties",
16
+ "additionalProperties",
17
+ "pattern",
18
+ "enum",
19
+ "default"
20
+ ], x = ["type", "items"], b = /^(application\/json|[^;\/ \t]+\/[^;\/ \t]+[+]json)[ \t]*(;.*)?$/, f = {
21
+ APPLICATION_X_WWW_URLENCODED: "application/x-www-form-urlencoded",
22
+ MULTIPART_FORM_DATA: "multipart/form-data"
23
+ };
24
+ function R(o) {
25
+ return o.replace("#/components/schemas/", "#/definitions/").replace("#/components/", "#/x-components/");
26
+ }
27
+ function p(o) {
28
+ if (Array.isArray(o))
29
+ o.forEach(p);
30
+ else if (typeof o == "object")
31
+ for (let e in o)
32
+ e === "$ref" ? o.$ref = R(o.$ref) : p(o[e]);
33
+ }
34
+ function d(o) {
35
+ return new RegExp(b, "i").test(o);
36
+ }
37
+ function u(o) {
38
+ const e = Object.keys(f).map((t) => f[t]);
39
+ return Object.keys(o).filter((t) => e.indexOf(t) > -1 || d(t));
40
+ }
41
+ function S(o) {
42
+ function e(t) {
43
+ const { scheme: s, type: c, name: i, bearerFormat: r, flows: n, ...a } = t;
44
+ switch (c) {
45
+ case "http":
46
+ if (s === "basic")
47
+ return {
48
+ ...a,
49
+ type: s
50
+ };
51
+ if (s === "bearer")
52
+ return {
53
+ ...a,
54
+ type: "apiKey",
55
+ name: "Authorization",
56
+ in: "header"
57
+ };
58
+ break;
59
+ case "oauth2":
60
+ const l = Object.keys(n)[0], m = n[l];
61
+ let h = l;
62
+ return h === "clientCredentials" ? h = "application" : h === "authorizationCode" && (h = "accessCode"), {
63
+ type: c,
64
+ flow: h,
65
+ authorizationUrl: m.authorizationUrl,
66
+ tokenUrl: m.tokenUrl,
67
+ scopes: m.scopes
68
+ };
69
+ }
70
+ }
71
+ return Object.entries(o).reduce(
72
+ (t, [s, c]) => {
73
+ const i = e(c);
74
+ return i && (t[s] = i), t;
75
+ },
76
+ {}
77
+ );
78
+ }
79
+ function E(o) {
80
+ let e = o.url;
81
+ const t = o.variables || {};
82
+ for (const c in t) {
83
+ const i = t[c] || {};
84
+ if (i.default) {
85
+ const r = RegExp(`{${c}}`, "g");
86
+ e = e.replace(r, i.default);
87
+ }
88
+ }
89
+ const s = new URL(e);
90
+ return {
91
+ host: s.host ? s.host : void 0,
92
+ basePath: s.pathname,
93
+ schemes: s.protocol !== null ? [s.protocol.substring(0, s.protocol.length - 1)] : void 0
94
+ };
95
+ }
96
+ class P {
97
+ constructor(e) {
98
+ this.spec = JSON.parse(JSON.stringify(e));
99
+ }
100
+ convertInfos() {
101
+ const e = this.spec.servers && this.spec.servers[0];
102
+ return e ? E(e) : {};
103
+ }
104
+ resolveReference(e, t, s) {
105
+ if (!t || !t.$ref)
106
+ return t;
107
+ const c = t.$ref;
108
+ if (c.startsWith("#")) {
109
+ const i = c.split("/").map((n) => n.replace(/~1/g, "/").replace(/~0/g, "~"));
110
+ i.shift();
111
+ let r = e;
112
+ return i.forEach((n) => {
113
+ r = r[n];
114
+ }), s ? JSON.parse(JSON.stringify(r)) : r;
115
+ }
116
+ }
117
+ convert() {
118
+ const e = {
119
+ swagger: "2.0",
120
+ ...this.convertInfos(),
121
+ paths: this.spec.paths ? this.convertOperations(this.spec.paths, this.spec) : void 0
122
+ };
123
+ return this.spec.components && (this.convertSchemas(), this.convertSecurityDefinitions(), this.spec["x-components"] = this.spec.components, delete this.spec.components, p(this.spec)), delete this.spec.servers, delete this.spec.openapi, delete this.spec["x-components"], y({
124
+ ...e,
125
+ ...this.spec
126
+ });
127
+ }
128
+ convertOperations(e, t) {
129
+ return Object.entries(e).reduce((s, [c, i]) => {
130
+ const r = s[c] = this.resolveReference({ ...t, paths: s }, i, !0);
131
+ return this.convertParameters(r), Object.keys(r).forEach((n) => {
132
+ if (v.indexOf(n) >= 0) {
133
+ const a = r[n] = this.resolveReference({ ...t, paths: s }, r[n], !0);
134
+ this.convertOperationParameters(a), this.convertResponses(a);
135
+ }
136
+ }), s;
137
+ }, e);
138
+ }
139
+ convertOperationParameters(e) {
140
+ let t, s, c, i;
141
+ if (e.parameters = e.parameters || [], e.requestBody) {
142
+ let r = this.resolveReference(this.spec, e.requestBody, !0);
143
+ if (e.requestBody.content) {
144
+ const n = u(e.requestBody.content)[0], a = { content: {} }, l = e.requestBody.content[n];
145
+ l && l.schema && l.schema.$ref && !l.schema.$ref.startsWith("#") && (r = this.resolveReference(this.spec, l.schema, !0), a.content[`${n}`] = { schema: r }, r = a);
146
+ }
147
+ if (r.name = "body", t = r.content, t && Object.keys(t).length) {
148
+ if (c = Object.keys(t).filter((n) => n.indexOf("/") > 0), i = c.filter((n) => n.indexOf("*") < 0), s = u(t)[0], delete r.content, [f.APPLICATION_X_WWW_URLENCODED, f.MULTIPART_FORM_DATA].includes(s))
149
+ if (e.consumes = i, r.in = "formData", r.schema = t[s].schema, r.schema = this.resolveReference(this.spec, r.schema, !0), r.schema.type === "object" && r.schema.properties) {
150
+ const n = r.schema.required || [];
151
+ Object.keys(r.schema.properties).forEach((a) => {
152
+ var m;
153
+ const l = r.schema.properties[a];
154
+ if (!l.readOnly) {
155
+ const h = {
156
+ name: a,
157
+ in: "formData",
158
+ schema: l
159
+ };
160
+ n.indexOf(a) >= 0 && (h.required = !0), (m = e.parameters) == null || m.push(h);
161
+ }
162
+ });
163
+ } else
164
+ e.parameters.push(r);
165
+ else s ? (e.consumes = i, r.in = "body", r.schema = t[s].schema, e.parameters.push(r)) : c && (e.consumes = i || ["application/octet-stream"], r.in = "body", r.name = r.name || "file", delete r.type, r.schema = t[c[0]].schema || {
166
+ type: "string",
167
+ format: "binary"
168
+ }, e.parameters.push(r));
169
+ r.schema && this.convertSchema(r.schema, "request");
170
+ }
171
+ delete e.requestBody;
172
+ }
173
+ this.convertParameters(e);
174
+ }
175
+ convertParameters(e) {
176
+ e.parameters !== void 0 && (e.parameters = e.parameters || [], (e.parameters || []).forEach((t, s) => {
177
+ if (t = e.parameters[s] = this.resolveReference(this.spec, t, !1), t.in !== "body") {
178
+ if (this.copySchemaProperties(t, O), this.copySchemaProperties(t, x), this.copySchemaXProperties(t), !t.description) {
179
+ const c = this.resolveReference(this.spec, t.schema, !1);
180
+ c && c.description && (t.description = c.description);
181
+ }
182
+ t.example !== void 0 && (t["x-example"] = t.example), delete t.schema, delete t.allowReserved, delete t.example;
183
+ }
184
+ if (t.type === "array")
185
+ switch (t.style || (t.in === "query" || t.in === "cookie" ? "form" : "simple")) {
186
+ case "matrix":
187
+ t.collectionFormat = t.explode ? void 0 : "csv";
188
+ break;
189
+ case "label":
190
+ t.collectionFormat = void 0;
191
+ break;
192
+ case "simple":
193
+ t.collectionFormat = "csv";
194
+ break;
195
+ case "spaceDelimited":
196
+ t.collectionFormat = "ssv";
197
+ break;
198
+ case "pipeDelimited":
199
+ t.collectionFormat = "pipes";
200
+ break;
201
+ case "deepOpbject":
202
+ t.collectionFormat = "multi";
203
+ break;
204
+ case "form":
205
+ t.collectionFormat = t.explode === !1 ? "csv" : "multi";
206
+ break;
207
+ }
208
+ delete t.style, delete t.explode;
209
+ }));
210
+ }
211
+ copySchemaProperties(e, t) {
212
+ let s = this.resolveReference(this.spec, e.schema, !0);
213
+ s && t.forEach((c) => {
214
+ const i = s[c];
215
+ c === "additionalProperties" && typeof i == "boolean" || i !== void 0 && (e[c] = i);
216
+ });
217
+ }
218
+ copySchemaXProperties(e) {
219
+ let t = this.resolveReference(this.spec, e.schema, !0);
220
+ t && Object.keys(t).forEach((s) => {
221
+ Reflect.hasOwnProperty.call(t, s) && !Reflect.hasOwnProperty.call(e, s) && s.startsWith("x-") && (e[s] = t[s]);
222
+ });
223
+ }
224
+ convertResponses(e) {
225
+ Object.keys(e.responses || {}).forEach((t) => {
226
+ const s = e.responses[t] = this.resolveReference(this.spec, e.responses[t], !0);
227
+ if (s.content) {
228
+ let c = null, i = null;
229
+ if (Object.keys(s.content).forEach((r) => {
230
+ const n = r.indexOf("*") < 0 ? r : "application/octet-stream";
231
+ e.produces ? e.produces.indexOf(n) < 0 && e.produces.push(n) : e.produces = [n];
232
+ const a = s.content[r];
233
+ c = c || a.schema, !i && d(n) && (i = a.schema), a.example && (s.examples = s.examples || {}, s.examples[n] = a.example);
234
+ }), c) {
235
+ s.schema = i || c;
236
+ const r = this.resolveReference(this.spec, s.schema, !0);
237
+ r && s.schema.$ref && !s.schema.$ref.startsWith("#") && (s.schema = r), this.convertSchema(s.schema, "response");
238
+ }
239
+ }
240
+ Object.keys(s.headers || {}).forEach((c) => {
241
+ const i = this.resolveReference(this.spec, s.headers[c], !0);
242
+ i.schema && (i.type = i.schema.type, i.format = i.schema.format, delete i.schema), s.headers[c] = i;
243
+ }), delete s.content;
244
+ });
245
+ }
246
+ convertSchema(e, t) {
247
+ if (e.oneOf && (delete e.oneOf, e.discriminator && delete e.discriminator), e.anyOf && (delete e.anyOf, e.discriminator && delete e.discriminator), e.allOf)
248
+ for (const s in e.allOf)
249
+ this.convertSchema(e.allOf[s], t);
250
+ switch (e.discriminator && (e.discriminator.mapping && this.convertDiscriminatorMapping(e.discriminator.mapping), e.discriminator = e.discriminator.propertyName), e.type) {
251
+ case "object":
252
+ e.properties && Object.keys(e.properties).forEach((s) => {
253
+ e.properties[s].writeOnly === !0 && t === "response" ? delete e.properties[s] : (this.convertSchema(e.properties[s], t), delete e.properties[s].writeOnly);
254
+ });
255
+ break;
256
+ case "array":
257
+ e.items && this.convertSchema(e.items, t);
258
+ }
259
+ e.nullable && (e["x-nullable"] = !0, delete e.nullable), e.deprecated !== void 0 && (e["x-deprecated"] === void 0 && (e["x-deprecated"] = e.deprecated), delete e.deprecated);
260
+ }
261
+ convertSchemas() {
262
+ this.spec.definitions = this.spec.components.schemas, Object.keys(this.spec.definitions || {}).forEach((e) => {
263
+ this.convertSchema(this.spec.definitions[e]);
264
+ }), delete this.spec.components.schemas;
265
+ }
266
+ convertDiscriminatorMapping(e) {
267
+ Object.keys(e).forEach((t) => {
268
+ const s = e[t];
269
+ if (typeof s != "string") {
270
+ console.warn(`Ignoring ${s} for ${t} in discriminator.mapping.`);
271
+ return;
272
+ }
273
+ let c;
274
+ if (/^[a-zA-Z0-9._-]+$/.test(s))
275
+ try {
276
+ c = this.resolveReference(this.spec, { $ref: `#/components/schemas/${s}` }, !1);
277
+ } catch (i) {
278
+ console.debug(`Error resolving ${s} for ${t} as schema name in discriminator.mapping: ${i}`);
279
+ }
280
+ if (!c)
281
+ try {
282
+ c = this.resolveReference(this.spec, { $ref: s }, !1);
283
+ } catch (i) {
284
+ console.debug(`Error resolving ${s} for ${t} in discriminator.mapping: ${i}`);
285
+ }
286
+ c ? (c["x-discriminator-value"] = t, c["x-ms-discriminator-value"] = t) : console.warn(`Unable to resolve ${s} for ${t} in discriminator.mapping.`);
287
+ });
288
+ }
289
+ convertSecurityDefinitions() {
290
+ this.spec.components.securitySchemes && (this.spec.securityDefinitions = S(this.spec.components.securitySchemes), delete this.spec.components.securitySchemes);
291
+ }
292
+ }
293
+ function k(o) {
294
+ return new P(o).convert();
295
+ }
296
+ export {
297
+ P as Converter,
298
+ E as transformInformation,
299
+ S as transformSecurity,
300
+ k as transformToOS2
301
+ };
302
+ //# sourceMappingURL=transformToOS2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformToOS2.js","sources":["../../../src/utils/transformToOS2.ts"],"sourcesContent":["\"use strict\";\nimport {cleanObject} from \"@tsed/core\";\nimport {OpenSpec2, OpenSpec3, type OS2Security, OS3Operation} from \"@tsed/openspec\";\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): OS2Security | undefined {\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 as never,\n authorizationUrl: flow.authorizationUrl,\n tokenUrl: flow.tokenUrl,\n scopes: flow.scopes\n };\n }\n }\n\n return Object.entries(securitySchemes).reduce(\n (securityDefinitions, [key, security]) => {\n const securityDefinition = map(security);\n\n if (securityDefinition) {\n securityDefinitions[key] = securityDefinition;\n }\n\n return securityDefinitions;\n },\n {} as Record<string, OS2Security>\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"],"names":["HTTP_METHODS","SCHEMA_PROPERTIES","ARRAY_PROPERTIES","APPLICATION_JSON_REGEX","SUPPORTED_MIME_TYPES","fixRef","ref","fixRefs","obj","key","isJsonMimeType","type","getSupportedMimeTypes","content","MIME_VALUES","transformSecurity","securitySchemes","map","security","scheme","name","bearerFormat","flows","props","flowName","flow","flowType","securityDefinitions","securityDefinition","transformInformation","server","serverUrl","variables","variable","variableObject","re","url","Converter","spec","base","shouldClone","keys","k","cur","cleanObject","paths","path","operation","pathObject","method","contentKey","mediaRanges","mediaTypes","param","structuredObj","data","mediaRange","range","required","schema","formDataParam","_a","i","prop","value","propName","code","response","anySchema","jsonSchema","mediaType","resolved","header","def","operationDirection","defName","mapping","payload","schemaNameOrRef","err","transformToOS2"],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { useDecorators as n, deepMerge as c } from "@tsed/core";
2
+ import { JsonEntityFn as p } from "../decorators/common/jsonEntityFn.js";
3
+ function M(r, m) {
4
+ const s = {};
5
+ return (...i) => {
6
+ const t = n(m(...i));
7
+ return t.Error = (o) => (s.message = o, n(
8
+ t,
9
+ s.message && p((e) => {
10
+ const a = e.parentSchema.get("#errorMessage") || {};
11
+ r === "required" ? e.parentSchema.customKey(
12
+ "errorMessage",
13
+ c(a, {
14
+ [r]: {
15
+ [e.propertyName]: o
16
+ }
17
+ })
18
+ ) : e.itemSchema.customKey(
19
+ "errorMessage",
20
+ c(a, {
21
+ [r]: o
22
+ })
23
+ );
24
+ })
25
+ )), t;
26
+ };
27
+ }
28
+ export {
29
+ M as withErrorMsg
30
+ };
31
+ //# sourceMappingURL=withErrorMsg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withErrorMsg.js","sources":["../../../src/utils/withErrorMsg.ts"],"sourcesContent":["import {deepMerge, useDecorators} from \"@tsed/core\";\n\nimport {JsonEntityFn} from \"../decorators/common/jsonEntityFn.js\";\n\nexport interface ErrorChainedMethods<T> {\n <T>(target: Object, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<T> | number): any;\n\n Error(msg: string): this;\n}\n\nexport type ErrorChainedDecorator<Decorator extends (...args: any[]) => any> = (\n ...args: Parameters<Decorator>\n) => ErrorChainedMethods<Decorator>;\n\nexport function withErrorMsg<Decorator extends (...args: any[]) => any>(\n errorKey: string,\n originalDecorator: Decorator\n): ErrorChainedDecorator<Decorator> {\n const schema: any = {};\n\n return ((...decoratorOptions: any[]) => {\n const decorator = useDecorators(originalDecorator(...decoratorOptions));\n (decorator as any).Error = (message: string) => {\n schema.message = message;\n\n return useDecorators(\n decorator,\n schema.message &&\n JsonEntityFn((store) => {\n // since errorMessage is a custom key, it is prefixed with a # to avoid conflict with JSON Schema keywords\n const errorMessage = store.parentSchema.get(\"#errorMessage\") || {};\n\n if (errorKey === \"required\") {\n store.parentSchema.customKey(\n \"errorMessage\",\n deepMerge(errorMessage, {\n [errorKey]: {\n [store.propertyName]: message\n }\n })\n );\n } else {\n store.itemSchema.customKey(\n \"errorMessage\",\n deepMerge(errorMessage, {\n [errorKey]: message\n })\n );\n }\n })\n );\n };\n\n return decorator;\n }) as any;\n}\n"],"names":["withErrorMsg","errorKey","originalDecorator","schema","decoratorOptions","decorator","useDecorators","message","JsonEntityFn","store","errorMessage","deepMerge"],"mappings":";;AAcgB,SAAAA,EACdC,GACAC,GACkC;AAClC,QAAMC,IAAc,CAAC;AAErB,SAAQ,IAAIC,MAA4B;AACtC,UAAMC,IAAYC,EAAcJ,EAAkB,GAAGE,CAAgB,CAAC;AACrE,WAAAC,EAAkB,QAAQ,CAACE,OAC1BJ,EAAO,UAAUI,GAEVD;AAAA,MACLD;AAAA,MACAF,EAAO,WACLK,EAAa,CAACC,MAAU;AAEtB,cAAMC,IAAeD,EAAM,aAAa,IAAI,eAAe,KAAK,CAAC;AAEjE,QAAIR,MAAa,aACfQ,EAAM,aAAa;AAAA,UACjB;AAAA,UACAE,EAAUD,GAAc;AAAA,YACtB,CAACT,CAAQ,GAAG;AAAA,cACV,CAACQ,EAAM,YAAY,GAAGF;AAAA,YAAA;AAAA,UAEzB,CAAA;AAAA,QACH,IAEAE,EAAM,WAAW;AAAA,UACf;AAAA,UACAE,EAAUD,GAAc;AAAA,YACtB,CAACT,CAAQ,GAAGM;AAAA,UACb,CAAA;AAAA,QACH;AAAA,MAEH,CAAA;AAAA,IACL,IAGKF;AAAA,EACT;AACF;"}
@@ -141,6 +141,12 @@ export class JsonEntityStore {
141
141
  }
142
142
  }
143
143
  }
144
+ set path(path) {
145
+ this.store.set("path", path);
146
+ }
147
+ get path() {
148
+ return this.store.get("path");
149
+ }
144
150
  getBestType() {
145
151
  return this.itemSchema.hasDiscriminator
146
152
  ? this.itemSchema.discriminator().base