@elsikora/nestjs-crud-automator 3.0.2-dev.1 → 4.0.0-dev.2

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 (762) hide show
  1. package/README.md +113 -11
  2. package/dist/cjs/class/api/authorization/guard.class.d.ts +1 -0
  3. package/dist/cjs/class/api/authorization/guard.class.js +39 -3
  4. package/dist/cjs/class/api/authorization/guard.class.js.map +1 -1
  5. package/dist/cjs/class/api/authorization/iam/engine.class.d.ts +3 -2
  6. package/dist/cjs/class/api/authorization/iam/engine.class.js.map +1 -1
  7. package/dist/cjs/class/api/authorization/iam/query-planner.class.d.ts +3 -2
  8. package/dist/cjs/class/api/authorization/iam/query-planner.class.js.map +1 -1
  9. package/dist/cjs/class/api/authorization/policy/base.class.js +1 -0
  10. package/dist/cjs/class/api/authorization/policy/base.class.js.map +1 -1
  11. package/dist/cjs/class/api/authorization/policy/executor.class.d.ts +2 -1
  12. package/dist/cjs/class/api/authorization/policy/executor.class.js.map +1 -1
  13. package/dist/cjs/class/api/authorization/policy/registry.class.d.ts +3 -2
  14. package/dist/cjs/class/api/authorization/policy/registry.class.js.map +1 -1
  15. package/dist/cjs/class/api/authorization/runtime.class.d.ts +3 -2
  16. package/dist/cjs/class/api/authorization/runtime.class.js +2 -1
  17. package/dist/cjs/class/api/authorization/runtime.class.js.map +1 -1
  18. package/dist/cjs/class/api/authorization/simulator.class.d.ts +3 -3
  19. package/dist/cjs/class/api/authorization/simulator.class.js.map +1 -1
  20. package/dist/cjs/class/api/controller/generated/function-capability.class.d.ts +12 -0
  21. package/dist/cjs/class/api/controller/generated/function-capability.class.js +47 -0
  22. package/dist/cjs/class/api/controller/generated/function-capability.class.js.map +1 -0
  23. package/dist/cjs/class/api/controller/generated/get-many-contract.class.d.ts +25 -0
  24. package/dist/cjs/class/api/controller/generated/get-many-contract.class.js +250 -0
  25. package/dist/cjs/class/api/controller/generated/get-many-contract.class.js.map +1 -0
  26. package/dist/cjs/class/api/controller/generated/index.d.ts +3 -0
  27. package/dist/cjs/class/api/controller/generated/read-scope-storage.class.d.ts +19 -0
  28. package/dist/cjs/class/api/controller/generated/read-scope-storage.class.js +120 -0
  29. package/dist/cjs/class/api/controller/generated/read-scope-storage.class.js.map +1 -0
  30. package/dist/cjs/class/api/controller/generated/relation-cache-contract.class.d.ts +11 -0
  31. package/dist/cjs/class/api/controller/generated/relation-cache-contract.class.js +70 -0
  32. package/dist/cjs/class/api/controller/generated/relation-cache-contract.class.js.map +1 -0
  33. package/dist/cjs/class/api/controller/generated/scope-where-contract.class.d.ts +14 -0
  34. package/dist/cjs/class/api/controller/generated/scope-where-contract.class.js +68 -0
  35. package/dist/cjs/class/api/controller/generated/scope-where-contract.class.js.map +1 -0
  36. package/dist/cjs/class/api/controller/generated/security-snapshot.class.d.ts +14 -0
  37. package/dist/cjs/class/api/controller/generated/security-snapshot.class.js +165 -0
  38. package/dist/cjs/class/api/controller/generated/security-snapshot.class.js.map +1 -0
  39. package/dist/cjs/class/api/controller/generated/write-hydration-contract.class.d.ts +9 -0
  40. package/dist/cjs/class/api/controller/generated/write-hydration-contract.class.js +69 -0
  41. package/dist/cjs/class/api/controller/generated/write-hydration-contract.class.js.map +1 -0
  42. package/dist/cjs/class/api/controller/get-list/cursor/data-source-contract.class.d.ts +32 -0
  43. package/dist/cjs/class/api/controller/get-list/cursor/data-source-contract.class.js +424 -0
  44. package/dist/cjs/class/api/controller/get-list/cursor/data-source-contract.class.js.map +1 -0
  45. package/dist/cjs/class/api/controller/get-list/cursor/index.d.ts +2 -0
  46. package/dist/cjs/class/api/controller/get-list/cursor/runtime.class.d.ts +28 -0
  47. package/dist/cjs/class/api/controller/get-list/cursor/runtime.class.js +371 -0
  48. package/dist/cjs/class/api/controller/get-list/cursor/runtime.class.js.map +1 -0
  49. package/dist/cjs/class/api/controller/get-list/query/plan-compiler.class.d.ts +20 -0
  50. package/dist/cjs/class/api/controller/get-list/query/plan-compiler.class.js +479 -41
  51. package/dist/cjs/class/api/controller/get-list/query/plan-compiler.class.js.map +1 -1
  52. package/dist/cjs/class/api/controller/get-list/query/runtime.class.d.ts +2 -0
  53. package/dist/cjs/class/api/controller/get-list/query/runtime.class.js +45 -2
  54. package/dist/cjs/class/api/controller/get-list/query/runtime.class.js.map +1 -1
  55. package/dist/cjs/class/api/controller/identity-plan-compiler.class.d.ts +14 -0
  56. package/dist/cjs/class/api/controller/identity-plan-compiler.class.js +150 -0
  57. package/dist/cjs/class/api/controller/identity-plan-compiler.class.js.map +1 -0
  58. package/dist/cjs/class/api/controller/index.d.ts +1 -0
  59. package/dist/cjs/class/api/controller/read-plan-compiler.class.d.ts +17 -0
  60. package/dist/cjs/class/api/controller/read-plan-compiler.class.js +240 -0
  61. package/dist/cjs/class/api/controller/read-plan-compiler.class.js.map +1 -0
  62. package/dist/cjs/class/api/function/context-storage.class.js +1 -0
  63. package/dist/cjs/class/api/function/context-storage.class.js.map +1 -1
  64. package/dist/cjs/class/api/function/custom-runtime.class.js +1 -0
  65. package/dist/cjs/class/api/function/custom-runtime.class.js.map +1 -1
  66. package/dist/cjs/class/api/function/step-runtime.class.js +1 -0
  67. package/dist/cjs/class/api/function/step-runtime.class.js.map +1 -1
  68. package/dist/cjs/class/api/function/transaction/exception/commit-unknown-outcome.class.js +1 -0
  69. package/dist/cjs/class/api/function/transaction/exception/commit-unknown-outcome.class.js.map +1 -1
  70. package/dist/cjs/class/api/function/transaction/exception/post-commit.class.js +1 -0
  71. package/dist/cjs/class/api/function/transaction/exception/post-commit.class.js.map +1 -1
  72. package/dist/cjs/class/api/function/transaction/exception/rollback.class.js +1 -0
  73. package/dist/cjs/class/api/function/transaction/exception/rollback.class.js.map +1 -1
  74. package/dist/cjs/class/api/function/transaction/lifecycle.class.js +1 -0
  75. package/dist/cjs/class/api/function/transaction/lifecycle.class.js.map +1 -1
  76. package/dist/cjs/class/api/function/transaction/registry.class.js +1 -0
  77. package/dist/cjs/class/api/function/transaction/registry.class.js.map +1 -1
  78. package/dist/cjs/class/api/function/transaction/runtime.class.js +1 -0
  79. package/dist/cjs/class/api/function/transaction/runtime.class.js.map +1 -1
  80. package/dist/cjs/class/api/function/transaction/scope.class.js +1 -0
  81. package/dist/cjs/class/api/function/transaction/scope.class.js.map +1 -1
  82. package/dist/cjs/class/api/route-runtime.class.d.ts +2 -0
  83. package/dist/cjs/class/api/route-runtime.class.js +202 -60
  84. package/dist/cjs/class/api/route-runtime.class.js.map +1 -1
  85. package/dist/cjs/class/api/subscriber/executor.class.js +1 -0
  86. package/dist/cjs/class/api/subscriber/executor.class.js.map +1 -1
  87. package/dist/cjs/class/api/subscriber/registry.class.d.ts +3 -3
  88. package/dist/cjs/class/api/subscriber/registry.class.js +3 -1
  89. package/dist/cjs/class/api/subscriber/registry.class.js.map +1 -1
  90. package/dist/cjs/class/api/subscriber/route-base.class.d.ts +2 -2
  91. package/dist/cjs/class/api/subscriber/route-base.class.js.map +1 -1
  92. package/dist/cjs/class/utility/dto/exception/details/foreign-key-violation.class.js +1 -0
  93. package/dist/cjs/class/utility/dto/exception/details/foreign-key-violation.class.js.map +1 -1
  94. package/dist/cjs/class/utility/dto/exception/details/unique-violation.class.js +1 -0
  95. package/dist/cjs/class/utility/dto/exception/details/unique-violation.class.js.map +1 -1
  96. package/dist/cjs/class/utility/dto/property/factory/number.class.js +1 -0
  97. package/dist/cjs/class/utility/dto/property/factory/number.class.js.map +1 -1
  98. package/dist/cjs/class/utility/dto/property/factory/relation.class.js +1 -0
  99. package/dist/cjs/class/utility/dto/property/factory/relation.class.js.map +1 -1
  100. package/dist/cjs/class/utility/dto/strategy/body.class.js +1 -0
  101. package/dist/cjs/class/utility/dto/strategy/body.class.js.map +1 -1
  102. package/dist/cjs/class/utility/dto/strategy/query.class.js +1 -0
  103. package/dist/cjs/class/utility/dto/strategy/query.class.js.map +1 -1
  104. package/dist/cjs/class/utility/dto/strategy/request.class.js +1 -0
  105. package/dist/cjs/class/utility/dto/strategy/request.class.js.map +1 -1
  106. package/dist/cjs/class/utility/dto/strategy/response.class.js +1 -0
  107. package/dist/cjs/class/utility/dto/strategy/response.class.js.map +1 -1
  108. package/dist/cjs/constant/api-controller-cursor.constant.d.ts +1 -0
  109. package/dist/cjs/constant/api-controller-cursor.constant.js +6 -0
  110. package/dist/cjs/constant/api-controller-cursor.constant.js.map +1 -0
  111. package/dist/cjs/constant/filter/operator-registry.constant.js +1 -0
  112. package/dist/cjs/constant/filter/operator-registry.constant.js.map +1 -1
  113. package/dist/cjs/constant/safe-object-property-names.constant.d.ts +1 -0
  114. package/dist/cjs/constant/safe-object-property-names.constant.js +6 -0
  115. package/dist/cjs/constant/safe-object-property-names.constant.js.map +1 -0
  116. package/dist/cjs/constant/utility/api/get-default-string-format-properties/customizer-map.constant.js +1 -0
  117. package/dist/cjs/constant/utility/api/get-default-string-format-properties/customizer-map.constant.js.map +1 -1
  118. package/dist/cjs/constant/utility/dto/constant.js +1 -0
  119. package/dist/cjs/constant/utility/dto/constant.js.map +1 -1
  120. package/dist/cjs/decorator/api/controller/decorator.js.map +1 -1
  121. package/dist/cjs/decorator/api/function/create.decorator.js +1 -0
  122. package/dist/cjs/decorator/api/function/create.decorator.js.map +1 -1
  123. package/dist/cjs/decorator/api/function/custom.decorator.js +1 -0
  124. package/dist/cjs/decorator/api/function/custom.decorator.js.map +1 -1
  125. package/dist/cjs/decorator/api/function/decorator.js +5 -0
  126. package/dist/cjs/decorator/api/function/decorator.js.map +1 -1
  127. package/dist/cjs/decorator/api/function/delete.decorator.js +19 -7
  128. package/dist/cjs/decorator/api/function/delete.decorator.js.map +1 -1
  129. package/dist/cjs/decorator/api/function/get/decorator.js +53 -19
  130. package/dist/cjs/decorator/api/function/get/decorator.js.map +1 -1
  131. package/dist/cjs/decorator/api/function/get/list.decorator.js +41 -27
  132. package/dist/cjs/decorator/api/function/get/list.decorator.js.map +1 -1
  133. package/dist/cjs/decorator/api/function/get/many.decorator.js +70 -19
  134. package/dist/cjs/decorator/api/function/get/many.decorator.js.map +1 -1
  135. package/dist/cjs/decorator/api/function/step.decorator.js +1 -0
  136. package/dist/cjs/decorator/api/function/step.decorator.js.map +1 -1
  137. package/dist/cjs/decorator/api/function/update.decorator.js +20 -1
  138. package/dist/cjs/decorator/api/function/update.decorator.js.map +1 -1
  139. package/dist/cjs/decorator/api/method.decorator.js +1 -0
  140. package/dist/cjs/decorator/api/method.decorator.js.map +1 -1
  141. package/dist/cjs/decorator/api/property/boolean.decorator.js +1 -0
  142. package/dist/cjs/decorator/api/property/boolean.decorator.js.map +1 -1
  143. package/dist/cjs/decorator/api/property/date.decorator.js +1 -0
  144. package/dist/cjs/decorator/api/property/date.decorator.js.map +1 -1
  145. package/dist/cjs/decorator/api/property/number.decorator.js +1 -0
  146. package/dist/cjs/decorator/api/property/number.decorator.js.map +1 -1
  147. package/dist/cjs/decorator/api/property/string.decorator.js +1 -0
  148. package/dist/cjs/decorator/api/property/string.decorator.js.map +1 -1
  149. package/dist/cjs/decorator/api/property/uuid.decorator.js +1 -0
  150. package/dist/cjs/decorator/api/property/uuid.decorator.js.map +1 -1
  151. package/dist/cjs/decorator/api/route-custom.decorator.js +1 -0
  152. package/dist/cjs/decorator/api/route-custom.decorator.js.map +1 -1
  153. package/dist/cjs/decorator/api/service/decorator.js +16 -0
  154. package/dist/cjs/decorator/api/service/decorator.js.map +1 -1
  155. package/dist/cjs/enum/decorator/api/controller/get-list/query/index.d.ts +1 -0
  156. package/dist/cjs/enum/decorator/api/controller/get-list/query/pagination-mode.enum.d.ts +4 -0
  157. package/dist/cjs/enum/decorator/api/controller/get-list/query/pagination-mode.enum.js +8 -0
  158. package/dist/cjs/enum/decorator/api/controller/get-list/query/pagination-mode.enum.js.map +1 -0
  159. package/dist/cjs/factory/api-controller.factory.d.ts +4 -4
  160. package/dist/cjs/factory/api-controller.factory.js +37 -11
  161. package/dist/cjs/factory/api-controller.factory.js.map +1 -1
  162. package/dist/cjs/index.js +15 -8
  163. package/dist/cjs/index.js.map +1 -1
  164. package/dist/cjs/interface/api/request-validator.interface.d.ts +3 -2
  165. package/dist/cjs/interface/class/api/authorization/policy/build-options.interface.d.ts +3 -2
  166. package/dist/cjs/interface/class/api/authorization/policy/registry.interface.d.ts +3 -2
  167. package/dist/cjs/interface/class/api/authorization/policy/subscriber/context/data.interface.d.ts +2 -1
  168. package/dist/cjs/interface/class/api/authorization/policy/subscriber/context/interface.d.ts +3 -2
  169. package/dist/cjs/interface/class/api/authorization/policy/subscriber/interface.d.ts +9 -8
  170. package/dist/cjs/interface/class/api/authorization/policy/subscriber/registration.interface.d.ts +3 -2
  171. package/dist/cjs/interface/class/api/authorization/request-metadata.interface.d.ts +3 -2
  172. package/dist/cjs/interface/class/api/controller/generated/get-many-session.interface.d.ts +11 -0
  173. package/dist/cjs/interface/class/api/controller/generated/index.d.ts +2 -0
  174. package/dist/cjs/interface/class/api/controller/generated/read-scope-entry.interface.d.ts +10 -0
  175. package/dist/cjs/interface/class/api/controller/get-list/query/plan/order/entry.interface.d.ts +5 -0
  176. package/dist/cjs/interface/class/api/controller/get-list/query/plan/order/index.d.ts +1 -0
  177. package/dist/cjs/interface/class/api/controller/get-list/query/plan/order/interface.d.ts +3 -0
  178. package/dist/cjs/interface/class/api/controller/get-list/query/plan/pagination.interface.d.ts +4 -0
  179. package/dist/cjs/interface/class/api/controller/get-list/query/runtime-result.interface.d.ts +2 -0
  180. package/dist/cjs/interface/class/api/controller/identity-plan.interface.d.ts +7 -0
  181. package/dist/cjs/interface/class/api/controller/index.d.ts +1 -0
  182. package/dist/cjs/interface/class/api/controller/read/index.d.ts +1 -0
  183. package/dist/cjs/interface/class/api/controller/read/plan/index.d.ts +2 -0
  184. package/dist/cjs/interface/class/api/controller/read/plan/interface.d.ts +7 -0
  185. package/dist/cjs/interface/class/api/controller/read/plan/parameter.interface.d.ts +4 -0
  186. package/dist/cjs/interface/class/api/route/runtime/generated/targets.interface.d.ts +2 -1
  187. package/dist/cjs/interface/class/api/subscriber/route/execution/context/data/extended.interface.d.ts +3 -2
  188. package/dist/cjs/interface/class/api/subscriber/route.interface.d.ts +7 -7
  189. package/dist/cjs/interface/decorator/api/controller/properties/route/base/index.d.ts +1 -0
  190. package/dist/cjs/interface/decorator/api/controller/properties/route/base/read/index.d.ts +3 -0
  191. package/dist/cjs/interface/decorator/api/controller/properties/route/base/read/interface.d.ts +4 -0
  192. package/dist/cjs/interface/decorator/api/controller/properties/route/base/read/scope-parameter.interface.d.ts +5 -0
  193. package/dist/cjs/interface/decorator/api/controller/properties/route/base/read/scope.interface.d.ts +4 -0
  194. package/dist/cjs/interface/decorator/api/controller/properties/route/base/request/index.d.ts +1 -0
  195. package/dist/cjs/interface/decorator/api/controller/properties/route/base/request/interface.d.ts +2 -2
  196. package/dist/cjs/interface/decorator/api/controller/properties/route/base/request/query/index.d.ts +1 -0
  197. package/dist/cjs/interface/decorator/api/controller/properties/route/base/request/query/interface.d.ts +4 -1
  198. package/dist/cjs/interface/decorator/api/controller/properties/route/base/request/query/order/entry.interface.d.ts +6 -0
  199. package/dist/cjs/interface/decorator/api/controller/properties/route/base/request/query/order/index.d.ts +1 -0
  200. package/dist/cjs/interface/decorator/api/controller/properties/route/base/request/query/order/interface.d.ts +3 -0
  201. package/dist/cjs/interface/decorator/api/controller/properties/route/base/request/query/pagination.interface.d.ts +4 -0
  202. package/dist/cjs/interface/decorator/api/controller/properties/route/base/request/read-parameters-target.interface.d.ts +5 -0
  203. package/dist/cjs/interface/decorator/api/controller/properties/route/base/request/target.interface.d.ts +3 -2
  204. package/dist/cjs/interface/decorator/api/controller/properties/route/identity.interface.d.ts +3 -0
  205. package/dist/cjs/interface/decorator/api/controller/properties/route/index.d.ts +1 -0
  206. package/dist/cjs/interface/decorator/api/get-list/cursor-response-result.interface.d.ts +5 -0
  207. package/dist/cjs/interface/decorator/api/get-list/index.d.ts +2 -0
  208. package/dist/cjs/interface/decorator/api/index.d.ts +1 -1
  209. package/dist/cjs/module/api/authorization.module.js +2 -1
  210. package/dist/cjs/module/api/authorization.module.js.map +1 -1
  211. package/dist/cjs/package.json +1 -0
  212. package/dist/cjs/type/api-request-transformer.type.d.ts +4 -2
  213. package/dist/cjs/type/class/api/authorization/policy/before/get/list-result.type.d.ts +2 -1
  214. package/dist/cjs/type/class/api/authorization/policy/context/before/get/list-context.type.d.ts +4 -3
  215. package/dist/cjs/type/class/api/authorization/policy/context/with-request-metadata.type.d.ts +4 -3
  216. package/dist/cjs/type/class/api/authorization/policy/hook/execution-result.type.d.ts +5 -0
  217. package/dist/cjs/type/class/api/authorization/policy/hook/result.type.d.ts +3 -2
  218. package/dist/cjs/type/class/api/authorization/policy/hook/type.d.ts +2 -1
  219. package/dist/cjs/type/class/api/authorization/rule/transform-payload.type.d.ts +2 -2
  220. package/dist/cjs/type/class/api/controller/generated/function.type.d.ts +1 -0
  221. package/dist/cjs/type/class/api/controller/generated/index.d.ts +2 -0
  222. package/dist/cjs/type/class/api/controller/generated/scope-function-type.type.d.ts +2 -0
  223. package/dist/cjs/type/class/api/controller/get-list/compiled/index.d.ts +3 -0
  224. package/dist/cjs/type/class/api/controller/get-list/compiled/order-field.type.d.ts +16 -0
  225. package/dist/cjs/type/class/api/controller/get-list/compiled/order.type.d.ts +6 -0
  226. package/dist/cjs/type/class/api/controller/get-list/compiled/plan.type.d.ts +8 -0
  227. package/dist/cjs/type/class/api/controller/get-list/cursor/execution-options.type.d.ts +18 -0
  228. package/dist/cjs/type/class/api/controller/get-list/cursor/index.d.ts +2 -0
  229. package/dist/cjs/type/class/api/controller/get-list/cursor/query-runtime-result.type.d.ts +8 -0
  230. package/dist/cjs/type/class/api/controller/get-list/index.d.ts +2 -0
  231. package/dist/cjs/type/class/api/controller/index.d.ts +1 -0
  232. package/dist/cjs/type/class/api/subscriber/route/after/get/list-context.type.d.ts +3 -2
  233. package/dist/cjs/type/class/api/subscriber/route/before/get/list-context.type.d.ts +5 -6
  234. package/dist/cjs/type/decorator/api/controller/get-list/index.d.ts +1 -0
  235. package/dist/cjs/type/decorator/api/controller/get-list/query/dto-contract.type.d.ts +1 -0
  236. package/dist/cjs/type/decorator/api/controller/get-list/query/request-target.type.d.ts +7 -0
  237. package/dist/cjs/type/decorator/api/controller/get-list/query/type.d.ts +22 -2
  238. package/dist/cjs/type/decorator/api/controller/get-list/response.type.d.ts +3 -0
  239. package/dist/cjs/type/decorator/api/controller/index.d.ts +1 -0
  240. package/dist/cjs/type/decorator/api/controller/properties/route/contract.type.d.ts +5 -0
  241. package/dist/cjs/type/decorator/api/controller/properties/route/identity/index.d.ts +2 -0
  242. package/dist/cjs/type/decorator/api/controller/properties/route/identity/with.type.d.ts +11 -0
  243. package/dist/cjs/type/decorator/api/controller/properties/route/identity/without.type.d.ts +3 -0
  244. package/dist/cjs/type/decorator/api/controller/properties/route/read/dto.type.d.ts +10 -0
  245. package/dist/cjs/type/decorator/api/controller/properties/route/read/index.d.ts +3 -0
  246. package/dist/cjs/type/decorator/api/controller/properties/route/read/with.type.d.ts +11 -0
  247. package/dist/cjs/type/decorator/api/controller/properties/route/read/without.type.d.ts +3 -0
  248. package/dist/cjs/type/decorator/api/controller/properties/route/without-parameters-dto.type.d.ts +4 -0
  249. package/dist/cjs/type/decorator/api/controller/properties-route.type.d.ts +3 -3
  250. package/dist/cjs/type/decorator/api/controller/read/direct-scalar-field.type.d.ts +2 -0
  251. package/dist/cjs/type/decorator/api/controller/read/index.d.ts +2 -0
  252. package/dist/cjs/type/decorator/api/controller/read/parameter-transformer/index.d.ts +1 -0
  253. package/dist/cjs/type/decorator/api/controller/read/parameter-transformer/type.d.ts +3 -0
  254. package/dist/cjs/type/decorator/api/controller/read/parameter-transformer/with-string-key.type.d.ts +5 -0
  255. package/dist/cjs/type/decorator/api/property/describe/properties/base/properties.type.d.ts +1 -1
  256. package/dist/cjs/type/factory/api/controller/method/map.type.d.ts +4 -5
  257. package/dist/cjs/type/factory/api/controller/target-methods.type.d.ts +3 -3
  258. package/dist/cjs/type/utility/api/controller/transform-data/is-validation-properties.type.d.ts +3 -2
  259. package/dist/cjs/type/utility/api/controller/transform-data/object-to-transform.type.d.ts +4 -3
  260. package/dist/cjs/type/utility/api/controller/transform-data/runtime-transformer.type.d.ts +3 -0
  261. package/dist/cjs/type/utility/api/controller/transform-data/targets.type.d.ts +17 -0
  262. package/dist/cjs/type/utility/dto/generate/allowed-combination.type.d.ts +1 -1
  263. package/dist/cjs/utility/api/controller/apply/decorators.utility.d.ts +18 -2
  264. package/dist/cjs/utility/api/controller/apply/decorators.utility.js +24 -2
  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 +18 -0
  267. package/dist/cjs/utility/api/controller/apply/metadata.utility.js +23 -3
  268. package/dist/cjs/utility/api/controller/apply/metadata.utility.js.map +1 -1
  269. package/dist/cjs/utility/api/controller/build-route-documentation.utility.js +1 -0
  270. package/dist/cjs/utility/api/controller/build-route-documentation.utility.js.map +1 -1
  271. package/dist/cjs/utility/api/controller/get/dto.utility.d.ts +17 -0
  272. package/dist/cjs/utility/api/controller/get/dto.utility.js +90 -11
  273. package/dist/cjs/utility/api/controller/get/dto.utility.js.map +1 -1
  274. package/dist/cjs/utility/api/controller/get-list/query/get-pagination-mode.utility.d.ts +8 -0
  275. package/dist/cjs/utility/api/controller/get-list/query/get-pagination-mode.utility.js +43 -0
  276. package/dist/cjs/utility/api/controller/get-list/query/get-pagination-mode.utility.js.map +1 -0
  277. package/dist/cjs/utility/api/controller/get-list/query/open-api/decorators.utility.js +1 -0
  278. package/dist/cjs/utility/api/controller/get-list/query/open-api/decorators.utility.js.map +1 -1
  279. package/dist/cjs/utility/api/controller/get-list/query/open-api/value-schema.utility.js +1 -0
  280. package/dist/cjs/utility/api/controller/get-list/query/open-api/value-schema.utility.js.map +1 -1
  281. package/dist/cjs/utility/api/controller/get-list/query/resolve-cursor-order-fields.utility.d.ts +7 -0
  282. package/dist/cjs/utility/api/controller/get-list/query/resolve-cursor-order-fields.utility.js +26 -0
  283. package/dist/cjs/utility/api/controller/get-list/query/resolve-cursor-order-fields.utility.js.map +1 -0
  284. package/dist/cjs/utility/api/controller/get-list/transform/filter.utility.js +1 -0
  285. package/dist/cjs/utility/api/controller/get-list/transform/filter.utility.js.map +1 -1
  286. package/dist/cjs/utility/api/controller/handle-request-relations.utility.d.ts +2 -1
  287. package/dist/cjs/utility/api/controller/handle-request-relations.utility.js +1 -0
  288. package/dist/cjs/utility/api/controller/handle-request-relations.utility.js.map +1 -1
  289. package/dist/cjs/utility/api/controller/identity/assert-plan.utility.d.ts +8 -0
  290. package/dist/cjs/utility/api/controller/identity/assert-plan.utility.js +18 -0
  291. package/dist/cjs/utility/api/controller/identity/assert-plan.utility.js.map +1 -0
  292. package/dist/cjs/utility/api/controller/identity/index.d.ts +2 -0
  293. package/dist/cjs/utility/api/controller/identity/plan/get.utility.d.ts +7 -0
  294. package/dist/cjs/utility/api/controller/identity/plan/get.utility.js +15 -0
  295. package/dist/cjs/utility/api/controller/identity/plan/get.utility.js.map +1 -0
  296. package/dist/cjs/utility/api/controller/identity/plan/index.d.ts +2 -0
  297. package/dist/cjs/utility/api/controller/identity/plan/metadata-key.constant.d.ts +1 -0
  298. package/dist/cjs/utility/api/controller/identity/plan/metadata-key.constant.js +6 -0
  299. package/dist/cjs/utility/api/controller/identity/plan/metadata-key.constant.js.map +1 -0
  300. package/dist/cjs/utility/api/controller/identity/plan/set.utility.d.ts +8 -0
  301. package/dist/cjs/utility/api/controller/identity/plan/set.utility.js +16 -0
  302. package/dist/cjs/utility/api/controller/identity/plan/set.utility.js.map +1 -0
  303. package/dist/cjs/utility/api/controller/read/assert-plan.utility.d.ts +8 -0
  304. package/dist/cjs/utility/api/controller/read/assert-plan.utility.js +18 -0
  305. package/dist/cjs/utility/api/controller/read/assert-plan.utility.js.map +1 -0
  306. package/dist/cjs/utility/api/controller/read/index.d.ts +3 -0
  307. package/dist/cjs/utility/api/controller/read/plan/get.utility.d.ts +8 -0
  308. package/dist/cjs/utility/api/controller/read/plan/get.utility.js +16 -0
  309. package/dist/cjs/utility/api/controller/read/plan/get.utility.js.map +1 -0
  310. package/dist/cjs/utility/api/controller/read/plan/index.d.ts +2 -0
  311. package/dist/cjs/utility/api/controller/read/plan/metadata-key.constant.d.ts +1 -0
  312. package/dist/cjs/utility/api/controller/read/plan/metadata-key.constant.js +6 -0
  313. package/dist/cjs/utility/api/controller/read/plan/metadata-key.constant.js.map +1 -0
  314. package/dist/cjs/utility/api/controller/read/plan/set.utility.d.ts +9 -0
  315. package/dist/cjs/utility/api/controller/read/plan/set.utility.js +17 -0
  316. package/dist/cjs/utility/api/controller/read/plan/set.utility.js.map +1 -0
  317. package/dist/cjs/utility/api/controller/read/scope.utility.d.ts +12 -0
  318. package/dist/cjs/utility/api/controller/read/scope.utility.js +38 -0
  319. package/dist/cjs/utility/api/controller/read/scope.utility.js.map +1 -0
  320. package/dist/cjs/utility/api/controller/transform-data.utility.js +13 -11
  321. package/dist/cjs/utility/api/controller/transform-data.utility.js.map +1 -1
  322. package/dist/cjs/utility/api/controller/validate-request.utility.d.ts +2 -1
  323. package/dist/cjs/utility/api/controller/validate-request.utility.js.map +1 -1
  324. package/dist/cjs/utility/api/controller/write/dto-swagger.utility.d.ts +17 -0
  325. package/dist/cjs/utility/api/controller/write/dto-swagger.utility.js +23 -4
  326. package/dist/cjs/utility/api/controller/write/dto-swagger.utility.js.map +1 -1
  327. package/dist/cjs/utility/api/function-transaction.utility.js +1 -0
  328. package/dist/cjs/utility/api/function-transaction.utility.js.map +1 -1
  329. package/dist/cjs/utility/api/route/apply-dto-metadata.utility.js +1 -0
  330. package/dist/cjs/utility/api/route/apply-dto-metadata.utility.js.map +1 -1
  331. package/dist/cjs/utility/api/route/response/project-relation.utility.js +1 -0
  332. package/dist/cjs/utility/api/route/response/project-relation.utility.js.map +1 -1
  333. package/dist/cjs/utility/authorization/scope-merge-where.utility.js +247 -130
  334. package/dist/cjs/utility/authorization/scope-merge-where.utility.js.map +1 -1
  335. package/dist/cjs/utility/dto/build-decorator.utility.js +1 -0
  336. package/dist/cjs/utility/dto/build-decorator.utility.js.map +1 -1
  337. package/dist/cjs/utility/dto/generate/core.utility.js +19 -7
  338. package/dist/cjs/utility/dto/generate/core.utility.js.map +1 -1
  339. package/dist/cjs/utility/dto/generate/dynamic.utility.js +1 -0
  340. package/dist/cjs/utility/dto/generate/dynamic.utility.js.map +1 -1
  341. package/dist/cjs/utility/dto/generate/exception.utility.js +1 -0
  342. package/dist/cjs/utility/dto/generate/exception.utility.js.map +1 -1
  343. package/dist/cjs/utility/dto/generate/filter-decorator.utility.js +1 -0
  344. package/dist/cjs/utility/dto/generate/filter-decorator.utility.js.map +1 -1
  345. package/dist/cjs/utility/dto/generate/get-list/cursor-response.utility.d.ts +10 -0
  346. package/dist/cjs/utility/dto/generate/get-list/cursor-response.utility.js +100 -0
  347. package/dist/cjs/utility/dto/generate/get-list/cursor-response.utility.js.map +1 -0
  348. package/dist/cjs/utility/dto/generate/get-list/index.d.ts +3 -0
  349. package/dist/cjs/utility/dto/generate/{get-list-query-properties.utility.d.ts → get-list/query-properties.utility.d.ts} +4 -4
  350. package/dist/cjs/utility/dto/generate/{get-list-query-properties.utility.js → get-list/query-properties.utility.js} +35 -34
  351. package/dist/cjs/utility/dto/generate/get-list/query-properties.utility.js.map +1 -0
  352. package/dist/cjs/utility/dto/generate/{get-list-response.utility.d.ts → get-list/response.utility.d.ts} +1 -1
  353. package/dist/cjs/utility/dto/generate/{get-list-response.utility.js → get-list/response.utility.js} +33 -32
  354. package/dist/cjs/utility/dto/generate/get-list/response.utility.js.map +1 -0
  355. package/dist/cjs/utility/dto/generate/identity-read-parameters.utility.d.ts +17 -0
  356. package/dist/cjs/utility/dto/generate/identity-read-parameters.utility.js +113 -0
  357. package/dist/cjs/utility/dto/generate/identity-read-parameters.utility.js.map +1 -0
  358. package/dist/cjs/utility/dto/generate/index.d.ts +1 -1
  359. package/dist/cjs/utility/dto/generate/read-parameters.utility.d.ts +17 -0
  360. package/dist/cjs/utility/dto/generate/read-parameters.utility.js +111 -0
  361. package/dist/cjs/utility/dto/generate/read-parameters.utility.js.map +1 -0
  362. package/dist/cjs/utility/dto/get/get-list-query-base-class.utility.d.ts +3 -2
  363. package/dist/cjs/utility/dto/get/get-list-query-base-class.utility.js +48 -15
  364. package/dist/cjs/utility/dto/get/get-list-query-base-class.utility.js.map +1 -1
  365. package/dist/cjs/utility/dto/handle-date-property.utility.js +1 -0
  366. package/dist/cjs/utility/dto/handle-date-property.utility.js.map +1 -1
  367. package/dist/cjs/utility/dto/is/property/infrastructure-timestamp.utility.js +1 -0
  368. package/dist/cjs/utility/dto/is/property/infrastructure-timestamp.utility.js.map +1 -1
  369. package/dist/cjs/utility/dto/is/property/should-be-marked.utility.js +1 -0
  370. package/dist/cjs/utility/dto/is/property/should-be-marked.utility.js.map +1 -1
  371. package/dist/cjs/utility/dto/is/should-be-generated.utility.js +1 -0
  372. package/dist/cjs/utility/dto/is/should-be-generated.utility.js.map +1 -1
  373. package/dist/cjs/utility/object-find-property-descriptor.utility.d.ts +7 -0
  374. package/dist/cjs/utility/object-find-property-descriptor.utility.js +22 -0
  375. package/dist/cjs/utility/object-find-property-descriptor.utility.js.map +1 -0
  376. package/dist/cjs/validator/at-most-one-of-listed-properties.validator.d.ts +5 -0
  377. package/dist/cjs/validator/at-most-one-of-listed-properties.validator.js +21 -0
  378. package/dist/cjs/validator/at-most-one-of-listed-properties.validator.js.map +1 -0
  379. package/dist/esm/class/api/authorization/guard.class.d.ts +1 -0
  380. package/dist/esm/class/api/authorization/guard.class.js +39 -3
  381. package/dist/esm/class/api/authorization/guard.class.js.map +1 -1
  382. package/dist/esm/class/api/authorization/iam/engine.class.d.ts +3 -2
  383. package/dist/esm/class/api/authorization/iam/engine.class.js.map +1 -1
  384. package/dist/esm/class/api/authorization/iam/query-planner.class.d.ts +3 -2
  385. package/dist/esm/class/api/authorization/iam/query-planner.class.js.map +1 -1
  386. package/dist/esm/class/api/authorization/policy/base.class.js +1 -0
  387. package/dist/esm/class/api/authorization/policy/base.class.js.map +1 -1
  388. package/dist/esm/class/api/authorization/policy/executor.class.d.ts +2 -1
  389. package/dist/esm/class/api/authorization/policy/executor.class.js.map +1 -1
  390. package/dist/esm/class/api/authorization/policy/registry.class.d.ts +3 -2
  391. package/dist/esm/class/api/authorization/policy/registry.class.js.map +1 -1
  392. package/dist/esm/class/api/authorization/runtime.class.d.ts +3 -2
  393. package/dist/esm/class/api/authorization/runtime.class.js +2 -1
  394. package/dist/esm/class/api/authorization/runtime.class.js.map +1 -1
  395. package/dist/esm/class/api/authorization/simulator.class.d.ts +3 -3
  396. package/dist/esm/class/api/authorization/simulator.class.js.map +1 -1
  397. package/dist/esm/class/api/controller/generated/function-capability.class.d.ts +12 -0
  398. package/dist/esm/class/api/controller/generated/function-capability.class.js +45 -0
  399. package/dist/esm/class/api/controller/generated/function-capability.class.js.map +1 -0
  400. package/dist/esm/class/api/controller/generated/get-many-contract.class.d.ts +25 -0
  401. package/dist/esm/class/api/controller/generated/get-many-contract.class.js +248 -0
  402. package/dist/esm/class/api/controller/generated/get-many-contract.class.js.map +1 -0
  403. package/dist/esm/class/api/controller/generated/index.d.ts +3 -0
  404. package/dist/esm/class/api/controller/generated/read-scope-storage.class.d.ts +19 -0
  405. package/dist/esm/class/api/controller/generated/read-scope-storage.class.js +118 -0
  406. package/dist/esm/class/api/controller/generated/read-scope-storage.class.js.map +1 -0
  407. package/dist/esm/class/api/controller/generated/relation-cache-contract.class.d.ts +11 -0
  408. package/dist/esm/class/api/controller/generated/relation-cache-contract.class.js +68 -0
  409. package/dist/esm/class/api/controller/generated/relation-cache-contract.class.js.map +1 -0
  410. package/dist/esm/class/api/controller/generated/scope-where-contract.class.d.ts +14 -0
  411. package/dist/esm/class/api/controller/generated/scope-where-contract.class.js +66 -0
  412. package/dist/esm/class/api/controller/generated/scope-where-contract.class.js.map +1 -0
  413. package/dist/esm/class/api/controller/generated/security-snapshot.class.d.ts +14 -0
  414. package/dist/esm/class/api/controller/generated/security-snapshot.class.js +163 -0
  415. package/dist/esm/class/api/controller/generated/security-snapshot.class.js.map +1 -0
  416. package/dist/esm/class/api/controller/generated/write-hydration-contract.class.d.ts +9 -0
  417. package/dist/esm/class/api/controller/generated/write-hydration-contract.class.js +67 -0
  418. package/dist/esm/class/api/controller/generated/write-hydration-contract.class.js.map +1 -0
  419. package/dist/esm/class/api/controller/get-list/cursor/data-source-contract.class.d.ts +32 -0
  420. package/dist/esm/class/api/controller/get-list/cursor/data-source-contract.class.js +422 -0
  421. package/dist/esm/class/api/controller/get-list/cursor/data-source-contract.class.js.map +1 -0
  422. package/dist/esm/class/api/controller/get-list/cursor/index.d.ts +2 -0
  423. package/dist/esm/class/api/controller/get-list/cursor/runtime.class.d.ts +28 -0
  424. package/dist/esm/class/api/controller/get-list/cursor/runtime.class.js +369 -0
  425. package/dist/esm/class/api/controller/get-list/cursor/runtime.class.js.map +1 -0
  426. package/dist/esm/class/api/controller/get-list/query/plan-compiler.class.d.ts +20 -0
  427. package/dist/esm/class/api/controller/get-list/query/plan-compiler.class.js +479 -41
  428. package/dist/esm/class/api/controller/get-list/query/plan-compiler.class.js.map +1 -1
  429. package/dist/esm/class/api/controller/get-list/query/runtime.class.d.ts +2 -0
  430. package/dist/esm/class/api/controller/get-list/query/runtime.class.js +45 -2
  431. package/dist/esm/class/api/controller/get-list/query/runtime.class.js.map +1 -1
  432. package/dist/esm/class/api/controller/identity-plan-compiler.class.d.ts +14 -0
  433. package/dist/esm/class/api/controller/identity-plan-compiler.class.js +148 -0
  434. package/dist/esm/class/api/controller/identity-plan-compiler.class.js.map +1 -0
  435. package/dist/esm/class/api/controller/index.d.ts +1 -0
  436. package/dist/esm/class/api/controller/read-plan-compiler.class.d.ts +17 -0
  437. package/dist/esm/class/api/controller/read-plan-compiler.class.js +238 -0
  438. package/dist/esm/class/api/controller/read-plan-compiler.class.js.map +1 -0
  439. package/dist/esm/class/api/function/context-storage.class.js +1 -0
  440. package/dist/esm/class/api/function/context-storage.class.js.map +1 -1
  441. package/dist/esm/class/api/function/custom-runtime.class.js +1 -0
  442. package/dist/esm/class/api/function/custom-runtime.class.js.map +1 -1
  443. package/dist/esm/class/api/function/step-runtime.class.js +1 -0
  444. package/dist/esm/class/api/function/step-runtime.class.js.map +1 -1
  445. package/dist/esm/class/api/function/transaction/exception/commit-unknown-outcome.class.js +1 -0
  446. package/dist/esm/class/api/function/transaction/exception/commit-unknown-outcome.class.js.map +1 -1
  447. package/dist/esm/class/api/function/transaction/exception/post-commit.class.js +1 -0
  448. package/dist/esm/class/api/function/transaction/exception/post-commit.class.js.map +1 -1
  449. package/dist/esm/class/api/function/transaction/exception/rollback.class.js +1 -0
  450. package/dist/esm/class/api/function/transaction/exception/rollback.class.js.map +1 -1
  451. package/dist/esm/class/api/function/transaction/lifecycle.class.js +1 -0
  452. package/dist/esm/class/api/function/transaction/lifecycle.class.js.map +1 -1
  453. package/dist/esm/class/api/function/transaction/registry.class.js +1 -0
  454. package/dist/esm/class/api/function/transaction/registry.class.js.map +1 -1
  455. package/dist/esm/class/api/function/transaction/runtime.class.js +1 -0
  456. package/dist/esm/class/api/function/transaction/runtime.class.js.map +1 -1
  457. package/dist/esm/class/api/function/transaction/scope.class.js +1 -0
  458. package/dist/esm/class/api/function/transaction/scope.class.js.map +1 -1
  459. package/dist/esm/class/api/route-runtime.class.d.ts +2 -0
  460. package/dist/esm/class/api/route-runtime.class.js +201 -59
  461. package/dist/esm/class/api/route-runtime.class.js.map +1 -1
  462. package/dist/esm/class/api/subscriber/executor.class.js +1 -0
  463. package/dist/esm/class/api/subscriber/executor.class.js.map +1 -1
  464. package/dist/esm/class/api/subscriber/registry.class.d.ts +3 -3
  465. package/dist/esm/class/api/subscriber/registry.class.js +3 -1
  466. package/dist/esm/class/api/subscriber/registry.class.js.map +1 -1
  467. package/dist/esm/class/api/subscriber/route-base.class.d.ts +2 -2
  468. package/dist/esm/class/api/subscriber/route-base.class.js.map +1 -1
  469. package/dist/esm/class/utility/dto/exception/details/foreign-key-violation.class.js +1 -0
  470. package/dist/esm/class/utility/dto/exception/details/foreign-key-violation.class.js.map +1 -1
  471. package/dist/esm/class/utility/dto/exception/details/unique-violation.class.js +1 -0
  472. package/dist/esm/class/utility/dto/exception/details/unique-violation.class.js.map +1 -1
  473. package/dist/esm/class/utility/dto/property/factory/number.class.js +1 -0
  474. package/dist/esm/class/utility/dto/property/factory/number.class.js.map +1 -1
  475. package/dist/esm/class/utility/dto/property/factory/relation.class.js +1 -0
  476. package/dist/esm/class/utility/dto/property/factory/relation.class.js.map +1 -1
  477. package/dist/esm/class/utility/dto/strategy/body.class.js +1 -0
  478. package/dist/esm/class/utility/dto/strategy/body.class.js.map +1 -1
  479. package/dist/esm/class/utility/dto/strategy/query.class.js +1 -0
  480. package/dist/esm/class/utility/dto/strategy/query.class.js.map +1 -1
  481. package/dist/esm/class/utility/dto/strategy/request.class.js +1 -0
  482. package/dist/esm/class/utility/dto/strategy/request.class.js.map +1 -1
  483. package/dist/esm/class/utility/dto/strategy/response.class.js +1 -0
  484. package/dist/esm/class/utility/dto/strategy/response.class.js.map +1 -1
  485. package/dist/esm/constant/api-controller-cursor.constant.d.ts +1 -0
  486. package/dist/esm/constant/api-controller-cursor.constant.js +4 -0
  487. package/dist/esm/constant/api-controller-cursor.constant.js.map +1 -0
  488. package/dist/esm/constant/filter/operator-registry.constant.js +1 -0
  489. package/dist/esm/constant/filter/operator-registry.constant.js.map +1 -1
  490. package/dist/esm/constant/safe-object-property-names.constant.d.ts +1 -0
  491. package/dist/esm/constant/safe-object-property-names.constant.js +4 -0
  492. package/dist/esm/constant/safe-object-property-names.constant.js.map +1 -0
  493. package/dist/esm/constant/utility/api/get-default-string-format-properties/customizer-map.constant.js +1 -0
  494. package/dist/esm/constant/utility/api/get-default-string-format-properties/customizer-map.constant.js.map +1 -1
  495. package/dist/esm/constant/utility/dto/constant.js +1 -0
  496. package/dist/esm/constant/utility/dto/constant.js.map +1 -1
  497. package/dist/esm/decorator/api/controller/decorator.js.map +1 -1
  498. package/dist/esm/decorator/api/function/create.decorator.js +1 -0
  499. package/dist/esm/decorator/api/function/create.decorator.js.map +1 -1
  500. package/dist/esm/decorator/api/function/custom.decorator.js +1 -0
  501. package/dist/esm/decorator/api/function/custom.decorator.js.map +1 -1
  502. package/dist/esm/decorator/api/function/decorator.js +5 -0
  503. package/dist/esm/decorator/api/function/decorator.js.map +1 -1
  504. package/dist/esm/decorator/api/function/delete.decorator.js +19 -7
  505. package/dist/esm/decorator/api/function/delete.decorator.js.map +1 -1
  506. package/dist/esm/decorator/api/function/get/decorator.js +53 -19
  507. package/dist/esm/decorator/api/function/get/decorator.js.map +1 -1
  508. package/dist/esm/decorator/api/function/get/list.decorator.js +41 -27
  509. package/dist/esm/decorator/api/function/get/list.decorator.js.map +1 -1
  510. package/dist/esm/decorator/api/function/get/many.decorator.js +70 -19
  511. package/dist/esm/decorator/api/function/get/many.decorator.js.map +1 -1
  512. package/dist/esm/decorator/api/function/step.decorator.js +1 -0
  513. package/dist/esm/decorator/api/function/step.decorator.js.map +1 -1
  514. package/dist/esm/decorator/api/function/update.decorator.js +20 -1
  515. package/dist/esm/decorator/api/function/update.decorator.js.map +1 -1
  516. package/dist/esm/decorator/api/method.decorator.js +1 -0
  517. package/dist/esm/decorator/api/method.decorator.js.map +1 -1
  518. package/dist/esm/decorator/api/property/boolean.decorator.js +1 -0
  519. package/dist/esm/decorator/api/property/boolean.decorator.js.map +1 -1
  520. package/dist/esm/decorator/api/property/date.decorator.js +1 -0
  521. package/dist/esm/decorator/api/property/date.decorator.js.map +1 -1
  522. package/dist/esm/decorator/api/property/number.decorator.js +1 -0
  523. package/dist/esm/decorator/api/property/number.decorator.js.map +1 -1
  524. package/dist/esm/decorator/api/property/string.decorator.js +1 -0
  525. package/dist/esm/decorator/api/property/string.decorator.js.map +1 -1
  526. package/dist/esm/decorator/api/property/uuid.decorator.js +1 -0
  527. package/dist/esm/decorator/api/property/uuid.decorator.js.map +1 -1
  528. package/dist/esm/decorator/api/route-custom.decorator.js +1 -0
  529. package/dist/esm/decorator/api/route-custom.decorator.js.map +1 -1
  530. package/dist/esm/decorator/api/service/decorator.js +16 -0
  531. package/dist/esm/decorator/api/service/decorator.js.map +1 -1
  532. package/dist/esm/enum/decorator/api/controller/get-list/query/index.d.ts +1 -0
  533. package/dist/esm/enum/decorator/api/controller/get-list/query/pagination-mode.enum.d.ts +4 -0
  534. package/dist/esm/enum/decorator/api/controller/get-list/query/pagination-mode.enum.js +8 -0
  535. package/dist/esm/enum/decorator/api/controller/get-list/query/pagination-mode.enum.js.map +1 -0
  536. package/dist/esm/factory/api-controller.factory.d.ts +4 -4
  537. package/dist/esm/factory/api-controller.factory.js +36 -10
  538. package/dist/esm/factory/api-controller.factory.js.map +1 -1
  539. package/dist/esm/index.js +7 -4
  540. package/dist/esm/index.js.map +1 -1
  541. package/dist/esm/interface/api/request-validator.interface.d.ts +3 -2
  542. package/dist/esm/interface/class/api/authorization/policy/build-options.interface.d.ts +3 -2
  543. package/dist/esm/interface/class/api/authorization/policy/registry.interface.d.ts +3 -2
  544. package/dist/esm/interface/class/api/authorization/policy/subscriber/context/data.interface.d.ts +2 -1
  545. package/dist/esm/interface/class/api/authorization/policy/subscriber/context/interface.d.ts +3 -2
  546. package/dist/esm/interface/class/api/authorization/policy/subscriber/interface.d.ts +9 -8
  547. package/dist/esm/interface/class/api/authorization/policy/subscriber/registration.interface.d.ts +3 -2
  548. package/dist/esm/interface/class/api/authorization/request-metadata.interface.d.ts +3 -2
  549. package/dist/esm/interface/class/api/controller/generated/get-many-session.interface.d.ts +11 -0
  550. package/dist/esm/interface/class/api/controller/generated/index.d.ts +2 -0
  551. package/dist/esm/interface/class/api/controller/generated/read-scope-entry.interface.d.ts +10 -0
  552. package/dist/esm/interface/class/api/controller/get-list/query/plan/order/entry.interface.d.ts +5 -0
  553. package/dist/esm/interface/class/api/controller/get-list/query/plan/order/index.d.ts +1 -0
  554. package/dist/esm/interface/class/api/controller/get-list/query/plan/order/interface.d.ts +3 -0
  555. package/dist/esm/interface/class/api/controller/get-list/query/plan/pagination.interface.d.ts +4 -0
  556. package/dist/esm/interface/class/api/controller/get-list/query/runtime-result.interface.d.ts +2 -0
  557. package/dist/esm/interface/class/api/controller/identity-plan.interface.d.ts +7 -0
  558. package/dist/esm/interface/class/api/controller/index.d.ts +1 -0
  559. package/dist/esm/interface/class/api/controller/read/index.d.ts +1 -0
  560. package/dist/esm/interface/class/api/controller/read/plan/index.d.ts +2 -0
  561. package/dist/esm/interface/class/api/controller/read/plan/interface.d.ts +7 -0
  562. package/dist/esm/interface/class/api/controller/read/plan/parameter.interface.d.ts +4 -0
  563. package/dist/esm/interface/class/api/route/runtime/generated/targets.interface.d.ts +2 -1
  564. package/dist/esm/interface/class/api/subscriber/route/execution/context/data/extended.interface.d.ts +3 -2
  565. package/dist/esm/interface/class/api/subscriber/route.interface.d.ts +7 -7
  566. package/dist/esm/interface/decorator/api/controller/properties/route/base/index.d.ts +1 -0
  567. package/dist/esm/interface/decorator/api/controller/properties/route/base/read/index.d.ts +3 -0
  568. package/dist/esm/interface/decorator/api/controller/properties/route/base/read/interface.d.ts +4 -0
  569. package/dist/esm/interface/decorator/api/controller/properties/route/base/read/scope-parameter.interface.d.ts +5 -0
  570. package/dist/esm/interface/decorator/api/controller/properties/route/base/read/scope.interface.d.ts +4 -0
  571. package/dist/esm/interface/decorator/api/controller/properties/route/base/request/index.d.ts +1 -0
  572. package/dist/esm/interface/decorator/api/controller/properties/route/base/request/interface.d.ts +2 -2
  573. package/dist/esm/interface/decorator/api/controller/properties/route/base/request/query/index.d.ts +1 -0
  574. package/dist/esm/interface/decorator/api/controller/properties/route/base/request/query/interface.d.ts +4 -1
  575. package/dist/esm/interface/decorator/api/controller/properties/route/base/request/query/order/entry.interface.d.ts +6 -0
  576. package/dist/esm/interface/decorator/api/controller/properties/route/base/request/query/order/index.d.ts +1 -0
  577. package/dist/esm/interface/decorator/api/controller/properties/route/base/request/query/order/interface.d.ts +3 -0
  578. package/dist/esm/interface/decorator/api/controller/properties/route/base/request/query/pagination.interface.d.ts +4 -0
  579. package/dist/esm/interface/decorator/api/controller/properties/route/base/request/read-parameters-target.interface.d.ts +5 -0
  580. package/dist/esm/interface/decorator/api/controller/properties/route/base/request/target.interface.d.ts +3 -2
  581. package/dist/esm/interface/decorator/api/controller/properties/route/identity.interface.d.ts +3 -0
  582. package/dist/esm/interface/decorator/api/controller/properties/route/index.d.ts +1 -0
  583. package/dist/esm/interface/decorator/api/get-list/cursor-response-result.interface.d.ts +5 -0
  584. package/dist/esm/interface/decorator/api/get-list/index.d.ts +2 -0
  585. package/dist/esm/interface/decorator/api/index.d.ts +1 -1
  586. package/dist/esm/module/api/authorization.module.js +2 -1
  587. package/dist/esm/module/api/authorization.module.js.map +1 -1
  588. package/dist/esm/package.json +1 -0
  589. package/dist/esm/type/api-request-transformer.type.d.ts +4 -2
  590. package/dist/esm/type/class/api/authorization/policy/before/get/list-result.type.d.ts +2 -1
  591. package/dist/esm/type/class/api/authorization/policy/context/before/get/list-context.type.d.ts +4 -3
  592. package/dist/esm/type/class/api/authorization/policy/context/with-request-metadata.type.d.ts +4 -3
  593. package/dist/esm/type/class/api/authorization/policy/hook/execution-result.type.d.ts +5 -0
  594. package/dist/esm/type/class/api/authorization/policy/hook/result.type.d.ts +3 -2
  595. package/dist/esm/type/class/api/authorization/policy/hook/type.d.ts +2 -1
  596. package/dist/esm/type/class/api/authorization/rule/transform-payload.type.d.ts +2 -2
  597. package/dist/esm/type/class/api/controller/generated/function.type.d.ts +1 -0
  598. package/dist/esm/type/class/api/controller/generated/index.d.ts +2 -0
  599. package/dist/esm/type/class/api/controller/generated/scope-function-type.type.d.ts +2 -0
  600. package/dist/esm/type/class/api/controller/get-list/compiled/index.d.ts +3 -0
  601. package/dist/esm/type/class/api/controller/get-list/compiled/order-field.type.d.ts +16 -0
  602. package/dist/esm/type/class/api/controller/get-list/compiled/order.type.d.ts +6 -0
  603. package/dist/esm/type/class/api/controller/get-list/compiled/plan.type.d.ts +8 -0
  604. package/dist/esm/type/class/api/controller/get-list/cursor/execution-options.type.d.ts +18 -0
  605. package/dist/esm/type/class/api/controller/get-list/cursor/index.d.ts +2 -0
  606. package/dist/esm/type/class/api/controller/get-list/cursor/query-runtime-result.type.d.ts +8 -0
  607. package/dist/esm/type/class/api/controller/get-list/index.d.ts +2 -0
  608. package/dist/esm/type/class/api/controller/index.d.ts +1 -0
  609. package/dist/esm/type/class/api/subscriber/route/after/get/list-context.type.d.ts +3 -2
  610. package/dist/esm/type/class/api/subscriber/route/before/get/list-context.type.d.ts +5 -6
  611. package/dist/esm/type/decorator/api/controller/get-list/index.d.ts +1 -0
  612. package/dist/esm/type/decorator/api/controller/get-list/query/dto-contract.type.d.ts +1 -0
  613. package/dist/esm/type/decorator/api/controller/get-list/query/request-target.type.d.ts +7 -0
  614. package/dist/esm/type/decorator/api/controller/get-list/query/type.d.ts +22 -2
  615. package/dist/esm/type/decorator/api/controller/get-list/response.type.d.ts +3 -0
  616. package/dist/esm/type/decorator/api/controller/index.d.ts +1 -0
  617. package/dist/esm/type/decorator/api/controller/properties/route/contract.type.d.ts +5 -0
  618. package/dist/esm/type/decorator/api/controller/properties/route/identity/index.d.ts +2 -0
  619. package/dist/esm/type/decorator/api/controller/properties/route/identity/with.type.d.ts +11 -0
  620. package/dist/esm/type/decorator/api/controller/properties/route/identity/without.type.d.ts +3 -0
  621. package/dist/esm/type/decorator/api/controller/properties/route/read/dto.type.d.ts +10 -0
  622. package/dist/esm/type/decorator/api/controller/properties/route/read/index.d.ts +3 -0
  623. package/dist/esm/type/decorator/api/controller/properties/route/read/with.type.d.ts +11 -0
  624. package/dist/esm/type/decorator/api/controller/properties/route/read/without.type.d.ts +3 -0
  625. package/dist/esm/type/decorator/api/controller/properties/route/without-parameters-dto.type.d.ts +4 -0
  626. package/dist/esm/type/decorator/api/controller/properties-route.type.d.ts +3 -3
  627. package/dist/esm/type/decorator/api/controller/read/direct-scalar-field.type.d.ts +2 -0
  628. package/dist/esm/type/decorator/api/controller/read/index.d.ts +2 -0
  629. package/dist/esm/type/decorator/api/controller/read/parameter-transformer/index.d.ts +1 -0
  630. package/dist/esm/type/decorator/api/controller/read/parameter-transformer/type.d.ts +3 -0
  631. package/dist/esm/type/decorator/api/controller/read/parameter-transformer/with-string-key.type.d.ts +5 -0
  632. package/dist/esm/type/decorator/api/property/describe/properties/base/properties.type.d.ts +1 -1
  633. package/dist/esm/type/factory/api/controller/method/map.type.d.ts +4 -5
  634. package/dist/esm/type/factory/api/controller/target-methods.type.d.ts +3 -3
  635. package/dist/esm/type/utility/api/controller/transform-data/is-validation-properties.type.d.ts +3 -2
  636. package/dist/esm/type/utility/api/controller/transform-data/object-to-transform.type.d.ts +4 -3
  637. package/dist/esm/type/utility/api/controller/transform-data/runtime-transformer.type.d.ts +3 -0
  638. package/dist/esm/type/utility/api/controller/transform-data/targets.type.d.ts +17 -0
  639. package/dist/esm/type/utility/dto/generate/allowed-combination.type.d.ts +1 -1
  640. package/dist/esm/utility/api/controller/apply/decorators.utility.d.ts +18 -2
  641. package/dist/esm/utility/api/controller/apply/decorators.utility.js +25 -4
  642. package/dist/esm/utility/api/controller/apply/decorators.utility.js.map +1 -1
  643. package/dist/esm/utility/api/controller/apply/metadata.utility.d.ts +18 -0
  644. package/dist/esm/utility/api/controller/apply/metadata.utility.js +24 -5
  645. package/dist/esm/utility/api/controller/apply/metadata.utility.js.map +1 -1
  646. package/dist/esm/utility/api/controller/build-route-documentation.utility.js +1 -0
  647. package/dist/esm/utility/api/controller/build-route-documentation.utility.js.map +1 -1
  648. package/dist/esm/utility/api/controller/get/dto.utility.d.ts +17 -0
  649. package/dist/esm/utility/api/controller/get/dto.utility.js +90 -12
  650. package/dist/esm/utility/api/controller/get/dto.utility.js.map +1 -1
  651. package/dist/esm/utility/api/controller/get-list/query/get-pagination-mode.utility.d.ts +8 -0
  652. package/dist/esm/utility/api/controller/get-list/query/get-pagination-mode.utility.js +41 -0
  653. package/dist/esm/utility/api/controller/get-list/query/get-pagination-mode.utility.js.map +1 -0
  654. package/dist/esm/utility/api/controller/get-list/query/open-api/decorators.utility.js +1 -0
  655. package/dist/esm/utility/api/controller/get-list/query/open-api/decorators.utility.js.map +1 -1
  656. package/dist/esm/utility/api/controller/get-list/query/open-api/value-schema.utility.js +1 -0
  657. package/dist/esm/utility/api/controller/get-list/query/open-api/value-schema.utility.js.map +1 -1
  658. package/dist/esm/utility/api/controller/get-list/query/resolve-cursor-order-fields.utility.d.ts +7 -0
  659. package/dist/esm/utility/api/controller/get-list/query/resolve-cursor-order-fields.utility.js +24 -0
  660. package/dist/esm/utility/api/controller/get-list/query/resolve-cursor-order-fields.utility.js.map +1 -0
  661. package/dist/esm/utility/api/controller/get-list/transform/filter.utility.js +1 -0
  662. package/dist/esm/utility/api/controller/get-list/transform/filter.utility.js.map +1 -1
  663. package/dist/esm/utility/api/controller/handle-request-relations.utility.d.ts +2 -1
  664. package/dist/esm/utility/api/controller/handle-request-relations.utility.js +1 -0
  665. package/dist/esm/utility/api/controller/handle-request-relations.utility.js.map +1 -1
  666. package/dist/esm/utility/api/controller/identity/assert-plan.utility.d.ts +8 -0
  667. package/dist/esm/utility/api/controller/identity/assert-plan.utility.js +16 -0
  668. package/dist/esm/utility/api/controller/identity/assert-plan.utility.js.map +1 -0
  669. package/dist/esm/utility/api/controller/identity/index.d.ts +2 -0
  670. package/dist/esm/utility/api/controller/identity/plan/get.utility.d.ts +7 -0
  671. package/dist/esm/utility/api/controller/identity/plan/get.utility.js +13 -0
  672. package/dist/esm/utility/api/controller/identity/plan/get.utility.js.map +1 -0
  673. package/dist/esm/utility/api/controller/identity/plan/index.d.ts +2 -0
  674. package/dist/esm/utility/api/controller/identity/plan/metadata-key.constant.d.ts +1 -0
  675. package/dist/esm/utility/api/controller/identity/plan/metadata-key.constant.js +4 -0
  676. package/dist/esm/utility/api/controller/identity/plan/metadata-key.constant.js.map +1 -0
  677. package/dist/esm/utility/api/controller/identity/plan/set.utility.d.ts +8 -0
  678. package/dist/esm/utility/api/controller/identity/plan/set.utility.js +14 -0
  679. package/dist/esm/utility/api/controller/identity/plan/set.utility.js.map +1 -0
  680. package/dist/esm/utility/api/controller/read/assert-plan.utility.d.ts +8 -0
  681. package/dist/esm/utility/api/controller/read/assert-plan.utility.js +16 -0
  682. package/dist/esm/utility/api/controller/read/assert-plan.utility.js.map +1 -0
  683. package/dist/esm/utility/api/controller/read/index.d.ts +3 -0
  684. package/dist/esm/utility/api/controller/read/plan/get.utility.d.ts +8 -0
  685. package/dist/esm/utility/api/controller/read/plan/get.utility.js +14 -0
  686. package/dist/esm/utility/api/controller/read/plan/get.utility.js.map +1 -0
  687. package/dist/esm/utility/api/controller/read/plan/index.d.ts +2 -0
  688. package/dist/esm/utility/api/controller/read/plan/metadata-key.constant.d.ts +1 -0
  689. package/dist/esm/utility/api/controller/read/plan/metadata-key.constant.js +4 -0
  690. package/dist/esm/utility/api/controller/read/plan/metadata-key.constant.js.map +1 -0
  691. package/dist/esm/utility/api/controller/read/plan/set.utility.d.ts +9 -0
  692. package/dist/esm/utility/api/controller/read/plan/set.utility.js +15 -0
  693. package/dist/esm/utility/api/controller/read/plan/set.utility.js.map +1 -0
  694. package/dist/esm/utility/api/controller/read/scope.utility.d.ts +12 -0
  695. package/dist/esm/utility/api/controller/read/scope.utility.js +36 -0
  696. package/dist/esm/utility/api/controller/read/scope.utility.js.map +1 -0
  697. package/dist/esm/utility/api/controller/transform-data.utility.js +13 -11
  698. package/dist/esm/utility/api/controller/transform-data.utility.js.map +1 -1
  699. package/dist/esm/utility/api/controller/validate-request.utility.d.ts +2 -1
  700. package/dist/esm/utility/api/controller/validate-request.utility.js.map +1 -1
  701. package/dist/esm/utility/api/controller/write/dto-swagger.utility.d.ts +17 -0
  702. package/dist/esm/utility/api/controller/write/dto-swagger.utility.js +24 -6
  703. package/dist/esm/utility/api/controller/write/dto-swagger.utility.js.map +1 -1
  704. package/dist/esm/utility/api/function-transaction.utility.js +1 -0
  705. package/dist/esm/utility/api/function-transaction.utility.js.map +1 -1
  706. package/dist/esm/utility/api/route/apply-dto-metadata.utility.js +1 -0
  707. package/dist/esm/utility/api/route/apply-dto-metadata.utility.js.map +1 -1
  708. package/dist/esm/utility/api/route/response/project-relation.utility.js +1 -0
  709. package/dist/esm/utility/api/route/response/project-relation.utility.js.map +1 -1
  710. package/dist/esm/utility/authorization/scope-merge-where.utility.js +248 -131
  711. package/dist/esm/utility/authorization/scope-merge-where.utility.js.map +1 -1
  712. package/dist/esm/utility/dto/build-decorator.utility.js +1 -0
  713. package/dist/esm/utility/dto/build-decorator.utility.js.map +1 -1
  714. package/dist/esm/utility/dto/generate/core.utility.js +18 -6
  715. package/dist/esm/utility/dto/generate/core.utility.js.map +1 -1
  716. package/dist/esm/utility/dto/generate/dynamic.utility.js +1 -0
  717. package/dist/esm/utility/dto/generate/dynamic.utility.js.map +1 -1
  718. package/dist/esm/utility/dto/generate/exception.utility.js +1 -0
  719. package/dist/esm/utility/dto/generate/exception.utility.js.map +1 -1
  720. package/dist/esm/utility/dto/generate/filter-decorator.utility.js +1 -0
  721. package/dist/esm/utility/dto/generate/filter-decorator.utility.js.map +1 -1
  722. package/dist/esm/utility/dto/generate/get-list/cursor-response.utility.d.ts +10 -0
  723. package/dist/esm/utility/dto/generate/get-list/cursor-response.utility.js +98 -0
  724. package/dist/esm/utility/dto/generate/get-list/cursor-response.utility.js.map +1 -0
  725. package/dist/esm/utility/dto/generate/get-list/index.d.ts +3 -0
  726. package/dist/esm/utility/dto/generate/{get-list-query-properties.utility.d.ts → get-list/query-properties.utility.d.ts} +4 -4
  727. package/dist/esm/utility/dto/generate/{get-list-query-properties.utility.js → get-list/query-properties.utility.js} +35 -34
  728. package/dist/esm/utility/dto/generate/get-list/query-properties.utility.js.map +1 -0
  729. package/dist/esm/utility/dto/generate/{get-list-response.utility.d.ts → get-list/response.utility.d.ts} +1 -1
  730. package/dist/esm/utility/dto/generate/{get-list-response.utility.js → get-list/response.utility.js} +33 -32
  731. package/dist/esm/utility/dto/generate/get-list/response.utility.js.map +1 -0
  732. package/dist/esm/utility/dto/generate/identity-read-parameters.utility.d.ts +17 -0
  733. package/dist/esm/utility/dto/generate/identity-read-parameters.utility.js +111 -0
  734. package/dist/esm/utility/dto/generate/identity-read-parameters.utility.js.map +1 -0
  735. package/dist/esm/utility/dto/generate/index.d.ts +1 -1
  736. package/dist/esm/utility/dto/generate/read-parameters.utility.d.ts +17 -0
  737. package/dist/esm/utility/dto/generate/read-parameters.utility.js +109 -0
  738. package/dist/esm/utility/dto/generate/read-parameters.utility.js.map +1 -0
  739. package/dist/esm/utility/dto/get/get-list-query-base-class.utility.d.ts +3 -2
  740. package/dist/esm/utility/dto/get/get-list-query-base-class.utility.js +48 -15
  741. package/dist/esm/utility/dto/get/get-list-query-base-class.utility.js.map +1 -1
  742. package/dist/esm/utility/dto/handle-date-property.utility.js +1 -0
  743. package/dist/esm/utility/dto/handle-date-property.utility.js.map +1 -1
  744. package/dist/esm/utility/dto/is/property/infrastructure-timestamp.utility.js +1 -0
  745. package/dist/esm/utility/dto/is/property/infrastructure-timestamp.utility.js.map +1 -1
  746. package/dist/esm/utility/dto/is/property/should-be-marked.utility.js +1 -0
  747. package/dist/esm/utility/dto/is/property/should-be-marked.utility.js.map +1 -1
  748. package/dist/esm/utility/dto/is/should-be-generated.utility.js +1 -0
  749. package/dist/esm/utility/dto/is/should-be-generated.utility.js.map +1 -1
  750. package/dist/esm/utility/object-find-property-descriptor.utility.d.ts +7 -0
  751. package/dist/esm/utility/object-find-property-descriptor.utility.js +20 -0
  752. package/dist/esm/utility/object-find-property-descriptor.utility.js.map +1 -0
  753. package/dist/esm/validator/at-most-one-of-listed-properties.validator.d.ts +5 -0
  754. package/dist/esm/validator/at-most-one-of-listed-properties.validator.js +21 -0
  755. package/dist/esm/validator/at-most-one-of-listed-properties.validator.js.map +1 -0
  756. package/package.json +2 -1
  757. package/dist/cjs/utility/dto/generate/get-list-query-properties.utility.js.map +0 -1
  758. package/dist/cjs/utility/dto/generate/get-list-response.utility.js.map +0 -1
  759. package/dist/esm/utility/dto/generate/get-list-query-properties.utility.js.map +0 -1
  760. package/dist/esm/utility/dto/generate/get-list-response.utility.js.map +0 -1
  761. /package/dist/cjs/interface/decorator/api/{get-list-response-result.interface.d.ts → get-list/response-result.interface.d.ts} +0 -0
  762. /package/dist/esm/interface/decorator/api/{get-list-response-result.interface.d.ts → get-list/response-result.interface.d.ts} +0 -0
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ var safeObjectPropertyNames_constant = require('../../constant/safe-object-property-names.constant.js');
4
+ var exception_utility = require('../error/exception.utility.js');
3
5
  var typeorm = require('typeorm');
