@elsikora/nestjs-crud-automator 1.9.0-dev.2 → 1.10.0-dev.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 (411) hide show
  1. package/dist/cjs/class/api/index.d.ts +2 -1
  2. package/dist/cjs/class/api/subscriber/base.class.d.ts +3 -0
  3. package/dist/cjs/class/api/subscriber/base.class.js +7 -0
  4. package/dist/cjs/class/api/subscriber/base.class.js.map +1 -0
  5. package/dist/cjs/class/api/subscriber/discovery-service.class.d.ts +9 -0
  6. package/dist/cjs/class/api/subscriber/discovery-service.class.js +46 -0
  7. package/dist/cjs/class/api/subscriber/discovery-service.class.js.map +1 -0
  8. package/dist/cjs/class/api/subscriber/executor.class.d.ts +10 -0
  9. package/dist/cjs/class/api/subscriber/executor.class.js +52 -0
  10. package/dist/cjs/class/api/subscriber/executor.class.js.map +1 -0
  11. package/dist/cjs/class/api/subscriber/function-base.class.d.ts +5 -0
  12. package/dist/cjs/class/api/subscriber/function-base.class.js +9 -0
  13. package/dist/cjs/class/api/subscriber/function-base.class.js.map +1 -0
  14. package/dist/cjs/class/api/subscriber/index.d.ts +6 -0
  15. package/dist/cjs/class/api/subscriber/registry.class.d.ts +15 -0
  16. package/dist/cjs/class/api/subscriber/registry.class.js +57 -0
  17. package/dist/cjs/class/api/subscriber/registry.class.js.map +1 -0
  18. package/dist/cjs/class/api/subscriber/route-base.class.d.ts +5 -0
  19. package/dist/cjs/class/api/subscriber/route-base.class.js +9 -0
  20. package/dist/cjs/class/api/subscriber/route-base.class.js.map +1 -0
  21. package/dist/cjs/class/metadata-storage.class.js +1 -2
  22. package/dist/cjs/class/metadata-storage.class.js.map +1 -1
  23. package/dist/cjs/class/utility/dto/property/factory/number.class.js +1 -0
  24. package/dist/cjs/class/utility/dto/property/factory/number.class.js.map +1 -1
  25. package/dist/cjs/class/utility/dto/property/factory/relation.class.js +1 -0
  26. package/dist/cjs/class/utility/dto/property/factory/relation.class.js.map +1 -1
  27. package/dist/cjs/class/utility/dto/strategy/body.class.js +1 -0
  28. package/dist/cjs/class/utility/dto/strategy/body.class.js.map +1 -1
  29. package/dist/cjs/class/utility/dto/strategy/query.class.js +1 -0
  30. package/dist/cjs/class/utility/dto/strategy/query.class.js.map +1 -1
  31. package/dist/cjs/class/utility/dto/strategy/request.class.js +1 -0
  32. package/dist/cjs/class/utility/dto/strategy/request.class.js.map +1 -1
  33. package/dist/cjs/class/utility/dto/strategy/response.class.js +1 -0
  34. package/dist/cjs/class/utility/dto/strategy/response.class.js.map +1 -1
  35. package/dist/cjs/constant/decorator/api/controller.constant.d.ts +1 -0
  36. package/dist/cjs/constant/decorator/api/controller.constant.js +2 -0
  37. package/dist/cjs/constant/decorator/api/controller.constant.js.map +1 -1
  38. package/dist/cjs/constant/decorator/api/property-describe.constant.d.ts +1 -1
  39. package/dist/cjs/constant/decorator/api/property-describe.constant.js +2 -2
  40. package/dist/cjs/constant/decorator/api/property-describe.constant.js.map +1 -1
  41. package/dist/cjs/constant/decorator/api/service.constant.d.ts +3 -0
  42. package/dist/cjs/constant/decorator/api/service.constant.js +9 -0
  43. package/dist/cjs/constant/decorator/api/service.constant.js.map +1 -0
  44. package/dist/cjs/constant/decorator/api/subscriber.constant.d.ts +4 -0
  45. package/dist/cjs/constant/decorator/api/subscriber.constant.js +11 -0
  46. package/dist/cjs/constant/decorator/api/subscriber.constant.js.map +1 -0
  47. package/dist/cjs/constant/utility/dto/constant.js +1 -0
  48. package/dist/cjs/constant/utility/dto/constant.js.map +1 -1
  49. package/dist/cjs/constant/validator/has-paired-custom-suffixes-fields.constant.js +0 -1
  50. package/dist/cjs/constant/validator/has-paired-custom-suffixes-fields.constant.js.map +1 -1
  51. package/dist/cjs/decorator/api/controller/index.d.ts +1 -0
  52. package/dist/cjs/decorator/api/controller/observable.decorator.d.ts +4 -0
  53. package/dist/cjs/decorator/api/controller/observable.decorator.js +15 -0
  54. package/dist/cjs/decorator/api/controller/observable.decorator.js.map +1 -0
  55. package/dist/cjs/decorator/api/function/create.decorator.d.ts +2 -2
  56. package/dist/cjs/decorator/api/function/create.decorator.js +45 -8
  57. package/dist/cjs/decorator/api/function/create.decorator.js.map +1 -1
  58. package/dist/cjs/decorator/api/function/decorator.js +1 -1
  59. package/dist/cjs/decorator/api/function/decorator.js.map +1 -1
  60. package/dist/cjs/decorator/api/function/delete.decorator.d.ts +5 -1
  61. package/dist/cjs/decorator/api/function/delete.decorator.js +59 -7
  62. package/dist/cjs/decorator/api/function/delete.decorator.js.map +1 -1
  63. package/dist/cjs/decorator/api/function/get-list.decorator.d.ts +5 -1
  64. package/dist/cjs/decorator/api/function/get-list.decorator.js +56 -10
  65. package/dist/cjs/decorator/api/function/get-list.decorator.js.map +1 -1
  66. package/dist/cjs/decorator/api/function/get-many.decorator.d.ts +5 -1
  67. package/dist/cjs/decorator/api/function/get-many.decorator.js +53 -5
  68. package/dist/cjs/decorator/api/function/get-many.decorator.js.map +1 -1
  69. package/dist/cjs/decorator/api/function/get.decorator.d.ts +5 -1
  70. package/dist/cjs/decorator/api/function/get.decorator.js +53 -5
  71. package/dist/cjs/decorator/api/function/get.decorator.js.map +1 -1
  72. package/dist/cjs/decorator/api/function/update.decorator.d.ts +5 -1
  73. package/dist/cjs/decorator/api/function/update.decorator.js +60 -11
  74. package/dist/cjs/decorator/api/function/update.decorator.js.map +1 -1
  75. package/dist/cjs/decorator/api/index.d.ts +6 -3
  76. package/dist/cjs/decorator/api/method.decorator.js +1 -0
  77. package/dist/cjs/decorator/api/method.decorator.js.map +1 -1
  78. package/dist/cjs/decorator/api/property/boolean.decorator.js +1 -2
  79. package/dist/cjs/decorator/api/property/boolean.decorator.js.map +1 -1
  80. package/dist/cjs/decorator/api/property/copy.decorator.js +1 -1
  81. package/dist/cjs/decorator/api/property/copy.decorator.js.map +1 -1
  82. package/dist/cjs/decorator/api/property/date.decorator.js +1 -2
  83. package/dist/cjs/decorator/api/property/date.decorator.js.map +1 -1
  84. package/dist/cjs/decorator/api/property/describe.decorator.js +1 -1
  85. package/dist/cjs/decorator/api/property/describe.decorator.js.map +1 -1
  86. package/dist/cjs/decorator/api/property/enum.decorator.js +0 -2
  87. package/dist/cjs/decorator/api/property/enum.decorator.js.map +1 -1
  88. package/dist/cjs/decorator/api/property/number.decorator.js +1 -4
  89. package/dist/cjs/decorator/api/property/number.decorator.js.map +1 -1
  90. package/dist/cjs/decorator/api/property/object.decorator.js +0 -4
  91. package/dist/cjs/decorator/api/property/object.decorator.js.map +1 -1
  92. package/dist/cjs/decorator/api/property/string.decorator.js +4 -21
  93. package/dist/cjs/decorator/api/property/string.decorator.js.map +1 -1
  94. package/dist/cjs/decorator/api/property/uuid.decorator.js +1 -2
  95. package/dist/cjs/decorator/api/property/uuid.decorator.js.map +1 -1
  96. package/dist/cjs/decorator/api/service/index.d.ts +1 -0
  97. package/dist/cjs/decorator/api/service/observable.decorator.d.ts +4 -0
  98. package/dist/cjs/decorator/api/service/observable.decorator.js +15 -0
  99. package/dist/cjs/decorator/api/service/observable.decorator.js.map +1 -0
  100. package/dist/cjs/decorator/api/service.decorator.js +3 -37
  101. package/dist/cjs/decorator/api/service.decorator.js.map +1 -1
  102. package/dist/cjs/decorator/api/subscriber/function.decorator.d.ts +9 -0
  103. package/dist/cjs/decorator/api/subscriber/function.decorator.js +18 -0
  104. package/dist/cjs/decorator/api/subscriber/function.decorator.js.map +1 -0
  105. package/dist/cjs/decorator/api/subscriber/index.d.ts +2 -0
  106. package/dist/cjs/decorator/api/subscriber/route.decorator.d.ts +9 -0
  107. package/dist/cjs/decorator/api/subscriber/route.decorator.js +18 -0
  108. package/dist/cjs/decorator/api/subscriber/route.decorator.js.map +1 -0
  109. package/dist/cjs/enum/decorator/api/index.d.ts +5 -4
  110. package/dist/cjs/enum/decorator/api/on-type.enum.d.ts +6 -0
  111. package/dist/cjs/enum/decorator/api/on-type.enum.js +10 -0
  112. package/dist/cjs/enum/decorator/api/on-type.enum.js.map +1 -0
  113. package/dist/cjs/external/@elsikora/cladi/dist/esm/domain/enum/logger-log-level.enum.js +14 -0
  114. package/dist/cjs/external/@elsikora/cladi/dist/esm/domain/enum/logger-log-level.enum.js.map +1 -0
  115. package/dist/cjs/external/@elsikora/cladi/dist/esm/infrastructure/class/base/error.class.js +31 -0
  116. package/dist/cjs/external/@elsikora/cladi/dist/esm/infrastructure/class/base/error.class.js.map +1 -0
  117. package/dist/cjs/external/@elsikora/cladi/dist/esm/infrastructure/class/base/registry.class.js +222 -0
  118. package/dist/cjs/external/@elsikora/cladi/dist/esm/infrastructure/class/base/registry.class.js.map +1 -0
  119. package/dist/cjs/external/@elsikora/cladi/dist/esm/infrastructure/constant/console-logger-default-options.constant.js +11 -0
  120. package/dist/cjs/external/@elsikora/cladi/dist/esm/infrastructure/constant/console-logger-default-options.constant.js.map +1 -0
  121. package/dist/cjs/external/@elsikora/cladi/dist/esm/infrastructure/service/console-logger.service.js +131 -0
  122. package/dist/cjs/external/@elsikora/cladi/dist/esm/infrastructure/service/console-logger.service.js.map +1 -0
  123. package/dist/cjs/external/@elsikora/cladi/dist/esm/presentation/utility/create/registry.utility.js +19 -0
  124. package/dist/cjs/external/@elsikora/cladi/dist/esm/presentation/utility/create/registry.utility.js.map +1 -0
  125. package/dist/cjs/factory/api/controller.factory.d.ts +2 -1
  126. package/dist/cjs/factory/api/controller.factory.js +299 -105
  127. package/dist/cjs/factory/api/controller.factory.js.map +1 -1
  128. package/dist/cjs/index.d.ts +1 -0
  129. package/dist/cjs/index.js +33 -0
  130. package/dist/cjs/index.js.map +1 -1
  131. package/dist/cjs/interface/class/api/subscriber/execution-context.interface.d.ts +15 -0
  132. package/dist/cjs/interface/class/api/subscriber/function-execution-context.interface.d.ts +6 -0
  133. package/dist/cjs/interface/class/api/subscriber/function.interface.d.ts +31 -0
  134. package/dist/cjs/interface/class/api/subscriber/interface.d.ts +2 -0
  135. package/dist/cjs/interface/class/api/subscriber/route-execution-context.interface.d.ts +6 -0
  136. package/dist/cjs/interface/class/api/subscriber/route.interface.d.ts +39 -0
  137. package/dist/cjs/interface/decorator/api/function/create-executor-properties.interface.d.ts +2 -1
  138. package/dist/cjs/interface/decorator/api/function/delete-executor-properties.interface.d.ts +5 -4
  139. package/dist/cjs/interface/decorator/api/function/get-executor-properties.interface.d.ts +2 -1
  140. package/dist/cjs/interface/decorator/api/function/get-list-executor-properties.interface.d.ts +2 -1
  141. package/dist/cjs/interface/decorator/api/function/get-many-executor-properties.interface.d.ts +2 -1
  142. package/dist/cjs/interface/decorator/api/function/properties.interface.d.ts +2 -2
  143. package/dist/cjs/interface/decorator/api/function/update-executor-properties.interface.d.ts +5 -4
  144. package/dist/cjs/interface/decorator/api/index.d.ts +6 -5
  145. package/dist/cjs/interface/decorator/api/subscriber/function-properties.interface.d.ts +5 -0
  146. package/dist/cjs/interface/decorator/api/subscriber/index.d.ts +2 -0
  147. package/dist/cjs/interface/decorator/api/subscriber/route-properties.interface.d.ts +5 -0
  148. package/dist/cjs/module/api-subscriber.module.d.ts +2 -0
  149. package/dist/cjs/module/api-subscriber.module.js +17 -0
  150. package/dist/cjs/module/api-subscriber.module.js.map +1 -0
  151. package/dist/cjs/module/index.d.ts +1 -0
  152. package/dist/cjs/package.json +1 -0
  153. package/dist/cjs/utility/api/controller/apply-decorators.utility.js +1 -0
  154. package/dist/cjs/utility/api/controller/apply-decorators.utility.js.map +1 -1
  155. package/dist/cjs/utility/api/controller/apply-metadata.utility.js +1 -0
  156. package/dist/cjs/utility/api/controller/apply-metadata.utility.js.map +1 -1
  157. package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.js +1 -0
  158. package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.js.map +1 -1
  159. package/dist/cjs/utility/api/controller/get-list/transform-operation.utility.d.ts +5 -0
  160. package/dist/cjs/utility/api/controller/get-list/transform-operation.utility.js +5 -1
  161. package/dist/cjs/utility/api/controller/get-list/transform-operation.utility.js.map +1 -1
  162. package/dist/cjs/utility/api/controller/handle-request-relations.utility.js +4 -0
  163. package/dist/cjs/utility/api/controller/handle-request-relations.utility.js.map +1 -1
  164. package/dist/cjs/utility/api/controller/transform-data.utility.js +1 -0
  165. package/dist/cjs/utility/api/controller/transform-data.utility.js.map +1 -1
  166. package/dist/cjs/utility/api/controller/write-dto-swagger.utility.js +2 -4
  167. package/dist/cjs/utility/api/controller/write-dto-swagger.utility.js.map +1 -1
  168. package/dist/cjs/utility/api/filter-order-by-from-entity.utility.js +1 -1
  169. package/dist/cjs/utility/api/filter-order-by-from-entity.utility.js.map +1 -1
  170. package/dist/cjs/utility/dto/build-decorator.utility.js +1 -0
  171. package/dist/cjs/utility/dto/build-decorator.utility.js.map +1 -1
  172. package/dist/cjs/utility/dto/generate-dynamic.utility.js +1 -3
  173. package/dist/cjs/utility/dto/generate-dynamic.utility.js.map +1 -1
  174. package/dist/cjs/utility/dto/generate-exception.utility.js +1 -0
  175. package/dist/cjs/utility/dto/generate-exception.utility.js.map +1 -1
  176. package/dist/cjs/utility/dto/generate-filter-decorator.utility.js +1 -0
  177. package/dist/cjs/utility/dto/generate-filter-decorator.utility.js.map +1 -1
  178. package/dist/cjs/utility/dto/generate-get-list-response.utility.js +1 -0
  179. package/dist/cjs/utility/dto/generate-get-list-response.utility.js.map +1 -1
  180. package/dist/cjs/utility/dto/generate.utility.js +4 -18
  181. package/dist/cjs/utility/dto/generate.utility.js.map +1 -1
  182. package/dist/cjs/utility/dto/get-get-list-query-base-class.utility.js +1 -0
  183. package/dist/cjs/utility/dto/get-get-list-query-base-class.utility.js.map +1 -1
  184. package/dist/cjs/utility/dto/handle-date-property.utility.js +1 -0
  185. package/dist/cjs/utility/dto/handle-date-property.utility.js.map +1 -1
  186. package/dist/cjs/utility/dto/is-property-should-be-marked.utility.js +1 -0
  187. package/dist/cjs/utility/dto/is-property-should-be-marked.utility.js.map +1 -1
  188. package/dist/cjs/utility/dto/is-should-be-generated.utility.js +1 -0
  189. package/dist/cjs/utility/dto/is-should-be-generated.utility.js.map +1 -1
  190. package/dist/cjs/utility/logger.utility.js +3 -2
  191. package/dist/cjs/utility/logger.utility.js.map +1 -1
  192. package/dist/cjs/validator/all-or-none-of-listed-properties.validator.js +0 -1
  193. package/dist/cjs/validator/all-or-none-of-listed-properties.validator.js.map +1 -1
  194. package/dist/cjs/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js +0 -1
  195. package/dist/cjs/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js.map +1 -1
  196. package/dist/cjs/validator/has-at-least-one-of-listed-properties.validator.js +0 -1
  197. package/dist/cjs/validator/has-at-least-one-of-listed-properties.validator.js.map +1 -1
  198. package/dist/cjs/validator/has-at-least-one-property.validator.js +0 -1
  199. package/dist/cjs/validator/has-at-least-one-property.validator.js.map +1 -1
  200. package/dist/cjs/validator/has-paired-custom-suffixes-fields.validator.js +0 -1
  201. package/dist/cjs/validator/has-paired-custom-suffixes-fields.validator.js.map +1 -1
  202. package/dist/cjs/validator/must-match-one-of-schemas.validator.js +0 -1
  203. package/dist/cjs/validator/must-match-one-of-schemas.validator.js.map +1 -1
  204. package/dist/cjs/validator/only-one-of-listed-properties.validator.js +0 -1
  205. package/dist/cjs/validator/only-one-of-listed-properties.validator.js.map +1 -1
  206. package/dist/esm/class/api/index.d.ts +2 -1
  207. package/dist/esm/class/api/subscriber/base.class.d.ts +3 -0
  208. package/dist/esm/class/api/subscriber/base.class.js +5 -0
  209. package/dist/esm/class/api/subscriber/base.class.js.map +1 -0
  210. package/dist/esm/class/api/subscriber/discovery-service.class.d.ts +9 -0
  211. package/dist/esm/class/api/subscriber/discovery-service.class.js +46 -0
  212. package/dist/esm/class/api/subscriber/discovery-service.class.js.map +1 -0
  213. package/dist/esm/class/api/subscriber/executor.class.d.ts +10 -0
  214. package/dist/esm/class/api/subscriber/executor.class.js +50 -0
  215. package/dist/esm/class/api/subscriber/executor.class.js.map +1 -0
  216. package/dist/esm/class/api/subscriber/function-base.class.d.ts +5 -0
  217. package/dist/esm/class/api/subscriber/function-base.class.js +7 -0
  218. package/dist/esm/class/api/subscriber/function-base.class.js.map +1 -0
  219. package/dist/esm/class/api/subscriber/index.d.ts +6 -0
  220. package/dist/esm/class/api/subscriber/registry.class.d.ts +15 -0
  221. package/dist/esm/class/api/subscriber/registry.class.js +55 -0
  222. package/dist/esm/class/api/subscriber/registry.class.js.map +1 -0
  223. package/dist/esm/class/api/subscriber/route-base.class.d.ts +5 -0
  224. package/dist/esm/class/api/subscriber/route-base.class.js +7 -0
  225. package/dist/esm/class/api/subscriber/route-base.class.js.map +1 -0
  226. package/dist/esm/class/metadata-storage.class.js +1 -2
  227. package/dist/esm/class/metadata-storage.class.js.map +1 -1
  228. package/dist/esm/class/utility/dto/property/factory/number.class.js +1 -0
  229. package/dist/esm/class/utility/dto/property/factory/number.class.js.map +1 -1
  230. package/dist/esm/class/utility/dto/property/factory/relation.class.js +1 -0
  231. package/dist/esm/class/utility/dto/property/factory/relation.class.js.map +1 -1
  232. package/dist/esm/class/utility/dto/strategy/body.class.js +1 -0
  233. package/dist/esm/class/utility/dto/strategy/body.class.js.map +1 -1
  234. package/dist/esm/class/utility/dto/strategy/query.class.js +1 -0
  235. package/dist/esm/class/utility/dto/strategy/query.class.js.map +1 -1
  236. package/dist/esm/class/utility/dto/strategy/request.class.js +1 -0
  237. package/dist/esm/class/utility/dto/strategy/request.class.js.map +1 -1
  238. package/dist/esm/class/utility/dto/strategy/response.class.js +1 -0
  239. package/dist/esm/class/utility/dto/strategy/response.class.js.map +1 -1
  240. package/dist/esm/constant/decorator/api/controller.constant.d.ts +1 -0
  241. package/dist/esm/constant/decorator/api/controller.constant.js +2 -0
  242. package/dist/esm/constant/decorator/api/controller.constant.js.map +1 -1
  243. package/dist/esm/constant/decorator/api/property-describe.constant.d.ts +1 -1
  244. package/dist/esm/constant/decorator/api/property-describe.constant.js +2 -2
  245. package/dist/esm/constant/decorator/api/property-describe.constant.js.map +1 -1
  246. package/dist/esm/constant/decorator/api/service.constant.d.ts +3 -0
  247. package/dist/esm/constant/decorator/api/service.constant.js +7 -0
  248. package/dist/esm/constant/decorator/api/service.constant.js.map +1 -0
  249. package/dist/esm/constant/decorator/api/subscriber.constant.d.ts +4 -0
  250. package/dist/esm/constant/decorator/api/subscriber.constant.js +9 -0
  251. package/dist/esm/constant/decorator/api/subscriber.constant.js.map +1 -0
  252. package/dist/esm/constant/utility/dto/constant.js +1 -0
  253. package/dist/esm/constant/utility/dto/constant.js.map +1 -1
  254. package/dist/esm/constant/validator/has-paired-custom-suffixes-fields.constant.js +0 -1
  255. package/dist/esm/constant/validator/has-paired-custom-suffixes-fields.constant.js.map +1 -1
  256. package/dist/esm/decorator/api/controller/index.d.ts +1 -0
  257. package/dist/esm/decorator/api/controller/observable.decorator.d.ts +4 -0
  258. package/dist/esm/decorator/api/controller/observable.decorator.js +13 -0
  259. package/dist/esm/decorator/api/controller/observable.decorator.js.map +1 -0
  260. package/dist/esm/decorator/api/function/create.decorator.d.ts +2 -2
  261. package/dist/esm/decorator/api/function/create.decorator.js +45 -8
  262. package/dist/esm/decorator/api/function/create.decorator.js.map +1 -1
  263. package/dist/esm/decorator/api/function/decorator.js +1 -1
  264. package/dist/esm/decorator/api/function/decorator.js.map +1 -1
  265. package/dist/esm/decorator/api/function/delete.decorator.d.ts +5 -1
  266. package/dist/esm/decorator/api/function/delete.decorator.js +59 -7
  267. package/dist/esm/decorator/api/function/delete.decorator.js.map +1 -1
  268. package/dist/esm/decorator/api/function/get-list.decorator.d.ts +5 -1
  269. package/dist/esm/decorator/api/function/get-list.decorator.js +56 -10
  270. package/dist/esm/decorator/api/function/get-list.decorator.js.map +1 -1
  271. package/dist/esm/decorator/api/function/get-many.decorator.d.ts +5 -1
  272. package/dist/esm/decorator/api/function/get-many.decorator.js +53 -5
  273. package/dist/esm/decorator/api/function/get-many.decorator.js.map +1 -1
  274. package/dist/esm/decorator/api/function/get.decorator.d.ts +5 -1
  275. package/dist/esm/decorator/api/function/get.decorator.js +53 -5
  276. package/dist/esm/decorator/api/function/get.decorator.js.map +1 -1
  277. package/dist/esm/decorator/api/function/update.decorator.d.ts +5 -1
  278. package/dist/esm/decorator/api/function/update.decorator.js +60 -11
  279. package/dist/esm/decorator/api/function/update.decorator.js.map +1 -1
  280. package/dist/esm/decorator/api/index.d.ts +6 -3
  281. package/dist/esm/decorator/api/method.decorator.js +1 -0
  282. package/dist/esm/decorator/api/method.decorator.js.map +1 -1
  283. package/dist/esm/decorator/api/property/boolean.decorator.js +1 -2
  284. package/dist/esm/decorator/api/property/boolean.decorator.js.map +1 -1
  285. package/dist/esm/decorator/api/property/copy.decorator.js +1 -1
  286. package/dist/esm/decorator/api/property/copy.decorator.js.map +1 -1
  287. package/dist/esm/decorator/api/property/date.decorator.js +1 -2
  288. package/dist/esm/decorator/api/property/date.decorator.js.map +1 -1
  289. package/dist/esm/decorator/api/property/describe.decorator.js +1 -1
  290. package/dist/esm/decorator/api/property/describe.decorator.js.map +1 -1
  291. package/dist/esm/decorator/api/property/enum.decorator.js +0 -2
  292. package/dist/esm/decorator/api/property/enum.decorator.js.map +1 -1
  293. package/dist/esm/decorator/api/property/number.decorator.js +1 -4
  294. package/dist/esm/decorator/api/property/number.decorator.js.map +1 -1
  295. package/dist/esm/decorator/api/property/object.decorator.js +0 -4
  296. package/dist/esm/decorator/api/property/object.decorator.js.map +1 -1
  297. package/dist/esm/decorator/api/property/string.decorator.js +4 -21
  298. package/dist/esm/decorator/api/property/string.decorator.js.map +1 -1
  299. package/dist/esm/decorator/api/property/uuid.decorator.js +1 -2
  300. package/dist/esm/decorator/api/property/uuid.decorator.js.map +1 -1
  301. package/dist/esm/decorator/api/service/index.d.ts +1 -0
  302. package/dist/esm/decorator/api/service/observable.decorator.d.ts +4 -0
  303. package/dist/esm/decorator/api/service/observable.decorator.js +13 -0
  304. package/dist/esm/decorator/api/service/observable.decorator.js.map +1 -0
  305. package/dist/esm/decorator/api/service.decorator.js +3 -37
  306. package/dist/esm/decorator/api/service.decorator.js.map +1 -1
  307. package/dist/esm/decorator/api/subscriber/function.decorator.d.ts +9 -0
  308. package/dist/esm/decorator/api/subscriber/function.decorator.js +16 -0
  309. package/dist/esm/decorator/api/subscriber/function.decorator.js.map +1 -0
  310. package/dist/esm/decorator/api/subscriber/index.d.ts +2 -0
  311. package/dist/esm/decorator/api/subscriber/route.decorator.d.ts +9 -0
  312. package/dist/esm/decorator/api/subscriber/route.decorator.js +16 -0
  313. package/dist/esm/decorator/api/subscriber/route.decorator.js.map +1 -0
  314. package/dist/esm/enum/decorator/api/index.d.ts +5 -4
  315. package/dist/esm/enum/decorator/api/on-type.enum.d.ts +6 -0
  316. package/dist/esm/enum/decorator/api/on-type.enum.js +10 -0
  317. package/dist/esm/enum/decorator/api/on-type.enum.js.map +1 -0
  318. package/dist/esm/external/@elsikora/cladi/dist/esm/domain/enum/logger-log-level.enum.js +14 -0
  319. package/dist/esm/external/@elsikora/cladi/dist/esm/domain/enum/logger-log-level.enum.js.map +1 -0
  320. package/dist/esm/external/@elsikora/cladi/dist/esm/infrastructure/class/base/error.class.js +29 -0
  321. package/dist/esm/external/@elsikora/cladi/dist/esm/infrastructure/class/base/error.class.js.map +1 -0
  322. package/dist/esm/external/@elsikora/cladi/dist/esm/infrastructure/class/base/registry.class.js +220 -0
  323. package/dist/esm/external/@elsikora/cladi/dist/esm/infrastructure/class/base/registry.class.js.map +1 -0
  324. package/dist/esm/external/@elsikora/cladi/dist/esm/infrastructure/constant/console-logger-default-options.constant.js +9 -0
  325. package/dist/esm/external/@elsikora/cladi/dist/esm/infrastructure/constant/console-logger-default-options.constant.js.map +1 -0
  326. package/dist/esm/external/@elsikora/cladi/dist/esm/infrastructure/service/console-logger.service.js +129 -0
  327. package/dist/esm/external/@elsikora/cladi/dist/esm/infrastructure/service/console-logger.service.js.map +1 -0
  328. package/dist/esm/external/@elsikora/cladi/dist/esm/presentation/utility/create/registry.utility.js +17 -0
  329. package/dist/esm/external/@elsikora/cladi/dist/esm/presentation/utility/create/registry.utility.js.map +1 -0
  330. package/dist/esm/factory/api/controller.factory.d.ts +2 -1
  331. package/dist/esm/factory/api/controller.factory.js +299 -105
  332. package/dist/esm/factory/api/controller.factory.js.map +1 -1
  333. package/dist/esm/index.d.ts +1 -0
  334. package/dist/esm/index.js +12 -0
  335. package/dist/esm/index.js.map +1 -1
  336. package/dist/esm/interface/class/api/subscriber/execution-context.interface.d.ts +15 -0
  337. package/dist/esm/interface/class/api/subscriber/function-execution-context.interface.d.ts +6 -0
  338. package/dist/esm/interface/class/api/subscriber/function.interface.d.ts +31 -0
  339. package/dist/esm/interface/class/api/subscriber/interface.d.ts +2 -0
  340. package/dist/esm/interface/class/api/subscriber/route-execution-context.interface.d.ts +6 -0
  341. package/dist/esm/interface/class/api/subscriber/route.interface.d.ts +39 -0
  342. package/dist/esm/interface/decorator/api/function/create-executor-properties.interface.d.ts +2 -1
  343. package/dist/esm/interface/decorator/api/function/delete-executor-properties.interface.d.ts +5 -4
  344. package/dist/esm/interface/decorator/api/function/get-executor-properties.interface.d.ts +2 -1
  345. package/dist/esm/interface/decorator/api/function/get-list-executor-properties.interface.d.ts +2 -1
  346. package/dist/esm/interface/decorator/api/function/get-many-executor-properties.interface.d.ts +2 -1
  347. package/dist/esm/interface/decorator/api/function/properties.interface.d.ts +2 -2
  348. package/dist/esm/interface/decorator/api/function/update-executor-properties.interface.d.ts +5 -4
  349. package/dist/esm/interface/decorator/api/index.d.ts +6 -5
  350. package/dist/esm/interface/decorator/api/subscriber/function-properties.interface.d.ts +5 -0
  351. package/dist/esm/interface/decorator/api/subscriber/index.d.ts +2 -0
  352. package/dist/esm/interface/decorator/api/subscriber/route-properties.interface.d.ts +5 -0
  353. package/dist/esm/module/api-subscriber.module.d.ts +2 -0
  354. package/dist/esm/module/api-subscriber.module.js +17 -0
  355. package/dist/esm/module/api-subscriber.module.js.map +1 -0
  356. package/dist/esm/module/index.d.ts +1 -0
  357. package/dist/esm/package.json +1 -0
  358. package/dist/esm/utility/api/controller/apply-decorators.utility.js +1 -0
  359. package/dist/esm/utility/api/controller/apply-decorators.utility.js.map +1 -1
  360. package/dist/esm/utility/api/controller/apply-metadata.utility.js +1 -0
  361. package/dist/esm/utility/api/controller/apply-metadata.utility.js.map +1 -1
  362. package/dist/esm/utility/api/controller/get-list/transform-filter.utility.js +1 -0
  363. package/dist/esm/utility/api/controller/get-list/transform-filter.utility.js.map +1 -1
  364. package/dist/esm/utility/api/controller/get-list/transform-operation.utility.d.ts +5 -0
  365. package/dist/esm/utility/api/controller/get-list/transform-operation.utility.js +5 -1
  366. package/dist/esm/utility/api/controller/get-list/transform-operation.utility.js.map +1 -1
  367. package/dist/esm/utility/api/controller/handle-request-relations.utility.js +4 -0
  368. package/dist/esm/utility/api/controller/handle-request-relations.utility.js.map +1 -1
  369. package/dist/esm/utility/api/controller/transform-data.utility.js +1 -0
  370. package/dist/esm/utility/api/controller/transform-data.utility.js.map +1 -1
  371. package/dist/esm/utility/api/controller/write-dto-swagger.utility.js +2 -4
  372. package/dist/esm/utility/api/controller/write-dto-swagger.utility.js.map +1 -1
  373. package/dist/esm/utility/api/filter-order-by-from-entity.utility.js +1 -1
  374. package/dist/esm/utility/api/filter-order-by-from-entity.utility.js.map +1 -1
  375. package/dist/esm/utility/dto/build-decorator.utility.js +1 -0
  376. package/dist/esm/utility/dto/build-decorator.utility.js.map +1 -1
  377. package/dist/esm/utility/dto/generate-dynamic.utility.js +1 -3
  378. package/dist/esm/utility/dto/generate-dynamic.utility.js.map +1 -1
  379. package/dist/esm/utility/dto/generate-exception.utility.js +1 -0
  380. package/dist/esm/utility/dto/generate-exception.utility.js.map +1 -1
  381. package/dist/esm/utility/dto/generate-filter-decorator.utility.js +1 -0
  382. package/dist/esm/utility/dto/generate-filter-decorator.utility.js.map +1 -1
  383. package/dist/esm/utility/dto/generate-get-list-response.utility.js +1 -0
  384. package/dist/esm/utility/dto/generate-get-list-response.utility.js.map +1 -1
  385. package/dist/esm/utility/dto/generate.utility.js +4 -18
  386. package/dist/esm/utility/dto/generate.utility.js.map +1 -1
  387. package/dist/esm/utility/dto/get-get-list-query-base-class.utility.js +1 -0
  388. package/dist/esm/utility/dto/get-get-list-query-base-class.utility.js.map +1 -1
  389. package/dist/esm/utility/dto/handle-date-property.utility.js +1 -0
  390. package/dist/esm/utility/dto/handle-date-property.utility.js.map +1 -1
  391. package/dist/esm/utility/dto/is-property-should-be-marked.utility.js +1 -0
  392. package/dist/esm/utility/dto/is-property-should-be-marked.utility.js.map +1 -1
  393. package/dist/esm/utility/dto/is-should-be-generated.utility.js +1 -0
  394. package/dist/esm/utility/dto/is-should-be-generated.utility.js.map +1 -1
  395. package/dist/esm/utility/logger.utility.js +3 -2
  396. package/dist/esm/utility/logger.utility.js.map +1 -1
  397. package/dist/esm/validator/all-or-none-of-listed-properties.validator.js +0 -1
  398. package/dist/esm/validator/all-or-none-of-listed-properties.validator.js.map +1 -1
  399. package/dist/esm/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js +0 -1
  400. package/dist/esm/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js.map +1 -1
  401. package/dist/esm/validator/has-at-least-one-of-listed-properties.validator.js +0 -1
  402. package/dist/esm/validator/has-at-least-one-of-listed-properties.validator.js.map +1 -1
  403. package/dist/esm/validator/has-at-least-one-property.validator.js +0 -1
  404. package/dist/esm/validator/has-at-least-one-property.validator.js.map +1 -1
  405. package/dist/esm/validator/has-paired-custom-suffixes-fields.validator.js +0 -1
  406. package/dist/esm/validator/has-paired-custom-suffixes-fields.validator.js.map +1 -1
  407. package/dist/esm/validator/must-match-one-of-schemas.validator.js +0 -1
  408. package/dist/esm/validator/must-match-one-of-schemas.validator.js.map +1 -1
  409. package/dist/esm/validator/only-one-of-listed-properties.validator.js +0 -1
  410. package/dist/esm/validator/only-one-of-listed-properties.validator.js.map +1 -1
  411. package/package.json +21 -18
