@elsikora/nestjs-crud-automator 1.8.0-dev.2 → 1.9.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 (1015) hide show
  1. package/README.md +253 -290
  2. package/dist/cjs/class/api/index.d.ts +1 -1
  3. package/dist/cjs/class/api/service-base.class.d.ts +2 -3
  4. package/dist/cjs/class/api/service-base.class.js.map +1 -1
  5. package/dist/cjs/class/index.d.ts +4 -3
  6. package/dist/cjs/class/metadata-storage.class.d.ts +2 -2
  7. package/dist/cjs/class/metadata-storage.class.js +1 -0
  8. package/dist/cjs/class/metadata-storage.class.js.map +1 -1
  9. package/dist/cjs/class/utility/dto/property/factory/boolean.class.d.ts +4 -3
  10. package/dist/cjs/class/utility/dto/property/factory/boolean.class.js.map +1 -1
  11. package/dist/cjs/class/utility/dto/property/factory/date.class.d.ts +4 -3
  12. package/dist/cjs/class/utility/dto/property/factory/date.class.js.map +1 -1
  13. package/dist/cjs/class/utility/dto/property/factory/enum.class.d.ts +4 -3
  14. package/dist/cjs/class/utility/dto/property/factory/enum.class.js.map +1 -1
  15. package/dist/cjs/class/utility/dto/property/factory/index.d.ts +8 -6
  16. package/dist/cjs/class/utility/dto/property/factory/number.class.d.ts +5 -4
  17. package/dist/cjs/class/utility/dto/property/factory/number.class.js +1 -3
  18. package/dist/cjs/class/utility/dto/property/factory/number.class.js.map +1 -1
  19. package/dist/cjs/class/utility/dto/property/factory/object.class.d.ts +6 -4
  20. package/dist/cjs/class/utility/dto/property/factory/object.class.js +2 -1
  21. package/dist/cjs/class/utility/dto/property/factory/object.class.js.map +1 -1
  22. package/dist/cjs/class/utility/dto/property/factory/relation.class.d.ts +5 -4
  23. package/dist/cjs/class/utility/dto/property/factory/relation.class.js +0 -3
  24. package/dist/cjs/class/utility/dto/property/factory/relation.class.js.map +1 -1
  25. package/dist/cjs/class/utility/dto/property/factory/string.class.d.ts +4 -3
  26. package/dist/cjs/class/utility/dto/property/factory/string.class.js.map +1 -1
  27. package/dist/cjs/class/utility/dto/property/factory/uuid.class.d.ts +4 -3
  28. package/dist/cjs/class/utility/dto/property/factory/uuid.class.js.map +1 -1
  29. package/dist/cjs/class/utility/dto/strategy/body.class.d.ts +3 -3
  30. package/dist/cjs/class/utility/dto/strategy/body.class.js +1 -4
  31. package/dist/cjs/class/utility/dto/strategy/body.class.js.map +1 -1
  32. package/dist/cjs/class/utility/dto/strategy/index.d.ts +4 -4
  33. package/dist/cjs/class/utility/dto/strategy/query.class.d.ts +3 -3
  34. package/dist/cjs/class/utility/dto/strategy/query.class.js +0 -3
  35. package/dist/cjs/class/utility/dto/strategy/query.class.js.map +1 -1
  36. package/dist/cjs/class/utility/dto/strategy/request.class.d.ts +3 -3
  37. package/dist/cjs/class/utility/dto/strategy/request.class.js +0 -3
  38. package/dist/cjs/class/utility/dto/strategy/request.class.js.map +1 -1
  39. package/dist/cjs/class/utility/dto/strategy/response.class.d.ts +3 -3
  40. package/dist/cjs/class/utility/dto/strategy/response.class.js +0 -3
  41. package/dist/cjs/class/utility/dto/strategy/response.class.js.map +1 -1
  42. package/dist/cjs/constant/decorator/api/function.constant.d.ts +1 -1
  43. package/dist/cjs/constant/decorator/api/function.constant.js +0 -15
  44. package/dist/cjs/constant/decorator/api/function.constant.js.map +1 -1
  45. package/dist/cjs/constant/decorator/api/index.d.ts +3 -3
  46. package/dist/cjs/constant/dto/index.d.ts +3 -3
  47. package/dist/cjs/constant/dto/list.constant.d.ts +1 -2
  48. package/dist/cjs/constant/dto/list.constant.js +1 -3
  49. package/dist/cjs/constant/dto/list.constant.js.map +1 -1
  50. package/dist/cjs/constant/factory/dto/get-list-query.constant.d.ts +1 -0
  51. package/dist/cjs/constant/factory/dto/get-list-query.constant.js +2 -0
  52. package/dist/cjs/constant/factory/dto/get-list-query.constant.js.map +1 -1
  53. package/dist/cjs/constant/factory/dto/index.d.ts +1 -1
  54. package/dist/cjs/constant/index.d.ts +8 -6
  55. package/dist/cjs/constant/interface/api/index.d.ts +2 -2
  56. package/dist/cjs/constant/interface/api/property/index.d.ts +2 -2
  57. package/dist/cjs/constant/utility/dto/constant.d.ts +3 -2
  58. package/dist/cjs/constant/utility/dto/constant.js +6 -10
  59. package/dist/cjs/constant/utility/dto/constant.js.map +1 -1
  60. package/dist/cjs/constant/utility/dto/index.d.ts +2 -0
  61. package/dist/cjs/constant/validator/has-paired-custom-suffixes-fields.constant.d.ts +5 -0
  62. package/dist/cjs/constant/validator/has-paired-custom-suffixes-fields.constant.js +89 -0
  63. package/dist/cjs/constant/validator/has-paired-custom-suffixes-fields.constant.js.map +1 -0
  64. package/dist/cjs/constant/validator/index.d.ts +1 -0
  65. package/dist/cjs/decorator/api/controller.decorator.d.ts +3 -2
  66. package/dist/cjs/decorator/api/controller.decorator.js.map +1 -1
  67. package/dist/cjs/decorator/api/function/create.decorator.d.ts +7 -1
  68. package/dist/cjs/decorator/api/function/create.decorator.js +12 -16
  69. package/dist/cjs/decorator/api/function/create.decorator.js.map +1 -1
  70. package/dist/cjs/decorator/api/function/decorator.d.ts +10 -3
  71. package/dist/cjs/decorator/api/function/decorator.js +7 -3
  72. package/dist/cjs/decorator/api/function/decorator.js.map +1 -1
  73. package/dist/cjs/decorator/api/function/delete.decorator.d.ts +7 -1
  74. package/dist/cjs/decorator/api/function/delete.decorator.js +12 -16
  75. package/dist/cjs/decorator/api/function/delete.decorator.js.map +1 -1
  76. package/dist/cjs/decorator/api/function/get-list.decorator.d.ts +8 -2
  77. package/dist/cjs/decorator/api/function/get-list.decorator.js +12 -16
  78. package/dist/cjs/decorator/api/function/get-list.decorator.js.map +1 -1
  79. package/dist/cjs/decorator/api/function/get-many.decorator.d.ts +7 -1
  80. package/dist/cjs/decorator/api/function/get-many.decorator.js +13 -16
  81. package/dist/cjs/decorator/api/function/get-many.decorator.js.map +1 -1
  82. package/dist/cjs/decorator/api/function/get.decorator.d.ts +7 -1
  83. package/dist/cjs/decorator/api/function/get.decorator.js +13 -16
  84. package/dist/cjs/decorator/api/function/get.decorator.js.map +1 -1
  85. package/dist/cjs/decorator/api/function/index.d.ts +7 -7
  86. package/dist/cjs/decorator/api/function/update.decorator.d.ts +7 -1
  87. package/dist/cjs/decorator/api/function/update.decorator.js +12 -16
  88. package/dist/cjs/decorator/api/function/update.decorator.js.map +1 -1
  89. package/dist/cjs/decorator/api/index.d.ts +5 -5
  90. package/dist/cjs/decorator/api/method.decorator.d.ts +8 -1
  91. package/dist/cjs/decorator/api/method.decorator.js +9 -6
  92. package/dist/cjs/decorator/api/method.decorator.js.map +1 -1
  93. package/dist/cjs/decorator/api/property/boolean.decorator.d.ts +52 -1
  94. package/dist/cjs/decorator/api/property/boolean.decorator.js +99 -7
  95. package/dist/cjs/decorator/api/property/boolean.decorator.js.map +1 -1
  96. package/dist/cjs/decorator/api/property/copy.decorator.d.ts +16 -0
  97. package/dist/cjs/decorator/api/property/copy.decorator.js +49 -0
  98. package/dist/cjs/decorator/api/property/copy.decorator.js.map +1 -0
  99. package/dist/cjs/decorator/api/property/date.decorator.d.ts +56 -1
  100. package/dist/cjs/decorator/api/property/date.decorator.js +132 -7
  101. package/dist/cjs/decorator/api/property/date.decorator.js.map +1 -1
  102. package/dist/cjs/decorator/api/property/describe.decorator.d.ts +82 -1
  103. package/dist/cjs/decorator/api/property/describe.decorator.js +81 -16
  104. package/dist/cjs/decorator/api/property/describe.decorator.js.map +1 -1
  105. package/dist/cjs/decorator/api/property/enum.decorator.d.ts +75 -1
  106. package/dist/cjs/decorator/api/property/enum.decorator.js +112 -0
  107. package/dist/cjs/decorator/api/property/enum.decorator.js.map +1 -1
  108. package/dist/cjs/decorator/api/property/index.d.ts +9 -7
  109. package/dist/cjs/decorator/api/property/number.decorator.d.ts +67 -1
  110. package/dist/cjs/decorator/api/property/number.decorator.js +152 -12
  111. package/dist/cjs/decorator/api/property/number.decorator.js.map +1 -1
  112. package/dist/cjs/decorator/api/property/object.decorator.d.ts +27 -1
  113. package/dist/cjs/decorator/api/property/object.decorator.js +145 -3
  114. package/dist/cjs/decorator/api/property/object.decorator.js.map +1 -1
  115. package/dist/cjs/decorator/api/property/string.decorator.d.ts +68 -1
  116. package/dist/cjs/decorator/api/property/string.decorator.js +131 -14
  117. package/dist/cjs/decorator/api/property/string.decorator.js.map +1 -1
  118. package/dist/cjs/decorator/api/property/uuid.decorator.d.ts +42 -1
  119. package/dist/cjs/decorator/api/property/uuid.decorator.js +92 -7
  120. package/dist/cjs/decorator/api/property/uuid.decorator.js.map +1 -1
  121. package/dist/cjs/decorator/api/service.decorator.d.ts +8 -2
  122. package/dist/cjs/decorator/api/service.decorator.js +10 -6
  123. package/dist/cjs/decorator/api/service.decorator.js.map +1 -1
  124. package/dist/cjs/enum/decorator/api/controller/index.d.ts +2 -2
  125. package/dist/cjs/enum/decorator/api/function/index.d.ts +1 -1
  126. package/dist/cjs/enum/decorator/api/index.d.ts +7 -7
  127. package/dist/cjs/enum/decorator/api/property/date/index.d.ts +2 -2
  128. package/dist/cjs/enum/decorator/api/property/index.d.ts +5 -5
  129. package/dist/cjs/enum/index.d.ts +6 -4
  130. package/dist/cjs/enum/utility/index.d.ts +1 -1
  131. package/dist/cjs/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.d.ts +5 -0
  132. package/dist/cjs/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.js +9 -0
  133. package/dist/cjs/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.js.map +1 -0
  134. package/dist/cjs/enum/validator/index.d.ts +2 -0
  135. package/dist/cjs/enum/validator/must-match-one-of-schemas-error-type.enum.d.ts +6 -0
  136. package/dist/cjs/enum/validator/must-match-one-of-schemas-error-type.enum.js +10 -0
  137. package/dist/cjs/enum/validator/must-match-one-of-schemas-error-type.enum.js.map +1 -0
  138. package/dist/cjs/factory/api/controller.factory.d.ts +4 -3
  139. package/dist/cjs/factory/api/controller.factory.js +11 -15
  140. package/dist/cjs/factory/api/controller.factory.js.map +1 -1
  141. package/dist/cjs/factory/api/index.d.ts +1 -1
  142. package/dist/cjs/index.d.ts +10 -10
  143. package/dist/cjs/index.js +132 -0
  144. package/dist/cjs/index.js.map +1 -1
  145. package/dist/cjs/interceptor/index.d.ts +1 -1
  146. package/dist/cjs/interface/api-authentication-request.interface.d.ts +1 -1
  147. package/dist/cjs/interface/api-request-validator.interface.d.ts +3 -2
  148. package/dist/cjs/interface/class/dto/index.d.ts +1 -1
  149. package/dist/cjs/interface/class/dto/strategy.interface.d.ts +2 -2
  150. package/dist/cjs/interface/class/index.d.ts +2 -2
  151. package/dist/cjs/interface/decorator/api/controller/base.interface.d.ts +1 -1
  152. package/dist/cjs/interface/decorator/api/controller/index.d.ts +3 -3
  153. package/dist/cjs/interface/decorator/api/controller/properties/route/authentication.interface.d.ts +1 -1
  154. package/dist/cjs/interface/decorator/api/controller/properties/route/auto-dto-config.interface.d.ts +1 -1
  155. package/dist/cjs/interface/decorator/api/controller/properties/route/base-request.interface.d.ts +3 -3
  156. package/dist/cjs/interface/decorator/api/controller/properties/route/base-response.interface.d.ts +2 -2
  157. package/dist/cjs/interface/decorator/api/controller/properties/route/base.interface.d.ts +2 -4
  158. package/dist/cjs/interface/decorator/api/controller/properties/route/index.d.ts +7 -7
  159. package/dist/cjs/interface/decorator/api/controller/properties/route/with-auto-dto.interface.d.ts +2 -3
  160. package/dist/cjs/interface/decorator/api/controller/properties/route/with-dto.interface.d.ts +2 -2
  161. package/dist/cjs/interface/decorator/api/controller/properties.interface.d.ts +3 -3
  162. package/dist/cjs/interface/decorator/api/function/create-executor-properties.interface.d.ts +2 -2
  163. package/dist/cjs/interface/decorator/api/function/delete-executor-properties.interface.d.ts +2 -2
  164. package/dist/cjs/interface/decorator/api/function/get-executor-properties.interface.d.ts +2 -2
  165. package/dist/cjs/interface/decorator/api/function/get-list-executor-properties.interface.d.ts +2 -2
  166. package/dist/cjs/interface/decorator/api/function/get-many-executor-properties.interface.d.ts +2 -2
  167. package/dist/cjs/interface/decorator/api/function/index.d.ts +7 -7
  168. package/dist/cjs/interface/decorator/api/function/properties.interface.d.ts +1 -1
  169. package/dist/cjs/interface/decorator/api/function/update-executor-properties.interface.d.ts +2 -2
  170. package/dist/cjs/interface/decorator/api/index.d.ts +5 -5
  171. package/dist/cjs/interface/decorator/api/method/index.d.ts +2 -2
  172. package/dist/cjs/interface/decorator/api/method/properties.interface.d.ts +2 -4
  173. package/dist/cjs/interface/dto-generate-factory.interface.d.ts +5 -4
  174. package/dist/cjs/interface/entity/index.d.ts +2 -2
  175. package/dist/cjs/interface/entity/interface.d.ts +2 -2
  176. package/dist/cjs/interface/index.d.ts +10 -8
  177. package/dist/cjs/interface/utility/api/controller/index.d.ts +1 -1
  178. package/dist/cjs/interface/utility/error-string-properties.interface.d.ts +1 -1
  179. package/dist/cjs/interface/utility/get-entity-columns-properties.interface.d.ts +1 -1
  180. package/dist/cjs/interface/utility/index.d.ts +3 -2
  181. package/dist/cjs/interface/validator/index.d.ts +1 -0
  182. package/dist/cjs/interface/validator/must-match-one-of-schemas-discriminator-config.interface.d.ts +6 -0
  183. package/dist/cjs/type/api-request-transformer.type.d.ts +3 -3
  184. package/dist/cjs/type/class/controller/index.d.ts +1 -1
  185. package/dist/cjs/type/class/controller/method.type.d.ts +2 -2
  186. package/dist/cjs/type/class/index.d.ts +3 -3
  187. package/dist/cjs/type/class/metadata.type.d.ts +1 -1
  188. package/dist/cjs/type/decorator/api/controller/constructor.type.d.ts +1 -1
  189. package/dist/cjs/type/decorator/api/controller/get-list-query.type.d.ts +2 -2
  190. package/dist/cjs/type/decorator/api/controller/index.d.ts +5 -5
  191. package/dist/cjs/type/decorator/api/controller/properties/route/base-request-relations.type.d.ts +1 -1
  192. package/dist/cjs/type/decorator/api/controller/properties/route/base-request-transformers.type.d.ts +2 -2
  193. package/dist/cjs/type/decorator/api/controller/properties/route/base-response-transformers.type.d.ts +2 -2
  194. package/dist/cjs/type/decorator/api/controller/properties/route/index.d.ts +3 -3
  195. package/dist/cjs/type/decorator/api/controller/properties-route.type.d.ts +2 -2
  196. package/dist/cjs/type/decorator/api/controller/transformer-config.type.d.ts +2 -2
  197. package/dist/cjs/type/decorator/api/filter/extracted-allowed-types.type.d.ts +1 -1
  198. package/dist/cjs/type/decorator/api/filter/index.d.ts +4 -4
  199. package/dist/cjs/type/decorator/api/filter/order-by.type.d.ts +1 -1
  200. package/dist/cjs/type/decorator/api/function/index.d.ts +9 -9
  201. package/dist/cjs/type/decorator/api/function/properties.type.d.ts +1 -1
  202. package/dist/cjs/type/decorator/api/property/base/array/index.d.ts +2 -2
  203. package/dist/cjs/type/decorator/api/property/base/index.d.ts +4 -4
  204. package/dist/cjs/type/decorator/api/property/base/properties.type.d.ts +2 -4
  205. package/dist/cjs/type/decorator/api/property/date-properties.type.d.ts +2 -2
  206. package/dist/cjs/type/decorator/api/property/describe/array/index.d.ts +2 -2
  207. package/dist/cjs/type/decorator/api/property/describe/base-properties.type.d.ts +1 -1
  208. package/dist/cjs/type/decorator/api/property/describe/boolean-properties.type.d.ts +3 -3
  209. package/dist/cjs/type/decorator/api/property/describe/date-properties.type.d.ts +3 -3
  210. package/dist/cjs/type/decorator/api/property/describe/dto/body-properties.type.d.ts +2 -2
  211. package/dist/cjs/type/decorator/api/property/describe/dto/index.d.ts +6 -5
  212. package/dist/cjs/type/decorator/api/property/describe/dto/properties.type.d.ts +1 -1
  213. package/dist/cjs/type/decorator/api/property/describe/dto/query/index.d.ts +2 -2
  214. package/dist/cjs/type/decorator/api/property/describe/dto/query/properties.type.d.ts +2 -3
  215. package/dist/cjs/type/decorator/api/property/describe/dto/request-properties.type.d.ts +2 -2
  216. package/dist/cjs/type/decorator/api/property/describe/dto/response-properties.type.d.ts +2 -2
  217. package/dist/cjs/type/decorator/api/property/describe/enum-properties.type.d.ts +3 -3
  218. package/dist/cjs/type/decorator/api/property/describe/index.d.ts +14 -13
  219. package/dist/cjs/type/decorator/api/property/describe/number-properties.type.d.ts +4 -4
  220. package/dist/cjs/type/decorator/api/property/describe/object/dynamic-with-discriminator-properties.type.d.ts +15 -0
  221. package/dist/cjs/type/decorator/api/property/describe/object/index.d.ts +4 -0
  222. package/dist/cjs/type/decorator/api/property/describe/object/properties.type.d.ts +4 -0
  223. package/dist/cjs/type/decorator/api/property/describe/object/with-discriminator-properties.type.d.ts +14 -0
  224. package/dist/cjs/type/decorator/api/property/describe/{object-properties.type.d.ts → object/without-discriminator-properties.type.d.ts} +4 -4
  225. package/dist/cjs/type/decorator/api/property/describe/properties/base-dto-properties.type.d.ts +1 -1
  226. package/dist/cjs/type/decorator/api/property/describe/properties/base-properties.type.d.ts +2 -2
  227. package/dist/cjs/type/decorator/api/property/describe/properties/index.d.ts +2 -2
  228. package/dist/cjs/type/decorator/api/property/describe/properties.type.d.ts +8 -8
  229. package/dist/cjs/type/decorator/api/property/describe/relation-properties.type.d.ts +2 -2
  230. package/dist/cjs/type/decorator/api/property/describe/string-properties.type.d.ts +4 -4
  231. package/dist/cjs/type/decorator/api/property/describe/uuid-properties.type.d.ts +3 -3
  232. package/dist/cjs/type/decorator/api/property/enum-properties.type.d.ts +1 -1
  233. package/dist/cjs/type/decorator/api/property/index.d.ts +8 -6
  234. package/dist/cjs/type/decorator/api/property/number-properties.type.d.ts +3 -3
  235. package/dist/cjs/type/decorator/api/property/object/dynamic-with-discriminator-properties.type.d.ts +16 -0
  236. package/dist/cjs/type/decorator/api/property/object/index.d.ts +4 -0
  237. package/dist/cjs/type/decorator/api/property/object/properties.type.d.ts +4 -0
  238. package/dist/cjs/type/decorator/api/property/object/with-discriminator-properties.type.d.ts +15 -0
  239. package/dist/cjs/type/decorator/api/property/{object-properties.type.d.ts → object/without-discriminator-properties.type.d.ts} +4 -2
  240. package/dist/cjs/type/decorator/api/property/string-properties.type.d.ts +2 -2
  241. package/dist/cjs/type/decorator/api/property/uuid-properties.type.d.ts +1 -1
  242. package/dist/cjs/type/decorator/api/service/index.d.ts +2 -2
  243. package/dist/cjs/type/decorator/api/service/keys.type.d.ts +1 -1
  244. package/dist/cjs/type/factory/api/controller/index.d.ts +4 -4
  245. package/dist/cjs/type/factory/api/controller/method-map.type.d.ts +4 -3
  246. package/dist/cjs/type/factory/api/controller/method-name-map.type.d.ts +2 -2
  247. package/dist/cjs/type/factory/api/controller/method-name.type.d.ts +3 -3
  248. package/dist/cjs/type/factory/api/controller/target-methods.type.d.ts +4 -4
  249. package/dist/cjs/type/index.d.ts +10 -5
  250. package/dist/cjs/type/utility/api/controller/transform-data/data.type.d.ts +1 -1
  251. package/dist/cjs/type/utility/api/controller/transform-data/index.d.ts +3 -3
  252. package/dist/cjs/type/utility/api/controller/transform-data/is-validation-properties.type.d.ts +2 -2
  253. package/dist/cjs/type/utility/api/controller/transform-data/object-to-transform.type.d.ts +2 -2
  254. package/dist/cjs/type/utility/date-range-keys.type.d.ts +1 -1
  255. package/dist/cjs/type/utility/dto/generate-allowed-combination.type.d.ts +1 -1
  256. package/dist/cjs/type/utility/dto/generate-is-allowed-combination.type.d.ts +2 -2
  257. package/dist/cjs/type/utility/dto/index.d.ts +2 -2
  258. package/dist/cjs/type/utility/filter-keys.type.d.ts +1 -1
  259. package/dist/cjs/type/utility/index.d.ts +7 -7
  260. package/dist/cjs/type/validator/has-paired-custom-suffixes-fields/index.d.ts +2 -0
  261. package/dist/cjs/type/validator/has-paired-custom-suffixes-fields/operation-config.type.d.ts +7 -0
  262. package/dist/cjs/type/validator/has-paired-custom-suffixes-fields/validation-context.type.d.ts +5 -0
  263. package/dist/cjs/utility/api/controller/apply-decorators.utility.d.ts +18 -3
  264. package/dist/cjs/utility/api/controller/apply-decorators.utility.js +15 -4
  265. package/dist/cjs/utility/api/controller/apply-decorators.utility.js.map +1 -1
  266. package/dist/cjs/utility/api/controller/apply-metadata.utility.d.ts +17 -3
  267. package/dist/cjs/utility/api/controller/apply-metadata.utility.js +21 -12
  268. package/dist/cjs/utility/api/controller/apply-metadata.utility.js.map +1 -1
  269. package/dist/cjs/utility/api/controller/get-list/index.d.ts +2 -2
  270. package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.d.ts +10 -1
  271. package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.js +9 -3
  272. package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.js.map +1 -1
  273. package/dist/cjs/utility/api/controller/get-list/transform-operation.utility.d.ts +8 -1
  274. package/dist/cjs/utility/api/controller/get-list/transform-operation.utility.js +8 -1
  275. package/dist/cjs/utility/api/controller/get-list/transform-operation.utility.js.map +1 -1
  276. package/dist/cjs/utility/api/controller/get-method-name.utility.d.ts +7 -1
  277. package/dist/cjs/utility/api/controller/get-method-name.utility.js +6 -0
  278. package/dist/cjs/utility/api/controller/get-method-name.utility.js.map +1 -1
  279. package/dist/cjs/utility/api/controller/get-primary-column.utility.d.ts +10 -1
  280. package/dist/cjs/utility/api/controller/get-primary-column.utility.js +8 -0
  281. package/dist/cjs/utility/api/controller/get-primary-column.utility.js.map +1 -1
  282. package/dist/cjs/utility/api/controller/handle-request-relations.utility.d.ts +17 -2
  283. package/dist/cjs/utility/api/controller/handle-request-relations.utility.js +15 -5
  284. package/dist/cjs/utility/api/controller/handle-request-relations.utility.js.map +1 -1
  285. package/dist/cjs/utility/api/controller/index.d.ts +10 -9
  286. package/dist/cjs/utility/api/controller/transform-data.utility.d.ts +15 -3
  287. package/dist/cjs/utility/api/controller/transform-data.utility.js +52 -3
  288. package/dist/cjs/utility/api/controller/transform-data.utility.js.map +1 -1
  289. package/dist/cjs/utility/api/controller/validate-request.utility.d.ts +12 -2
  290. package/dist/cjs/utility/api/controller/validate-request.utility.js +9 -0
  291. package/dist/cjs/utility/api/controller/validate-request.utility.js.map +1 -1
  292. package/dist/cjs/utility/api/controller/write-dto-swagger.utility.d.ts +17 -3
  293. package/dist/cjs/utility/api/controller/write-dto-swagger.utility.js +20 -11
  294. package/dist/cjs/utility/api/controller/write-dto-swagger.utility.js.map +1 -1
  295. package/dist/cjs/utility/api/controller/write-method.utility.d.ts +16 -2
  296. package/dist/cjs/utility/api/controller/write-method.utility.js +14 -1
  297. package/dist/cjs/utility/api/controller/write-method.utility.js.map +1 -1
  298. package/dist/cjs/utility/api/filter-order-by-from-entity.utility.d.ts +16 -3
  299. package/dist/cjs/utility/api/filter-order-by-from-entity.utility.js +14 -1
  300. package/dist/cjs/utility/api/filter-order-by-from-entity.utility.js.map +1 -1
  301. package/dist/cjs/utility/api/index.d.ts +2 -2
  302. package/dist/cjs/utility/camel-case-string.utility.d.ts +5 -0
  303. package/dist/cjs/utility/camel-case-string.utility.js +5 -0
  304. package/dist/cjs/utility/camel-case-string.utility.js.map +1 -1
  305. package/dist/cjs/utility/capitalize-string.utility.d.ts +5 -0
  306. package/dist/cjs/utility/capitalize-string.utility.js +5 -0
  307. package/dist/cjs/utility/capitalize-string.utility.js.map +1 -1
  308. package/dist/cjs/utility/dto/analize.utility.d.ts +7 -1
  309. package/dist/cjs/utility/dto/analize.utility.js +6 -16
  310. package/dist/cjs/utility/dto/analize.utility.js.map +1 -1
  311. package/dist/cjs/utility/dto/build-decorator.utility.d.ts +19 -4
  312. package/dist/cjs/utility/dto/build-decorator.utility.js +17 -5
  313. package/dist/cjs/utility/dto/build-decorator.utility.js.map +1 -1
  314. package/dist/cjs/utility/dto/generate-decorator.utility.d.ts +19 -4
  315. package/dist/cjs/utility/dto/generate-decorator.utility.js +16 -2
  316. package/dist/cjs/utility/dto/generate-decorator.utility.js.map +1 -1
  317. package/dist/cjs/utility/dto/generate-dynamic.utility.d.ts +21 -0
  318. package/dist/cjs/utility/dto/generate-dynamic.utility.js +94 -0
  319. package/dist/cjs/utility/dto/generate-dynamic.utility.js.map +1 -0
  320. package/dist/cjs/utility/dto/generate-exception.utility.d.ts +7 -0
  321. package/dist/cjs/utility/dto/generate-exception.utility.js +8 -5
  322. package/dist/cjs/utility/dto/generate-exception.utility.js.map +1 -1
  323. package/dist/cjs/utility/dto/generate-filter-decorator.utility.d.ts +11 -2
  324. package/dist/cjs/utility/dto/generate-filter-decorator.utility.js +9 -3
  325. package/dist/cjs/utility/dto/generate-filter-decorator.utility.js.map +1 -1
  326. package/dist/cjs/utility/dto/generate-get-list-response.utility.d.ts +9 -0
  327. package/dist/cjs/utility/dto/generate-get-list-response.utility.js +25 -19
  328. package/dist/cjs/utility/dto/generate-get-list-response.utility.js.map +1 -1
  329. package/dist/cjs/utility/dto/generate-relation-response.utility.d.ts +12 -2
  330. package/dist/cjs/utility/dto/generate-relation-response.utility.js +10 -0
  331. package/dist/cjs/utility/dto/generate-relation-response.utility.js.map +1 -1
  332. package/dist/cjs/utility/dto/generate.utility.d.ts +17 -2
  333. package/dist/cjs/utility/dto/generate.utility.js +39 -11
  334. package/dist/cjs/utility/dto/generate.utility.js.map +1 -1
  335. package/dist/cjs/utility/dto/get-decorator-config.utility.d.ts +15 -2
  336. package/dist/cjs/utility/dto/get-decorator-config.utility.js +13 -0
  337. package/dist/cjs/utility/dto/get-decorator-config.utility.js.map +1 -1
  338. package/dist/cjs/utility/dto/get-get-list-query-base-class.utility.d.ts +13 -2
  339. package/dist/cjs/utility/dto/get-get-list-query-base-class.utility.js +16 -11
  340. package/dist/cjs/utility/dto/get-get-list-query-base-class.utility.js.map +1 -1
  341. package/dist/cjs/utility/dto/handle-date-property.utility.d.ts +9 -1
  342. package/dist/cjs/utility/dto/handle-date-property.utility.js +8 -3
  343. package/dist/cjs/utility/dto/handle-date-property.utility.js.map +1 -1
  344. package/dist/cjs/utility/dto/index.d.ts +16 -12
  345. package/dist/cjs/utility/dto/is-property-exposed-for-guard.utility.d.ts +10 -2
  346. package/dist/cjs/utility/dto/is-property-exposed-for-guard.utility.js +8 -0
  347. package/dist/cjs/utility/dto/is-property-exposed-for-guard.utility.js.map +1 -1
  348. package/dist/cjs/utility/dto/is-property-should-be-marked.utility.d.ts +12 -2
  349. package/dist/cjs/utility/dto/is-property-should-be-marked.utility.js +10 -3
  350. package/dist/cjs/utility/dto/is-property-should-be-marked.utility.js.map +1 -1
  351. package/dist/cjs/utility/dto/is-should-be-generated.utility.d.ts +11 -1
  352. package/dist/cjs/utility/dto/is-should-be-generated.utility.js +10 -3
  353. package/dist/cjs/utility/dto/is-should-be-generated.utility.js.map +1 -1
  354. package/dist/cjs/utility/dto/validate-property-config.utility.d.ts +1 -1
  355. package/dist/cjs/utility/error-exception.utility.d.ts +5 -0
  356. package/dist/cjs/utility/error-exception.utility.js +5 -0
  357. package/dist/cjs/utility/error-exception.utility.js.map +1 -1
  358. package/dist/cjs/utility/error-string.utility.d.ts +8 -1
  359. package/dist/cjs/utility/error-string.utility.js +6 -0
  360. package/dist/cjs/utility/error-string.utility.js.map +1 -1
  361. package/dist/cjs/utility/generate-entity-information.utility.d.ts +8 -1
  362. package/dist/cjs/utility/generate-entity-information.utility.js +7 -17
  363. package/dist/cjs/utility/generate-entity-information.utility.js.map +1 -1
  364. package/dist/cjs/utility/get-entity-columns.utility.d.ts +7 -1
  365. package/dist/cjs/utility/get-entity-columns.utility.js +6 -0
  366. package/dist/cjs/utility/get-entity-columns.utility.js.map +1 -1
  367. package/dist/cjs/utility/index.d.ts +10 -10
  368. package/dist/cjs/utility/is-error-of-type.utility.d.ts +7 -1
  369. package/dist/cjs/utility/is-error-of-type.utility.js +7 -16
  370. package/dist/cjs/utility/is-error-of-type.utility.js.map +1 -1
  371. package/dist/cjs/utility/logger.utility.d.ts +4 -0
  372. package/dist/cjs/utility/logger.utility.js +4 -0
  373. package/dist/cjs/utility/logger.utility.js.map +1 -1
  374. package/dist/cjs/validator/all-or-none-of-listed-properties.validator.d.ts +1 -1
  375. package/dist/cjs/validator/all-or-none-of-listed-properties.validator.js +3 -3
  376. package/dist/cjs/validator/all-or-none-of-listed-properties.validator.js.map +1 -1
  377. package/dist/cjs/validator/has-at-least-one-and-only-one-of-listed-properties.validator.d.ts +1 -1
  378. package/dist/cjs/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js +3 -3
  379. package/dist/cjs/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js.map +1 -1
  380. package/dist/cjs/validator/has-at-least-one-of-listed-properties.validator.d.ts +1 -1
  381. package/dist/cjs/validator/has-at-least-one-of-listed-properties.validator.js +3 -3
  382. package/dist/cjs/validator/has-at-least-one-of-listed-properties.validator.js.map +1 -1
  383. package/dist/cjs/validator/has-at-least-one-property.validator.d.ts +1 -1
  384. package/dist/cjs/validator/has-at-least-one-property.validator.js +3 -3
  385. package/dist/cjs/validator/has-at-least-one-property.validator.js.map +1 -1
  386. package/dist/cjs/validator/has-paired-custom-suffixes-fields.validator.d.ts +12 -1
  387. package/dist/cjs/validator/has-paired-custom-suffixes-fields.validator.js +25 -95
  388. package/dist/cjs/validator/has-paired-custom-suffixes-fields.validator.js.map +1 -1
  389. package/dist/cjs/validator/index.d.ts +8 -6
  390. package/dist/cjs/validator/is-regular-expression.validator.d.ts +6 -1
  391. package/dist/cjs/validator/is-regular-expression.validator.js +8 -3
  392. package/dist/cjs/validator/is-regular-expression.validator.js.map +1 -1
  393. package/dist/cjs/validator/must-match-one-of-schemas.validator.d.ts +36 -0
  394. package/dist/cjs/validator/must-match-one-of-schemas.validator.js +190 -0
  395. package/dist/cjs/validator/must-match-one-of-schemas.validator.js.map +1 -0
  396. package/dist/cjs/validator/only-one-of-listed-properties.validator.d.ts +1 -1
  397. package/dist/cjs/validator/only-one-of-listed-properties.validator.js +3 -3
  398. package/dist/cjs/validator/only-one-of-listed-properties.validator.js.map +1 -1
  399. package/dist/esm/class/api/index.d.ts +1 -1
  400. package/dist/esm/class/api/service-base.class.d.ts +2 -3
  401. package/dist/esm/class/api/service-base.class.js.map +1 -0
  402. package/dist/esm/class/index.d.ts +4 -3
  403. package/dist/esm/class/metadata-storage.class.d.ts +2 -2
  404. package/dist/esm/{src/class → class}/metadata-storage.class.js +1 -0
  405. package/dist/esm/class/metadata-storage.class.js.map +1 -0
  406. package/dist/esm/class/utility/dto/property/factory/boolean.class.d.ts +4 -3
  407. package/dist/esm/class/utility/dto/property/factory/boolean.class.js.map +1 -0
  408. package/dist/esm/class/utility/dto/property/factory/date.class.d.ts +4 -3
  409. package/dist/esm/class/utility/dto/property/factory/date.class.js.map +1 -0
  410. package/dist/esm/class/utility/dto/property/factory/enum.class.d.ts +4 -3
  411. package/dist/esm/class/utility/dto/property/factory/enum.class.js.map +1 -0
  412. package/dist/esm/class/utility/dto/property/factory/index.d.ts +8 -6
  413. package/dist/esm/class/utility/dto/property/factory/number.class.d.ts +5 -4
  414. package/dist/esm/{src/class → class}/utility/dto/property/factory/number.class.js +1 -3
  415. package/dist/esm/class/utility/dto/property/factory/number.class.js.map +1 -0
  416. package/dist/esm/class/utility/dto/property/factory/object.class.d.ts +6 -4
  417. package/dist/esm/{src/class → class}/utility/dto/property/factory/object.class.js +2 -1
  418. package/dist/esm/class/utility/dto/property/factory/object.class.js.map +1 -0
  419. package/dist/esm/class/utility/dto/property/factory/relation.class.d.ts +5 -4
  420. package/dist/esm/{src/class → class}/utility/dto/property/factory/relation.class.js +0 -3
  421. package/dist/esm/class/utility/dto/property/factory/relation.class.js.map +1 -0
  422. package/dist/esm/class/utility/dto/property/factory/string.class.d.ts +4 -3
  423. package/dist/esm/class/utility/dto/property/factory/string.class.js.map +1 -0
  424. package/dist/esm/class/utility/dto/property/factory/uuid.class.d.ts +4 -3
  425. package/dist/esm/class/utility/dto/property/factory/uuid.class.js.map +1 -0
  426. package/dist/esm/class/utility/dto/strategy/body.class.d.ts +3 -3
  427. package/dist/esm/{src/class → class}/utility/dto/strategy/body.class.js +1 -4
  428. package/dist/esm/class/utility/dto/strategy/body.class.js.map +1 -0
  429. package/dist/esm/class/utility/dto/strategy/index.d.ts +4 -4
  430. package/dist/esm/class/utility/dto/strategy/query.class.d.ts +3 -3
  431. package/dist/esm/{src/class → class}/utility/dto/strategy/query.class.js +0 -3
  432. package/dist/esm/class/utility/dto/strategy/query.class.js.map +1 -0
  433. package/dist/esm/class/utility/dto/strategy/request.class.d.ts +3 -3
  434. package/dist/esm/{src/class → class}/utility/dto/strategy/request.class.js +0 -3
  435. package/dist/esm/class/utility/dto/strategy/request.class.js.map +1 -0
  436. package/dist/esm/class/utility/dto/strategy/response.class.d.ts +3 -3
  437. package/dist/esm/{src/class → class}/utility/dto/strategy/response.class.js +0 -3
  438. package/dist/esm/class/utility/dto/strategy/response.class.js.map +1 -0
  439. package/dist/esm/constant/date.constant.js.map +1 -0
  440. package/dist/esm/constant/decorator/api/controller.constant.js.map +1 -0
  441. package/dist/esm/constant/decorator/api/function.constant.d.ts +1 -1
  442. package/dist/esm/constant/decorator/api/function.constant.js +9 -0
  443. package/dist/esm/constant/decorator/api/function.constant.js.map +1 -0
  444. package/dist/esm/constant/decorator/api/index.d.ts +3 -3
  445. package/dist/esm/constant/decorator/api/property-describe.constant.js.map +1 -0
  446. package/dist/esm/constant/dto/exception.constant.js.map +1 -0
  447. package/dist/esm/constant/dto/index.d.ts +3 -3
  448. package/dist/esm/constant/dto/list.constant.d.ts +1 -2
  449. package/dist/esm/{src/constant → constant}/dto/list.constant.js +1 -1
  450. package/dist/esm/constant/dto/list.constant.js.map +1 -0
  451. package/dist/esm/constant/dto/transformer-value.constant.js.map +1 -0
  452. package/dist/esm/constant/factory/dto/get-list-query.constant.d.ts +1 -0
  453. package/dist/esm/{src/constant → constant}/factory/dto/get-list-query.constant.js +2 -0
  454. package/dist/esm/constant/factory/dto/get-list-query.constant.js.map +1 -0
  455. package/dist/esm/constant/factory/dto/index.d.ts +1 -1
  456. package/dist/esm/constant/index.d.ts +8 -6
  457. package/dist/esm/constant/interface/api/filter.constant.js.map +1 -0
  458. package/dist/esm/constant/interface/api/index.d.ts +2 -2
  459. package/dist/esm/constant/interface/api/property/index.d.ts +2 -2
  460. package/dist/esm/constant/interface/api/property/string.constant.js.map +1 -0
  461. package/dist/esm/constant/interface/api/property/wallet.constant.js.map +1 -0
  462. package/dist/esm/constant/number.constant.js.map +1 -0
  463. package/dist/esm/constant/utility/dto/constant.d.ts +3 -2
  464. package/dist/esm/{src/constant → constant}/utility/dto/constant.js +6 -10
  465. package/dist/esm/constant/utility/dto/constant.js.map +1 -0
  466. package/dist/esm/constant/utility/dto/generate.constant.js.map +1 -0
  467. package/dist/esm/constant/utility/dto/index.d.ts +2 -0
  468. package/dist/esm/constant/validator/has-paired-custom-suffixes-fields.constant.d.ts +5 -0
  469. package/dist/esm/constant/validator/has-paired-custom-suffixes-fields.constant.js +87 -0
  470. package/dist/esm/constant/validator/has-paired-custom-suffixes-fields.constant.js.map +1 -0
  471. package/dist/esm/constant/validator/index.d.ts +1 -0
  472. package/dist/esm/decorator/api/controller.decorator.d.ts +3 -2
  473. package/dist/esm/decorator/api/controller.decorator.js.map +1 -0
  474. package/dist/esm/decorator/api/function/create.decorator.d.ts +7 -1
  475. package/dist/esm/{src/decorator → decorator}/api/function/create.decorator.js +12 -16
  476. package/dist/esm/decorator/api/function/create.decorator.js.map +1 -0
  477. package/dist/esm/decorator/api/function/decorator.d.ts +10 -3
  478. package/dist/esm/{src/decorator → decorator}/api/function/decorator.js +7 -3
  479. package/dist/esm/decorator/api/function/decorator.js.map +1 -0
  480. package/dist/esm/decorator/api/function/delete.decorator.d.ts +7 -1
  481. package/dist/esm/{src/decorator → decorator}/api/function/delete.decorator.js +12 -16
  482. package/dist/esm/decorator/api/function/delete.decorator.js.map +1 -0
  483. package/dist/esm/decorator/api/function/get-list.decorator.d.ts +8 -2
  484. package/dist/esm/{src/decorator → decorator}/api/function/get-list.decorator.js +12 -16
  485. package/dist/esm/decorator/api/function/get-list.decorator.js.map +1 -0
  486. package/dist/esm/decorator/api/function/get-many.decorator.d.ts +7 -1
  487. package/dist/esm/{src/decorator → decorator}/api/function/get-many.decorator.js +13 -16
  488. package/dist/esm/decorator/api/function/get-many.decorator.js.map +1 -0
  489. package/dist/esm/decorator/api/function/get.decorator.d.ts +7 -1
  490. package/dist/esm/{src/decorator → decorator}/api/function/get.decorator.js +13 -16
  491. package/dist/esm/decorator/api/function/get.decorator.js.map +1 -0
  492. package/dist/esm/decorator/api/function/index.d.ts +7 -7
  493. package/dist/esm/decorator/api/function/update.decorator.d.ts +7 -1
  494. package/dist/esm/{src/decorator → decorator}/api/function/update.decorator.js +12 -16
  495. package/dist/esm/decorator/api/function/update.decorator.js.map +1 -0
  496. package/dist/esm/decorator/api/index.d.ts +5 -5
  497. package/dist/esm/decorator/api/method.decorator.d.ts +8 -1
  498. package/dist/esm/{src/decorator → decorator}/api/method.decorator.js +9 -6
  499. package/dist/esm/decorator/api/method.decorator.js.map +1 -0
  500. package/dist/esm/decorator/api/property/boolean.decorator.d.ts +52 -1
  501. package/dist/esm/{src/decorator → decorator}/api/property/boolean.decorator.js +99 -7
  502. package/dist/esm/decorator/api/property/boolean.decorator.js.map +1 -0
  503. package/dist/esm/decorator/api/property/copy.decorator.d.ts +16 -0
  504. package/dist/esm/decorator/api/property/copy.decorator.js +47 -0
  505. package/dist/esm/decorator/api/property/copy.decorator.js.map +1 -0
  506. package/dist/esm/decorator/api/property/date.decorator.d.ts +56 -1
  507. package/dist/esm/{src/decorator → decorator}/api/property/date.decorator.js +132 -7
  508. package/dist/esm/decorator/api/property/date.decorator.js.map +1 -0
  509. package/dist/esm/decorator/api/property/describe.decorator.d.ts +82 -1
  510. package/dist/esm/decorator/api/property/describe.decorator.js +94 -0
  511. package/dist/esm/decorator/api/property/describe.decorator.js.map +1 -0
  512. package/dist/esm/decorator/api/property/enum.decorator.d.ts +75 -1
  513. package/dist/esm/{src/decorator → decorator}/api/property/enum.decorator.js +112 -0
  514. package/dist/esm/decorator/api/property/enum.decorator.js.map +1 -0
  515. package/dist/esm/decorator/api/property/index.d.ts +9 -7
  516. package/dist/esm/decorator/api/property/number.decorator.d.ts +67 -1
  517. package/dist/esm/{src/decorator → decorator}/api/property/number.decorator.js +152 -12
  518. package/dist/esm/decorator/api/property/number.decorator.js.map +1 -0
  519. package/dist/esm/decorator/api/property/object.decorator.d.ts +27 -1
  520. package/dist/esm/decorator/api/property/object.decorator.js +246 -0
  521. package/dist/esm/decorator/api/property/object.decorator.js.map +1 -0
  522. package/dist/esm/decorator/api/property/string.decorator.d.ts +68 -1
  523. package/dist/esm/{src/decorator → decorator}/api/property/string.decorator.js +132 -15
  524. package/dist/esm/decorator/api/property/string.decorator.js.map +1 -0
  525. package/dist/esm/decorator/api/property/uuid.decorator.d.ts +42 -1
  526. package/dist/esm/{src/decorator → decorator}/api/property/uuid.decorator.js +92 -7
  527. package/dist/esm/decorator/api/property/uuid.decorator.js.map +1 -0
  528. package/dist/esm/decorator/api/service.decorator.d.ts +8 -2
  529. package/dist/esm/{src/decorator → decorator}/api/service.decorator.js +10 -6
  530. package/dist/esm/decorator/api/service.decorator.js.map +1 -0
  531. package/dist/esm/enum/decorator/api/action.enum.js.map +1 -0
  532. package/dist/esm/enum/decorator/api/authentication-type.enum.js.map +1 -0
  533. package/dist/esm/enum/decorator/api/controller/index.d.ts +2 -2
  534. package/dist/esm/enum/decorator/api/controller/load-relations-strategy.enum.js.map +1 -0
  535. package/dist/esm/enum/decorator/api/controller/request-transformer-type.enum.js.map +1 -0
  536. package/dist/esm/enum/decorator/api/dto-type.enum.js.map +1 -0
  537. package/dist/esm/enum/decorator/api/function/index.d.ts +1 -1
  538. package/dist/esm/enum/decorator/api/function/type.enum.js.map +1 -0
  539. package/dist/esm/enum/decorator/api/index.d.ts +7 -7
  540. package/dist/esm/enum/decorator/api/property/data-type.enum.js.map +1 -0
  541. package/dist/esm/enum/decorator/api/property/date/identifier.enum.js.map +1 -0
  542. package/dist/esm/enum/decorator/api/property/date/index.d.ts +2 -2
  543. package/dist/esm/enum/decorator/api/property/date/type.enum.js.map +1 -0
  544. package/dist/esm/enum/decorator/api/property/desribe-type.enum.js.map +1 -0
  545. package/dist/esm/enum/decorator/api/property/index.d.ts +5 -5
  546. package/dist/esm/enum/decorator/api/property/number-type.enum.js.map +1 -0
  547. package/dist/esm/enum/decorator/api/property/string-type.enum.js.map +1 -0
  548. package/dist/esm/enum/decorator/api/route-type.enum.js.map +1 -0
  549. package/dist/esm/enum/exception.enum.js.map +1 -0
  550. package/dist/esm/enum/filter-operation.enum.js.map +1 -0
  551. package/dist/esm/enum/filter-order-direction.enum.js.map +1 -0
  552. package/dist/esm/enum/index.d.ts +6 -4
  553. package/dist/esm/enum/utility/error-string-action.enum.js.map +1 -0
  554. package/dist/esm/enum/utility/index.d.ts +1 -1
  555. package/dist/esm/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.d.ts +5 -0
  556. package/dist/esm/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.js +9 -0
  557. package/dist/esm/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.js.map +1 -0
  558. package/dist/esm/enum/validator/index.d.ts +2 -0
  559. package/dist/esm/enum/validator/must-match-one-of-schemas-error-type.enum.d.ts +6 -0
  560. package/dist/esm/enum/validator/must-match-one-of-schemas-error-type.enum.js +10 -0
  561. package/dist/esm/enum/validator/must-match-one-of-schemas-error-type.enum.js.map +1 -0
  562. package/dist/esm/factory/api/controller.factory.d.ts +4 -3
  563. package/dist/esm/{src/factory → factory}/api/controller.factory.js +12 -16
  564. package/dist/esm/factory/api/controller.factory.js.map +1 -0
  565. package/dist/esm/factory/api/index.d.ts +1 -1
  566. package/dist/esm/index.d.ts +10 -10
  567. package/dist/esm/{src/index.js → index.js} +31 -0
  568. package/dist/esm/{src/index.js.map → index.js.map} +1 -1
  569. package/dist/esm/{src/interceptor → interceptor}/correlation-id-response-body.interceptor.js +1 -1
  570. package/dist/esm/interceptor/correlation-id-response-body.interceptor.js.map +1 -0
  571. package/dist/esm/interceptor/index.d.ts +1 -1
  572. package/dist/esm/interface/api-authentication-request.interface.d.ts +1 -1
  573. package/dist/esm/interface/api-request-validator.interface.d.ts +3 -2
  574. package/dist/esm/interface/class/dto/index.d.ts +1 -1
  575. package/dist/esm/interface/class/dto/strategy.interface.d.ts +2 -2
  576. package/dist/esm/interface/class/index.d.ts +2 -2
  577. package/dist/esm/interface/decorator/api/controller/base.interface.d.ts +1 -1
  578. package/dist/esm/interface/decorator/api/controller/index.d.ts +3 -3
  579. package/dist/esm/interface/decorator/api/controller/properties/route/authentication.interface.d.ts +1 -1
  580. package/dist/esm/interface/decorator/api/controller/properties/route/auto-dto-config.interface.d.ts +1 -1
  581. package/dist/esm/interface/decorator/api/controller/properties/route/base-request.interface.d.ts +3 -3
  582. package/dist/esm/interface/decorator/api/controller/properties/route/base-response.interface.d.ts +2 -2
  583. package/dist/esm/interface/decorator/api/controller/properties/route/base.interface.d.ts +2 -4
  584. package/dist/esm/interface/decorator/api/controller/properties/route/index.d.ts +7 -7
  585. package/dist/esm/interface/decorator/api/controller/properties/route/with-auto-dto.interface.d.ts +2 -3
  586. package/dist/esm/interface/decorator/api/controller/properties/route/with-dto.interface.d.ts +2 -2
  587. package/dist/esm/interface/decorator/api/controller/properties.interface.d.ts +3 -3
  588. package/dist/esm/interface/decorator/api/function/create-executor-properties.interface.d.ts +2 -2
  589. package/dist/esm/interface/decorator/api/function/delete-executor-properties.interface.d.ts +2 -2
  590. package/dist/esm/interface/decorator/api/function/get-executor-properties.interface.d.ts +2 -2
  591. package/dist/esm/interface/decorator/api/function/get-list-executor-properties.interface.d.ts +2 -2
  592. package/dist/esm/interface/decorator/api/function/get-many-executor-properties.interface.d.ts +2 -2
  593. package/dist/esm/interface/decorator/api/function/index.d.ts +7 -7
  594. package/dist/esm/interface/decorator/api/function/properties.interface.d.ts +1 -1
  595. package/dist/esm/interface/decorator/api/function/update-executor-properties.interface.d.ts +2 -2
  596. package/dist/esm/interface/decorator/api/index.d.ts +5 -5
  597. package/dist/esm/interface/decorator/api/method/index.d.ts +2 -2
  598. package/dist/esm/interface/decorator/api/method/properties.interface.d.ts +2 -4
  599. package/dist/esm/interface/dto-generate-factory.interface.d.ts +5 -4
  600. package/dist/esm/interface/entity/index.d.ts +2 -2
  601. package/dist/esm/interface/entity/interface.d.ts +2 -2
  602. package/dist/esm/interface/index.d.ts +10 -8
  603. package/dist/esm/interface/utility/api/controller/index.d.ts +1 -1
  604. package/dist/esm/interface/utility/error-string-properties.interface.d.ts +1 -1
  605. package/dist/esm/interface/utility/get-entity-columns-properties.interface.d.ts +1 -1
  606. package/dist/esm/interface/utility/index.d.ts +3 -2
  607. package/dist/esm/interface/validator/index.d.ts +1 -0
  608. package/dist/esm/interface/validator/must-match-one-of-schemas-discriminator-config.interface.d.ts +6 -0
  609. package/dist/esm/type/api-request-transformer.type.d.ts +3 -3
  610. package/dist/esm/type/class/controller/index.d.ts +1 -1
  611. package/dist/esm/type/class/controller/method.type.d.ts +2 -2
  612. package/dist/esm/type/class/index.d.ts +3 -3
  613. package/dist/esm/type/class/metadata.type.d.ts +1 -1
  614. package/dist/esm/type/decorator/api/controller/constructor.type.d.ts +1 -1
  615. package/dist/esm/type/decorator/api/controller/get-list-query.type.d.ts +2 -2
  616. package/dist/esm/type/decorator/api/controller/index.d.ts +5 -5
  617. package/dist/esm/type/decorator/api/controller/properties/route/base-request-relations.type.d.ts +1 -1
  618. package/dist/esm/type/decorator/api/controller/properties/route/base-request-transformers.type.d.ts +2 -2
  619. package/dist/esm/type/decorator/api/controller/properties/route/base-response-transformers.type.d.ts +2 -2
  620. package/dist/esm/type/decorator/api/controller/properties/route/index.d.ts +3 -3
  621. package/dist/esm/type/decorator/api/controller/properties-route.type.d.ts +2 -2
  622. package/dist/esm/type/decorator/api/controller/transformer-config.type.d.ts +2 -2
  623. package/dist/esm/type/decorator/api/filter/extracted-allowed-types.type.d.ts +1 -1
  624. package/dist/esm/type/decorator/api/filter/index.d.ts +4 -4
  625. package/dist/esm/type/decorator/api/filter/order-by.type.d.ts +1 -1
  626. package/dist/esm/type/decorator/api/function/index.d.ts +9 -9
  627. package/dist/esm/type/decorator/api/function/properties.type.d.ts +1 -1
  628. package/dist/esm/type/decorator/api/property/base/array/index.d.ts +2 -2
  629. package/dist/esm/type/decorator/api/property/base/index.d.ts +4 -4
  630. package/dist/esm/type/decorator/api/property/base/properties.type.d.ts +2 -4
  631. package/dist/esm/type/decorator/api/property/date-properties.type.d.ts +2 -2
  632. package/dist/esm/type/decorator/api/property/describe/array/index.d.ts +2 -2
  633. package/dist/esm/type/decorator/api/property/describe/base-properties.type.d.ts +1 -1
  634. package/dist/esm/type/decorator/api/property/describe/boolean-properties.type.d.ts +3 -3
  635. package/dist/esm/type/decorator/api/property/describe/date-properties.type.d.ts +3 -3
  636. package/dist/esm/type/decorator/api/property/describe/dto/body-properties.type.d.ts +2 -2
  637. package/dist/esm/type/decorator/api/property/describe/dto/index.d.ts +6 -5
  638. package/dist/esm/type/decorator/api/property/describe/dto/properties.type.d.ts +1 -1
  639. package/dist/esm/type/decorator/api/property/describe/dto/query/index.d.ts +2 -2
  640. package/dist/esm/type/decorator/api/property/describe/dto/query/properties.type.d.ts +2 -3
  641. package/dist/esm/type/decorator/api/property/describe/dto/request-properties.type.d.ts +2 -2
  642. package/dist/esm/type/decorator/api/property/describe/dto/response-properties.type.d.ts +2 -2
  643. package/dist/esm/type/decorator/api/property/describe/enum-properties.type.d.ts +3 -3
  644. package/dist/esm/type/decorator/api/property/describe/index.d.ts +14 -13
  645. package/dist/esm/type/decorator/api/property/describe/number-properties.type.d.ts +4 -4
  646. package/dist/esm/type/decorator/api/property/describe/object/dynamic-with-discriminator-properties.type.d.ts +15 -0
  647. package/dist/esm/type/decorator/api/property/describe/object/index.d.ts +4 -0
  648. package/dist/esm/type/decorator/api/property/describe/object/properties.type.d.ts +4 -0
  649. package/dist/esm/type/decorator/api/property/describe/object/with-discriminator-properties.type.d.ts +14 -0
  650. package/dist/esm/type/decorator/api/property/describe/{object-properties.type.d.ts → object/without-discriminator-properties.type.d.ts} +4 -4
  651. package/dist/esm/type/decorator/api/property/describe/properties/base-dto-properties.type.d.ts +1 -1
  652. package/dist/esm/type/decorator/api/property/describe/properties/base-properties.type.d.ts +2 -2
  653. package/dist/esm/type/decorator/api/property/describe/properties/index.d.ts +2 -2
  654. package/dist/esm/type/decorator/api/property/describe/properties.type.d.ts +8 -8
  655. package/dist/esm/type/decorator/api/property/describe/relation-properties.type.d.ts +2 -2
  656. package/dist/esm/type/decorator/api/property/describe/string-properties.type.d.ts +4 -4
  657. package/dist/esm/type/decorator/api/property/describe/uuid-properties.type.d.ts +3 -3
  658. package/dist/esm/type/decorator/api/property/enum-properties.type.d.ts +1 -1
  659. package/dist/esm/type/decorator/api/property/index.d.ts +8 -6
  660. package/dist/esm/type/decorator/api/property/number-properties.type.d.ts +3 -3
  661. package/dist/esm/type/decorator/api/property/object/dynamic-with-discriminator-properties.type.d.ts +16 -0
  662. package/dist/esm/type/decorator/api/property/object/index.d.ts +4 -0
  663. package/dist/esm/type/decorator/api/property/object/properties.type.d.ts +4 -0
  664. package/dist/esm/type/decorator/api/property/object/with-discriminator-properties.type.d.ts +15 -0
  665. package/dist/esm/type/decorator/api/property/{object-properties.type.d.ts → object/without-discriminator-properties.type.d.ts} +4 -2
  666. package/dist/esm/type/decorator/api/property/string-properties.type.d.ts +2 -2
  667. package/dist/esm/type/decorator/api/property/uuid-properties.type.d.ts +1 -1
  668. package/dist/esm/type/decorator/api/service/index.d.ts +2 -2
  669. package/dist/esm/type/decorator/api/service/keys.type.d.ts +1 -1
  670. package/dist/esm/type/factory/api/controller/index.d.ts +4 -4
  671. package/dist/esm/type/factory/api/controller/method-map.type.d.ts +4 -3
  672. package/dist/esm/type/factory/api/controller/method-name-map.type.d.ts +2 -2
  673. package/dist/esm/type/factory/api/controller/method-name.type.d.ts +3 -3
  674. package/dist/esm/type/factory/api/controller/target-methods.type.d.ts +4 -4
  675. package/dist/esm/type/index.d.ts +10 -5
  676. package/dist/esm/type/utility/api/controller/transform-data/data.type.d.ts +1 -1
  677. package/dist/esm/type/utility/api/controller/transform-data/index.d.ts +3 -3
  678. package/dist/esm/type/utility/api/controller/transform-data/is-validation-properties.type.d.ts +2 -2
  679. package/dist/esm/type/utility/api/controller/transform-data/object-to-transform.type.d.ts +2 -2
  680. package/dist/esm/type/utility/date-range-keys.type.d.ts +1 -1
  681. package/dist/esm/type/utility/dto/generate-allowed-combination.type.d.ts +1 -1
  682. package/dist/esm/type/utility/dto/generate-is-allowed-combination.type.d.ts +2 -2
  683. package/dist/esm/type/utility/dto/index.d.ts +2 -2
  684. package/dist/esm/type/utility/filter-keys.type.d.ts +1 -1
  685. package/dist/esm/type/utility/index.d.ts +7 -7
  686. package/dist/esm/type/validator/has-paired-custom-suffixes-fields/index.d.ts +2 -0
  687. package/dist/esm/type/validator/has-paired-custom-suffixes-fields/operation-config.type.d.ts +7 -0
  688. package/dist/esm/type/validator/has-paired-custom-suffixes-fields/validation-context.type.d.ts +5 -0
  689. package/dist/esm/utility/api/controller/apply-decorators.utility.d.ts +18 -3
  690. package/dist/esm/{src/utility → utility}/api/controller/apply-decorators.utility.js +15 -4
  691. package/dist/esm/utility/api/controller/apply-decorators.utility.js.map +1 -0
  692. package/dist/esm/utility/api/controller/apply-metadata.utility.d.ts +17 -3
  693. package/dist/esm/{src/utility → utility}/api/controller/apply-metadata.utility.js +22 -13
  694. package/dist/esm/utility/api/controller/apply-metadata.utility.js.map +1 -0
  695. package/dist/esm/utility/api/controller/get-list/index.d.ts +2 -2
  696. package/dist/esm/utility/api/controller/get-list/transform-filter.utility.d.ts +10 -1
  697. package/dist/esm/{src/utility → utility}/api/controller/get-list/transform-filter.utility.js +9 -3
  698. package/dist/esm/utility/api/controller/get-list/transform-filter.utility.js.map +1 -0
  699. package/dist/esm/utility/api/controller/get-list/transform-operation.utility.d.ts +8 -1
  700. package/dist/esm/{src/utility → utility}/api/controller/get-list/transform-operation.utility.js +8 -1
  701. package/dist/esm/utility/api/controller/get-list/transform-operation.utility.js.map +1 -0
  702. package/dist/esm/utility/api/controller/get-method-name.utility.d.ts +7 -1
  703. package/dist/esm/{src/utility → utility}/api/controller/get-method-name.utility.js +6 -0
  704. package/dist/esm/utility/api/controller/get-method-name.utility.js.map +1 -0
  705. package/dist/esm/utility/api/controller/get-primary-column.utility.d.ts +10 -1
  706. package/dist/esm/utility/api/controller/get-primary-column.utility.js +21 -0
  707. package/dist/esm/utility/api/controller/get-primary-column.utility.js.map +1 -0
  708. package/dist/esm/utility/api/controller/handle-request-relations.utility.d.ts +17 -2
  709. package/dist/esm/{src/utility → utility}/api/controller/handle-request-relations.utility.js +15 -5
  710. package/dist/esm/utility/api/controller/handle-request-relations.utility.js.map +1 -0
  711. package/dist/esm/utility/api/controller/index.d.ts +10 -9
  712. package/dist/esm/utility/api/controller/transform-data.utility.d.ts +15 -3
  713. package/dist/esm/{src/utility → utility}/api/controller/transform-data.utility.js +52 -3
  714. package/dist/esm/utility/api/controller/transform-data.utility.js.map +1 -0
  715. package/dist/esm/utility/api/controller/validate-request.utility.d.ts +12 -2
  716. package/dist/esm/{src/utility → utility}/api/controller/validate-request.utility.js +9 -0
  717. package/dist/esm/utility/api/controller/validate-request.utility.js.map +1 -0
  718. package/dist/esm/utility/api/controller/write-dto-swagger.utility.d.ts +17 -3
  719. package/dist/esm/{src/utility → utility}/api/controller/write-dto-swagger.utility.js +21 -12
  720. package/dist/esm/utility/api/controller/write-dto-swagger.utility.js.map +1 -0
  721. package/dist/esm/utility/api/controller/write-method.utility.d.ts +16 -2
  722. package/dist/esm/utility/api/controller/write-method.utility.js +31 -0
  723. package/dist/esm/utility/api/controller/write-method.utility.js.map +1 -0
  724. package/dist/esm/utility/api/filter-order-by-from-entity.utility.d.ts +16 -3
  725. package/dist/esm/{src/utility → utility}/api/filter-order-by-from-entity.utility.js +14 -1
  726. package/dist/esm/utility/api/filter-order-by-from-entity.utility.js.map +1 -0
  727. package/dist/esm/utility/api/index.d.ts +2 -2
  728. package/dist/esm/utility/camel-case-string.utility.d.ts +5 -0
  729. package/dist/esm/{src/utility → utility}/camel-case-string.utility.js +5 -0
  730. package/dist/esm/utility/camel-case-string.utility.js.map +1 -0
  731. package/dist/esm/utility/capitalize-string.utility.d.ts +5 -0
  732. package/dist/esm/{src/utility → utility}/capitalize-string.utility.js +5 -0
  733. package/dist/esm/utility/capitalize-string.utility.js.map +1 -0
  734. package/dist/esm/utility/dto/analize.utility.d.ts +7 -1
  735. package/dist/esm/utility/dto/analize.utility.js +15 -0
  736. package/dist/esm/utility/dto/analize.utility.js.map +1 -0
  737. package/dist/esm/utility/dto/build-decorator.utility.d.ts +19 -4
  738. package/dist/esm/{src/utility → utility}/dto/build-decorator.utility.js +17 -5
  739. package/dist/esm/utility/dto/build-decorator.utility.js.map +1 -0
  740. package/dist/esm/utility/dto/generate-decorator.utility.d.ts +19 -4
  741. package/dist/esm/utility/dto/generate-decorator.utility.js +27 -0
  742. package/dist/esm/utility/dto/generate-decorator.utility.js.map +1 -0
  743. package/dist/esm/utility/dto/generate-dynamic.utility.d.ts +21 -0
  744. package/dist/esm/utility/dto/generate-dynamic.utility.js +92 -0
  745. package/dist/esm/utility/dto/generate-dynamic.utility.js.map +1 -0
  746. package/dist/esm/utility/dto/generate-exception.utility.d.ts +7 -0
  747. package/dist/esm/{src/utility → utility}/dto/generate-exception.utility.js +9 -6
  748. package/dist/esm/utility/dto/generate-exception.utility.js.map +1 -0
  749. package/dist/esm/utility/dto/generate-filter-decorator.utility.d.ts +11 -2
  750. package/dist/esm/{src/utility → utility}/dto/generate-filter-decorator.utility.js +9 -3
  751. package/dist/esm/utility/dto/generate-filter-decorator.utility.js.map +1 -0
  752. package/dist/esm/utility/dto/generate-get-list-response.utility.d.ts +9 -0
  753. package/dist/esm/{src/utility → utility}/dto/generate-get-list-response.utility.js +12 -6
  754. package/dist/esm/utility/dto/generate-get-list-response.utility.js.map +1 -0
  755. package/dist/esm/utility/dto/generate-relation-response.utility.d.ts +12 -2
  756. package/dist/esm/{src/utility → utility}/dto/generate-relation-response.utility.js +11 -1
  757. package/dist/esm/utility/dto/generate-relation-response.utility.js.map +1 -0
  758. package/dist/esm/utility/dto/generate.utility.d.ts +17 -2
  759. package/dist/esm/{src/utility → utility}/dto/generate.utility.js +39 -11
  760. package/dist/esm/utility/dto/generate.utility.js.map +1 -0
  761. package/dist/esm/utility/dto/get-decorator-config.utility.d.ts +15 -2
  762. package/dist/esm/{src/utility → utility}/dto/get-decorator-config.utility.js +13 -0
  763. package/dist/esm/utility/dto/get-decorator-config.utility.js.map +1 -0
  764. package/dist/esm/utility/dto/get-get-list-query-base-class.utility.d.ts +13 -2
  765. package/dist/esm/{src/utility → utility}/dto/get-get-list-query-base-class.utility.js +17 -12
  766. package/dist/esm/utility/dto/get-get-list-query-base-class.utility.js.map +1 -0
  767. package/dist/esm/utility/dto/handle-date-property.utility.d.ts +9 -1
  768. package/dist/esm/{src/utility → utility}/dto/handle-date-property.utility.js +8 -3
  769. package/dist/esm/utility/dto/handle-date-property.utility.js.map +1 -0
  770. package/dist/esm/utility/dto/index.d.ts +16 -12
  771. package/dist/esm/utility/dto/is-property-exposed-for-guard.utility.d.ts +10 -2
  772. package/dist/esm/{src/utility → utility}/dto/is-property-exposed-for-guard.utility.js +8 -0
  773. package/dist/esm/utility/dto/is-property-exposed-for-guard.utility.js.map +1 -0
  774. package/dist/esm/utility/dto/is-property-should-be-marked.utility.d.ts +12 -2
  775. package/dist/esm/{src/utility → utility}/dto/is-property-should-be-marked.utility.js +10 -3
  776. package/dist/esm/utility/dto/is-property-should-be-marked.utility.js.map +1 -0
  777. package/dist/esm/utility/dto/is-should-be-generated.utility.d.ts +11 -1
  778. package/dist/esm/{src/utility → utility}/dto/is-should-be-generated.utility.js +10 -3
  779. package/dist/esm/utility/dto/is-should-be-generated.utility.js.map +1 -0
  780. package/dist/esm/utility/dto/validate-property-config.utility.d.ts +1 -1
  781. package/dist/esm/utility/dto/validate-property-config.utility.js.map +1 -0
  782. package/dist/esm/utility/error-exception.utility.d.ts +5 -0
  783. package/dist/esm/{src/utility → utility}/error-exception.utility.js +5 -0
  784. package/dist/esm/utility/error-exception.utility.js.map +1 -0
  785. package/dist/esm/utility/error-string.utility.d.ts +8 -1
  786. package/dist/esm/utility/error-string.utility.js +12 -0
  787. package/dist/esm/utility/error-string.utility.js.map +1 -0
  788. package/dist/esm/utility/generate-entity-information.utility.d.ts +8 -1
  789. package/dist/esm/{src/utility → utility}/generate-entity-information.utility.js +7 -17
  790. package/dist/esm/utility/generate-entity-information.utility.js.map +1 -0
  791. package/dist/esm/utility/get-entity-columns.utility.d.ts +7 -1
  792. package/dist/esm/{src/utility → utility}/get-entity-columns.utility.js +6 -0
  793. package/dist/esm/utility/get-entity-columns.utility.js.map +1 -0
  794. package/dist/esm/utility/index.d.ts +10 -10
  795. package/dist/esm/utility/is-error-of-type.utility.d.ts +7 -1
  796. package/dist/esm/{src/utility → utility}/is-error-of-type.utility.js +7 -16
  797. package/dist/esm/utility/is-error-of-type.utility.js.map +1 -0
  798. package/dist/esm/utility/logger.utility.d.ts +4 -0
  799. package/dist/esm/{src/utility → utility}/logger.utility.js +5 -1
  800. package/dist/esm/utility/logger.utility.js.map +1 -0
  801. package/dist/esm/validator/all-or-none-of-listed-properties.validator.d.ts +1 -1
  802. package/dist/esm/{src/validator → validator}/all-or-none-of-listed-properties.validator.js +5 -5
  803. package/dist/esm/validator/all-or-none-of-listed-properties.validator.js.map +1 -0
  804. package/dist/esm/validator/has-at-least-one-and-only-one-of-listed-properties.validator.d.ts +1 -1
  805. package/dist/esm/{src/validator → validator}/has-at-least-one-and-only-one-of-listed-properties.validator.js +5 -5
  806. package/dist/esm/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js.map +1 -0
  807. package/dist/esm/validator/has-at-least-one-of-listed-properties.validator.d.ts +1 -1
  808. package/dist/esm/{src/validator → validator}/has-at-least-one-of-listed-properties.validator.js +5 -5
  809. package/dist/esm/validator/has-at-least-one-of-listed-properties.validator.js.map +1 -0
  810. package/dist/esm/validator/has-at-least-one-property.validator.d.ts +1 -1
  811. package/dist/esm/{src/validator → validator}/has-at-least-one-property.validator.js +5 -5
  812. package/dist/esm/validator/has-at-least-one-property.validator.js.map +1 -0
  813. package/dist/esm/validator/has-paired-custom-suffixes-fields.validator.d.ts +12 -1
  814. package/dist/esm/{src/validator → validator}/has-paired-custom-suffixes-fields.validator.js +27 -97
  815. package/dist/esm/validator/has-paired-custom-suffixes-fields.validator.js.map +1 -0
  816. package/dist/esm/validator/index.d.ts +8 -6
  817. package/dist/esm/validator/is-regular-expression.validator.d.ts +6 -1
  818. package/dist/esm/validator/is-regular-expression.validator.js +30 -0
  819. package/dist/esm/validator/is-regular-expression.validator.js.map +1 -0
  820. package/dist/esm/validator/must-match-one-of-schemas.validator.d.ts +36 -0
  821. package/dist/esm/validator/must-match-one-of-schemas.validator.js +188 -0
  822. package/dist/esm/validator/must-match-one-of-schemas.validator.js.map +1 -0
  823. package/dist/esm/validator/only-one-of-listed-properties.validator.d.ts +1 -1
  824. package/dist/esm/{src/validator → validator}/only-one-of-listed-properties.validator.js +5 -5
  825. package/dist/esm/validator/only-one-of-listed-properties.validator.js.map +1 -0
  826. package/package.json +4 -2
  827. package/dist/cjs/class/utility/dto/index.d.ts +0 -2
  828. package/dist/cjs/class/utility/dto/property/index.d.ts +0 -1
  829. package/dist/cjs/class/utility/index.d.ts +0 -1
  830. package/dist/cjs/constant/decorator/index.d.ts +0 -1
  831. package/dist/cjs/constant/factory/index.d.ts +0 -1
  832. package/dist/cjs/constant/interface/index.d.ts +0 -1
  833. package/dist/cjs/decorator/index.d.ts +0 -1
  834. package/dist/cjs/enum/decorator/index.d.ts +0 -1
  835. package/dist/cjs/factory/index.d.ts +0 -1
  836. package/dist/cjs/interface/decorator/api/controller/properties/index.d.ts +0 -1
  837. package/dist/cjs/interface/decorator/index.d.ts +0 -1
  838. package/dist/cjs/interface/utility/api/index.d.ts +0 -1
  839. package/dist/cjs/type/decorator/api/controller/properties/index.d.ts +0 -1
  840. package/dist/cjs/type/decorator/api/index.d.ts +0 -5
  841. package/dist/cjs/type/decorator/index.d.ts +0 -1
  842. package/dist/cjs/type/factory/api/index.d.ts +0 -1
  843. package/dist/cjs/type/factory/index.d.ts +0 -1
  844. package/dist/cjs/type/utility/api/controller/index.d.ts +0 -1
  845. package/dist/cjs/type/utility/api/index.d.ts +0 -1
  846. package/dist/esm/class/utility/dto/index.d.ts +0 -2
  847. package/dist/esm/class/utility/dto/property/index.d.ts +0 -1
  848. package/dist/esm/class/utility/index.d.ts +0 -1
  849. package/dist/esm/constant/decorator/index.d.ts +0 -1
  850. package/dist/esm/constant/factory/index.d.ts +0 -1
  851. package/dist/esm/constant/interface/index.d.ts +0 -1
  852. package/dist/esm/decorator/index.d.ts +0 -1
  853. package/dist/esm/enum/decorator/index.d.ts +0 -1
  854. package/dist/esm/factory/index.d.ts +0 -1
  855. package/dist/esm/interface/decorator/api/controller/properties/index.d.ts +0 -1
  856. package/dist/esm/interface/decorator/index.d.ts +0 -1
  857. package/dist/esm/interface/utility/api/index.d.ts +0 -1
  858. package/dist/esm/src/class/api/service-base.class.js.map +0 -1
  859. package/dist/esm/src/class/metadata-storage.class.js.map +0 -1
  860. package/dist/esm/src/class/utility/dto/property/factory/boolean.class.js.map +0 -1
  861. package/dist/esm/src/class/utility/dto/property/factory/date.class.js.map +0 -1
  862. package/dist/esm/src/class/utility/dto/property/factory/enum.class.js.map +0 -1
  863. package/dist/esm/src/class/utility/dto/property/factory/number.class.js.map +0 -1
  864. package/dist/esm/src/class/utility/dto/property/factory/object.class.js.map +0 -1
  865. package/dist/esm/src/class/utility/dto/property/factory/relation.class.js.map +0 -1
  866. package/dist/esm/src/class/utility/dto/property/factory/string.class.js.map +0 -1
  867. package/dist/esm/src/class/utility/dto/property/factory/uuid.class.js.map +0 -1
  868. package/dist/esm/src/class/utility/dto/strategy/body.class.js.map +0 -1
  869. package/dist/esm/src/class/utility/dto/strategy/query.class.js.map +0 -1
  870. package/dist/esm/src/class/utility/dto/strategy/request.class.js.map +0 -1
  871. package/dist/esm/src/class/utility/dto/strategy/response.class.js.map +0 -1
  872. package/dist/esm/src/constant/date.constant.js.map +0 -1
  873. package/dist/esm/src/constant/decorator/api/controller.constant.js.map +0 -1
  874. package/dist/esm/src/constant/decorator/api/function.constant.js +0 -24
  875. package/dist/esm/src/constant/decorator/api/function.constant.js.map +0 -1
  876. package/dist/esm/src/constant/decorator/api/property-describe.constant.js.map +0 -1
  877. package/dist/esm/src/constant/dto/exception.constant.js.map +0 -1
  878. package/dist/esm/src/constant/dto/list.constant.js.map +0 -1
  879. package/dist/esm/src/constant/dto/transformer-value.constant.js.map +0 -1
  880. package/dist/esm/src/constant/factory/dto/get-list-query.constant.js.map +0 -1
  881. package/dist/esm/src/constant/interface/api/filter.constant.js.map +0 -1
  882. package/dist/esm/src/constant/interface/api/property/string.constant.js.map +0 -1
  883. package/dist/esm/src/constant/interface/api/property/wallet.constant.js.map +0 -1
  884. package/dist/esm/src/constant/number.constant.js.map +0 -1
  885. package/dist/esm/src/constant/utility/dto/constant.js.map +0 -1
  886. package/dist/esm/src/constant/utility/dto/generate.constant.js.map +0 -1
  887. package/dist/esm/src/decorator/api/controller.decorator.js.map +0 -1
  888. package/dist/esm/src/decorator/api/function/create.decorator.js.map +0 -1
  889. package/dist/esm/src/decorator/api/function/decorator.js.map +0 -1
  890. package/dist/esm/src/decorator/api/function/delete.decorator.js.map +0 -1
  891. package/dist/esm/src/decorator/api/function/get-list.decorator.js.map +0 -1
  892. package/dist/esm/src/decorator/api/function/get-many.decorator.js.map +0 -1
  893. package/dist/esm/src/decorator/api/function/get.decorator.js.map +0 -1
  894. package/dist/esm/src/decorator/api/function/update.decorator.js.map +0 -1
  895. package/dist/esm/src/decorator/api/method.decorator.js.map +0 -1
  896. package/dist/esm/src/decorator/api/property/boolean.decorator.js.map +0 -1
  897. package/dist/esm/src/decorator/api/property/date.decorator.js.map +0 -1
  898. package/dist/esm/src/decorator/api/property/describe.decorator.js +0 -29
  899. package/dist/esm/src/decorator/api/property/describe.decorator.js.map +0 -1
  900. package/dist/esm/src/decorator/api/property/enum.decorator.js.map +0 -1
  901. package/dist/esm/src/decorator/api/property/number.decorator.js.map +0 -1
  902. package/dist/esm/src/decorator/api/property/object.decorator.js +0 -104
  903. package/dist/esm/src/decorator/api/property/object.decorator.js.map +0 -1
  904. package/dist/esm/src/decorator/api/property/string.decorator.js.map +0 -1
  905. package/dist/esm/src/decorator/api/property/uuid.decorator.js.map +0 -1
  906. package/dist/esm/src/decorator/api/service.decorator.js.map +0 -1
  907. package/dist/esm/src/enum/decorator/api/action.enum.js.map +0 -1
  908. package/dist/esm/src/enum/decorator/api/authentication-type.enum.js.map +0 -1
  909. package/dist/esm/src/enum/decorator/api/controller/load-relations-strategy.enum.js.map +0 -1
  910. package/dist/esm/src/enum/decorator/api/controller/request-transformer-type.enum.js.map +0 -1
  911. package/dist/esm/src/enum/decorator/api/dto-type.enum.js.map +0 -1
  912. package/dist/esm/src/enum/decorator/api/function/type.enum.js.map +0 -1
  913. package/dist/esm/src/enum/decorator/api/property/data-type.enum.js.map +0 -1
  914. package/dist/esm/src/enum/decorator/api/property/date/identifier.enum.js.map +0 -1
  915. package/dist/esm/src/enum/decorator/api/property/date/type.enum.js.map +0 -1
  916. package/dist/esm/src/enum/decorator/api/property/desribe-type.enum.js.map +0 -1
  917. package/dist/esm/src/enum/decorator/api/property/number-type.enum.js.map +0 -1
  918. package/dist/esm/src/enum/decorator/api/property/string-type.enum.js.map +0 -1
  919. package/dist/esm/src/enum/decorator/api/route-type.enum.js.map +0 -1
  920. package/dist/esm/src/enum/exception.enum.js.map +0 -1
  921. package/dist/esm/src/enum/filter-operation.enum.js.map +0 -1
  922. package/dist/esm/src/enum/filter-order-direction.enum.js.map +0 -1
  923. package/dist/esm/src/enum/utility/error-string-action.enum.js.map +0 -1
  924. package/dist/esm/src/factory/api/controller.factory.js.map +0 -1
  925. package/dist/esm/src/interceptor/correlation-id-response-body.interceptor.js.map +0 -1
  926. package/dist/esm/src/utility/api/controller/apply-decorators.utility.js.map +0 -1
  927. package/dist/esm/src/utility/api/controller/apply-metadata.utility.js.map +0 -1
  928. package/dist/esm/src/utility/api/controller/get-list/transform-filter.utility.js.map +0 -1
  929. package/dist/esm/src/utility/api/controller/get-list/transform-operation.utility.js.map +0 -1
  930. package/dist/esm/src/utility/api/controller/get-method-name.utility.js.map +0 -1
  931. package/dist/esm/src/utility/api/controller/get-primary-column.utility.js +0 -13
  932. package/dist/esm/src/utility/api/controller/get-primary-column.utility.js.map +0 -1
  933. package/dist/esm/src/utility/api/controller/handle-request-relations.utility.js.map +0 -1
  934. package/dist/esm/src/utility/api/controller/transform-data.utility.js.map +0 -1
  935. package/dist/esm/src/utility/api/controller/validate-request.utility.js.map +0 -1
  936. package/dist/esm/src/utility/api/controller/write-dto-swagger.utility.js.map +0 -1
  937. package/dist/esm/src/utility/api/controller/write-method.utility.js +0 -18
  938. package/dist/esm/src/utility/api/controller/write-method.utility.js.map +0 -1
  939. package/dist/esm/src/utility/api/filter-order-by-from-entity.utility.js.map +0 -1
  940. package/dist/esm/src/utility/camel-case-string.utility.js.map +0 -1
  941. package/dist/esm/src/utility/capitalize-string.utility.js.map +0 -1
  942. package/dist/esm/src/utility/dto/analize.utility.js +0 -25
  943. package/dist/esm/src/utility/dto/analize.utility.js.map +0 -1
  944. package/dist/esm/src/utility/dto/build-decorator.utility.js.map +0 -1
  945. package/dist/esm/src/utility/dto/generate-decorator.utility.js +0 -13
  946. package/dist/esm/src/utility/dto/generate-decorator.utility.js.map +0 -1
  947. package/dist/esm/src/utility/dto/generate-exception.utility.js.map +0 -1
  948. package/dist/esm/src/utility/dto/generate-filter-decorator.utility.js.map +0 -1
  949. package/dist/esm/src/utility/dto/generate-get-list-response.utility.js.map +0 -1
  950. package/dist/esm/src/utility/dto/generate-relation-response.utility.js.map +0 -1
  951. package/dist/esm/src/utility/dto/generate.utility.js.map +0 -1
  952. package/dist/esm/src/utility/dto/get-decorator-config.utility.js.map +0 -1
  953. package/dist/esm/src/utility/dto/get-get-list-query-base-class.utility.js.map +0 -1
  954. package/dist/esm/src/utility/dto/handle-date-property.utility.js.map +0 -1
  955. package/dist/esm/src/utility/dto/is-property-exposed-for-guard.utility.js.map +0 -1
  956. package/dist/esm/src/utility/dto/is-property-should-be-marked.utility.js.map +0 -1
  957. package/dist/esm/src/utility/dto/is-should-be-generated.utility.js.map +0 -1
  958. package/dist/esm/src/utility/dto/validate-property-config.utility.js.map +0 -1
  959. package/dist/esm/src/utility/error-exception.utility.js.map +0 -1
  960. package/dist/esm/src/utility/error-string.utility.js +0 -6
  961. package/dist/esm/src/utility/error-string.utility.js.map +0 -1
  962. package/dist/esm/src/utility/generate-entity-information.utility.js.map +0 -1
  963. package/dist/esm/src/utility/get-entity-columns.utility.js.map +0 -1
  964. package/dist/esm/src/utility/is-error-of-type.utility.js.map +0 -1
  965. package/dist/esm/src/utility/logger.utility.js.map +0 -1
  966. package/dist/esm/src/validator/all-or-none-of-listed-properties.validator.js.map +0 -1
  967. package/dist/esm/src/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js.map +0 -1
  968. package/dist/esm/src/validator/has-at-least-one-of-listed-properties.validator.js.map +0 -1
  969. package/dist/esm/src/validator/has-at-least-one-property.validator.js.map +0 -1
  970. package/dist/esm/src/validator/has-paired-custom-suffixes-fields.validator.js.map +0 -1
  971. package/dist/esm/src/validator/is-regular-expression.validator.js +0 -25
  972. package/dist/esm/src/validator/is-regular-expression.validator.js.map +0 -1
  973. package/dist/esm/src/validator/only-one-of-listed-properties.validator.js.map +0 -1
  974. package/dist/esm/type/decorator/api/controller/properties/index.d.ts +0 -1
  975. package/dist/esm/type/decorator/api/index.d.ts +0 -5
  976. package/dist/esm/type/decorator/index.d.ts +0 -1
  977. package/dist/esm/type/factory/api/index.d.ts +0 -1
  978. package/dist/esm/type/factory/index.d.ts +0 -1
  979. package/dist/esm/type/utility/api/controller/index.d.ts +0 -1
  980. package/dist/esm/type/utility/api/index.d.ts +0 -1
  981. /package/dist/esm/{src/class → class}/api/service-base.class.js +0 -0
  982. /package/dist/esm/{src/class → class}/utility/dto/property/factory/boolean.class.js +0 -0
  983. /package/dist/esm/{src/class → class}/utility/dto/property/factory/date.class.js +0 -0
  984. /package/dist/esm/{src/class → class}/utility/dto/property/factory/enum.class.js +0 -0
  985. /package/dist/esm/{src/class → class}/utility/dto/property/factory/string.class.js +0 -0
  986. /package/dist/esm/{src/class → class}/utility/dto/property/factory/uuid.class.js +0 -0
  987. /package/dist/esm/{src/constant → constant}/date.constant.js +0 -0
  988. /package/dist/esm/{src/constant → constant}/decorator/api/controller.constant.js +0 -0
  989. /package/dist/esm/{src/constant → constant}/decorator/api/property-describe.constant.js +0 -0
  990. /package/dist/esm/{src/constant → constant}/dto/exception.constant.js +0 -0
  991. /package/dist/esm/{src/constant → constant}/dto/transformer-value.constant.js +0 -0
  992. /package/dist/esm/{src/constant → constant}/interface/api/filter.constant.js +0 -0
  993. /package/dist/esm/{src/constant → constant}/interface/api/property/string.constant.js +0 -0
  994. /package/dist/esm/{src/constant → constant}/interface/api/property/wallet.constant.js +0 -0
  995. /package/dist/esm/{src/constant → constant}/number.constant.js +0 -0
  996. /package/dist/esm/{src/constant → constant}/utility/dto/generate.constant.js +0 -0
  997. /package/dist/esm/{src/decorator → decorator}/api/controller.decorator.js +0 -0
  998. /package/dist/esm/{src/enum → enum}/decorator/api/action.enum.js +0 -0
  999. /package/dist/esm/{src/enum → enum}/decorator/api/authentication-type.enum.js +0 -0
  1000. /package/dist/esm/{src/enum → enum}/decorator/api/controller/load-relations-strategy.enum.js +0 -0
  1001. /package/dist/esm/{src/enum → enum}/decorator/api/controller/request-transformer-type.enum.js +0 -0
  1002. /package/dist/esm/{src/enum → enum}/decorator/api/dto-type.enum.js +0 -0
  1003. /package/dist/esm/{src/enum → enum}/decorator/api/function/type.enum.js +0 -0
  1004. /package/dist/esm/{src/enum → enum}/decorator/api/property/data-type.enum.js +0 -0
  1005. /package/dist/esm/{src/enum → enum}/decorator/api/property/date/identifier.enum.js +0 -0
  1006. /package/dist/esm/{src/enum → enum}/decorator/api/property/date/type.enum.js +0 -0
  1007. /package/dist/esm/{src/enum → enum}/decorator/api/property/desribe-type.enum.js +0 -0
  1008. /package/dist/esm/{src/enum → enum}/decorator/api/property/number-type.enum.js +0 -0
  1009. /package/dist/esm/{src/enum → enum}/decorator/api/property/string-type.enum.js +0 -0
  1010. /package/dist/esm/{src/enum → enum}/decorator/api/route-type.enum.js +0 -0
  1011. /package/dist/esm/{src/enum → enum}/exception.enum.js +0 -0
  1012. /package/dist/esm/{src/enum → enum}/filter-operation.enum.js +0 -0
  1013. /package/dist/esm/{src/enum → enum}/filter-order-direction.enum.js +0 -0
  1014. /package/dist/esm/{src/enum → enum}/utility/error-string-action.enum.js +0 -0
  1015. /package/dist/esm/{src/utility → utility}/dto/validate-property-config.utility.js +0 -0