4
6
 
5
7
  /**
@@ -10,8 +12,10 @@ var typeorm = require('typeorm');
10
12
  * @returns {TApiAuthorizationScopeWhere<E>} Combined filter.
11
13
  */
12
14
  function AuthorizationScopeMergeWhere(baseWhere, scopedWhere) {
15
+ validateWhereOperand(baseWhere);
16
+ validateWhereOperand(scopedWhere);
13
17
  if (!baseWhere) {
14
- return scopedWhere;
18
+ return scopedWhere ? normalizeWhereOperand(scopedWhere) : scopedWhere;
15
19
  }
16
20
  if (!scopedWhere) {
17
21
  return baseWhere;
@@ -24,7 +28,11 @@ function AuthorizationScopeMergeWhere(baseWhere, scopedWhere) {
24
28
  mergedVariants.push(mergeRecordValues(baseVariant, scopedVariant));
25
29
  }
26
30
  }
27
- return mergedVariants.length === 1 ? mergedVariants[0] : mergedVariants;
31
+ const mergedWhere = mergedVariants.length === 1 ? mergedVariants[0] : mergedVariants;
32
+ if (!mergedWhere) {
33
+ throw exception_utility.ErrorException("Authorization scope WHERE merge produced no branches");
34
+ }
35
+ return normalizeWhereOperand(mergedWhere);
28
36
  }