@@ -1,3 +1,4 @@
1
+ import { ApiSubscriberExecutor } from '../../class/api/subscriber/executor.class.js';
1
2
  import { CONTROLLER_API_DECORATOR_CONSTANT } from '../../constant/decorator/api/controller.constant.js';
2
3
  import { FUNCTION_API_DECORATOR_CONSTANT } from '../../constant/decorator/api/function.constant.js';
3
4
  import '../../enum/decorator/api/action.enum.js';
@@ -6,6 +7,7 @@ import '../../enum/decorator/api/controller/load-relations-strategy.enum.js';
6
7
  import '../../enum/decorator/api/controller/request-transformer-type.enum.js';
7
8
  import { EApiDtoType } from '../../enum/decorator/api/dto-type.enum.js';
8
9
  import '../../enum/decorator/api/function/type.enum.js';
10
+ import { EApiSubscriberOnType } from '../../enum/decorator/api/on-type.enum.js';
9
11
  import '../../enum/decorator/api/property/data-type.enum.js';
10
12
  import '../../enum/decorator/api/property/date/identifier.enum.js';
11
13
  import '../../enum/decorator/api/property/date/type.enum.js';
@@ -89,137 +91,329 @@ class ApiControllerFactory {
89
91
  }
90
92
  [EApiRouteType.CREATE](method, methodName, properties, entityMetadata) {
91
93
  this.targetPrototype[methodName] = Object.defineProperty(async function (body, headers, ip, authenticationRequest) {
92
- const primaryKey = ApiControllerGetPrimaryColumn(body, entityMetadata);
93
- if (!primaryKey) {
94
- throw ErrorException("Primary key not found in entity columns");
95
- }
96
- ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { body }, { authenticationRequest, headers, ip });
97
- await ApiControllerValidateRequest(properties.routes[method]?.request?.validators, properties, body);
98
- await ApiControllerHandleRequestRelations(this, properties, properties.routes[method]?.request?.relations, body);
99
- const createResponse = await this.service.create(body);
100
- const dto = DtoGenerate(properties.entity, entityMetadata, method, EApiDtoType.RESPONSE, properties.routes[method]?.autoDto?.[EApiDtoType.RESPONSE], properties.routes[method]?.authentication?.guard);
101
- const requestProperties = {
102
- relations: properties.routes[method]?.response?.relations,
103
- where: {
104
- [primaryKey.key]: createResponse[primaryKey.key],
105
- },
94
+ const entityInstance = new properties.entity();
95
+ const beforeExecutionContext = {
96
+ data: { entityMetadata, method, methodName, properties },
97
+ entity: entityInstance,
98
+ result: { authenticationRequest, body, headers, ip },
99
+ routeType: EApiRouteType.CREATE,
106
100
  };
107
- const response = await this.service.get(requestProperties);
108
- ApiControllerTransformData(properties.routes[method]?.response?.transformers, properties, { response }, { authenticationRequest, headers, ip });
109
- return plainToInstance(dto, response, {
110
- // eslint-disable-next-line @elsikora/typescript/naming-convention
111
- excludeExtraneousValues: true,
112
- strategy: "excludeAll",
113
- });
101
+ const beforeResult = await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.CREATE, EApiSubscriberOnType.BEFORE, beforeExecutionContext);
102
+ if (beforeResult) {
103
+ body = beforeResult.body;
104
+ headers = beforeResult.headers;
105
+ ip = beforeResult.ip;
106
+ authenticationRequest = beforeResult.authenticationRequest;
107
+ }
108
+ try {
109
+ const primaryKey = ApiControllerGetPrimaryColumn(body, entityMetadata);
110
+ if (!primaryKey) {
111
+ await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.CREATE, EApiSubscriberOnType.BEFORE_ERROR, { ...beforeExecutionContext, result: undefined }, new Error("Primary key not found in entity columns"));
112
+ throw ErrorException("Primary key not found in entity columns");
113
+ }
114
+ ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { body }, { authenticationRequest, headers, ip });
115
+ await ApiControllerValidateRequest(properties.routes[method]?.request?.validators, properties, body);
116
+ await ApiControllerHandleRequestRelations(this, properties, properties.routes[method]?.request?.relations, body);
117
+ const createResponse = await this.service.create(body);
118
+ const dto = DtoGenerate(properties.entity, entityMetadata, method, EApiDtoType.RESPONSE, properties.routes[method]?.autoDto?.[EApiDtoType.RESPONSE], properties.routes[method]?.authentication?.guard);
119
+ const requestProperties = {
120
+ relations: properties.routes[method]?.response?.relations,
121
+ where: { [primaryKey.key]: createResponse[primaryKey.key] },
122
+ };
123
+ const response = await this.service.get(requestProperties);
124
+ ApiControllerTransformData(properties.routes[method]?.response?.transformers, properties, { response }, { authenticationRequest, headers, ip });
125
+ const afterExecutionContext = {
126
+ data: { ...beforeExecutionContext.data, authenticationRequest, body, headers, ip },
127
+ entity: response,
128
+ result: response,
129
+ routeType: EApiRouteType.CREATE,
130
+ };
131
+ const afterResult = await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, response, EApiRouteType.CREATE, EApiSubscriberOnType.AFTER, afterExecutionContext);
132
+ const finalResponse = afterResult ?? response;
133
+ return plainToInstance(dto, finalResponse, {
134
+ excludeExtraneousValues: true,
135
+ strategy: "excludeAll",
136
+ });
137
+ }
138
+ catch (error) {
139
+ const errorExecutionContext = {
140
+ data: { ...beforeExecutionContext.data, authenticationRequest, body, headers, ip },
141
+ entity: entityInstance,
142
+ routeType: EApiRouteType.CREATE,
143
+ };
144
+ await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.CREATE, EApiSubscriberOnType.AFTER_ERROR, errorExecutionContext, error);
145
+ throw error;
146
+ }
114
147
  }, "name", { value: methodName });