package/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  <p align="center">
2
- <img src="https://6jft62zmy9nx2oea.public.blob.vercel-storage.com/nestjs-crud-automator-HhXThTDhKyqznMLCgdmWhsPa287fIi.png" width="500" alt="project-logo">
3
- </p>
2
+ <img src="https://6jft62zmy9nx2oea.public.blob.vercel-storage.com/nestjs-crud-automator-HhXThTDhKyqznMLCgdmWhsPa287fIi.png" width="500" alt="project-logo">
3
+ </p>
4
4
 
5
- <h1 align="center">🚀 NestJS-Crud-Automator</h1>
6
- <p align="center"><em>Automate CRUD operations in NestJS with powerful decorators and type-safe APIs</em></p>
5
+ <h1 align="center">NestJS-Crud-Automator 🚀</h1>
6
+ <p align="center"><em>A powerful library for automating CRUD operations in NestJS applications</em></p>
7
7
 
8
8
  <p align="center">
9
9
  <a aria-label="ElsiKora logo" href="https://elsikora.com">
10
10
  <img src="https://img.shields.io/badge/MADE%20BY%20ElsiKora-333333.svg?style=for-the-badge" alt="ElsiKora">
11
- </a> <img src="https://img.shields.io/badge/version-blue.svg?style=for-the-badge&logo=npm&logoColor=white" alt="version"> <img src="https://img.shields.io/badge/typescript-blue.svg?style=for-the-badge&logo=typescript&logoColor=white" alt="typescript"> <img src="https://img.shields.io/badge/nestjs-red.svg?style=for-the-badge&logo=nestjs&logoColor=white" alt="nestjs"> <img src="https://img.shields.io/badge/typeorm-orange.svg?style=for-the-badge&logo=typeorm&logoColor=white" alt="typeorm"> <img src="https://img.shields.io/badge/license-green.svg?style=for-the-badge&logo=license&logoColor=white" alt="license"> <img src="https://img.shields.io/badge/swagger-green.svg?style=for-the-badge&logo=swagger&logoColor=white" alt="swagger">
11
+ </a> <img src="https://img.shields.io/badge/npm-blue.svg?style=for-the-badge&logo=npm&logoColor=white" alt="npm"> <img src="https://img.shields.io/badge/typescript-blue.svg?style=for-the-badge&logo=typescript&logoColor=white" alt="typescript"> <img src="https://img.shields.io/badge/nestjs-red.svg?style=for-the-badge&logo=nestjs&logoColor=white" alt="nestjs"> <img src="https://img.shields.io/badge/swagger-green.svg?style=for-the-badge&logo=swagger&logoColor=white" alt="swagger"> <img src="https://img.shields.io/badge/license-blue.svg?style=for-the-badge&logo=license&logoColor=white" alt="license"> <img src="https://img.shields.io/badge/version-1.6.2-brightgreen.svg?style=for-the-badge&logo=v&logoColor=white" alt="version-1.6.2">
12
12
  </p>
