@elsikora/nestjs-crud-automator 2.1.2-dev.1 → 2.2.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 (404) hide show
  1. package/README.md +47 -0
  2. package/dist/cjs/class/api/authorization/bootstrap-validation.service.class.js +1 -1
  3. package/dist/cjs/class/api/authorization/bootstrap-validation.service.class.js.map +1 -1
  4. package/dist/cjs/class/api/authorization/hook/permission/cache.class.js +1 -1
  5. package/dist/cjs/class/api/authorization/hook/permission/cache.class.js.map +1 -1
  6. package/dist/cjs/class/api/authorization/hook/permission/resolver.class.js +1 -1
  7. package/dist/cjs/class/api/authorization/hook/permission/resolver.class.js.map +1 -1
  8. package/dist/cjs/class/api/authorization/iam/attachment/cache.class.js +1 -1
  9. package/dist/cjs/class/api/authorization/iam/attachment/cache.class.js.map +1 -1
  10. package/dist/cjs/class/api/authorization/iam/attachment/resolver.class.js +2 -2
  11. package/dist/cjs/class/api/authorization/iam/attachment/resolver.class.js.map +1 -1
  12. package/dist/cjs/class/api/authorization/iam/document/cache.class.js +1 -1
  13. package/dist/cjs/class/api/authorization/iam/document/cache.class.js.map +1 -1
  14. package/dist/cjs/class/api/authorization/iam/document/resolver.class.js +1 -1
  15. package/dist/cjs/class/api/authorization/iam/document/resolver.class.js.map +1 -1
  16. package/dist/cjs/class/api/authorization/runtime.class.js +2 -2
  17. package/dist/cjs/class/api/authorization/runtime.class.js.map +1 -1
  18. package/dist/cjs/class/api/route-runtime.class.d.ts +1 -0
  19. package/dist/cjs/class/api/route-runtime.class.js +41 -3
  20. package/dist/cjs/class/api/route-runtime.class.js.map +1 -1
  21. package/dist/cjs/constant/interface/api/property/default-string-format.constant.js +9 -0
  22. package/dist/cjs/constant/interface/api/property/default-string-format.constant.js.map +1 -1
  23. package/dist/cjs/constant/utility/api/get-default-string-format-properties/bigint-string/constant.d.ts +5 -0
  24. package/dist/cjs/constant/utility/api/get-default-string-format-properties/bigint-string/constant.js +12 -0
  25. package/dist/cjs/constant/utility/api/get-default-string-format-properties/bigint-string/constant.js.map +1 -0
  26. package/dist/cjs/constant/utility/api/get-default-string-format-properties/bigint-string/index.d.ts +2 -0
  27. package/dist/cjs/constant/utility/api/get-default-string-format-properties/bigint-string/sign/default.constant.d.ts +2 -0
  28. package/dist/cjs/constant/utility/api/get-default-string-format-properties/bigint-string/sign/default.constant.js +6 -0
  29. package/dist/cjs/constant/utility/api/get-default-string-format-properties/bigint-string/sign/default.constant.js.map +1 -0
  30. package/dist/cjs/constant/utility/api/get-default-string-format-properties/bigint-string/sign/index.d.ts +2 -0
  31. package/dist/cjs/constant/utility/api/get-default-string-format-properties/bigint-string/sign/properties.constant.d.ts +2 -0
  32. package/dist/cjs/constant/utility/api/get-default-string-format-properties/bigint-string/sign/properties.constant.js +28 -0
  33. package/dist/cjs/constant/utility/api/get-default-string-format-properties/bigint-string/sign/properties.constant.js.map +1 -0
  34. package/dist/cjs/constant/utility/api/get-default-string-format-properties/constant.d.ts +9 -0
  35. package/dist/cjs/constant/utility/api/get-default-string-format-properties/constant.js +12 -0
  36. package/dist/cjs/constant/utility/api/get-default-string-format-properties/constant.js.map +1 -0
  37. package/dist/cjs/constant/utility/api/get-default-string-format-properties/customizer/index.d.ts +1 -0
  38. package/dist/cjs/constant/utility/api/get-default-string-format-properties/customizer/map.constant.d.ts +2 -0
  39. package/dist/cjs/constant/utility/api/get-default-string-format-properties/customizer/map.constant.js +28 -0
  40. package/dist/cjs/constant/utility/api/get-default-string-format-properties/customizer/map.constant.js.map +1 -0
  41. package/dist/cjs/constant/utility/api/get-default-string-format-properties/index.d.ts +1 -0
  42. package/dist/cjs/constant/utility/api/index.d.ts +1 -0
  43. package/dist/cjs/constant/utility/index.d.ts +1 -0
  44. package/dist/cjs/decorator/api/controller/observable.decorator.js +9 -3
  45. package/dist/cjs/decorator/api/controller/observable.decorator.js.map +1 -1
  46. package/dist/cjs/decorator/api/controller/securable.decorator.js +9 -3
  47. package/dist/cjs/decorator/api/controller/securable.decorator.js.map +1 -1
  48. package/dist/cjs/decorator/api/method.decorator.js +38 -15
  49. package/dist/cjs/decorator/api/method.decorator.js.map +1 -1
  50. package/dist/cjs/decorator/api/property/boolean.decorator.d.ts +1 -1
  51. package/dist/cjs/decorator/api/property/boolean.decorator.js +4 -5
  52. package/dist/cjs/decorator/api/property/boolean.decorator.js.map +1 -1
  53. package/dist/cjs/decorator/api/property/date.decorator.d.ts +1 -1
  54. package/dist/cjs/decorator/api/property/date.decorator.js +4 -5
  55. package/dist/cjs/decorator/api/property/date.decorator.js.map +1 -1
  56. package/dist/cjs/decorator/api/property/enum.decorator.d.ts +1 -1
  57. package/dist/cjs/decorator/api/property/enum.decorator.js +4 -5
  58. package/dist/cjs/decorator/api/property/enum.decorator.js.map +1 -1
  59. package/dist/cjs/decorator/api/property/number.decorator.d.ts +1 -1
  60. package/dist/cjs/decorator/api/property/number.decorator.js +4 -5
  61. package/dist/cjs/decorator/api/property/number.decorator.js.map +1 -1
  62. package/dist/cjs/decorator/api/property/object.decorator.d.ts +1 -1
  63. package/dist/cjs/decorator/api/property/object.decorator.js +38 -6
  64. package/dist/cjs/decorator/api/property/object.decorator.js.map +1 -1
  65. package/dist/cjs/decorator/api/property/string.decorator.d.ts +1 -1
  66. package/dist/cjs/decorator/api/property/string.decorator.js +8 -6
  67. package/dist/cjs/decorator/api/property/string.decorator.js.map +1 -1
  68. package/dist/cjs/decorator/api/property/uuid.decorator.d.ts +1 -1
  69. package/dist/cjs/decorator/api/property/uuid.decorator.js +4 -5
  70. package/dist/cjs/decorator/api/property/uuid.decorator.js.map +1 -1
  71. package/dist/cjs/decorator/api/route-custom.decorator.js +1 -0
  72. package/dist/cjs/decorator/api/route-custom.decorator.js.map +1 -1
  73. package/dist/cjs/decorator/api/service/decorator.d.ts +1 -1
  74. package/dist/cjs/decorator/api/service/decorator.js +1 -1
  75. package/dist/cjs/decorator/api/service/observable.decorator.js +9 -3
  76. package/dist/cjs/decorator/api/service/observable.decorator.js.map +1 -1
  77. package/dist/cjs/enum/decorator/api/property/data-type.enum.d.ts +1 -0
  78. package/dist/cjs/enum/decorator/api/property/data-type.enum.js +1 -0
  79. package/dist/cjs/enum/decorator/api/property/data-type.enum.js.map +1 -1
  80. package/dist/cjs/enum/decorator/api/property/string-type.enum.d.ts +1 -0
  81. package/dist/cjs/enum/decorator/api/property/string-type.enum.js +1 -0
  82. package/dist/cjs/enum/decorator/api/property/string-type.enum.js.map +1 -1
  83. package/dist/cjs/factory/api-controller.factory.js +4 -0
  84. package/dist/cjs/factory/api-controller.factory.js.map +1 -1
  85. package/dist/cjs/index.js +25 -2
  86. package/dist/cjs/index.js.map +1 -1
  87. package/dist/cjs/interceptor/correlation-id-response-body.interceptor.js +2 -8
  88. package/dist/cjs/interceptor/correlation-id-response-body.interceptor.js.map +1 -1
  89. package/dist/cjs/interface/decorator/api/route/response/properties.interface.d.ts +3 -1
  90. package/dist/cjs/interface/decorator/api/route/runtime-properties.interface.d.ts +2 -1
  91. package/dist/cjs/module/api/authorization.module.js +1 -1
  92. package/dist/cjs/module/api/authorization.module.js.map +1 -1
  93. package/dist/cjs/type/decorator/api/index.d.ts +1 -0
  94. package/dist/cjs/type/decorator/api/property/default/string/format/type.d.ts +1 -1
  95. package/dist/cjs/type/decorator/api/route/custom/dto-properties.type.d.ts +8 -0
  96. package/dist/cjs/type/decorator/api/route/custom/index.d.ts +1 -0
  97. package/dist/cjs/type/decorator/api/route/discriminated/dto-properties.type.d.ts +10 -0
  98. package/dist/cjs/type/decorator/api/route/discriminated/index.d.ts +1 -0
  99. package/dist/cjs/type/decorator/api/route/index.d.ts +2 -0
  100. package/dist/cjs/type/index.d.ts +1 -0
  101. package/dist/cjs/type/utility/api/discriminator/index.d.ts +1 -0
  102. package/dist/cjs/type/utility/api/discriminator/validate/config-properties.type.d.ts +8 -0
  103. package/dist/cjs/type/utility/api/discriminator/validate/index.d.ts +1 -0
  104. package/dist/cjs/type/utility/api/get-default-string-format-properties/bigint-string/index.d.ts +2 -0
  105. package/dist/cjs/type/utility/api/get-default-string-format-properties/bigint-string/options.type.d.ts +4 -0
  106. package/dist/cjs/type/utility/api/get-default-string-format-properties/bigint-string/sign/index.d.ts +2 -0
  107. package/dist/cjs/type/utility/api/get-default-string-format-properties/bigint-string/sign/properties.type.d.ts +2 -0
  108. package/dist/cjs/type/utility/api/get-default-string-format-properties/bigint-string/sign/type.d.ts +1 -0
  109. package/dist/cjs/type/utility/api/get-default-string-format-properties/customizer/index.d.ts +2 -0
  110. package/dist/cjs/type/utility/api/get-default-string-format-properties/customizer/map.type.d.ts +5 -0
  111. package/dist/cjs/type/utility/api/get-default-string-format-properties/customizer/type.d.ts +3 -0
  112. package/dist/cjs/type/utility/api/get-default-string-format-properties/index.d.ts +3 -0
  113. package/dist/cjs/type/utility/api/get-default-string-format-properties/options.type.d.ts +4 -0
  114. package/dist/cjs/type/utility/api/get-default-string-format-properties/parameters.type.d.ts +3 -0
  115. package/dist/cjs/type/utility/api/index.d.ts +2 -0
  116. package/dist/cjs/type/utility/index.d.ts +1 -1
  117. package/dist/cjs/utility/api/controller/apply/decorators.utility.d.ts +1 -1
  118. package/dist/cjs/utility/api/controller/apply/decorators.utility.js +1 -1
  119. package/dist/cjs/utility/api/controller/apply/metadata.utility.js +0 -1
  120. package/dist/cjs/utility/api/controller/apply/metadata.utility.js.map +1 -1
  121. package/dist/cjs/utility/api/controller/get/dto.utility.js +1 -0
  122. package/dist/cjs/utility/api/controller/get/dto.utility.js.map +1 -1
  123. package/dist/cjs/utility/api/controller/get-list/transform/filter.utility.d.ts +1 -1
  124. package/dist/cjs/utility/api/controller/get-list/transform/filter.utility.js +1 -1
  125. package/dist/cjs/utility/api/controller/get-list/transform/operation.utility.d.ts +2 -2
  126. package/dist/cjs/utility/api/controller/get-list/transform/operation.utility.js +2 -2
  127. package/dist/cjs/utility/api/controller/write/dto-swagger.utility.js +7 -3
  128. package/dist/cjs/utility/api/controller/write/dto-swagger.utility.js.map +1 -1
  129. package/dist/cjs/utility/api/discriminator/index.d.ts +1 -0
  130. package/dist/cjs/utility/api/discriminator/validate/config.utility.d.ts +7 -0
  131. package/dist/cjs/utility/api/discriminator/validate/config.utility.js +54 -0
  132. package/dist/cjs/utility/api/discriminator/validate/config.utility.js.map +1 -0
  133. package/dist/cjs/utility/api/discriminator/validate/index.d.ts +1 -0
  134. package/dist/cjs/utility/api/get-default-string-format-properties/bigint-string/apply-options.utility.d.ts +9 -0
  135. package/dist/cjs/utility/api/get-default-string-format-properties/bigint-string/apply-options.utility.js +20 -0
  136. package/dist/cjs/utility/api/get-default-string-format-properties/bigint-string/apply-options.utility.js.map +1 -0
  137. package/dist/cjs/utility/api/get-default-string-format-properties/bigint-string/index.d.ts +1 -0
  138. package/dist/cjs/utility/api/get-default-string-format-properties/customizer/apply.utility.d.ts +11 -0
  139. package/dist/cjs/utility/api/get-default-string-format-properties/customizer/apply.utility.js +20 -0
  140. package/dist/cjs/utility/api/get-default-string-format-properties/customizer/apply.utility.js.map +1 -0
  141. package/dist/cjs/utility/api/get-default-string-format-properties/customizer/index.d.ts +1 -0
  142. package/dist/cjs/utility/api/get-default-string-format-properties/index.d.ts +1 -0
  143. package/dist/cjs/utility/api/{get-default-string-format-properties.utility.d.ts → get-default-string-format-properties/utility.d.ts} +5 -2
  144. package/dist/cjs/utility/api/{get-default-string-format-properties.utility.js → get-default-string-format-properties/utility.js} +8 -5
  145. package/dist/cjs/utility/api/get-default-string-format-properties/utility.js.map +1 -0
  146. package/dist/cjs/utility/api/index.d.ts +2 -1
  147. package/dist/cjs/utility/api/route/apply-dto-metadata.utility.js +20 -6
  148. package/dist/cjs/utility/api/route/apply-dto-metadata.utility.js.map +1 -1
  149. package/dist/cjs/utility/api/route/discriminator/build-open-api-schema.utility.d.ts +9 -0
  150. package/dist/cjs/utility/api/route/discriminator/build-open-api-schema.utility.js +26 -0
  151. package/dist/cjs/utility/api/route/discriminator/build-open-api-schema.utility.js.map +1 -0
  152. package/dist/cjs/utility/api/route/discriminator/create-validation-failure.utility.d.ts +9 -0
  153. package/dist/cjs/utility/api/route/discriminator/create-validation-failure.utility.js +46 -0
  154. package/dist/cjs/utility/api/route/discriminator/create-validation-failure.utility.js.map +1 -0
  155. package/dist/cjs/utility/api/route/discriminator/index.d.ts +6 -0
  156. package/dist/cjs/utility/api/route/discriminator/is-dto-properties.utility.d.ts +7 -0
  157. package/dist/cjs/utility/api/route/discriminator/is-dto-properties.utility.js +13 -0
  158. package/dist/cjs/utility/api/route/discriminator/is-dto-properties.utility.js.map +1 -0
  159. package/dist/cjs/utility/api/route/discriminator/prepare-payload.utility.d.ts +8 -0
  160. package/dist/cjs/utility/api/route/discriminator/prepare-payload.utility.js +19 -0
  161. package/dist/cjs/utility/api/route/discriminator/prepare-payload.utility.js.map +1 -0
  162. package/dist/cjs/utility/api/route/discriminator/resolve-dto.utility.d.ts +10 -0
  163. package/dist/cjs/utility/api/route/discriminator/resolve-dto.utility.js +35 -0
  164. package/dist/cjs/utility/api/route/discriminator/resolve-dto.utility.js.map +1 -0
  165. package/dist/cjs/utility/api/route/discriminator/validate-dto-properties.utility.d.ts +8 -0
  166. package/dist/cjs/utility/api/route/discriminator/validate-dto-properties.utility.js +21 -0
  167. package/dist/cjs/utility/api/route/discriminator/validate-dto-properties.utility.js.map +1 -0
  168. package/dist/cjs/utility/api/route/dto/collect-with-registered-children.utility.d.ts +8 -0
  169. package/dist/cjs/utility/api/route/dto/collect-with-registered-children.utility.js +29 -0
  170. package/dist/cjs/utility/api/route/dto/collect-with-registered-children.utility.js.map +1 -0
  171. package/dist/cjs/utility/api/route/dto/index.d.ts +1 -0
  172. package/dist/cjs/utility/api/route/index.d.ts +4 -0
  173. package/dist/cjs/utility/api/route/response/project-relation.utility.js +16 -13
  174. package/dist/cjs/utility/api/route/response/project-relation.utility.js.map +1 -1
  175. package/dist/cjs/utility/api/route/response/serialize.utility.js +20 -0
  176. package/dist/cjs/utility/api/route/response/serialize.utility.js.map +1 -1
  177. package/dist/cjs/utility/api/route/validation/flatten-errors.utility.d.ts +8 -0
  178. package/dist/cjs/utility/api/route/validation/flatten-errors.utility.js +26 -0
  179. package/dist/cjs/utility/api/route/validation/flatten-errors.utility.js.map +1 -0
  180. package/dist/cjs/utility/api/route/validation/index.d.ts +1 -0
  181. package/dist/cjs/utility/authorization/scope-merge-where.utility.js +2 -2
  182. package/dist/cjs/utility/authorization/scope-merge-where.utility.js.map +1 -1
  183. package/dist/cjs/utility/database/typeorm/is/foreign-key-violation.utility.js +1 -4
  184. package/dist/cjs/utility/database/typeorm/is/foreign-key-violation.utility.js.map +1 -1
  185. package/dist/cjs/utility/database/typeorm/is/unique-violation.utility.js +1 -4
  186. package/dist/cjs/utility/database/typeorm/is/unique-violation.utility.js.map +1 -1
  187. package/dist/cjs/utility/dto/build-decorator.utility.js +1 -3
  188. package/dist/cjs/utility/dto/build-decorator.utility.js.map +1 -1
  189. package/dist/cjs/utility/dto/manual/property-metadata.utility.js +1 -1
  190. package/dist/cjs/utility/dto/manual/property-metadata.utility.js.map +1 -1
  191. package/dist/cjs/utility/generate-entity-information.utility.js +8 -15
  192. package/dist/cjs/utility/generate-entity-information.utility.js.map +1 -1
  193. package/dist/cjs/utility/index.d.ts +1 -1
  194. package/dist/cjs/utility/register-auto-dto-child.utility.d.ts +6 -0
  195. package/dist/cjs/utility/register-auto-dto-child.utility.js +30 -0
  196. package/dist/cjs/utility/register-auto-dto-child.utility.js.map +1 -1
  197. package/dist/cjs/validator/has/paired-custom-suffixes-fields.validator.js +1 -1
  198. package/dist/cjs/validator/has/paired-custom-suffixes-fields.validator.js.map +1 -1
  199. package/dist/cjs/validator/must-match-one-of-schemas.validator.d.ts +1 -2
  200. package/dist/cjs/validator/must-match-one-of-schemas.validator.js +4 -33
  201. package/dist/cjs/validator/must-match-one-of-schemas.validator.js.map +1 -1
  202. package/dist/esm/class/api/authorization/bootstrap-validation.service.class.js +2 -2
  203. package/dist/esm/class/api/authorization/bootstrap-validation.service.class.js.map +1 -1
  204. package/dist/esm/class/api/authorization/hook/permission/cache.class.js +1 -1
  205. package/dist/esm/class/api/authorization/hook/permission/cache.class.js.map +1 -1
  206. package/dist/esm/class/api/authorization/hook/permission/resolver.class.js +2 -2
  207. package/dist/esm/class/api/authorization/hook/permission/resolver.class.js.map +1 -1
  208. package/dist/esm/class/api/authorization/iam/attachment/cache.class.js +1 -1
  209. package/dist/esm/class/api/authorization/iam/attachment/cache.class.js.map +1 -1
  210. package/dist/esm/class/api/authorization/iam/attachment/resolver.class.js +3 -3
  211. package/dist/esm/class/api/authorization/iam/attachment/resolver.class.js.map +1 -1
  212. package/dist/esm/class/api/authorization/iam/document/cache.class.js +1 -1
  213. package/dist/esm/class/api/authorization/iam/document/cache.class.js.map +1 -1
  214. package/dist/esm/class/api/authorization/iam/document/resolver.class.js +2 -2
  215. package/dist/esm/class/api/authorization/iam/document/resolver.class.js.map +1 -1
  216. package/dist/esm/class/api/authorization/runtime.class.js +2 -2
  217. package/dist/esm/class/api/authorization/runtime.class.js.map +1 -1
  218. package/dist/esm/class/api/route-runtime.class.d.ts +1 -0
  219. package/dist/esm/class/api/route-runtime.class.js +41 -3
  220. package/dist/esm/class/api/route-runtime.class.js.map +1 -1
  221. package/dist/esm/constant/interface/api/property/default-string-format.constant.js +9 -0
  222. package/dist/esm/constant/interface/api/property/default-string-format.constant.js.map +1 -1
  223. package/dist/esm/constant/utility/api/get-default-string-format-properties/bigint-string/constant.d.ts +5 -0
  224. package/dist/esm/constant/utility/api/get-default-string-format-properties/bigint-string/constant.js +10 -0
  225. package/dist/esm/constant/utility/api/get-default-string-format-properties/bigint-string/constant.js.map +1 -0
  226. package/dist/esm/constant/utility/api/get-default-string-format-properties/bigint-string/index.d.ts +2 -0
  227. package/dist/esm/constant/utility/api/get-default-string-format-properties/bigint-string/sign/default.constant.d.ts +2 -0
  228. package/dist/esm/constant/utility/api/get-default-string-format-properties/bigint-string/sign/default.constant.js +4 -0
  229. package/dist/esm/constant/utility/api/get-default-string-format-properties/bigint-string/sign/default.constant.js.map +1 -0
  230. package/dist/esm/constant/utility/api/get-default-string-format-properties/bigint-string/sign/index.d.ts +2 -0
  231. package/dist/esm/constant/utility/api/get-default-string-format-properties/bigint-string/sign/properties.constant.d.ts +2 -0
  232. package/dist/esm/constant/utility/api/get-default-string-format-properties/bigint-string/sign/properties.constant.js +26 -0
  233. package/dist/esm/constant/utility/api/get-default-string-format-properties/bigint-string/sign/properties.constant.js.map +1 -0
  234. package/dist/esm/constant/utility/api/get-default-string-format-properties/constant.d.ts +9 -0
  235. package/dist/esm/constant/utility/api/get-default-string-format-properties/constant.js +10 -0
  236. package/dist/esm/constant/utility/api/get-default-string-format-properties/constant.js.map +1 -0
  237. package/dist/esm/constant/utility/api/get-default-string-format-properties/customizer/index.d.ts +1 -0
  238. package/dist/esm/constant/utility/api/get-default-string-format-properties/customizer/map.constant.d.ts +2 -0
  239. package/dist/esm/constant/utility/api/get-default-string-format-properties/customizer/map.constant.js +26 -0
  240. package/dist/esm/constant/utility/api/get-default-string-format-properties/customizer/map.constant.js.map +1 -0
  241. package/dist/esm/constant/utility/api/get-default-string-format-properties/index.d.ts +1 -0
  242. package/dist/esm/constant/utility/api/index.d.ts +1 -0
  243. package/dist/esm/constant/utility/index.d.ts +1 -0
  244. package/dist/esm/decorator/api/controller/observable.decorator.js +9 -3
  245. package/dist/esm/decorator/api/controller/observable.decorator.js.map +1 -1
  246. package/dist/esm/decorator/api/controller/securable.decorator.js +9 -3
  247. package/dist/esm/decorator/api/controller/securable.decorator.js.map +1 -1
  248. package/dist/esm/decorator/api/method.decorator.js +31 -8
  249. package/dist/esm/decorator/api/method.decorator.js.map +1 -1
  250. package/dist/esm/decorator/api/property/boolean.decorator.d.ts +1 -1
  251. package/dist/esm/decorator/api/property/boolean.decorator.js +4 -5
  252. package/dist/esm/decorator/api/property/boolean.decorator.js.map +1 -1
  253. package/dist/esm/decorator/api/property/date.decorator.d.ts +1 -1
  254. package/dist/esm/decorator/api/property/date.decorator.js +4 -5
  255. package/dist/esm/decorator/api/property/date.decorator.js.map +1 -1
  256. package/dist/esm/decorator/api/property/enum.decorator.d.ts +1 -1
  257. package/dist/esm/decorator/api/property/enum.decorator.js +4 -5
  258. package/dist/esm/decorator/api/property/enum.decorator.js.map +1 -1
  259. package/dist/esm/decorator/api/property/number.decorator.d.ts +1 -1
  260. package/dist/esm/decorator/api/property/number.decorator.js +4 -5
  261. package/dist/esm/decorator/api/property/number.decorator.js.map +1 -1
  262. package/dist/esm/decorator/api/property/object.decorator.d.ts +1 -1
  263. package/dist/esm/decorator/api/property/object.decorator.js +38 -6
  264. package/dist/esm/decorator/api/property/object.decorator.js.map +1 -1
  265. package/dist/esm/decorator/api/property/string.decorator.d.ts +1 -1
  266. package/dist/esm/decorator/api/property/string.decorator.js +8 -6
  267. package/dist/esm/decorator/api/property/string.decorator.js.map +1 -1
  268. package/dist/esm/decorator/api/property/uuid.decorator.d.ts +1 -1
  269. package/dist/esm/decorator/api/property/uuid.decorator.js +4 -5
  270. package/dist/esm/decorator/api/property/uuid.decorator.js.map +1 -1
  271. package/dist/esm/decorator/api/route-custom.decorator.js +1 -0
  272. package/dist/esm/decorator/api/route-custom.decorator.js.map +1 -1
  273. package/dist/esm/decorator/api/service/decorator.d.ts +1 -1
  274. package/dist/esm/decorator/api/service/decorator.js +1 -1
  275. package/dist/esm/decorator/api/service/observable.decorator.js +9 -3
  276. package/dist/esm/decorator/api/service/observable.decorator.js.map +1 -1
  277. package/dist/esm/enum/decorator/api/property/data-type.enum.d.ts +1 -0
  278. package/dist/esm/enum/decorator/api/property/data-type.enum.js +1 -0
  279. package/dist/esm/enum/decorator/api/property/data-type.enum.js.map +1 -1
  280. package/dist/esm/enum/decorator/api/property/string-type.enum.d.ts +1 -0
  281. package/dist/esm/enum/decorator/api/property/string-type.enum.js +1 -0
  282. package/dist/esm/enum/decorator/api/property/string-type.enum.js.map +1 -1
  283. package/dist/esm/factory/api-controller.factory.js +4 -0
  284. package/dist/esm/factory/api-controller.factory.js.map +1 -1
  285. package/dist/esm/index.js +13 -2
  286. package/dist/esm/index.js.map +1 -1
  287. package/dist/esm/interceptor/correlation-id-response-body.interceptor.js +2 -8
  288. package/dist/esm/interceptor/correlation-id-response-body.interceptor.js.map +1 -1
  289. package/dist/esm/interface/decorator/api/route/response/properties.interface.d.ts +3 -1
  290. package/dist/esm/interface/decorator/api/route/runtime-properties.interface.d.ts +2 -1
  291. package/dist/esm/module/api/authorization.module.js +1 -1
  292. package/dist/esm/module/api/authorization.module.js.map +1 -1
  293. package/dist/esm/type/decorator/api/index.d.ts +1 -0
  294. package/dist/esm/type/decorator/api/property/default/string/format/type.d.ts +1 -1
  295. package/dist/esm/type/decorator/api/route/custom/dto-properties.type.d.ts +8 -0
  296. package/dist/esm/type/decorator/api/route/custom/index.d.ts +1 -0
  297. package/dist/esm/type/decorator/api/route/discriminated/dto-properties.type.d.ts +10 -0
  298. package/dist/esm/type/decorator/api/route/discriminated/index.d.ts +1 -0
  299. package/dist/esm/type/decorator/api/route/index.d.ts +2 -0
  300. package/dist/esm/type/index.d.ts +1 -0
  301. package/dist/esm/type/utility/api/discriminator/index.d.ts +1 -0
  302. package/dist/esm/type/utility/api/discriminator/validate/config-properties.type.d.ts +8 -0
  303. package/dist/esm/type/utility/api/discriminator/validate/index.d.ts +1 -0
  304. package/dist/esm/type/utility/api/get-default-string-format-properties/bigint-string/index.d.ts +2 -0
  305. package/dist/esm/type/utility/api/get-default-string-format-properties/bigint-string/options.type.d.ts +4 -0
  306. package/dist/esm/type/utility/api/get-default-string-format-properties/bigint-string/sign/index.d.ts +2 -0
  307. package/dist/esm/type/utility/api/get-default-string-format-properties/bigint-string/sign/properties.type.d.ts +2 -0
  308. package/dist/esm/type/utility/api/get-default-string-format-properties/bigint-string/sign/type.d.ts +1 -0
  309. package/dist/esm/type/utility/api/get-default-string-format-properties/customizer/index.d.ts +2 -0
  310. package/dist/esm/type/utility/api/get-default-string-format-properties/customizer/map.type.d.ts +5 -0
  311. package/dist/esm/type/utility/api/get-default-string-format-properties/customizer/type.d.ts +3 -0
  312. package/dist/esm/type/utility/api/get-default-string-format-properties/index.d.ts +3 -0
  313. package/dist/esm/type/utility/api/get-default-string-format-properties/options.type.d.ts +4 -0
  314. package/dist/esm/type/utility/api/get-default-string-format-properties/parameters.type.d.ts +3 -0
  315. package/dist/esm/type/utility/api/index.d.ts +2 -0
  316. package/dist/esm/type/utility/index.d.ts +1 -1
  317. package/dist/esm/utility/api/controller/apply/decorators.utility.d.ts +1 -1
  318. package/dist/esm/utility/api/controller/apply/decorators.utility.js +1 -1
  319. package/dist/esm/utility/api/controller/apply/metadata.utility.js +0 -1
  320. package/dist/esm/utility/api/controller/apply/metadata.utility.js.map +1 -1
  321. package/dist/esm/utility/api/controller/get/dto.utility.js +1 -0
  322. package/dist/esm/utility/api/controller/get/dto.utility.js.map +1 -1
  323. package/dist/esm/utility/api/controller/get-list/transform/filter.utility.d.ts +1 -1
  324. package/dist/esm/utility/api/controller/get-list/transform/filter.utility.js +1 -1
  325. package/dist/esm/utility/api/controller/get-list/transform/operation.utility.d.ts +2 -2
  326. package/dist/esm/utility/api/controller/get-list/transform/operation.utility.js +2 -2
  327. package/dist/esm/utility/api/controller/write/dto-swagger.utility.js +7 -3
  328. package/dist/esm/utility/api/controller/write/dto-swagger.utility.js.map +1 -1
  329. package/dist/esm/utility/api/discriminator/index.d.ts +1 -0
  330. package/dist/esm/utility/api/discriminator/validate/config.utility.d.ts +7 -0
  331. package/dist/esm/utility/api/discriminator/validate/config.utility.js +52 -0
  332. package/dist/esm/utility/api/discriminator/validate/config.utility.js.map +1 -0
  333. package/dist/esm/utility/api/discriminator/validate/index.d.ts +1 -0
  334. package/dist/esm/utility/api/get-default-string-format-properties/bigint-string/apply-options.utility.d.ts +9 -0
  335. package/dist/esm/utility/api/get-default-string-format-properties/bigint-string/apply-options.utility.js +18 -0
  336. package/dist/esm/utility/api/get-default-string-format-properties/bigint-string/apply-options.utility.js.map +1 -0
  337. package/dist/esm/utility/api/get-default-string-format-properties/bigint-string/index.d.ts +1 -0
  338. package/dist/esm/utility/api/get-default-string-format-properties/customizer/apply.utility.d.ts +11 -0
  339. package/dist/esm/utility/api/get-default-string-format-properties/customizer/apply.utility.js +18 -0
  340. package/dist/esm/utility/api/get-default-string-format-properties/customizer/apply.utility.js.map +1 -0
  341. package/dist/esm/utility/api/get-default-string-format-properties/customizer/index.d.ts +1 -0
  342. package/dist/esm/utility/api/get-default-string-format-properties/index.d.ts +1 -0
  343. package/dist/esm/utility/api/{get-default-string-format-properties.utility.d.ts → get-default-string-format-properties/utility.d.ts} +5 -2
  344. package/dist/esm/utility/api/{get-default-string-format-properties.utility.js → get-default-string-format-properties/utility.js} +8 -5
  345. package/dist/esm/utility/api/get-default-string-format-properties/utility.js.map +1 -0
  346. package/dist/esm/utility/api/index.d.ts +2 -1
  347. package/dist/esm/utility/api/route/apply-dto-metadata.utility.js +21 -7
  348. package/dist/esm/utility/api/route/apply-dto-metadata.utility.js.map +1 -1
  349. package/dist/esm/utility/api/route/discriminator/build-open-api-schema.utility.d.ts +9 -0
  350. package/dist/esm/utility/api/route/discriminator/build-open-api-schema.utility.js +24 -0
  351. package/dist/esm/utility/api/route/discriminator/build-open-api-schema.utility.js.map +1 -0
  352. package/dist/esm/utility/api/route/discriminator/create-validation-failure.utility.d.ts +9 -0
  353. package/dist/esm/utility/api/route/discriminator/create-validation-failure.utility.js +44 -0
  354. package/dist/esm/utility/api/route/discriminator/create-validation-failure.utility.js.map +1 -0
  355. package/dist/esm/utility/api/route/discriminator/index.d.ts +6 -0
  356. package/dist/esm/utility/api/route/discriminator/is-dto-properties.utility.d.ts +7 -0
  357. package/dist/esm/utility/api/route/discriminator/is-dto-properties.utility.js +11 -0
  358. package/dist/esm/utility/api/route/discriminator/is-dto-properties.utility.js.map +1 -0
  359. package/dist/esm/utility/api/route/discriminator/prepare-payload.utility.d.ts +8 -0
  360. package/dist/esm/utility/api/route/discriminator/prepare-payload.utility.js +17 -0
  361. package/dist/esm/utility/api/route/discriminator/prepare-payload.utility.js.map +1 -0
  362. package/dist/esm/utility/api/route/discriminator/resolve-dto.utility.d.ts +10 -0
  363. package/dist/esm/utility/api/route/discriminator/resolve-dto.utility.js +33 -0
  364. package/dist/esm/utility/api/route/discriminator/resolve-dto.utility.js.map +1 -0
  365. package/dist/esm/utility/api/route/discriminator/validate-dto-properties.utility.d.ts +8 -0
  366. package/dist/esm/utility/api/route/discriminator/validate-dto-properties.utility.js +19 -0
  367. package/dist/esm/utility/api/route/discriminator/validate-dto-properties.utility.js.map +1 -0
  368. package/dist/esm/utility/api/route/dto/collect-with-registered-children.utility.d.ts +8 -0
  369. package/dist/esm/utility/api/route/dto/collect-with-registered-children.utility.js +27 -0
  370. package/dist/esm/utility/api/route/dto/collect-with-registered-children.utility.js.map +1 -0
  371. package/dist/esm/utility/api/route/dto/index.d.ts +1 -0
  372. package/dist/esm/utility/api/route/index.d.ts +4 -0
  373. package/dist/esm/utility/api/route/response/project-relation.utility.js +16 -13
  374. package/dist/esm/utility/api/route/response/project-relation.utility.js.map +1 -1
  375. package/dist/esm/utility/api/route/response/serialize.utility.js +20 -0
  376. package/dist/esm/utility/api/route/response/serialize.utility.js.map +1 -1
  377. package/dist/esm/utility/api/route/validation/flatten-errors.utility.d.ts +8 -0
  378. package/dist/esm/utility/api/route/validation/flatten-errors.utility.js +24 -0
  379. package/dist/esm/utility/api/route/validation/flatten-errors.utility.js.map +1 -0
  380. package/dist/esm/utility/api/route/validation/index.d.ts +1 -0
  381. package/dist/esm/utility/authorization/scope-merge-where.utility.js +2 -2
  382. package/dist/esm/utility/authorization/scope-merge-where.utility.js.map +1 -1
  383. package/dist/esm/utility/database/typeorm/is/foreign-key-violation.utility.js +1 -4
  384. package/dist/esm/utility/database/typeorm/is/foreign-key-violation.utility.js.map +1 -1
  385. package/dist/esm/utility/database/typeorm/is/unique-violation.utility.js +1 -4
  386. package/dist/esm/utility/database/typeorm/is/unique-violation.utility.js.map +1 -1
  387. package/dist/esm/utility/dto/build-decorator.utility.js +1 -3
  388. package/dist/esm/utility/dto/build-decorator.utility.js.map +1 -1
  389. package/dist/esm/utility/dto/manual/property-metadata.utility.js +1 -1
  390. package/dist/esm/utility/dto/manual/property-metadata.utility.js.map +1 -1
  391. package/dist/esm/utility/generate-entity-information.utility.js +8 -15
  392. package/dist/esm/utility/generate-entity-information.utility.js.map +1 -1
  393. package/dist/esm/utility/index.d.ts +1 -1
  394. package/dist/esm/utility/register-auto-dto-child.utility.d.ts +6 -0
  395. package/dist/esm/utility/register-auto-dto-child.utility.js +30 -1
  396. package/dist/esm/utility/register-auto-dto-child.utility.js.map +1 -1
  397. package/dist/esm/validator/has/paired-custom-suffixes-fields.validator.js +1 -1
  398. package/dist/esm/validator/has/paired-custom-suffixes-fields.validator.js.map +1 -1
  399. package/dist/esm/validator/must-match-one-of-schemas.validator.d.ts +1 -2
  400. package/dist/esm/validator/must-match-one-of-schemas.validator.js +4 -33
  401. package/dist/esm/validator/must-match-one-of-schemas.validator.js.map +1 -1
  402. package/package.json +31 -30
  403. package/dist/cjs/utility/api/get-default-string-format-properties.utility.js.map +0 -1
  404. package/dist/esm/utility/api/get-default-string-format-properties.utility.js.map +0 -1
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ var constants_js = require('@nestjs/swagger/dist/constants.js');
4
+ var exception_utility = require('../../../error/exception.utility.js');
5
+
6
+ /**
7
+ * Validates discriminator config against the DTO variants used to build Swagger and runtime transforms.
8
+ * @param {TApiDiscriminatorValidateConfigProperties} properties - Discriminator validation properties.
9
+ * @returns {void}
10
+ */
11
+ function ApiDiscriminatorValidateConfig(properties) {
12
+ const errors = [];
13
+ if (!Array.isArray(properties.variants) || properties.variants.length === 0) {
14
+ errors.push("type must contain at least one DTO class");
15
+ }
16
+ if (!properties.variants.every((variant) => typeof variant === "function")) {
17
+ errors.push("type must contain only DTO classes");
18
+ }
19
+ if (!properties.discriminator.propertyName || typeof properties.discriminator.propertyName !== "string") {
20
+ errors.push("discriminator.propertyName must be a non-empty string");
21
+ }
22
+ if (!properties.discriminator.mapping || typeof properties.discriminator.mapping !== "object" || Object.keys(properties.discriminator.mapping).length === 0) {
23
+ errors.push("discriminator.mapping must contain at least one variant");
24
+ }
25
+ const mappedVariants = Object.values(properties.discriminator.mapping);
26
+ const apiModelPropertiesMetadataKey = constants_js.DECORATORS.API_MODEL_PROPERTIES;
27
+ for (const [key, mappedType] of Object.entries(properties.discriminator.mapping)) {
28
+ if (typeof mappedType !== "function") {
29
+ errors.push(`discriminator.mapping.${key} must be a DTO class`);
30
+ continue;
31
+ }
32
+ if (!properties.variants.includes(mappedType)) {
33
+ errors.push(`discriminator.mapping.${key} references DTO ${mappedType.name || "Anonymous"} that is not listed in type`);
34
+ }
35
+ }
36
+ for (const variant of properties.variants) {
37
+ if (!mappedVariants.includes(variant)) {
38
+ errors.push(`type contains DTO ${variant.name || "Anonymous"} that is not referenced by discriminator.mapping`);
39
+ }
40
+ if (properties.shouldRequireDeclaredDiscriminatorProperty && typeof variant === "function" && typeof properties.discriminator.propertyName === "string") {
41
+ const variantPrototype = variant.prototype;
42
+ const hasDiscriminatorPropertyMetadata = Boolean(Reflect.getMetadata(apiModelPropertiesMetadataKey, variantPrototype, properties.discriminator.propertyName));
43
+ if (!hasDiscriminatorPropertyMetadata) {
44
+ errors.push(`DTO ${variant.name || "Anonymous"} must declare discriminator property '${properties.discriminator.propertyName}'`);
45
+ }
46
+ }
47
+ }
48
+ if (errors.length > 0) {
49
+ throw exception_utility.ErrorException(`${properties.context} discriminator config error: ${errors.join("\n")}`);
50
+ }
51
+ }
52
+
53
+ exports.ApiDiscriminatorValidateConfig = ApiDiscriminatorValidateConfig;
54
+ //# sourceMappingURL=config.utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.utility.js","sources":["../../../../../../../src/utility/api/discriminator/validate/config.utility.ts"],"sourcesContent":[null],"names":["DECORATORS","ErrorException"],"mappings":";;;;;AAOA;;;;AAIG;AACG,SAAU,8BAA8B,CAAC,UAAqD,EAAA;IACnG,MAAM,MAAM,GAAkB,EAAE;AAEhC,IAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5E,QAAA,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC;IACxD;AAEA,IAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAsB,KAAc,OAAO,OAAO,KAAK,UAAU,CAAC,EAAE;AACnG,QAAA,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC;IAClD;AAEA,IAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,IAAI,OAAO,UAAU,CAAC,aAAa,CAAC,YAAY,KAAK,QAAQ,EAAE;AACxG,QAAA,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC;IACrE;AAEA,IAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,IAAI,OAAO,UAAU,CAAC,aAAa,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5J,QAAA,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC;IACvE;AAEA,IAAA,MAAM,cAAc,GAAqC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC;AACxG,IAAA,MAAM,6BAA6B,GAAWA,uBAAU,CAAC,oBAAoB;AAE7E,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;AACjF,QAAA,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;AACrC,YAAA,MAAM,CAAC,IAAI,CAAC,yBAAyB,GAAG,CAAA,oBAAA,CAAsB,CAAC;YAE/D;QACD;QAEA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AAC9C,YAAA,MAAM,CAAC,IAAI,CAAC,CAAA,sBAAA,EAAyB,GAAG,CAAA,gBAAA,EAAmB,UAAU,CAAC,IAAI,IAAI,WAAW,CAAA,2BAAA,CAA6B,CAAC;QACxH;IACD;AAEA,IAAA,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE;QAC1C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACtC,MAAM,CAAC,IAAI,CAAC,CAAA,kBAAA,EAAqB,OAAO,CAAC,IAAI,IAAI,WAAW,CAAA,gDAAA,CAAkD,CAAC;QAChH;AAEA,QAAA,IAAI,UAAU,CAAC,0CAA0C,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,UAAU,CAAC,aAAa,CAAC,YAAY,KAAK,QAAQ,EAAE;AACxJ,YAAA,MAAM,gBAAgB,GAAW,OAAO,CAAC,SAAmB;AAC5D,YAAA,MAAM,gCAAgC,GAAY,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,6BAA6B,EAAE,gBAAgB,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YAEtK,IAAI,CAAC,gCAAgC,EAAE;AACtC,gBAAA,MAAM,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,OAAO,CAAC,IAAI,IAAI,WAAW,CAAA,sCAAA,EAAyC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAA,CAAA,CAAG,CAAC;YACjI;QACD;IACD;AAEA,IAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,QAAA,MAAMC,gCAAc,CAAC,CAAA,EAAG,UAAU,CAAC,OAAO,CAAA,6BAAA,EAAgC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;IAC/F;AACD;;;;"}
@@ -0,0 +1 @@
1
+ export { ApiDiscriminatorValidateConfig } from './config.utility';
@@ -0,0 +1,9 @@
1
+ import { TApiPropertyDefaultStringFormatProperties } from '../../../../type/decorator/api/property';
2
+ import { TApiGetDefaultStringFormatPropertiesBigIntStringOptions } from '../../../../type/utility/api';
3
+ /**
4
+ * Applies bigint string-specific options to default string format properties.
5
+ * @param {TApiPropertyDefaultStringFormatProperties} properties - Base properties cloned from defaults.
6
+ * @param {TApiGetDefaultStringFormatPropertiesBigIntStringOptions | undefined} options - Bigint string-specific options.
7
+ * @returns {TApiPropertyDefaultStringFormatProperties} Properties adjusted for bigint string options.
8
+ */
9
+ export declare function ApplyBigIntStringGetDefaultStringFormatPropertiesOptions(properties: TApiPropertyDefaultStringFormatProperties, options: TApiGetDefaultStringFormatPropertiesBigIntStringOptions | undefined): TApiPropertyDefaultStringFormatProperties;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var constant = require('../../../../constant/utility/api/get-default-string-format-properties/bigint-string/constant.js');
4
+
5
+ /**
6
+ * Applies bigint string-specific options to default string format properties.
7
+ * @param {TApiPropertyDefaultStringFormatProperties} properties - Base properties cloned from defaults.
8
+ * @param {TApiGetDefaultStringFormatPropertiesBigIntStringOptions | undefined} options - Bigint string-specific options.
9
+ * @returns {TApiPropertyDefaultStringFormatProperties} Properties adjusted for bigint string options.
10
+ */
11
+ function ApplyBigIntStringGetDefaultStringFormatPropertiesOptions(properties, options) {
12
+ const sign = options?.sign ?? constant.BIGINT_STRING_GET_DEFAULT_STRING_FORMAT_PROPERTIES_API_UTILITY_CONSTANT.DEFAULT_SIGN;
13
+ return {
14
+ ...properties,
15
+ ...constant.BIGINT_STRING_GET_DEFAULT_STRING_FORMAT_PROPERTIES_API_UTILITY_CONSTANT.SIGN_PROPERTIES[sign],
16
+ };
17
+ }
18
+
19
+ exports.ApplyBigIntStringGetDefaultStringFormatPropertiesOptions = ApplyBigIntStringGetDefaultStringFormatPropertiesOptions;
20
+ //# sourceMappingURL=apply-options.utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-options.utility.js","sources":["../../../../../../../src/utility/api/get-default-string-format-properties/bigint-string/apply-options.utility.ts"],"sourcesContent":[null],"names":["BIGINT_STRING_GET_DEFAULT_STRING_FORMAT_PROPERTIES_API_UTILITY_CONSTANT"],"mappings":";;;;AAKA;;;;;AAKG;AACG,SAAU,wDAAwD,CAAC,UAAqD,EAAE,OAA4E,EAAA;IAC3M,MAAM,IAAI,GAAyD,OAAO,EAAE,IAAI,IAAIA,gFAAuE,CAAC,YAAY;IAExK,OAAO;AACN,QAAA,GAAG,UAAU;AACb,QAAA,GAAGA,gFAAuE,CAAC,eAAe,CAAC,IAAI,CAAC;KAChG;AACF;;;;"}
@@ -0,0 +1 @@
1
+ export { ApplyBigIntStringGetDefaultStringFormatPropertiesOptions } from './apply-options.utility';
@@ -0,0 +1,11 @@
1
+ import { TApiPropertyDefaultStringFormat, TApiPropertyDefaultStringFormatProperties } from '../../../../type/decorator/api/property';
2
+ import { TApiGetDefaultStringFormatPropertiesParameters } from '../../../../type/utility/api';
3
+ /**
4
+ * Applies format-specific customizations through the registered customizer map.
5
+ * @param {TFormat} format - Default string format.
6
+ * @param {TApiPropertyDefaultStringFormatProperties} properties - Base properties cloned from defaults.
7
+ * @param {TApiGetDefaultStringFormatPropertiesParameters<TFormat>} parameters - Optional format-specific parameters.
8
+ * @returns {TApiPropertyDefaultStringFormatProperties} Customized properties when a customizer exists.
9
+ * @template TFormat - Default string format type.
10
+ */
11
+ export declare function ApplyGetDefaultStringFormatPropertiesCustomizer<const TFormat extends TApiPropertyDefaultStringFormat>(format: TFormat, properties: TApiPropertyDefaultStringFormatProperties, ...parameters: TApiGetDefaultStringFormatPropertiesParameters<TFormat>): TApiPropertyDefaultStringFormatProperties;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var constant = require('../../../../constant/utility/api/get-default-string-format-properties/constant.js');
4
+
5
+ /**
6
+ * Applies format-specific customizations through the registered customizer map.
7
+ * @param {TFormat} format - Default string format.
8
+ * @param {TApiPropertyDefaultStringFormatProperties} properties - Base properties cloned from defaults.
9
+ * @param {TApiGetDefaultStringFormatPropertiesParameters<TFormat>} parameters - Optional format-specific parameters.
10
+ * @returns {TApiPropertyDefaultStringFormatProperties} Customized properties when a customizer exists.
11
+ * @template TFormat - Default string format type.
12
+ */
13
+ function ApplyGetDefaultStringFormatPropertiesCustomizer(format, properties, ...parameters) {
14
+ const customizer = constant.GET_DEFAULT_STRING_FORMAT_PROPERTIES_API_UTILITY_CONSTANT.CUSTOMIZER_MAP[format];
15
+ const [options] = parameters;
16
+ return customizer?.(properties, options) ?? properties;
17
+ }
18
+
19
+ exports.ApplyGetDefaultStringFormatPropertiesCustomizer = ApplyGetDefaultStringFormatPropertiesCustomizer;
20
+ //# sourceMappingURL=apply.utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.utility.js","sources":["../../../../../../../src/utility/api/get-default-string-format-properties/customizer/apply.utility.ts"],"sourcesContent":[null],"names":["GET_DEFAULT_STRING_FORMAT_PROPERTIES_API_UTILITY_CONSTANT"],"mappings":";;;;AAMA;;;;;;;AAOG;AACG,SAAU,+CAA+C,CAAwD,MAAe,EAAE,UAAqD,EAAE,GAAG,UAAmE,EAAA;IACpQ,MAAM,UAAU,GAAwEA,kEAAyD,CAAC,cAAc,CAAC,MAAM,CAAC;AACxK,IAAA,MAAM,CAAC,OAAO,CAAC,GAA4D,UAAU;IAErF,OAAO,UAAU,GAAG,UAAU,EAAE,OAAO,CAAC,IAAI,UAAU;AACvD;;;;"}
@@ -0,0 +1 @@
1
+ export { ApplyGetDefaultStringFormatPropertiesCustomizer } from './apply.utility';
@@ -0,0 +1 @@
1
+ export { GetDefaultStringFormatProperties } from './utility';
@@ -1,9 +1,11 @@
1
- import { TApiPropertyDefaultStringFormat, TApiPropertyDefaultStringFormatProperties } from '../../type/decorator/api/property';
1
+ import { TApiPropertyDefaultStringFormat, TApiPropertyDefaultStringFormatProperties } from '../../../type/decorator/api/property';
2
+ import { TApiGetDefaultStringFormatPropertiesParameters } from '../../../type/utility/api';
2
3
  /**
3
4
  * Returns default format properties for supported string types (EMAIL, IP, URL, UUID).
4
5
  * This utility provides standard validation rules including pattern, length constraints,
5
6
  * example values and descriptions for common string formats.
6
7
  * @param {TApiPropertyDefaultStringFormat} format - The string format type (EMAIL, IP, URL, or UUID)
8
+ * @param {TApiGetDefaultStringFormatPropertiesParameters<TFormat>} parameters - Optional format-specific settings.
7
9
  * @returns {TApiPropertyDefaultStringFormatProperties} Default properties for the specified format
8
10
  * @example
9
11
  * ```typescript
@@ -17,5 +19,6 @@ import { TApiPropertyDefaultStringFormat, TApiPropertyDefaultStringFormatPropert
17
19
  * // pattern: "/^([a-zA-Z0-9_\\-.+])+@([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}$/"
18
20
  * // }
19
21
  * ```
22
+ * @template TFormat - Default string format type.
20
23
  */
