@klerick/json-api-nestjs 10.0.0-beta.1

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 (349) hide show
  1. package/package.json +58 -0
  2. package/src/index.d.ts +9 -0
  3. package/src/index.js +32 -0
  4. package/src/index.js.map +1 -0
  5. package/src/lib/constants/constants.d.ts +9 -0
  6. package/src/lib/constants/constants.js +13 -0
  7. package/src/lib/constants/constants.js.map +1 -0
  8. package/src/lib/constants/default.d.ts +2 -0
  9. package/src/lib/constants/default.js +6 -0
  10. package/src/lib/constants/default.js.map +1 -0
  11. package/src/lib/constants/di.d.ts +14 -0
  12. package/src/lib/constants/di.js +18 -0
  13. package/src/lib/constants/di.js.map +1 -0
  14. package/src/lib/constants/index.d.ts +4 -0
  15. package/src/lib/constants/index.js +8 -0
  16. package/src/lib/constants/index.js.map +1 -0
  17. package/src/lib/constants/reflection.d.ts +2 -0
  18. package/src/lib/constants/reflection.js +6 -0
  19. package/src/lib/constants/reflection.js.map +1 -0
  20. package/src/lib/json-api.module.d.ts +5 -0
  21. package/src/lib/json-api.module.js +40 -0
  22. package/src/lib/json-api.module.js.map +1 -0
  23. package/src/lib/modules/atomic-operation/atomic-operation.module.d.ts +8 -0
  24. package/src/lib/modules/atomic-operation/atomic-operation.module.js +71 -0
  25. package/src/lib/modules/atomic-operation/atomic-operation.module.js.map +1 -0
  26. package/src/lib/modules/atomic-operation/constants/index.d.ts +5 -0
  27. package/src/lib/modules/atomic-operation/constants/index.js +9 -0
  28. package/src/lib/modules/atomic-operation/constants/index.js.map +1 -0
  29. package/src/lib/modules/atomic-operation/controllers/index.d.ts +1 -0
  30. package/src/lib/modules/atomic-operation/controllers/index.js +5 -0
  31. package/src/lib/modules/atomic-operation/controllers/index.js.map +1 -0
  32. package/src/lib/modules/atomic-operation/controllers/operation.controller.d.ts +13 -0
  33. package/src/lib/modules/atomic-operation/controllers/operation.controller.js +98 -0
  34. package/src/lib/modules/atomic-operation/controllers/operation.controller.js.map +1 -0
  35. package/src/lib/modules/atomic-operation/factory/async-iterator.d.ts +18 -0
  36. package/src/lib/modules/atomic-operation/factory/async-iterator.js +44 -0
  37. package/src/lib/modules/atomic-operation/factory/async-iterator.js.map +1 -0
  38. package/src/lib/modules/atomic-operation/factory/index.d.ts +4 -0
  39. package/src/lib/modules/atomic-operation/factory/index.js +8 -0
  40. package/src/lib/modules/atomic-operation/factory/index.js.map +1 -0
  41. package/src/lib/modules/atomic-operation/factory/map-controller-entity.d.ts +4 -0
  42. package/src/lib/modules/atomic-operation/factory/map-controller-entity.js +20 -0
  43. package/src/lib/modules/atomic-operation/factory/map-controller-entity.js.map +1 -0
  44. package/src/lib/modules/atomic-operation/factory/map-entity-name-to-entity.d.ts +4 -0
  45. package/src/lib/modules/atomic-operation/factory/map-entity-name-to-entity.js +13 -0
  46. package/src/lib/modules/atomic-operation/factory/map-entity-name-to-entity.js.map +1 -0
  47. package/src/lib/modules/atomic-operation/factory/zod-input-operation.d.ts +3 -0
  48. package/src/lib/modules/atomic-operation/factory/zod-input-operation.js +16 -0
  49. package/src/lib/modules/atomic-operation/factory/zod-input-operation.js.map +1 -0
  50. package/src/lib/modules/atomic-operation/pipes/input-operation.pipe.d.ts +7 -0
  51. package/src/lib/modules/atomic-operation/pipes/input-operation.pipe.js +31 -0
  52. package/src/lib/modules/atomic-operation/pipes/input-operation.pipe.js.map +1 -0
  53. package/src/lib/modules/atomic-operation/service/execute.service.d.ts +26 -0
  54. package/src/lib/modules/atomic-operation/service/execute.service.js +233 -0
  55. package/src/lib/modules/atomic-operation/service/execute.service.js.map +1 -0
  56. package/src/lib/modules/atomic-operation/service/explorer.service.d.ts +16 -0
  57. package/src/lib/modules/atomic-operation/service/explorer.service.js +94 -0
  58. package/src/lib/modules/atomic-operation/service/explorer.service.js.map +1 -0
  59. package/src/lib/modules/atomic-operation/service/index.d.ts +3 -0
  60. package/src/lib/modules/atomic-operation/service/index.js +7 -0
  61. package/src/lib/modules/atomic-operation/service/index.js.map +1 -0
  62. package/src/lib/modules/atomic-operation/service/swagger.service.d.ts +7 -0
  63. package/src/lib/modules/atomic-operation/service/swagger.service.js +99 -0
  64. package/src/lib/modules/atomic-operation/service/swagger.service.js.map +1 -0
  65. package/src/lib/modules/atomic-operation/types/index.d.ts +17 -0
  66. package/src/lib/modules/atomic-operation/types/index.js +3 -0
  67. package/src/lib/modules/atomic-operation/types/index.js.map +1 -0
  68. package/src/lib/modules/atomic-operation/utils/index.d.ts +1 -0
  69. package/src/lib/modules/atomic-operation/utils/index.js +5 -0
  70. package/src/lib/modules/atomic-operation/utils/index.js.map +1 -0
  71. package/src/lib/modules/atomic-operation/utils/zod/zod-helper.d.ts +751 -0
  72. package/src/lib/modules/atomic-operation/utils/zod/zod-helper.js +100 -0
  73. package/src/lib/modules/atomic-operation/utils/zod/zod-helper.js.map +1 -0
  74. package/src/lib/modules/index.d.ts +2 -0
  75. package/src/lib/modules/index.js +6 -0
  76. package/src/lib/modules/index.js.map +1 -0
  77. package/src/lib/modules/mixin/config/bindings.d.ts +3 -0
  78. package/src/lib/modules/mixin/config/bindings.js +176 -0
  79. package/src/lib/modules/mixin/config/bindings.js.map +1 -0
  80. package/src/lib/modules/mixin/controllers/index.d.ts +1 -0
  81. package/src/lib/modules/mixin/controllers/index.js +5 -0
  82. package/src/lib/modules/mixin/controllers/index.js.map +1 -0
  83. package/src/lib/modules/mixin/controllers/json-base.controller.d.ts +20 -0
  84. package/src/lib/modules/mixin/controllers/json-base.controller.js +36 -0
  85. package/src/lib/modules/mixin/controllers/json-base.controller.js.map +1 -0
  86. package/src/lib/modules/mixin/decorators/index.d.ts +2 -0
  87. package/src/lib/modules/mixin/decorators/index.js +6 -0
  88. package/src/lib/modules/mixin/decorators/index.js.map +1 -0
  89. package/src/lib/modules/mixin/decorators/inject-service/inject-service.decorator.d.ts +1 -0
  90. package/src/lib/modules/mixin/decorators/inject-service/inject-service.decorator.js +9 -0
  91. package/src/lib/modules/mixin/decorators/inject-service/inject-service.decorator.js.map +1 -0
  92. package/src/lib/modules/mixin/decorators/json-api/json-api.decorator.d.ts +3 -0
  93. package/src/lib/modules/mixin/decorators/json-api/json-api.decorator.js +14 -0
  94. package/src/lib/modules/mixin/decorators/json-api/json-api.decorator.js.map +1 -0
  95. package/src/lib/modules/mixin/factory/index.d.ts +1 -0
  96. package/src/lib/modules/mixin/factory/index.js +5 -0
  97. package/src/lib/modules/mixin/factory/index.js.map +1 -0
  98. package/src/lib/modules/mixin/factory/zod-validate.factory.d.ts +8 -0
  99. package/src/lib/modules/mixin/factory/zod-validate.factory.js +55 -0
  100. package/src/lib/modules/mixin/factory/zod-validate.factory.js.map +1 -0
  101. package/src/lib/modules/mixin/helpers/bind-controller.d.ts +3 -0
  102. package/src/lib/modules/mixin/helpers/bind-controller.js +81 -0
  103. package/src/lib/modules/mixin/helpers/bind-controller.js.map +1 -0
  104. package/src/lib/modules/mixin/helpers/create-controller.d.ts +2 -0
  105. package/src/lib/modules/mixin/helpers/create-controller.js +28 -0
  106. package/src/lib/modules/mixin/helpers/create-controller.js.map +1 -0
  107. package/src/lib/modules/mixin/helpers/index.d.ts +2 -0
  108. package/src/lib/modules/mixin/helpers/index.js +6 -0
  109. package/src/lib/modules/mixin/helpers/index.js.map +1 -0
  110. package/src/lib/modules/mixin/helpers/utils.d.ts +9 -0
  111. package/src/lib/modules/mixin/helpers/utils.js +30 -0
  112. package/src/lib/modules/mixin/helpers/utils.js.map +1 -0
  113. package/src/lib/modules/mixin/interceptors/error.interceptors.d.ts +9 -0
  114. package/src/lib/modules/mixin/interceptors/error.interceptors.js +34 -0
  115. package/src/lib/modules/mixin/interceptors/error.interceptors.js.map +1 -0
  116. package/src/lib/modules/mixin/interceptors/index.d.ts +2 -0
  117. package/src/lib/modules/mixin/interceptors/index.js +6 -0
  118. package/src/lib/modules/mixin/interceptors/index.js.map +1 -0
  119. package/src/lib/modules/mixin/interceptors/log-time.interceptors.d.ts +8 -0
  120. package/src/lib/modules/mixin/interceptors/log-time.interceptors.js +35 -0
  121. package/src/lib/modules/mixin/interceptors/log-time.interceptors.js.map +1 -0
  122. package/src/lib/modules/mixin/mixin.module.d.ts +5 -0
  123. package/src/lib/modules/mixin/mixin.module.js +51 -0
  124. package/src/lib/modules/mixin/mixin.module.js.map +1 -0
  125. package/src/lib/modules/mixin/pipe/check-item-entity/check-item-entity.pipe.d.ts +6 -0
  126. package/src/lib/modules/mixin/pipe/check-item-entity/check-item-entity.pipe.js +35 -0
  127. package/src/lib/modules/mixin/pipe/check-item-entity/check-item-entity.pipe.js.map +1 -0
  128. package/src/lib/modules/mixin/pipe/check-item-entity/index.d.ts +1 -0
  129. package/src/lib/modules/mixin/pipe/check-item-entity/index.js +5 -0
  130. package/src/lib/modules/mixin/pipe/check-item-entity/index.js.map +1 -0
  131. package/src/lib/modules/mixin/pipe/index.d.ts +14 -0
  132. package/src/lib/modules/mixin/pipe/index.js +67 -0
  133. package/src/lib/modules/mixin/pipe/index.js.map +1 -0
  134. package/src/lib/modules/mixin/pipe/parse-relationship-name/index.d.ts +1 -0
  135. package/src/lib/modules/mixin/pipe/parse-relationship-name/index.js +5 -0
  136. package/src/lib/modules/mixin/pipe/parse-relationship-name/index.js.map +1 -0
  137. package/src/lib/modules/mixin/pipe/parse-relationship-name/parse-relationship-name.pipe.d.ts +7 -0
  138. package/src/lib/modules/mixin/pipe/parse-relationship-name/parse-relationship-name.pipe.js +35 -0
  139. package/src/lib/modules/mixin/pipe/parse-relationship-name/parse-relationship-name.pipe.js.map +1 -0
  140. package/src/lib/modules/mixin/pipe/patch-input/index.d.ts +1 -0
  141. package/src/lib/modules/mixin/pipe/patch-input/index.js +5 -0
  142. package/src/lib/modules/mixin/pipe/patch-input/index.js.map +1 -0
  143. package/src/lib/modules/mixin/pipe/patch-input/patch-input.pipe.d.ts +7 -0
  144. package/src/lib/modules/mixin/pipe/patch-input/patch-input.pipe.js +30 -0
  145. package/src/lib/modules/mixin/pipe/patch-input/patch-input.pipe.js.map +1 -0
  146. package/src/lib/modules/mixin/pipe/patch-relationship/index.d.ts +1 -0
  147. package/src/lib/modules/mixin/pipe/patch-relationship/index.js +5 -0
  148. package/src/lib/modules/mixin/pipe/patch-relationship/index.js.map +1 -0
  149. package/src/lib/modules/mixin/pipe/patch-relationship/patch-relationship.pipe.d.ts +7 -0
  150. package/src/lib/modules/mixin/pipe/patch-relationship/patch-relationship.pipe.js +30 -0
  151. package/src/lib/modules/mixin/pipe/patch-relationship/patch-relationship.pipe.js.map +1 -0
  152. package/src/lib/modules/mixin/pipe/post-input/index.d.ts +1 -0
  153. package/src/lib/modules/mixin/pipe/post-input/index.js +5 -0
  154. package/src/lib/modules/mixin/pipe/post-input/index.js.map +1 -0
  155. package/src/lib/modules/mixin/pipe/post-input/post-input.pipe.d.ts +7 -0
  156. package/src/lib/modules/mixin/pipe/post-input/post-input.pipe.js +30 -0
  157. package/src/lib/modules/mixin/pipe/post-input/post-input.pipe.js.map +1 -0
  158. package/src/lib/modules/mixin/pipe/post-relationship/index.d.ts +1 -0
  159. package/src/lib/modules/mixin/pipe/post-relationship/index.js +5 -0
  160. package/src/lib/modules/mixin/pipe/post-relationship/index.js.map +1 -0
  161. package/src/lib/modules/mixin/pipe/post-relationship/post-relationship.pipe.d.ts +7 -0
  162. package/src/lib/modules/mixin/pipe/post-relationship/post-relationship.pipe.js +30 -0
  163. package/src/lib/modules/mixin/pipe/post-relationship/post-relationship.pipe.js.map +1 -0
  164. package/src/lib/modules/mixin/pipe/query/index.d.ts +1 -0
  165. package/src/lib/modules/mixin/pipe/query/index.js +5 -0
  166. package/src/lib/modules/mixin/pipe/query/index.js.map +1 -0
  167. package/src/lib/modules/mixin/pipe/query/query.pipe.d.ts +6 -0
  168. package/src/lib/modules/mixin/pipe/query/query.pipe.js +27 -0
  169. package/src/lib/modules/mixin/pipe/query/query.pipe.js.map +1 -0
  170. package/src/lib/modules/mixin/pipe/query-check-select-field/index.d.ts +1 -0
  171. package/src/lib/modules/mixin/pipe/query-check-select-field/index.js +5 -0
  172. package/src/lib/modules/mixin/pipe/query-check-select-field/index.js.map +1 -0
  173. package/src/lib/modules/mixin/pipe/query-check-select-field/query-check-select-field.d.ts +6 -0
  174. package/src/lib/modules/mixin/pipe/query-check-select-field/query-check-select-field.js +26 -0
  175. package/src/lib/modules/mixin/pipe/query-check-select-field/query-check-select-field.js.map +1 -0
  176. package/src/lib/modules/mixin/pipe/query-filed-on-include/index.d.ts +1 -0
  177. package/src/lib/modules/mixin/pipe/query-filed-on-include/index.js +5 -0
  178. package/src/lib/modules/mixin/pipe/query-filed-on-include/index.js.map +1 -0
  179. package/src/lib/modules/mixin/pipe/query-filed-on-include/query-filed-in-include.pipe.d.ts +5 -0
  180. package/src/lib/modules/mixin/pipe/query-filed-on-include/query-filed-in-include.pipe.js +59 -0
  181. package/src/lib/modules/mixin/pipe/query-filed-on-include/query-filed-in-include.pipe.js.map +1 -0
  182. package/src/lib/modules/mixin/pipe/query-input/index.d.ts +1 -0
  183. package/src/lib/modules/mixin/pipe/query-input/index.js +5 -0
  184. package/src/lib/modules/mixin/pipe/query-input/index.js.map +1 -0
  185. package/src/lib/modules/mixin/pipe/query-input/query-input.pipe.d.ts +7 -0
  186. package/src/lib/modules/mixin/pipe/query-input/query-input.pipe.js +30 -0
  187. package/src/lib/modules/mixin/pipe/query-input/query-input.pipe.js.map +1 -0
  188. package/src/lib/modules/mixin/service/entity-param-map.service.d.ts +9 -0
  189. package/src/lib/modules/mixin/service/entity-param-map.service.js +36 -0
  190. package/src/lib/modules/mixin/service/entity-param-map.service.js.map +1 -0
  191. package/src/lib/modules/mixin/service/error-format.service.d.ts +6 -0
  192. package/src/lib/modules/mixin/service/error-format.service.js +43 -0
  193. package/src/lib/modules/mixin/service/error-format.service.js.map +1 -0
  194. package/src/lib/modules/mixin/service/index.d.ts +3 -0
  195. package/src/lib/modules/mixin/service/index.js +7 -0
  196. package/src/lib/modules/mixin/service/index.js.map +1 -0
  197. package/src/lib/modules/mixin/service/json-api-transformer.service.d.ts +18 -0
  198. package/src/lib/modules/mixin/service/json-api-transformer.service.js +228 -0
  199. package/src/lib/modules/mixin/service/json-api-transformer.service.js.map +1 -0
  200. package/src/lib/modules/mixin/swagger/filter-operand-model.d.ts +26 -0
  201. package/src/lib/modules/mixin/swagger/filter-operand-model.js +113 -0
  202. package/src/lib/modules/mixin/swagger/filter-operand-model.js.map +1 -0
  203. package/src/lib/modules/mixin/swagger/index.d.ts +1 -0
  204. package/src/lib/modules/mixin/swagger/index.js +5 -0
  205. package/src/lib/modules/mixin/swagger/index.js.map +1 -0
  206. package/src/lib/modules/mixin/swagger/method/delete-one.d.ts +4 -0
  207. package/src/lib/modules/mixin/swagger/method/delete-one.js +35 -0
  208. package/src/lib/modules/mixin/swagger/method/delete-one.js.map +1 -0
  209. package/src/lib/modules/mixin/swagger/method/delete-relationship.d.ts +4 -0
  210. package/src/lib/modules/mixin/swagger/method/delete-relationship.js +54 -0
  211. package/src/lib/modules/mixin/swagger/method/delete-relationship.js.map +1 -0
  212. package/src/lib/modules/mixin/swagger/method/get-all.d.ts +4 -0
  213. package/src/lib/modules/mixin/swagger/method/get-all.js +241 -0
  214. package/src/lib/modules/mixin/swagger/method/get-all.js.map +1 -0
  215. package/src/lib/modules/mixin/swagger/method/get-one.d.ts +4 -0
  216. package/src/lib/modules/mixin/swagger/method/get-one.js +93 -0
  217. package/src/lib/modules/mixin/swagger/method/get-one.js.map +1 -0
  218. package/src/lib/modules/mixin/swagger/method/get-relationship.d.ts +4 -0
  219. package/src/lib/modules/mixin/swagger/method/get-relationship.js +48 -0
  220. package/src/lib/modules/mixin/swagger/method/get-relationship.js.map +1 -0
  221. package/src/lib/modules/mixin/swagger/method/index.d.ts +24 -0
  222. package/src/lib/modules/mixin/swagger/method/index.js +24 -0
  223. package/src/lib/modules/mixin/swagger/method/index.js.map +1 -0
  224. package/src/lib/modules/mixin/swagger/method/patch-one.d.ts +4 -0
  225. package/src/lib/modules/mixin/swagger/method/patch-one.js +43 -0
  226. package/src/lib/modules/mixin/swagger/method/patch-one.js.map +1 -0
  227. package/src/lib/modules/mixin/swagger/method/patch-relationship.d.ts +4 -0
  228. package/src/lib/modules/mixin/swagger/method/patch-relationship.js +55 -0
  229. package/src/lib/modules/mixin/swagger/method/patch-relationship.js.map +1 -0
  230. package/src/lib/modules/mixin/swagger/method/post-one.d.ts +4 -0
  231. package/src/lib/modules/mixin/swagger/method/post-one.js +35 -0
  232. package/src/lib/modules/mixin/swagger/method/post-one.js.map +1 -0
  233. package/src/lib/modules/mixin/swagger/method/post-relationship.d.ts +4 -0
  234. package/src/lib/modules/mixin/swagger/method/post-relationship.js +55 -0
  235. package/src/lib/modules/mixin/swagger/method/post-relationship.js.map +1 -0
  236. package/src/lib/modules/mixin/swagger/swagger-bind.service.d.ts +9 -0
  237. package/src/lib/modules/mixin/swagger/swagger-bind.service.js +81 -0
  238. package/src/lib/modules/mixin/swagger/swagger-bind.service.js.map +1 -0
  239. package/src/lib/modules/mixin/swagger/utils.d.ts +196 -0
  240. package/src/lib/modules/mixin/swagger/utils.js +305 -0
  241. package/src/lib/modules/mixin/swagger/utils.js.map +1 -0
  242. package/src/lib/modules/mixin/types/binding.type.d.ts +34 -0
  243. package/src/lib/modules/mixin/types/binding.type.js +3 -0
  244. package/src/lib/modules/mixin/types/binding.type.js.map +1 -0
  245. package/src/lib/modules/mixin/types/decorator-options.type.d.ts +9 -0
  246. package/src/lib/modules/mixin/types/decorator-options.type.js +3 -0
  247. package/src/lib/modules/mixin/types/decorator-options.type.js.map +1 -0
  248. package/src/lib/modules/mixin/types/index.d.ts +7 -0
  249. package/src/lib/modules/mixin/types/index.js +8 -0
  250. package/src/lib/modules/mixin/types/index.js.map +1 -0
  251. package/src/lib/modules/mixin/types/module.type.d.ts +6 -0
  252. package/src/lib/modules/mixin/types/module.type.js +3 -0
  253. package/src/lib/modules/mixin/types/module.type.js.map +1 -0
  254. package/src/lib/modules/mixin/types/orm-service.type.d.ts +13 -0
  255. package/src/lib/modules/mixin/types/orm-service.type.js +3 -0
  256. package/src/lib/modules/mixin/types/orm-service.type.js.map +1 -0
  257. package/src/lib/modules/mixin/zod/index.d.ts +7 -0
  258. package/src/lib/modules/mixin/zod/index.js +10 -0
  259. package/src/lib/modules/mixin/zod/index.js.map +1 -0
  260. package/src/lib/modules/mixin/zod/zod-input-patch-relationship-schema/index.d.ts +53 -0
  261. package/src/lib/modules/mixin/zod/zod-input-patch-relationship-schema/index.js +11 -0
  262. package/src/lib/modules/mixin/zod/zod-input-patch-relationship-schema/index.js.map +1 -0
  263. package/src/lib/modules/mixin/zod/zod-input-patch-schema/index.d.ts +17 -0
  264. package/src/lib/modules/mixin/zod/zod-input-patch-schema/index.js +23 -0
  265. package/src/lib/modules/mixin/zod/zod-input-patch-schema/index.js.map +1 -0
  266. package/src/lib/modules/mixin/zod/zod-input-post-relationship-schema/index.d.ts +59 -0
  267. package/src/lib/modules/mixin/zod/zod-input-post-relationship-schema/index.js +11 -0
  268. package/src/lib/modules/mixin/zod/zod-input-post-relationship-schema/index.js.map +1 -0
  269. package/src/lib/modules/mixin/zod/zod-input-post-schema/index.d.ts +18 -0
  270. package/src/lib/modules/mixin/zod/zod-input-post-schema/index.js +26 -0
  271. package/src/lib/modules/mixin/zod/zod-input-post-schema/index.js.map +1 -0
  272. package/src/lib/modules/mixin/zod/zod-input-query-schema/fields.d.ts +30 -0
  273. package/src/lib/modules/mixin/zod/zod-input-query-schema/fields.js +45 -0
  274. package/src/lib/modules/mixin/zod/zod-input-query-schema/fields.js.map +1 -0
  275. package/src/lib/modules/mixin/zod/zod-input-query-schema/filter.d.ts +1005 -0
  276. package/src/lib/modules/mixin/zod/zod-input-query-schema/filter.js +118 -0
  277. package/src/lib/modules/mixin/zod/zod-input-query-schema/filter.js.map +1 -0
  278. package/src/lib/modules/mixin/zod/zod-input-query-schema/include.d.ts +3 -0
  279. package/src/lib/modules/mixin/zod/zod-input-query-schema/include.js +19 -0
  280. package/src/lib/modules/mixin/zod/zod-input-query-schema/include.js.map +1 -0
  281. package/src/lib/modules/mixin/zod/zod-input-query-schema/index.d.ts +4965 -0
  282. package/src/lib/modules/mixin/zod/zod-input-query-schema/index.js +22 -0
  283. package/src/lib/modules/mixin/zod/zod-input-query-schema/index.js.map +1 -0
  284. package/src/lib/modules/mixin/zod/zod-input-query-schema/sort.d.ts +3 -0
  285. package/src/lib/modules/mixin/zod/zod-input-query-schema/sort.js +34 -0
  286. package/src/lib/modules/mixin/zod/zod-input-query-schema/sort.js.map +1 -0
  287. package/src/lib/modules/mixin/zod/zod-query-schema/fields.d.ts +15 -0
  288. package/src/lib/modules/mixin/zod/zod-query-schema/fields.js +35 -0
  289. package/src/lib/modules/mixin/zod/zod-query-schema/fields.js.map +1 -0
  290. package/src/lib/modules/mixin/zod/zod-query-schema/filter.d.ts +127 -0
  291. package/src/lib/modules/mixin/zod/zod-query-schema/filter.js +110 -0
  292. package/src/lib/modules/mixin/zod/zod-query-schema/filter.js.map +1 -0
  293. package/src/lib/modules/mixin/zod/zod-query-schema/include.d.ts +6 -0
  294. package/src/lib/modules/mixin/zod/zod-query-schema/include.js +17 -0
  295. package/src/lib/modules/mixin/zod/zod-query-schema/include.js.map +1 -0
  296. package/src/lib/modules/mixin/zod/zod-query-schema/index.d.ts +22 -0
  297. package/src/lib/modules/mixin/zod/zod-query-schema/index.js +34 -0
  298. package/src/lib/modules/mixin/zod/zod-query-schema/index.js.map +1 -0
  299. package/src/lib/modules/mixin/zod/zod-query-schema/sort.d.ts +19 -0
  300. package/src/lib/modules/mixin/zod/zod-query-schema/sort.js +35 -0
  301. package/src/lib/modules/mixin/zod/zod-query-schema/sort.js.map +1 -0
  302. package/src/lib/modules/mixin/zod/zod-share/attributes.d.ts +31 -0
  303. package/src/lib/modules/mixin/zod/zod-share/attributes.js +85 -0
  304. package/src/lib/modules/mixin/zod/zod-share/attributes.js.map +1 -0
  305. package/src/lib/modules/mixin/zod/zod-share/id.d.ts +5 -0
  306. package/src/lib/modules/mixin/zod/zod-share/id.js +14 -0
  307. package/src/lib/modules/mixin/zod/zod-share/id.js.map +1 -0
  308. package/src/lib/modules/mixin/zod/zod-share/index.d.ts +6 -0
  309. package/src/lib/modules/mixin/zod/zod-share/index.js +10 -0
  310. package/src/lib/modules/mixin/zod/zod-share/index.js.map +1 -0
  311. package/src/lib/modules/mixin/zod/zod-share/page.d.ts +12 -0
  312. package/src/lib/modules/mixin/zod/zod-share/page.js +22 -0
  313. package/src/lib/modules/mixin/zod/zod-share/page.js.map +1 -0
  314. package/src/lib/modules/mixin/zod/zod-share/rel-data.d.ts +50 -0
  315. package/src/lib/modules/mixin/zod/zod-share/rel-data.js +26 -0
  316. package/src/lib/modules/mixin/zod/zod-share/rel-data.js.map +1 -0
  317. package/src/lib/modules/mixin/zod/zod-share/relationships.d.ts +325 -0
  318. package/src/lib/modules/mixin/zod/zod-share/relationships.js +34 -0
  319. package/src/lib/modules/mixin/zod/zod-share/relationships.js.map +1 -0
  320. package/src/lib/modules/mixin/zod/zod-share/type.d.ts +8 -0
  321. package/src/lib/modules/mixin/zod/zod-share/type.js +8 -0
  322. package/src/lib/modules/mixin/zod/zod-share/type.js.map +1 -0
  323. package/src/lib/modules/mixin/zod/zod-utils.d.ts +15 -0
  324. package/src/lib/modules/mixin/zod/zod-utils.js +72 -0
  325. package/src/lib/modules/mixin/zod/zod-utils.js.map +1 -0
  326. package/src/lib/types/common-type.d.ts +5 -0
  327. package/src/lib/types/common-type.js +3 -0
  328. package/src/lib/types/common-type.js.map +1 -0
  329. package/src/lib/types/entity-param.type.d.ts +49 -0
  330. package/src/lib/types/entity-param.type.js +14 -0
  331. package/src/lib/types/entity-param.type.js.map +1 -0
  332. package/src/lib/types/error.types.d.ts +10 -0
  333. package/src/lib/types/error.types.js +3 -0
  334. package/src/lib/types/error.types.js.map +1 -0
  335. package/src/lib/types/index.d.ts +5 -0
  336. package/src/lib/types/index.js +9 -0
  337. package/src/lib/types/index.js.map +1 -0
  338. package/src/lib/types/module-options.types.d.ts +47 -0
  339. package/src/lib/types/module-options.types.js +3 -0
  340. package/src/lib/types/module-options.types.js.map +1 -0
  341. package/src/lib/types/utils-type.d.ts +12 -0
  342. package/src/lib/types/utils-type.js +3 -0
  343. package/src/lib/types/utils-type.js.map +1 -0
  344. package/src/lib/utils/index.d.ts +1 -0
  345. package/src/lib/utils/index.js +5 -0
  346. package/src/lib/utils/index.js.map +1 -0
  347. package/src/lib/utils/module-helper.d.ts +4 -0
  348. package/src/lib/utils/module-helper.js +27 -0
  349. package/src/lib/utils/module-helper.js.map +1 -0