13
13
 
14
14
 
@@ -23,24 +23,27 @@
23
23
 
24
24
 
25
25
  ## 📖 Description
26
- NestJS-Crud-Automator is a comprehensive library designed to streamline the development of RESTful APIs in NestJS applications. It eliminates boilerplate code by providing decorators that automatically generate controllers, services, DTOs, and validation. With strong TypeScript support, it offers type-safe CRUD operations while enforcing best practices in API design. The library integrates seamlessly with TypeORM, enhances Swagger documentation, and provides built-in validation through class-validator. It's perfect for developers looking to accelerate development without sacrificing code quality or architectural principles. Whether you're building a simple API or a complex enterprise application, NestJS-Crud-Automator helps maintain clean, consistent, and well-documented endpoints with minimal effort.
26
+ NestJS-Crud-Automator is a comprehensive library designed to eliminate repetitive code when building RESTful APIs with NestJS. It provides a suite of decorators, utilities, and validation tools that automatically generate controllers, DTOs, and service methods for handling Create, Read, Update, and Delete operations. This library significantly reduces development time by providing a declarative approach to API development. By simply describing your entity properties once, the library auto-generates all the necessary boilerplate code including Swagger documentation, validation rules, and transformation logic. Perfect for developers working on data-heavy applications who want to focus on business logic rather than repetitive CRUD implementation.
27
27
 