21
- export declare function GetDefaultStringFormatProperties(format: TApiPropertyDefaultStringFormat): TApiPropertyDefaultStringFormatProperties;
24
+ export declare function GetDefaultStringFormatProperties<const TFormat extends TApiPropertyDefaultStringFormat>(format: TFormat, ...parameters: TApiGetDefaultStringFormatPropertiesParameters<TFormat>): TApiPropertyDefaultStringFormatProperties;
@@ -1,13 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var defaultStringFormat_constant = require('../../constant/interface/api/property/default-string-format.constant.js');
3
+ var defaultStringFormat_constant = require('../../../constant/interface/api/property/default-string-format.constant.js');
4
4
  var cloneDeep = require('lodash/cloneDeep.js');
5
+ var apply_utility = require('./customizer/apply.utility.js');
5
6
 
6
7
  /**
7
8
  * Returns default format properties for supported string types (EMAIL, IP, URL, UUID).
8
9
  * This utility provides standard validation rules including pattern, length constraints,
9
10
  * example values and descriptions for common string formats.
10
11
  * @param {TApiPropertyDefaultStringFormat} format - The string format type (EMAIL, IP, URL, or UUID)
12
+ * @param {TApiGetDefaultStringFormatPropertiesParameters<TFormat>} parameters - Optional format-specific settings.
11
13
  * @returns {TApiPropertyDefaultStringFormatProperties} Default properties for the specified format
12
14
  * @example
13
15
  * ```typescript
@@ -21,11 +23,12 @@ var cloneDeep = require('lodash/cloneDeep.js');
21
23
  * // pattern: "/^([a-zA-Z0-9_\\-.+])+@([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}$/"
22
24
  * // }
23
25
  * ```
26
+ * @template TFormat - Default string format type.
24
27
  */