115
148
  }
116
149
  [EApiRouteType.DELETE](method, methodName, properties, entityMetadata) {
117
150
  this.targetPrototype[methodName] = Object.defineProperty(async function (parameters, headers, ip, authenticationRequest) {
118
- const primaryKey = ApiControllerGetPrimaryColumn(parameters, entityMetadata);
119
- if (!primaryKey) {
120
- throw ErrorException("Primary key not found in entity columns");
121
- }
122
- ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { parameters }, { authenticationRequest, headers, ip });
123
- await ApiControllerValidateRequest(properties.routes[method]?.request?.validators, properties, parameters);
124
- await ApiControllerHandleRequestRelations(this, properties, properties.routes[method]?.request?.relations, parameters);
125
- const requestCriteria = {
126
- [primaryKey.key]: primaryKey.value,
151
+ const entityInstance = new properties.entity();
152
+ const beforeExecutionContext = {
153
+ data: { entityMetadata, method, methodName, properties },
154
+ entity: entityInstance,
155
+ result: { authenticationRequest, headers, ip, parameters },
156
+ routeType: EApiRouteType.DELETE,
127
157
  };
128
- await this.service.delete(requestCriteria);
158
+ const beforeResult = await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.DELETE, EApiSubscriberOnType.BEFORE, beforeExecutionContext);
159
+ if (beforeResult) {
160
+ parameters = beforeResult.parameters;
161
+ headers = beforeResult.headers;
162
+ ip = beforeResult.ip;
163
+ authenticationRequest = beforeResult.authenticationRequest;
164
+ }
165
+ try {
166
+ const primaryKey = ApiControllerGetPrimaryColumn(parameters, entityMetadata);
167
+ if (!primaryKey) {
168
+ await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.DELETE, EApiSubscriberOnType.BEFORE_ERROR, { ...beforeExecutionContext, result: undefined }, new Error("Primary key not found in entity columns"));
169
+ throw ErrorException("Primary key not found in entity columns");
170
+ }
171
+ ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { parameters }, { authenticationRequest, headers, ip });
172
+ await ApiControllerValidateRequest(properties.routes[method]?.request?.validators, properties, parameters);
173
+ await ApiControllerHandleRequestRelations(this, properties, properties.routes[method]?.request?.relations, parameters);
174
+ const requestCriteria = {
175
+ [primaryKey.key]: primaryKey.value,
176
+ };
177
+ await this.service.delete(requestCriteria);
178
+ const afterExecutionContext = {
179
+ data: { ...beforeExecutionContext.data, authenticationRequest, headers, ip, parameters },
180
+ entity: entityInstance,
181
+ result: parameters,
182
+ routeType: EApiRouteType.DELETE,
183
+ };
184
+ await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.DELETE, EApiSubscriberOnType.AFTER, afterExecutionContext);
185
+ }
186
+ catch (error) {
187
+ const errorExecutionContext = {
188
+ data: { ...beforeExecutionContext.data, authenticationRequest, headers, ip, parameters },
189
+ entity: entityInstance,
190
+ routeType: EApiRouteType.DELETE,
191
+ };
192
+ await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.DELETE, EApiSubscriberOnType.AFTER_ERROR, errorExecutionContext, error);
193
+ throw error;
194
+ }
129
195
  }, "name", { value: methodName });