28
28
  ## 🚀 Features
29
- - ✨ **Automatic CRUD operations with a single decorator**
30
- - ✨ **Type-safe API development with full TypeScript support**
31
- - ✨ **Seamless integration with TypeORM for database operations**
32
- - ✨ **Auto-generated DTOs with comprehensive validation rules**
33
- - ✨ **Complete Swagger/OpenAPI documentation generation**
34
- - ✨ **Customizable request/response transformers**
35
- - ✨ **Built-in relation handling and eager/lazy loading support**
36
- - ✨ **Automatic validation using class-validator**
37
- - ✨ **Request correlation tracking for improved debugging**
38
- - ✨ **Rate limiting and throttling capabilities**
39
- - ✨ **Powerful filtering, pagination, and sorting for list endpoints**
40
- - ✨ **Custom validation decorators for complex business rules**
29
+ - ✨ **🏗️ Automatic generation of controllers, DTOs, and service methods for CRUD operations**
30
+ - ✨ **📝 Comprehensive Swagger/OpenAPI documentation generation for all endpoints**
31
+ - ✨ **✅ Built-in validation rules with class-validator integration**
32
+ - ✨ **🔄 Data transformation with class-transformer for request/response handling**
33
+ - ✨ **🧩 Type-safe decorators for entity properties with rich metadata support**
34
+ - ✨ **🔒 Authentication and authorization guards integration**
35
+ - ✨ **🔍 Advanced filtering, sorting, and pagination for list operations**
36
+ - ✨ **📚 Support for object relations with automatic loading strategies**
37
+ - ✨ **⚡ Performance optimized with TypeORM integration for database operations**
38
+ - ✨ **🌐 Full support for TypeScript with strong typing throughout the library**
41
39
 