29
37
  /**
30
38
  * Compares two where-clause leaf values for semantic equality.
@@ -33,8 +41,11 @@ function AuthorizationScopeMergeWhere(baseWhere, scopedWhere) {
33
41
  * @returns {boolean} True when both values represent the same condition.
34
42
  */
35
43
  function areValuesEquivalent(left, right) {
44
+ if (left instanceof Date || right instanceof Date) {
45
+ return left instanceof Date && right instanceof Date && left.getTime() === right.getTime();
46
+ }
36
47
  if (isFindOperator(left) && isFindOperator(right)) {
37
- return left._type === right._type && areValuesEquivalent(left._value, right._value);
48
+ return left === right;
38
49
  }
39
50
  if (Array.isArray(left) && Array.isArray(right)) {
40
51
  if (left.length !== right.length) {
@@ -53,118 +64,153 @@ function areValuesEquivalent(left, right) {
53
64
  return left === right;
54
65
  }
55
66
  /**
56
- * Compares two scalar-like values for ordering-sensitive operators.
57
- * @param {unknown} left - Current value.
58
- * @param {unknown} right - Operator boundary value.
59
- * @returns {number} Comparison result suitable for inequality operators.
67
+ * Builds a TypeORM conjunction without approximating database operator semantics.
68
+ * @param {unknown} baseValue - Existing scalar or operator.
69
+ * @param {unknown} scopedValue - Scoped scalar or operator.
70
+ * @returns {FindOperator<unknown>} TypeORM `And(...)` operator.
60
71
  */
61
- function compareValues(left, right) {
62
- const leftDate = normalizeDateValue(left);
63
- const rightDate = normalizeDateValue(right);
64
- if (leftDate !== undefined && rightDate !== undefined) {
65
- return leftDate - rightDate;
66
- }
67
- const leftNumber = normalizeNumberValue(left);
68
- const rightNumber = normalizeNumberValue(right);
69
- if (leftNumber !== undefined && rightNumber !== undefined) {
70
- return leftNumber - rightNumber;
71
- }
72
- return toComparableText(left).localeCompare(toComparableText(right));
72
+ function createConjunctionOperator(baseValue, scopedValue) {
73
+ const baseOperator = isFindOperator(baseValue) ? baseValue : typeorm.Equal(baseValue);
74
+ const scopedOperator = isFindOperator(scopedValue) ? scopedValue : typeorm.Equal(scopedValue);
75
+ return typeorm.And(baseOperator, scopedOperator);
73
76
  }
74
77
  /**
75
78
  * Builds a match-nothing FindOperator branch for impossible conflicts.
76
- * @returns {ITypeormFindOperatorShape} TypeORM `In([])` operator.
79
+ * @returns {FindOperator<unknown>} TypeORM `In([])` operator.
77
80
  */
78
81
  function createMatchNothingOperator() {
79
82
  return typeorm.In([]);
80
83
  }
81
84
  /**
82
- * Detects TypeORM FindOperator-like values without depending on private typings.
83
- * @param {unknown} value - Candidate value.
84
- * @returns {boolean} True when the value looks like a FindOperator.
85
+ * Defines an own enumerable WHERE property without invoking prototype setters.
86
+ * @param {Record<string, unknown>} target - WHERE branch receiving the property.
87
+ * @param {string} key - Entity property name.
88
+ * @param {unknown} value - WHERE condition value.
89
+ * @returns {void}
85
90
  */
86
- function isFindOperator(value) {
87
- return Boolean(value && typeof value === "object" && "_type" in value && "_value" in value);
91
+ function defineWhereProperty(target, key, value) {
92
+ Object.defineProperty(target, key, {
93
+ // eslint-disable-next-line @elsikora/typescript/naming-convention
94
+ configurable: true,
95
+ // eslint-disable-next-line @elsikora/typescript/naming-convention
96
+ enumerable: true,
97
+ value,
98
+ // eslint-disable-next-line @elsikora/typescript/naming-convention
99
+ writable: true,
100
+ });
88
101
  }
89
102
  /**
90
- * Detects plain record objects that can be merged recursively.
91
- * @param {unknown} value - Candidate value.
92
- * @returns {boolean} True when the value is a mergeable record.
103
+ * Reads a dense array through own data descriptors without invoking accessors.
104
+ * @param {Array<unknown>} value - Candidate array.
105
+ * @returns {Array<unknown> | undefined} Stable item values, or undefined for sparse/extended/accessor arrays.
93
106
  */
94
- function isRecord(value) {
95
- return Boolean(value) && typeof value === "object" && !Array.isArray(value) && !isFindOperator(value);
107
+ function getDenseArrayDataValues(value) {
108
+ const ownKeys = Reflect.ownKeys(value);
109
+ const lengthDescriptor = Object.getOwnPropertyDescriptor(value, "length");
110
+ if (ownKeys.length !== value.length + 1 || !lengthDescriptor || lengthDescriptor.enumerable || !("value" in lengthDescriptor) || lengthDescriptor.value !== value.length) {
111
+ return undefined;
112
+ }
113
+ const values = [];
114
+ for (let index = 0; index < value.length; index++) {
115
+ const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
116
+ if (!descriptor?.enumerable || !("value" in descriptor)) {
117
+ return undefined;
118
+ }
119
+ values.push(descriptor.value);
120
+ }
121
+ return values;
96
122
  }
97
123
  /**
98
- * Checks whether a concrete scalar satisfies a TypeORM FindOperator condition.
99
- * @param {unknown} value - Concrete value.
100
- * @param {ITypeormFindOperatorShape} operator - FindOperator to evaluate.
101
- * @returns {boolean} True when the scalar satisfies the operator.
124
+ * Reads enumerable string-keyed data properties without invoking accessors.
125
+ * @param {Record<string, unknown>} value - Candidate WHERE record.
126
+ * @returns {Array<[string, unknown]> | undefined} Stable entries, or undefined for hidden, symbol, or accessor properties.
102
127
  */
103
- function matchesFindOperator(value, operator) {
104
- switch (operator._type) {
105
- case "between": {
106
- const boundaries = Array.isArray(operator._value) ? operator._value : [undefined, undefined];
107
- const start = boundaries[0];
108
- const end = boundaries[1];
109
- return compareValues(value, start) >= 0 && compareValues(value, end) <= 0;
110
- }
111
- case "equal": {
112
- return areValuesEquivalent(value, operator._value);
113
- }
114
- case "ilike": {
115
- return matchesLike(value, operator._value, true);
116
- }
117
- case "in": {
118
- const values = Array.isArray(operator._value) ? operator._value : [operator._value];
119
- return values.some((entry) => (isFindOperator(entry) ? matchesFindOperator(value, entry) : areValuesEquivalent(value, entry)));
120
- }
121
- case "isnull": {
122
- return value === null || value === undefined;
123
- }
124
- case "lessThan": {
125
- return compareValues(value, operator._value) < 0;
126
- }
127
- case "lessThanOrEqual": {
128
- return compareValues(value, operator._value) <= 0;
128
+ function getWhereRecordDataEntries(value) {
129
+ const entries = [];
130
+ for (const key of Reflect.ownKeys(value)) {
131
+ if (typeof key !== "string") {
132
+ return undefined;
129
133
  }
130
- case "like": {
131
- return matchesLike(value, operator._value, false);
134
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
135
+ if (!descriptor?.enumerable || !("value" in descriptor)) {
136
+ return undefined;
132
137
  }
133
- case "moreThan": {
134
- return compareValues(value, operator._value) > 0;
135
- }
136
- case "moreThanOrEqual": {
137
- return compareValues(value, operator._value) >= 0;
138
+ entries.push([key, descriptor.value]);
139
+ }
140
+ return entries;
141
+ }
142
+ /**
143
+ * Detects whether every declared WHERE property contains a condition TypeORM will not discard.
144
+ * @param {Record<string, unknown>} branch - Plain WHERE branch.
145
+ * @returns {boolean} True when the branch is non-empty and every condition is effective.
146
+ */
147
+ function hasOnlyEffectiveWherePredicates(branch) {
148
+ const entries = getWhereRecordDataEntries(branch);
149
+ if (!entries?.length) {
150
+ return false;
151
+ }
152
+ return entries.every(([, value]) => {
153
+ if (value === undefined || value === null) {
154
+ return false;
138
155
  }
139
- case "not": {
140
- return isFindOperator(operator._value) ? !matchesFindOperator(value, operator._value) : !areValuesEquivalent(value, operator._value);
156
+ if (Array.isArray(value)) {
157
+ const arrayValues = getDenseArrayDataValues(value);
158
+ if (!arrayValues) {
159
+ return false;
160
+ }
161
+ if (arrayValues.length === 0) {
162
+ return true;
163
+ }
164
+ const objectBranches = arrayValues.map((branchValue) => isWhereBranchObject(branchValue));
165
+ if (objectBranches.every(Boolean)) {
166
+ return arrayValues.every((branchValue) => hasOnlyEffectiveWherePredicates(branchValue));
167
+ }
168
+ if (objectBranches.some(Boolean)) {
169
+ return false;
170
+ }
171
+ return arrayValues.every((scalarValue) => scalarValue !== undefined && scalarValue !== null && !Array.isArray(scalarValue) && (isAtomicWhereValue(scalarValue) || ["bigint", "boolean", "number", "string"].includes(typeof scalarValue)));
141
172
  }
142
- default: {
143
- return false;
173
+ if (isWhereBranchObject(value)) {
174
+ return hasOnlyEffectiveWherePredicates(value);
144
175
  }
145
- }
176
+ return isAtomicWhereValue(value) || ["bigint", "boolean", "number", "string"].includes(typeof value);
177
+ });
146
178
  }
147
179
  /**
148
- * Evaluates SQL-like wildcard matching against a concrete scalar.
149
- * @param {unknown} value - Concrete value.
150
- * @param {unknown} pattern - SQL-like pattern.
151
- * @param {boolean} isCaseInsensitive - Whether matching should ignore case.
152
- * @returns {boolean} True when the value matches the pattern.
180
+ * Detects object-shaped values that the normalizer treats as scalar predicates.
181
+ * @param {unknown} value - Candidate WHERE value.
182
+ * @returns {boolean} True for supported atomic object values.
153
183
  */
154
- function matchesLike(value, pattern, isCaseInsensitive) {
155
- if (value === null || value === undefined) {
184
+ function isAtomicWhereValue(value) {
185
+ return value instanceof Date || isFindOperator(value) || ArrayBuffer.isView(value);
186
+ }
187
+ /**
188
+ * Detects TypeORM FindOperator-like values without depending on private typings.
189
+ * @param {unknown} value - Candidate value.
190
+ * @returns {boolean} True when the value looks like a FindOperator.
191
+ */
192
+ function isFindOperator(value) {
193
+ return typeorm.InstanceChecker.isFindOperator(value);
194
+ }
195
+ /**
196
+ * Detects plain record objects that can be merged recursively.
197
+ * @param {unknown} value - Candidate value.
198
+ * @returns {boolean} True when the value is a mergeable record.
199
+ */
200
+ function isRecord(value) {
201
+ if (!value || typeof value !== "object" || Array.isArray(value) || value instanceof Date || isFindOperator(value)) {
156
202
  return false;
157
203
  }
158
- const text = toComparableText(value);
159
- const rawPattern = toComparableText(pattern);
160
- const needle = rawPattern.replaceAll("%", "");
161
- if (needle.length === 0) {
162
- return true;
163
- }
164
- if (isCaseInsensitive) {
165
- return text.toLowerCase().includes(needle.toLowerCase());
166
- }
167
- return text.includes(needle);
204
+ const prototype = Object.getPrototypeOf(value);
205
+ return prototype === null || prototype === Object.prototype;
206
+ }
207
+ /**
208
+ * Detects object values that TypeORM may interpret as nested relation criteria.
209
+ * @param {unknown} value - Candidate nested WHERE value.
210
+ * @returns {boolean} True when the object must be inspected recursively.
211
+ */
212
+ function isWhereBranchObject(value) {
213
+ return Boolean(value && typeof value === "object" && !Array.isArray(value) && !isAtomicWhereValue(value));
168
214
  }
169
215
  /**
170
216
  * Recursively merges nested record values using logical AND semantics.
@@ -179,14 +225,14 @@ function mergeRecordValues(baseValue, scopedValue) {
179
225
  const currentBaseValue = baseValue[key];
180
226
  const currentScopedValue = scopedValue[key];
181
227
  if (currentBaseValue === undefined) {
182
- mergedValue[key] = currentScopedValue;
228
+ defineWhereProperty(mergedValue, key, currentScopedValue);
183
229
  continue;
184
230
  }
185
231
  if (currentScopedValue === undefined) {
186
- mergedValue[key] = currentBaseValue;
232
+ defineWhereProperty(mergedValue, key, currentBaseValue);
187
233
  continue;
188
234
  }
189
- mergedValue[key] = mergeWhereValue(currentBaseValue, currentScopedValue);
235
+ defineWhereProperty(mergedValue, key, mergeWhereValue(currentBaseValue, currentScopedValue));
190
236
  }
191
237
  return mergedValue;
192
238
  }
@@ -203,64 +249,135 @@ function mergeWhereValue(baseValue, scopedValue) {
203
249
  if (areValuesEquivalent(baseValue, scopedValue)) {
204
250
  return baseValue;
205
251
  }
206
- if (isFindOperator(baseValue) && !isFindOperator(scopedValue)) {
207
- return matchesFindOperator(scopedValue, baseValue) ? scopedValue : createMatchNothingOperator();
208
- }
209
- if (!isFindOperator(baseValue) && isFindOperator(scopedValue)) {
210
- return matchesFindOperator(baseValue, scopedValue) ? baseValue : createMatchNothingOperator();
252
+ if (isFindOperator(baseValue) || isFindOperator(scopedValue)) {
253
+ return createConjunctionOperator(baseValue, scopedValue);
211
254
  }
212
255
  return createMatchNothingOperator();
213
256
  }
214
257
  /**
215
- * Normalizes date-like values into comparable timestamps.
216
- * @param {unknown} value - Candidate date-like value.
217
- * @returns {number | undefined} Timestamp when the value is date-like.
258
+ * Normalizes a validated WHERE operand before TypeORM receives it.
259
+ * @template E - Entity type
260
+ * @param {TApiAuthorizationScopeWhere<E>} value - Validated operand.
261
+ * @returns {TApiAuthorizationScopeWhere<E>} Operand with scalar leaves represented by exact Equal operators.
218
262
  */
219
- function normalizeDateValue(value) {
220
- if (value instanceof Date) {
221
- return value.getTime();
263
+ function normalizeWhereOperand(value) {
264
+ if (Array.isArray(value)) {
265
+ return value.map((branch) => normalizeWhereRecord(branch));
222
266
  }
223
- if (typeof value === "string" || typeof value === "number") {
224
- const date = new Date(value);
225
- const timestamp = date.getTime();
226
- return Number.isNaN(timestamp) ? undefined : timestamp;
267
+ return normalizeWhereRecord(value);
268
+ }
269
+ /**
270
+ * Normalizes every value in a WHERE branch without invoking prototype setters.
271
+ * @param {Record<string, unknown>} value - Validated WHERE branch.
272
+ * @returns {Record<string, unknown>} Normalized branch.
273
+ */
274
+ function normalizeWhereRecord(value) {
275
+ const normalized = {};
276
+ const entries = getWhereRecordDataEntries(value);
277
+ if (!entries) {
278
+ throw exception_utility.ErrorException("Authorization scope WHERE object must contain enumerable data properties only");
227
279
  }
228
- return undefined;
280
+ for (const [key, nestedValue] of entries) {
281
+ defineWhereProperty(normalized, key, normalizeWhereValue(nestedValue));
282
+ }
283
+ return normalized;
229
284
  }
230
285
  /**
231
- * Normalizes numeric values and numeric strings into numbers.
232
- * @param {unknown} value - Candidate numeric value.
233
- * @returns {number | undefined} Numeric representation when available.
286
+ * Converts scalar leaves to exact TypeORM equality while retaining relation structure.
287
+ * @param {unknown} value - Validated WHERE value.
288
+ * @returns {unknown} Normalized TypeORM condition.
234
289
  */
235
- function normalizeNumberValue(value) {
236
- if (typeof value === "number") {
290
+ function normalizeWhereValue(value) {
291
+ if (isFindOperator(value)) {
237
292
  return value;
238
293
  }
239
- if (typeof value === "bigint") {
240
- return Number(value);
294
+ if (Array.isArray(value)) {
295
+ const arrayValues = getDenseArrayDataValues(value);
296
+ if (!arrayValues) {
297
+ throw exception_utility.ErrorException("Authorization scope WHERE arrays must contain dense enumerable data items only");
298
+ }
299
+ if (arrayValues.length === 0) {
300
+ return typeorm.Equal(arrayValues);
301
+ }
302
+ const objectBranches = arrayValues.map((branchValue) => isWhereBranchObject(branchValue));
303
+ return objectBranches.every(Boolean) ? arrayValues.map((branchValue) => normalizeWhereRecord(branchValue)) : typeorm.Equal(arrayValues);
304
+ }
305
+ return isWhereBranchObject(value) ? normalizeWhereRecord(value) : typeorm.Equal(value);
306
+ }
307
+ /**
308
+ * Rejects array-form WHERE expressions that TypeORM would interpret as unconstrained.
309
+ * @param {unknown} value - Candidate array-form WHERE expression.
310
+ * @returns {void}
311
+ */
312
+ function validateWhereArray(value) {
313
+ if (!Array.isArray(value)) {
314
+ return;
241
315
  }
242
- if (typeof value === "string" && value.trim().length > 0) {
243
- const parsedValue = Number(value);
244
- return Number.isNaN(parsedValue) ? undefined : parsedValue;
316
+ const branches = getDenseArrayDataValues(value);
317
+ if (!branches) {
318
+ throw exception_utility.ErrorException("Authorization scope WHERE array branches must be non-empty plain objects");
319
+ }
320
+ if (branches.length === 0) {
321
+ throw exception_utility.ErrorException("Authorization scope WHERE cannot be an empty array");
322
+ }
323
+ if (branches.some((branch) => !isRecord(branch) || !hasOnlyEffectiveWherePredicates(branch))) {
324
+ throw exception_utility.ErrorException("Authorization scope WHERE array branches must be non-empty plain objects");
325
+ }
326
+ for (const branch of branches) {
327
+ validateWhereRecordKeys(branch);
245
328
  }
246
- return undefined;
247
329
  }
248
330
  /**
249
- * Converts scalar-like values into safe comparable text.
250
- * @param {unknown} value - Candidate scalar.
251
- * @returns {string} Text representation without object default stringification.
331
+ * Rejects malformed or non-empty but ineffective scalar WHERE expressions.
332
+ * @param {unknown} value - Candidate WHERE expression.
333
+ * @returns {void}
252
334
  */
253
- function toComparableText(value) {
254
- if (typeof value === "string") {
255
- return value;
335
+ function validateWhereOperand(value) {
336
+ if (value === undefined) {
337
+ return;
256
338
  }
257
- if (typeof value === "number" || typeof value === "bigint" || typeof value === "boolean") {
258
- return value.toString();
339
+ if (Array.isArray(value)) {
340
+ validateWhereArray(value);
341
+ return;
259
342
  }
260
- if (value instanceof Date) {
261
- return value.toISOString();
343
+ if (!isRecord(value)) {
344
+ throw exception_utility.ErrorException("Authorization scope WHERE must be undefined, a plain object, or an array of plain objects");
345
+ }
346
+ const entries = getWhereRecordDataEntries(value);
347
+ if (!entries || (entries.length > 0 && !hasOnlyEffectiveWherePredicates(value))) {
348
+ throw exception_utility.ErrorException("Authorization scope WHERE object must contain an effective predicate");
349
+ }
350
+ validateWhereRecordKeys(value);
351
+ }
352
+ /**
353
+ * Rejects prototype-sensitive entity paths recursively.
354
+ * @param {Record<string, unknown>} value - WHERE branch to inspect.
355
+ * @returns {void}
356
+ */
357
+ function validateWhereRecordKeys(value) {
358
+ const entries = getWhereRecordDataEntries(value);
359
+ if (!entries) {
360
+ throw exception_utility.ErrorException("Authorization scope WHERE object must contain enumerable data properties only");
361
+ }
362
+ for (const [key, nestedValue] of entries) {
363
+ if (safeObjectPropertyNames_constant.UNSAFE_OBJECT_PROPERTY_NAMES_CONSTANT.has(key)) {
364
+ throw exception_utility.ErrorException(`Authorization scope WHERE property "${key}" is not a safe property name`);
365
+ }
366
+ if (Array.isArray(nestedValue)) {
367
+ const branches = getDenseArrayDataValues(nestedValue);
368
+ if (!branches) {
369
+ throw exception_utility.ErrorException("Authorization scope WHERE arrays must contain dense enumerable data items only");
370
+ }
371
+ for (const branch of branches) {
372
+ if (isWhereBranchObject(branch)) {
373
+ validateWhereRecordKeys(branch);
374
+ }
375
+ }
376
+ }
377
+ else if (isWhereBranchObject(nestedValue)) {
378
+ validateWhereRecordKeys(nestedValue);
379
+ }
262
380
  }
263
- return "";
264
381
  }
265
382
 
266
383
  exports.AuthorizationScopeMergeWhere = AuthorizationScopeMergeWhere;
@@ -1 +1 @@
1
- {"version":3,"file":"scope-merge-where.utility.js","sources":["../../../../../src/utility/authorization/scope-merge-where.utility.ts"],"sourcesContent":[null],"names":["In"],"mappings":"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"}
1
+ {"version":3,"file":"scope-merge-where.utility.js","sources":["../../../../../src/utility/authorization/scope-merge-where.utility.ts"],"sourcesContent":[null],"names":["ErrorException","Equal","And","In","InstanceChecker","UNSAFE_OBJECT_PROPERTY_NAMES_CONSTANT"],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  require('../../enum/decorator/api/action.enum.js');
4
4
  require('../../enum/decorator/api/authentication-type.enum.js');
5
5
  require('../../enum/decorator/api/controller/get-list/query/filter/missing-behavior.enum.js');
6
+ require('../../enum/decorator/api/controller/get-list/query/pagination-mode.enum.js');
6
7
  require('../../enum/decorator/api/controller/get-list/query/unlisted-fields.enum.js');
7
8
  require('../../enum/decorator/api/controller/relation-reference-shape.enum.js');
8
9
  require('../../enum/decorator/api/controller/request/target.enum.js');
@@ -1 +1 @@
1
- {"version":3,"file":"build-decorator.utility.js","sources":["../../../../../src/utility/dto/build-decorator.utility.ts"],"sourcesContent":[null],"names":["DtoIsPropertyExposedForGuard","EApiDtoType","EApiRouteType","DtoIsPropertyInfrastructureTimestamp","EApiPropertyDescribeType","DtoHandleDateProperty","DtoGetDecoratorConfig","DtoGenerateDecorator"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA;;;;;;;;;;;;;;AAcG;AACH;AACM,SAAU,iBAAiB,CAAoD,MAAS,EAAE,gBAAgD,EAAE,MAAqB,EAAE,OAAU,EAAE,YAAoB,EAAE,YAA+B,EAAE,aAA6C,EAAA;IAKxR,MAAM,UAAU,GAA2C,gBAAgB,CAAC,UAAU,GAAG,MAAM,CAA2C;AAE1I,IAAA,IAAI,UAAU,GAAG,OAAO,CAAC,EAAE,SAAS,KAAK,KAAK,KAAK,UAAU,GAAG,OAAO,CAAC,EAAE,UAAU,IAAI,UAAU,GAAG,OAAO,CAAC,EAAE,QAAQ,KAAK,KAAK,CAAC,EAAE;AACnI,QAAA,OAAO,SAAS;IACjB;AAEA,IAAA,IAAI,CAACA,oDAA4B,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;AACnF,QAAA,OAAO,SAAS;IACjB;IAEA,MAAM,WAAW,GAAY,OAAO,KAAKC,wBAAW,CAAC,IAAI,KAAK,MAAM,KAAKC,uBAAa,CAAC,MAAM,IAAI,MAAM,KAAKA,uBAAa,CAAC,MAAM,IAAI,MAAM,KAAKA,uBAAa,CAAC,cAAc,CAAC;AAE5K,IAAA,IAAI,WAAW,IAAIC,oEAAoC,CAAC,gBAAgB,CAAC,EAAE;AAC1E,QAAA,OAAO,SAAS;IACjB;IAEA,IAAI,gBAAgB,CAAC,IAAI,KAAKC,yCAAwB,CAAC,IAAI,EAAE;QAC5D,MAAM,YAAY,GAAuC,gBAAgB;AAEzE,QAAA,IAAI,MAAM,KAAKF,uBAAa,CAAC,QAAQ,IAAI,OAAO,KAAKD,wBAAW,CAAC,KAAK,EAAE;YACvE,MAAM,cAAc,GAAoEI,gDAAqB,CAAC,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC;AAEpJ,YAAA,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,QAAkE,KAAI;AAChG,gBAAA,MAAM,WAAW,GAAmC,EAAE,GAAG,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE;gBACxG,MAAM,MAAM,GAAsCC,6CAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC;AAErG,gBAAA,OAAOC,sCAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC;AACxF,YAAA,CAAC,CAAC;QACH;IACD;IAEA,MAAM,MAAM,GAAsCD,6CAAqB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC;AAE1G,IAAA,OAAO,CAACC,sCAAoB,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AAC9G;;;;"}
1
+ {"version":3,"file":"build-decorator.utility.js","sources":["../../../../../src/utility/dto/build-decorator.utility.ts"],"sourcesContent":[null],"names":["DtoIsPropertyExposedForGuard","EApiDtoType","EApiRouteType","DtoIsPropertyInfrastructureTimestamp","EApiPropertyDescribeType","DtoHandleDateProperty","DtoGetDecoratorConfig","DtoGenerateDecorator"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA;;;;;;;;;;;;;;AAcG;AACH;AACM,SAAU,iBAAiB,CAAoD,MAAS,EAAE,gBAAgD,EAAE,MAAqB,EAAE,OAAU,EAAE,YAAoB,EAAE,YAA+B,EAAE,aAA6C,EAAA;IAKxR,MAAM,UAAU,GAA2C,gBAAgB,CAAC,UAAU,GAAG,MAAM,CAA2C;AAE1I,IAAA,IAAI,UAAU,GAAG,OAAO,CAAC,EAAE,SAAS,KAAK,KAAK,KAAK,UAAU,GAAG,OAAO,CAAC,EAAE,UAAU,IAAI,UAAU,GAAG,OAAO,CAAC,EAAE,QAAQ,KAAK,KAAK,CAAC,EAAE;AACnI,QAAA,OAAO,SAAS;IACjB;AAEA,IAAA,IAAI,CAACA,oDAA4B,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;AACnF,QAAA,OAAO,SAAS;IACjB;IAEA,MAAM,WAAW,GAAY,OAAO,KAAKC,wBAAW,CAAC,IAAI,KAAK,MAAM,KAAKC,uBAAa,CAAC,MAAM,IAAI,MAAM,KAAKA,uBAAa,CAAC,MAAM,IAAI,MAAM,KAAKA,uBAAa,CAAC,cAAc,CAAC;AAE5K,IAAA,IAAI,WAAW,IAAIC,oEAAoC,CAAC,gBAAgB,CAAC,EAAE;AAC1E,QAAA,OAAO,SAAS;IACjB;IAEA,IAAI,gBAAgB,CAAC,IAAI,KAAKC,yCAAwB,CAAC,IAAI,EAAE;QAC5D,MAAM,YAAY,GAAuC,gBAAgB;AAEzE,QAAA,IAAI,MAAM,KAAKF,uBAAa,CAAC,QAAQ,IAAI,OAAO,KAAKD,wBAAW,CAAC,KAAK,EAAE;YACvE,MAAM,cAAc,GAAoEI,gDAAqB,CAAC,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC;AAEpJ,YAAA,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,QAAkE,KAAI;AAChG,gBAAA,MAAM,WAAW,GAAmC,EAAE,GAAG,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE;gBACxG,MAAM,MAAM,GAAsCC,6CAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC;AAErG,gBAAA,OAAOC,sCAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC;AACxF,YAAA,CAAC,CAAC;QACH;IACD;IAEA,MAAM,MAAM,GAAsCD,6CAAqB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC;AAE1G,IAAA,OAAO,CAACC,sCAAoB,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AAC9G;;;;"}
@@ -8,6 +8,7 @@ var generate_constant = require('../../../constant/utility/dto/generate.constant
8
8
  require('../../../enum/decorator/api/action.enum.js');
9
9
  require('../../../enum/decorator/api/authentication-type.enum.js');
10
10
  require('../../../enum/decorator/api/controller/get-list/query/filter/missing-behavior.enum.js');
11
+ var paginationMode_enum = require('../../../enum/decorator/api/controller/get-list/query/pagination-mode.enum.js');
11
12
  require('../../../enum/decorator/api/controller/get-list/query/unlisted-fields.enum.js');
12
13
  require('../../../enum/decorator/api/controller/relation-reference-shape.enum.js');
13
14
  require('../../../enum/decorator/api/controller/request/target.enum.js');
@@ -33,6 +34,7 @@ require('../../../enum/decorator/api/property/string-type.enum.js');
33
34
  require('../../../enum/decorator/api/route/subscriber-authorization-expectation.enum.js');
34
35
  var type_enum = require('../../../enum/decorator/api/route/type.enum.js');
35
36
  var swagger = require('@nestjs/swagger');
37
+ var getPaginationMode_utility = require('../../api/controller/get-list/query/get-pagination-mode.utility.js');
36
38
  var camelCaseString_utility = require('../../camel-case-string.utility.js');
37
39
  var pop_utility = require('../auto/context/pop.utility.js');
38
40
  var push_utility = require('../auto/context/push.utility.js');
@@ -40,12 +42,14 @@ var buildDecorator_utility = require('../build-decorator.utility.js');
40
42
  var cacheKey_utility = require('./cache-key.utility.js');
41
43
  var dynamic_utility = require('./dynamic.utility.js');
42
44
  var filterDecorator_utility = require('./filter-decorator.utility.js');
43
- var getListQueryProperties_utility = require('./get-list-query-properties.utility.js');
44
- var getListResponse_utility = require('./get-list-response.utility.js');
45
+ var cursorResponse_utility = require('./get-list/cursor-response.utility.js');
46
+ var queryProperties_utility = require('./get-list/query-properties.utility.js');
47
+ var response_utility = require('./get-list/response.utility.js');
45
48
  var getListQueryBaseClass_utility = require('../get/get-list-query-base-class.utility.js');
46
49
  var shouldBeMarked_utility = require('../is/property/should-be-marked.utility.js');
47
50
  var shouldBeGenerated_utility = require('../is/should-be-generated.utility.js');
48
51
  var exception_utility = require('../../error/exception.utility.js');
52
+ var atMostOneOfListedProperties_validator = require('../../../validator/at-most-one-of-listed-properties.validator.js');
49
53
  var pairedCustomSuffixesFields_validator = require('../../../validator/has/paired-custom-suffixes-fields.validator.js');
50
54
  var classTransformer = require('class-transformer');
51
55
  var classValidator = require('class-validator');
@@ -70,14 +74,16 @@ function DtoGenerate(entity, entityMetadata, method, dtoType, dtoConfig, current
70
74
  if (!shouldBeGenerated_utility.DtoIsShouldBeGenerated(method, dtoType)) {
71
75
  return undefined;
72
76
  }
77
+ const isGetListResponse = method === type_enum.EApiRouteType.GET_LIST && dtoType === dtoType_enum.EApiDtoType.RESPONSE;
78
+ const isCursorGetListResponse = isGetListResponse && getPaginationMode_utility.ApiControllerGetListQueryGetPaginationMode(queryPlan) === paginationMode_enum.EApiControllerGetListQueryPaginationMode.CURSOR;
73
79
  const cacheKey = cacheKey_utility.DtoGenerateCacheKey({
74
- controllerName: queryPlan?.controllerName,
80
+ controllerName: isCursorGetListResponse ? undefined : queryPlan?.controllerName,
75
81
  dtoConfig,
76
82
  dtoType,
77
83
  entityName: String(entityMetadata.name),
78
84
  guardName: currentGuard?.name,
79
85
  method,
80
- queryPlanSignature: queryPlan?.signature,
86
+ queryPlanSignature: isCursorGetListResponse ? paginationMode_enum.EApiControllerGetListQueryPaginationMode.CURSOR : queryPlan?.signature,
81
87
  });
82
88
  const cached = dtoGenerateCache.get(cacheKey);
83
89
  if (cached) {
@@ -98,7 +104,7 @@ function DtoGenerate(entity, entityMetadata, method, dtoType, dtoConfig, current
98
104
  });
99
105
  }
100
106
  }
101
- const queryFilterProperties = method === type_enum.EApiRouteType.GET_LIST && dtoType === dtoType_enum.EApiDtoType.QUERY ? getListQueryProperties_utility.DtoGenerateGetListQueryProperties(entityMetadata, markedProperties, currentGuard, queryPlan) : [];
107
+ const queryFilterProperties = method === type_enum.EApiRouteType.GET_LIST && dtoType === dtoType_enum.EApiDtoType.QUERY ? queryProperties_utility.DtoGenerateGetListQueryProperties(entityMetadata, markedProperties, currentGuard, queryPlan) : [];
102
108
  const BaseClass = method === type_enum.EApiRouteType.GET_LIST && dtoType === dtoType_enum.EApiDtoType.QUERY ? getListQueryBaseClass_utility.DtoGetGetListQueryBaseClass(entity, entityMetadata, method, dtoType, queryPlan) : class {
103
109
  };
104
110
  const isTypedFilterPlan = method === type_enum.EApiRouteType.GET_LIST && dtoType === dtoType_enum.EApiDtoType.QUERY && queryPlan !== undefined && !queryPlan.filter.isLegacy;
@@ -237,12 +243,18 @@ function DtoGenerate(entity, entityMetadata, method, dtoType, dtoConfig, current
237
243
  writable: true,
238
244
  });
239
245
  classValidator.Validate(pairedCustomSuffixesFields_validator.HasPairedCustomSuffixesFieldsValidator, ["operator", ["value", "values"]])(GeneratedDTO.prototype, "object");
246
+ if (getPaginationMode_utility.ApiControllerGetListQueryGetPaginationMode(queryPlan) === paginationMode_enum.EApiControllerGetListQueryPaginationMode.CURSOR) {
247
+ classValidator.Validate(atMostOneOfListedProperties_validator.AtMostOneOfListedPropertiesValidator, ["after", "before"])(GeneratedDTO.prototype, "object");
248
+ }
240
249
  }
241
250
  if (extraModels.length > 0) {
242
251
  swagger.ApiExtraModels(...extraModels)(GeneratedDTO);
243
252
  }
244
- // @ts-ignore
245
- const result = method === type_enum.EApiRouteType.GET_LIST && dtoType === dtoType_enum.EApiDtoType.RESPONSE ? getListResponse_utility.DtoGenerateGetListResponse(entity, GeneratedDTO, `${entityMetadata.name ?? "UnknownResource"}${camelCaseString_utility.CamelCaseString(method)}${camelCaseString_utility.CamelCaseString(dtoType)}ItemsDTO`) : GeneratedDTO;
253
+ let result = GeneratedDTO;
254
+ if (method === type_enum.EApiRouteType.GET_LIST && dtoType === dtoType_enum.EApiDtoType.RESPONSE) {
255
+ // @ts-ignore The generated entity/DTO constructors satisfy the wrapper generator at runtime.
256
+ result = getPaginationMode_utility.ApiControllerGetListQueryGetPaginationMode(queryPlan) === paginationMode_enum.EApiControllerGetListQueryPaginationMode.CURSOR ? cursorResponse_utility.DtoGenerateGetListCursorResponse(entity, GeneratedDTO, `${entityMetadata.name ?? "UnknownResource"}${camelCaseString_utility.CamelCaseString(method)}Cursor${camelCaseString_utility.CamelCaseString(dtoType)}ItemsDTO`) : response_utility.DtoGenerateGetListResponse(entity, GeneratedDTO, `${entityMetadata.name ?? "UnknownResource"}${camelCaseString_utility.CamelCaseString(method)}${camelCaseString_utility.CamelCaseString(dtoType)}ItemsDTO`);
257
+ }
246
258
  dtoGenerateCache.set(cacheKey, result);
247
259
  return result;
248
260
  }