130
196
  }
131
197
  [EApiRouteType.GET](method, methodName, properties, entityMetadata) {
132
198
  this.targetPrototype[methodName] = Object.defineProperty(async function (parameters, headers, ip, authenticationRequest) {
133
- const primaryKey = ApiControllerGetPrimaryColumn(parameters, entityMetadata);
134
- if (!primaryKey) {
135
- throw ErrorException("Primary key not found in entity columns");
136
- }
137
- ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { parameters }, { authenticationRequest, headers, ip });
138
- await ApiControllerValidateRequest(properties.routes[method]?.request?.validators, properties, parameters);
139
- await ApiControllerHandleRequestRelations(this, properties, properties.routes[method]?.request?.relations, parameters);
140
- const requestProperties = {
141
- relations: properties.routes[method]?.response?.relations,
142
- where: {
143
- [primaryKey.key]: primaryKey.value,
144
- },
199
+ const entityInstance = new properties.entity();
200
+ const beforeExecutionContext = {
201
+ data: { entityMetadata, method, methodName, properties },
202
+ entity: entityInstance,
203
+ result: { authenticationRequest, headers, ip, parameters },
204
+ routeType: EApiRouteType.GET,
145
205
  };
146
- const response = await this.service.get(requestProperties);
147
- ApiControllerTransformData(properties.routes[method]?.response?.transformers, properties, { response }, { authenticationRequest, headers, ip });
148
- const dto = DtoGenerate(properties.entity, entityMetadata, method, EApiDtoType.RESPONSE, properties.routes[method]?.autoDto?.[EApiDtoType.RESPONSE], properties.routes[method]?.authentication?.guard);
149
- return plainToInstance(dto, response, {
150
- // eslint-disable-next-line @elsikora/typescript/naming-convention
151
- excludeExtraneousValues: true,
152
- });
206
+ const beforeResult = await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.GET, EApiSubscriberOnType.BEFORE, beforeExecutionContext);
207
+ if (beforeResult) {
208
+ parameters = beforeResult.parameters;
209
+ headers = beforeResult.headers;
210
+ ip = beforeResult.ip;
211
+ authenticationRequest = beforeResult.authenticationRequest;
212
+ }
213
+ try {
214
+ const primaryKey = ApiControllerGetPrimaryColumn(parameters, entityMetadata);
215
+ if (!primaryKey) {
216
+ await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.GET, EApiSubscriberOnType.BEFORE_ERROR, { ...beforeExecutionContext, result: undefined }, new Error("Primary key not found in entity columns"));
217
+ throw ErrorException("Primary key not found in entity columns");
218
+ }
219
+ ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { parameters }, { authenticationRequest, headers, ip });
220
+ await ApiControllerValidateRequest(properties.routes[method]?.request?.validators, properties, parameters);
221
+ await ApiControllerHandleRequestRelations(this, properties, properties.routes[method]?.request?.relations, parameters);
222
+ const requestProperties = {
223
+ relations: properties.routes[method]?.response?.relations,
224
+ where: { [primaryKey.key]: primaryKey.value },
225
+ };
226
+ const response = await this.service.get(requestProperties);
227
+ ApiControllerTransformData(properties.routes[method]?.response?.transformers, properties, { response }, { authenticationRequest, headers, ip });
228
+ const afterExecutionContext = {
229
+ data: { ...beforeExecutionContext.data, authenticationRequest, headers, ip, parameters },
230
+ entity: response,
231
+ result: response,
232
+ routeType: EApiRouteType.GET,
233
+ };
234
+ const afterResult = await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, response, EApiRouteType.GET, EApiSubscriberOnType.AFTER, afterExecutionContext);
235
+ const finalResponse = afterResult ?? response;
236
+ const dto = DtoGenerate(properties.entity, entityMetadata, method, EApiDtoType.RESPONSE, properties.routes[method]?.autoDto?.[EApiDtoType.RESPONSE], properties.routes[method]?.authentication?.guard);
237
+ return plainToInstance(dto, finalResponse, {
238
+ excludeExtraneousValues: true,
239
+ });
240
+ }
241
+ catch (error) {
242
+ const errorExecutionContext = {
243
+ data: { ...beforeExecutionContext.data, authenticationRequest, headers, ip, parameters },
244
+ entity: entityInstance,
245
+ routeType: EApiRouteType.GET,
246
+ };
247
+ await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.GET, EApiSubscriberOnType.AFTER_ERROR, errorExecutionContext, error);
248
+ throw error;
249
+ }
153
250
  }, "name", { value: methodName });