42
40
  ## 🛠 Installation
43
41
  ```bash
42
+ ## Installation
43
+
44
+ Install NestJS-Crud-Automator using your preferred package manager:
45
+
46
+
44
47
  # Using npm
45
48
  npm install @elsikora/nestjs-crud-automator
46
49
 
@@ -50,52 +53,40 @@ yarn add @elsikora/nestjs-crud-automator
50
53
  # Using pnpm
51
54
  pnpm add @elsikora/nestjs-crud-automator
52
55
 
53
- # Using bun
54
- bun add @elsikora/nestjs-crud-automator
55
-
56
56
 
57
- You'll also need to install peer dependencies if you haven't already:
57
+ ### Prerequisites
58
58
 
59
+ Make sure you have the following dependencies installed in your NestJS project:
59
60
 
60
- npm install @nestjs/common @nestjs/swagger typeorm class-transformer class-validator reflect-metadata
61
+ - NestJS (^9.0.0)
62
+ - TypeORM (^0.3.0)
63
+ - class-validator (^0.14.0)
64
+ - class-transformer (^0.5.1)
65
+ - @nestjs/swagger (^6.0.0)
61
66
 
67
+ You might need to install these peer dependencies if they're not already in your project:
62
68
 
63
- Once installed, you need to set up your NestJS module to import the library:
64
69
 
65
- typescript
66
- // app.module.ts
67
- import { Module } from '@nestjs/common';
68
- import { TypeOrmModule } from '@nestjs/typeorm';
69
- // Import other modules and entities as needed
70
-
71
- @Module({
72
- imports: [
73
- TypeOrmModule.forRoot({
74
- // your TypeORM configuration
75
- }),
76
- // Register your entities and other modules
77
- ],
78
- })
79
- export class AppModule {}
70
+ npm install @nestjs/common @nestjs/swagger @nestjs/throttler typeorm class-transformer class-validator reflect-metadata
80
71
  ```