@@ -0,0 +1,4 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { EntityClass } from '@klerick/json-api-nestjs-shared';
3
+ import { EntityParamMapService } from '../../service';
4
+ export declare function postRelationship<E extends object, IdKey extends string = 'id'>(controller: Type<any>, descriptor: PropertyDescriptor, entity: EntityClass<E>, mapEntity: EntityParamMapService<E, IdKey>, methodName: string): void;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.postRelationship = postRelationship;
4
+ const zod_openapi_1 = require("@anatine/zod-openapi");
5
+ const swagger_1 = require("@nestjs/swagger");
6
+ const utils_1 = require("../utils");
7
+ const zod_1 = require("../../zod");
8
+ const types_1 = require("../../../../types");
9
+ function postRelationship(controller, descriptor, entity, mapEntity, methodName) {
10
+ const entityName = entity.name;
11
+ const { relations, primaryColumnType } = mapEntity.getParamMap(entity);
12
+ (0, swagger_1.ApiParam)({
13
+ name: 'id',
14
+ required: true,
15
+ type: primaryColumnType === types_1.TypeField.number ? 'integer' : 'string',
16
+ description: `ID of resource "${entityName}"`,
17
+ })(controller, methodName, descriptor);
18
+ (0, swagger_1.ApiParam)({
19
+ name: 'relName',
20
+ required: true,
21
+ type: 'string',
22
+ enum: relations,
23
+ description: `Relation name of resource "${entityName}"`,
24
+ })(controller, methodName, descriptor);
25
+ (0, swagger_1.ApiBody)({
26
+ description: `Json api schema for update "${entityName}" item`,
27
+ schema: (0, zod_openapi_1.generateSchema)(zod_1.zodPatchRelationship),
28
+ required: true,
29
+ })(controller, methodName, descriptor);
30
+ (0, swagger_1.ApiOperation)({
31
+ summary: `Create list of relation for resource "${entityName}"`,
32
+ operationId: `${controller.constructor.name}_${methodName}`,
33
+ })(controller, methodName, descriptor);
34
+ (0, swagger_1.ApiResponse)({
35
+ status: 200,
36
+ schema: utils_1.schemaTypeForRelation,
37
+ description: `Item/s of relation for "${entityName}" has been created`,
38
+ })(controller, methodName, descriptor);
39
+ (0, swagger_1.ApiResponse)({
40
+ status: 400,
41
+ description: 'Wrong url parameters',
42
+ schema: utils_1.errorSchema,
43
+ })(controller, methodName, descriptor);
44
+ (0, swagger_1.ApiResponse)({
45
+ status: 422,
46
+ description: 'Incorrect type for relation',
47
+ schema: utils_1.errorSchema,
48
+ })(controller, methodName, descriptor);
49
+ (0, swagger_1.ApiResponse)({
50
+ status: 404,
51
+ description: 'Resource not found ',
52
+ schema: utils_1.errorSchema,
53
+ })(controller, methodName, descriptor);
54
+ }
55
+ //# sourceMappingURL=post-relationship.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-relationship.js","sourceRoot":"","sources":["../../../../../../../../../../libs/json-api/json-api-nestjs/src/lib/modules/mixin/swagger/method/post-relationship.ts"],"names":[],"mappings":";;AAcA,4CA8DC;AA3ED,sDAAsD;AAKtD,6CAA+E;AAG/E,oCAA8D;AAC9D,mCAAiD;AACjD,6CAA8C;AAG9C,SAAgB,gBAAgB,CAC9B,UAAqB,EACrB,UAA8B,EAC9B,MAAsB,EACtB,SAA0C,EAC1C,UAAkB;IAElB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAE/B,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAEvE,IAAA,kBAAQ,EAAC;QACP,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,iBAAiB,KAAK,iBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;QACnE,WAAW,EAAE,mBAAmB,UAAU,GAAG;KAC9C,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,kBAAQ,EAAC;QACP,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAgB;QACtB,WAAW,EAAE,8BAA8B,UAAU,GAAG;KACzD,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,iBAAO,EAAC;QACN,WAAW,EAAE,+BAA+B,UAAU,QAAQ;QAC9D,MAAM,EAAE,IAAA,4BAAc,EAAC,0BAAoB,CAExB;QACnB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,sBAAY,EAAC;QACX,OAAO,EAAE,yCAAyC,UAAU,GAAG;QAC/D,WAAW,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,UAAU,EAAE;KAC5D,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,qBAAW,EAAC;QACV,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,6BAAqB;QAC7B,WAAW,EAAE,2BAA2B,UAAU,oBAAoB;KACvE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,qBAAW,EAAC;QACV,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,sBAAsB;QACnC,MAAM,EAAE,mBAAW;KACpB,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,qBAAW,EAAC;QACV,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,6BAA6B;QAC1C,MAAM,EAAE,mBAAW;KACpB,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,qBAAW,EAAC;QACV,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,qBAAqB;QAClC,MAAM,EAAE,mBAAW;KACpB,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ export declare class SwaggerBindService<E extends object, IdKey extends string = 'id'> implements OnModuleInit {
3
+ private entity;
4
+ private discoveryService;
5
+ private config;
6
+ private mapEntity;
7
+ onModuleInit(): void;
8
+ initSwagger(): void;
9
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SwaggerBindService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const constants_1 = require("@nestjs/swagger/dist/constants");
7
+ const swagger_1 = require("@nestjs/swagger");
8
+ const core_1 = require("@nestjs/core");
9
+ const json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
10
+ const constants_2 = require("@nestjs/common/constants");
11
+ const constants_3 = require("../../../constants");
12
+ const helpers_1 = require("../helpers");
13
+ const controllers_1 = require("../controllers");
14
+ const filter_operand_model_1 = require("./filter-operand-model");
15
+ const utils_1 = require("./utils");
16
+ const bindings_1 = require("../config/bindings");
17
+ const method_1 = require("./method");
18
+ const service_1 = require("../service");
19
+ let SwaggerBindService = class SwaggerBindService {
20
+ entity;
21
+ discoveryService;
22
+ config;
23
+ mapEntity;
24
+ onModuleInit() {
25
+ this.initSwagger();
26
+ }
27
+ initSwagger() {
28
+ const controllerName = (0, helpers_1.nameIt)((0, helpers_1.getProviderName)(this.entity, constants_3.JSON_API_CONTROLLER_POSTFIX), controllers_1.JsonBaseController).name;
29
+ const controllerInst = this.discoveryService
30
+ .getControllers()
31
+ .find((i) => i.name === controllerName ||
32
+ this.entity ===
33
+ Reflect.getMetadata(constants_3.JSON_API_DECORATOR_ENTITY, i.instance.constructor));
34
+ if (!controllerInst)
35
+ throw new Error(`Controller for ${this.entity.name} is empty`);
36
+ const mapProps = this.mapEntity.getParamMap(this.entity);
37
+ if (!mapProps)
38
+ throw new Error(`ZodEntityProps for ${this.entity.name} is empty`);
39
+ const controller = controllerInst.instance.constructor;
40
+ const apiTag = Reflect.getMetadata(constants_1.DECORATORS.API_TAGS, controller);
41
+ if (!apiTag) {
42
+ (0, swagger_1.ApiTags)(this.config['overrideRoute'] || this.entity.name)(controller);
43
+ }
44
+ (0, swagger_1.ApiTags)(this.entity.name)(controller);
45
+ (0, swagger_1.ApiExtraModels)(filter_operand_model_1.FilterOperand)(controller);
46
+ (0, swagger_1.ApiExtraModels)((0, utils_1.createApiModels)(this.entity, mapProps))(controller);
47
+ const { allowMethod = json_api_nestjs_shared_1.ObjectTyped.keys(bindings_1.Bindings) } = this.config;
48
+ for (const method of json_api_nestjs_shared_1.ObjectTyped.keys(bindings_1.Bindings)) {
49
+ if (!allowMethod.includes(method))
50
+ continue;
51
+ if (!(method in method_1.swaggerMethod))
52
+ continue;
53
+ const descriptor = Reflect.getOwnPropertyDescriptor(controller.prototype, method);
54
+ if (!descriptor)
55
+ throw new Error(`Descriptor for entity controller ${this.entity.name} is empty`);
56
+ method_1.swaggerMethod[method](controller.prototype, descriptor, this.entity, this.mapEntity, method);
57
+ Reflect.defineMetadata(constants_2.PARAMTYPES_METADATA, [Object], controller.prototype, method);
58
+ }
59
+ }
60
+ };
61
+ exports.SwaggerBindService = SwaggerBindService;
62
+ tslib_1.__decorate([
63
+ (0, common_1.Inject)(constants_3.CURRENT_ENTITY),
64
+ tslib_1.__metadata("design:type", Object)
65
+ ], SwaggerBindService.prototype, "entity", void 0);
66
+ tslib_1.__decorate([
67
+ (0, common_1.Inject)(core_1.DiscoveryService),
68
+ tslib_1.__metadata("design:type", core_1.DiscoveryService)
69
+ ], SwaggerBindService.prototype, "discoveryService", void 0);
70
+ tslib_1.__decorate([
71
+ (0, common_1.Inject)(constants_3.CONTROLLER_OPTIONS_TOKEN),
72
+ tslib_1.__metadata("design:type", Object)
73
+ ], SwaggerBindService.prototype, "config", void 0);
74
+ tslib_1.__decorate([
75
+ (0, common_1.Inject)(service_1.EntityParamMapService),
76
+ tslib_1.__metadata("design:type", service_1.EntityParamMapService)
77
+ ], SwaggerBindService.prototype, "mapEntity", void 0);
78
+ exports.SwaggerBindService = SwaggerBindService = tslib_1.__decorate([
79
+ (0, common_1.Injectable)()
80
+ ], SwaggerBindService);
81
+ //# sourceMappingURL=swagger-bind.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swagger-bind.service.js","sourceRoot":"","sources":["../../../../../../../../../libs/json-api/json-api-nestjs/src/lib/modules/mixin/swagger/swagger-bind.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,196 @@
1
+ import { SchemaObject } from '@nestjs/swagger/dist/interfaces/open-api-spec.interface';
2
+ import { AnyEntity, EntityClass, PropertyKeys } from '@klerick/json-api-nestjs-shared';
3
+ import { EntityParam } from '../../../types';
4
+ import { EntityParamMap } from '../types';
5
+ import { EntityParamMapService } from '../service';
6
+ export declare function assertIsKeysOfObject<E extends object>(object: EntityClass<E>, element: any): asserts element is readonly [keyof E];
7
+ export declare function assertIsKeyOfObject<E extends object>(object: EntityClass<E>, element: unknown): asserts element is PropertyKeys<E>;
8
+ export declare const errorSchema: {
9
+ type: string;
10
+ properties: {
11
+ statusCode: {
12
+ type: string;
13
+ };
14
+ error: {
15
+ type: string;
16
+ };
17
+ message: {
18
+ type: string;
19
+ items: {
20
+ type: string;
21
+ properties: {
22
+ code: {
23
+ type: string;
24
+ };
25
+ message: {
26
+ type: string;
27
+ };
28
+ path: {
29
+ type: string;
30
+ items: {
31
+ type: string;
32
+ };
33
+ };
34
+ keys: {
35
+ type: string;
36
+ items: {
37
+ type: string;
38
+ };
39
+ };
40
+ };
41
+ required: string[];
42
+ };
43
+ };
44
+ };
45
+ };
46
+ export declare function jsonSchemaResponse<E extends object, IdKey extends string = 'id'>(entity: EntityClass<E>, mapEntity: EntityParamMapService<E, IdKey>, array?: boolean): {
47
+ type: string;
48
+ properties: {
49
+ meta: {
50
+ type: string;
51
+ };
52
+ data: {
53
+ type: string;
54
+ properties: {
55
+ type: {
56
+ type: string;
57
+ const: string;
58
+ };
59
+ id: {
60
+ type: string;
61
+ };
62
+ attributes: {
63
+ type: string;
64
+ properties: Record<string, SchemaObject>;
65
+ };
66
+ relationships: {
67
+ type: string;
68
+ properties: Record<string, SchemaObject>;
69
+ };
70
+ links: {
71
+ type: string;
72
+ properties: {
73
+ self: {
74
+ type: string;
75
+ };
76
+ };
77
+ required: string[];
78
+ };
79
+ };
80
+ } | {
81
+ type: string;
82
+ items: {
83
+ type: string;
84
+ properties: {
85
+ type: {
86
+ type: string;
87
+ const: string;
88
+ };
89
+ id: {
90
+ type: string;
91
+ };
92
+ attributes: {
93
+ type: string;
94
+ properties: Record<string, SchemaObject>;
95
+ };
96
+ relationships: {
97
+ type: string;
98
+ properties: Record<string, SchemaObject>;
99
+ };
100
+ links: {
101
+ type: string;
102
+ properties: {
103
+ self: {
104
+ type: string;
105
+ };
106
+ };
107
+ required: string[];
108
+ };
109
+ };
110
+ };
111
+ };
112
+ includes: {
113
+ type: string;
114
+ items: {
115
+ type: string;
116
+ properties: {
117
+ type: {
118
+ type: string;
119
+ };
120
+ id: {
121
+ type: string;
122
+ };
123
+ attributes: {
124
+ type: string;
125
+ };
126
+ relationships: {
127
+ type: string;
128
+ properties: {
129
+ relationName: {
130
+ properties: {
131
+ links: {
132
+ type: string;
133
+ properties: {
134
+ self: {
135
+ type: string;
136
+ };
137
+ };
138
+ required: string[];
139
+ };
140
+ };
141
+ required: string[];
142
+ };
143
+ };
144
+ };
145
+ links: {
146
+ type: string;
147
+ properties: {
148
+ self: {
149
+ type: string;
150
+ };
151
+ };
152
+ required: string[];
153
+ };
154
+ };
155
+ required: string[];
156
+ };
157
+ };
158
+ };
159
+ required: string[];
160
+ };
161
+ export declare function createApiModels<E extends object>(entity: EntityClass<E>, mapEntity: EntityParam<E>): EntityClass<E>;
162
+ export declare const schemaTypeForRelation: {
163
+ type: string;
164
+ properties: {
165
+ data: {
166
+ oneOf: ({
167
+ type: string;
168
+ properties: {
169
+ type: {
170
+ type: string;
171
+ };
172
+ id: {
173
+ type: string;
174
+ };
175
+ };
176
+ } | {
177
+ type: string;
178
+ items?: undefined;
179
+ } | {
180
+ type: string;
181
+ items: {
182
+ type: string;
183
+ properties: {
184
+ type: {
185
+ type: string;
186
+ };
187
+ id: {
188
+ type: string;
189
+ };
190
+ };
191
+ };
192
+ })[];
193
+ };
194
+ };
195
+ };
196
+ export declare function getEntityMapProps<E extends object>(mapEntity: EntityParamMap<EntityClass<AnyEntity>>, entity: EntityClass<E>): EntityParam<EntityClass<object>>;
@@ -0,0 +1,305 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.schemaTypeForRelation = exports.errorSchema = void 0;
4
+ exports.assertIsKeysOfObject = assertIsKeysOfObject;
5
+ exports.assertIsKeyOfObject = assertIsKeyOfObject;
6
+ exports.jsonSchemaResponse = jsonSchemaResponse;
7
+ exports.createApiModels = createApiModels;
8
+ exports.getEntityMapProps = getEntityMapProps;
9
+ const swagger_1 = require("@nestjs/swagger");
10
+ const json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
11
+ const change_case_commonjs_1 = require("change-case-commonjs");
12
+ const types_1 = require("../../../types");
13
+ function assertIsKeysOfObject(object, element) {
14
+ if (!Array.isArray(element)) {
15
+ throw new Error(element + ' is not keys of ' + object.name);
16
+ }
17
+ if (false)
18
+ throw new Error(element + ' not exist in ' + object.name);
19
+ }
20
+ function assertIsKeyOfObject(object, element) {
21
+ if (false)
22
+ throw new Error(element + 'not exist in ' + object.name);
23
+ }
24
+ exports.errorSchema = {
25
+ type: 'object',
26
+ properties: {
27
+ statusCode: {
28
+ type: 'number',
29
+ },
30
+ error: {
31
+ type: 'string',
32
+ },
33
+ message: {
34
+ type: 'array',
35
+ items: {
36
+ type: 'object',
37
+ properties: {
38
+ code: {
39
+ type: 'string',
40
+ },
41
+ message: {
42
+ type: 'string',
43
+ },
44
+ path: {
45
+ type: 'array',
46
+ items: {
47
+ type: 'string',
48
+ },
49
+ },
50
+ keys: {
51
+ type: 'array',
52
+ items: {
53
+ type: 'string',
54
+ },
55
+ },
56
+ },
57
+ required: ['code', 'message', 'path'],
58
+ },
59
+ },
60
+ },
61
+ };
62
+ function jsonSchemaResponse(entity, mapEntity, array = false) {
63
+ const { propsType, relations, relationProperty, primaryColumnName } = mapEntity.getParamMap(entity);
64
+ assertIsKeysOfObject(entity, relations);
65
+ const dataType = {
66
+ type: 'object',
67
+ properties: {
68
+ type: {
69
+ type: 'string',
70
+ const: (0, change_case_commonjs_1.kebabCase)(entity.name),
71
+ },
72
+ id: {
73
+ type: 'string',
74
+ },
75
+ attributes: {
76
+ type: 'object',
77
+ properties: json_api_nestjs_shared_1.ObjectTyped.entries(propsType)
78
+ .filter(([name]) => name !== primaryColumnName)
79
+ .reduce((acum, [name, type]) => {
80
+ assertIsKeyOfObject(entity, name);
81
+ switch (type) {
82
+ case types_1.TypeField.array:
83
+ acum[name.toString()] = {
84
+ type: 'array',
85
+ items: {
86
+ type: 'string',
87
+ },
88
+ };
89
+ break;
90
+ case types_1.TypeField.date:
91
+ acum[name.toString()] = {
92
+ format: 'date-time',
93
+ type: 'string',
94
+ };
95
+ break;
96
+ case types_1.TypeField.number:
97
+ acum[name.toString()] = {
98
+ type: 'integer',
99
+ };
100
+ break;
101
+ case types_1.TypeField.boolean:
102
+ acum[name.toString()] = {
103
+ type: 'boolean',
104
+ };
105
+ break;
106
+ default:
107
+ acum[name.toString()] = {
108
+ type: 'string',
109
+ };
110
+ }
111
+ return acum;
112
+ }, {}),
113
+ },
114
+ relationships: {
115
+ type: 'object',
116
+ properties: json_api_nestjs_shared_1.ObjectTyped.keys(relationProperty).reduce((acum, name) => {
117
+ const dataItem = {
118
+ type: 'object',
119
+ properties: {
120
+ type: {
121
+ type: 'string',
122
+ const: mapEntity.getParamMap(Reflect.get(relationProperty, name).entityClass).typeName,
123
+ },
124
+ id: {
125
+ type: 'string',
126
+ },
127
+ },
128
+ required: ['type', 'id'],
129
+ };
130
+ const dataArray = {
131
+ type: 'array',
132
+ items: dataItem,
133
+ };
134
+ acum[name] = {
135
+ type: 'object',
136
+ properties: {
137
+ links: {
138
+ type: 'object',
139
+ properties: {
140
+ self: {
141
+ type: 'string',
142
+ },
143
+ },
144
+ required: ['self'],
145
+ },
146
+ data: Reflect.get(relationProperty, name).isArray
147
+ ? dataArray
148
+ : dataItem,
149
+ },
150
+ required: ['links'],
151
+ };
152
+ return acum;
153
+ }, {}),
154
+ },
155
+ links: {
156
+ type: 'object',
157
+ properties: {
158
+ self: {
159
+ type: 'string',
160
+ },
161
+ },
162
+ required: ['self'],
163
+ },
164
+ },
165
+ };
166
+ const dataTypeArra = {
167
+ type: 'array',
168
+ items: dataType,
169
+ };
170
+ return {
171
+ type: 'object',
172
+ properties: {
173
+ meta: {
174
+ type: 'object',
175
+ },
176
+ data: array ? dataTypeArra : dataType,
177
+ includes: {
178
+ type: 'array',
179
+ items: {
180
+ type: 'object',
181
+ properties: {
182
+ type: {
183
+ type: 'string',
184
+ },
185
+ id: {
186
+ type: 'string',
187
+ },
188
+ attributes: {
189
+ type: 'object',
190
+ },
191
+ relationships: {
192
+ type: 'object',
193
+ properties: {
194
+ relationName: {
195
+ properties: {
196
+ links: {
197
+ type: 'object',
198
+ properties: {
199
+ self: {
200
+ type: 'string',
201
+ },
202
+ },
203
+ required: ['self'],
204
+ },
205
+ },
206
+ required: ['links'],
207
+ },
208
+ },
209
+ },
210
+ links: {
211
+ type: 'object',
212
+ properties: {
213
+ self: {
214
+ type: 'string',
215
+ },
216
+ },
217
+ required: ['self'],
218
+ },
219
+ },
220
+ required: ['type', 'id', 'attributes'],
221
+ },
222
+ },
223
+ },
224
+ required: ['meta', 'data'],
225
+ };
226
+ }
227
+ function createApiModels(entity, mapEntity) {
228
+ const { propsType, props, relations, propsNullable, relationProperty } = mapEntity;
229
+ assertIsKeysOfObject(entity, propsNullable);
230
+ assertIsKeysOfObject(entity, relations);
231
+ for (const name of props) {
232
+ let currentType;
233
+ let required = false;
234
+ let isArray = false;
235
+ assertIsKeyOfObject(entity, name);
236
+ required = !propsNullable.includes(name);
237
+ const type = propsType[name];
238
+ isArray = type === 'array';
239
+ switch (type) {
240
+ case types_1.TypeField.date:
241
+ currentType = Date;
242
+ break;
243
+ case types_1.TypeField.number:
244
+ currentType = Number;
245
+ break;
246
+ case types_1.TypeField.boolean:
247
+ currentType = Boolean;
248
+ break;
249
+ default:
250
+ currentType = String;
251
+ }
252
+ if (relations.includes(name)) {
253
+ const propsRel = Reflect.get(relationProperty, name);
254
+ currentType = propsRel.entityClass;
255
+ isArray = propsRel.isArray;
256
+ }
257
+ (0, swagger_1.ApiProperty)({
258
+ required,
259
+ isArray,
260
+ type: () => currentType,
261
+ })(entity.prototype, name.toString());
262
+ }
263
+ for (const name of relations) {
264
+ const propsRel = Reflect.get(relationProperty, name);
265
+ (0, swagger_1.ApiProperty)({
266
+ required: !propsRel.nullable,
267
+ isArray: propsRel.isArray,
268
+ type: propsRel.entityClass,
269
+ })(entity.prototype, name.toString());
270
+ }
271
+ return entity;
272
+ }
273
+ const dataType = {
274
+ type: 'object',
275
+ properties: {
276
+ type: {
277
+ type: 'string',
278
+ },
279
+ id: {
280
+ type: 'string',
281
+ },
282
+ },
283
+ };
284
+ exports.schemaTypeForRelation = {
285
+ type: 'object',
286
+ properties: {
287
+ data: {
288
+ oneOf: [
289
+ dataType,
290
+ { type: 'null' },
291
+ {
292
+ type: 'array',
293
+ items: dataType,
294
+ },
295
+ ],
296
+ },
297
+ },
298
+ };
299
+ function getEntityMapProps(mapEntity, entity) {
300
+ const entityMap = mapEntity.get(entity);
301
+ if (!entityMap)
302
+ throw new Error('Entity not found in map');
303
+ return entityMap;
304
+ }
305
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../../../libs/json-api/json-api-nestjs/src/lib/modules/mixin/swagger/utils.ts"],"names":[],"mappings":"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"}