154
251
  }
155
252
  [EApiRouteType.GET_LIST](method, methodName, properties, entityMetadata) {
156
253
  this.targetPrototype[methodName] = Object.defineProperty(async function (query, headers, ip, authenticationRequest) {
157
- ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { query }, { authenticationRequest, headers, ip });
158
- await ApiControllerValidateRequest(properties.routes[method]?.request?.validators, properties, query);
159
- await ApiControllerHandleRequestRelations(this, properties, properties.routes[method]?.request?.relations, query);
160
- const { limit, orderBy, orderDirection, page, ...getListQuery } = query;
161
- const filter = ApiControllerGetListTransformFilter(getListQuery, entityMetadata);
162
- const requestProperties = {
163
- relations: properties.routes[method]?.response?.relations,
164
- skip: query.limit * (query.page - 1),
165
- take: query.limit,
166
- where: filter,
254
+ const entityInstance = new properties.entity();
255
+ const beforeExecutionContext = {
256
+ data: { entityMetadata, method, methodName, properties },
257
+ entity: entityInstance,
258
+ result: { authenticationRequest, headers, ip, query },
259
+ routeType: EApiRouteType.GET_LIST,
167
260
  };
168
- if (orderBy) {
169
- requestProperties.order = {
170
- [orderBy]: orderDirection ?? FUNCTION_API_DECORATOR_CONSTANT.DEFAULT_FILTER_ORDER_BY_DIRECTION,
171
- };
172
- }
173
- const response = await this.service.getList(requestProperties);
174
- ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { response }, { authenticationRequest, headers, ip });
175
- const dto = DtoGenerate(properties.entity, entityMetadata, method, EApiDtoType.RESPONSE, properties.routes[method]?.autoDto?.[EApiDtoType.RESPONSE], properties.routes[method]?.authentication?.guard);
176
- return plainToInstance(dto, response, {
177
- // eslint-disable-next-line @elsikora/typescript/naming-convention
178
- excludeExtraneousValues: true,
179
- });
261
+ const beforeResult = await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.GET_LIST, EApiSubscriberOnType.BEFORE, beforeExecutionContext);
262
+ if (beforeResult) {
263
+ query = beforeResult.query;
264
+ headers = beforeResult.headers;
265
+ ip = beforeResult.ip;
266
+ authenticationRequest = beforeResult.authenticationRequest;
267
+ }
268
+ try {
269
+ ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { query }, { authenticationRequest, headers, ip });
270
+ await ApiControllerValidateRequest(properties.routes[method]?.request?.validators, properties, query);
271
+ await ApiControllerHandleRequestRelations(this, properties, properties.routes[method]?.request?.relations, query);
272
+ const { limit, orderBy, orderDirection, page, ...getListQuery } = query;
273
+ const filter = ApiControllerGetListTransformFilter(getListQuery, entityMetadata);
274
+ const requestProperties = {
275
+ relations: properties.routes[method]?.response?.relations,
276
+ skip: query.limit * (query.page - 1),
277
+ take: query.limit,
278
+ where: filter,
279
+ };
280
+ if (orderBy) {
281
+ requestProperties.order = { [orderBy]: orderDirection ?? FUNCTION_API_DECORATOR_CONSTANT.DEFAULT_FILTER_ORDER_BY_DIRECTION };
282
+ }
283
+ const response = await this.service.getList(requestProperties);
284
+ ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { response }, { authenticationRequest, headers, ip });
285
+ const afterExecutionContext = {
286
+ data: { ...beforeExecutionContext.data, authenticationRequest, headers, ip, query },
287
+ entity: entityInstance,
288
+ result: response,
289
+ routeType: EApiRouteType.GET_LIST,
290
+ };
291
+ const afterResult = await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.GET_LIST, EApiSubscriberOnType.AFTER, afterExecutionContext);
292
+ const finalResponse = afterResult ?? response;
293
+ const dto = DtoGenerate(properties.entity, entityMetadata, method, EApiDtoType.RESPONSE, properties.routes[method]?.autoDto?.[EApiDtoType.RESPONSE], properties.routes[method]?.authentication?.guard);
294
+ return plainToInstance(dto, finalResponse, {
295
+ excludeExtraneousValues: true,
296
+ });
297
+ }
298
+ catch (error) {
299
+ const errorExecutionContext = {
300
+ data: { ...beforeExecutionContext.data, authenticationRequest, headers, ip, query },
301
+ entity: entityInstance,
302
+ routeType: EApiRouteType.GET_LIST,
303
+ };
304
+ await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.GET_LIST, EApiSubscriberOnType.AFTER_ERROR, errorExecutionContext, error);
305
+ throw error;
306
+ }
180
307
  }, "name", { value: methodName });