81
72
 
82
73
  ## 💡 Usage
83
74
  ## Basic Usage
84
75
 
85
- Create an entity using TypeORM and enhance it with property decorators:
76
+ ### 1. Define Your Entity
77
+
78
+ First, define your entity with the `ApiPropertyDescribe` decorators to provide metadata for CRUD generation:
86
79
 
87
80
  ```typescript
88
- // user.entity.ts
89
81
  import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';
90
- import { ApiPropertyDescribe } from '@elsikora/nestjs-crud-automator';
91
- import { EApiPropertyDescribeType, EApiPropertyStringType } from '@elsikora/nestjs-crud-automator';
82
+ import { ApiPropertyDescribe, EApiPropertyDescribeType, EApiPropertyStringType, EApiPropertyDateIdentifier, EApiPropertyDateType } from '@elsikora/nestjs-crud-automator';
92
83
 
93
84
  @Entity('users')
94
- export class User {
85
+ export class UserEntity {
95
86
  @PrimaryGeneratedColumn('uuid')
96
87
  @ApiPropertyDescribe({
97
88
  type: EApiPropertyDescribeType.UUID,
98
- description: 'Unique identifier',
89
+ description: 'User unique identifier'
99
90
  })
100
91
  id: string;
101
92
 
@@ -117,366 +108,338 @@ export class User {
117
108
  description: 'User email',
118
109
  format: EApiPropertyStringType.EMAIL,
119
110
  minLength: 5,
120
- maxLength: 100,
111
+ maxLength: 255,
121
112
  pattern: '/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/',
122
- exampleValue: 'john.doe@example.com'
113
+ exampleValue: 'user@example.com'
123
114
  })
124
115
  email: string;
116
+
117
+ @Column({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
118
+ @ApiPropertyDescribe({
119
+ type: EApiPropertyDescribeType.DATE,
120
+ identifier: EApiPropertyDateIdentifier.CREATED_AT,
121
+ format: EApiPropertyDateType.DATE_TIME
122
+ })
123
+ createdAt: Date;
124
+
125
+ @Column({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP', onUpdate: 'CURRENT_TIMESTAMP' })
126
+ @ApiPropertyDescribe({
127
+ type: EApiPropertyDescribeType.DATE,
128
+ identifier: EApiPropertyDateIdentifier.UPDATED_AT,
129
+ format: EApiPropertyDateType.DATE_TIME
130
+ })
131
+ updatedAt: Date;
125
132
  }
126
133
  ```