25
- function GetDefaultStringFormatProperties(format) {
26
- const properties = defaultStringFormat_constant.DEFAULT_STRING_FORMAT_PROPERTY_API_INTERFACE_CONSTANT.DEFAULT_FORMAT_PROPERTIES[format];
27
- return cloneDeep(properties);
28
+ function GetDefaultStringFormatProperties(format, ...parameters) {
29
+ const properties = cloneDeep(defaultStringFormat_constant.DEFAULT_STRING_FORMAT_PROPERTY_API_INTERFACE_CONSTANT.DEFAULT_FORMAT_PROPERTIES[format]);
30
+ return apply_utility.ApplyGetDefaultStringFormatPropertiesCustomizer(format, properties, ...parameters);
28
31
  }
29
32
 
30
33
  exports.GetDefaultStringFormatProperties = GetDefaultStringFormatProperties;
31
- //# sourceMappingURL=get-default-string-format-properties.utility.js.map
34
+ //# sourceMappingURL=utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility.js","sources":["../../../../../../src/utility/api/get-default-string-format-properties/utility.ts"],"sourcesContent":[null],"names":["DEFAULT_STRING_FORMAT_PROPERTY_API_INTERFACE_CONSTANT","ApplyGetDefaultStringFormatPropertiesCustomizer"],"mappings":";;;;;;AAQA;;;;;;;;;;;;;;;;;;;;AAoBG;SACa,gCAAgC,CAAwD,MAAe,EAAE,GAAG,UAAmE,EAAA;IAC9L,MAAM,UAAU,GAA8C,SAAS,CAACA,kFAAqD,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAEhK,OAAOC,6DAA+C,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;AAC1F;;;;"}
@@ -1,4 +1,5 @@
1
1
  export * from './controller';
2
+ export * from './discriminator';
2
3
  export { FilterOrderByFromEntity } from './filter-order-by-from-entity.utility';
3
- export { GetDefaultStringFormatProperties } from './get-default-string-format-properties.utility';
4
+ export * from './get-default-string-format-properties';
4
5
  export * from './route';
@@ -23,6 +23,10 @@ var constants_js = require('@nestjs/common/constants.js');
23
23
  var routeParamtypes_enum_js = require('@nestjs/common/enums/route-paramtypes.enum.js');
24
24
  var swagger = require('@nestjs/swagger');
25
25
  var dto_utility = require('../controller/get/dto.utility.js');
26
+ var buildOpenApiSchema_utility = require('./discriminator/build-open-api-schema.utility.js');
27
+ var isDtoProperties_utility = require('./discriminator/is-dto-properties.utility.js');
28
+ require('@nestjs/swagger/dist/constants.js');
29
+ var collectWithRegisteredChildren_utility = require('./dto/collect-with-registered-children.utility.js');
26
30
  var generateEntityInformation_utility = require('../../generate-entity-information.utility.js');
27
31
 
28
32
  /**
@@ -37,12 +41,14 @@ var generateEntityInformation_utility = require('../../generate-entity-informati
37
41
  */
38
42
  function ApiRouteApplyDtoMetadata(target, propertyKey, metadata, runtimeProperties, descriptor) {
39
43
  const bodyDto = resolveRequestDto(metadata, runtimeProperties, dtoType_enum.EApiDtoType.BODY);
40
- const parametersDto = resolveRequestDto(metadata, runtimeProperties, dtoType_enum.EApiDtoType.PARAMETERS);
41
- const queryDto = resolveRequestDto(metadata, runtimeProperties, dtoType_enum.EApiDtoType.QUERY);
44
+ const parametersDtoConfig = resolveRequestDto(metadata, runtimeProperties, dtoType_enum.EApiDtoType.PARAMETERS);
45
+ const queryDtoConfig = resolveRequestDto(metadata, runtimeProperties, dtoType_enum.EApiDtoType.QUERY);
46
+ const parametersDto = isDtoProperties_utility.ApiRouteIsDiscriminatedDtoProperties(parametersDtoConfig) ? undefined : parametersDtoConfig;
47
+ const queryDto = isDtoProperties_utility.ApiRouteIsDiscriminatedDtoProperties(queryDtoConfig) ? undefined : queryDtoConfig;
42
48
  const routeArgumentsMetadata = Reflect.getMetadata(constants_js.ROUTE_ARGS_METADATA, target.constructor, propertyKey);
43
49
  const parameterTypes = [...(Reflect.getMetadata(constants_js.PARAMTYPES_METADATA, target, propertyKey) ?? [])];
44
50
  for (const { dto, parameterType } of [
45
- { dto: bodyDto, parameterType: routeParamtypes_enum_js.RouteParamtypes.BODY },
51
+ { dto: isDtoProperties_utility.ApiRouteIsDiscriminatedDtoProperties(bodyDto) ? Object : bodyDto, parameterType: routeParamtypes_enum_js.RouteParamtypes.BODY },
46
52
  { dto: parametersDto, parameterType: routeParamtypes_enum_js.RouteParamtypes.PARAM },
47
53
  { dto: queryDto, parameterType: routeParamtypes_enum_js.RouteParamtypes.QUERY },
48
54
  ]) {
@@ -59,11 +65,19 @@ function ApiRouteApplyDtoMetadata(target, propertyKey, metadata, runtimeProperti
59
65
  }
60
66
  const requestDtos = [];
61
67
  for (const dto of [bodyDto, parametersDto, queryDto]) {
62
- if (dto) {
63
- requestDtos.push(dto);
68
+ if (isDtoProperties_utility.ApiRouteIsDiscriminatedDtoProperties(dto)) {
69
+ collectWithRegisteredChildren_utility.ApiRouteCollectDtoWithRegisteredChildren(requestDtos, dto.type);
70
+ }
71
+ else if (dto) {
72
+ collectWithRegisteredChildren_utility.ApiRouteCollectDtoWithRegisteredChildren(requestDtos, dto);
64
73
  }
65
74
  }
66
75
  const swaggerDecorators = requestDtos.length > 0 ? [swagger.ApiExtraModels(...requestDtos)] : [];
76
+ if (isDtoProperties_utility.ApiRouteIsDiscriminatedDtoProperties(bodyDto)) {
77
+ swaggerDecorators.push(swagger.ApiBody({
78
+ schema: buildOpenApiSchema_utility.ApiRouteBuildDiscriminatedDtoOpenApiSchema(bodyDto, "ApiRouteCustom body"),
79
+ }));
80
+ }
67
81
  if (swaggerDecorators.length > 0) {
68
82
  common.applyDecorators(...swaggerDecorators)(target, propertyKey, descriptor);
69
83
  }
@@ -74,7 +88,7 @@ function ApiRouteApplyDtoMetadata(target, propertyKey, metadata, runtimeProperti
74
88
  * @param {IApiRouteMetadata<E>} metadata - Route metadata used for entity and route type.
75
89
  * @param {IApiRouteRuntimeProperties<E, undefined>} runtimeProperties - Runtime route config containing dto/autoDto.
76
90
  * @param {Exclude<EApiDtoType, EApiDtoType.RESPONSE>} dtoType - Request DTO target.
77
- * @returns {Type<unknown> | undefined} Resolved request DTO.
91
+ * @returns {TApiRouteRequestDto | undefined} Resolved request DTO.
78
92
  */
79
93
  function resolveRequestDto(metadata, runtimeProperties, dtoType) {
80
94
  const configuredDto = runtimeProperties.dto?.[dtoType];
@@ -1 +1 @@
1
- {"version":3,"file":"apply-dto-metadata.utility.js","sources":["../../../../../../src/utility/api/route/apply-dto-metadata.utility.ts"],"sourcesContent":[null],"names":["EApiDtoType","ROUTE_ARGS_METADATA","PARAMTYPES_METADATA","RouteParamtypes","ApiExtraModels","applyDecorators","GenerateEntityInformation","ApiControllerGetDto"],"mappings":"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"}
1
+ {"version":3,"file":"apply-dto-metadata.utility.js","sources":["../../../../../../src/utility/api/route/apply-dto-metadata.utility.ts"],"sourcesContent":[null],"names":["EApiDtoType","ApiRouteIsDiscriminatedDtoProperties","ROUTE_ARGS_METADATA","PARAMTYPES_METADATA","RouteParamtypes","ApiRouteCollectDtoWithRegisteredChildren","ApiExtraModels","ApiBody","ApiRouteBuildDiscriminatedDtoOpenApiSchema","applyDecorators","GenerateEntityInformation","ApiControllerGetDto"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA;;;;;;;;;AASG;AACG,SAAU,wBAAwB,CAA2B,MAAc,EAAE,WAA4B,EAAE,QAA8B,EAAE,iBAA2D,EAAE,UAA8B,EAAA;AAC3O,IAAA,MAAM,OAAO,GAAoC,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,EAAEA,wBAAW,CAAC,IAAI,CAAC;AACjH,IAAA,MAAM,mBAAmB,GAAoC,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,EAAEA,wBAAW,CAAC,UAAU,CAAC;AACnI,IAAA,MAAM,cAAc,GAAoC,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,EAAEA,wBAAW,CAAC,KAAK,CAAC;AACzH,IAAA,MAAM,aAAa,GAA8BC,4DAAoC,CAAC,mBAAmB,CAAC,GAAG,SAAS,GAAG,mBAAmB;AAC5I,IAAA,MAAM,QAAQ,GAA8BA,4DAAoC,CAAC,cAAc,CAAC,GAAG,SAAS,GAAG,cAAc;AAC7H,IAAA,MAAM,sBAAsB,GAAmE,OAAO,CAAC,WAAW,CAACC,gCAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,CAAmE;AAC1O,IAAA,MAAM,cAAc,GAAmB,CAAC,IAAK,OAAO,CAAC,WAAW,CAACC,gCAAmB,EAAE,MAAM,EAAE,WAAW,CAAgC,IAAI,EAAE,CAAC,CAAC;AAEjJ,IAAA,KAAK,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI;QACpC,EAAE,GAAG,EAAEF,4DAAoC,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,OAAO,EAAE,aAAa,EAAEG,uCAAe,CAAC,IAAI,EAAE;QAC9G,EAAE,GAAG,EAAE,aAAa,EAAE,aAAa,EAAEA,uCAAe,CAAC,KAAK,EAAE;QAC5D,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAEA,uCAAe,CAAC,KAAK,EAAE;AACvD,KAAA,EAAE;QACF,IAAI,CAAC,GAAG,EAAE;YACT;QACD;QAEA,MAAM,aAAa,GAAuB,yBAAyB,CAAC,sBAAsB,EAAE,aAAa,CAAC;AAE1G,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAChC,YAAA,cAAc,CAAC,aAAa,CAAC,GAAG,GAAG;QACpC;IACD;AAEA,IAAA,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9B,OAAO,CAAC,cAAc,CAACD,gCAAmB,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC;IACjF;IAEA,MAAM,WAAW,GAAyB,EAAE;IAE5C,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE;AACrD,QAAA,IAAIF,4DAAoC,CAAC,GAAG,CAAC,EAAE;AAC9C,YAAAI,8EAAwC,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC;QAChE;aAAO,IAAI,GAAG,EAAE;AACf,YAAAA,8EAAwC,CAAC,WAAW,EAAE,GAAG,CAAC;QAC3D;IACD;IAEA,MAAM,iBAAiB,GAA2B,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,CAACC,sBAAc,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,EAAE;AAEhH,IAAA,IAAIL,4DAAoC,CAAC,OAAO,CAAC,EAAE;AAClD,QAAA,iBAAiB,CAAC,IAAI,CACrBM,eAAO,CAAC;AACP,YAAA,MAAM,EAAEC,qEAA0C,CAAC,OAAO,EAAE,qBAAqB,CAAC;AAClF,SAAA,CAAC,CACF;IACF;AAEA,IAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;QACjCC,sBAAe,CAAC,GAAG,iBAAiB,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC;IACvE;AACD;AAEA;;;;;;;AAOG;AACH,SAAS,iBAAiB,CAA2B,QAA8B,EAAE,iBAA2D,EAAE,OAAmD,EAAA;IACpM,MAAM,aAAa,GAAoC,iBAAiB,CAAC,GAAG,GAAG,OAAO,CAAC;IAEvF,IAAI,aAAa,EAAE;AAClB,QAAA,OAAO,aAAa;IACrB;AAEA,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE;AAClE,QAAA,OAAO,SAAS;IACjB;IAEA,MAAM,MAAM,GAAkBC,2DAAyB,CAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;AAEpF,IAAA,MAAM,oBAAoB,GAAgC;AACzD,QAAA,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAE1B;AAED,IAAA,MAAM,WAAW,GAAiE;AACjF,QAAA,GAAG,iBAAiB;QACpB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KACqC;AAEjE,IAAA,OAAOC,+BAAmB,CAAC,oBAAoB,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;AACpG;AAEA;;;;;AAKG;AACH,SAAS,yBAAyB,CAAC,sBAAsF,EAAE,aAA8B,EAAA;IACxJ,IAAI,CAAC,sBAAsB,EAAE;AAC5B,QAAA,OAAO,SAAS;IACjB;IAEA,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE;AAC3D,QAAA,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAiD,KAAK;QACxE,MAAM,CAAC,IAAI,CAAC,GAAkB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5C,QAAA,MAAM,qBAAqB,GAAoB,MAAM,CAAC,IAAI,CAAC;QAE3D,IAAI,qBAAqB,KAAK,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;YACxE,OAAO,KAAK,CAAC,KAAK;QACnB;IACD;AAEA,IAAA,OAAO,SAAS;AACjB;;;;"}
@@ -0,0 +1,9 @@
1
+ import { SchemaObject } from '@nestjs/swagger/dist/interfaces/open-api-spec.interface';
2
+ import { TApiRouteDiscriminatedDtoProperties } from '../../../../type/decorator/api/route';
3
+ /**
4
+ * Builds an OpenAPI oneOf schema with discriminator metadata for route-level DTO variants.
5
+ * @param {TApiRouteDiscriminatedDtoProperties} properties - Route-level discriminated DTO config.
6
+ * @param {string} context - Error message context.
7
+ * @returns {SchemaObject} OpenAPI schema for a discriminated root DTO.
8
+ */
9
+ export declare function ApiRouteBuildDiscriminatedDtoOpenApiSchema(properties: TApiRouteDiscriminatedDtoProperties, context: string): SchemaObject;
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ var swagger = require('@nestjs/swagger');
4
+ var validateDtoProperties_utility = require('./validate-dto-properties.utility.js');
5
+
6
+ /**
7
+ * Builds an OpenAPI oneOf schema with discriminator metadata for route-level DTO variants.
8
+ * @param {TApiRouteDiscriminatedDtoProperties} properties - Route-level discriminated DTO config.
9
+ * @param {string} context - Error message context.
10
+ * @returns {SchemaObject} OpenAPI schema for a discriminated root DTO.
11
+ */
12
+ function ApiRouteBuildDiscriminatedDtoOpenApiSchema(properties, context) {
13
+ validateDtoProperties_utility.ApiRouteValidateDiscriminatedDtoProperties(properties, context);
14
+ return {
15
+ discriminator: {
16
+ mapping: Object.fromEntries(Object.entries(properties.discriminator.mapping).map(([key, value]) => [key, swagger.getSchemaPath(value)])),
17
+ propertyName: properties.discriminator.propertyName,
18
+ },
19
+ oneOf: properties.type.map((type) => {
20
+ return { $ref: swagger.getSchemaPath(type) };
21
+ }),
22
+ };
23
+ }
24
+
25
+ exports.ApiRouteBuildDiscriminatedDtoOpenApiSchema = ApiRouteBuildDiscriminatedDtoOpenApiSchema;
26
+ //# sourceMappingURL=build-open-api-schema.utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-open-api-schema.utility.js","sources":["../../../../../../../src/utility/api/route/discriminator/build-open-api-schema.utility.ts"],"sourcesContent":[null],"names":["ApiRouteValidateDiscriminatedDtoProperties","getSchemaPath"],"mappings":";;;;;AAQA;;;;;AAKG;AACG,SAAU,0CAA0C,CAAC,UAA+C,EAAE,OAAe,EAAA;AAC1H,IAAAA,wEAA0C,CAAC,UAAU,EAAE,OAAO,CAAC;IAE/D,OAAO;AACN,QAAA,aAAa,EAAE;AACd,YAAA,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAA0B,KAAuB,CAAC,GAAG,EAAEC,qBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3K,YAAA,YAAY,EAAE,UAAU,CAAC,aAAa,CAAC,YAAY;AACnD,SAAA;QACD,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAmB,KAAsB;YACpE,OAAO,EAAE,IAAI,EAAEA,qBAAa,CAAC,IAAI,CAAC,EAAE;AACrC,QAAA,CAAC,CAAC;KACF;AACF;;;;"}
@@ -0,0 +1,9 @@
1
+ import { TApiRouteDiscriminatedDtoProperties } from '../../../../type/decorator/api/route';
2
+ import { ValidationError } from 'class-validator';
3
+ /**
4
+ * Creates class-validator-shaped validation failure for route-level discriminator selection failures.
5
+ * @param {TApiRouteDiscriminatedDtoProperties} properties - Route-level discriminated DTO config.
6
+ * @param {unknown} payload - Request body payload.
7
+ * @returns {ValidationError} Class-validator-compatible validation failure.
8
+ */
9
+ export declare function ApiRouteCreateDiscriminatedDtoValidationFailure(properties: TApiRouteDiscriminatedDtoProperties, payload: unknown): ValidationError;
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Creates class-validator-shaped validation failure for route-level discriminator selection failures.
5
+ * @param {TApiRouteDiscriminatedDtoProperties} properties - Route-level discriminated DTO config.
6
+ * @param {unknown} payload - Request body payload.
7
+ * @returns {ValidationError} Class-validator-compatible validation failure.
8
+ */
9
+ function ApiRouteCreateDiscriminatedDtoValidationFailure(properties, payload) {
10
+ const discriminatorPropertyName = properties.discriminator.propertyName;
11
+ const allowedValuesDescription = Object.keys(properties.discriminator.mapping)
12
+ .map((value) => {
13
+ return `'${value}'`;
14
+ })
15
+ .join(", ");
16
+ if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
17
+ return {
18
+ constraints: {
19
+ mustMatchDiscriminatorMapping: "body must be an object",
20
+ },
21
+ property: "body",
22
+ value: payload,
23
+ };
24
+ }
25
+ const payloadAsRecord = payload;
26
+ if (!(discriminatorPropertyName in payloadAsRecord)) {
27
+ return {
28
+ constraints: {
29
+ mustMatchDiscriminatorMapping: `${discriminatorPropertyName} is missing required discriminator field '${discriminatorPropertyName}'`,
30
+ },
31
+ property: discriminatorPropertyName,
32
+ value: undefined,
33
+ };
34
+ }
35
+ const discriminatorValue = payloadAsRecord[discriminatorPropertyName];
36
+ return {
37
+ constraints: {
38
+ mustMatchDiscriminatorMapping: `${discriminatorPropertyName} has invalid discriminator value '${String(discriminatorValue)}'. must be one of: ${allowedValuesDescription}`,
39
+ },
40
+ property: discriminatorPropertyName,
41
+ value: discriminatorValue,
42
+ };
43
+ }
44
+
45
+ exports.ApiRouteCreateDiscriminatedDtoValidationFailure = ApiRouteCreateDiscriminatedDtoValidationFailure;
46
+ //# sourceMappingURL=create-validation-failure.utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-validation-failure.utility.js","sources":["../../../../../../../src/utility/api/route/discriminator/create-validation-failure.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;;;AAKG;AACG,SAAU,+CAA+C,CAAC,UAA+C,EAAE,OAAgB,EAAA;AAChI,IAAA,MAAM,yBAAyB,GAAW,UAAU,CAAC,aAAa,CAAC,YAAY;IAE/E,MAAM,wBAAwB,GAAW,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO;AACnF,SAAA,GAAG,CAAC,CAAC,KAAa,KAAY;QAC9B,OAAO,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG;AACpB,IAAA,CAAC;SACA,IAAI,CAAC,IAAI,CAAC;AAEZ,IAAA,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACtE,OAAO;AACN,YAAA,WAAW,EAAE;AACZ,gBAAA,6BAA6B,EAAE,wBAAwB;AACvD,aAAA;AACD,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,KAAK,EAAE,OAAO;SACd;IACF;IAEA,MAAM,eAAe,GAA4B,OAAkC;AAEnF,IAAA,IAAI,EAAE,yBAAyB,IAAI,eAAe,CAAC,EAAE;QACpD,OAAO;AACN,YAAA,WAAW,EAAE;AACZ,gBAAA,6BAA6B,EAAE,CAAA,EAAG,yBAAyB,CAAA,0CAAA,EAA6C,yBAAyB,CAAA,CAAA,CAAG;AACpI,aAAA;AACD,YAAA,QAAQ,EAAE,yBAAyB;AACnC,YAAA,KAAK,EAAE,SAAS;SAChB;IACF;AAEA,IAAA,MAAM,kBAAkB,GAAY,eAAe,CAAC,yBAAyB,CAAC;IAE9E,OAAO;AACN,QAAA,WAAW,EAAE;YACZ,6BAA6B,EAAE,CAAA,EAAG,yBAAyB,CAAA,kCAAA,EAAqC,MAAM,CAAC,kBAAkB,CAAC,CAAA,mBAAA,EAAsB,wBAAwB,CAAA,CAAE;AAC1K,SAAA;AACD,QAAA,QAAQ,EAAE,yBAAyB;AACnC,QAAA,KAAK,EAAE,kBAAkB;KACzB;AACF;;;;"}
@@ -0,0 +1,6 @@
1
+ export { ApiRouteBuildDiscriminatedDtoOpenApiSchema } from './build-open-api-schema.utility';
2
+ export { ApiRouteCreateDiscriminatedDtoValidationFailure } from './create-validation-failure.utility';
3
+ export { ApiRouteIsDiscriminatedDtoProperties } from './is-dto-properties.utility';
4
+ export { ApiRoutePrepareDiscriminatedDtoPayload } from './prepare-payload.utility';
5
+ export { ApiRouteResolveDiscriminatedDto } from './resolve-dto.utility';
6
+ export { ApiRouteValidateDiscriminatedDtoProperties } from './validate-dto-properties.utility';
@@ -0,0 +1,7 @@
1
+ import { TApiRouteDiscriminatedDtoProperties } from '../../../../type/decorator/api/route';
2
+ /**
3
+ * Checks whether a value is a route-level discriminated DTO config.
4
+ * @param {unknown} value - Value to inspect.
5
+ * @returns {boolean} Whether the value is a discriminated DTO config.
6
+ */
7
+ export declare function ApiRouteIsDiscriminatedDtoProperties(value: unknown): value is TApiRouteDiscriminatedDtoProperties;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Checks whether a value is a route-level discriminated DTO config.
5
+ * @param {unknown} value - Value to inspect.
6
+ * @returns {boolean} Whether the value is a discriminated DTO config.
7
+ */
8
+ function ApiRouteIsDiscriminatedDtoProperties(value) {
9
+ return typeof value === "object" && value !== null && !Array.isArray(value) && "type" in value && Array.isArray(value.type) && "discriminator" in value;
10
+ }
11
+
12
+ exports.ApiRouteIsDiscriminatedDtoProperties = ApiRouteIsDiscriminatedDtoProperties;
13
+ //# sourceMappingURL=is-dto-properties.utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-dto-properties.utility.js","sources":["../../../../../../../src/utility/api/route/discriminator/is-dto-properties.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;;;AAIG;AACG,SAAU,oCAAoC,CAAC,KAAc,EAAA;AAClE,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAE,KAA4B,CAAC,IAAI,CAAC,IAAI,eAAe,IAAI,KAAK;AAChL;;;;"}
@@ -0,0 +1,8 @@
1
+ import { TApiRouteDiscriminatedDtoProperties } from '../../../../type/decorator/api/route';
2
+ /**
3
+ * Removes the discriminator property from a root DTO payload when the config requests it.
4
+ * @param {TApiRouteDiscriminatedDtoProperties} properties - Route-level discriminated DTO config.
5
+ * @param {unknown} payload - Payload selected by the discriminator.
6
+ * @returns {unknown} Original or copied payload used for transformation/serialization.
7
+ */
8
+ export declare function ApiRoutePrepareDiscriminatedDtoPayload(properties: TApiRouteDiscriminatedDtoProperties, payload: unknown): unknown;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Removes the discriminator property from a root DTO payload when the config requests it.
5
+ * @param {TApiRouteDiscriminatedDtoProperties} properties - Route-level discriminated DTO config.
6
+ * @param {unknown} payload - Payload selected by the discriminator.
7
+ * @returns {unknown} Original or copied payload used for transformation/serialization.
8
+ */
9
+ function ApiRoutePrepareDiscriminatedDtoPayload(properties, payload) {
10
+ if (properties.discriminator.shouldKeepDiscriminatorProperty !== false || !payload || typeof payload !== "object" || Array.isArray(payload)) {
11
+ return payload;
12
+ }
13
+ return Object.fromEntries(Object.entries(payload).filter(([key]) => {
14
+ return key !== properties.discriminator.propertyName;
15
+ }));
16
+ }
17
+
18
+ exports.ApiRoutePrepareDiscriminatedDtoPayload = ApiRoutePrepareDiscriminatedDtoPayload;
19
+ //# sourceMappingURL=prepare-payload.utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-payload.utility.js","sources":["../../../../../../../src/utility/api/route/discriminator/prepare-payload.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;;;;AAKG;AACG,SAAU,sCAAsC,CAAC,UAA+C,EAAE,OAAgB,EAAA;IACvH,IAAI,UAAU,CAAC,aAAa,CAAC,+BAA+B,KAAK,KAAK,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC5I,QAAA,OAAO,OAAO;IACf;AAEA,IAAA,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,OAAkC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAoB,KAAa;AAC/F,QAAA,OAAO,GAAG,KAAK,UAAU,CAAC,aAAa,CAAC,YAAY;IACrD,CAAC,CAAC,CACF;AACF;;;;"}
@@ -0,0 +1,10 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { TApiRouteDiscriminatedDtoProperties } from '../../../../type/decorator/api/route';
3
+ /**
4
+ * Selects the route DTO class for a payload using the configured discriminator mapping.
5
+ * @param {TApiRouteDiscriminatedDtoProperties} properties - Route-level discriminated DTO config.
6
+ * @param {unknown} payload - Request or response payload.
7
+ * @param {string} context - Error message context.
8
+ * @returns {Type<unknown>} Selected DTO class.
9
+ */
10
+ export declare function ApiRouteResolveDiscriminatedDto(properties: TApiRouteDiscriminatedDtoProperties, payload: unknown, context: string): Type<unknown>;
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var exception_utility = require('../../../error/exception.utility.js');
4
+ var validateDtoProperties_utility = require('./validate-dto-properties.utility.js');
5
+
6
+ /**
7
+ * Selects the route DTO class for a payload using the configured discriminator mapping.
8
+ * @param {TApiRouteDiscriminatedDtoProperties} properties - Route-level discriminated DTO config.
9
+ * @param {unknown} payload - Request or response payload.
10
+ * @param {string} context - Error message context.
11
+ * @returns {Type<unknown>} Selected DTO class.
12
+ */
13
+ function ApiRouteResolveDiscriminatedDto(properties, payload, context) {
14
+ validateDtoProperties_utility.ApiRouteValidateDiscriminatedDtoProperties(properties, context);
15
+ if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
16
+ throw exception_utility.ErrorException(`${context} discriminator payload error: payload must be an object`);
17
+ }
18
+ const payloadAsRecord = payload;
19
+ const discriminatorPropertyName = properties.discriminator.propertyName;
20
+ if (!(discriminatorPropertyName in payloadAsRecord)) {
21
+ throw exception_utility.ErrorException(`${context} discriminator payload error: missing required discriminator field '${discriminatorPropertyName}'`);
22
+ }
23
+ const discriminatorValue = payloadAsRecord[discriminatorPropertyName];
24
+ if (typeof discriminatorValue !== "string" || discriminatorValue === "") {
25
+ throw exception_utility.ErrorException(`${context} discriminator payload error: invalid discriminator value '${String(discriminatorValue)}' for field '${discriminatorPropertyName}'`);
26
+ }
27
+ const dto = properties.discriminator.mapping[discriminatorValue];
28
+ if (!dto) {
29
+ throw exception_utility.ErrorException(`${context} discriminator payload error: invalid discriminator value '${discriminatorValue}' for field '${discriminatorPropertyName}'`);
30
+ }
31
+ return dto;
32
+ }
33
+
34
+ exports.ApiRouteResolveDiscriminatedDto = ApiRouteResolveDiscriminatedDto;
35
+ //# sourceMappingURL=resolve-dto.utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-dto.utility.js","sources":["../../../../../../../src/utility/api/route/discriminator/resolve-dto.utility.ts"],"sourcesContent":[null],"names":["ApiRouteValidateDiscriminatedDtoProperties","ErrorException"],"mappings":";;;;;AAOA;;;;;;AAMG;SACa,+BAA+B,CAAC,UAA+C,EAAE,OAAgB,EAAE,OAAe,EAAA;AACjI,IAAAA,wEAA0C,CAAC,UAAU,EAAE,OAAO,CAAC;AAE/D,IAAA,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACtE,QAAA,MAAMC,gCAAc,CAAC,CAAA,EAAG,OAAO,CAAA,uDAAA,CAAyD,CAAC;IAC1F;IAEA,MAAM,eAAe,GAA4B,OAAkC;AACnF,IAAA,MAAM,yBAAyB,GAAW,UAAU,CAAC,aAAa,CAAC,YAAY;AAE/E,IAAA,IAAI,EAAE,yBAAyB,IAAI,eAAe,CAAC,EAAE;QACpD,MAAMA,gCAAc,CAAC,CAAA,EAAG,OAAO,uEAAuE,yBAAyB,CAAA,CAAA,CAAG,CAAC;IACpI;AAEA,IAAA,MAAM,kBAAkB,GAAY,eAAe,CAAC,yBAAyB,CAAC;IAE9E,IAAI,OAAO,kBAAkB,KAAK,QAAQ,IAAI,kBAAkB,KAAK,EAAE,EAAE;AACxE,QAAA,MAAMA,gCAAc,CAAC,CAAA,EAAG,OAAO,CAAA,2DAAA,EAA8D,MAAM,CAAC,kBAAkB,CAAC,CAAA,aAAA,EAAgB,yBAAyB,CAAA,CAAA,CAAG,CAAC;IACrK;IAEA,MAAM,GAAG,GAA8B,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAE3F,IAAI,CAAC,GAAG,EAAE;QACT,MAAMA,gCAAc,CAAC,CAAA,EAAG,OAAO,CAAA,2DAAA,EAA8D,kBAAkB,CAAA,aAAA,EAAgB,yBAAyB,CAAA,CAAA,CAAG,CAAC;IAC7J;AAEA,IAAA,OAAO,GAAG;AACX;;;;"}
@@ -0,0 +1,8 @@
1
+ import { TApiRouteDiscriminatedDtoProperties } from '../../../../type/decorator/api/route';
2
+ /**
3
+ * Validates that route-level discriminator config and variant DTO classes are consistent.
4
+ * @param {TApiRouteDiscriminatedDtoProperties} properties - Route-level discriminated DTO config.
5
+ * @param {string} context - Error message context.
6
+ * @returns {void}
7
+ */
8
+ export declare function ApiRouteValidateDiscriminatedDtoProperties(properties: TApiRouteDiscriminatedDtoProperties, context: string): void;
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var config_utility = require('../../discriminator/validate/config.utility.js');
4
+
5
+ /**
6
+ * Validates that route-level discriminator config and variant DTO classes are consistent.
7
+ * @param {TApiRouteDiscriminatedDtoProperties} properties - Route-level discriminated DTO config.
8
+ * @param {string} context - Error message context.
9
+ * @returns {void}
10
+ */
11
+ function ApiRouteValidateDiscriminatedDtoProperties(properties, context) {
12
+ config_utility.ApiDiscriminatorValidateConfig({
13
+ context,
14
+ discriminator: properties.discriminator,
15
+ shouldRequireDeclaredDiscriminatorProperty: true,
16
+ variants: properties.type,
17
+ });
18
+ }
19
+
20
+ exports.ApiRouteValidateDiscriminatedDtoProperties = ApiRouteValidateDiscriminatedDtoProperties;
21
+ //# sourceMappingURL=validate-dto-properties.utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-dto-properties.utility.js","sources":["../../../../../../../src/utility/api/route/discriminator/validate-dto-properties.utility.ts"],"sourcesContent":[null],"names":["ApiDiscriminatorValidateConfig"],"mappings":";;;;AAIA;;;;;AAKG;AACG,SAAU,0CAA0C,CAAC,UAA+C,EAAE,OAAe,EAAA;AAC1H,IAAAA,6CAA8B,CAAC;QAC9B,OAAO;QACP,aAAa,EAAE,UAAU,CAAC,aAAa;AACvC,QAAA,0CAA0C,EAAE,IAAI;QAChD,QAAQ,EAAE,UAAU,CAAC,IAAI;AACzB,KAAA,CAAC;AACH;;;;"}
@@ -0,0 +1,8 @@
1
+ import { Type } from '@nestjs/common';
2
+ /**
3
+ * Adds a DTO and all registered nested manual DTO children to an accumulator.
4
+ * @param {Array<Type<unknown>>} target - DTO accumulator.
5
+ * @param {Array<Type<unknown>> | Type<unknown>} dto - DTO or DTO list to add.
6
+ * @returns {void}
7
+ */
8
+ export declare function ApiRouteCollectDtoWithRegisteredChildren(target: Array<Type<unknown>>, dto: Array<Type<unknown>> | Type<unknown>): void;
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var registerAutoDtoChild_utility = require('../../../register-auto-dto-child.utility.js');
4
+
5
+ /**
6
+ * Adds a DTO and all registered nested manual DTO children to an accumulator.
7
+ * @param {Array<Type<unknown>>} target - DTO accumulator.
8
+ * @param {Array<Type<unknown>> | Type<unknown>} dto - DTO or DTO list to add.
9
+ * @returns {void}
10
+ */
11
+ function ApiRouteCollectDtoWithRegisteredChildren(target, dto) {
12
+ if (Array.isArray(dto)) {
13
+ for (const item of dto) {
14
+ ApiRouteCollectDtoWithRegisteredChildren(target, item);
15
+ }
16
+ return;
17
+ }
18
+ if (!target.includes(dto)) {
19
+ target.push(dto);
20
+ }
21
+ for (const child of registerAutoDtoChild_utility.GetRegisteredAutoDtoChildrenRecursive(dto.prototype)) {
22
+ if (!target.includes(child)) {
23
+ target.push(child);
24
+ }
25
+ }
26
+ }
27
+
28
+ exports.ApiRouteCollectDtoWithRegisteredChildren = ApiRouteCollectDtoWithRegisteredChildren;
29
+ //# sourceMappingURL=collect-with-registered-children.utility.js.map