181
308
  }
182
309
  [EApiRouteType.PARTIAL_UPDATE](method, methodName, properties, entityMetadata) {
183
310
  this.targetPrototype[methodName] = Object.defineProperty(async function (parameters, body, headers, ip, authenticationRequest) {
184
- const primaryKey = ApiControllerGetPrimaryColumn(parameters, entityMetadata);
185
- if (!primaryKey) {
186
- throw ErrorException("Primary key not found in entity columns");
187
- }
188
- ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { body, parameters }, { authenticationRequest, headers, ip });
189
- await ApiControllerValidateRequest(properties.routes[method]?.request?.validators, properties, parameters);
190
- await ApiControllerHandleRequestRelations(this, properties, properties.routes[method]?.request?.relations, parameters);
191
- const requestCriteria = {
192
- [primaryKey.key]: primaryKey.value,
311
+ const entityInstance = new properties.entity();
312
+ const beforeExecutionContext = {
313
+ data: { entityMetadata, method, methodName, properties },
314
+ entity: entityInstance,
315
+ result: { authenticationRequest, body, headers, ip, parameters },
316
+ routeType: EApiRouteType.PARTIAL_UPDATE,
193
317
  };
194
- const response = await this.service.update(requestCriteria, body);
195
- ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { response }, { authenticationRequest, headers, ip });
196
- const dto = DtoGenerate(properties.entity, entityMetadata, method, EApiDtoType.RESPONSE, properties.routes[method]?.autoDto?.[EApiDtoType.RESPONSE], properties.routes[method]?.authentication?.guard);
197
- return plainToInstance(dto, response, {
198
- // eslint-disable-next-line @elsikora/typescript/naming-convention
199
- excludeExtraneousValues: true,
200
- });
318
+ const beforeResult = await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.PARTIAL_UPDATE, EApiSubscriberOnType.BEFORE, beforeExecutionContext);
319
+ if (beforeResult) {
320
+ parameters = beforeResult.parameters;
321
+ body = beforeResult.body;
322
+ headers = beforeResult.headers;
323
+ ip = beforeResult.ip;
324
+ authenticationRequest = beforeResult.authenticationRequest;
325
+ }
326
+ try {
327
+ const primaryKey = ApiControllerGetPrimaryColumn(parameters, entityMetadata);
328
+ if (!primaryKey) {
329
+ await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.PARTIAL_UPDATE, EApiSubscriberOnType.BEFORE_ERROR, { ...beforeExecutionContext, result: undefined }, new Error("Primary key not found in entity columns"));
330
+ throw ErrorException("Primary key not found in entity columns");
331
+ }
332
+ ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { body, parameters }, { authenticationRequest, headers, ip });
333
+ await ApiControllerValidateRequest(properties.routes[method]?.request?.validators, properties, parameters);
334
+ await ApiControllerHandleRequestRelations(this, properties, properties.routes[method]?.request?.relations, parameters);
335
+ const requestCriteria = {
336
+ [primaryKey.key]: primaryKey.value,
337
+ };
338
+ const response = await this.service.update(requestCriteria, body);
339
+ ApiControllerTransformData(properties.routes[method]?.response?.transformers, properties, { response }, { authenticationRequest, headers, ip });
340
+ const afterExecutionContext = {
341
+ data: { ...beforeExecutionContext.data, authenticationRequest, body, headers, ip, parameters },
342
+ entity: response,
343
+ result: response,
344
+ routeType: EApiRouteType.PARTIAL_UPDATE,
345
+ };
346
+ const afterResult = await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, response, EApiRouteType.PARTIAL_UPDATE, EApiSubscriberOnType.AFTER, afterExecutionContext);
347
+ const finalResponse = afterResult ?? response;
348
+ const dto = DtoGenerate(properties.entity, entityMetadata, method, EApiDtoType.RESPONSE, properties.routes[method]?.autoDto?.[EApiDtoType.RESPONSE], properties.routes[method]?.authentication?.guard);
349
+ return plainToInstance(dto, finalResponse, {
350
+ excludeExtraneousValues: true,
351
+ });
352
+ }
353
+ catch (error) {
354
+ const errorExecutionContext = {
355
+ data: { ...beforeExecutionContext.data, authenticationRequest, body, headers, ip, parameters },
356
+ entity: entityInstance,
357
+ routeType: EApiRouteType.PARTIAL_UPDATE,
358
+ };
359
+ await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.PARTIAL_UPDATE, EApiSubscriberOnType.AFTER_ERROR, errorExecutionContext, error);
360
+ throw error;
361
+ }
201
362
  }, "name", { value: methodName });