127
134
 
128
- ## Creating a Service
135
+ ### 2. Create a Service
129
136
 
130
- Create a service that extends the base service class:
137
+ Create a service with the `ApiService` decorator to add CRUD operations:
131
138
 
132
139
  ```typescript
133
- // user.service.ts
134
140
  import { Injectable } from '@nestjs/common';
135
141
  import { InjectRepository } from '@nestjs/typeorm';
136
142
  import { Repository } from 'typeorm';
137
- import { ApiServiceBase, ApiService } from '@elsikora/nestjs-crud-automator';
138
- import { User } from './user.entity';
143
+ import { ApiService, ApiServiceBase } from '@elsikora/nestjs-crud-automator';
144
+ import { UserEntity } from './user.entity';
139
145
 
140
146
  @Injectable()
141
- @ApiService({
142
- entity: User
147
+ @ApiService<UserEntity>({
148
+ entity: UserEntity
143
149
  })
144
- export class UserService extends ApiServiceBase<User> {
150
+ export class UserService extends ApiServiceBase<UserEntity> {
145
151
  constructor(
146
- @InjectRepository(User)
147
- public repository: Repository<User>
152
+ @InjectRepository(UserEntity)
153
+ public repository: Repository<UserEntity>
148
154
  ) {
149
155
  super();
150
156
  }
151
-
152
- // You can add custom methods here
153
- async findByEmail(email: string): Promise<User | undefined> {
157
+
158
+ // You can add custom methods here that go beyond basic CRUD
159
+ async findByEmail(email: string): Promise<UserEntity | undefined> {
154
160
  return this.repository.findOne({ where: { email } });
155
161
  }
156
162
  }
157
163
  ```
158
164
 
159
- ## Creating a Controller
165
+ ### 3. Create a Controller
160
166
 
161
- Create a controller with automated CRUD operations:
167
+ Create a controller with the `ApiController` decorator to generate all CRUD endpoints:
162
168
 
163
169
  ```typescript
164
- // user.controller.ts
165
- import { Controller } from '@nestjs/common';
166
- import { ApiController } from '@elsikora/nestjs-crud-automator';
167
- import { User } from './user.entity';
170
+ import { Controller, UseGuards } from '@nestjs/common';
171
+ import { ApiController, EApiRouteType } from '@elsikora/nestjs-crud-automator';
172
+ import { UserEntity } from './user.entity';
168
173
  import { UserService } from './user.service';
174
+ import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard';
169
175
 
170
- @ApiController<User>({
171
- entity: User,
176
+ @Controller('users')
177
+ @ApiController<UserEntity>({
178
+ entity: UserEntity,
172
179
  name: 'Users',
173
- path: 'users',
174
180
  routes: {
175
- // Configure specific routes if needed
181
+ [EApiRouteType.CREATE]: {
182
+ authentication: {
183
+ guard: JwtAuthGuard,
184
+ bearerStrategies: ['jwt']
185
+ }
186
+ },
187
+ [EApiRouteType.UPDATE]: {
188
+ authentication: {
189
+ guard: JwtAuthGuard,
190
+ bearerStrategies: ['jwt']
191
+ }
192
+ },
193
+ [EApiRouteType.DELETE]: {
194
+ authentication: {
195
+ guard: JwtAuthGuard,
196
+ bearerStrategies: ['jwt']
197
+ }
198
+ },
199
+ [EApiRouteType.GET]: {},
200
+ [EApiRouteType.GET_LIST]: {}
176
201
  }
177
202
  })
178
- @Controller('users')
179
203
  export class UserController {
180
- constructor(
181
- public service: UserService
182
- ) {}
183
-
184
- // The controller methods are automatically generated
185
- // You can add custom endpoints here if needed
204
+ constructor(public service: UserService) {}
186
205
  }
187
206
  ```
188
207
 
189
- ## Custom Route Configuration
208
+ ## Advanced Usage
190
209
 
191
- You can customize individual routes with advanced options:
210
+ ### Custom Validation
211
+
212
+ Add custom validators to your DTOs:
192
213
 
193
214
  ```typescript
194
- // user.controller.ts with route customization
195
- import { Controller } from '@nestjs/common';
196
- import { ApiController } from '@elsikora/nestjs-crud-automator';
197
- import { EApiRouteType, EApiControllerLoadRelationsStrategy } from '@elsikora/nestjs-crud-automator';
198
- import { User } from './user.entity';
199
- import { UserService } from './user.service';
200
- import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard';
215
+ import { ApiController, EApiRouteType, EApiDtoType, AllOrNoneOfListedPropertiesValidator } from '@elsikora/nestjs-crud-automator';
201
216
 
202
- @ApiController<User>({
203
- entity: User,
217
+ @ApiController<UserEntity>({
218
+ entity: UserEntity,
204
219
  name: 'Users',
205
- path: 'users',
206
220
  routes: {
207
221
  [EApiRouteType.CREATE]: {
208
- authentication: {
209
- guard: JwtAuthGuard,
210
- type: 'user',
211
- bearerStrategies: ['jwt']
212
- },
213
- request: {
214
- validators: [
215
- // custom validators
216
- ],
217
- transformers: {
218
- body: [
219
- // request transformers
222
+ autoDto: {
223
+ [EApiDtoType.BODY]: {
224
+ validators: [
225
+ {
226
+ constraintClass: AllOrNoneOfListedPropertiesValidator,
227
+ options: ['firstName', 'lastName']
228
+ }
220
229
  ]
221
230
  }
222
231
  }
223
- },
224
- [EApiRouteType.GET_LIST]: {
225
- request: {
226
- relations: {
227
- shouldLoadRelations: true,
228
- relationsLoadStrategy: EApiControllerLoadRelationsStrategy.AUTO,
229
- servicesLoadStrategy: EApiControllerLoadRelationsStrategy.AUTO
230
- }
231
- }
232
232
  }
233
233
  }
234
234
  })
235
- @Controller('users')
236
235
  export class UserController {
237
- constructor(
238
- public service: UserService
239
- ) {}
236
+ constructor(public service: UserService) {}
240
237
  }
241
238
  ```
242
239
 
243
- ## Working with DTOs
240
+ ### Request Transformation
244
241
 
245
- The library automatically generates DTOs for your entities, but you can also provide custom ones:
242
+ Automatically transform request data:
246
243
 
