@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
@@ -2,7 +2,7 @@ import type { IApiBaseEntity } from '../../../interface/api-base-entity.interfac
2
2
  import type { IApiFunctionProperties } from '../../../interface/decorator/api/index';
3
3
  /**
4
4
  * Creates a decorator that adds entity creation functionality to a service method
5
- * @param {IApiFunctionProperties} properties - Configuration properties for the create function
5
+ * @param {IApiFunctionProperties<E>} properties - Configuration properties for the create function
6
6
  * @returns {(target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor} A decorator function that modifies the target method to handle entity creation
7
7
  */
8
- export declare function ApiFunctionCreate<E extends IApiBaseEntity>(properties: IApiFunctionProperties): (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
8
+ export declare function ApiFunctionCreate<E extends IApiBaseEntity>(properties: IApiFunctionProperties<E>): (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
@@ -1,5 +1,8 @@
1
1
  'use strict';
2
2
 
3
+ var executor_class = require('../../../class/api/subscriber/executor.class.js');
4
+ var type_enum = require('../../../enum/decorator/api/function/type.enum.js');
5
+ var onType_enum = require('../../../enum/decorator/api/on-type.enum.js');
3
6
  var action_enum = require('../../../enum/utility/error-string/action.enum.js');
4
7
  require('../../../enum/utility/error-string/composite-action.enum.js');
5
8
  var common = require('@nestjs/common');
@@ -9,19 +12,30 @@ var logger_utility = require('../../../utility/logger.utility.js');
9
12
 
10
13
  /**
11
14
  * Creates a decorator that adds entity creation functionality to a service method
12
- * @param {IApiFunctionProperties} properties - Configuration properties for the create function
15
+ * @param {IApiFunctionProperties<E>} properties - Configuration properties for the create function
13
16
  * @returns {(target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor} A decorator function that modifies the target method to handle entity creation
14
17
  */
15
- // eslint-disable-next-line @elsikora/typescript/no-unnecessary-type-parameters
16
18
  function ApiFunctionCreate(properties) {
17
19
  const { entity } = properties;
18
- return function (target, propertyKey, descriptor) {
19
- descriptor.value = async function (properties, eventManager) {
20
+ return function (_target, _propertyKey, descriptor) {
21
+ descriptor.value = async function (createProperties, eventManager) {
22
+ const entityInstance = new entity();
23
+ const executionContext = {
24
+ data: { eventManager, repository: this.repository },
25
+ entity: entityInstance,
26
+ functionType: type_enum.EApiFunctionType.CREATE,
27
+ result: createProperties,
28
+ };
29
+ const result = await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(this.constructor, entityInstance, type_enum.EApiFunctionType.CREATE, onType_enum.EApiSubscriberOnType.BEFORE, executionContext);
30
+ if (result) {
31
+ executionContext.result = result;
32
+ }
20
33
  const repository = this.repository;
21
34
  if (!repository) {
35
+ await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(this.constructor, entityInstance, type_enum.EApiFunctionType.CREATE, onType_enum.EApiSubscriberOnType.BEFORE_ERROR, executionContext, new Error("Repository is not available in this context"));
22
36
  throw errorException_utility.ErrorException("Repository is not available in this context");
23
37
  }
24
- return executor({ entity, eventManager, properties, repository });
38
+ return executor({ constructor: this.constructor, entity, eventManager, properties: executionContext.result, repository });
25
39
  };
26
40
  return descriptor;
27
41
  };
@@ -33,19 +47,42 @@ function ApiFunctionCreate(properties) {
33
47
  * @throws {InternalServerErrorException} If the creation operation fails
34
48
  */
35
49
  async function executor(options) {
36
- const { entity, eventManager, properties, repository } = options;
50
+ const { constructor, entity, eventManager, properties, repository } = options;
37
51
  try {
52
+ let result;
38
53
  if (eventManager) {
39
54
  const eventRepository = eventManager.getRepository(entity);
40
- return await eventRepository.save(properties);
55
+ result = await eventRepository.save(properties);
56
+ }
57
+ else {
58
+ result = await repository.save(properties);
41
59
  }
42
- return await repository.save(properties);
60
+ const entityInstance = new entity();
61
+ const executionContext = {
62
+ data: { eventManager, repository },
63
+ entity: entityInstance,
64
+ functionType: type_enum.EApiFunctionType.CREATE,
65
+ result: result,
66
+ };
67
+ const afterResult = await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(constructor, entityInstance, type_enum.EApiFunctionType.CREATE, onType_enum.EApiSubscriberOnType.AFTER, executionContext);
68
+ if (afterResult) {
69
+ return afterResult;
70
+ }
71
+ return result;
43
72
  }
44
73
  catch (error) {
74
+ const entityInstance = new entity();
75
+ const executionContext = {
76
+ data: { eventManager, properties, repository },
77
+ entity: entityInstance,
78
+ functionType: type_enum.EApiFunctionType.CREATE,
79
+ };
45
80
  if (error instanceof common.HttpException) {
81
+ await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(constructor, entityInstance, type_enum.EApiFunctionType.CREATE, onType_enum.EApiSubscriberOnType.AFTER_ERROR, executionContext, error);
46
82
  throw error;
47
83
  }
48
84
  logger_utility.LoggerUtility.getLogger("ApiFunctionCreate").verbose(`Error creating entity ${String(entity.name)}:`, error);
85
+ await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(constructor, entityInstance, type_enum.EApiFunctionType.CREATE, onType_enum.EApiSubscriberOnType.AFTER_ERROR, executionContext, error);
49
86
  throw new common.InternalServerErrorException(errorString_utility.ErrorString({
50
87
  entity: entity,
51
88
  type: action_enum.EErrorStringAction.CREATING_ERROR,
@@ -1 +1 @@
1
- {"version":3,"file":"create.decorator.js","sources":["../../../../../../src/decorator/api/function/create.decorator.ts"],"sourcesContent":[null],"names":["ErrorException","HttpException","LoggerUtility","InternalServerErrorException","ErrorString","EErrorStringAction"],"mappings":";;;;;;;;;AAWA;;;;AAIG;AACH;AACM,SAAU,iBAAiB,CAA2B,UAAkC,EAAA;AAC7F,IAAA,MAAM,EAAE,MAAM,EAAE,GAA2B,UAAU;AAErD,IAAA,OAAO,UAAU,MAAe,EAAE,WAAmB,EAAE,UAA8B,EAAA;AAMpF,QAAA,UAAU,CAAC,KAAK,GAAG,gBAIlB,UAA2C,EAC3C,YAA4B,EAAA;AAE5B,YAAA,MAAM,UAAU,GAAkB,IAAI,CAAC,UAAU;YAEjD,IAAI,CAAC,UAAU,EAAE;AAChB,gBAAA,MAAMA,qCAAc,CAAC,6CAA6C,CAAC;;AAGpE,YAAA,OAAO,QAAQ,CAAI,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACrE,SAAC;AAED,QAAA,OAAO,UAAU;AAClB,KAAC;AACF;AAEA;;;;;AAKG;AACH,eAAe,QAAQ,CAA2B,OAAgD,EAAA;IACjG,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,GAA4C,OAAO;AAEzG,IAAA,IAAI;QACH,IAAI,YAAY,EAAE;YACjB,MAAM,eAAe,GAAkB,YAAY,CAAC,aAAa,CAAI,MAAsB,CAAC;AAE5F,YAAA,OAAO,MAAM,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;;AAG9C,QAAA,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;;IACvC,OAAO,KAAK,EAAE;AACf,QAAA,IAAI,KAAK,YAAYC,oBAAa,EAAE;AACnC,YAAA,MAAM,KAAK;;AAGZ,QAAAC,4BAAa,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAA,sBAAA,EAAyB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;AAE5G,QAAA,MAAM,IAAIC,mCAA4B,CACrCC,+BAAW,CAAC;AACX,YAAA,MAAM,EAAE,MAAM;YACd,IAAI,EAAEC,8BAAkB,CAAC,cAAc;AACvC,SAAA,CAAC,CACF;;AAEH;;;;"}
1
+ {"version":3,"file":"create.decorator.js","sources":["../../../../../../src/decorator/api/function/create.decorator.ts"],"sourcesContent":[null],"names":["EApiFunctionType","ApiSubscriberExecutor","EApiSubscriberOnType","ErrorException","HttpException","LoggerUtility","InternalServerErrorException","ErrorString","EErrorStringAction"],"mappings":"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"}
@@ -6,6 +6,7 @@ require('../../../enum/decorator/api/controller/load-relations-strategy.enum.js'
6
6
  require('../../../enum/decorator/api/controller/request-transformer-type.enum.js');
7
7
  require('../../../enum/decorator/api/dto-type.enum.js');
8
8
  var type_enum = require('../../../enum/decorator/api/function/type.enum.js');
9
+ require('../../../enum/decorator/api/on-type.enum.js');
9
10
  require('../../../enum/decorator/api/property/data-type.enum.js');
10
11
  require('../../../enum/decorator/api/property/date/identifier.enum.js');
11
12
  require('../../../enum/decorator/api/property/date/type.enum.js');
@@ -33,7 +34,6 @@ function ApiFunction(properties) {
33
34
  const { entity, type } = properties;
34
35
  return function (_target, propertyKey, descriptor) {
35
36
  const originalMethod = descriptor.value;
36
- // eslint-disable-next-line @elsikora/typescript/naming-convention
37
37
  descriptor.value = function (...arguments_) {
38
38
  let decoratorFunction;
39
39
  switch (type) {
@@ -1 +1 @@
1
- {"version":3,"file":"decorator.js","sources":["../../../../../../src/decorator/api/function/decorator.ts"],"sourcesContent":[null],"names":["EApiFunctionType","ApiFunctionCreate","ApiFunctionDelete","ApiFunctionGet","ApiFunctionGetList","ApiFunctionGetMany","ApiFunctionUpdate","ErrorException"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgBA;;;;;;AAMG;AACH;AACM,SAAU,WAAW,CAA8B,UAAqC,EAAA;AAC7F,IAAA,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAA8B,UAAU;AAE9D,IAAA,OAAO,UAAU,OAAgB,EAAE,WAAmB,EAAE,UAA8B,EAAA;AACrF,QAAA,MAAM,cAAc,GAAY,UAAU,CAAC,KAAK;;AAGhD,QAAA,UAAU,CAAC,KAAK,GAAG,UAA+C,GAAG,UAAsB,EAAA;AAC1F,YAAA,IAAI,iBAAqC;YAEzC,QAAQ,IAAI;AACX,gBAAA,KAAKA,0BAAgB,CAAC,MAAM,EAAE;AAC7B,oBAAA,iBAAiB,GAAGC,kCAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;oBAEjD;;AAGD,gBAAA,KAAKD,0BAAgB,CAAC,MAAM,EAAE;AAC7B,oBAAA,iBAAiB,GAAGE,kCAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;oBAEjD;;AAGD,gBAAA,KAAKF,0BAAgB,CAAC,GAAG,EAAE;AAC1B,oBAAA,iBAAiB,GAAGG,4BAAc,CAAC,EAAE,MAAM,EAAE,CAAC;oBAE9C;;AAGD,gBAAA,KAAKH,0BAAgB,CAAC,QAAQ,EAAE;AAC/B,oBAAA,iBAAiB,GAAGI,oCAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;oBAElD;;AAGD,gBAAA,KAAKJ,0BAAgB,CAAC,QAAQ,EAAE;AAC/B,oBAAA,iBAAiB,GAAGK,oCAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;oBAElD;;AAGD,gBAAA,KAAKL,0BAAgB,CAAC,MAAM,EAAE;AAC7B,oBAAA,iBAAiB,GAAGM,kCAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;oBAEjD;;gBAGD,SAAS;AACR,oBAAA,MAAMC,qCAAc,CAAC,sBAAsB,CAAC;;;AAI9C,YAAA,MAAM,kBAAkB,GAAuB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;AAC9G,YAAA,MAAM,cAAc,GAAsC,kBAAkB,CAAC,KAA0C;YAEvH,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC;AAC9C,SAAC;AAED,QAAA,OAAO,UAAU;AAClB,KAAC;AACF;;;;"}
1
+ {"version":3,"file":"decorator.js","sources":["../../../../../../src/decorator/api/function/decorator.ts"],"sourcesContent":[null],"names":["EApiFunctionType","ApiFunctionCreate","ApiFunctionDelete","ApiFunctionGet","ApiFunctionGetList","ApiFunctionGetMany","ApiFunctionUpdate","ErrorException"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAgBA;;;;;;AAMG;AACH;AACM,SAAU,WAAW,CAA8B,UAAqC,EAAA;AAC7F,IAAA,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAA8B,UAAU;AAE9D,IAAA,OAAO,UAAU,OAAgB,EAAE,WAAmB,EAAE,UAA8B,EAAA;AACrF,QAAA,MAAM,cAAc,GAAY,UAAU,CAAC,KAAK;AAEhD,QAAA,UAAU,CAAC,KAAK,GAAG,UAA+C,GAAG,UAAsB,EAAA;AAC1F,YAAA,IAAI,iBAAqC;YAEzC,QAAQ,IAAI;AACX,gBAAA,KAAKA,0BAAgB,CAAC,MAAM,EAAE;AAC7B,oBAAA,iBAAiB,GAAGC,kCAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;oBAEjD;;AAGD,gBAAA,KAAKD,0BAAgB,CAAC,MAAM,EAAE;AAC7B,oBAAA,iBAAiB,GAAGE,kCAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;oBAEjD;;AAGD,gBAAA,KAAKF,0BAAgB,CAAC,GAAG,EAAE;AAC1B,oBAAA,iBAAiB,GAAGG,4BAAc,CAAC,EAAE,MAAM,EAAE,CAAC;oBAE9C;;AAGD,gBAAA,KAAKH,0BAAgB,CAAC,QAAQ,EAAE;AAC/B,oBAAA,iBAAiB,GAAGI,oCAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;oBAElD;;AAGD,gBAAA,KAAKJ,0BAAgB,CAAC,QAAQ,EAAE;AAC/B,oBAAA,iBAAiB,GAAGK,oCAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;oBAElD;;AAGD,gBAAA,KAAKL,0BAAgB,CAAC,MAAM,EAAE;AAC7B,oBAAA,iBAAiB,GAAGM,kCAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;oBAEjD;;gBAGD,SAAS;AACR,oBAAA,MAAMC,qCAAc,CAAC,sBAAsB,CAAC;;;AAI9C,YAAA,MAAM,kBAAkB,GAAuB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;AAC9G,YAAA,MAAM,cAAc,GAAsC,kBAAkB,CAAC,KAA0C;YAEvH,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC;AAC9C,SAAC;AAED,QAAA,OAAO,UAAU;AAClB,KAAC;AACF;;;;"}
@@ -5,4 +5,8 @@ import type { IApiFunctionProperties } from '../../../interface/decorator/api/in
5
5
  * @param {IApiFunctionProperties} properties - Configuration properties for the delete function
6
6
  * @returns {(target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor} A decorator function that modifies the target method to handle entity deletion
7
7
  */
8
- export declare function ApiFunctionDelete<E extends IApiBaseEntity>(properties: IApiFunctionProperties): (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
8
+ /**
9
+ *
10
+ * @param properties
11
+ */
12
+ export declare function ApiFunctionDelete<E extends IApiBaseEntity>(properties: IApiFunctionProperties<E>): (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
@@ -1,5 +1,20 @@
1
1
  'use strict';
2
2
 
3
+ var executor_class = require('../../../class/api/subscriber/executor.class.js');
4
+ require('../../../enum/decorator/api/action.enum.js');
5
+ require('../../../enum/decorator/api/authentication-type.enum.js');
6
+ require('../../../enum/decorator/api/controller/load-relations-strategy.enum.js');
7
+ require('../../../enum/decorator/api/controller/request-transformer-type.enum.js');
8
+ require('../../../enum/decorator/api/dto-type.enum.js');
9
+ var type_enum = require('../../../enum/decorator/api/function/type.enum.js');
10
+ var onType_enum = require('../../../enum/decorator/api/on-type.enum.js');
11
+ require('../../../enum/decorator/api/property/data-type.enum.js');
12
+ require('../../../enum/decorator/api/property/date/identifier.enum.js');
13
+ require('../../../enum/decorator/api/property/date/type.enum.js');
14
+ require('../../../enum/decorator/api/property/desribe-type.enum.js');
15
+ require('../../../enum/decorator/api/property/number-type.enum.js');
16
+ require('../../../enum/decorator/api/property/string-type.enum.js');
17
+ require('../../../enum/decorator/api/route-type.enum.js');
3
18
  var action_enum = require('../../../enum/utility/error-string/action.enum.js');
4
19
  require('../../../enum/utility/error-string/composite-action.enum.js');
5
20
  var common = require('@nestjs/common');
@@ -13,15 +28,30 @@ var get_decorator = require('./get.decorator.js');
13
28
  * @param {IApiFunctionProperties} properties - Configuration properties for the delete function
14
29
  * @returns {(target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor} A decorator function that modifies the target method to handle entity deletion
15
30
  */
16
- // eslint-disable-next-line @elsikora/typescript/no-unnecessary-type-parameters
31
+ /**
32
+ *
33
+ * @param properties
34
+ */
17
35
  function ApiFunctionDelete(properties) {
18
36
  const { entity } = properties;
19
37
  const getDecorator = get_decorator.ApiFunctionGet({ entity });
20
38
  let getFunction;
21
- return function (target, propertyKey, descriptor) {
39
+ return function (_target, _propertyKey, descriptor) {
22
40
  descriptor.value = async function (criteria, eventManager) {
41
+ const entityInstance = new entity();
42
+ const executionContext = {
43
+ data: { criteria, eventManager, repository: this.repository },
44
+ entity: entityInstance,
45
+ functionType: type_enum.EApiFunctionType.DELETE,
46
+ result: criteria,
47
+ };
48
+ const result = await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(this.constructor, entityInstance, type_enum.EApiFunctionType.DELETE, onType_enum.EApiSubscriberOnType.BEFORE, executionContext);
49
+ if (result) {
50
+ executionContext.result = result;
51
+ }
23
52
  const repository = this.repository;
24
53
  if (!repository) {
54
+ await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(this.constructor, entityInstance, type_enum.EApiFunctionType.DELETE, onType_enum.EApiSubscriberOnType.BEFORE_ERROR, executionContext, new Error("Repository is not available in this context"));
25
55
  throw errorException_utility.ErrorException("Repository is not available in this context");
26
56
  }
27
57
  if (!getFunction) {
@@ -38,7 +68,7 @@ function ApiFunctionDelete(properties) {
38
68
  throw errorException_utility.ErrorException("Get function is not properly decorated");
39
69
  }
40
70
  }
41
- return executor({ criteria, entity, eventManager, getFunction, repository });
71
+ return executor({ constructor: this.constructor, criteria: executionContext.result, entity, eventManager, getFunction, repository });
42
72
  };
43
73
  return descriptor;
44
74
  };
@@ -50,23 +80,45 @@ function ApiFunctionDelete(properties) {
50
80
  * @throws {InternalServerErrorException} If the deletion operation fails
51
81
  */
52
82
  async function executor(options) {
53
- const { criteria, entity, eventManager, getFunction, repository } = options;
83
+ const { constructor, criteria, entity, eventManager, getFunction, repository } = options;
54
84
  try {
55
85
  const existingEntity = await getFunction({ where: criteria });
86
+ let result;
56
87
  if (eventManager) {
57
88
  const eventRepository = eventManager.getRepository(entity);
58
- return await eventRepository.remove(existingEntity);
89
+ result = await eventRepository.remove(existingEntity);
90
+ }
91
+ else {
92
+ result = await repository.remove(existingEntity);
59
93
  }
60
- return await repository.remove(existingEntity);
94
+ const executionContext = {
95
+ data: { criteria, eventManager, repository },
96
+ entity: existingEntity,
97
+ functionType: type_enum.EApiFunctionType.DELETE,
98
+ result: result,
99
+ };
100
+ const afterResult = await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(constructor, existingEntity, type_enum.EApiFunctionType.DELETE, onType_enum.EApiSubscriberOnType.AFTER, executionContext);
101
+ if (afterResult) {
102
+ return afterResult;
103
+ }
104
+ return result;
61
105
  }
62
106
  catch (error) {
107
+ const entityInstance = new entity();
108
+ const executionContext = {
109
+ data: { criteria, eventManager, repository },
110
+ entity: entityInstance,
111
+ functionType: type_enum.EApiFunctionType.DELETE,
112
+ };
63
113
  if (error instanceof common.HttpException) {
114
+ await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(constructor, entityInstance, type_enum.EApiFunctionType.DELETE, onType_enum.EApiSubscriberOnType.AFTER_ERROR, executionContext, error);
64
115
  throw error;
65
116
  }
66
117
  logger_utility.LoggerUtility.getLogger("ApiFunctionDelete").verbose(`Error deleting entity ${String(entity.name)}:`, error);
118
+ await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(constructor, entityInstance, type_enum.EApiFunctionType.DELETE, onType_enum.EApiSubscriberOnType.AFTER_ERROR, executionContext, error);
67
119
  throw new common.InternalServerErrorException(errorString_utility.ErrorString({
68
120
  entity: entity,
69
- type: action_enum.EErrorStringAction.UPDATING_ERROR,
121
+ type: action_enum.EErrorStringAction.DELETING_ERROR,
70
122
  }));
71
123
  }
72
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"delete.decorator.js","sources":["../../../../../../src/decorator/api/function/delete.decorator.ts"],"sourcesContent":[null],"names":["ApiFunctionGet","ErrorException","HttpException","LoggerUtility","InternalServerErrorException","ErrorString","EErrorStringAction"],"mappings":";;;;;;;;;;AAaA;;;;AAIG;AACH;AACM,SAAU,iBAAiB,CAA2B,UAAkC,EAAA;AAC7F,IAAA,MAAM,EAAE,MAAM,EAAE,GAA2B,UAAU;IACrD,MAAM,YAAY,GAA6FA,4BAAc,CAAI,EAAE,MAAM,EAAE,CAAC;AAC5I,IAAA,IAAI,WAAmG;AAEvG,IAAA,OAAO,UAAU,MAAe,EAAE,WAAmB,EAAE,UAA8B,EAAA;AAMpF,QAAA,UAAU,CAAC,KAAK,GAAG,gBAIlB,QAAuC,EACvC,YAA4B,EAAA;AAE5B,YAAA,MAAM,UAAU,GAAkB,IAAI,CAAC,UAAU;YAEjD,IAAI,CAAC,UAAU,EAAE;AAChB,gBAAA,MAAMC,qCAAc,CAAC,6CAA6C,CAAC;;YAGpE,IAAI,CAAC,WAAW,EAAE;AACjB,gBAAA,MAAM,aAAa,GAAoH;AACtI,oBAAA,KAAK,EAAE,YAAA;wBACN,OAAO,OAAO,CAAC,MAAM,CAACA,qCAAc,CAAC,iBAAiB,CAAC,CAAC;qBACxD;iBACD;AACD,gBAAA,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC;AAExC,gBAAA,IAAI,aAAa,CAAC,KAAK,EAAE;oBACxB,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;qBACtC;AACN,oBAAA,MAAMA,qCAAc,CAAC,wCAAwC,CAAC;;;AAIhE,YAAA,OAAO,QAAQ,CAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAChF,SAAC;AAED,QAAA,OAAO,UAAU;AAClB,KAAC;AACF;AAEA;;;;;AAKG;AACH,eAAe,QAAQ,CAA2B,OAAgD,EAAA;AACjG,IAAA,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,GAA4C,OAAO;AAEpH,IAAA,IAAI;QACH,MAAM,cAAc,GAAM,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAEhE,IAAI,YAAY,EAAE;YACjB,MAAM,eAAe,GAAkB,YAAY,CAAC,aAAa,CAAI,MAAsB,CAAC;AAE5F,YAAA,OAAO,MAAM,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC;;AAGpD,QAAA,OAAO,MAAM,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC;;IAC7C,OAAO,KAAK,EAAE;AACf,QAAA,IAAI,KAAK,YAAYC,oBAAa,EAAE;AACnC,YAAA,MAAM,KAAK;;AAGZ,QAAAC,4BAAa,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAA,sBAAA,EAAyB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;AAE5G,QAAA,MAAM,IAAIC,mCAA4B,CACrCC,+BAAW,CAAC;AACX,YAAA,MAAM,EAAE,MAAM;YACd,IAAI,EAAEC,8BAAkB,CAAC,cAAc;AACvC,SAAA,CAAC,CACF;;AAEH;;;;"}
1
+ {"version":3,"file":"delete.decorator.js","sources":["../../../../../../src/decorator/api/function/delete.decorator.ts"],"sourcesContent":[null],"names":["ApiFunctionGet","EApiFunctionType","ApiSubscriberExecutor","EApiSubscriberOnType","ErrorException","HttpException","LoggerUtility","InternalServerErrorException","ErrorString","EErrorStringAction"],"mappings":"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"}
@@ -5,4 +5,8 @@ import type { IApiFunctionProperties } from '../../../interface/decorator/api/in
5
5
  * @param {IApiFunctionProperties} properties - Configuration properties for the get-list function
6
6
  * @returns {(target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor} A decorator function that modifies the target method to handle entity list retrieval
7
7
  */
8
- export declare function ApiFunctionGetList<E extends IApiBaseEntity>(properties: IApiFunctionProperties): (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
8
+ /**
9
+ *
10
+ * @param properties
11
+ */
12
+ export declare function ApiFunctionGetList<E extends IApiBaseEntity>(properties: IApiFunctionProperties<E>): (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
@@ -1,5 +1,20 @@
1
1
  'use strict';
2
2
 
3
+ var executor_class = require('../../../class/api/subscriber/executor.class.js');
4
+ require('../../../enum/decorator/api/action.enum.js');
5
+ require('../../../enum/decorator/api/authentication-type.enum.js');
6
+ require('../../../enum/decorator/api/controller/load-relations-strategy.enum.js');
7
+ require('../../../enum/decorator/api/controller/request-transformer-type.enum.js');
8
+ require('../../../enum/decorator/api/dto-type.enum.js');
9
+ var type_enum = require('../../../enum/decorator/api/function/type.enum.js');
10
+ var onType_enum = require('../../../enum/decorator/api/on-type.enum.js');
11
+ require('../../../enum/decorator/api/property/data-type.enum.js');
12
+ require('../../../enum/decorator/api/property/date/identifier.enum.js');
13
+ require('../../../enum/decorator/api/property/date/type.enum.js');
14
+ require('../../../enum/decorator/api/property/desribe-type.enum.js');
15
+ require('../../../enum/decorator/api/property/number-type.enum.js');
16
+ require('../../../enum/decorator/api/property/string-type.enum.js');
17
+ require('../../../enum/decorator/api/route-type.enum.js');
3
18
  var action_enum = require('../../../enum/utility/error-string/action.enum.js');
4
19
  require('../../../enum/utility/error-string/composite-action.enum.js');
5
20
  var common = require('@nestjs/common');
@@ -12,16 +27,31 @@ var logger_utility = require('../../../utility/logger.utility.js');
12
27
  * @param {IApiFunctionProperties} properties - Configuration properties for the get-list function
13
28
  * @returns {(target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor} A decorator function that modifies the target method to handle entity list retrieval
14
29
  */
15
- // eslint-disable-next-line @elsikora/typescript/no-unnecessary-type-parameters
30
+ /**
31
+ *
32
+ * @param properties
33
+ */
16
34
  function ApiFunctionGetList(properties) {
17
35
  const { entity } = properties;
18
36
  return function (_target, _propertyKey, descriptor) {
19
- descriptor.value = async function (properties, eventManager) {
37
+ descriptor.value = async function (getListProperties, eventManager) {
38
+ const entityInstance = new entity();
39
+ const executionContext = {
40
+ data: { eventManager, getListProperties, repository: this.repository },
41
+ entity: entityInstance,
42
+ functionType: type_enum.EApiFunctionType.GET_LIST,
43
+ result: getListProperties,
44
+ };
45
+ const result = await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(this.constructor, entityInstance, type_enum.EApiFunctionType.GET_LIST, onType_enum.EApiSubscriberOnType.BEFORE, executionContext);
46
+ if (result) {
47
+ executionContext.result = result;
48
+ }
20
49
  const repository = this.repository;
21
50
  if (!repository) {
51
+ await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(this.constructor, entityInstance, type_enum.EApiFunctionType.GET_LIST, onType_enum.EApiSubscriberOnType.BEFORE_ERROR, executionContext, new Error("Repository is not available in this context"));
22
52
  throw errorException_utility.ErrorException("Repository is not available in this context");
23
53
  }
24
- return executor({ entity, eventManager, properties, repository });
54
+ return executor({ constructor: this.constructor, entity, eventManager, properties: executionContext.result, repository });
25
55
  };
26
56
  return descriptor;
27
57
  };
@@ -33,7 +63,7 @@ function ApiFunctionGetList(properties) {
33
63
  * @throws {InternalServerErrorException} If the list retrieval operation fails
34
64
  */
35
65
  async function executor(options) {
36
- const { entity, eventManager, properties, repository } = options;
66
+ const { constructor, entity, eventManager, properties, repository } = options;
37
67
  try {
38
68
  let items;
39
69
  let totalCount;
@@ -44,22 +74,38 @@ async function executor(options) {
44
74
  else {
45
75
  [items, totalCount] = await repository.findAndCount(properties);
46
76
  }
47
- return {
77
+ const result = {
48
78
  count: items.length,
49
- // @ts-ignore
50
- // eslint-disable-next-line @elsikora/sonar/no-nested-conditional,@elsikora/unicorn/no-nested-ternary
51
- currentPage: items.length === 0 ? 0 : properties.skip ? Math.ceil(properties.skip / properties?.take) + 1 : 1,
79
+ currentPage: items.length === 0 ? 0 : (properties.skip ? Math.ceil(properties.skip / (properties.take ?? 1)) + 1 : 1),
52
80
  items,
53
81
  totalCount,
54
- // @ts-ignore
55
- totalPages: Math.ceil(totalCount / properties.take),
82
+ totalPages: Math.ceil(totalCount / (properties.take ?? 1)),
56
83
  };
84
+ const executionContext = {
85
+ data: { eventManager, properties, repository },
86
+ entity: new entity(),
87
+ functionType: type_enum.EApiFunctionType.GET_LIST,
88
+ result: result,
89
+ };
90
+ const afterResult = await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(constructor, new entity(), type_enum.EApiFunctionType.GET_LIST, onType_enum.EApiSubscriberOnType.AFTER, executionContext);
91
+ if (afterResult) {
92
+ return afterResult;
93
+ }
94
+ return result;
57
95
  }
58
96
  catch (error) {
97
+ const entityInstance = new entity();
98
+ const executionContext = {
99
+ data: { properties, eventManager, repository },
100
+ entity: entityInstance,
101
+ functionType: type_enum.EApiFunctionType.GET_LIST,
102
+ };
59
103
  if (error instanceof common.HttpException) {
104
+ await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(constructor, entityInstance, type_enum.EApiFunctionType.GET_LIST, onType_enum.EApiSubscriberOnType.AFTER_ERROR, executionContext, error);
60
105
  throw error;
61
106
  }
62
107
  logger_utility.LoggerUtility.getLogger("ApiFunctionGetList").verbose(`Error fetching list for entity ${String(entity.name)}:`, error);
108
+ await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(constructor, entityInstance, type_enum.EApiFunctionType.GET_LIST, onType_enum.EApiSubscriberOnType.AFTER_ERROR, executionContext, error);
63
109
  throw new common.InternalServerErrorException(errorString_utility.ErrorString({
64
110
  entity: entity,
65
111
  type: action_enum.EErrorStringAction.FETCHING_LIST_ERROR,
@@ -1 +1 @@
1
- {"version":3,"file":"get-list.decorator.js","sources":["../../../../../../src/decorator/api/function/get-list.decorator.ts"],"sourcesContent":[null],"names":["ErrorException","HttpException","LoggerUtility","InternalServerErrorException","ErrorString","EErrorStringAction"],"mappings":";;;;;;;;;AAWA;;;;AAIG;AACH;AACM,SAAU,kBAAkB,CAA2B,UAAkC,EAAA;AAC9F,IAAA,MAAM,EAAE,MAAM,EAAE,GAA2B,UAAU;AAErD,IAAA,OAAO,UAAU,OAAgB,EAAE,YAAoB,EAAE,UAA8B,EAAA;AACtF,QAAA,UAAU,CAAC,KAAK,GAAG,gBAIlB,UAA4C,EAC5C,YAA4B,EAAA;AAE5B,YAAA,MAAM,UAAU,GAAkB,IAAI,CAAC,UAAU;YAEjD,IAAI,CAAC,UAAU,EAAE;AAChB,gBAAA,MAAMA,qCAAc,CAAC,6CAA6C,CAAC;;AAGpE,YAAA,OAAO,QAAQ,CAAI,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACrE,SAAC;AAED,QAAA,OAAO,UAAU;AAClB,KAAC;AACF;AAEA;;;;;AAKG;AACH,eAAe,QAAQ,CAA2B,OAAiD,EAAA;IAClG,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,GAA6C,OAAO;AAE1G,IAAA,IAAI;AACH,QAAA,IAAI,KAAe;AACnB,QAAA,IAAI,UAAkB;QAEtB,IAAI,YAAY,EAAE;YACjB,MAAM,eAAe,GAAkB,YAAY,CAAC,aAAa,CAAI,MAAsB,CAAC;AAC5F,YAAA,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC;;aAC9D;AACN,YAAA,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC;;QAGhE,OAAO;YACN,KAAK,EAAE,KAAK,CAAC,MAAM;;;AAGnB,YAAA,WAAW,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAC7G,KAAK;YACL,UAAU;;YAEV,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;SACnD;;IACA,OAAO,KAAK,EAAE;AACf,QAAA,IAAI,KAAK,YAAYC,oBAAa,EAAE;AACnC,YAAA,MAAM,KAAK;;AAGZ,QAAAC,4BAAa,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAA,+BAAA,EAAkC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;AAEtH,QAAA,MAAM,IAAIC,mCAA4B,CACrCC,+BAAW,CAAC;AACX,YAAA,MAAM,EAAE,MAAM;YACd,IAAI,EAAEC,8BAAkB,CAAC,mBAAmB;AAC5C,SAAA,CAAC,CACF;;AAEH;;;;"}
1
+ {"version":3,"file":"get-list.decorator.js","sources":["../../../../../../src/decorator/api/function/get-list.decorator.ts"],"sourcesContent":[null],"names":["EApiFunctionType","ApiSubscriberExecutor","EApiSubscriberOnType","ErrorException","HttpException","LoggerUtility","InternalServerErrorException","ErrorString","EErrorStringAction"],"mappings":"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"}
@@ -5,4 +5,8 @@ import type { IApiFunctionProperties } from '../../../interface/decorator/api/in
5
5
  * @param {IApiFunctionProperties} properties - Configuration properties for the get-many function
6
6
  * @returns {(target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor} A decorator function that modifies the target method to handle retrieving multiple entities
7
7
  */
8
- export declare function ApiFunctionGetMany<E extends IApiBaseEntity>(properties: IApiFunctionProperties): (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
8
+ /**
9
+ *
10
+ * @param properties
11
+ */
12
+ export declare function ApiFunctionGetMany<E extends IApiBaseEntity>(properties: IApiFunctionProperties<E>): (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
@@ -1,5 +1,20 @@
1
1
  'use strict';
2
2
 
3
+ var executor_class = require('../../../class/api/subscriber/executor.class.js');
4
+ require('../../../enum/decorator/api/action.enum.js');
5
+ require('../../../enum/decorator/api/authentication-type.enum.js');
6
+ require('../../../enum/decorator/api/controller/load-relations-strategy.enum.js');
7
+ require('../../../enum/decorator/api/controller/request-transformer-type.enum.js');
8
+ require('../../../enum/decorator/api/dto-type.enum.js');
9
+ var type_enum = require('../../../enum/decorator/api/function/type.enum.js');
10
+ var onType_enum = require('../../../enum/decorator/api/on-type.enum.js');
11
+ require('../../../enum/decorator/api/property/data-type.enum.js');
12
+ require('../../../enum/decorator/api/property/date/identifier.enum.js');
13
+ require('../../../enum/decorator/api/property/date/type.enum.js');
14
+ require('../../../enum/decorator/api/property/desribe-type.enum.js');
15
+ require('../../../enum/decorator/api/property/number-type.enum.js');
16
+ require('../../../enum/decorator/api/property/string-type.enum.js');
17
+ require('../../../enum/decorator/api/route-type.enum.js');
3
18
  var action_enum = require('../../../enum/utility/error-string/action.enum.js');
4
19
  require('../../../enum/utility/error-string/composite-action.enum.js');
5
20
  var common = require('@nestjs/common');
@@ -12,16 +27,31 @@ var logger_utility = require('../../../utility/logger.utility.js');
12
27
  * @param {IApiFunctionProperties} properties - Configuration properties for the get-many function
13
28
  * @returns {(target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor} A decorator function that modifies the target method to handle retrieving multiple entities
14
29
  */
15
- // eslint-disable-next-line @elsikora/typescript/no-unnecessary-type-parameters
30
+ /**
31
+ *
32
+ * @param properties
33
+ */
16
34
  function ApiFunctionGetMany(properties) {
17
35
  const { entity } = properties;
18
- return function (target, propertyKey, descriptor) {
19
- descriptor.value = async function (properties, eventManager) {
36
+ return function (_target, _propertyKey, descriptor) {
37
+ descriptor.value = async function (getManyProperties, eventManager) {
38
+ const entityInstance = new entity();
39
+ const executionContext = {
40
+ data: { eventManager, getManyProperties, repository: this.repository },
41
+ entity: entityInstance,
42
+ functionType: type_enum.EApiFunctionType.GET_MANY,
43
+ result: getManyProperties,
44
+ };
45
+ const result = await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(this.constructor, entityInstance, type_enum.EApiFunctionType.GET_MANY, onType_enum.EApiSubscriberOnType.BEFORE, executionContext);
46
+ if (result) {
47
+ executionContext.result = result;
48
+ }
20
49
  const repository = this.repository;
21
50
  if (!repository) {
51
+ await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(this.constructor, entityInstance, type_enum.EApiFunctionType.GET_MANY, onType_enum.EApiSubscriberOnType.BEFORE_ERROR, executionContext, new Error("Repository is not available in this context"));
22
52
  throw errorException_utility.ErrorException("Repository is not available in this context");
23
53
  }
24
- return executor({ entity, eventManager, properties, repository });
54
+ return executor({ constructor: this.constructor, entity, eventManager, properties: executionContext.result, repository });
25
55
  };
26
56
  return descriptor;
27
57
  };
@@ -34,7 +64,7 @@ function ApiFunctionGetMany(properties) {
34
64
  * @throws {InternalServerErrorException} If the retrieval operation fails
35
65
  */
36
66
  async function executor(options) {
37
- const { entity, eventManager, properties, repository } = options;
67
+ const { constructor, entity, eventManager, properties, repository } = options;
38
68
  try {
39
69
  let items;
40
70
  if (eventManager) {
@@ -47,13 +77,31 @@ async function executor(options) {
47
77
  if (items.length === 0) {
48
78
  throw new common.NotFoundException(errorString_utility.ErrorString({ entity, type: action_enum.EErrorStringAction.NOT_FOUND }));
49
79
  }
80
+ const executionContext = {
81
+ data: { eventManager, properties, repository },
82
+ entity: new entity(),
83
+ functionType: type_enum.EApiFunctionType.GET_MANY,
84
+ result: items,
85
+ };
86
+ const afterResult = await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(constructor, new entity(), type_enum.EApiFunctionType.GET_MANY, onType_enum.EApiSubscriberOnType.AFTER, executionContext);
87
+ if (afterResult) {
88
+ return afterResult;
89
+ }
50
90
  return items;
51
91
  }
52
92
  catch (error) {
93
+ const entityInstance = new entity();
94
+ const executionContext = {
95
+ data: { properties, eventManager, repository },
96
+ entity: entityInstance,
97
+ functionType: type_enum.EApiFunctionType.GET_MANY,
98
+ };
53
99
  if (error instanceof common.HttpException) {
100
+ await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(constructor, entityInstance, type_enum.EApiFunctionType.GET_MANY, onType_enum.EApiSubscriberOnType.AFTER_ERROR, executionContext, error);
54
101
  throw error;
55
102
  }
56
103
  logger_utility.LoggerUtility.getLogger("ApiFunctionGetMany").verbose(`Error fetching multiple entity ${String(entity.name)}:`, error);
104
+ await executor_class.ApiSubscriberExecutor.executeFunctionSubscribers(constructor, entityInstance, type_enum.EApiFunctionType.GET_MANY, onType_enum.EApiSubscriberOnType.AFTER_ERROR, executionContext, error);
57
105
  throw new common.InternalServerErrorException(errorString_utility.ErrorString({
58
106
  entity,
59
107
  type: action_enum.EErrorStringAction.FETCHING_ERROR,
@@ -1 +1 @@
1
- {"version":3,"file":"get-many.decorator.js","sources":["../../../../../../src/decorator/api/function/get-many.decorator.ts"],"sourcesContent":[null],"names":["ErrorException","NotFoundException","ErrorString","EErrorStringAction","HttpException","LoggerUtility","InternalServerErrorException"],"mappings":";;;;;;;;;AAWA;;;;AAIG;AACH;AACM,SAAU,kBAAkB,CAA2B,UAAkC,EAAA;AAC9F,IAAA,MAAM,EAAE,MAAM,EAAE,GAA2B,UAAU;AAErD,IAAA,OAAO,UAAU,MAAe,EAAE,WAAmB,EAAE,UAA8B,EAAA;AAMpF,QAAA,UAAU,CAAC,KAAK,GAAG,gBAIlB,UAA4C,EAC5C,YAA4B,EAAA;AAE5B,YAAA,MAAM,UAAU,GAAkB,IAAI,CAAC,UAAU;YAEjD,IAAI,CAAC,UAAU,EAAE;AAChB,gBAAA,MAAMA,qCAAc,CAAC,6CAA6C,CAAC;;AAGpE,YAAA,OAAO,QAAQ,CAAI,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACrE,SAAC;AAED,QAAA,OAAO,UAAU;AAClB,KAAC;AACF;AAEA;;;;;;AAMG;AACH,eAAe,QAAQ,CAA2B,OAAiD,EAAA;IAClG,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,GAA6C,OAAO;AAE1G,IAAA,IAAI;AACH,QAAA,IAAI,KAAe;QAEnB,IAAI,YAAY,EAAE;YACjB,MAAM,eAAe,GAAkB,YAAY,CAAC,aAAa,CAAI,MAAsB,CAAC;YAC5F,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;;aACxC;YACN,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;;AAG1C,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACvB,YAAA,MAAM,IAAIC,wBAAiB,CAACC,+BAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAEC,8BAAkB,CAAC,SAAS,EAAE,CAAC,CAAC;;AAGzF,QAAA,OAAO,KAAK;;IACX,OAAO,KAAK,EAAE;AACf,QAAA,IAAI,KAAK,YAAYC,oBAAa,EAAE;AACnC,YAAA,MAAM,KAAK;;AAGZ,QAAAC,4BAAa,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAA,+BAAA,EAAkC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;AAEtH,QAAA,MAAM,IAAIC,mCAA4B,CACrCJ,+BAAW,CAAC;YACX,MAAM;YACN,IAAI,EAAEC,8BAAkB,CAAC,cAAc;AACvC,SAAA,CAAC,CACF;;AAEH;;;;"}
1
+ {"version":3,"file":"get-many.decorator.js","sources":["../../../../../../src/decorator/api/function/get-many.decorator.ts"],"sourcesContent":[null],"names":["EApiFunctionType","ApiSubscriberExecutor","EApiSubscriberOnType","ErrorException","NotFoundException","ErrorString","EErrorStringAction","HttpException","LoggerUtility","InternalServerErrorException"],"mappings":"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"}
@@ -5,4 +5,8 @@ import type { IApiFunctionProperties } from '../../../interface/decorator/api/in
5
5
  * @param {IApiFunctionProperties} properties - Configuration properties for the get function
6
6
  * @returns {(target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor} A decorator function that modifies the target method to handle single entity retrieval
7
7
  */
8
- export declare function ApiFunctionGet<E extends IApiBaseEntity>(properties: IApiFunctionProperties): (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
8
+ /**
9
+ *
10
+ * @param properties
11
+ */
12
+ export declare function ApiFunctionGet<E extends IApiBaseEntity>(properties: IApiFunctionProperties<E>): (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;