202
363
  }
203
- // eslint-disable-next-line @elsikora/sonar/no-identical-functions
204
364
  [EApiRouteType.UPDATE](method, methodName, properties, entityMetadata) {
205
365
  this.targetPrototype[methodName] = Object.defineProperty(async function (parameters, body, headers, ip, authenticationRequest) {
206
- const primaryKey = ApiControllerGetPrimaryColumn(parameters, entityMetadata);
207
- if (!primaryKey) {
208
- throw ErrorException("Primary key not found in entity columns");
209
- }
210
- ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { body, parameters }, { authenticationRequest, headers, ip });
211
- await ApiControllerValidateRequest(properties.routes[method]?.request?.validators, properties, parameters);
212
- await ApiControllerHandleRequestRelations(this, properties, properties.routes[method]?.request?.relations, parameters);
213
- const requestCriteria = {
214
- [primaryKey.key]: primaryKey.value,
366
+ const entityInstance = new properties.entity();
367
+ const beforeExecutionContext = {
368
+ data: { entityMetadata, method, methodName, properties },
369
+ entity: entityInstance,
370
+ result: { authenticationRequest, body, headers, ip, parameters },
371
+ routeType: EApiRouteType.UPDATE,
215
372
  };
216
- const response = await this.service.update(requestCriteria, body);
217
- ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { response }, { authenticationRequest, headers, ip });
218
- const dto = DtoGenerate(properties.entity, entityMetadata, method, EApiDtoType.RESPONSE, properties.routes[method]?.autoDto?.[EApiDtoType.RESPONSE], properties.routes[method]?.authentication?.guard);
219
- return plainToInstance(dto, response, {
220
- // eslint-disable-next-line @elsikora/typescript/naming-convention
221
- excludeExtraneousValues: true,
222
- });
373
+ const beforeResult = await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.UPDATE, EApiSubscriberOnType.BEFORE, beforeExecutionContext);
374
+ if (beforeResult) {
375
+ parameters = beforeResult.parameters;
376
+ body = beforeResult.body;
377
+ headers = beforeResult.headers;
378
+ ip = beforeResult.ip;
379
+ authenticationRequest = beforeResult.authenticationRequest;
380
+ }
381
+ try {
382
+ const primaryKey = ApiControllerGetPrimaryColumn(parameters, entityMetadata);
383
+ if (!primaryKey) {
384
+ await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.UPDATE, EApiSubscriberOnType.BEFORE_ERROR, { ...beforeExecutionContext, result: undefined }, new Error("Primary key not found in entity columns"));
385
+ throw ErrorException("Primary key not found in entity columns");
386
+ }
387
+ ApiControllerTransformData(properties.routes[method]?.request?.transformers, properties, { body, parameters }, { authenticationRequest, headers, ip });
388
+ await ApiControllerValidateRequest(properties.routes[method]?.request?.validators, properties, parameters);
389
+ await ApiControllerHandleRequestRelations(this, properties, properties.routes[method]?.request?.relations, parameters);
390
+ const requestCriteria = {
391
+ [primaryKey.key]: primaryKey.value,
392
+ };
393
+ const response = await this.service.update(requestCriteria, body);
394
+ ApiControllerTransformData(properties.routes[method]?.response?.transformers, properties, { response }, { authenticationRequest, headers, ip });
395
+ const afterExecutionContext = {
396
+ data: { ...beforeExecutionContext.data, authenticationRequest, body, headers, ip, parameters },
397
+ entity: response,
398
+ result: response,
399
+ routeType: EApiRouteType.UPDATE,
400
+ };
401
+ const afterResult = await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, response, EApiRouteType.UPDATE, EApiSubscriberOnType.AFTER, afterExecutionContext);
402
+ const finalResponse = afterResult ?? response;
403
+ const dto = DtoGenerate(properties.entity, entityMetadata, method, EApiDtoType.RESPONSE, properties.routes[method]?.autoDto?.[EApiDtoType.RESPONSE], properties.routes[method]?.authentication?.guard);
404
+ return plainToInstance(dto, finalResponse, {
405
+ excludeExtraneousValues: true,
406
+ });
407
+ }
408
+ catch (error) {
409
+ const errorExecutionContext = {
410
+ data: { ...beforeExecutionContext.data, authenticationRequest, body, headers, ip, parameters },
411
+ entity: entityInstance,
412
+ routeType: EApiRouteType.UPDATE,
413
+ };
414
+ await ApiSubscriberExecutor.executeRouteSubscribers(this.constructor, entityInstance, EApiRouteType.UPDATE, EApiSubscriberOnType.AFTER_ERROR, errorExecutionContext, error);
415
+ throw error;
416
+ }
223
417
  }, "name", { value: methodName });