247
244
  ```typescript
248
- // custom-create-user.dto.ts
249
- import { ApiPropertyString, ApiPropertyUUID } from '@elsikora/nestjs-crud-automator';
250
- import { EApiPropertyStringType } from '@elsikora/nestjs-crud-automator';
245
+ import { ApiController, EApiRouteType, EApiDtoType, EApiControllerRequestTransformerType, TRANSFORMER_VALUE_DTO_CONSTANT } from '@elsikora/nestjs-crud-automator';
251
246
 
252
- export class CustomCreateUserDto {
253
- @ApiPropertyString({
254
- entity: { name: 'User' },
255
- description: 'User name',
256
- format: EApiPropertyStringType.STRING,
257
- minLength: 3,
258
- maxLength: 50,
259
- pattern: '/^[a-zA-Z0-9_-]+$/',
260
- exampleValue: 'john_doe',
261
- isRequired: true
262
- })
263
- username: string;
264
-
265
- @ApiPropertyString({
266
- entity: { name: 'User' },
267
- description: 'User email',
268
- format: EApiPropertyStringType.EMAIL,
269
- minLength: 5,
270
- maxLength: 100,
271
- pattern: '/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/',
272
- exampleValue: 'john.doe@example.com',
273
- isRequired: true
274
- })
275
- email: string;
247
+ @ApiController<UserEntity>({
248
+ entity: UserEntity,
249
+ name: 'Users',
250
+ routes: {
251
+ [EApiRouteType.CREATE]: {
252
+ request: {
253
+ transformers: {
254
+ [EApiDtoType.BODY]: [
255
+ {
256
+ key: 'createdBy',
257
+ type: EApiControllerRequestTransformerType.DYNAMIC,
258
+ value: TRANSFORMER_VALUE_DTO_CONSTANT.AUTHORIZED_ENTITY,
259
+ shouldSetValueEvenIfMissing: true
260
+ }
261
+ ]
262
+ }
263
+ }
264
+ }
265
+ }
266
+ })
267
+ export class UserController {
268
+ constructor(public service: UserService) {}
276
269
  }
277
270
  ```
278
271
 
279
- ## Request Validation
272
+ ### Handling Relations
280
273
 
281
- You can add custom validators to your endpoints:
274
+ Automatically load related entities:
282
275
 
283
276
  ```typescript
284
- // user.validator.ts
285
- import { EErrorStringAction, EException } from '@elsikora/nestjs-crud-automator';
286
- import { BadRequestException } from '@nestjs/common';
287
- import { User } from './user.entity';
288
-
289
- export const UniqueEmailValidator = {
290
- errorType: EErrorStringAction.VALIDATION_ERROR,
291
- exception: BadRequestException,
292
- validationFunction: async (entity: Partial<User>, userService: any) => {
293
- if (!entity.email) return true;
294
- const existingUser = await userService.findByEmail(entity.email);
295
- return !existingUser;
277
+ import { ApiController, EApiRouteType, EApiControllerLoadRelationsStrategy } from '@elsikora/nestjs-crud-automator';
278
+
279
+ @ApiController<PostEntity>({
280
+ entity: PostEntity,
281
+ name: 'Posts',
282
+ routes: {
283
+ [EApiRouteType.GET]: {
284
+ request: {
285
+ relations: {
286
+ shouldLoadRelations: true,
287
+ relationsLoadStrategy: EApiControllerLoadRelationsStrategy.AUTO,
288
+ servicesLoadStrategy: EApiControllerLoadRelationsStrategy.AUTO,
289
+ shouldForceAllServicesToBeSpecified: false,
290
+ relationsToLoad: ['author', 'comments']
291
+ }
292
+ },
293
+ response: {
294
+ relations: ['author', 'comments']
295
+ }
296
+ }
296
297
  }
297
- };
298
+ })
299
+ export class PostController {
300
+ constructor(
301
+ public service: PostService,
302
+ public authorService: UserService,
303
+ public commentsService: CommentService
304
+ ) {}
305
+ }
298
306
  ```
299
307
 
300
- ## Using Filters, Pagination and Sorting
308
+ ### Custom DTOs
301
309
 
302
- With the GET_LIST endpoints, you get built-in filtering, pagination and sorting:
310
+ Use custom DTOs instead of auto-generated ones:
303
311
 
304
312
  ```typescript
305
- // Example HTTP request
306
- // GET /users?limit=10&page=1&orderBy=username&orderDirection=asc&username[operator]=cont&username[value]=john
313
+ import { ApiController, EApiRouteType } from '@elsikora/nestjs-crud-automator';
314
+ import { CreateUserDto } from './dto/create-user.dto';
315
+ import { UpdateUserDto } from './dto/update-user.dto';
316
+ import { UserResponseDto } from './dto/user-response.dto';
317
+
318
+ @ApiController<UserEntity>({
319
+ entity: UserEntity,
320
+ name: 'Users',
321
+ routes: {
322
+ [EApiRouteType.CREATE]: {
323
+ dto: {
324
+ body: CreateUserDto,
325
+ response: UserResponseDto
326
+ }
327
+ },
328
+ [EApiRouteType.UPDATE]: {
329
+ dto: {
330
+ body: UpdateUserDto,
331
+ response: UserResponseDto
332
+ }
333
+ }
334
+ }
335
+ })
336
+ export class UserController {
337
+ constructor(public service: UserService) {}
338
+ }
307
339
  ```
308
340
 
309
- ## Using the Correlation ID Interceptor
341
+ ### Swagger Documentation
310
342
 
311
- Add the built-in correlation ID interceptor for better request tracking:
343
+ The library automatically generates Swagger/OpenAPI documentation for all endpoints. To enable it in your NestJS application:
312
344
 
313
345
  ```typescript
314
- // main.ts
315
346
  import { NestFactory } from '@nestjs/core';
316
- import { ValidationPipe } from '@nestjs/common';
317
347
  import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
318
- import { CorrelationIDResponseBodyInterceptor } from '@elsikora/nestjs-crud-automator';
319
348
  import { AppModule } from './app.module';
320
349
 
321
350
  async function bootstrap() {
322
351
  const app = await NestFactory.create(AppModule);
323
352
 
324
- app.useGlobalInterceptors(new CorrelationIDResponseBodyInterceptor());
325
- app.useGlobalPipes(new ValidationPipe({ transform: true }));
326
-
327
353
  const config = new DocumentBuilder()
328
- .setTitle('My API')
329
- .setDescription('API Documentation')
354
+ .setTitle('Your API')
355
+ .setDescription('API description')
330
356
  .setVersion('1.0')
331
357
  .addBearerAuth()
332
358
  .build();
333
359
 
334
360
  const document = SwaggerModule.createDocument(app, config);
335
361
  SwaggerModule.setup('api', app, document);
336
-
362
+
337
363
  await app.listen(3000);
338
364
  }
339
365
  bootstrap();
340
366
  ```
341
367
 
342
- ## Custom Property Decorators
368
+ ### Custom Filtering
343
369
 
344
- The library provides various property decorators for different data types:
370
+ The library provides advanced filtering capabilities for list endpoints:
345
371
 
346
372
  ```typescript
347
- // Example of various property decorators
348
- import {
349
- ApiPropertyBoolean,
350
- ApiPropertyDate,
351
- ApiPropertyNumber,
352
- ApiPropertyObject,
353
- ApiPropertyString,
354
- ApiPropertyUUID,
355
- ApiPropertyEnum
356
- } from '@elsikora/nestjs-crud-automator';
357
- import {
358
- EApiPropertyDateIdentifier,
359
- EApiPropertyDateType,
360
- EApiPropertyNumberType,
361
- EApiPropertyStringType
362
- } from '@elsikora/nestjs-crud-automator';
363
-
364
- // Example enum
365
- enum UserRole {
366
- ADMIN = 'admin',
367
- USER = 'user'
368
- }
369
-
370
- class ExampleDto {
371
- @ApiPropertyUUID({ entity: { name: 'Example' }, isRequired: true })
372
- id: string;
373
-
374
- @ApiPropertyString({
375
- entity: { name: 'Example' },
376
- description: 'Example name',
377
- format: EApiPropertyStringType.STRING,
378
- minLength: 3,
379
- maxLength: 50,
380
- pattern: '/^[a-zA-Z0-9 ]+$/',
381
- exampleValue: 'Example Item',
382
- isRequired: true
383
- })
384
- name: string;
385
-
386
- @ApiPropertyBoolean({
387
- entity: { name: 'Example' },
388
- description: 'Is active',
389
- isRequired: false
390
- })
391
- isActive: boolean;
392
-
393
- @ApiPropertyNumber({
394
- entity: { name: 'Example' },
395
- description: 'Price',
396
- format: EApiPropertyNumberType.DOUBLE,
397
- minimum: 0,
398
- maximum: 1000,
399
- multipleOf: 0.01,
400
- exampleValue: 29.99,
401
- isRequired: true
402
- })
403
- price: number;
404
-
405
- @ApiPropertyDate({
406
- entity: { name: 'Example' },
407
- format: EApiPropertyDateType.DATE_TIME,
408
- identifier: EApiPropertyDateIdentifier.CREATED_AT,
409
- isResponse: true
410
- })
411
- createdAt: Date;
412
-
413
- @ApiPropertyEnum({
414
- entity: { name: 'Example' },
415
- description: 'User role',
416
- enum: UserRole,
417
- enumName: 'UserRole',
418
- isRequired: true
419
- })
420
- role: UserRole;
421
- }
373
+ // GET /users?username[operator]=cont&username[value]=john&createdAt[operator]=between&createdAt[values]=["2023-01-01","2023-12-31"]
422
374
  ```
423
375
 
376
+ This query would search for users with "john" in their username and created between Jan 1 and Dec 31, 2023.
377
+
424
378
  ## 🛣 Roadmap
379
+ ## Roadmap
380
+
425
381
  | Task / Feature | Status |
426
382
  |---------------|--------|
427
- | Core CRUD operations | ✅ Done |
428
- | TypeORM integration | ✅ Done |
429
- | Auto-generated DTOs | ✅ Done |
430
- | Swagger documentation | ✅ Done |
431
- | Request validation | ✅ Done |
432
- | Response transformation | ✅ Done |
433
- | Request correlation tracking | ✅ Done |
434
- | Filtering, pagination and sorting | ✅ Done |
435
- | Custom validation decorators | ✅ Done |
436
- | Authentication integration | ✅ Done |
437
- | 🚧 MongoDB support | 🚧 In Progress |
438
- | 🚧 GraphQL support | 🚧 In Progress |
439
- | 🚧 Caching mechanisms | 🚧 In Progress |
440
- | 🚧 Advanced query building | 🚧 In Progress |
441
- | 🚧 Soft delete functionality | 🚧 In Progress |
442
- | 🚧 Event dispatching | 🚧 In Progress |
443
- | 🚧 Bulk operations | 🚧 In Progress |
444
- | 🚧 File upload handling | 🚧 In Progress |
445
- | 🚧 Custom migration scripts | 🚧 In Progress |
446
- | 🚧 CLI for scaffold generation | 🚧 In Progress |
383
+ | Core CRUD operations | ✅ Done |
384
+ | TypeORM integration | ✅ Done |
385
+ | Swagger/OpenAPI documentation | ✅ Done |
386
+ | Validation with class-validator | ✅ Done |
387
+ | Transformation with class-transformer | ✅ Done |
388
+ | Advanced filtering for GET_LIST operation | ✅ Done |
389
+ | Authentication guard integration | ✅ Done |
390
+ | Request/response transformers | ✅ Done |
391
+ | Relation loading strategies | ✅ Done |
392
+ | Custom validator integration | ✅ Done |
393
+ | Pagination support | Done |
394
+ | Error handling with standardized responses | Done |
395
+ | Support for TypeScript decorators | Done |
396
+ | Support for ESM and CommonJS modules | Done |
397
+ | MongoDB support | 🚧 In Progress |
398
+ | GraphQL integration | 🚧 In Progress |
399
+ | Support for soft deletes | 🚧 In Progress |
400
+ | Role-based access control | 🚧 In Progress |
401
+ | Cache integration | 🚧 In Progress |
402
+ | Audit logging middleware | 🚧 In Progress |
403
+ | Bulk operations (create many, update many) | 🚧 In Progress |
404
+ | Query complexity analyzer | 🚧 In Progress |
405
+ | Rate limiting enhancements | 🚧 In Progress |
406
+ | Custom parameter decorators | 🚧 In Progress |
447
407
 
448
408
  ## ❓ FAQ
449
409
  ## Frequently Asked Questions
450
410
 
451
- ### What is NestJS-Crud-Automator?
452
- NestJS-Crud-Automator is a library that automates the creation of CRUD (Create, Read, Update, Delete) operations in NestJS applications. It provides decorators and utilities to generate controllers, services, DTOs, and validation with minimal boilerplate code.
411
+ ### How does NestJS-Crud-Automator compare to @nestjsx/crud?
412
+
413
+ While @nestjsx/crud provides similar functionality, NestJS-Crud-Automator offers more comprehensive TypeScript integration, better Swagger documentation, and more flexible customization options. It's designed from the ground up to work with the latest NestJS and TypeORM versions.
414
+
415
+ ### Can I customize the generated endpoints?
416
+
417
+ Yes! The library provides multiple ways to customize your endpoints:
418
+ 1. You can disable specific routes
419
+ 2. Add authentication guards to specific routes
420
+ 3. Customize DTO validation and transformation
421
+ 4. Add custom request validators
422
+ 5. Override the auto-generated DTOs with your own
423
+
424
+ ### Does it support pagination?
453
425
 
454
- ### Does it work with any database?
455
- Currently, the library is optimized for TypeORM which supports multiple databases including PostgreSQL, MySQL, MariaDB, SQLite, MS SQL Server, Oracle, and MongoDB. Support for other ORMs is planned for future releases.
426
+ Yes, the GET_LIST operation automatically includes pagination with limit and page parameters, and returns count, currentPage, totalCount, and totalPages in the response.
456
427
 
457
- ### How do I customize the generated endpoints?
458
- You can customize the endpoints by providing configuration in the `routes` property of the `@ApiController` decorator. Each route type (CREATE, GET, GET_LIST, UPDATE, PARTIAL_UPDATE, DELETE) can be configured separately with custom authentication, validation, transformation, and relation loading strategies.
428
+ ### How is filtering implemented?
459
429
 
460
- ### Can I extend the generated functionality?
461
- Yes! The generated CRUD operations serve as a starting point. You can extend the controllers and services with custom methods to implement business-specific logic.
430
+ Filtering is implemented using a flexible operator-based approach that supports various operations like equals, contains, greater than, less than, between, etc. Filters can be applied to any property of your entity.
462
431
 
463
- ### Does it support validation?
464
- Yes, it integrates with class-validator and provides automatic validation based on the property decorators. You can also add custom validators to the routes configuration.
432
+ ### Can I use this with NestJS microservices?
465
433
 
466
- ### How does it handle relationships?
467
- The library provides automatic relation loading with configurable strategies. You can specify eager or lazy loading, and control which relations are loaded for each endpoint.
434
+ Yes, while the library primarily targets REST APIs, you can use the generated DTOs and validation logic in microservice implementations as well.
468
435
 
469
- ### Can I use it with GraphQL?
470
- Currently, the library focuses on REST APIs, but GraphQL support is planned for future releases.
436
+ ### Does it support file uploads?
471
437
 
472
- ### How do I handle authentication?
473
- You can configure authentication at the route level by specifying the authentication guard, type, and strategies in the route configuration.
438
+ The core library doesn't include file upload functionality, but you can easily extend the generated controllers to add file upload capabilities using NestJS's built-in features.
474
439
 
475
- ### What about performance?
476
- The library is designed to be lightweight and efficient. It uses TypeORM's query builder to optimize database queries and supports pagination, filtering, and sorting for list endpoints.
440
+ ### Is it compatible with custom database repositories?
477
441
 
478
- ### Can I use it with existing NestJS applications?
479
- Yes, the library is designed to integrate seamlessly with existing NestJS applications. You can apply it gradually to specific modules or entities without affecting the rest of your application.
442
+ Yes, as long as your repository follows the TypeORM Repository pattern, it will work with NestJS-Crud-Automator.
480
443
 
481
444
  ## 🔒 License
482
445
  This project is licensed under **MIT License