@elsikora/nestjs-crud-automator 1.16.0-dev.1 → 1.17.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/README.md +43 -0
  2. package/dist/cjs/class/api/authorization/engine.class.d.ts +8 -0
  3. package/dist/cjs/class/api/authorization/engine.class.js +92 -0
  4. package/dist/cjs/class/api/authorization/engine.class.js.map +1 -0
  5. package/dist/cjs/class/api/authorization/guard.class.d.ts +13 -0
  6. package/dist/cjs/class/api/authorization/guard.class.js +79 -0
  7. package/dist/cjs/class/api/authorization/guard.class.js.map +1 -0
  8. package/dist/cjs/class/api/authorization/index.d.ts +3 -0
  9. package/dist/cjs/class/api/authorization/policy/base.class.d.ts +37 -0
  10. package/dist/cjs/class/api/authorization/policy/base.class.js +68 -0
  11. package/dist/cjs/class/api/authorization/policy/base.class.js.map +1 -0
  12. package/dist/cjs/class/api/authorization/policy/discovery-service.class.d.ts +10 -0
  13. package/dist/cjs/class/api/authorization/policy/discovery-service.class.js +53 -0
  14. package/dist/cjs/class/api/authorization/policy/discovery-service.class.js.map +1 -0
  15. package/dist/cjs/class/api/authorization/policy/executor.class.d.ts +8 -0
  16. package/dist/cjs/class/api/authorization/policy/executor.class.js +43 -0
  17. package/dist/cjs/class/api/authorization/policy/executor.class.js.map +1 -0
  18. package/dist/cjs/class/api/authorization/policy/index.d.ts +4 -0
  19. package/dist/cjs/class/api/authorization/policy/registry.class.d.ts +26 -0
  20. package/dist/cjs/class/api/authorization/policy/registry.class.js +151 -0
  21. package/dist/cjs/class/api/authorization/policy/registry.class.js.map +1 -0
  22. package/dist/cjs/class/api/service-base.class.d.ts +2 -2
  23. package/dist/cjs/class/api/service-base.class.js.map +1 -1
  24. package/dist/cjs/class/index.d.ts +1 -0
  25. package/dist/cjs/constant/authorization/index.d.ts +3 -0
  26. package/dist/cjs/constant/authorization/metadata/decision.constant.d.ts +3 -0
  27. package/dist/cjs/constant/authorization/metadata/decision.constant.js +9 -0
  28. package/dist/cjs/constant/authorization/metadata/decision.constant.js.map +1 -0
  29. package/dist/cjs/constant/authorization/metadata/index.d.ts +1 -0
  30. package/dist/cjs/constant/authorization/policy/decorator.constant.d.ts +4 -0
  31. package/dist/cjs/constant/authorization/policy/decorator.constant.js +11 -0
  32. package/dist/cjs/constant/authorization/policy/decorator.constant.js.map +1 -0
  33. package/dist/cjs/constant/authorization/policy/index.d.ts +1 -0
  34. package/dist/cjs/constant/authorization/token/index.d.ts +1 -0
  35. package/dist/cjs/constant/authorization/token/registry.constant.d.ts +1 -0
  36. package/dist/cjs/constant/authorization/token/registry.constant.js +7 -0
  37. package/dist/cjs/constant/authorization/token/registry.constant.js.map +1 -0
  38. package/dist/cjs/constant/decorator/api/controller.constant.d.ts +2 -0
  39. package/dist/cjs/constant/decorator/api/controller.constant.js +4 -0
  40. package/dist/cjs/constant/decorator/api/controller.constant.js.map +1 -1
  41. package/dist/cjs/constant/index.d.ts +1 -0
  42. package/dist/cjs/decorator/api/authorization/index.d.ts +1 -0
  43. package/dist/cjs/decorator/api/authorization/policy.decorator.d.ts +9 -0
  44. package/dist/cjs/decorator/api/authorization/policy.decorator.js +25 -0
  45. package/dist/cjs/decorator/api/authorization/policy.decorator.js.map +1 -0
  46. package/dist/cjs/decorator/api/controller/index.d.ts +1 -0
  47. package/dist/cjs/decorator/api/controller/securable.decorator.d.ts +6 -0
  48. package/dist/cjs/decorator/api/controller/securable.decorator.js +17 -0
  49. package/dist/cjs/decorator/api/controller/securable.decorator.js.map +1 -0
  50. package/dist/cjs/decorator/api/index.d.ts +1 -0
  51. package/dist/cjs/decorator/api/method.decorator.js +7 -1
  52. package/dist/cjs/decorator/api/method.decorator.js.map +1 -1
  53. package/dist/cjs/enum/authorization/effect.enum.d.ts +4 -0
  54. package/dist/cjs/enum/authorization/effect.enum.js +8 -0
  55. package/dist/cjs/enum/authorization/effect.enum.js.map +1 -0
  56. package/dist/cjs/enum/authorization/index.d.ts +2 -0
  57. package/dist/cjs/enum/authorization/policy/index.d.ts +1 -0
  58. package/dist/cjs/enum/authorization/policy/on-type.enum.d.ts +3 -0
  59. package/dist/cjs/enum/authorization/policy/on-type.enum.js +7 -0
  60. package/dist/cjs/enum/authorization/policy/on-type.enum.js.map +1 -0
  61. package/dist/cjs/enum/index.d.ts +1 -0
  62. package/dist/cjs/external/tslib/tslib.es6.js +5 -0
  63. package/dist/cjs/external/tslib/tslib.es6.js.map +1 -1
  64. package/dist/cjs/factory/api/controller.factory.js +63 -28
  65. package/dist/cjs/factory/api/controller.factory.js.map +1 -1
  66. package/dist/cjs/index.js +60 -4
  67. package/dist/cjs/index.js.map +1 -1
  68. package/dist/cjs/interface/api-authentication-request.interface.d.ts +3 -0
  69. package/dist/cjs/interface/authorization/decision.interface.d.ts +17 -0
  70. package/dist/cjs/interface/authorization/engine.interface.d.ts +6 -0
  71. package/dist/cjs/interface/authorization/evaluate-options.interface.d.ts +9 -0
  72. package/dist/cjs/interface/authorization/index.d.ts +7 -0
  73. package/dist/cjs/interface/authorization/policy/index.d.ts +3 -0
  74. package/dist/cjs/interface/authorization/policy/interface.d.ts +9 -0
  75. package/dist/cjs/interface/authorization/policy/registry.interface.d.ts +10 -0
  76. package/dist/cjs/interface/authorization/policy/subscriber/context.interface.d.ts +9 -0
  77. package/dist/cjs/interface/authorization/policy/subscriber/index.d.ts +5 -0
  78. package/dist/cjs/interface/authorization/policy/subscriber/interface.d.ts +14 -0
  79. package/dist/cjs/interface/authorization/policy/subscriber/properties.interface.d.ts +7 -0
  80. package/dist/cjs/interface/authorization/policy/subscriber/registration.interface.d.ts +9 -0
  81. package/dist/cjs/interface/authorization/policy/subscriber/rule.interface.d.ts +13 -0
  82. package/dist/cjs/interface/authorization/rule/context.interface.d.ts +6 -0
  83. package/dist/cjs/interface/authorization/rule/index.d.ts +2 -0
  84. package/dist/cjs/interface/authorization/rule/interface.d.ts +15 -0
  85. package/dist/cjs/interface/authorization/scope.interface.d.ts +5 -0
  86. package/dist/cjs/interface/authorization/subject.interface.d.ts +6 -0
  87. package/dist/cjs/interface/class/api/subscriber/route-execution-context-data.interface.d.ts +7 -1
  88. package/dist/cjs/interface/index.d.ts +1 -0
  89. package/dist/cjs/module/api/authorization.module.d.ts +7 -0
  90. package/dist/cjs/module/api/authorization.module.js +39 -0
  91. package/dist/cjs/module/api/authorization.module.js.map +1 -0
  92. package/dist/cjs/module/api/index.d.ts +2 -0
  93. package/dist/cjs/module/{api-subscriber.module.js → api/subscriber.module.js} +3 -3
  94. package/dist/cjs/module/api/subscriber.module.js.map +1 -0
  95. package/dist/cjs/module/index.d.ts +1 -1
  96. package/dist/cjs/type/class/api/authorization/guard-request.type.d.ts +7 -0
  97. package/dist/cjs/type/class/api/authorization/index.d.ts +4 -0
  98. package/dist/cjs/type/class/api/authorization/policy/hook/index.d.ts +2 -0
  99. package/dist/cjs/type/class/api/authorization/policy/hook/result.type.d.ts +8 -0
  100. package/dist/cjs/type/class/api/authorization/policy/hook/type.d.ts +5 -0
  101. package/dist/cjs/type/class/api/authorization/policy/index.d.ts +2 -0
  102. package/dist/cjs/type/class/api/authorization/policy/policy-subscriber-rule-result.type.d.ts +3 -0
  103. package/dist/cjs/type/class/api/authorization/rule/condition.type.d.ts +3 -0
  104. package/dist/cjs/type/class/api/authorization/rule/index.d.ts +4 -0
  105. package/dist/cjs/type/class/api/authorization/rule/result-transform.type.d.ts +4 -0
  106. package/dist/cjs/type/class/api/authorization/rule/scope-resolver.type.d.ts +4 -0
  107. package/dist/cjs/type/class/api/authorization/rule/transform-payload.type.d.ts +3 -0
  108. package/dist/cjs/type/class/api/authorization/scope-where.type.d.ts +3 -0
  109. package/dist/cjs/type/class/api/subscriber/route/after/create-context.type.d.ts +1 -1
  110. package/dist/cjs/type/class/api/subscriber/route/after/delete-context.type.d.ts +1 -1
  111. package/dist/cjs/type/class/api/subscriber/route/after/get/context.type.d.ts +1 -1
  112. package/dist/cjs/type/class/api/subscriber/route/after/get/list-context.type.d.ts +2 -1
  113. package/dist/cjs/type/class/api/subscriber/route/after/get/many-context.type.d.ts +1 -1
  114. package/dist/cjs/type/class/api/subscriber/route/after/update-context.type.d.ts +1 -1
  115. package/dist/cjs/type/index.d.ts +1 -0
  116. package/dist/cjs/utility/api/controller/apply-metadata.utility.js +3 -5
  117. package/dist/cjs/utility/api/controller/apply-metadata.utility.js.map +1 -1
  118. package/dist/cjs/utility/authorization/decision/apply-result.utility.d.ts +12 -0
  119. package/dist/cjs/utility/authorization/decision/apply-result.utility.js +27 -0
  120. package/dist/cjs/utility/authorization/decision/apply-result.utility.js.map +1 -0
  121. package/dist/cjs/utility/authorization/decision/attach-resource.utility.d.ts +11 -0
  122. package/dist/cjs/utility/authorization/decision/attach-resource.utility.js +20 -0
  123. package/dist/cjs/utility/authorization/decision/attach-resource.utility.js.map +1 -0
  124. package/dist/cjs/utility/authorization/decision/index.d.ts +3 -0
  125. package/dist/cjs/utility/authorization/decision/resolve-from-request.utility.d.ts +12 -0
  126. package/dist/cjs/utility/authorization/decision/resolve-from-request.utility.js +22 -0
  127. package/dist/cjs/utility/authorization/decision/resolve-from-request.utility.js.map +1 -0
  128. package/dist/cjs/utility/authorization/index.d.ts +3 -0
  129. package/dist/cjs/utility/authorization/scope/index.d.ts +1 -0
  130. package/dist/cjs/utility/authorization/scope/merge/index.d.ts +1 -0
  131. package/dist/cjs/utility/authorization/scope/merge/where.utility.d.ts +10 -0
  132. package/dist/cjs/utility/authorization/scope/merge/where.utility.js +32 -0
  133. package/dist/cjs/utility/authorization/scope/merge/where.utility.js.map +1 -0
  134. package/dist/cjs/utility/authorization/subject/index.d.ts +1 -0
  135. package/dist/cjs/utility/authorization/subject/resolve-default-subject.utility.d.ts +7 -0
  136. package/dist/cjs/utility/authorization/subject/resolve-default-subject.utility.js +52 -0
  137. package/dist/cjs/utility/authorization/subject/resolve-default-subject.utility.js.map +1 -0
  138. package/dist/cjs/utility/index.d.ts +1 -0
  139. package/dist/esm/class/api/authorization/engine.class.d.ts +8 -0
  140. package/dist/esm/class/api/authorization/engine.class.js +92 -0
  141. package/dist/esm/class/api/authorization/engine.class.js.map +1 -0
  142. package/dist/esm/class/api/authorization/guard.class.d.ts +13 -0
  143. package/dist/esm/class/api/authorization/guard.class.js +79 -0
  144. package/dist/esm/class/api/authorization/guard.class.js.map +1 -0
  145. package/dist/esm/class/api/authorization/index.d.ts +3 -0
  146. package/dist/esm/class/api/authorization/policy/base.class.d.ts +37 -0
  147. package/dist/esm/class/api/authorization/policy/base.class.js +66 -0
  148. package/dist/esm/class/api/authorization/policy/base.class.js.map +1 -0
  149. package/dist/esm/class/api/authorization/policy/discovery-service.class.d.ts +10 -0
  150. package/dist/esm/class/api/authorization/policy/discovery-service.class.js +53 -0
  151. package/dist/esm/class/api/authorization/policy/discovery-service.class.js.map +1 -0
  152. package/dist/esm/class/api/authorization/policy/executor.class.d.ts +8 -0
  153. package/dist/esm/class/api/authorization/policy/executor.class.js +41 -0
  154. package/dist/esm/class/api/authorization/policy/executor.class.js.map +1 -0
  155. package/dist/esm/class/api/authorization/policy/index.d.ts +4 -0
  156. package/dist/esm/class/api/authorization/policy/registry.class.d.ts +26 -0
  157. package/dist/esm/class/api/authorization/policy/registry.class.js +148 -0
  158. package/dist/esm/class/api/authorization/policy/registry.class.js.map +1 -0
  159. package/dist/esm/class/api/service-base.class.d.ts +2 -2
  160. package/dist/esm/class/api/service-base.class.js.map +1 -1
  161. package/dist/esm/class/index.d.ts +1 -0
  162. package/dist/esm/constant/authorization/index.d.ts +3 -0
  163. package/dist/esm/constant/authorization/metadata/decision.constant.d.ts +3 -0
  164. package/dist/esm/constant/authorization/metadata/decision.constant.js +7 -0
  165. package/dist/esm/constant/authorization/metadata/decision.constant.js.map +1 -0
  166. package/dist/esm/constant/authorization/metadata/index.d.ts +1 -0
  167. package/dist/esm/constant/authorization/policy/decorator.constant.d.ts +4 -0
  168. package/dist/esm/constant/authorization/policy/decorator.constant.js +9 -0
  169. package/dist/esm/constant/authorization/policy/decorator.constant.js.map +1 -0
  170. package/dist/esm/constant/authorization/policy/index.d.ts +1 -0
  171. package/dist/esm/constant/authorization/token/index.d.ts +1 -0
  172. package/dist/esm/constant/authorization/token/registry.constant.d.ts +1 -0
  173. package/dist/esm/constant/authorization/token/registry.constant.js +5 -0
  174. package/dist/esm/constant/authorization/token/registry.constant.js.map +1 -0
  175. package/dist/esm/constant/decorator/api/controller.constant.d.ts +2 -0
  176. package/dist/esm/constant/decorator/api/controller.constant.js +4 -0
  177. package/dist/esm/constant/decorator/api/controller.constant.js.map +1 -1
  178. package/dist/esm/constant/index.d.ts +1 -0
  179. package/dist/esm/decorator/api/authorization/index.d.ts +1 -0
  180. package/dist/esm/decorator/api/authorization/policy.decorator.d.ts +9 -0
  181. package/dist/esm/decorator/api/authorization/policy.decorator.js +23 -0
  182. package/dist/esm/decorator/api/authorization/policy.decorator.js.map +1 -0
  183. package/dist/esm/decorator/api/controller/index.d.ts +1 -0
  184. package/dist/esm/decorator/api/controller/securable.decorator.d.ts +6 -0
  185. package/dist/esm/decorator/api/controller/securable.decorator.js +15 -0
  186. package/dist/esm/decorator/api/controller/securable.decorator.js.map +1 -0
  187. package/dist/esm/decorator/api/index.d.ts +1 -0
  188. package/dist/esm/decorator/api/method.decorator.js +7 -1
  189. package/dist/esm/decorator/api/method.decorator.js.map +1 -1
  190. package/dist/esm/enum/authorization/effect.enum.d.ts +4 -0
  191. package/dist/esm/enum/authorization/effect.enum.js +8 -0
  192. package/dist/esm/enum/authorization/effect.enum.js.map +1 -0
  193. package/dist/esm/enum/authorization/index.d.ts +2 -0
  194. package/dist/esm/enum/authorization/policy/index.d.ts +1 -0
  195. package/dist/esm/enum/authorization/policy/on-type.enum.d.ts +3 -0
  196. package/dist/esm/enum/authorization/policy/on-type.enum.js +7 -0
  197. package/dist/esm/enum/authorization/policy/on-type.enum.js.map +1 -0
  198. package/dist/esm/enum/index.d.ts +1 -0
  199. package/dist/esm/external/tslib/tslib.es6.js +5 -1
  200. package/dist/esm/external/tslib/tslib.es6.js.map +1 -1
  201. package/dist/esm/factory/api/controller.factory.js +63 -28
  202. package/dist/esm/factory/api/controller.factory.js.map +1 -1
  203. package/dist/esm/index.js +20 -1
  204. package/dist/esm/index.js.map +1 -1
  205. package/dist/esm/interface/api-authentication-request.interface.d.ts +3 -0
  206. package/dist/esm/interface/authorization/decision.interface.d.ts +17 -0
  207. package/dist/esm/interface/authorization/engine.interface.d.ts +6 -0
  208. package/dist/esm/interface/authorization/evaluate-options.interface.d.ts +9 -0
  209. package/dist/esm/interface/authorization/index.d.ts +7 -0
  210. package/dist/esm/interface/authorization/policy/index.d.ts +3 -0
  211. package/dist/esm/interface/authorization/policy/interface.d.ts +9 -0
  212. package/dist/esm/interface/authorization/policy/registry.interface.d.ts +10 -0
  213. package/dist/esm/interface/authorization/policy/subscriber/context.interface.d.ts +9 -0
  214. package/dist/esm/interface/authorization/policy/subscriber/index.d.ts +5 -0
  215. package/dist/esm/interface/authorization/policy/subscriber/interface.d.ts +14 -0
  216. package/dist/esm/interface/authorization/policy/subscriber/properties.interface.d.ts +7 -0
  217. package/dist/esm/interface/authorization/policy/subscriber/registration.interface.d.ts +9 -0
  218. package/dist/esm/interface/authorization/policy/subscriber/rule.interface.d.ts +13 -0
  219. package/dist/esm/interface/authorization/rule/context.interface.d.ts +6 -0
  220. package/dist/esm/interface/authorization/rule/index.d.ts +2 -0
  221. package/dist/esm/interface/authorization/rule/interface.d.ts +15 -0
  222. package/dist/esm/interface/authorization/scope.interface.d.ts +5 -0
  223. package/dist/esm/interface/authorization/subject.interface.d.ts +6 -0
  224. package/dist/esm/interface/class/api/subscriber/route-execution-context-data.interface.d.ts +7 -1
  225. package/dist/esm/interface/index.d.ts +1 -0
  226. package/dist/esm/module/api/authorization.module.d.ts +7 -0
  227. package/dist/esm/module/api/authorization.module.js +39 -0
  228. package/dist/esm/module/api/authorization.module.js.map +1 -0
  229. package/dist/esm/module/api/index.d.ts +2 -0
  230. package/dist/esm/module/{api-subscriber.module.js → api/subscriber.module.js} +3 -3
  231. package/dist/esm/module/api/subscriber.module.js.map +1 -0
  232. package/dist/esm/module/index.d.ts +1 -1
  233. package/dist/esm/type/class/api/authorization/guard-request.type.d.ts +7 -0
  234. package/dist/esm/type/class/api/authorization/index.d.ts +4 -0
  235. package/dist/esm/type/class/api/authorization/policy/hook/index.d.ts +2 -0
  236. package/dist/esm/type/class/api/authorization/policy/hook/result.type.d.ts +8 -0
  237. package/dist/esm/type/class/api/authorization/policy/hook/type.d.ts +5 -0
  238. package/dist/esm/type/class/api/authorization/policy/index.d.ts +2 -0
  239. package/dist/esm/type/class/api/authorization/policy/policy-subscriber-rule-result.type.d.ts +3 -0
  240. package/dist/esm/type/class/api/authorization/rule/condition.type.d.ts +3 -0
  241. package/dist/esm/type/class/api/authorization/rule/index.d.ts +4 -0
  242. package/dist/esm/type/class/api/authorization/rule/result-transform.type.d.ts +4 -0
  243. package/dist/esm/type/class/api/authorization/rule/scope-resolver.type.d.ts +4 -0
  244. package/dist/esm/type/class/api/authorization/rule/transform-payload.type.d.ts +3 -0
  245. package/dist/esm/type/class/api/authorization/scope-where.type.d.ts +3 -0
  246. package/dist/esm/type/class/api/subscriber/route/after/create-context.type.d.ts +1 -1
  247. package/dist/esm/type/class/api/subscriber/route/after/delete-context.type.d.ts +1 -1
  248. package/dist/esm/type/class/api/subscriber/route/after/get/context.type.d.ts +1 -1
  249. package/dist/esm/type/class/api/subscriber/route/after/get/list-context.type.d.ts +2 -1
  250. package/dist/esm/type/class/api/subscriber/route/after/get/many-context.type.d.ts +1 -1
  251. package/dist/esm/type/class/api/subscriber/route/after/update-context.type.d.ts +1 -1
  252. package/dist/esm/type/index.d.ts +1 -0
  253. package/dist/esm/utility/api/controller/apply-metadata.utility.js +3 -5
  254. package/dist/esm/utility/api/controller/apply-metadata.utility.js.map +1 -1
  255. package/dist/esm/utility/authorization/decision/apply-result.utility.d.ts +12 -0
  256. package/dist/esm/utility/authorization/decision/apply-result.utility.js +25 -0
  257. package/dist/esm/utility/authorization/decision/apply-result.utility.js.map +1 -0
  258. package/dist/esm/utility/authorization/decision/attach-resource.utility.d.ts +11 -0
  259. package/dist/esm/utility/authorization/decision/attach-resource.utility.js +18 -0
  260. package/dist/esm/utility/authorization/decision/attach-resource.utility.js.map +1 -0
  261. package/dist/esm/utility/authorization/decision/index.d.ts +3 -0
  262. package/dist/esm/utility/authorization/decision/resolve-from-request.utility.d.ts +12 -0
  263. package/dist/esm/utility/authorization/decision/resolve-from-request.utility.js +20 -0
  264. package/dist/esm/utility/authorization/decision/resolve-from-request.utility.js.map +1 -0
  265. package/dist/esm/utility/authorization/index.d.ts +3 -0
  266. package/dist/esm/utility/authorization/scope/index.d.ts +1 -0
  267. package/dist/esm/utility/authorization/scope/merge/index.d.ts +1 -0
  268. package/dist/esm/utility/authorization/scope/merge/where.utility.d.ts +10 -0
  269. package/dist/esm/utility/authorization/scope/merge/where.utility.js +30 -0
  270. package/dist/esm/utility/authorization/scope/merge/where.utility.js.map +1 -0
  271. package/dist/esm/utility/authorization/subject/index.d.ts +1 -0
  272. package/dist/esm/utility/authorization/subject/resolve-default-subject.utility.d.ts +7 -0
  273. package/dist/esm/utility/authorization/subject/resolve-default-subject.utility.js +50 -0
  274. package/dist/esm/utility/authorization/subject/resolve-default-subject.utility.js.map +1 -0
  275. package/dist/esm/utility/index.d.ts +1 -0
  276. package/package.json +1 -1
  277. package/dist/cjs/module/api-subscriber.module.js.map +0 -1
  278. package/dist/esm/module/api-subscriber.module.js.map +0 -1
  279. /package/dist/cjs/module/{api-subscriber.module.d.ts → api/subscriber.module.d.ts} +0 -0
  280. /package/dist/esm/module/{api-subscriber.module.d.ts → api/subscriber.module.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"controller.factory.js","sources":["../../../../../src/factory/api/controller.factory.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.factory.js","sources":["../../../../../src/factory/api/controller.factory.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -5,6 +5,12 @@ export { ApiSubscriberExecutor } from './class/api/subscriber/executor.class.js'
5
5
  export { ApiFunctionSubscriberBase } from './class/api/subscriber/function-base.class.js';
6
6
  export { apiSubscriberRegistry } from './class/api/subscriber/registry.class.js';
7
7
  export { ApiRouteSubscriberBase } from './class/api/subscriber/route-base.class.js';
8
+ export { ApiAuthorizationEngine } from './class/api/authorization/engine.class.js';
9
+ export { ApiAuthorizationGuard } from './class/api/authorization/guard.class.js';
10
+ export { ApiAuthorizationPolicyBase } from './class/api/authorization/policy/base.class.js';
11
+ export { ApiAuthorizationPolicyDiscoveryService } from './class/api/authorization/policy/discovery-service.class.js';
12
+ export { ApiAuthorizationPolicyExecutor } from './class/api/authorization/policy/executor.class.js';
13
+ export { ApiAuthorizationPolicyRegistry } from './class/api/authorization/policy/registry.class.js';
8
14
  export { MetadataStorage } from './class/metadata-storage.class.js';
9
15
  export { DtoPropertyFactoryBoolean } from './class/utility/dto/property/factory/boolean.class.js';
10
16
  export { DtoPropertyFactoryDate } from './class/utility/dto/property/factory/date.class.js';
@@ -18,6 +24,9 @@ export { DtoStrategyBody } from './class/utility/dto/strategy/body.class.js';
18
24
  export { DtoStrategyQuery } from './class/utility/dto/strategy/query.class.js';
19
25
  export { DtoStrategyRequest } from './class/utility/dto/strategy/request.class.js';
20
26
  export { DtoStrategyResponse } from './class/utility/dto/strategy/response.class.js';
27
+ export { AUTHORIZATION_DECISION_METADATA_CONSTANT } from './constant/authorization/metadata/decision.constant.js';
28
+ export { AUTHORIZATION_POLICY_DECORATOR_CONSTANT } from './constant/authorization/policy/decorator.constant.js';
29
+ export { AUTHORIZATION_POLICY_REGISTRY_TOKEN } from './constant/authorization/token/registry.constant.js';
21
30
  export { DATE_CONSTANT } from './constant/date.constant.js';
22
31
  export { CONTROLLER_API_DECORATOR_CONSTANT } from './constant/decorator/api/controller.constant.js';
23
32
  export { FUNCTION_API_DECORATOR_CONSTANT } from './constant/decorator/api/function.constant.js';
@@ -34,8 +43,10 @@ export { NUMBER_CONSTANT } from './constant/number.constant.js';
34
43
  export { DTO_UTILITY_CONSTANT } from './constant/utility/dto/constant.js';
35
44
  export { DTO_GENERATE_CONSTANT } from './constant/utility/dto/generate.constant.js';
36
45
  export { VALIDATOR_HAS_PAIRED_CUSTOM_SUFFIXES_FIELDS_CONSTANT } from './constant/validator/has-paired-custom-suffixes-fields.constant.js';
46
+ export { ApiAuthorizationPolicy } from './decorator/api/authorization/policy.decorator.js';
37
47
  export { ApiController } from './decorator/api/controller/decorator.js';
38
48
  export { ApiControllerObservable } from './decorator/api/controller/observable.decorator.js';
49
+ export { ApiControllerSecurable } from './decorator/api/controller/securable.decorator.js';
39
50
  export { ApiFunctionCreate } from './decorator/api/function/create.decorator.js';
40
51
  export { ApiFunction } from './decorator/api/function/decorator.js';
41
52
  export { ApiFunctionDelete } from './decorator/api/function/delete.decorator.js';
@@ -57,6 +68,8 @@ export { ApiServiceObservable } from './decorator/api/service/observable.decorat
57
68
  export { ApiService } from './decorator/api/service.decorator.js';
58
69
  export { ApiFunctionSubscriber } from './decorator/api/subscriber/function.decorator.js';
59
70
  export { ApiRouteSubscriber } from './decorator/api/subscriber/route.decorator.js';
71
+ export { EAuthorizationEffect } from './enum/authorization/effect.enum.js';
72
+ export { EApiAuthorizationPolicyOnType } from './enum/authorization/policy/on-type.enum.js';
60
73
  export { EApiAction } from './enum/decorator/api/action.enum.js';
61
74
  export { EApiAuthenticationType } from './enum/decorator/api/authentication-type.enum.js';
62
75
  export { EApiControllerLoadRelationsStrategy } from './enum/decorator/api/controller/load-relations-strategy.enum.js';
@@ -80,7 +93,8 @@ export { EHasPairedCustomSuffixesFieldsArgumentType } from './enum/validator/has
80
93
  export { EMastMatchOneOfSchemasValidationErrorType } from './enum/validator/must-match-one-of-schemas-error-type.enum.js';
81
94
  export { ApiControllerFactory } from './factory/api/controller.factory.js';
82
95
  export { CorrelationIDResponseBodyInterceptor } from './interceptor/correlation-id-response-body.interceptor.js';
83
- export { ApiSubscriberModule } from './module/api-subscriber.module.js';
96
+ export { ApiAuthorizationModule } from './module/api/authorization.module.js';
97
+ export { ApiSubscriberModule } from './module/api/subscriber.module.js';
84
98
  export { ApiControllerApplyDecorators } from './utility/api/controller/apply-decorators.utility.js';
85
99
  export { ApiControllerApplyMetadata } from './utility/api/controller/apply-metadata.utility.js';
86
100
  export { ApiControllerGetListTransformFilter } from './utility/api/controller/get-list/transform-filter.utility.js';
@@ -94,6 +108,11 @@ export { ApiControllerWriteDtoSwagger } from './utility/api/controller/write-dto
94
108
  export { ApiControllerWriteMethod } from './utility/api/controller/write-method.utility.js';
95
109
  export { FilterOrderByFromEntity } from './utility/api/filter-order-by-from-entity.utility.js';
96
110
  export { GetDefaultStringFormatProperties } from './utility/api/property/get-default-string-format-properties.utility.js';
111
+ export { AuthorizationDecisionApplyResult } from './utility/authorization/decision/apply-result.utility.js';
112
+ export { AuthorizationDecisionAttachResource } from './utility/authorization/decision/attach-resource.utility.js';
113
+ export { AuthorizationDecisionResolveFromRequest } from './utility/authorization/decision/resolve-from-request.utility.js';
114
+ export { AuthorizationScopeMergeWhere } from './utility/authorization/scope/merge/where.utility.js';
115
+ export { AuthorizationResolveDefaultSubject } from './utility/authorization/subject/resolve-default-subject.utility.js';
97
116
  export { CamelCaseString } from './utility/camel-case-string.utility.js';
98
117
  export { CapitalizeString } from './utility/capitalize-string.utility.js';
99
118
  export { analyzeEntityMetadata } from './utility/dto/analize.utility.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,7 @@
1
1
  import type { IApiBaseEntity } from './api-base-entity.interface';
2
+ import type { IApiAuthorizationDecision } from './authorization/index';
3
+ import type { TApiAuthorizationRuleTransformPayload } from '../type/class/api/authorization/rule/transform-payload.type';
2
4
  export interface IApiAuthenticationRequest {
5
+ authorizationDecision?: IApiAuthorizationDecision<IApiBaseEntity, TApiAuthorizationRuleTransformPayload<IApiBaseEntity>>;
3
6
  user: IApiBaseEntity;
4
7
  }
@@ -0,0 +1,17 @@
1
+ import type { EAuthorizationEffect } from '../../enum/authorization/effect.enum';
2
+ import type { IApiBaseEntity } from '../api-base-entity.interface';
3
+ import type { IApiAuthorizationRule } from './rule/interface';
4
+ import type { IApiAuthorizationScope } from './scope.interface';
5
+ import type { IApiAuthorizationSubject } from './subject.interface';
6
+ import type { TApiAuthorizationRuleResultTransform } from '../../type/class/api/authorization/rule/result-transform.type';
7
+ export interface IApiAuthorizationDecision<E extends IApiBaseEntity, R> {
8
+ action: string;
9
+ appliedRules: Array<IApiAuthorizationRule<E, R>>;
10
+ effect: EAuthorizationEffect;
11
+ policyId: string;
12
+ resource?: E;
13
+ resourceType: string;
14
+ scope?: IApiAuthorizationScope<E>;
15
+ subject: IApiAuthorizationSubject;
16
+ transforms: Array<TApiAuthorizationRuleResultTransform<E, R>>;
17
+ }
@@ -0,0 +1,6 @@
1
+ import type { IApiBaseEntity } from '../api-base-entity.interface';
2
+ import type { IApiAuthorizationDecision } from './decision.interface';
3
+ import type { IApiAuthorizationEngineEvaluateOptions } from './evaluate-options.interface';
4
+ export interface IApiAuthorizationEngine<E extends IApiBaseEntity> {
5
+ evaluate<R>(options: IApiAuthorizationEngineEvaluateOptions<E, R>): Promise<IApiAuthorizationDecision<E, R>>;
6
+ }
@@ -0,0 +1,9 @@
1
+ import type { IApiBaseEntity } from '../api-base-entity.interface';
2
+ import type { IApiAuthorizationPolicy } from './policy/interface';
3
+ import type { IApiAuthorizationSubject } from './subject.interface';
4
+ export interface IApiAuthorizationEngineEvaluateOptions<E extends IApiBaseEntity, R> {
5
+ action: string;
6
+ policy: IApiAuthorizationPolicy<E, R>;
7
+ resource?: E;
8
+ subject: IApiAuthorizationSubject;
9
+ }
@@ -0,0 +1,7 @@
1
+ export { type IApiAuthorizationDecision } from './decision.interface';
2
+ export { type IApiAuthorizationEngine } from './engine.interface';
3
+ export { type IApiAuthorizationEngineEvaluateOptions } from './evaluate-options.interface';
4
+ export type * from './policy/index';
5
+ export type * from './rule/index';
6
+ export { type IApiAuthorizationScope } from './scope.interface';
7
+ export { type IApiAuthorizationSubject } from './subject.interface';
@@ -0,0 +1,3 @@
1
+ export { type IApiAuthorizationPolicy } from './interface';
2
+ export { type IApiAuthorizationPolicyRegistry } from './registry.interface';
3
+ export type * from './subscriber/index';
@@ -0,0 +1,9 @@
1
+ import type { IApiBaseEntity } from '../../api-base-entity.interface';
2
+ import type { IApiAuthorizationRule } from '../rule/interface';
3
+ export interface IApiAuthorizationPolicy<E extends IApiBaseEntity, R> {
4
+ action: string;
5
+ description?: string;
6
+ entity: new () => E;
7
+ policyId: string;
8
+ rules: Array<IApiAuthorizationRule<E, R>>;
9
+ }
@@ -0,0 +1,10 @@
1
+ import type { IApiBaseEntity } from '../../api-base-entity.interface';
2
+ import type { IApiAuthorizationPolicy } from './interface';
3
+ import type { IApiAuthorizationPolicySubscriberRegistration } from './subscriber/registration.interface';
4
+ import type { TApiAuthorizationPolicyHookResult } from '../../../type/class/api/authorization/policy/hook/index';
5
+ export interface IApiAuthorizationPolicyRegistry {
6
+ buildAggregatedPolicy<E extends IApiBaseEntity, TAction extends string>(entity: new () => E, action: TAction): Promise<IApiAuthorizationPolicy<E, TApiAuthorizationPolicyHookResult<TAction, E>> | undefined>;
7
+ clear(): void;
8
+ registerPolicy<E extends IApiBaseEntity, R>(policy: IApiAuthorizationPolicy<E, R>): void;
9
+ registerSubscriber<E extends IApiBaseEntity>(registration: IApiAuthorizationPolicySubscriberRegistration<E>): void;
10
+ }
@@ -0,0 +1,9 @@
1
+ import type { EApiRouteType } from '../../../../enum/decorator/api/route-type.enum';
2
+ import type { IApiBaseEntity } from '../../../api-base-entity.interface';
3
+ import type { IApiEntity } from '../../../entity/interface';
4
+ export interface IApiAuthorizationPolicySubscriberContext<E extends IApiBaseEntity> {
5
+ action: string;
6
+ entity: new () => E;
7
+ entityMetadata: IApiEntity<E>;
8
+ routeType?: EApiRouteType;
9
+ }
@@ -0,0 +1,5 @@
1
+ export { type IApiAuthorizationPolicySubscriberContext } from './context.interface';
2
+ export { type IApiAuthorizationPolicySubscriber } from './interface';
3
+ export { type IApiAuthorizationPolicySubscriberProperties } from './properties.interface';
4
+ export { type IApiAuthorizationPolicySubscriberRegistration } from './registration.interface';
5
+ export { type IApiAuthorizationPolicySubscriberRule } from './rule.interface';
@@ -0,0 +1,14 @@
1
+ import type { EApiRouteType } from '../../../../enum/decorator/api/route-type.enum';
2
+ import type { IApiBaseEntity } from '../../../api-base-entity.interface';
3
+ import type { IApiAuthorizationPolicySubscriberContext } from './context.interface';
4
+ import type { TApiAuthorizationPolicyHookResult } from '../../../../type/class/api/authorization/policy/hook/index';
5
+ import type { TApiAuthorizationPolicySubscriberRuleResult } from '../../../../type/class/api/authorization/policy/policy-subscriber-rule-result.type';
6
+ export interface IApiAuthorizationPolicySubscriber<E extends IApiBaseEntity> {
7
+ getCustomActionRule?<TAction extends string>(action: TAction, context: IApiAuthorizationPolicySubscriberContext<E>): Promise<TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<TAction, E>>> | TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<TAction, E>>;
8
+ onBeforeCreate?(context: IApiAuthorizationPolicySubscriberContext<E>): Promise<TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<EApiRouteType.CREATE, E>>> | TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<EApiRouteType.CREATE, E>>;
9
+ onBeforeDelete?(context: IApiAuthorizationPolicySubscriberContext<E>): Promise<TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<EApiRouteType.DELETE, E>>> | TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<EApiRouteType.DELETE, E>>;
10
+ onBeforeGet?(context: IApiAuthorizationPolicySubscriberContext<E>): Promise<TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<EApiRouteType.GET, E>>> | TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<EApiRouteType.GET, E>>;
11
+ onBeforeGetList?(context: IApiAuthorizationPolicySubscriberContext<E>): Promise<TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<EApiRouteType.GET_LIST, E>>> | TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<EApiRouteType.GET_LIST, E>>;
12
+ onBeforePartialUpdate?(context: IApiAuthorizationPolicySubscriberContext<E>): Promise<TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<EApiRouteType.PARTIAL_UPDATE, E>>> | TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<EApiRouteType.PARTIAL_UPDATE, E>>;
13
+ onBeforeUpdate?(context: IApiAuthorizationPolicySubscriberContext<E>): Promise<TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<EApiRouteType.UPDATE, E>>> | TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<EApiRouteType.UPDATE, E>>;
14
+ }
@@ -0,0 +1,7 @@
1
+ import type { IApiBaseEntity } from '../../../api-base-entity.interface';
2
+ export interface IApiAuthorizationPolicySubscriberProperties<E extends IApiBaseEntity> {
3
+ description?: string;
4
+ entity: new () => E;
5
+ policyId?: string;
6
+ priority?: number;
7
+ }
@@ -0,0 +1,9 @@
1
+ import type { IApiBaseEntity } from '../../../api-base-entity.interface';
2
+ import type { IApiAuthorizationPolicySubscriber } from './interface';
3
+ export interface IApiAuthorizationPolicySubscriberRegistration<E extends IApiBaseEntity> {
4
+ description?: string;
5
+ entity: new () => E;
6
+ policyId: string;
7
+ priority: number;
8
+ subscriber: IApiAuthorizationPolicySubscriber<E>;
9
+ }
@@ -0,0 +1,13 @@
1
+ import type { EAuthorizationEffect } from '../../../../enum/authorization/effect.enum';
2
+ import type { IApiBaseEntity } from '../../../api-base-entity.interface';
3
+ import type { TApiAuthorizationRuleCondition } from '../../../../type/class/api/authorization/rule/condition.type';
4
+ import type { TApiAuthorizationRuleResultTransform } from '../../../../type/class/api/authorization/rule/result-transform.type';
5
+ import type { TApiAuthorizationRuleScopeResolver } from '../../../../type/class/api/authorization/rule/scope-resolver.type';
6
+ export interface IApiAuthorizationPolicySubscriberRule<E extends IApiBaseEntity, R> {
7
+ condition?: TApiAuthorizationRuleCondition<E>;
8
+ description?: string;
9
+ effect: EAuthorizationEffect;
10
+ priority?: number;
11
+ resultTransform?: TApiAuthorizationRuleResultTransform<E, R>;
12
+ scope?: TApiAuthorizationRuleScopeResolver<E>;
13
+ }
@@ -0,0 +1,6 @@
1
+ import type { IApiBaseEntity } from '../../api-base-entity.interface';
2
+ import type { IApiAuthorizationSubject } from '../subject.interface';
3
+ export interface IApiAuthorizationRuleContext<E extends IApiBaseEntity> {
4
+ resource?: E;
5
+ subject: IApiAuthorizationSubject;
6
+ }
@@ -0,0 +1,2 @@
1
+ export { type IApiAuthorizationRuleContext } from './context.interface';
2
+ export { type IApiAuthorizationRule } from './interface';
@@ -0,0 +1,15 @@
1
+ import type { EAuthorizationEffect } from '../../../enum/authorization/effect.enum';
2
+ import type { IApiBaseEntity } from '../../api-base-entity.interface';
3
+ import type { TApiAuthorizationRuleCondition } from '../../../type/class/api/authorization/rule/condition.type';
4
+ import type { TApiAuthorizationRuleResultTransform } from '../../../type/class/api/authorization/rule/result-transform.type';
5
+ import type { TApiAuthorizationRuleScopeResolver } from '../../../type/class/api/authorization/rule/scope-resolver.type';
6
+ export interface IApiAuthorizationRule<E extends IApiBaseEntity, R> {
7
+ action: string;
8
+ condition?: TApiAuthorizationRuleCondition<E>;
9
+ description?: string;
10
+ effect: EAuthorizationEffect;
11
+ policyId: string;
12
+ priority: number;
13
+ resultTransform?: TApiAuthorizationRuleResultTransform<E, R>;
14
+ scope?: TApiAuthorizationRuleScopeResolver<E>;
15
+ }
@@ -0,0 +1,5 @@
1
+ import type { IApiBaseEntity } from '../api-base-entity.interface';
2
+ import type { FindOptionsWhere } from "typeorm";
3
+ export interface IApiAuthorizationScope<E extends IApiBaseEntity> {
4
+ where?: Array<FindOptionsWhere<E>> | FindOptionsWhere<E>;
5
+ }
@@ -0,0 +1,6 @@
1
+ export interface IApiAuthorizationSubject {
2
+ attributes?: Record<string, unknown>;
3
+ id: string;
4
+ permissions: Array<string>;
5
+ roles: Array<string>;
6
+ }
@@ -1,8 +1,10 @@
1
1
  import type { EApiRouteType } from '../../../../enum/decorator/api/route-type.enum';
2
2
  import type { IApiAuthenticationRequest } from '../../../api-authentication-request.interface';
3
3
  import type { IApiBaseEntity } from '../../../api-base-entity.interface';
4
+ import type { IApiAuthorizationDecision } from '../../../authorization/index';
4
5
  import type { IApiControllerProperties } from '../../../decorator/api/controller/properties.interface';
5
6
  import type { IApiEntity } from '../../../entity/index';
7
+ import type { TApiAuthorizationRuleTransformPayload } from '../../../../type/class/api/authorization/rule/transform-payload.type';
6
8
  /**
7
9
  * Base data container for route subscriber execution context.
8
10
  * Contains route metadata and configuration.
@@ -46,11 +48,15 @@ export interface IApiSubscriberRouteExecutionContextData<E extends IApiBaseEntit
46
48
  * Extended data container for route subscriber execution context.
47
49
  * Includes request context (headers, IP, authentication) in addition to base route data.
48
50
  */
49
- export interface IApiSubscriberRouteExecutionContextDataExtended<E extends IApiBaseEntity> extends IApiSubscriberRouteExecutionContextData<E> {
51
+ export interface IApiSubscriberRouteExecutionContextDataExtended<E extends IApiBaseEntity, R = TApiAuthorizationRuleTransformPayload<E>> extends IApiSubscriberRouteExecutionContextData<E> {
50
52
  /**
51
53
  * Authentication request information
52
54
  */
53
55
  authenticationRequest?: IApiAuthenticationRequest;
56
+ /**
57
+ * Authorization decision
58
+ */
59
+ authorizationDecision?: IApiAuthorizationDecision<E, R>;
54
60
  /**
55
61
  * HTTP request headers
56
62
  */
@@ -2,6 +2,7 @@ export { type IApiAuthenticationRequest } from './api-authentication-request.int
2
2
  export { type IApiBaseEntity } from './api-base-entity.interface';
3
3
  export { type IApiDtoValidator } from './api-dto-validator.interface';
4
4
  export { type IApiRequestValidator } from './api-request-validator.interface';
5
+ export type * from './authorization/index';
5
6
  export type * from './class/index';
6
7
  export type * from './decorator/api/index';
7
8
  export { type IDtoGenerateFactory } from './dto-generate-factory.interface';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Module responsible for discovering and registering authorization policies.
3
+ * Import this module to enable zero-configuration RBAC.
4
+ * @see {@link https://elsikora.com/docs/nestjs-crud-automator/authorization | Authorization}
5
+ */
6
+ export declare class ApiAuthorizationModule {
7
+ }
@@ -0,0 +1,39 @@
1
+ import { __decorate } from '../../external/tslib/tslib.es6.js';
2
+ import { ApiAuthorizationEngine } from '../../class/api/authorization/engine.class.js';
3
+ import { ApiAuthorizationGuard } from '../../class/api/authorization/guard.class.js';
4
+ import { ApiAuthorizationPolicyDiscoveryService } from '../../class/api/authorization/policy/discovery-service.class.js';
5
+ import { apiAuthorizationPolicyRegistry, ApiAuthorizationPolicyRegistry } from '../../class/api/authorization/policy/registry.class.js';
6
+ import { AUTHORIZATION_POLICY_REGISTRY_TOKEN } from '../../constant/authorization/token/registry.constant.js';
7
+ import { Global, Module } from '@nestjs/common';
8
+ import { DiscoveryModule } from '@nestjs/core';
9
+
10
+ /**
11
+ * Module responsible for discovering and registering authorization policies.
12
+ * Import this module to enable zero-configuration RBAC.
13
+ * @see {@link https://elsikora.com/docs/nestjs-crud-automator/authorization | Authorization}
14
+ */
15
+ let ApiAuthorizationModule = class ApiAuthorizationModule {
16
+ };
17
+ ApiAuthorizationModule = __decorate([
18
+ Global(),
19
+ Module({
20
+ exports: [AUTHORIZATION_POLICY_REGISTRY_TOKEN, ApiAuthorizationEngine, ApiAuthorizationGuard, ApiAuthorizationPolicyDiscoveryService],
21
+ imports: [DiscoveryModule],
22
+ providers: [
23
+ ApiAuthorizationEngine,
24
+ ApiAuthorizationGuard,
25
+ ApiAuthorizationPolicyDiscoveryService,
26
+ {
27
+ provide: AUTHORIZATION_POLICY_REGISTRY_TOKEN,
28
+ useValue: apiAuthorizationPolicyRegistry,
29
+ },
30
+ {
31
+ provide: ApiAuthorizationPolicyRegistry,
32
+ useValue: apiAuthorizationPolicyRegistry,
33
+ },
34
+ ],
35
+ })
36
+ ], ApiAuthorizationModule);
37
+
38
+ export { ApiAuthorizationModule };
39
+ //# sourceMappingURL=authorization.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization.module.js","sources":["../../../../../src/module/api/authorization.module.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAQA;;;;AAIG;AAmBI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB,CAAA;;AAAtB,sBAAsB,GAAA,UAAA,CAAA;AAlBlC,IAAA,MAAM,EAAE;AACR,IAAA,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,mCAAmC,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,sCAAsC,CAAC;QACrI,OAAO,EAAE,CAAC,eAAe,CAAC;AAC1B,QAAA,SAAS,EAAE;YACV,sBAAsB;YACtB,qBAAqB;YACrB,sCAAsC;AACtC,YAAA;AACC,gBAAA,OAAO,EAAE,mCAAmC;AAC5C,gBAAA,QAAQ,EAAE,8BAA8B;AACxC,aAAA;AACD,YAAA;AACC,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,QAAQ,EAAE,8BAA8B;AACxC,aAAA;AACD,SAAA;KACD;AACY,CAAA,EAAA,sBAAsB,CAAG;;;;"}
@@ -0,0 +1,2 @@
1
+ export { ApiAuthorizationModule } from './authorization.module';
2
+ export { ApiSubscriberModule } from './subscriber.module';
@@ -1,5 +1,5 @@
1
- import { __decorate } from '../external/tslib/tslib.es6.js';
2
- import { ApiSubscriberDiscoveryService } from '../class/api/subscriber/discovery-service.class.js';
1
+ import { __decorate } from '../../external/tslib/tslib.es6.js';
2
+ import { ApiSubscriberDiscoveryService } from '../../class/api/subscriber/discovery-service.class.js';
3
3
  import { Module } from '@nestjs/common';
4
4
  import { DiscoveryModule } from '@nestjs/core';
5
5
 
@@ -20,4 +20,4 @@ ApiSubscriberModule = __decorate([
20
20
  ], ApiSubscriberModule);
21
21
 
22
22
  export { ApiSubscriberModule };
23
- //# sourceMappingURL=api-subscriber.module.js.map
23
+ //# sourceMappingURL=subscriber.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriber.module.js","sources":["../../../../../src/module/api/subscriber.module.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAIA;;;;;AAKG;AAMI,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB,CAAA;;AAAnB,mBAAmB,GAAA,UAAA,CAAA;AAL/B,IAAA,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,6BAA6B,CAAC;QACxC,OAAO,EAAE,CAAC,eAAe,CAAC;QAC1B,SAAS,EAAE,CAAC,6BAA6B,CAAC;KAC1C;AACY,CAAA,EAAA,mBAAmB,CAAG;;;;"}
@@ -1 +1 @@
1
- export * from './api-subscriber.module';
1
+ export * from './api/index';
@@ -0,0 +1,7 @@
1
+ import type { IApiBaseEntity } from '../../../../interface/api-base-entity.interface';
2
+ import type { IApiAuthorizationDecision } from '../../../../interface/authorization/index';
3
+ import type { TApiAuthorizationRuleTransformPayload } from './rule/transform-payload.type';
4
+ export type TApiAuthorizationGuardRequest = {
5
+ authorizationDecision?: IApiAuthorizationDecision<IApiBaseEntity, TApiAuthorizationRuleTransformPayload<IApiBaseEntity>>;
6
+ user?: unknown;
7
+ } & Record<string, unknown>;
@@ -0,0 +1,4 @@
1
+ export { type TApiAuthorizationGuardRequest } from './guard-request.type';
2
+ export type * from './policy/index';
3
+ export type * from './rule/index';
4
+ export { type TApiAuthorizationScopeWhere } from './scope-where.type';
@@ -0,0 +1,2 @@
1
+ export { type TApiAuthorizationPolicyHookResult } from './result.type';
2
+ export { type TApiAuthorizationPolicyHook } from './type';
@@ -0,0 +1,8 @@
1
+ import type { EApiRouteType } from '../../../../../../enum/decorator/api/route-type.enum';
2
+ import type { IApiBaseEntity } from '../../../../../../interface/api-base-entity.interface';
3
+ import type { IApiGetListResponseResult } from '../../../../../../interface/decorator/api/get-list-response-result.interface';
4
+ import type { TApiAuthorizationRuleTransformPayload } from '../../rule/transform-payload.type';
5
+ /**
6
+ * Maps a policy hook/action to the payload type its transforms will receive.
7
+ */
8
+ export type TApiAuthorizationPolicyHookResult<TAction extends string, E extends IApiBaseEntity> = TAction extends EApiRouteType.CREATE ? E : TAction extends EApiRouteType.GET ? E : TAction extends EApiRouteType.GET_LIST ? IApiGetListResponseResult<E> : TAction extends EApiRouteType.PARTIAL_UPDATE ? E : TAction extends EApiRouteType.UPDATE ? E : TAction extends EApiRouteType.DELETE ? undefined : TApiAuthorizationRuleTransformPayload<E>;
@@ -0,0 +1,5 @@
1
+ import type { IApiBaseEntity } from '../../../../../../interface/api-base-entity.interface';
2
+ import type { IApiAuthorizationPolicySubscriberContext } from '../../../../../../interface/authorization/index';
3
+ import type { TApiAuthorizationPolicySubscriberRuleResult } from '../policy-subscriber-rule-result.type';
4
+ import type { TApiAuthorizationPolicyHookResult } from './result.type';
5
+ export type TApiAuthorizationPolicyHook<E extends IApiBaseEntity, TAction extends string> = (context: IApiAuthorizationPolicySubscriberContext<E>) => Promise<TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<TAction, E>>> | TApiAuthorizationPolicySubscriberRuleResult<E, TApiAuthorizationPolicyHookResult<TAction, E>>;
@@ -0,0 +1,2 @@
1
+ export type * from './hook/index';
2
+ export { type TApiAuthorizationPolicySubscriberRuleResult } from './policy-subscriber-rule-result.type';
@@ -0,0 +1,3 @@
1
+ import type { IApiBaseEntity } from '../../../../../interface/api-base-entity.interface';
2
+ import type { IApiAuthorizationPolicySubscriberRule } from '../../../../../interface/authorization/policy/subscriber/rule.interface';
3
+ export type TApiAuthorizationPolicySubscriberRuleResult<E extends IApiBaseEntity, R> = Array<IApiAuthorizationPolicySubscriberRule<E, R>> | IApiAuthorizationPolicySubscriberRule<E, R> | undefined;
@@ -0,0 +1,3 @@
1
+ import type { IApiBaseEntity } from '../../../../../interface/api-base-entity.interface';
2
+ import type { IApiAuthorizationRuleContext } from '../../../../../interface/authorization/rule/context.interface';
3
+ export type TApiAuthorizationRuleCondition<E extends IApiBaseEntity> = (context: IApiAuthorizationRuleContext<E>) => boolean | Promise<boolean>;
@@ -0,0 +1,4 @@
1
+ export { type TApiAuthorizationRuleCondition } from './condition.type';
2
+ export { type TApiAuthorizationRuleResultTransform } from './result-transform.type';
3
+ export { type TApiAuthorizationRuleScopeResolver } from './scope-resolver.type';
4
+ export { type TApiAuthorizationRuleTransformPayload } from './transform-payload.type';
@@ -0,0 +1,4 @@
1
+ import type { IApiBaseEntity } from '../../../../../interface/api-base-entity.interface';
2
+ import type { IApiAuthorizationRuleContext } from '../../../../../interface/authorization/rule/context.interface';
3
+ import type { TApiAuthorizationRuleTransformPayload } from './transform-payload.type';
4
+ export type TApiAuthorizationRuleResultTransform<E extends IApiBaseEntity, R = TApiAuthorizationRuleTransformPayload<E>> = (result: R, context: IApiAuthorizationRuleContext<E>) => Promise<R> | R;
@@ -0,0 +1,4 @@
1
+ import type { IApiBaseEntity } from '../../../../../interface/api-base-entity.interface';
2
+ import type { IApiAuthorizationRuleContext } from '../../../../../interface/authorization/rule/context.interface';
3
+ import type { IApiAuthorizationScope } from '../../../../../interface/authorization/scope.interface';
4
+ export type TApiAuthorizationRuleScopeResolver<E extends IApiBaseEntity> = (context: IApiAuthorizationRuleContext<E>) => IApiAuthorizationScope<E> | Promise<IApiAuthorizationScope<E> | undefined> | undefined;
@@ -0,0 +1,3 @@
1
+ import type { IApiBaseEntity } from '../../../../../interface/api-base-entity.interface';
2
+ import type { IApiGetListResponseResult } from '../../../../../interface/decorator/api/get-list-response-result.interface';
3
+ export type TApiAuthorizationRuleTransformPayload<E extends IApiBaseEntity> = Array<unknown> | boolean | E | IApiGetListResponseResult<E> | null | number | object | Partial<E> | Record<string, unknown> | string | undefined;
@@ -0,0 +1,3 @@
1
+ import type { IApiBaseEntity } from '../../../../interface/api-base-entity.interface';
2
+ import type { FindOptionsWhere } from "typeorm";
3
+ export type TApiAuthorizationScopeWhere<E extends IApiBaseEntity> = Array<FindOptionsWhere<E>> | FindOptionsWhere<E> | undefined;
@@ -1,4 +1,4 @@
1
1
  import type { IApiBaseEntity } from '../../../../../../interface/api-base-entity.interface';
2
2
  import type { IApiSubscriberRouteExecutionContextDataExtended } from '../../../../../../interface/class/api/subscriber/route-execution-context-data.interface';
3
3
  import type { IApiSubscriberRouteExecutionContext } from '../../../../../../interface/class/api/subscriber/route-execution-context.interface';
4
- export type TApiSubscriberRouteAfterCreateContext<E extends IApiBaseEntity> = IApiSubscriberRouteExecutionContext<E, E, IApiSubscriberRouteExecutionContextDataExtended<E>>;
4
+ export type TApiSubscriberRouteAfterCreateContext<E extends IApiBaseEntity> = IApiSubscriberRouteExecutionContext<E, E, IApiSubscriberRouteExecutionContextDataExtended<E, E>>;
@@ -1,4 +1,4 @@
1
1
  import type { IApiBaseEntity } from '../../../../../../interface/api-base-entity.interface';
2
2
  import type { IApiSubscriberRouteExecutionContextDataExtended } from '../../../../../../interface/class/api/subscriber/route-execution-context-data.interface';
3
3
  import type { IApiSubscriberRouteExecutionContext } from '../../../../../../interface/class/api/subscriber/route-execution-context.interface';
4
- export type TApiSubscriberRouteAfterDeleteContext<E extends IApiBaseEntity> = IApiSubscriberRouteExecutionContext<E, E, IApiSubscriberRouteExecutionContextDataExtended<E>>;
4
+ export type TApiSubscriberRouteAfterDeleteContext<E extends IApiBaseEntity> = IApiSubscriberRouteExecutionContext<E, E, IApiSubscriberRouteExecutionContextDataExtended<E, E>>;