224
418
  }
225
419
  }
@@ -1 +1 @@
1
- {"version":3,"file":"controller.factory.js","sources":["../../../../../src/factory/api/controller.factory.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.factory.js","sources":["../../../../../src/factory/api/controller.factory.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export * from './enum/index';
5
5
  export * from './factory/api/index';
6
6
  export * from './interceptor/index';
7
7
  export type * from './interface/index';
8
+ export * from './module/index';
8
9
  export type * from './type/index';
9
10
  export * from './utility/index';
10
11
  export * from './validator/index';
package/dist/esm/index.js CHANGED
@@ -1,4 +1,10 @@
1
1
  export { ApiServiceBase } from './class/api/service-base.class.js';
2
+ export { ApiSubscriberBase } from './class/api/subscriber/base.class.js';
3
+ export { ApiSubscriberDiscoveryService } from './class/api/subscriber/discovery-service.class.js';
4
+ export { ApiSubscriberExecutor } from './class/api/subscriber/executor.class.js';
5
+ export { ApiFunctionSubscriberBase } from './class/api/subscriber/function-base.class.js';
6
+ export { apiSubscriberRegistry } from './class/api/subscriber/registry.class.js';
7
+ export { ApiRouteSubscriberBase } from './class/api/subscriber/route-base.class.js';
2
8
  export { MetadataStorage } from './class/metadata-storage.class.js';
3
9
  export { DtoPropertyFactoryBoolean } from './class/utility/dto/property/factory/boolean.class.js';
4
10
  export { DtoPropertyFactoryDate } from './class/utility/dto/property/factory/date.class.js';
@@ -27,6 +33,7 @@ export { NUMBER_CONSTANT } from './constant/number.constant.js';
27
33
  export { DTO_UTILITY_CONSTANT } from './constant/utility/dto/constant.js';
28
34
  export { DTO_GENERATE_CONSTANT } from './constant/utility/dto/generate.constant.js';
29
35
  export { VALIDATOR_HAS_PAIRED_CUSTOM_SUFFIXES_FIELDS_CONSTANT } from './constant/validator/has-paired-custom-suffixes-fields.constant.js';
36
+ export { ApiControllerObservable } from './decorator/api/controller/observable.decorator.js';
30
37
  export { ApiController } from './decorator/api/controller.decorator.js';
31
38
  export { ApiFunctionCreate } from './decorator/api/function/create.decorator.js';
32
39
  export { ApiFunction } from './decorator/api/function/decorator.js';
@@ -45,13 +52,17 @@ export { ApiPropertyNumber } from './decorator/api/property/number.decorator.js'
45
52
  export { ApiPropertyObject } from './decorator/api/property/object.decorator.js';
46
53
  export { ApiPropertyString } from './decorator/api/property/string.decorator.js';
47
54
  export { ApiPropertyUUID } from './decorator/api/property/uuid.decorator.js';
55
+ export { ApiServiceObservable } from './decorator/api/service/observable.decorator.js';
48
56
  export { ApiService } from './decorator/api/service.decorator.js';
57
+ export { ApiFunctionSubscriber } from './decorator/api/subscriber/function.decorator.js';
58
+ export { ApiRouteSubscriber } from './decorator/api/subscriber/route.decorator.js';
49
59
  export { EApiAction } from './enum/decorator/api/action.enum.js';
50
60
  export { EApiAuthenticationType } from './enum/decorator/api/authentication-type.enum.js';
51
61
  export { EApiControllerLoadRelationsStrategy } from './enum/decorator/api/controller/load-relations-strategy.enum.js';
52
62
  export { EApiControllerRequestTransformerType } from './enum/decorator/api/controller/request-transformer-type.enum.js';
53
63
  export { EApiDtoType } from './enum/decorator/api/dto-type.enum.js';
54
64
  export { EApiFunctionType } from './enum/decorator/api/function/type.enum.js';
65
+ export { EApiSubscriberOnType } from './enum/decorator/api/on-type.enum.js';
55
66
  export { EApiPropertyDataType } from './enum/decorator/api/property/data-type.enum.js';
56
67
  export { EApiPropertyDateIdentifier } from './enum/decorator/api/property/date/identifier.enum.js';
57
68
  export { EApiPropertyDateType } from './enum/decorator/api/property/date/type.enum.js';
@@ -68,6 +79,7 @@ export { EHasPairedCustomSuffixesFieldsArgumentType } from './enum/validator/has
68
79
  export { EMastMatchOneOfSchemasValidationErrorType } from './enum/validator/must-match-one-of-schemas-error-type.enum.js';
69
80
  export { ApiControllerFactory } from './factory/api/controller.factory.js';
70
81
  export { CorrelationIDResponseBodyInterceptor } from './interceptor/correlation-id-response-body.interceptor.js';
82
+ export { ApiSubscriberModule } from './module/api-subscriber.module.js';
71
83
  export { ApiControllerApplyDecorators } from './utility/api/controller/apply-decorators.utility.js';
72
84
  export { ApiControllerApplyMetadata } from './utility/api/controller/apply-metadata.utility.js';
73
85
  export { ApiControllerGetListTransformFilter } from './utility/api/controller/get-list/transform-filter.utility.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,15 @@
1
+ import type { IApiBaseEntity } from '../../../api-base-entity.interface';
2
+ export interface IApiSubscriberExecutionContext<E extends IApiBaseEntity, Result = unknown, Input = unknown> {
3
+ /**
4
+ * An immutable container for metadata (e.g., transaction manager, HTTP headers)
5
+ */
6
+ readonly data: Input;
7
+ /**
8
+ * The entity instance the operation is being performed on.
9
+ */
10
+ readonly entity: E;
11
+ /**
12
+ * The mutable data payload that subscribers can modify.
13
+ */
14
+ result?: Result;
15
+ }
@@ -0,0 +1,6 @@
1
+ import type { EApiFunctionType } from '../../../../enum/decorator/api/function/index';
2
+ import type { IApiBaseEntity } from '../../../api-base-entity.interface';
3
+ import type { IApiSubscriberExecutionContext } from './execution-context.interface';
4
+ export interface IApiSubscriberFunctionExecutionContext<E extends IApiBaseEntity, Result = unknown, Input = unknown> extends IApiSubscriberExecutionContext<E, Result, Input> {
5
+ readonly functionType: EApiFunctionType;
6
+ }