@ddd-ts-kit/auth 0.0.0-stage → 0.1.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 +834 -2
- package/dist/abac/attribute-policy.d.ts +13 -0
- package/dist/abac/attribute-policy.d.ts.map +1 -0
- package/dist/abac/attribute-policy.js +10 -0
- package/dist/abac/attribute-policy.js.map +1 -0
- package/dist/abac/condition.d.ts +6 -0
- package/dist/abac/condition.d.ts.map +1 -0
- package/dist/abac/condition.js +10 -0
- package/dist/abac/condition.js.map +1 -0
- package/dist/abac/policy-based-authorizer.d.ts +23 -0
- package/dist/abac/policy-based-authorizer.d.ts.map +1 -0
- package/dist/abac/policy-based-authorizer.js +39 -0
- package/dist/abac/policy-based-authorizer.js.map +1 -0
- package/dist/abac/policy-input.d.ts +17 -0
- package/dist/abac/policy-input.d.ts.map +1 -0
- package/dist/abac/policy-input.js +2 -0
- package/dist/abac/policy-input.js.map +1 -0
- package/dist/abac/resource-attribute-values.d.ts +3 -0
- package/dist/abac/resource-attribute-values.d.ts.map +1 -0
- package/dist/abac/resource-attribute-values.js +2 -0
- package/dist/abac/resource-attribute-values.js.map +1 -0
- package/dist/abac/resource-attributes.d.ts +8 -0
- package/dist/abac/resource-attributes.d.ts.map +1 -0
- package/dist/abac/resource-attributes.js +5 -0
- package/dist/abac/resource-attributes.js.map +1 -0
- package/dist/authentication/actor-of.d.ts +7 -0
- package/dist/authentication/actor-of.d.ts.map +1 -0
- package/dist/authentication/actor-of.js +9 -0
- package/dist/authentication/actor-of.js.map +1 -0
- package/dist/authentication/authenticator.d.ts +11 -0
- package/dist/authentication/authenticator.d.ts.map +1 -0
- package/dist/authentication/authenticator.js +9 -0
- package/dist/authentication/authenticator.js.map +1 -0
- package/dist/authentication/bearer-credential.d.ts +7 -0
- package/dist/authentication/bearer-credential.d.ts.map +1 -0
- package/dist/authentication/bearer-credential.js +19 -0
- package/dist/authentication/bearer-credential.js.map +1 -0
- package/dist/authentication/header-values.d.ts +2 -0
- package/dist/authentication/header-values.d.ts.map +1 -0
- package/dist/authentication/header-values.js +2 -0
- package/dist/authentication/header-values.js.map +1 -0
- package/dist/authentication/in-actor-context.d.ts +15 -0
- package/dist/authentication/in-actor-context.d.ts.map +1 -0
- package/dist/authentication/in-actor-context.js +11 -0
- package/dist/authentication/in-actor-context.js.map +1 -0
- package/dist/authentication/principal-resolver.d.ts +10 -0
- package/dist/authentication/principal-resolver.d.ts.map +1 -0
- package/dist/authentication/principal-resolver.js +25 -0
- package/dist/authentication/principal-resolver.js.map +1 -0
- package/dist/authentication/resolve-session.d.ts +9 -0
- package/dist/authentication/resolve-session.d.ts.map +1 -0
- package/dist/authentication/resolve-session.js +12 -0
- package/dist/authentication/resolve-session.js.map +1 -0
- package/dist/authentication/session-authenticator.d.ts +13 -0
- package/dist/authentication/session-authenticator.d.ts.map +1 -0
- package/dist/authentication/session-authenticator.js +11 -0
- package/dist/authentication/session-authenticator.js.map +1 -0
- package/dist/authentication/session-of.d.ts +9 -0
- package/dist/authentication/session-of.d.ts.map +1 -0
- package/dist/authentication/session-of.js +27 -0
- package/dist/authentication/session-of.js.map +1 -0
- package/dist/authorization/access-scope.d.ts +16 -0
- package/dist/authorization/access-scope.d.ts.map +1 -0
- package/dist/authorization/access-scope.js +2 -0
- package/dist/authorization/access-scope.js.map +1 -0
- package/dist/authorization/access.d.ts +17 -0
- package/dist/authorization/access.d.ts.map +1 -0
- package/dist/authorization/access.js +8 -0
- package/dist/authorization/access.js.map +1 -0
- package/dist/authorization/authorization-context.d.ts +3 -0
- package/dist/authorization/authorization-context.d.ts.map +1 -0
- package/dist/authorization/authorization-context.js +2 -0
- package/dist/authorization/authorization-context.js.map +1 -0
- package/dist/authorization/authorizer.d.ts +15 -0
- package/dist/authorization/authorizer.d.ts.map +1 -0
- package/dist/authorization/authorizer.js +8 -0
- package/dist/authorization/authorizer.js.map +1 -0
- package/dist/authorization/check-request.d.ts +11 -0
- package/dist/authorization/check-request.d.ts.map +1 -0
- package/dist/authorization/check-request.js +2 -0
- package/dist/authorization/check-request.js.map +1 -0
- package/dist/authorization/decision-record-of.d.ts +7 -0
- package/dist/authorization/decision-record-of.d.ts.map +1 -0
- package/dist/authorization/decision-record-of.js +11 -0
- package/dist/authorization/decision-record-of.js.map +1 -0
- package/dist/authorization/decision-record.d.ts +15 -0
- package/dist/authorization/decision-record.d.ts.map +1 -0
- package/dist/authorization/decision-record.js +2 -0
- package/dist/authorization/decision-record.js.map +1 -0
- package/dist/authorization/decision.d.ts +10 -0
- package/dist/authorization/decision.d.ts.map +1 -0
- package/dist/authorization/decision.js +5 -0
- package/dist/authorization/decision.js.map +1 -0
- package/dist/authorization/denial-reason.d.ts +14 -0
- package/dist/authorization/denial-reason.d.ts.map +1 -0
- package/dist/authorization/denial-reason.js +14 -0
- package/dist/authorization/denial-reason.js.map +1 -0
- package/dist/authorization/is-resource-ref.d.ts +4 -0
- package/dist/authorization/is-resource-ref.d.ts.map +1 -0
- package/dist/authorization/is-resource-ref.js +11 -0
- package/dist/authorization/is-resource-ref.js.map +1 -0
- package/dist/authorization/list-request.d.ts +8 -0
- package/dist/authorization/list-request.d.ts.map +1 -0
- package/dist/authorization/list-request.js +2 -0
- package/dist/authorization/list-request.js.map +1 -0
- package/dist/authorization/on-decision.d.ts +3 -0
- package/dist/authorization/on-decision.d.ts.map +1 -0
- package/dist/authorization/on-decision.js +2 -0
- package/dist/authorization/on-decision.js.map +1 -0
- package/dist/authorization/resource-ref.d.ts +6 -0
- package/dist/authorization/resource-ref.d.ts.map +1 -0
- package/dist/authorization/resource-ref.js +2 -0
- package/dist/authorization/resource-ref.js.map +1 -0
- package/dist/di/authorization-map-of.d.ts +5 -0
- package/dist/di/authorization-map-of.d.ts.map +1 -0
- package/dist/di/authorization-map-of.js +30 -0
- package/dist/di/authorization-map-of.js.map +1 -0
- package/dist/di/authorization-module.d.ts +24 -0
- package/dist/di/authorization-module.d.ts.map +1 -0
- package/dist/di/authorization-module.js +75 -0
- package/dist/di/authorization-module.js.map +1 -0
- package/dist/di.d.ts +7 -0
- package/dist/di.d.ts.map +1 -0
- package/dist/di.js +7 -0
- package/dist/di.js.map +1 -0
- package/dist/errors/authorization-setup-error.d.ts +5 -0
- package/dist/errors/authorization-setup-error.d.ts.map +1 -0
- package/dist/errors/authorization-setup-error.js +8 -0
- package/dist/errors/authorization-setup-error.js.map +1 -0
- package/dist/errors/forbidden-error.d.ts +14 -0
- package/dist/errors/forbidden-error.d.ts.map +1 -0
- package/dist/errors/forbidden-error.js +18 -0
- package/dist/errors/forbidden-error.js.map +1 -0
- package/dist/errors/invalid-credential-error.d.ts +8 -0
- package/dist/errors/invalid-credential-error.d.ts.map +1 -0
- package/dist/errors/invalid-credential-error.js +12 -0
- package/dist/errors/invalid-credential-error.js.map +1 -0
- package/dist/errors/listing-not-supported-error.d.ts +5 -0
- package/dist/errors/listing-not-supported-error.d.ts.map +1 -0
- package/dist/errors/listing-not-supported-error.js +8 -0
- package/dist/errors/listing-not-supported-error.js.map +1 -0
- package/dist/errors/missing-actor-error.d.ts +6 -0
- package/dist/errors/missing-actor-error.d.ts.map +1 -0
- package/dist/errors/missing-actor-error.js +8 -0
- package/dist/errors/missing-actor-error.js.map +1 -0
- package/dist/errors/unauthenticated-error.d.ts +12 -0
- package/dist/errors/unauthenticated-error.d.ts.map +1 -0
- package/dist/errors/unauthenticated-error.js +14 -0
- package/dist/errors/unauthenticated-error.js.map +1 -0
- package/dist/errors/undeclared-use-case-error.d.ts +9 -0
- package/dist/errors/undeclared-use-case-error.d.ts.map +1 -0
- package/dist/errors/undeclared-use-case-error.js +11 -0
- package/dist/errors/undeclared-use-case-error.js.map +1 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/jwt/claims.d.ts +3 -0
- package/dist/jwt/claims.d.ts.map +1 -0
- package/dist/jwt/claims.js +2 -0
- package/dist/jwt/claims.js.map +1 -0
- package/dist/jwt/is-service-account.d.ts +3 -0
- package/dist/jwt/is-service-account.d.ts.map +1 -0
- package/dist/jwt/is-service-account.js +7 -0
- package/dist/jwt/is-service-account.js.map +1 -0
- package/dist/jwt/jwt-authenticator.d.ts +45 -0
- package/dist/jwt/jwt-authenticator.d.ts.map +1 -0
- package/dist/jwt/jwt-authenticator.js +109 -0
- package/dist/jwt/jwt-authenticator.js.map +1 -0
- package/dist/jwt/keycloak-actor-of.d.ts +6 -0
- package/dist/jwt/keycloak-actor-of.d.ts.map +1 -0
- package/dist/jwt/keycloak-actor-of.js +56 -0
- package/dist/jwt/keycloak-actor-of.js.map +1 -0
- package/dist/jwt/keycloak-authentication-method.d.ts +5 -0
- package/dist/jwt/keycloak-authentication-method.d.ts.map +1 -0
- package/dist/jwt/keycloak-authentication-method.js +6 -0
- package/dist/jwt/keycloak-authentication-method.js.map +1 -0
- package/dist/jwt/keycloak-authenticator.d.ts +23 -0
- package/dist/jwt/keycloak-authenticator.d.ts.map +1 -0
- package/dist/jwt/keycloak-authenticator.js +25 -0
- package/dist/jwt/keycloak-authenticator.js.map +1 -0
- package/dist/jwt/keycloak-claim-options.d.ts +9 -0
- package/dist/jwt/keycloak-claim-options.d.ts.map +1 -0
- package/dist/jwt/keycloak-claim-options.js +2 -0
- package/dist/jwt/keycloak-claim-options.js.map +1 -0
- package/dist/jwt/session-of-claims.d.ts +13 -0
- package/dist/jwt/session-of-claims.d.ts.map +1 -0
- package/dist/jwt/session-of-claims.js +71 -0
- package/dist/jwt/session-of-claims.js.map +1 -0
- package/dist/jwt/without-trailing-slashes.d.ts +3 -0
- package/dist/jwt/without-trailing-slashes.d.ts.map +1 -0
- package/dist/jwt/without-trailing-slashes.js +9 -0
- package/dist/jwt/without-trailing-slashes.js.map +1 -0
- package/dist/jwt.d.ts +3 -0
- package/dist/jwt.d.ts.map +1 -0
- package/dist/jwt.js +3 -0
- package/dist/jwt.js.map +1 -0
- package/dist/permissions/define-permissions.d.ts +13 -0
- package/dist/permissions/define-permissions.d.ts.map +1 -0
- package/dist/permissions/define-permissions.js +23 -0
- package/dist/permissions/define-permissions.js.map +1 -0
- package/dist/permissions/grant-covers.d.ts +3 -0
- package/dist/permissions/grant-covers.d.ts.map +1 -0
- package/dist/permissions/grant-covers.js +5 -0
- package/dist/permissions/grant-covers.js.map +1 -0
- package/dist/permissions/grant-pattern.d.ts +5 -0
- package/dist/permissions/grant-pattern.d.ts.map +1 -0
- package/dist/permissions/grant-pattern.js +12 -0
- package/dist/permissions/grant-pattern.js.map +1 -0
- package/dist/permissions/grant.d.ts +4 -0
- package/dist/permissions/grant.d.ts.map +1 -0
- package/dist/permissions/grant.js +2 -0
- package/dist/permissions/grant.js.map +1 -0
- package/dist/permissions/is-permission.d.ts +3 -0
- package/dist/permissions/is-permission.d.ts.map +1 -0
- package/dist/permissions/is-permission.js +10 -0
- package/dist/permissions/is-permission.js.map +1 -0
- package/dist/permissions/permission-registry.d.ts +12 -0
- package/dist/permissions/permission-registry.d.ts.map +1 -0
- package/dist/permissions/permission-registry.js +31 -0
- package/dist/permissions/permission-registry.js.map +1 -0
- package/dist/permissions/permission.d.ts +9 -0
- package/dist/permissions/permission.d.ts.map +1 -0
- package/dist/permissions/permission.js +2 -0
- package/dist/permissions/permission.js.map +1 -0
- package/dist/policies/define-policy.d.ts +4 -0
- package/dist/policies/define-policy.d.ts.map +1 -0
- package/dist/policies/define-policy.js +10 -0
- package/dist/policies/define-policy.js.map +1 -0
- package/dist/policies/policy-access.d.ts +32 -0
- package/dist/policies/policy-access.d.ts.map +1 -0
- package/dist/policies/policy-access.js +78 -0
- package/dist/policies/policy-access.js.map +1 -0
- package/dist/policies/policy-context.d.ts +5 -0
- package/dist/policies/policy-context.d.ts.map +1 -0
- package/dist/policies/policy-context.js +2 -0
- package/dist/policies/policy-context.js.map +1 -0
- package/dist/policies/policy.d.ts +18 -0
- package/dist/policies/policy.d.ts.map +1 -0
- package/dist/policies/policy.js +2 -0
- package/dist/policies/policy.js.map +1 -0
- package/dist/rbac/role-based-authorizer.d.ts +35 -0
- package/dist/rbac/role-based-authorizer.d.ts.map +1 -0
- package/dist/rbac/role-based-authorizer.js +68 -0
- package/dist/rbac/role-based-authorizer.js.map +1 -0
- package/dist/rbac/tenant-of-context.d.ts +4 -0
- package/dist/rbac/tenant-of-context.d.ts.map +1 -0
- package/dist/rbac/tenant-of-context.js +6 -0
- package/dist/rbac/tenant-of-context.js.map +1 -0
- package/dist/rebac/define-schema.d.ts +8 -0
- package/dist/rebac/define-schema.d.ts.map +1 -0
- package/dist/rebac/define-schema.js +99 -0
- package/dist/rebac/define-schema.js.map +1 -0
- package/dist/rebac/evaluation.d.ts +31 -0
- package/dist/rebac/evaluation.d.ts.map +1 -0
- package/dist/rebac/evaluation.js +94 -0
- package/dist/rebac/evaluation.js.map +1 -0
- package/dist/rebac/expand-node.d.ts +13 -0
- package/dist/rebac/expand-node.d.ts.map +1 -0
- package/dist/rebac/expand-node.js +2 -0
- package/dist/rebac/expand-node.js.map +1 -0
- package/dist/rebac/in-memory-relation-tuple-store.d.ts +12 -0
- package/dist/rebac/in-memory-relation-tuple-store.d.ts.map +1 -0
- package/dist/rebac/in-memory-relation-tuple-store.js +25 -0
- package/dist/rebac/in-memory-relation-tuple-store.js.map +1 -0
- package/dist/rebac/invalid-tuple-error.d.ts +5 -0
- package/dist/rebac/invalid-tuple-error.d.ts.map +1 -0
- package/dist/rebac/invalid-tuple-error.js +8 -0
- package/dist/rebac/invalid-tuple-error.js.map +1 -0
- package/dist/rebac/object-of.d.ts +3 -0
- package/dist/rebac/object-of.d.ts.map +1 -0
- package/dist/rebac/object-of.js +4 -0
- package/dist/rebac/object-of.js.map +1 -0
- package/dist/rebac/parse-object.d.ts +3 -0
- package/dist/rebac/parse-object.d.ts.map +1 -0
- package/dist/rebac/parse-object.js +10 -0
- package/dist/rebac/parse-object.js.map +1 -0
- package/dist/rebac/parse-subject.d.ts +3 -0
- package/dist/rebac/parse-subject.d.ts.map +1 -0
- package/dist/rebac/parse-subject.js +11 -0
- package/dist/rebac/parse-subject.js.map +1 -0
- package/dist/rebac/permission-mapping.d.ts +3 -0
- package/dist/rebac/permission-mapping.d.ts.map +1 -0
- package/dist/rebac/permission-mapping.js +2 -0
- package/dist/rebac/permission-mapping.js.map +1 -0
- package/dist/rebac/relation-based-authorizer.d.ts +45 -0
- package/dist/rebac/relation-based-authorizer.d.ts.map +1 -0
- package/dist/rebac/relation-based-authorizer.js +113 -0
- package/dist/rebac/relation-based-authorizer.js.map +1 -0
- package/dist/rebac/relation-tuple-store.d.ts +16 -0
- package/dist/rebac/relation-tuple-store.d.ts.map +1 -0
- package/dist/rebac/relation-tuple-store.js +8 -0
- package/dist/rebac/relation-tuple-store.js.map +1 -0
- package/dist/rebac/relation-tuple.d.ts +12 -0
- package/dist/rebac/relation-tuple.d.ts.map +1 -0
- package/dist/rebac/relation-tuple.js +2 -0
- package/dist/rebac/relation-tuple.js.map +1 -0
- package/dist/rebac/resolution.d.ts +9 -0
- package/dist/rebac/resolution.d.ts.map +1 -0
- package/dist/rebac/resolution.js +2 -0
- package/dist/rebac/resolution.js.map +1 -0
- package/dist/rebac/reverse-expansion-limit-error.d.ts +5 -0
- package/dist/rebac/reverse-expansion-limit-error.d.ts.map +1 -0
- package/dist/rebac/reverse-expansion-limit-error.js +8 -0
- package/dist/rebac/reverse-expansion-limit-error.js.map +1 -0
- package/dist/rebac/rewrite.d.ts +24 -0
- package/dist/rebac/rewrite.d.ts.map +1 -0
- package/dist/rebac/rewrite.js +15 -0
- package/dist/rebac/rewrite.js.map +1 -0
- package/dist/rebac/schema-checked-tuple-store.d.ts +14 -0
- package/dist/rebac/schema-checked-tuple-store.d.ts.map +1 -0
- package/dist/rebac/schema-checked-tuple-store.js +25 -0
- package/dist/rebac/schema-checked-tuple-store.js.map +1 -0
- package/dist/rebac/schema-definition.d.ts +3 -0
- package/dist/rebac/schema-definition.d.ts.map +1 -0
- package/dist/rebac/schema-definition.js +2 -0
- package/dist/rebac/schema-definition.js.map +1 -0
- package/dist/rebac/schema-error.d.ts +5 -0
- package/dist/rebac/schema-error.d.ts.map +1 -0
- package/dist/rebac/schema-error.js +8 -0
- package/dist/rebac/schema-error.js.map +1 -0
- package/dist/rebac/schema.d.ts +18 -0
- package/dist/rebac/schema.d.ts.map +1 -0
- package/dist/rebac/schema.js +49 -0
- package/dist/rebac/schema.js.map +1 -0
- package/dist/rebac/subject-ref.d.ts +6 -0
- package/dist/rebac/subject-ref.d.ts.map +1 -0
- package/dist/rebac/subject-ref.js +2 -0
- package/dist/rebac/subject-ref.js.map +1 -0
- package/dist/rebac/tuple-key.d.ts +3 -0
- package/dist/rebac/tuple-key.d.ts.map +1 -0
- package/dist/rebac/tuple-key.js +4 -0
- package/dist/rebac/tuple-key.js.map +1 -0
- package/dist/rebac/type-definition.d.ts +7 -0
- package/dist/rebac/type-definition.d.ts.map +1 -0
- package/dist/rebac/type-definition.js +2 -0
- package/dist/rebac/type-definition.js.map +1 -0
- package/dist/rebac.d.ts +22 -0
- package/dist/rebac.d.ts.map +1 -0
- package/dist/rebac.js +15 -0
- package/dist/rebac.js.map +1 -0
- package/dist/testing/actor-builder.d.ts +21 -0
- package/dist/testing/actor-builder.d.ts.map +1 -0
- package/dist/testing/actor-builder.js +26 -0
- package/dist/testing/actor-builder.js.map +1 -0
- package/dist/testing/allow-all.d.ts +9 -0
- package/dist/testing/allow-all.d.ts.map +1 -0
- package/dist/testing/allow-all.js +11 -0
- package/dist/testing/allow-all.js.map +1 -0
- package/dist/testing/an-actor.d.ts +4 -0
- package/dist/testing/an-actor.d.ts.map +1 -0
- package/dist/testing/an-actor.js +7 -0
- package/dist/testing/an-actor.js.map +1 -0
- package/dist/testing/authorizer-contract.d.ts +18 -0
- package/dist/testing/authorizer-contract.d.ts.map +1 -0
- package/dist/testing/authorizer-contract.js +102 -0
- package/dist/testing/authorizer-contract.js.map +1 -0
- package/dist/testing/deny-all.d.ts +10 -0
- package/dist/testing/deny-all.d.ts.map +1 -0
- package/dist/testing/deny-all.js +14 -0
- package/dist/testing/deny-all.js.map +1 -0
- package/dist/testing/fake-authenticator.d.ts +13 -0
- package/dist/testing/fake-authenticator.d.ts.map +1 -0
- package/dist/testing/fake-authenticator.js +26 -0
- package/dist/testing/fake-authenticator.js.map +1 -0
- package/dist/testing/recording-authorizer.d.ts +15 -0
- package/dist/testing/recording-authorizer.d.ts.map +1 -0
- package/dist/testing/recording-authorizer.js +19 -0
- package/dist/testing/recording-authorizer.js.map +1 -0
- package/dist/testing/relation-tuple-store-contract.d.ts +10 -0
- package/dist/testing/relation-tuple-store-contract.d.ts.map +1 -0
- package/dist/testing/relation-tuple-store-contract.js +68 -0
- package/dist/testing/relation-tuple-store-contract.js.map +1 -0
- package/dist/testing.d.ts +9 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +9 -0
- package/dist/testing.js.map +1 -0
- package/dist/use-cases/authorization-map.d.ts +18 -0
- package/dist/use-cases/authorization-map.d.ts.map +1 -0
- package/dist/use-cases/authorization-map.js +32 -0
- package/dist/use-cases/authorization-map.js.map +1 -0
- package/dist/use-cases/authorization-middleware.d.ts +17 -0
- package/dist/use-cases/authorization-middleware.d.ts.map +1 -0
- package/dist/use-cases/authorization-middleware.js +49 -0
- package/dist/use-cases/authorization-middleware.js.map +1 -0
- package/dist/use-cases/public-use-case.d.ts +5 -0
- package/dist/use-cases/public-use-case.d.ts.map +1 -0
- package/dist/use-cases/public-use-case.js +5 -0
- package/dist/use-cases/public-use-case.js.map +1 -0
- package/dist/use-cases/requires.d.ts +17 -0
- package/dist/use-cases/requires.d.ts.map +1 -0
- package/dist/use-cases/requires.js +14 -0
- package/dist/use-cases/requires.js.map +1 -0
- package/dist/use-cases/use-case-declaration.d.ts +17 -0
- package/dist/use-cases/use-case-declaration.d.ts.map +1 -0
- package/dist/use-cases/use-case-declaration.js +2 -0
- package/dist/use-cases/use-case-declaration.js.map +1 -0
- package/package.json +67 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization-context.js","sourceRoot":"","sources":["../../src/authorization/authorization-context.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { AccessScope } from './access-scope.js';
|
|
2
|
+
import type { CheckRequest } from './check-request.js';
|
|
3
|
+
import type { Decision } from './decision.js';
|
|
4
|
+
import type { ListRequest } from './list-request.js';
|
|
5
|
+
/**
|
|
6
|
+
* The one port every authorization model implements: roles, attribute policies, relationships,
|
|
7
|
+
* in process or delegated to a dedicated service. Handlers and middleware know nothing else.
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class Authorizer {
|
|
10
|
+
static readonly tokenKey = "auth.Authorizer";
|
|
11
|
+
abstract check(request: CheckRequest): Promise<Decision>;
|
|
12
|
+
/** Absent when the model cannot enumerate: asking for a scope then fails loudly. */
|
|
13
|
+
abstract listAccessible?(request: ListRequest): Promise<AccessScope>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=authorizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizer.d.ts","sourceRoot":"","sources":["../../src/authorization/authorizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;GAGG;AACH,8BAAsB,UAAU;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,qBAAqB;IAE7C,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEzD,oFAAoF;IACpF,QAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACtE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one port every authorization model implements: roles, attribute policies, relationships,
|
|
3
|
+
* in process or delegated to a dedicated service. Handlers and middleware know nothing else.
|
|
4
|
+
*/
|
|
5
|
+
export class Authorizer {
|
|
6
|
+
static tokenKey = 'auth.Authorizer';
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=authorizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizer.js","sourceRoot":"","sources":["../../src/authorization/authorizer.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,OAAgB,UAAU;IAC9B,MAAM,CAAU,QAAQ,GAAG,iBAAiB,CAAC;CAM9C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Actor } from '@ddd-ts-kit/kernel';
|
|
2
|
+
import type { Permission } from '../permissions/permission.js';
|
|
3
|
+
import type { AuthorizationContext } from './authorization-context.js';
|
|
4
|
+
import type { ResourceRef } from './resource-ref.js';
|
|
5
|
+
export interface CheckRequest {
|
|
6
|
+
readonly actor: Actor;
|
|
7
|
+
readonly permission: Permission;
|
|
8
|
+
readonly resource?: ResourceRef;
|
|
9
|
+
readonly context?: AuthorizationContext;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=check-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-request.d.ts","sourceRoot":"","sources":["../../src/authorization/check-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;CACzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-request.js","sourceRoot":"","sources":["../../src/authorization/check-request.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { MessageInfo } from '@ddd-ts-kit/kernel';
|
|
2
|
+
import type { CheckRequest } from './check-request.js';
|
|
3
|
+
import type { Decision } from './decision.js';
|
|
4
|
+
import type { DecisionRecord } from './decision-record.js';
|
|
5
|
+
/** `info` is the message the bus is handling, for a decision taken by the bus middleware. */
|
|
6
|
+
export declare function decisionRecordOf(request: CheckRequest, decision: Decision, info?: MessageInfo): DecisionRecord;
|
|
7
|
+
//# sourceMappingURL=decision-record-of.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-record-of.d.ts","sourceRoot":"","sources":["../../src/authorization/decision-record-of.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,cAAc,CAQ9G"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** `info` is the message the bus is handling, for a decision taken by the bus middleware. */
|
|
2
|
+
export function decisionRecordOf(request, decision, info) {
|
|
3
|
+
return {
|
|
4
|
+
actorId: request.actor.id,
|
|
5
|
+
permissionId: request.permission.id,
|
|
6
|
+
...(request.resource === undefined ? {} : { resource: request.resource }),
|
|
7
|
+
decision,
|
|
8
|
+
...(info === undefined ? {} : { useCase: info.name, kind: info.kind }),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=decision-record-of.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-record-of.js","sourceRoot":"","sources":["../../src/authorization/decision-record-of.ts"],"names":[],"mappings":"AAKA,6FAA6F;AAC7F,MAAM,UAAU,gBAAgB,CAAC,OAAqB,EAAE,QAAkB,EAAE,IAAkB;IAC5F,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;QACzB,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE;QACnC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzE,QAAQ;QACR,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { MessageInfo } from '@ddd-ts-kit/kernel';
|
|
2
|
+
import type { Decision } from './decision.js';
|
|
3
|
+
import type { ResourceRef } from './resource-ref.js';
|
|
4
|
+
/** What the audit hook receives, for an allowed decision as for a refused one. */
|
|
5
|
+
export interface DecisionRecord {
|
|
6
|
+
readonly actorId: string;
|
|
7
|
+
readonly permissionId: string;
|
|
8
|
+
readonly resource?: ResourceRef;
|
|
9
|
+
readonly decision: Decision;
|
|
10
|
+
/** The command or query, when the decision was taken by the bus middleware. */
|
|
11
|
+
readonly useCase?: string;
|
|
12
|
+
/** Whether that use case changes state or answers; absent with `useCase`, for a decision taken outside a bus. */
|
|
13
|
+
readonly kind?: MessageInfo['kind'];
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=decision-record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-record.d.ts","sourceRoot":"","sources":["../../src/authorization/decision-record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,iHAAiH;IACjH,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-record.js","sourceRoot":"","sources":["../../src/authorization/decision-record.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** `reason` is a stable machine code (`NO_MATCHING_ROLE`), never a sentence and never data. */
|
|
2
|
+
export type Decision = {
|
|
3
|
+
readonly allowed: true;
|
|
4
|
+
} | {
|
|
5
|
+
readonly allowed: false;
|
|
6
|
+
readonly reason: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const ALLOWED: Decision;
|
|
9
|
+
export declare function deny(reason: string): Decision;
|
|
10
|
+
//# sourceMappingURL=decision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../../src/authorization/decision.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzG,eAAO,MAAM,OAAO,EAAE,QAA2C,CAAC;AAElE,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAE7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision.js","sourceRoot":"","sources":["../../src/authorization/decision.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,OAAO,GAAa,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAElE,MAAM,UAAU,IAAI,CAAC,MAAc;IACjC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** The reasons the authorizers of this package give. An adapter may add its own. */
|
|
2
|
+
export declare const DenialReason: {
|
|
3
|
+
readonly anonymous: 'ANONYMOUS';
|
|
4
|
+
readonly noMatchingRole: 'NO_MATCHING_ROLE';
|
|
5
|
+
readonly tenantMismatch: 'TENANT_MISMATCH';
|
|
6
|
+
readonly explicitDeny: 'EXPLICIT_DENY';
|
|
7
|
+
readonly noMatchingPolicy: 'NO_MATCHING_POLICY';
|
|
8
|
+
readonly subjectMismatch: 'SUBJECT_MISMATCH';
|
|
9
|
+
readonly resourceRequired: 'RESOURCE_REQUIRED';
|
|
10
|
+
readonly unmappedPermission: 'UNMAPPED_PERMISSION';
|
|
11
|
+
readonly noRelation: 'NO_RELATION';
|
|
12
|
+
readonly depthExceeded: 'DEPTH_EXCEEDED';
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=denial-reason.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"denial-reason.d.ts","sourceRoot":"","sources":["../../src/authorization/denial-reason.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,eAAO,MAAM,YAAY;aACvB,SAAS,EAAE,WAAW;aACtB,cAAc,EAAE,kBAAkB;aAClC,cAAc,EAAE,iBAAiB;aACjC,YAAY,EAAE,eAAe;aAC7B,gBAAgB,EAAE,oBAAoB;aACtC,eAAe,EAAE,kBAAkB;aACnC,gBAAgB,EAAE,mBAAmB;aACrC,kBAAkB,EAAE,qBAAqB;aACzC,UAAU,EAAE,aAAa;aACzB,aAAa,EAAE,gBAAgB;CACvB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** The reasons the authorizers of this package give. An adapter may add its own. */
|
|
2
|
+
export const DenialReason = {
|
|
3
|
+
anonymous: 'ANONYMOUS',
|
|
4
|
+
noMatchingRole: 'NO_MATCHING_ROLE',
|
|
5
|
+
tenantMismatch: 'TENANT_MISMATCH',
|
|
6
|
+
explicitDeny: 'EXPLICIT_DENY',
|
|
7
|
+
noMatchingPolicy: 'NO_MATCHING_POLICY',
|
|
8
|
+
subjectMismatch: 'SUBJECT_MISMATCH',
|
|
9
|
+
resourceRequired: 'RESOURCE_REQUIRED',
|
|
10
|
+
unmappedPermission: 'UNMAPPED_PERMISSION',
|
|
11
|
+
noRelation: 'NO_RELATION',
|
|
12
|
+
depthExceeded: 'DEPTH_EXCEEDED',
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=denial-reason.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"denial-reason.js","sourceRoot":"","sources":["../../src/authorization/denial-reason.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS,EAAE,WAAW;IACtB,cAAc,EAAE,kBAAkB;IAClC,cAAc,EAAE,iBAAiB;IACjC,YAAY,EAAE,eAAe;IAC7B,gBAAgB,EAAE,oBAAoB;IACtC,eAAe,EAAE,kBAAkB;IACnC,gBAAgB,EAAE,mBAAmB;IACrC,kBAAkB,EAAE,qBAAqB;IACzC,UAAU,EAAE,aAAa;IACzB,aAAa,EAAE,gBAAgB;CACvB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ResourceRef } from './resource-ref.js';
|
|
2
|
+
/** Strict on purpose: an aggregate that happens to have a `type` and an `id` is not a reference. */
|
|
3
|
+
export declare function isResourceRef(value: unknown): value is ResourceRef;
|
|
4
|
+
//# sourceMappingURL=is-resource-ref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-resource-ref.d.ts","sourceRoot":"","sources":["../../src/authorization/is-resource-ref.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,oGAAoG;AACpG,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAUlE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Strict on purpose: an aggregate that happens to have a `type` and an `id` is not a reference. */
|
|
2
|
+
export function isResourceRef(value) {
|
|
3
|
+
if (typeof value !== 'object' || value === null || Object.keys(value).length !== 2) {
|
|
4
|
+
return false;
|
|
5
|
+
}
|
|
6
|
+
if (!('type' in value) || !('id' in value)) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
return typeof value.type === 'string' && typeof value.id === 'string';
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=is-resource-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-resource-ref.js","sourceRoot":"","sources":["../../src/authorization/is-resource-ref.ts"],"names":[],"mappings":"AAEA,oGAAoG;AACpG,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Actor } from '@ddd-ts-kit/kernel';
|
|
2
|
+
import type { Permission } from '../permissions/permission.js';
|
|
3
|
+
export interface ListRequest {
|
|
4
|
+
readonly actor: Actor;
|
|
5
|
+
readonly permission: Permission;
|
|
6
|
+
readonly resourceType: string;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=list-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-request.d.ts","sourceRoot":"","sources":["../../src/authorization/list-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-request.js","sourceRoot":"","sources":["../../src/authorization/list-request.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"on-decision.d.ts","sourceRoot":"","sources":["../../src/authorization/on-decision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"on-decision.js","sourceRoot":"","sources":["../../src/authorization/on-decision.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-ref.d.ts","sourceRoot":"","sources":["../../src/authorization/resource-ref.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-ref.js","sourceRoot":"","sources":["../../src/authorization/resource-ref.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { UseCaseDeclaration as DeclaredUseCase } from '@ddd-ts-kit/di';
|
|
2
|
+
import { AuthorizationMap } from '../use-cases/authorization-map.js';
|
|
3
|
+
/** A use case that declared nothing is left out, hence refused when it is sent. */
|
|
4
|
+
export declare function authorizationMapOf(declared: readonly DeclaredUseCase[]): AuthorizationMap;
|
|
5
|
+
//# sourceMappingURL=authorization-map-of.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization-map-of.d.ts","sourceRoot":"","sources":["../../src/di/authorization-map-of.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAG5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAIrE,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,gBAAgB,CAEzF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { AuthorizationSetupError } from '../errors/authorization-setup-error.js';
|
|
2
|
+
import { isPermission } from '../permissions/is-permission.js';
|
|
3
|
+
import { AuthorizationMap } from '../use-cases/authorization-map.js';
|
|
4
|
+
import { publicUseCase } from '../use-cases/public-use-case.js';
|
|
5
|
+
/** A use case that declared nothing is left out, hence refused when it is sent. */
|
|
6
|
+
export function authorizationMapOf(declared) {
|
|
7
|
+
return new AuthorizationMap(declared.flatMap(declarationOf));
|
|
8
|
+
}
|
|
9
|
+
function declarationOf(declared) {
|
|
10
|
+
if (declared.access === undefined) {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
if (declared.access === 'public') {
|
|
14
|
+
return [publicUseCase(declared.message)];
|
|
15
|
+
}
|
|
16
|
+
const { permission } = declared;
|
|
17
|
+
if (!isPermission(permission)) {
|
|
18
|
+
throw new AuthorizationSetupError(`Module "${declared.module}" protects ${declared.message.name} with something that is not a permission made by definePermissions.`);
|
|
19
|
+
}
|
|
20
|
+
return [
|
|
21
|
+
{
|
|
22
|
+
access: 'protected',
|
|
23
|
+
type: declared.message,
|
|
24
|
+
permission,
|
|
25
|
+
resourceOf: (message) => declared.resourceOf?.(message),
|
|
26
|
+
contextOf: (message) => declared.contextOf?.(message),
|
|
27
|
+
},
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=authorization-map-of.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization-map-of.js","sourceRoot":"","sources":["../../src/di/authorization-map-of.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,mFAAmF;AACnF,MAAM,UAAU,kBAAkB,CAAC,QAAoC;IACrE,OAAO,IAAI,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,aAAa,CAAC,QAAyB;IAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IAEhC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,uBAAuB,CAC/B,WAAW,QAAQ,CAAC,MAAM,cAAc,QAAQ,CAAC,OAAO,CAAC,IAAI,qEAAqE,CACnI,CAAC;IACJ,CAAC;IAED,OAAO;QACL;YACE,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,QAAQ,CAAC,OAAO;YACtB,UAAU;YACV,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC;YACvD,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC;SACtD;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type ContextModule, type Provided } from '@ddd-ts-kit/di';
|
|
2
|
+
import { Authenticator } from '../authentication/authenticator.js';
|
|
3
|
+
import { Authorizer } from '../authorization/authorizer.js';
|
|
4
|
+
import type { OnDecision } from '../authorization/on-decision.js';
|
|
5
|
+
import type { Policy } from '../policies/policy.js';
|
|
6
|
+
import { type PolicyAccessOptions } from '../policies/policy-access.js';
|
|
7
|
+
export interface AuthorizationModuleOptions {
|
|
8
|
+
/** The model: role based, policy based, relation based, or an adapter of a dedicated service. */
|
|
9
|
+
readonly authorizer: Provided<Authorizer>;
|
|
10
|
+
readonly authenticator?: Provided<Authenticator>;
|
|
11
|
+
/** The instance-level policies of every context, evaluated by `Access` next to the classes declared with `@Policy`. */
|
|
12
|
+
readonly policies?: readonly Policy<unknown>[];
|
|
13
|
+
readonly resourceOf?: PolicyAccessOptions['resourceOf'];
|
|
14
|
+
/** The audit hook, called for every decision of the buses and of `Access`. */
|
|
15
|
+
readonly onDecision?: OnDecision;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Turns the declarations of the modules into enforcement: binds the use case guard the kernel
|
|
19
|
+
* buses run first, so a command or query that declared no access is refused, and a protected
|
|
20
|
+
* one reaches its handler only when the authorizer allows the actor it carries. Starting the
|
|
21
|
+
* application builds the guard, so a declaration that is not a permission fails the start.
|
|
22
|
+
*/
|
|
23
|
+
export declare function authorizationModule(options: AuthorizationModuleOptions): ContextModule;
|
|
24
|
+
//# sourceMappingURL=authorization-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization-module.d.ts","sourceRoot":"","sources":["../../src/di/authorization-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,aAAa,EAElB,KAAK,QAAQ,EAEd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAIlE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAKtF,MAAM,WAAW,0BAA0B;IACzC,iGAAiG;IACjG,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IACjD,uHAAuH;IACvH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IACxD,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,aAAa,CAoBtF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { DeclaredPolicies, UseCaseDeclarations, UseCaseGuard, defineContextModule, } from '@ddd-ts-kit/di';
|
|
2
|
+
import { Clock } from '@ddd-ts-kit/kernel';
|
|
3
|
+
import { Authenticator } from '../authentication/authenticator.js';
|
|
4
|
+
import { Access } from '../authorization/access.js';
|
|
5
|
+
import { Authorizer } from '../authorization/authorizer.js';
|
|
6
|
+
import { AuthorizationSetupError } from '../errors/authorization-setup-error.js';
|
|
7
|
+
import { isPermission } from '../permissions/is-permission.js';
|
|
8
|
+
import { definePolicy } from '../policies/define-policy.js';
|
|
9
|
+
import { PolicyAccess } from '../policies/policy-access.js';
|
|
10
|
+
import { AuthorizationMap } from '../use-cases/authorization-map.js';
|
|
11
|
+
import { authorizationMiddleware } from '../use-cases/authorization-middleware.js';
|
|
12
|
+
import { authorizationMapOf } from './authorization-map-of.js';
|
|
13
|
+
/**
|
|
14
|
+
* Turns the declarations of the modules into enforcement: binds the use case guard the kernel
|
|
15
|
+
* buses run first, so a command or query that declared no access is refused, and a protected
|
|
16
|
+
* one reaches its handler only when the authorizer allows the actor it carries. Starting the
|
|
17
|
+
* application builds the guard, so a declaration that is not a permission fails the start.
|
|
18
|
+
*/
|
|
19
|
+
export function authorizationModule(options) {
|
|
20
|
+
const { authenticator } = options;
|
|
21
|
+
return defineContextModule({
|
|
22
|
+
name: 'authorization',
|
|
23
|
+
register(builder) {
|
|
24
|
+
builder.bind(Authorizer).toFactory(provided(options.authorizer));
|
|
25
|
+
if (authenticator !== undefined) {
|
|
26
|
+
builder.bind(Authenticator).toFactory(provided(authenticator));
|
|
27
|
+
}
|
|
28
|
+
builder.bind(AuthorizationMap).toFactory((resolve) => authorizationMapOf(resolve(UseCaseDeclarations).list));
|
|
29
|
+
builder.bind(Access).toFactory((resolve) => accessOf(options, resolve));
|
|
30
|
+
builder.bind(UseCaseGuard).toFactory((resolve) => guardOf(options, resolve));
|
|
31
|
+
},
|
|
32
|
+
onStart({ resolve }) {
|
|
33
|
+
resolve(UseCaseGuard);
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function provided(value) {
|
|
38
|
+
return isFactory(value) ? value : () => value;
|
|
39
|
+
}
|
|
40
|
+
function isFactory(value) {
|
|
41
|
+
return typeof value === 'function';
|
|
42
|
+
}
|
|
43
|
+
function accessOf(options, resolve) {
|
|
44
|
+
const { resourceOf, onDecision } = options;
|
|
45
|
+
const declared = resolve(DeclaredPolicies).list.map((binding) => policyOf(binding, resolve));
|
|
46
|
+
return new PolicyAccess({
|
|
47
|
+
authorizer: resolve(Authorizer),
|
|
48
|
+
clock: resolve(Clock),
|
|
49
|
+
policies: [...(options.policies ?? []), ...declared],
|
|
50
|
+
...(resourceOf === undefined ? {} : { resourceOf }),
|
|
51
|
+
...(onDecision === undefined ? {} : { onDecision }),
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/** A class a context declared with `@Policy`, built by its binding the first time it is asked. */
|
|
55
|
+
function policyOf(binding, resolve) {
|
|
56
|
+
const { name, permission, module, policy } = binding;
|
|
57
|
+
if (!isPermission(permission)) {
|
|
58
|
+
throw new AuthorizationSetupError(`Module "${module}" declares the policy "${name}" for something that is not a permission made by definePermissions.`);
|
|
59
|
+
}
|
|
60
|
+
return definePolicy({
|
|
61
|
+
name,
|
|
62
|
+
permission,
|
|
63
|
+
appliesTo: (subject) => resolve(policy).appliesTo?.(subject) ?? true,
|
|
64
|
+
allows: (actor, subject, context) => resolve(policy).allows(actor, subject, context),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function guardOf({ onDecision }, resolve) {
|
|
68
|
+
const check = authorizationMiddleware({
|
|
69
|
+
authorizer: resolve(Authorizer),
|
|
70
|
+
map: resolve(AuthorizationMap),
|
|
71
|
+
...(onDecision === undefined ? {} : { onDecision }),
|
|
72
|
+
});
|
|
73
|
+
return { check };
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=authorization-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization-module.js","sourceRoot":"","sources":["../../src/di/authorization-module.ts"],"names":[],"mappings":"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"}
|
package/dist/di.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { Authenticator } from './authentication/authenticator.js';
|
|
2
|
+
export { Access } from './authorization/access.js';
|
|
3
|
+
export { Authorizer } from './authorization/authorizer.js';
|
|
4
|
+
export { authorizationMapOf } from './di/authorization-map-of.js';
|
|
5
|
+
export { authorizationModule, type AuthorizationModuleOptions } from './di/authorization-module.js';
|
|
6
|
+
export { AuthorizationMap } from './use-cases/authorization-map.js';
|
|
7
|
+
//# sourceMappingURL=di.d.ts.map
|
package/dist/di.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"di.d.ts","sourceRoot":"","sources":["../src/di.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC"}
|
package/dist/di.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { Authenticator } from './authentication/authenticator.js';
|
|
2
|
+
export { Access } from './authorization/access.js';
|
|
3
|
+
export { Authorizer } from './authorization/authorizer.js';
|
|
4
|
+
export { authorizationMapOf } from './di/authorization-map-of.js';
|
|
5
|
+
export { authorizationModule } from './di/authorization-module.js';
|
|
6
|
+
export { AuthorizationMap } from './use-cases/authorization-map.js';
|
|
7
|
+
//# sourceMappingURL=di.js.map
|
package/dist/di.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"di.js","sourceRoot":"","sources":["../src/di.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAmC,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization-setup-error.d.ts","sourceRoot":"","sources":["../../src/errors/authorization-setup-error.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Permissions, roles, policies or declarations that contradict themselves, found when they are defined. */
|
|
2
|
+
export class AuthorizationSetupError extends Error {
|
|
3
|
+
constructor(message) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.name = 'AuthorizationSetupError';
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=authorization-setup-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization-setup-error.js","sourceRoot":"","sources":["../../src/errors/authorization-setup-error.ts"],"names":[],"mappings":"AAAA,4GAA4G;AAC5G,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DomainError } from '@ddd-ts-kit/kernel';
|
|
2
|
+
/**
|
|
3
|
+
* The code `ForbiddenError` of @ddd-ts-kit/http carries, so its default error mapping answers
|
|
4
|
+
* 403 for the error below with no extra wiring.
|
|
5
|
+
*/
|
|
6
|
+
export declare const FORBIDDEN = "FORBIDDEN";
|
|
7
|
+
/** The actor is known and may not do this. `reason` is a stable machine code, never data. */
|
|
8
|
+
export declare class ForbiddenError extends DomainError {
|
|
9
|
+
readonly permissionId: string;
|
|
10
|
+
readonly reason: string;
|
|
11
|
+
readonly code = "FORBIDDEN";
|
|
12
|
+
constructor(permissionId: string, reason: string);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=forbidden-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forbidden-error.d.ts","sourceRoot":"","sources":["../../src/errors/forbidden-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,6FAA6F;AAC7F,qBAAa,cAAe,SAAQ,WAAW;IAI3C,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM;IAJzB,QAAQ,CAAC,IAAI,eAAa;IAE1B,YACW,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EAGxB;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DomainError } from '@ddd-ts-kit/kernel';
|
|
2
|
+
/**
|
|
3
|
+
* The code `ForbiddenError` of @ddd-ts-kit/http carries, so its default error mapping answers
|
|
4
|
+
* 403 for the error below with no extra wiring.
|
|
5
|
+
*/
|
|
6
|
+
export const FORBIDDEN = 'FORBIDDEN';
|
|
7
|
+
/** The actor is known and may not do this. `reason` is a stable machine code, never data. */
|
|
8
|
+
export class ForbiddenError extends DomainError {
|
|
9
|
+
permissionId;
|
|
10
|
+
reason;
|
|
11
|
+
code = FORBIDDEN;
|
|
12
|
+
constructor(permissionId, reason) {
|
|
13
|
+
super(`Permission ${permissionId} is not granted`);
|
|
14
|
+
this.permissionId = permissionId;
|
|
15
|
+
this.reason = reason;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=forbidden-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forbidden-error.js","sourceRoot":"","sources":["../../src/errors/forbidden-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAErC,6FAA6F;AAC7F,MAAM,OAAO,cAAe,SAAQ,WAAW;IAIlC,YAAY;IACZ,MAAM;IAJR,IAAI,GAAG,SAAS,CAAC;IAE1B,YACW,YAAoB,EACpB,MAAc;QAEvB,KAAK,CAAC,cAAc,YAAY,iBAAiB,CAAC,CAAC;4BAH1C,YAAY;sBACZ,MAAM;IAGjB,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DomainError } from '@ddd-ts-kit/kernel';
|
|
2
|
+
/** A credential was presented and it is not acceptable. `reason` is a stable machine code. */
|
|
3
|
+
export declare class InvalidCredentialError extends DomainError {
|
|
4
|
+
readonly reason: string;
|
|
5
|
+
readonly code = "UNAUTHORIZED";
|
|
6
|
+
constructor(reason: string);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=invalid-credential-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-credential-error.d.ts","sourceRoot":"","sources":["../../src/errors/invalid-credential-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,8FAA8F;AAC9F,qBAAa,sBAAuB,SAAQ,WAAW;IAGzC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAFnC,QAAQ,CAAC,IAAI,kBAAgB;IAE7B,YAAqB,MAAM,EAAE,MAAM,EAElC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DomainError } from '@ddd-ts-kit/kernel';
|
|
2
|
+
import { UNAUTHORIZED } from './unauthenticated-error.js';
|
|
3
|
+
/** A credential was presented and it is not acceptable. `reason` is a stable machine code. */
|
|
4
|
+
export class InvalidCredentialError extends DomainError {
|
|
5
|
+
reason;
|
|
6
|
+
code = UNAUTHORIZED;
|
|
7
|
+
constructor(reason) {
|
|
8
|
+
super('The credential is not valid');
|
|
9
|
+
this.reason = reason;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=invalid-credential-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-credential-error.js","sourceRoot":"","sources":["../../src/errors/invalid-credential-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,8FAA8F;AAC9F,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IAGhC,MAAM;IAFlB,IAAI,GAAG,YAAY,CAAC;IAE7B,YAAqB,MAAc;QACjC,KAAK,CAAC,6BAA6B,CAAC,CAAC;sBADlB,MAAM;IAE3B,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listing-not-supported-error.d.ts","sourceRoot":"","sources":["../../src/errors/listing-not-supported-error.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,cAGC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** The configured authorizer cannot enumerate what an actor may access. */
|
|
2
|
+
export class ListingNotSupportedError extends Error {
|
|
3
|
+
constructor() {
|
|
4
|
+
super('The authorizer does not implement listAccessible: it cannot turn a permission into an access scope');
|
|
5
|
+
this.name = 'ListingNotSupportedError';
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=listing-not-supported-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listing-not-supported-error.js","sourceRoot":"","sources":["../../src/errors/listing-not-supported-error.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD;QACE,KAAK,CAAC,oGAAoG,CAAC,CAAC;QAC5G,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { MessageInfo } from '@ddd-ts-kit/kernel';
|
|
2
|
+
/** A protected command or query was sent without its actor. A programming error, not a refusal. */
|
|
3
|
+
export declare class MissingActorError extends Error {
|
|
4
|
+
constructor(info: MessageInfo);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=missing-actor-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"missing-actor-error.d.ts","sourceRoot":"","sources":["../../src/errors/missing-actor-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,mGAAmG;AACnG,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,IAAI,EAAE,WAAW,EAM5B;CACF"}
|