@elsikora/nestjs-crud-automator 1.16.0 → 1.17.0
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.
- package/README.md +43 -0
- package/dist/cjs/class/api/authorization/engine.class.d.ts +8 -0
- package/dist/cjs/class/api/authorization/engine.class.js +92 -0
- package/dist/cjs/class/api/authorization/engine.class.js.map +1 -0
- package/dist/cjs/class/api/authorization/guard.class.d.ts +13 -0
- package/dist/cjs/class/api/authorization/guard.class.js +79 -0
- package/dist/cjs/class/api/authorization/guard.class.js.map +1 -0
- package/dist/cjs/class/api/authorization/index.d.ts +3 -0
- package/dist/cjs/class/api/authorization/policy/base.class.d.ts +37 -0
- package/dist/cjs/class/api/authorization/policy/base.class.js +68 -0
- package/dist/cjs/class/api/authorization/policy/base.class.js.map +1 -0
- package/dist/cjs/class/api/authorization/policy/discovery-service.class.d.ts +10 -0
- package/dist/cjs/class/api/authorization/policy/discovery-service.class.js +53 -0
- package/dist/cjs/class/api/authorization/policy/discovery-service.class.js.map +1 -0
- package/dist/cjs/class/api/authorization/policy/executor.class.d.ts +8 -0
- package/dist/cjs/class/api/authorization/policy/executor.class.js +43 -0
- package/dist/cjs/class/api/authorization/policy/executor.class.js.map +1 -0
- package/dist/cjs/class/api/authorization/policy/index.d.ts +4 -0
- package/dist/cjs/class/api/authorization/policy/registry.class.d.ts +26 -0
- package/dist/cjs/class/api/authorization/policy/registry.class.js +151 -0
- package/dist/cjs/class/api/authorization/policy/registry.class.js.map +1 -0
- package/dist/cjs/class/api/service-base.class.d.ts +2 -2
- package/dist/cjs/class/api/service-base.class.js.map +1 -1
- package/dist/cjs/class/index.d.ts +1 -0
- package/dist/cjs/constant/authorization/index.d.ts +3 -0
- package/dist/cjs/constant/authorization/metadata/decision.constant.d.ts +3 -0
- package/dist/cjs/constant/authorization/metadata/decision.constant.js +9 -0
- package/dist/cjs/constant/authorization/metadata/decision.constant.js.map +1 -0
- package/dist/cjs/constant/authorization/metadata/index.d.ts +1 -0
- package/dist/cjs/constant/authorization/policy/decorator.constant.d.ts +4 -0
- package/dist/cjs/constant/authorization/policy/decorator.constant.js +11 -0
- package/dist/cjs/constant/authorization/policy/decorator.constant.js.map +1 -0
- package/dist/cjs/constant/authorization/policy/index.d.ts +1 -0
- package/dist/cjs/constant/authorization/token/index.d.ts +1 -0
- package/dist/cjs/constant/authorization/token/registry.constant.d.ts +1 -0
- package/dist/cjs/constant/authorization/token/registry.constant.js +7 -0
- package/dist/cjs/constant/authorization/token/registry.constant.js.map +1 -0
- package/dist/cjs/constant/decorator/api/controller.constant.d.ts +2 -0
- package/dist/cjs/constant/decorator/api/controller.constant.js +4 -0
- package/dist/cjs/constant/decorator/api/controller.constant.js.map +1 -1
- package/dist/cjs/constant/index.d.ts +1 -0
- package/dist/cjs/decorator/api/authorization/index.d.ts +1 -0
- package/dist/cjs/decorator/api/authorization/policy.decorator.d.ts +9 -0
- package/dist/cjs/decorator/api/authorization/policy.decorator.js +25 -0
- package/dist/cjs/decorator/api/authorization/policy.decorator.js.map +1 -0
- package/dist/cjs/decorator/api/controller/index.d.ts +1 -0
- package/dist/cjs/decorator/api/controller/securable.decorator.d.ts +6 -0
- package/dist/cjs/decorator/api/controller/securable.decorator.js +17 -0
- package/dist/cjs/decorator/api/controller/securable.decorator.js.map +1 -0
- package/dist/cjs/decorator/api/index.d.ts +1 -0
- package/dist/cjs/decorator/api/method.decorator.js +7 -1
- package/dist/cjs/decorator/api/method.decorator.js.map +1 -1
- package/dist/cjs/enum/authorization/effect.enum.d.ts +4 -0
- package/dist/cjs/enum/authorization/effect.enum.js +8 -0
- package/dist/cjs/enum/authorization/effect.enum.js.map +1 -0
- package/dist/cjs/enum/authorization/index.d.ts +2 -0
- package/dist/cjs/enum/authorization/policy/index.d.ts +1 -0
- package/dist/cjs/enum/authorization/policy/on-type.enum.d.ts +3 -0
- package/dist/cjs/enum/authorization/policy/on-type.enum.js +7 -0
- package/dist/cjs/enum/authorization/policy/on-type.enum.js.map +1 -0
- package/dist/cjs/enum/index.d.ts +1 -0
- package/dist/cjs/external/tslib/tslib.es6.js +5 -0
- package/dist/cjs/external/tslib/tslib.es6.js.map +1 -1
- package/dist/cjs/factory/api/controller.factory.js +63 -28
- package/dist/cjs/factory/api/controller.factory.js.map +1 -1
- package/dist/cjs/index.js +60 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interface/api-authentication-request.interface.d.ts +3 -0
- package/dist/cjs/interface/authorization/decision.interface.d.ts +17 -0
- package/dist/cjs/interface/authorization/engine.interface.d.ts +6 -0
- package/dist/cjs/interface/authorization/evaluate-options.interface.d.ts +9 -0
- package/dist/cjs/interface/authorization/index.d.ts +7 -0
- package/dist/cjs/interface/authorization/policy/index.d.ts +3 -0
- package/dist/cjs/interface/authorization/policy/interface.d.ts +9 -0
- package/dist/cjs/interface/authorization/policy/registry.interface.d.ts +10 -0
- package/dist/cjs/interface/authorization/policy/subscriber/context.interface.d.ts +9 -0
- package/dist/cjs/interface/authorization/policy/subscriber/index.d.ts +5 -0
- package/dist/cjs/interface/authorization/policy/subscriber/interface.d.ts +14 -0
- package/dist/cjs/interface/authorization/policy/subscriber/properties.interface.d.ts +7 -0
- package/dist/cjs/interface/authorization/policy/subscriber/registration.interface.d.ts +9 -0
- package/dist/cjs/interface/authorization/policy/subscriber/rule.interface.d.ts +13 -0
- package/dist/cjs/interface/authorization/rule/context.interface.d.ts +6 -0
- package/dist/cjs/interface/authorization/rule/index.d.ts +2 -0
- package/dist/cjs/interface/authorization/rule/interface.d.ts +15 -0
- package/dist/cjs/interface/authorization/scope.interface.d.ts +5 -0
- package/dist/cjs/interface/authorization/subject.interface.d.ts +6 -0
- package/dist/cjs/interface/class/api/subscriber/route-execution-context-data.interface.d.ts +7 -1
- package/dist/cjs/interface/index.d.ts +1 -0
- package/dist/cjs/module/api/authorization.module.d.ts +7 -0
- package/dist/cjs/module/api/authorization.module.js +39 -0
- package/dist/cjs/module/api/authorization.module.js.map +1 -0
- package/dist/cjs/module/api/index.d.ts +2 -0
- package/dist/cjs/module/{api-subscriber.module.js → api/subscriber.module.js} +3 -3
- package/dist/cjs/module/api/subscriber.module.js.map +1 -0
- package/dist/cjs/module/index.d.ts +1 -1
- package/dist/cjs/type/class/api/authorization/guard-request.type.d.ts +7 -0
- package/dist/cjs/type/class/api/authorization/index.d.ts +4 -0
- package/dist/cjs/type/class/api/authorization/policy/hook/index.d.ts +2 -0
- package/dist/cjs/type/class/api/authorization/policy/hook/result.type.d.ts +8 -0
- package/dist/cjs/type/class/api/authorization/policy/hook/type.d.ts +5 -0
- package/dist/cjs/type/class/api/authorization/policy/index.d.ts +2 -0
- package/dist/cjs/type/class/api/authorization/policy/policy-subscriber-rule-result.type.d.ts +3 -0
- package/dist/cjs/type/class/api/authorization/rule/condition.type.d.ts +3 -0
- package/dist/cjs/type/class/api/authorization/rule/index.d.ts +4 -0
- package/dist/cjs/type/class/api/authorization/rule/result-transform.type.d.ts +4 -0
- package/dist/cjs/type/class/api/authorization/rule/scope-resolver.type.d.ts +4 -0
- package/dist/cjs/type/class/api/authorization/rule/transform-payload.type.d.ts +3 -0
- package/dist/cjs/type/class/api/authorization/scope-where.type.d.ts +3 -0
- package/dist/cjs/type/class/api/subscriber/route/after/create-context.type.d.ts +1 -1
- package/dist/cjs/type/class/api/subscriber/route/after/delete-context.type.d.ts +1 -1
- package/dist/cjs/type/class/api/subscriber/route/after/get/context.type.d.ts +1 -1
- package/dist/cjs/type/class/api/subscriber/route/after/get/list-context.type.d.ts +2 -1
- package/dist/cjs/type/class/api/subscriber/route/after/get/many-context.type.d.ts +1 -1
- package/dist/cjs/type/class/api/subscriber/route/after/update-context.type.d.ts +1 -1
- package/dist/cjs/type/index.d.ts +1 -0
- package/dist/cjs/utility/api/controller/apply-metadata.utility.js +3 -5
- package/dist/cjs/utility/api/controller/apply-metadata.utility.js.map +1 -1
- package/dist/cjs/utility/authorization/decision/apply-result.utility.d.ts +12 -0
- package/dist/cjs/utility/authorization/decision/apply-result.utility.js +27 -0
- package/dist/cjs/utility/authorization/decision/apply-result.utility.js.map +1 -0
- package/dist/cjs/utility/authorization/decision/attach-resource.utility.d.ts +11 -0
- package/dist/cjs/utility/authorization/decision/attach-resource.utility.js +20 -0
- package/dist/cjs/utility/authorization/decision/attach-resource.utility.js.map +1 -0
- package/dist/cjs/utility/authorization/decision/index.d.ts +3 -0
- package/dist/cjs/utility/authorization/decision/resolve-from-request.utility.d.ts +12 -0
- package/dist/cjs/utility/authorization/decision/resolve-from-request.utility.js +22 -0
- package/dist/cjs/utility/authorization/decision/resolve-from-request.utility.js.map +1 -0
- package/dist/cjs/utility/authorization/index.d.ts +3 -0
- package/dist/cjs/utility/authorization/scope/index.d.ts +1 -0
- package/dist/cjs/utility/authorization/scope/merge/index.d.ts +1 -0
- package/dist/cjs/utility/authorization/scope/merge/where.utility.d.ts +10 -0
- package/dist/cjs/utility/authorization/scope/merge/where.utility.js +32 -0
- package/dist/cjs/utility/authorization/scope/merge/where.utility.js.map +1 -0
- package/dist/cjs/utility/authorization/subject/index.d.ts +1 -0
- package/dist/cjs/utility/authorization/subject/resolve-default-subject.utility.d.ts +7 -0
- package/dist/cjs/utility/authorization/subject/resolve-default-subject.utility.js +52 -0
- package/dist/cjs/utility/authorization/subject/resolve-default-subject.utility.js.map +1 -0
- package/dist/cjs/utility/index.d.ts +1 -0
- package/dist/esm/class/api/authorization/engine.class.d.ts +8 -0
- package/dist/esm/class/api/authorization/engine.class.js +92 -0
- package/dist/esm/class/api/authorization/engine.class.js.map +1 -0
- package/dist/esm/class/api/authorization/guard.class.d.ts +13 -0
- package/dist/esm/class/api/authorization/guard.class.js +79 -0
- package/dist/esm/class/api/authorization/guard.class.js.map +1 -0
- package/dist/esm/class/api/authorization/index.d.ts +3 -0
- package/dist/esm/class/api/authorization/policy/base.class.d.ts +37 -0
- package/dist/esm/class/api/authorization/policy/base.class.js +66 -0
- package/dist/esm/class/api/authorization/policy/base.class.js.map +1 -0
- package/dist/esm/class/api/authorization/policy/discovery-service.class.d.ts +10 -0
- package/dist/esm/class/api/authorization/policy/discovery-service.class.js +53 -0
- package/dist/esm/class/api/authorization/policy/discovery-service.class.js.map +1 -0
- package/dist/esm/class/api/authorization/policy/executor.class.d.ts +8 -0
- package/dist/esm/class/api/authorization/policy/executor.class.js +41 -0
- package/dist/esm/class/api/authorization/policy/executor.class.js.map +1 -0
- package/dist/esm/class/api/authorization/policy/index.d.ts +4 -0
- package/dist/esm/class/api/authorization/policy/registry.class.d.ts +26 -0
- package/dist/esm/class/api/authorization/policy/registry.class.js +148 -0
- package/dist/esm/class/api/authorization/policy/registry.class.js.map +1 -0
- package/dist/esm/class/api/service-base.class.d.ts +2 -2
- package/dist/esm/class/api/service-base.class.js.map +1 -1
- package/dist/esm/class/index.d.ts +1 -0
- package/dist/esm/constant/authorization/index.d.ts +3 -0
- package/dist/esm/constant/authorization/metadata/decision.constant.d.ts +3 -0
- package/dist/esm/constant/authorization/metadata/decision.constant.js +7 -0
- package/dist/esm/constant/authorization/metadata/decision.constant.js.map +1 -0
- package/dist/esm/constant/authorization/metadata/index.d.ts +1 -0
- package/dist/esm/constant/authorization/policy/decorator.constant.d.ts +4 -0
- package/dist/esm/constant/authorization/policy/decorator.constant.js +9 -0
- package/dist/esm/constant/authorization/policy/decorator.constant.js.map +1 -0
- package/dist/esm/constant/authorization/policy/index.d.ts +1 -0
- package/dist/esm/constant/authorization/token/index.d.ts +1 -0
- package/dist/esm/constant/authorization/token/registry.constant.d.ts +1 -0
- package/dist/esm/constant/authorization/token/registry.constant.js +5 -0
- package/dist/esm/constant/authorization/token/registry.constant.js.map +1 -0
- package/dist/esm/constant/decorator/api/controller.constant.d.ts +2 -0
- package/dist/esm/constant/decorator/api/controller.constant.js +4 -0
- package/dist/esm/constant/decorator/api/controller.constant.js.map +1 -1
- package/dist/esm/constant/index.d.ts +1 -0
- package/dist/esm/decorator/api/authorization/index.d.ts +1 -0
- package/dist/esm/decorator/api/authorization/policy.decorator.d.ts +9 -0
- package/dist/esm/decorator/api/authorization/policy.decorator.js +23 -0
- package/dist/esm/decorator/api/authorization/policy.decorator.js.map +1 -0
- package/dist/esm/decorator/api/controller/index.d.ts +1 -0
- package/dist/esm/decorator/api/controller/securable.decorator.d.ts +6 -0
- package/dist/esm/decorator/api/controller/securable.decorator.js +15 -0
- package/dist/esm/decorator/api/controller/securable.decorator.js.map +1 -0
- package/dist/esm/decorator/api/index.d.ts +1 -0
- package/dist/esm/decorator/api/method.decorator.js +7 -1
- package/dist/esm/decorator/api/method.decorator.js.map +1 -1
- package/dist/esm/enum/authorization/effect.enum.d.ts +4 -0
- package/dist/esm/enum/authorization/effect.enum.js +8 -0
- package/dist/esm/enum/authorization/effect.enum.js.map +1 -0
- package/dist/esm/enum/authorization/index.d.ts +2 -0
- package/dist/esm/enum/authorization/policy/index.d.ts +1 -0
- package/dist/esm/enum/authorization/policy/on-type.enum.d.ts +3 -0
- package/dist/esm/enum/authorization/policy/on-type.enum.js +7 -0
- package/dist/esm/enum/authorization/policy/on-type.enum.js.map +1 -0
- package/dist/esm/enum/index.d.ts +1 -0
- package/dist/esm/external/tslib/tslib.es6.js +5 -1
- package/dist/esm/external/tslib/tslib.es6.js.map +1 -1
- package/dist/esm/factory/api/controller.factory.js +63 -28
- package/dist/esm/factory/api/controller.factory.js.map +1 -1
- package/dist/esm/index.js +20 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interface/api-authentication-request.interface.d.ts +3 -0
- package/dist/esm/interface/authorization/decision.interface.d.ts +17 -0
- package/dist/esm/interface/authorization/engine.interface.d.ts +6 -0
- package/dist/esm/interface/authorization/evaluate-options.interface.d.ts +9 -0
- package/dist/esm/interface/authorization/index.d.ts +7 -0
- package/dist/esm/interface/authorization/policy/index.d.ts +3 -0
- package/dist/esm/interface/authorization/policy/interface.d.ts +9 -0
- package/dist/esm/interface/authorization/policy/registry.interface.d.ts +10 -0
- package/dist/esm/interface/authorization/policy/subscriber/context.interface.d.ts +9 -0
- package/dist/esm/interface/authorization/policy/subscriber/index.d.ts +5 -0
- package/dist/esm/interface/authorization/policy/subscriber/interface.d.ts +14 -0
- package/dist/esm/interface/authorization/policy/subscriber/properties.interface.d.ts +7 -0
- package/dist/esm/interface/authorization/policy/subscriber/registration.interface.d.ts +9 -0
- package/dist/esm/interface/authorization/policy/subscriber/rule.interface.d.ts +13 -0
- package/dist/esm/interface/authorization/rule/context.interface.d.ts +6 -0
- package/dist/esm/interface/authorization/rule/index.d.ts +2 -0
- package/dist/esm/interface/authorization/rule/interface.d.ts +15 -0
- package/dist/esm/interface/authorization/scope.interface.d.ts +5 -0
- package/dist/esm/interface/authorization/subject.interface.d.ts +6 -0
- package/dist/esm/interface/class/api/subscriber/route-execution-context-data.interface.d.ts +7 -1
- package/dist/esm/interface/index.d.ts +1 -0
- package/dist/esm/module/api/authorization.module.d.ts +7 -0
- package/dist/esm/module/api/authorization.module.js +39 -0
- package/dist/esm/module/api/authorization.module.js.map +1 -0
- package/dist/esm/module/api/index.d.ts +2 -0
- package/dist/esm/module/{api-subscriber.module.js → api/subscriber.module.js} +3 -3
- package/dist/esm/module/api/subscriber.module.js.map +1 -0
- package/dist/esm/module/index.d.ts +1 -1
- package/dist/esm/type/class/api/authorization/guard-request.type.d.ts +7 -0
- package/dist/esm/type/class/api/authorization/index.d.ts +4 -0
- package/dist/esm/type/class/api/authorization/policy/hook/index.d.ts +2 -0
- package/dist/esm/type/class/api/authorization/policy/hook/result.type.d.ts +8 -0
- package/dist/esm/type/class/api/authorization/policy/hook/type.d.ts +5 -0
- package/dist/esm/type/class/api/authorization/policy/index.d.ts +2 -0
- package/dist/esm/type/class/api/authorization/policy/policy-subscriber-rule-result.type.d.ts +3 -0
- package/dist/esm/type/class/api/authorization/rule/condition.type.d.ts +3 -0
- package/dist/esm/type/class/api/authorization/rule/index.d.ts +4 -0
- package/dist/esm/type/class/api/authorization/rule/result-transform.type.d.ts +4 -0
- package/dist/esm/type/class/api/authorization/rule/scope-resolver.type.d.ts +4 -0
- package/dist/esm/type/class/api/authorization/rule/transform-payload.type.d.ts +3 -0
- package/dist/esm/type/class/api/authorization/scope-where.type.d.ts +3 -0
- package/dist/esm/type/class/api/subscriber/route/after/create-context.type.d.ts +1 -1
- package/dist/esm/type/class/api/subscriber/route/after/delete-context.type.d.ts +1 -1
- package/dist/esm/type/class/api/subscriber/route/after/get/context.type.d.ts +1 -1
- package/dist/esm/type/class/api/subscriber/route/after/get/list-context.type.d.ts +2 -1
- package/dist/esm/type/class/api/subscriber/route/after/get/many-context.type.d.ts +1 -1
- package/dist/esm/type/class/api/subscriber/route/after/update-context.type.d.ts +1 -1
- package/dist/esm/type/index.d.ts +1 -0
- package/dist/esm/utility/api/controller/apply-metadata.utility.js +3 -5
- package/dist/esm/utility/api/controller/apply-metadata.utility.js.map +1 -1
- package/dist/esm/utility/authorization/decision/apply-result.utility.d.ts +12 -0
- package/dist/esm/utility/authorization/decision/apply-result.utility.js +25 -0
- package/dist/esm/utility/authorization/decision/apply-result.utility.js.map +1 -0
- package/dist/esm/utility/authorization/decision/attach-resource.utility.d.ts +11 -0
- package/dist/esm/utility/authorization/decision/attach-resource.utility.js +18 -0
- package/dist/esm/utility/authorization/decision/attach-resource.utility.js.map +1 -0
- package/dist/esm/utility/authorization/decision/index.d.ts +3 -0
- package/dist/esm/utility/authorization/decision/resolve-from-request.utility.d.ts +12 -0
- package/dist/esm/utility/authorization/decision/resolve-from-request.utility.js +20 -0
- package/dist/esm/utility/authorization/decision/resolve-from-request.utility.js.map +1 -0
- package/dist/esm/utility/authorization/index.d.ts +3 -0
- package/dist/esm/utility/authorization/scope/index.d.ts +1 -0
- package/dist/esm/utility/authorization/scope/merge/index.d.ts +1 -0
- package/dist/esm/utility/authorization/scope/merge/where.utility.d.ts +10 -0
- package/dist/esm/utility/authorization/scope/merge/where.utility.js +30 -0
- package/dist/esm/utility/authorization/scope/merge/where.utility.js.map +1 -0
- package/dist/esm/utility/authorization/subject/index.d.ts +1 -0
- package/dist/esm/utility/authorization/subject/resolve-default-subject.utility.d.ts +7 -0
- package/dist/esm/utility/authorization/subject/resolve-default-subject.utility.js +50 -0
- package/dist/esm/utility/authorization/subject/resolve-default-subject.utility.js.map +1 -0
- package/dist/esm/utility/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/module/api-subscriber.module.js.map +0 -1
- package/dist/esm/module/api-subscriber.module.js.map +0 -1
- /package/dist/cjs/module/{api-subscriber.module.d.ts → api/subscriber.module.d.ts} +0 -0
- /package/dist/esm/module/{api-subscriber.module.d.ts → api/subscriber.module.d.ts} +0 -0
package/dist/cjs/index.js
CHANGED
|
@@ -7,6 +7,12 @@ var executor_class = require('./class/api/subscriber/executor.class.js');
|
|
|
7
7
|
var functionBase_class = require('./class/api/subscriber/function-base.class.js');
|
|
8
8
|
var registry_class = require('./class/api/subscriber/registry.class.js');
|
|
9
9
|
var routeBase_class = require('./class/api/subscriber/route-base.class.js');
|
|
10
|
+
var engine_class = require('./class/api/authorization/engine.class.js');
|
|
11
|
+
var guard_class = require('./class/api/authorization/guard.class.js');
|
|
12
|
+
var base_class$1 = require('./class/api/authorization/policy/base.class.js');
|
|
13
|
+
var discoveryService_class$1 = require('./class/api/authorization/policy/discovery-service.class.js');
|
|
14
|
+
var executor_class$1 = require('./class/api/authorization/policy/executor.class.js');
|
|
15
|
+
var registry_class$1 = require('./class/api/authorization/policy/registry.class.js');
|
|
10
16
|
var metadataStorage_class = require('./class/metadata-storage.class.js');
|
|
11
17
|
var boolean_class = require('./class/utility/dto/property/factory/boolean.class.js');
|
|
12
18
|
var date_class = require('./class/utility/dto/property/factory/date.class.js');
|
|
@@ -20,6 +26,9 @@ var body_class = require('./class/utility/dto/strategy/body.class.js');
|
|
|
20
26
|
var query_class = require('./class/utility/dto/strategy/query.class.js');
|
|
21
27
|
var request_class = require('./class/utility/dto/strategy/request.class.js');
|
|
22
28
|
var response_class = require('./class/utility/dto/strategy/response.class.js');
|
|
29
|
+
var decision_constant = require('./constant/authorization/metadata/decision.constant.js');
|
|
30
|
+
var decorator_constant = require('./constant/authorization/policy/decorator.constant.js');
|
|
31
|
+
var registry_constant = require('./constant/authorization/token/registry.constant.js');
|
|
23
32
|
var date_constant = require('./constant/date.constant.js');
|
|
24
33
|
var controller_constant = require('./constant/decorator/api/controller.constant.js');
|
|
25
34
|
var function_constant = require('./constant/decorator/api/function.constant.js');
|
|
@@ -36,8 +45,10 @@ var number_constant = require('./constant/number.constant.js');
|
|
|
36
45
|
var constant = require('./constant/utility/dto/constant.js');
|
|
37
46
|
var generate_constant = require('./constant/utility/dto/generate.constant.js');
|
|
38
47
|
var hasPairedCustomSuffixesFields_constant = require('./constant/validator/has-paired-custom-suffixes-fields.constant.js');
|
|
48
|
+
var policy_decorator = require('./decorator/api/authorization/policy.decorator.js');
|
|
39
49
|
var decorator = require('./decorator/api/controller/decorator.js');
|
|
40
50
|
var observable_decorator = require('./decorator/api/controller/observable.decorator.js');
|
|
51
|
+
var securable_decorator = require('./decorator/api/controller/securable.decorator.js');
|
|
41
52
|
var create_decorator = require('./decorator/api/function/create.decorator.js');
|
|
42
53
|
var decorator$1 = require('./decorator/api/function/decorator.js');
|
|
43
54
|
var delete_decorator = require('./decorator/api/function/delete.decorator.js');
|
|
@@ -59,13 +70,15 @@ var observable_decorator$1 = require('./decorator/api/service/observable.decorat
|
|
|
59
70
|
var service_decorator = require('./decorator/api/service.decorator.js');
|
|
60
71
|
var function_decorator = require('./decorator/api/subscriber/function.decorator.js');
|
|
61
72
|
var route_decorator = require('./decorator/api/subscriber/route.decorator.js');
|
|
73
|
+
var effect_enum = require('./enum/authorization/effect.enum.js');
|
|
74
|
+
var onType_enum = require('./enum/authorization/policy/on-type.enum.js');
|
|
62
75
|
var action_enum = require('./enum/decorator/api/action.enum.js');
|
|
63
76
|
var authenticationType_enum = require('./enum/decorator/api/authentication-type.enum.js');
|
|
64
77
|
var loadRelationsStrategy_enum = require('./enum/decorator/api/controller/load-relations-strategy.enum.js');
|
|
65
78
|
var requestTransformerType_enum = require('./enum/decorator/api/controller/request-transformer-type.enum.js');
|
|
66
79
|
var dtoType_enum = require('./enum/decorator/api/dto-type.enum.js');
|
|
67
80
|
var type_enum = require('./enum/decorator/api/function/type.enum.js');
|
|
68
|
-
var onType_enum = require('./enum/decorator/api/on-type.enum.js');
|
|
81
|
+
var onType_enum$1 = require('./enum/decorator/api/on-type.enum.js');
|
|
69
82
|
var dataType_enum = require('./enum/decorator/api/property/data-type.enum.js');
|
|
70
83
|
var identifier_enum = require('./enum/decorator/api/property/date/identifier.enum.js');
|
|
71
84
|
var type_enum$1 = require('./enum/decorator/api/property/date/type.enum.js');
|
|
@@ -82,7 +95,8 @@ var hasPairedCustomSuffixesFieldsArgumentType_enum = require('./enum/validator/h
|
|
|
82
95
|
var mustMatchOneOfSchemasErrorType_enum = require('./enum/validator/must-match-one-of-schemas-error-type.enum.js');
|
|
83
96
|
var controller_factory = require('./factory/api/controller.factory.js');
|
|
84
97
|
var correlationIdResponseBody_interceptor = require('./interceptor/correlation-id-response-body.interceptor.js');
|
|
85
|
-
var
|
|
98
|
+
var authorization_module = require('./module/api/authorization.module.js');
|
|
99
|
+
var subscriber_module = require('./module/api/subscriber.module.js');
|
|
86
100
|
var applyDecorators_utility = require('./utility/api/controller/apply-decorators.utility.js');
|
|
87
101
|
var applyMetadata_utility = require('./utility/api/controller/apply-metadata.utility.js');
|
|
88
102
|
var transformFilter_utility = require('./utility/api/controller/get-list/transform-filter.utility.js');
|
|
@@ -96,6 +110,11 @@ var writeDtoSwagger_utility = require('./utility/api/controller/write-dto-swagge
|
|
|
96
110
|
var writeMethod_utility = require('./utility/api/controller/write-method.utility.js');
|
|
97
111
|
var filterOrderByFromEntity_utility = require('./utility/api/filter-order-by-from-entity.utility.js');
|
|
98
112
|
var getDefaultStringFormatProperties_utility = require('./utility/api/property/get-default-string-format-properties.utility.js');
|
|
113
|
+
var applyResult_utility = require('./utility/authorization/decision/apply-result.utility.js');
|
|
114
|
+
var attachResource_utility = require('./utility/authorization/decision/attach-resource.utility.js');
|
|
115
|
+
var resolveFromRequest_utility = require('./utility/authorization/decision/resolve-from-request.utility.js');
|
|
116
|
+
var where_utility = require('./utility/authorization/scope/merge/where.utility.js');
|
|
117
|
+
var resolveDefaultSubject_utility = require('./utility/authorization/subject/resolve-default-subject.utility.js');
|
|
99
118
|
var camelCaseString_utility = require('./utility/camel-case-string.utility.js');
|
|
100
119
|
var capitalizeString_utility = require('./utility/capitalize-string.utility.js');
|
|
101
120
|
var analize_utility = require('./utility/dto/analize.utility.js');
|
|
@@ -142,6 +161,21 @@ exports.ApiSubscriberExecutor = executor_class.ApiSubscriberExecutor;
|
|
|
142
161
|
exports.ApiFunctionSubscriberBase = functionBase_class.ApiFunctionSubscriberBase;
|
|
143
162
|
exports.apiSubscriberRegistry = registry_class.apiSubscriberRegistry;
|
|
144
163
|
exports.ApiRouteSubscriberBase = routeBase_class.ApiRouteSubscriberBase;
|
|
164
|
+
Object.defineProperty(exports, "ApiAuthorizationEngine", {
|
|
165
|
+
enumerable: true,
|
|
166
|
+
get: function () { return engine_class.ApiAuthorizationEngine; }
|
|
167
|
+
});
|
|
168
|
+
Object.defineProperty(exports, "ApiAuthorizationGuard", {
|
|
169
|
+
enumerable: true,
|
|
170
|
+
get: function () { return guard_class.ApiAuthorizationGuard; }
|
|
171
|
+
});
|
|
172
|
+
exports.ApiAuthorizationPolicyBase = base_class$1.ApiAuthorizationPolicyBase;
|
|
173
|
+
Object.defineProperty(exports, "ApiAuthorizationPolicyDiscoveryService", {
|
|
174
|
+
enumerable: true,
|
|
175
|
+
get: function () { return discoveryService_class$1.ApiAuthorizationPolicyDiscoveryService; }
|
|
176
|
+
});
|
|
177
|
+
exports.ApiAuthorizationPolicyExecutor = executor_class$1.ApiAuthorizationPolicyExecutor;
|
|
178
|
+
exports.ApiAuthorizationPolicyRegistry = registry_class$1.ApiAuthorizationPolicyRegistry;
|
|
145
179
|
exports.MetadataStorage = metadataStorage_class.MetadataStorage;
|
|
146
180
|
exports.DtoPropertyFactoryBoolean = boolean_class.DtoPropertyFactoryBoolean;
|
|
147
181
|
exports.DtoPropertyFactoryDate = date_class.DtoPropertyFactoryDate;
|
|
@@ -155,6 +189,9 @@ exports.DtoStrategyBody = body_class.DtoStrategyBody;
|
|
|
155
189
|
exports.DtoStrategyQuery = query_class.DtoStrategyQuery;
|
|
156
190
|
exports.DtoStrategyRequest = request_class.DtoStrategyRequest;
|
|
157
191
|
exports.DtoStrategyResponse = response_class.DtoStrategyResponse;
|
|
192
|
+
exports.AUTHORIZATION_DECISION_METADATA_CONSTANT = decision_constant.AUTHORIZATION_DECISION_METADATA_CONSTANT;
|
|
193
|
+
exports.AUTHORIZATION_POLICY_DECORATOR_CONSTANT = decorator_constant.AUTHORIZATION_POLICY_DECORATOR_CONSTANT;
|
|
194
|
+
exports.AUTHORIZATION_POLICY_REGISTRY_TOKEN = registry_constant.AUTHORIZATION_POLICY_REGISTRY_TOKEN;
|
|
158
195
|
exports.DATE_CONSTANT = date_constant.DATE_CONSTANT;
|
|
159
196
|
exports.CONTROLLER_API_DECORATOR_CONSTANT = controller_constant.CONTROLLER_API_DECORATOR_CONSTANT;
|
|
160
197
|
exports.FUNCTION_API_DECORATOR_CONSTANT = function_constant.FUNCTION_API_DECORATOR_CONSTANT;
|
|
@@ -171,8 +208,10 @@ exports.NUMBER_CONSTANT = number_constant.NUMBER_CONSTANT;
|
|
|
171
208
|
exports.DTO_UTILITY_CONSTANT = constant.DTO_UTILITY_CONSTANT;
|
|
172
209
|
exports.DTO_GENERATE_CONSTANT = generate_constant.DTO_GENERATE_CONSTANT;
|
|
173
210
|
exports.VALIDATOR_HAS_PAIRED_CUSTOM_SUFFIXES_FIELDS_CONSTANT = hasPairedCustomSuffixesFields_constant.VALIDATOR_HAS_PAIRED_CUSTOM_SUFFIXES_FIELDS_CONSTANT;
|
|
211
|
+
exports.ApiAuthorizationPolicy = policy_decorator.ApiAuthorizationPolicy;
|
|
174
212
|
exports.ApiController = decorator.ApiController;
|
|
175
213
|
exports.ApiControllerObservable = observable_decorator.ApiControllerObservable;
|
|
214
|
+
exports.ApiControllerSecurable = securable_decorator.ApiControllerSecurable;
|
|
176
215
|
exports.ApiFunctionCreate = create_decorator.ApiFunctionCreate;
|
|
177
216
|
exports.ApiFunction = decorator$1.ApiFunction;
|
|
178
217
|
exports.ApiFunctionDelete = delete_decorator.ApiFunctionDelete;
|
|
@@ -194,6 +233,14 @@ exports.ApiServiceObservable = observable_decorator$1.ApiServiceObservable;
|
|
|
194
233
|
exports.ApiService = service_decorator.ApiService;
|
|
195
234
|
exports.ApiFunctionSubscriber = function_decorator.ApiFunctionSubscriber;
|
|
196
235
|
exports.ApiRouteSubscriber = route_decorator.ApiRouteSubscriber;
|
|
236
|
+
Object.defineProperty(exports, "EAuthorizationEffect", {
|
|
237
|
+
enumerable: true,
|
|
238
|
+
get: function () { return effect_enum.EAuthorizationEffect; }
|
|
239
|
+
});
|
|
240
|
+
Object.defineProperty(exports, "EApiAuthorizationPolicyOnType", {
|
|
241
|
+
enumerable: true,
|
|
242
|
+
get: function () { return onType_enum.EApiAuthorizationPolicyOnType; }
|
|
243
|
+
});
|
|
197
244
|
Object.defineProperty(exports, "EApiAction", {
|
|
198
245
|
enumerable: true,
|
|
199
246
|
get: function () { return action_enum.EApiAction; }
|
|
@@ -220,7 +267,7 @@ Object.defineProperty(exports, "EApiFunctionType", {
|
|
|
220
267
|
});
|
|
221
268
|
Object.defineProperty(exports, "EApiSubscriberOnType", {
|
|
222
269
|
enumerable: true,
|
|
223
|
-
get: function () { return onType_enum.EApiSubscriberOnType; }
|
|
270
|
+
get: function () { return onType_enum$1.EApiSubscriberOnType; }
|
|
224
271
|
});
|
|
225
272
|
Object.defineProperty(exports, "EApiPropertyDataType", {
|
|
226
273
|
enumerable: true,
|
|
@@ -319,9 +366,13 @@ Object.defineProperty(exports, "CorrelationIDResponseBodyInterceptor", {
|
|
|
319
366
|
enumerable: true,
|
|
320
367
|
get: function () { return correlationIdResponseBody_interceptor.CorrelationIDResponseBodyInterceptor; }
|
|
321
368
|
});
|
|
369
|
+
Object.defineProperty(exports, "ApiAuthorizationModule", {
|
|
370
|
+
enumerable: true,
|
|
371
|
+
get: function () { return authorization_module.ApiAuthorizationModule; }
|
|
372
|
+
});
|
|
322
373
|
Object.defineProperty(exports, "ApiSubscriberModule", {
|
|
323
374
|
enumerable: true,
|
|
324
|
-
get: function () { return
|
|
375
|
+
get: function () { return subscriber_module.ApiSubscriberModule; }
|
|
325
376
|
});
|
|
326
377
|
exports.ApiControllerApplyDecorators = applyDecorators_utility.ApiControllerApplyDecorators;
|
|
327
378
|
exports.ApiControllerApplyMetadata = applyMetadata_utility.ApiControllerApplyMetadata;
|
|
@@ -336,6 +387,11 @@ exports.ApiControllerWriteDtoSwagger = writeDtoSwagger_utility.ApiControllerWrit
|
|
|
336
387
|
exports.ApiControllerWriteMethod = writeMethod_utility.ApiControllerWriteMethod;
|
|
337
388
|
exports.FilterOrderByFromEntity = filterOrderByFromEntity_utility.FilterOrderByFromEntity;
|
|
338
389
|
exports.GetDefaultStringFormatProperties = getDefaultStringFormatProperties_utility.GetDefaultStringFormatProperties;
|
|
390
|
+
exports.AuthorizationDecisionApplyResult = applyResult_utility.AuthorizationDecisionApplyResult;
|
|
391
|
+
exports.AuthorizationDecisionAttachResource = attachResource_utility.AuthorizationDecisionAttachResource;
|
|
392
|
+
exports.AuthorizationDecisionResolveFromRequest = resolveFromRequest_utility.AuthorizationDecisionResolveFromRequest;
|
|
393
|
+
exports.AuthorizationScopeMergeWhere = where_utility.AuthorizationScopeMergeWhere;
|
|
394
|
+
exports.AuthorizationResolveDefaultSubject = resolveDefaultSubject_utility.AuthorizationResolveDefaultSubject;
|
|
339
395
|
exports.CamelCaseString = camelCaseString_utility.CamelCaseString;
|
|
340
396
|
exports.CapitalizeString = capitalizeString_utility.CapitalizeString;
|
|
341
397
|
exports.analyzeEntityMetadata = analize_utility.analyzeEntityMetadata;
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -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,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,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,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
|
+
}
|
|
@@ -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
|
|
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
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib_es6 = require('../../external/tslib/tslib.es6.js');
|
|
4
|
+
var engine_class = require('../../class/api/authorization/engine.class.js');
|
|
5
|
+
var guard_class = require('../../class/api/authorization/guard.class.js');
|
|
6
|
+
var discoveryService_class = require('../../class/api/authorization/policy/discovery-service.class.js');
|
|
7
|
+
var registry_class = require('../../class/api/authorization/policy/registry.class.js');
|
|
8
|
+
var registry_constant = require('../../constant/authorization/token/registry.constant.js');
|
|
9
|
+
var common = require('@nestjs/common');
|
|
10
|
+
var core = require('@nestjs/core');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Module responsible for discovering and registering authorization policies.
|
|
14
|
+
* Import this module to enable zero-configuration RBAC.
|
|
15
|
+
* @see {@link https://elsikora.com/docs/nestjs-crud-automator/authorization | Authorization}
|
|
16
|
+
*/
|
|
17
|
+
exports.ApiAuthorizationModule = class ApiAuthorizationModule {
|
|
18
|
+
};
|
|
19
|
+
exports.ApiAuthorizationModule = tslib_es6.__decorate([
|
|
20
|
+
common.Global(),
|
|
21
|
+
common.Module({
|
|
22
|
+
exports: [registry_constant.AUTHORIZATION_POLICY_REGISTRY_TOKEN, engine_class.ApiAuthorizationEngine, guard_class.ApiAuthorizationGuard, discoveryService_class.ApiAuthorizationPolicyDiscoveryService],
|
|
23
|
+
imports: [core.DiscoveryModule],
|
|
24
|
+
providers: [
|
|
25
|
+
engine_class.ApiAuthorizationEngine,
|
|
26
|
+
guard_class.ApiAuthorizationGuard,
|
|
27
|
+
discoveryService_class.ApiAuthorizationPolicyDiscoveryService,
|
|
28
|
+
{
|
|
29
|
+
provide: registry_constant.AUTHORIZATION_POLICY_REGISTRY_TOKEN,
|
|
30
|
+
useValue: registry_class.apiAuthorizationPolicyRegistry,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
provide: registry_class.ApiAuthorizationPolicyRegistry,
|
|
34
|
+
useValue: registry_class.apiAuthorizationPolicyRegistry,
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
})
|
|
38
|
+
], exports.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":["ApiAuthorizationModule","__decorate","Global","Module","AUTHORIZATION_POLICY_REGISTRY_TOKEN","ApiAuthorizationEngine","ApiAuthorizationGuard","ApiAuthorizationPolicyDiscoveryService","DiscoveryModule","apiAuthorizationPolicyRegistry","ApiAuthorizationPolicyRegistry"],"mappings":";;;;;;;;;;;AAQA;;;;AAIG;AAmBUA,8BAAsB,GAA5B,MAAM,sBAAsB,CAAA;;AAAtBA,8BAAsB,GAAAC,oBAAA,CAAA;AAlBlC,IAAAC,aAAM,EAAE;AACR,IAAAC,aAAM,CAAC;QACP,OAAO,EAAE,CAACC,qDAAmC,EAAEC,mCAAsB,EAAEC,iCAAqB,EAAEC,6DAAsC,CAAC;QACrI,OAAO,EAAE,CAACC,oBAAe,CAAC;AAC1B,QAAA,SAAS,EAAE;YACVH,mCAAsB;YACtBC,iCAAqB;YACrBC,6DAAsC;AACtC,YAAA;AACC,gBAAA,OAAO,EAAEH,qDAAmC;AAC5C,gBAAA,QAAQ,EAAEK,6CAA8B;AACxC,aAAA;AACD,YAAA;AACC,gBAAA,OAAO,EAAEC,6CAA8B;AACvC,gBAAA,QAAQ,EAAED,6CAA8B;AACxC,aAAA;AACD,SAAA;KACD;AACY,CAAA,EAAAT,8BAAsB,CAAG;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require('
|
|
4
|
-
var discoveryService_class = require('
|
|
3
|
+
var tslib_es6 = require('../../external/tslib/tslib.es6.js');
|
|
4
|
+
var discoveryService_class = require('../../class/api/subscriber/discovery-service.class.js');
|
|
5
5
|
var common = require('@nestjs/common');
|
|
6
6
|
var core = require('@nestjs/core');
|
|
7
7
|
|
|
@@ -20,4 +20,4 @@ exports.ApiSubscriberModule = tslib_es6.__decorate([
|
|
|
20
20
|
providers: [discoveryService_class.ApiSubscriberDiscoveryService],
|
|
21
21
|
})
|
|
22
22
|
], exports.ApiSubscriberModule);
|
|
23
|
-
//# sourceMappingURL=
|
|
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":["ApiSubscriberModule","__decorate","Module","ApiSubscriberDiscoveryService","DiscoveryModule"],"mappings":";;;;;;;AAIA;;;;;AAKG;AAMUA,2BAAmB,GAAzB,MAAM,mBAAmB,CAAA;;AAAnBA,2BAAmB,GAAAC,oBAAA,CAAA;AAL/B,IAAAC,aAAM,CAAC;QACP,OAAO,EAAE,CAACC,oDAA6B,CAAC;QACxC,OAAO,EAAE,CAACC,oBAAe,CAAC;QAC1B,SAAS,EAAE,CAACD,oDAA6B,CAAC;KAC1C;AACY,CAAA,EAAAH,2BAAmB,CAAG;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './api
|
|
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,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,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;
|
|
@@ -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>>;
|
|
@@ -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 TApiSubscriberRouteAfterGetContext<E extends IApiBaseEntity> = IApiSubscriberRouteExecutionContext<E, E, IApiSubscriberRouteExecutionContextDataExtended<E>>;
|
|
4
|
+
export type TApiSubscriberRouteAfterGetContext<E extends IApiBaseEntity> = IApiSubscriberRouteExecutionContext<E, E, IApiSubscriberRouteExecutionContextDataExtended<E, E>>;
|