@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.
- 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
|
@@ -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>>;
|
|
@@ -1,4 +1,5 @@
|
|
|
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
|
-
|
|
4
|
+
import type { IApiGetListResponseResult } from '../../../../../../../interface/decorator/api/get-list-response-result.interface';
|
|
5
|
+
export type TApiSubscriberRouteAfterGetListContext<E extends IApiBaseEntity> = IApiSubscriberRouteExecutionContext<E, IApiGetListResponseResult<E>, IApiSubscriberRouteExecutionContextDataExtended<E, IApiGetListResponseResult<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 TApiSubscriberRouteAfterGetManyContext<E extends IApiBaseEntity> = IApiSubscriberRouteExecutionContext<E, Array<E>, IApiSubscriberRouteExecutionContextDataExtended<E
|
|
4
|
+
export type TApiSubscriberRouteAfterGetManyContext<E extends IApiBaseEntity> = IApiSubscriberRouteExecutionContext<E, Array<E>, IApiSubscriberRouteExecutionContextDataExtended<E, Array<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 TApiSubscriberRouteAfterUpdateContext<E extends IApiBaseEntity> = IApiSubscriberRouteExecutionContext<E, E, IApiSubscriberRouteExecutionContextDataExtended<E>>;
|
|
4
|
+
export type TApiSubscriberRouteAfterUpdateContext<E extends IApiBaseEntity> = IApiSubscriberRouteExecutionContext<E, E, IApiSubscriberRouteExecutionContextDataExtended<E, E>>;
|
package/dist/esm/type/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { type TApiRequestTransformer } from './api-request-transformer.type';
|
|
2
2
|
export type * from './class/index';
|
|
3
|
+
export type * from './class/api/authorization/index';
|
|
3
4
|
export type * from './decorator/api/controller/index';
|
|
4
5
|
export type * from './decorator/api/filter/index';
|
|
5
6
|
export type * from './decorator/api/function/index';
|
|
@@ -74,11 +74,9 @@ function ApiControllerApplyMetadata(target, targetPrototype, entity, properties,
|
|
|
74
74
|
routeArgumentsMetadata = assignMetadata(routeArgumentsMetadata, RouteParamtypes.IP, parameterIndex);
|
|
75
75
|
parameterTypes.push(Object);
|
|
76
76
|
parameterIndex++;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
parameterIndex++;
|
|
81
|
-
}
|
|
77
|
+
routeArgumentsMetadata = assignMetadata(routeArgumentsMetadata, RouteParamtypes.REQUEST, parameterIndex);
|
|
78
|
+
parameterTypes.push(Object);
|
|
79
|
+
parameterIndex++;
|
|
82
80
|
Reflect.defineMetadata(ROUTE_ARGS_METADATA, routeArgumentsMetadata, target, methodName);
|
|
83
81
|
Reflect.defineMetadata(PARAMTYPES_METADATA, parameterTypes, targetPrototype, methodName);
|
|
84
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-metadata.utility.js","sources":["../../../../../../src/utility/api/controller/apply-metadata.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA;;;;;;;;;;;;AAYG;AACG,SAAU,0BAA0B,CAAI,MAAc,EAAE,eAAuB,EAAE,MAAqB,EAAE,UAAuC,EAAE,MAAqB,EAAE,UAAkB,EAAE,WAA4D,EAAA;IAC7P,IAAI,cAAc,GAAW,CAAC;IAC9B,IAAI,sBAAsB,GAAY,EAAE;IACxC,MAAM,cAAc,GAAmB,EAAE;AAEzC,IAAA,MAAM,UAAU,GAA8B,WAAW,CAAC,GAAG,EAAE,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC;AAC5N,IAAA,MAAM,QAAQ,GAA8B,WAAW,CAAC,GAAG,EAAE,KAAK,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC;AACpN,IAAA,MAAM,OAAO,GAA8B,WAAW,CAAC,GAAG,EAAE,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC;IAEhN,IAAI,UAAU,EAAE;QACf,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,EAAE,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC;AACtG,QAAA,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/B,QAAA,cAAc,EAAE;IACjB;IAEA,IAAI,QAAQ,EAAE;QACb,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,EAAE,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC;AACtG,QAAA,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,QAAA,cAAc,EAAE;IACjB;IAEA,IAAI,OAAO,EAAE;QACZ,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,EAAE,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC;AACrG,QAAA,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,QAAA,cAAc,EAAE;IACjB;IAEA,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,EAAE,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC;AACxG,IAAA,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAA,cAAc,EAAE;IAEhB,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,EAAE,eAAe,CAAC,EAAE,EAAE,cAAc,CAAC;AACnG,IAAA,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAA,cAAc,EAAE;
|
|
1
|
+
{"version":3,"file":"apply-metadata.utility.js","sources":["../../../../../../src/utility/api/controller/apply-metadata.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA;;;;;;;;;;;;AAYG;AACG,SAAU,0BAA0B,CAAI,MAAc,EAAE,eAAuB,EAAE,MAAqB,EAAE,UAAuC,EAAE,MAAqB,EAAE,UAAkB,EAAE,WAA4D,EAAA;IAC7P,IAAI,cAAc,GAAW,CAAC;IAC9B,IAAI,sBAAsB,GAAY,EAAE;IACxC,MAAM,cAAc,GAAmB,EAAE;AAEzC,IAAA,MAAM,UAAU,GAA8B,WAAW,CAAC,GAAG,EAAE,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC;AAC5N,IAAA,MAAM,QAAQ,GAA8B,WAAW,CAAC,GAAG,EAAE,KAAK,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC;AACpN,IAAA,MAAM,OAAO,GAA8B,WAAW,CAAC,GAAG,EAAE,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC;IAEhN,IAAI,UAAU,EAAE;QACf,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,EAAE,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC;AACtG,QAAA,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/B,QAAA,cAAc,EAAE;IACjB;IAEA,IAAI,QAAQ,EAAE;QACb,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,EAAE,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC;AACtG,QAAA,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,QAAA,cAAc,EAAE;IACjB;IAEA,IAAI,OAAO,EAAE;QACZ,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,EAAE,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC;AACrG,QAAA,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,QAAA,cAAc,EAAE;IACjB;IAEA,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,EAAE,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC;AACxG,IAAA,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAA,cAAc,EAAE;IAEhB,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,EAAE,eAAe,CAAC,EAAE,EAAE,cAAc,CAAC;AACnG,IAAA,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAA,cAAc,EAAE;IAEhB,sBAAsB,GAAG,cAAc,CAAC,sBAAsB,EAAE,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC;AACxG,IAAA,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAA,cAAc,EAAE;IAEhB,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,EAAE,UAAU,CAAC;IACvF,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,CAAC;AACzF;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IApiBaseEntity } from '../../../interface/api-base-entity.interface';
|
|
2
|
+
import type { IApiAuthorizationDecision } from '../../../interface/authorization/index';
|
|
3
|
+
import type { TApiAuthorizationRuleTransformPayload } from '../../../type/class/api/authorization/rule/transform-payload.type';
|
|
4
|
+
/**
|
|
5
|
+
* Applies decision result transforms sequentially to a response payload.
|
|
6
|
+
* @template E - Entity type
|
|
7
|
+
* @template R - Result payload type
|
|
8
|
+
* @param {IApiAuthorizationDecision<E, R> | undefined} decision - Evaluated decision.
|
|
9
|
+
* @param {R} result - Result to transform.
|
|
10
|
+
* @returns {Promise<R>} Transformed payload.
|
|
11
|
+
*/
|
|
12
|
+
export declare function AuthorizationDecisionApplyResult<E extends IApiBaseEntity, R extends TApiAuthorizationRuleTransformPayload<E>>(decision: IApiAuthorizationDecision<E, R> | undefined, result: R): Promise<R>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Applies decision result transforms sequentially to a response payload.
|
|
3
|
+
* @template E - Entity type
|
|
4
|
+
* @template R - Result payload type
|
|
5
|
+
* @param {IApiAuthorizationDecision<E, R> | undefined} decision - Evaluated decision.
|
|
6
|
+
* @param {R} result - Result to transform.
|
|
7
|
+
* @returns {Promise<R>} Transformed payload.
|
|
8
|
+
*/
|
|
9
|
+
async function AuthorizationDecisionApplyResult(decision, result) {
|
|
10
|
+
if (!decision?.transforms.length) {
|
|
11
|
+
return result;
|
|
12
|
+
}
|
|
13
|
+
let transformedResult = result;
|
|
14
|
+
const context = {
|
|
15
|
+
resource: decision.resource,
|
|
16
|
+
subject: decision.subject,
|
|
17
|
+
};
|
|
18
|
+
for (const transform of decision.transforms) {
|
|
19
|
+
transformedResult = await transform(transformedResult, context);
|
|
20
|
+
}
|
|
21
|
+
return transformedResult;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { AuthorizationDecisionApplyResult };
|
|
25
|
+
//# sourceMappingURL=apply-result.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-result.utility.js","sources":["../../../../../../src/utility/authorization/decision/apply-result.utility.ts"],"sourcesContent":[null],"names":[],"mappings":"AAKA;;;;;;;AAOG;AACI,eAAe,gCAAgC,CAA+E,QAAqD,EAAE,MAAS,EAAA;AACpM,IAAA,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE;AACjC,QAAA,OAAO,MAAM;IACd;IAEA,IAAI,iBAAiB,GAAM,MAAM;AAEjC,IAAA,MAAM,OAAO,GAAoC;QAChD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;KACzB;AAED,IAAA,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE;QAC5C,iBAAiB,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAChE;AAEA,IAAA,OAAO,iBAAiB;AACzB;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IApiBaseEntity } from '../../../interface/api-base-entity.interface';
|
|
2
|
+
import type { IApiAuthorizationDecision } from '../../../interface/authorization/index';
|
|
3
|
+
/**
|
|
4
|
+
* Mutates authorization decision to include the resolved entity resource.
|
|
5
|
+
* @template E - Entity type
|
|
6
|
+
* @template R - Result payload type
|
|
7
|
+
* @param {IApiAuthorizationDecision<E, R> | undefined} decision - Decision to enrich.
|
|
8
|
+
* @param {E | undefined} resource - Entity instance to attach.
|
|
9
|
+
* @returns {IApiAuthorizationDecision<E, R> | undefined} Updated decision reference.
|
|
10
|
+
*/
|
|
11
|
+
export declare function AuthorizationDecisionAttachResource<E extends IApiBaseEntity, R>(decision: IApiAuthorizationDecision<E, R> | undefined, resource: E | undefined): IApiAuthorizationDecision<E, R> | undefined;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mutates authorization decision to include the resolved entity resource.
|
|
3
|
+
* @template E - Entity type
|
|
4
|
+
* @template R - Result payload type
|
|
5
|
+
* @param {IApiAuthorizationDecision<E, R> | undefined} decision - Decision to enrich.
|
|
6
|
+
* @param {E | undefined} resource - Entity instance to attach.
|
|
7
|
+
* @returns {IApiAuthorizationDecision<E, R> | undefined} Updated decision reference.
|
|
8
|
+
*/
|
|
9
|
+
function AuthorizationDecisionAttachResource(decision, resource) {
|
|
10
|
+
if (!decision || resource === undefined) {
|
|
11
|
+
return decision;
|
|
12
|
+
}
|
|
13
|
+
decision.resource = resource;
|
|
14
|
+
return decision;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { AuthorizationDecisionAttachResource };
|
|
18
|
+
//# sourceMappingURL=attach-resource.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attach-resource.utility.js","sources":["../../../../../../src/utility/authorization/decision/attach-resource.utility.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;;;;AAOG;AACG,SAAU,mCAAmC,CAA8B,QAAqD,EAAE,QAAuB,EAAA;AAC9J,IAAA,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE;AACxC,QAAA,OAAO,QAAQ;IAChB;AAEA,IAAA,QAAQ,CAAC,QAAQ,GAAG,QAAQ;AAE5B,IAAA,OAAO,QAAQ;AAChB;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IApiAuthenticationRequest } from '../../../interface/api-authentication-request.interface';
|
|
2
|
+
import type { IApiBaseEntity } from '../../../interface/api-base-entity.interface';
|
|
3
|
+
import type { IApiAuthorizationDecision } from '../../../interface/authorization/decision.interface';
|
|
4
|
+
import type { TApiAuthorizationRuleTransformPayload } from '../../../type/class/api/authorization/rule/transform-payload.type';
|
|
5
|
+
/**
|
|
6
|
+
* Extracts an authorization decision from the authentication request metadata stored on the HTTP request.
|
|
7
|
+
* @template E - Entity type
|
|
8
|
+
* @template R - Result payload type
|
|
9
|
+
* @param {IApiAuthenticationRequest} [authenticationRequest] - Request object bound to the route handler.
|
|
10
|
+
* @returns {IApiAuthorizationDecision<E, R> | undefined} Authorization decision if present.
|
|
11
|
+
*/
|
|
12
|
+
export declare function AuthorizationDecisionResolveFromRequest<E extends IApiBaseEntity, R extends TApiAuthorizationRuleTransformPayload<E> = TApiAuthorizationRuleTransformPayload<E>>(authenticationRequest?: IApiAuthenticationRequest): IApiAuthorizationDecision<E, R> | undefined;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AUTHORIZATION_DECISION_METADATA_CONSTANT } from '../../../constant/authorization/metadata/decision.constant.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Extracts an authorization decision from the authentication request metadata stored on the HTTP request.
|
|
5
|
+
* @template E - Entity type
|
|
6
|
+
* @template R - Result payload type
|
|
7
|
+
* @param {IApiAuthenticationRequest} [authenticationRequest] - Request object bound to the route handler.
|
|
8
|
+
* @returns {IApiAuthorizationDecision<E, R> | undefined} Authorization decision if present.
|
|
9
|
+
*/
|
|
10
|
+
function AuthorizationDecisionResolveFromRequest(authenticationRequest) {
|
|
11
|
+
if (!authenticationRequest) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
const requestRecord = authenticationRequest;
|
|
15
|
+
const decision = requestRecord[AUTHORIZATION_DECISION_METADATA_CONSTANT.REQUEST_KEY] ?? requestRecord.authorizationDecision;
|
|
16
|
+
return decision;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { AuthorizationDecisionResolveFromRequest };
|
|
20
|
+
//# sourceMappingURL=resolve-from-request.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-from-request.utility.js","sources":["../../../../../../src/utility/authorization/decision/resolve-from-request.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAOA;;;;;;AAMG;AACG,SAAU,uCAAuC,CAA0H,qBAAiD,EAAA;IACjO,IAAI,CAAC,qBAAqB,EAAE;AAC3B,QAAA,OAAO,SAAS;IACjB;IAEA,MAAM,aAAa,GAA4B,qBAA2D;AAC1G,IAAA,MAAM,QAAQ,GAAY,aAAa,CAAC,wCAAwC,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,qBAAqB;AAEpI,IAAA,OAAO,QAAuD;AAC/D;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './merge/index';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AuthorizationScopeMergeWhere } from './where.utility';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IApiBaseEntity } from '../../../../interface/api-base-entity.interface';
|
|
2
|
+
import type { TApiAuthorizationScopeWhere } from '../../../../type/class/api/authorization/scope-where.type';
|
|
3
|
+
/**
|
|
4
|
+
* Merges two WHERE expressions by building a Cartesian product of OR branches.
|
|
5
|
+
* @template E - Entity type
|
|
6
|
+
* @param {TApiAuthorizationScopeWhere<E>} baseWhere - Existing filter.
|
|
7
|
+
* @param {TApiAuthorizationScopeWhere<E>} scopedWhere - Additional scope filter.
|
|
8
|
+
* @returns {TApiAuthorizationScopeWhere<E>} Combined filter.
|
|
9
|
+
*/
|
|
10
|
+
export declare function AuthorizationScopeMergeWhere<E extends IApiBaseEntity>(baseWhere: TApiAuthorizationScopeWhere<E>, scopedWhere: TApiAuthorizationScopeWhere<E>): TApiAuthorizationScopeWhere<E>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merges two WHERE expressions by building a Cartesian product of OR branches.
|
|
3
|
+
* @template E - Entity type
|
|
4
|
+
* @param {TApiAuthorizationScopeWhere<E>} baseWhere - Existing filter.
|
|
5
|
+
* @param {TApiAuthorizationScopeWhere<E>} scopedWhere - Additional scope filter.
|
|
6
|
+
* @returns {TApiAuthorizationScopeWhere<E>} Combined filter.
|
|
7
|
+
*/
|
|
8
|
+
function AuthorizationScopeMergeWhere(baseWhere, scopedWhere) {
|
|
9
|
+
if (!baseWhere) {
|
|
10
|
+
return scopedWhere;
|
|
11
|
+
}
|
|
12
|
+
if (!scopedWhere) {
|
|
13
|
+
return baseWhere;
|
|
14
|
+
}
|
|
15
|
+
const baseVariants = Array.isArray(baseWhere) ? baseWhere : [baseWhere];
|
|
16
|
+
const scopedVariants = Array.isArray(scopedWhere) ? scopedWhere : [scopedWhere];
|
|
17
|
+
const mergedVariants = [];
|
|
18
|
+
for (const baseVariant of baseVariants) {
|
|
19
|
+
for (const scopedVariant of scopedVariants) {
|
|
20
|
+
mergedVariants.push({
|
|
21
|
+
...baseVariant,
|
|
22
|
+
...scopedVariant,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return mergedVariants.length === 1 ? mergedVariants[0] : mergedVariants;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { AuthorizationScopeMergeWhere };
|
|
30
|
+
//# sourceMappingURL=where.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"where.utility.js","sources":["../../../../../../../src/utility/authorization/scope/merge/where.utility.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIA;;;;;;AAMG;AACG,SAAU,4BAA4B,CAA2B,SAAyC,EAAE,WAA2C,EAAA;IAC5J,IAAI,CAAC,SAAS,EAAE;AACf,QAAA,OAAO,WAAW;IACnB;IAEA,IAAI,CAAC,WAAW,EAAE;AACjB,QAAA,OAAO,SAAS;IACjB;AAEA,IAAA,MAAM,YAAY,GAA+B,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,CAAC,SAAS,CAAC;AACnG,IAAA,MAAM,cAAc,GAA+B,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,CAAC,WAAW,CAAC;IAC3G,MAAM,cAAc,GAA+B,EAAE;AAErD,IAAA,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;AACvC,QAAA,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;YAC3C,cAAc,CAAC,IAAI,CAAC;AACnB,gBAAA,GAAG,WAAW;AACd,gBAAA,GAAG,aAAa;AAChB,aAAA,CAAC;QACH;IACD;AAEA,IAAA,OAAO,cAAc,CAAC,MAAM,KAAK,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc;AACxE;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AuthorizationResolveDefaultSubject } from './resolve-default-subject.utility';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IApiAuthorizationSubject } from '../../../interface/authorization/subject.interface';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves a subject from request.user with smart fallbacks.
|
|
4
|
+
* @param {unknown} user - Request user payload.
|
|
5
|
+
* @returns {IApiAuthorizationSubject} Normalized authorization subject.
|
|
6
|
+
*/
|
|
7
|
+
export declare function AuthorizationResolveDefaultSubject(user: unknown): IApiAuthorizationSubject;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves a subject from request.user with smart fallbacks.
|
|
3
|
+
* @param {unknown} user - Request user payload.
|
|
4
|
+
* @returns {IApiAuthorizationSubject} Normalized authorization subject.
|
|
5
|
+
*/
|
|
6
|
+
function AuthorizationResolveDefaultSubject(user) {
|
|
7
|
+
const baseSubject = {
|
|
8
|
+
attributes: {},
|
|
9
|
+
id: "anonymous",
|
|
10
|
+
permissions: [],
|
|
11
|
+
roles: [],
|
|
12
|
+
};
|
|
13
|
+
if (!user || typeof user !== "object") {
|
|
14
|
+
return baseSubject;
|
|
15
|
+
}
|
|
16
|
+
const record = user;
|
|
17
|
+
const idFields = ["id", "uuid", "email"];
|
|
18
|
+
for (const field of idFields) {
|
|
19
|
+
const value = record[field];
|
|
20
|
+
if (typeof value === "string" && value.length > 0) {
|
|
21
|
+
baseSubject.id = value;
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
baseSubject.roles = resolveStringArray(record, ["roles", "role"]);
|
|
26
|
+
baseSubject.permissions = resolveStringArray(record, ["permissions", "permission"]);
|
|
27
|
+
baseSubject.attributes = record;
|
|
28
|
+
return baseSubject;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Resolves the first string array found in the provided record for the given field candidates.
|
|
32
|
+
* @param {Record<string, unknown>} record - Object containing candidate fields.
|
|
33
|
+
* @param {Array<string>} fields - Candidate field names to inspect in order.
|
|
34
|
+
* @returns {Array<string>} Normalized array of string values.
|
|
35
|
+
*/
|
|
36
|
+
function resolveStringArray(record, fields) {
|
|
37
|
+
for (const field of fields) {
|
|
38
|
+
const value = record[field];
|
|
39
|
+
if (typeof value === "string") {
|
|
40
|
+
return [value];
|
|
41
|
+
}
|
|
42
|
+
if (Array.isArray(value)) {
|
|
43
|
+
return value.filter((item) => typeof item === "string");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export { AuthorizationResolveDefaultSubject };
|
|
50
|
+
//# sourceMappingURL=resolve-default-subject.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-default-subject.utility.js","sources":["../../../../../../src/utility/authorization/subject/resolve-default-subject.utility.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;AAIG;AACG,SAAU,kCAAkC,CAAC,IAAa,EAAA;AAC/D,IAAA,MAAM,WAAW,GAA6B;AAC7C,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,EAAE,EAAE,WAAW;AACf,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,KAAK,EAAE,EAAE;KACT;IAED,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACtC,QAAA,OAAO,WAAW;IACnB;IAEA,MAAM,MAAM,GAA4B,IAA+B;IACvE,MAAM,QAAQ,GAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;AAEvD,IAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;AAC7B,QAAA,MAAM,KAAK,GAAY,MAAM,CAAC,KAAK,CAAC;QAEpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClD,YAAA,WAAW,CAAC,EAAE,GAAG,KAAK;YAEtB;QACD;IACD;AAEA,IAAA,WAAW,CAAC,KAAK,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACjE,IAAA,WAAW,CAAC,WAAW,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACnF,IAAA,WAAW,CAAC,UAAU,GAAG,MAAM;AAE/B,IAAA,OAAO,WAAW;AACnB;AAEA;;;;;AAKG;AACH,SAAS,kBAAkB,CAAC,MAA+B,EAAE,MAAqB,EAAA;AACjF,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC3B,QAAA,MAAM,KAAK,GAAY,MAAM,CAAC,KAAK,CAAC;AAEpC,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC;QACf;AAEA,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAa,KAAqB,OAAO,IAAI,KAAK,QAAQ,CAAC;QACjF;IACD;AAEA,IAAA,OAAO,EAAE;AACV;;;;"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-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;;;;"}
|
|
File without changes
|
|
File without changes
|