@zudojs/permissions 1.4.3 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ability/ability.core.d.ts +0 -1
- package/dist/ability/ability.core.js +0 -1
- package/dist/ability/index.d.ts +0 -1
- package/dist/ability/index.js +0 -1
- package/dist/actor/actor.core.d.ts +0 -1
- package/dist/actor/actor.core.js +0 -1
- package/dist/actor/index.d.ts +0 -1
- package/dist/actor/index.js +0 -1
- package/dist/cache/cache.actorDigest.d.ts +0 -1
- package/dist/cache/cache.actorDigest.js +0 -1
- package/dist/cache/cache.core.d.ts +0 -1
- package/dist/cache/cache.core.js +0 -1
- package/dist/cache/index.d.ts +0 -1
- package/dist/cache/index.js +0 -1
- package/dist/conditions/conditions.core.d.ts +0 -1
- package/dist/conditions/conditions.core.js +0 -1
- package/dist/conditions/index.d.ts +0 -1
- package/dist/conditions/index.js +0 -1
- package/dist/evaluator/authorizationEngine.d.ts +0 -1
- package/dist/evaluator/authorizationEngine.js +0 -1
- package/dist/evaluator/engineSupport/authorizationEngine.validation.d.ts +0 -1
- package/dist/evaluator/engineSupport/authorizationEngine.validation.js +0 -1
- package/dist/evaluator/engineSupport/evaluator.cacheKey.d.ts +0 -1
- package/dist/evaluator/engineSupport/evaluator.cacheKey.js +0 -1
- package/dist/evaluator/engineSupport/evaluator.observed.d.ts +0 -1
- package/dist/evaluator/engineSupport/evaluator.observed.js +0 -1
- package/dist/evaluator/engineSupport/index.d.ts +0 -1
- package/dist/evaluator/engineSupport/index.js +0 -1
- package/dist/evaluator/evaluator.core.d.ts +0 -1
- package/dist/evaluator/evaluator.core.js +0 -1
- package/dist/evaluator/evaluator.explain.d.ts +0 -1
- package/dist/evaluator/evaluator.explain.js +0 -1
- package/dist/evaluator/evaluator.pipeline.d.ts +0 -1
- package/dist/evaluator/evaluator.pipeline.js +0 -1
- package/dist/evaluator/index.d.ts +0 -1
- package/dist/evaluator/index.js +0 -1
- package/dist/http/httpHelpers.d.ts +0 -1
- package/dist/http/httpHelpers.js +0 -1
- package/dist/http/httpMiddleware.core.d.ts +0 -1
- package/dist/http/httpMiddleware.core.js +0 -1
- package/dist/http/httpResource.helper.d.ts +0 -1
- package/dist/http/httpResource.helper.js +0 -1
- package/dist/http/httpTypes.d.ts +0 -1
- package/dist/http/httpTypes.js +0 -1
- package/dist/http/index.d.ts +0 -1
- package/dist/http/index.js +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/observability/index.d.ts +0 -1
- package/dist/observability/index.js +0 -1
- package/dist/observability/observability.core.d.ts +0 -1
- package/dist/observability/observability.core.js +0 -1
- package/dist/permission/index.d.ts +1 -2
- package/dist/permission/index.js +1 -2
- package/dist/permission/permission.core.d.ts +11 -3
- package/dist/permission/permission.core.js +14 -1
- package/dist/permission/permissionRegistry.d.ts +0 -1
- package/dist/permission/permissionRegistry.js +0 -1
- package/dist/permissionErrors/index.d.ts +0 -1
- package/dist/permissionErrors/index.js +0 -1
- package/dist/permissionErrors/permissionError.access.d.ts +0 -1
- package/dist/permissionErrors/permissionError.access.js +0 -1
- package/dist/permissionErrors/permissionError.base.d.ts +0 -1
- package/dist/permissionErrors/permissionError.base.js +0 -1
- package/dist/permissionErrors/permissionError.types.d.ts +0 -1
- package/dist/permissionErrors/permissionError.types.js +0 -1
- package/dist/permissionErrors/permissionError.validation.d.ts +0 -1
- package/dist/permissionErrors/permissionError.validation.js +0 -1
- package/dist/permissionTypes/index.d.ts +1 -2
- package/dist/permissionTypes/index.js +0 -1
- package/dist/permissionTypes/permissionActor.d.ts +17 -2
- package/dist/permissionTypes/permissionActor.js +0 -1
- package/dist/permissionTypes/policyTypes.d.ts +0 -1
- package/dist/permissionTypes/policyTypes.js +0 -1
- package/dist/permissionTypes/ruleTypes.d.ts +0 -1
- package/dist/permissionTypes/ruleTypes.js +0 -1
- package/dist/policy/index.d.ts +0 -1
- package/dist/policy/index.js +0 -1
- package/dist/policy/policyEffect.core.d.ts +0 -1
- package/dist/policy/policyEffect.core.js +0 -1
- package/dist/policy/policyRegistry.d.ts +0 -1
- package/dist/policy/policyRegistry.js +0 -1
- package/dist/resolvers/index.d.ts +0 -1
- package/dist/resolvers/index.js +0 -1
- package/dist/resolvers/resolvers.core.d.ts +0 -1
- package/dist/resolvers/resolvers.core.js +0 -1
- package/dist/role/index.d.ts +0 -1
- package/dist/role/index.js +0 -1
- package/dist/role/roleHierarchy.d.ts +0 -1
- package/dist/role/roleHierarchy.js +0 -1
- package/dist/role/roleRegistry.d.ts +0 -1
- package/dist/role/roleRegistry.js +0 -1
- package/dist/rule/index.d.ts +0 -1
- package/dist/rule/index.js +0 -1
- package/dist/rule/rule.core.d.ts +0 -1
- package/dist/rule/rule.core.js +0 -1
- package/dist/rule/rule.pattern.d.ts +0 -1
- package/dist/rule/rule.pattern.js +0 -1
- package/dist/rule/ruleCompiler.d.ts +0 -1
- package/dist/rule/ruleCompiler.js +0 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.js +0 -1
- package/dist/utils/utils.helper.d.ts +0 -1
- package/dist/utils/utils.helper.js +0 -1
- package/dist/utils/utils.notifier.d.ts +0 -1
- package/dist/utils/utils.notifier.js +0 -1
- package/package.json +3 -3
package/dist/ability/index.d.ts
CHANGED
package/dist/ability/index.js
CHANGED
package/dist/actor/actor.core.js
CHANGED
package/dist/actor/index.d.ts
CHANGED
package/dist/actor/index.js
CHANGED
package/dist/cache/cache.core.js
CHANGED
package/dist/cache/index.d.ts
CHANGED
package/dist/cache/index.js
CHANGED
|
@@ -53,4 +53,3 @@ export declare function tenantIsolation(actorTenantField?: string, resourceTenan
|
|
|
53
53
|
export declare function metadataEquals(key: string, expected: unknown): PermissionConditionFn;
|
|
54
54
|
/** Check that the resource field matches the expected value. */
|
|
55
55
|
export declare function resourceEquals(field: string, expected: unknown): PermissionConditionFn;
|
|
56
|
-
//# sourceMappingURL=conditions.core.d.ts.map
|
package/dist/conditions/index.js
CHANGED
|
@@ -34,4 +34,3 @@ export declare function validatePolicy(policy: PermissionPolicyDefinition): void
|
|
|
34
34
|
export declare function validateRole(role: RoleDefinition): void;
|
|
35
35
|
/** Validate a role list, rejecting duplicates as well. */
|
|
36
36
|
export declare function validateRoles(roles: readonly RoleDefinition[]): void;
|
|
37
|
-
//# sourceMappingURL=authorizationEngine.validation.d.ts.map
|
|
@@ -25,4 +25,3 @@ import type { EvaluatorOptions } from "../evaluator.pipeline.js";
|
|
|
25
25
|
* change.
|
|
26
26
|
*/
|
|
27
27
|
export declare function decisionCacheKey(actor: PermissionActor, permissionStr: string, resource: unknown, options: EvaluatorOptions, authOptions?: AuthorizationOptions): string | undefined;
|
|
28
|
-
//# sourceMappingURL=evaluator.cacheKey.d.ts.map
|
|
@@ -15,4 +15,3 @@ export declare function resourceTypeOf(resource: unknown): string | undefined;
|
|
|
15
15
|
* cache entries that later checks are served from.
|
|
16
16
|
*/
|
|
17
17
|
export declare function observed<T>(emitter: PermissionEventEmitter | undefined, actor: PermissionActor, permission: string, resource: unknown, run: () => Promise<T>, decisionOf: (result: T) => PermissionDecision): Promise<T>;
|
|
18
|
-
//# sourceMappingURL=evaluator.observed.d.ts.map
|
|
@@ -7,4 +7,3 @@
|
|
|
7
7
|
export { invalidRulePattern, validatePolicy, validateRole, validateRoles, validateRule, } from "./authorizationEngine.validation.js";
|
|
8
8
|
export { decisionCacheKey } from "./evaluator.cacheKey.js";
|
|
9
9
|
export { observed, resourceTypeOf } from "./evaluator.observed.js";
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -7,4 +7,3 @@
|
|
|
7
7
|
export { invalidRulePattern, validatePolicy, validateRole, validateRoles, validateRule, } from "./authorizationEngine.validation.js";
|
|
8
8
|
export { decisionCacheKey } from "./evaluator.cacheKey.js";
|
|
9
9
|
export { observed, resourceTypeOf } from "./evaluator.observed.js";
|
|
10
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -32,4 +32,3 @@ export declare function evaluate(actor: PermissionActor, permissionStr: string,
|
|
|
32
32
|
* other than the one that was made.
|
|
33
33
|
*/
|
|
34
34
|
export declare function evaluateWithTrace(actor: PermissionActor, permissionStr: string, resource: unknown, options: EvaluatorOptions, authOptions?: AuthorizationOptions): Promise<ExplainResult>;
|
|
35
|
-
//# sourceMappingURL=evaluator.core.d.ts.map
|
|
@@ -12,4 +12,3 @@ import type { EvaluatorOptions } from "./evaluator.pipeline.js";
|
|
|
12
12
|
* Evaluate with a full explain trace.
|
|
13
13
|
*/
|
|
14
14
|
export declare function evaluateWithExplain(actor: PermissionActor, permissionStr: string, resource: unknown, options: EvaluatorOptions, authOptions?: AuthorizationOptions): Promise<ExplainResult>;
|
|
15
|
-
//# sourceMappingURL=evaluator.explain.d.ts.map
|
|
@@ -13,4 +13,3 @@ import { evaluateWithTrace } from "./evaluator.core.js";
|
|
|
13
13
|
export async function evaluateWithExplain(actor, permissionStr, resource, options, authOptions) {
|
|
14
14
|
return evaluateWithTrace(actor, permissionStr, resource, options, authOptions);
|
|
15
15
|
}
|
|
16
|
-
//# sourceMappingURL=evaluator.explain.js.map
|
|
@@ -112,4 +112,3 @@ export declare function evaluatePolicies(context: PermissionContext, policies: r
|
|
|
112
112
|
* Pass `undefined` to disable.
|
|
113
113
|
*/
|
|
114
114
|
export declare function withTimeout<T>(promise: Promise<T>, timeoutMs: number | undefined, policyName?: string): Promise<T>;
|
|
115
|
-
//# sourceMappingURL=evaluator.pipeline.d.ts.map
|
|
@@ -7,4 +7,3 @@ export { evaluate, evaluateWithTrace } from "./evaluator.core.js";
|
|
|
7
7
|
export { evaluateWithExplain } from "./evaluator.explain.js";
|
|
8
8
|
export { resolveActorGrants, resolveActorPermissions, evaluatePolicies, selectPolicies, withTimeout, toMetadataMap, assertNotAborted, type EvaluatorOptions, type ResolvedGrants, type PolicyOutcome, } from "./evaluator.pipeline.js";
|
|
9
9
|
export { createPermissionEngine, type PermissionEngine, type PermissionEngineOptions, } from "./authorizationEngine.js";
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/evaluator/index.js
CHANGED
|
@@ -7,4 +7,3 @@ export { evaluate, evaluateWithTrace } from "./evaluator.core.js";
|
|
|
7
7
|
export { evaluateWithExplain } from "./evaluator.explain.js";
|
|
8
8
|
export { resolveActorGrants, resolveActorPermissions, evaluatePolicies, selectPolicies, withTimeout, toMetadataMap, assertNotAborted, } from "./evaluator.pipeline.js";
|
|
9
9
|
export { createPermissionEngine, } from "./authorizationEngine.js";
|
|
10
|
-
//# sourceMappingURL=index.js.map
|
package/dist/http/httpHelpers.js
CHANGED
|
@@ -98,4 +98,3 @@ export interface RequirePermissionsMiddlewareOptions extends AuthorizeMiddleware
|
|
|
98
98
|
* permission list denies in either mode.
|
|
99
99
|
*/
|
|
100
100
|
export declare function createRequirePermissionsMiddleware(engine: PermissionEngine, permissions: readonly string[], options?: RequirePermissionsMiddlewareOptions): HttpMiddleware;
|
|
101
|
-
//# sourceMappingURL=httpMiddleware.core.d.ts.map
|
|
@@ -70,4 +70,3 @@ export interface MissingResourceRefusal {
|
|
|
70
70
|
* @returns The refusal to send, or `undefined` to evaluate as usual.
|
|
71
71
|
*/
|
|
72
72
|
export declare function refuseMissingResource(extract: ResourceExtractor | undefined, resource: unknown, options: MissingResourceOptions & DeniedResponseOptions): MissingResourceRefusal | undefined;
|
|
73
|
-
//# sourceMappingURL=httpResource.helper.d.ts.map
|
package/dist/http/httpTypes.d.ts
CHANGED
package/dist/http/httpTypes.js
CHANGED
package/dist/http/index.d.ts
CHANGED
|
@@ -14,4 +14,3 @@ export { createActorMiddleware, createRequirePermissionMiddleware, authorize, cr
|
|
|
14
14
|
export { createForbiddenResponse, createUnauthorizedResponse, createJsonResponse, createNotFoundResponse, type DeniedResponseOptions, type NotFoundResponseOptions, type PermissionHttpResponse, } from "./httpHelpers.js";
|
|
15
15
|
export { loadResource, refuseMissingResource, RESOURCE_ERROR_DECISION, RESOURCE_NOT_FOUND_DECISION, type MissingResourceMode, type MissingResourceOptions, type MissingResourceRefusal, type ResourceExtractor, type ResourceOutcome, } from "./httpResource.helper.js";
|
|
16
16
|
export type { HttpRequestBag, HttpMiddleware, HttpMiddlewareOutcome, HttpMiddlewareContext, HttpRequestContext, HttpResponseContext, HttpMiddlewareState, } from "./httpTypes.js";
|
|
17
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/http/index.js
CHANGED
|
@@ -13,4 +13,3 @@
|
|
|
13
13
|
export { createActorMiddleware, createRequirePermissionMiddleware, authorize, createRequirePermissionsMiddleware, ACTOR_STATE_KEY, DECISION_STATE_KEY, DECISIONS_STATE_KEY, } from "./httpMiddleware.core.js";
|
|
14
14
|
export { createForbiddenResponse, createUnauthorizedResponse, createJsonResponse, createNotFoundResponse, } from "./httpHelpers.js";
|
|
15
15
|
export { loadResource, refuseMissingResource, RESOURCE_ERROR_DECISION, RESOURCE_NOT_FOUND_DECISION, } from "./httpResource.helper.js";
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -4,4 +4,3 @@
|
|
|
4
4
|
* @module observability
|
|
5
5
|
*/
|
|
6
6
|
export { createPermissionEventEmitter, withObservability, type PermissionCheckEvent, type PermissionEventHandler, type PermissionEventEmitter, type PermissionEventEmitterOptions, } from "./observability.core.js";
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -58,4 +58,3 @@ export declare function createPermissionEventEmitter(options?: PermissionEventEm
|
|
|
58
58
|
* instruments every check the engine makes.
|
|
59
59
|
*/
|
|
60
60
|
export declare function withObservability<TArgs extends readonly unknown[]>(emitter: PermissionEventEmitter, fn: (...args: TArgs) => Promise<PermissionDecision>): (...args: TArgs) => Promise<PermissionDecision>;
|
|
61
|
-
//# sourceMappingURL=observability.core.d.ts.map
|
|
@@ -3,6 +3,5 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module permission
|
|
5
5
|
*/
|
|
6
|
-
export { parsePermission, parsePermissionSafe, isValidPermission, matches, matchesPermission, permissionsOverlap, formatPermission, } from "./permission.core.js";
|
|
6
|
+
export { parsePermission, parsePermissionSafe, isValidPermission, toPermissionString, matches, matchesPermission, permissionsOverlap, formatPermission, } from "./permission.core.js";
|
|
7
7
|
export { createPermissionRegistry, type PermissionRegistry, type PermissionRegistryOptions, type RegisteredPermission, } from "./permissionRegistry.js";
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/permission/index.js
CHANGED
|
@@ -3,6 +3,5 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module permission
|
|
5
5
|
*/
|
|
6
|
-
export { parsePermission, parsePermissionSafe, isValidPermission, matches, matchesPermission, permissionsOverlap, formatPermission, } from "./permission.core.js";
|
|
6
|
+
export { parsePermission, parsePermissionSafe, isValidPermission, toPermissionString, matches, matchesPermission, permissionsOverlap, formatPermission, } from "./permission.core.js";
|
|
7
7
|
export { createPermissionRegistry, } from "./permissionRegistry.js";
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module permission/permission
|
|
5
5
|
*/
|
|
6
|
-
import type { Permission } from "../permissionTypes/index.js";
|
|
6
|
+
import type { Permission, TypedPermissionString } from "../permissionTypes/index.js";
|
|
7
7
|
/**
|
|
8
8
|
* Parse a permission string into a structured Permission.
|
|
9
9
|
*
|
|
@@ -14,8 +14,17 @@ import type { Permission } from "../permissionTypes/index.js";
|
|
|
14
14
|
export declare function parsePermission(permission: string): Permission;
|
|
15
15
|
/**
|
|
16
16
|
* Check if a permission string is valid without throwing.
|
|
17
|
+
*
|
|
18
|
+
* Narrows to {@link TypedPermissionString} on success.
|
|
19
|
+
*/
|
|
20
|
+
export declare function isValidPermission(permission: string): permission is TypedPermissionString;
|
|
21
|
+
/**
|
|
22
|
+
* Validate a runtime string and return it typed as a
|
|
23
|
+
* {@link TypedPermissionString}.
|
|
24
|
+
*
|
|
25
|
+
* @throws InvalidPermissionError if the string is not a valid permission
|
|
17
26
|
*/
|
|
18
|
-
export declare function
|
|
27
|
+
export declare function toPermissionString(permission: string): TypedPermissionString;
|
|
19
28
|
/**
|
|
20
29
|
* Check if a permission pattern matches a target permission.
|
|
21
30
|
*
|
|
@@ -50,4 +59,3 @@ export declare function permissionsOverlap(a: string, b: string): boolean;
|
|
|
50
59
|
export declare function parsePermissionSafe(permission: string): Permission | null;
|
|
51
60
|
/** Build a permission string from a resource and an action. */
|
|
52
61
|
export declare function formatPermission(resource: string, action: string): string;
|
|
53
|
-
//# sourceMappingURL=permission.core.d.ts.map
|
|
@@ -30,10 +30,24 @@ export function parsePermission(permission) {
|
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* Check if a permission string is valid without throwing.
|
|
33
|
+
*
|
|
34
|
+
* Narrows to {@link TypedPermissionString} on success.
|
|
33
35
|
*/
|
|
34
36
|
export function isValidPermission(permission) {
|
|
35
37
|
return PERMISSION_REGEX.test(permission);
|
|
36
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Validate a runtime string and return it typed as a
|
|
41
|
+
* {@link TypedPermissionString}.
|
|
42
|
+
*
|
|
43
|
+
* @throws InvalidPermissionError if the string is not a valid permission
|
|
44
|
+
*/
|
|
45
|
+
export function toPermissionString(permission) {
|
|
46
|
+
if (!isValidPermission(permission)) {
|
|
47
|
+
throw new InvalidPermissionError(permission);
|
|
48
|
+
}
|
|
49
|
+
return permission;
|
|
50
|
+
}
|
|
37
51
|
/**
|
|
38
52
|
* Check if a permission pattern matches a target permission.
|
|
39
53
|
*
|
|
@@ -96,4 +110,3 @@ export function parsePermissionSafe(permission) {
|
|
|
96
110
|
export function formatPermission(resource, action) {
|
|
97
111
|
return `${resource}:${action}`;
|
|
98
112
|
}
|
|
99
|
-
//# sourceMappingURL=permission.core.js.map
|
|
@@ -5,4 +5,3 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { PermissionError } from "./permissionError.base.js";
|
|
7
7
|
export { PermissionDeniedError, PermissionNotFoundError, DuplicatePermissionError, RoleNotFoundError, DuplicateRoleError, DuplicatePolicyError, InvalidPermissionError, InvalidRoleError, CircularRoleInheritanceError, PolicyError, PolicyTimeoutError, PermissionResolverError, AuthorizationAbortedError, } from "./permissionError.types.js";
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -5,4 +5,3 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { PermissionError } from "./permissionError.base.js";
|
|
7
7
|
export { PermissionDeniedError, PermissionNotFoundError, DuplicatePermissionError, RoleNotFoundError, DuplicateRoleError, DuplicatePolicyError, InvalidPermissionError, InvalidRoleError, CircularRoleInheritanceError, PolicyError, PolicyTimeoutError, PermissionResolverError, AuthorizationAbortedError, } from "./permissionError.types.js";
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -3,4 +3,3 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { PermissionDeniedError, PermissionNotFoundError, DuplicatePermissionError, RoleNotFoundError, DuplicateRoleError, DuplicatePolicyError, } from "./permissionError.access.js";
|
|
5
5
|
export { InvalidPermissionError, InvalidRoleError, CircularRoleInheritanceError, PolicyError, PolicyTimeoutError, PermissionResolverError, AuthorizationAbortedError, } from "./permissionError.validation.js";
|
|
6
|
-
//# sourceMappingURL=permissionError.types.d.ts.map
|
|
@@ -3,4 +3,3 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { PermissionDeniedError, PermissionNotFoundError, DuplicatePermissionError, RoleNotFoundError, DuplicateRoleError, DuplicatePolicyError, } from "./permissionError.access.js";
|
|
5
5
|
export { InvalidPermissionError, InvalidRoleError, CircularRoleInheritanceError, PolicyError, PolicyTimeoutError, PermissionResolverError, AuthorizationAbortedError, } from "./permissionError.validation.js";
|
|
6
|
-
//# sourceMappingURL=permissionError.types.js.map
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module permissionTypes
|
|
5
5
|
*/
|
|
6
|
-
export { type PermissionActor, type Permission, type PermissionString, } from "./permissionActor.js";
|
|
6
|
+
export { type PermissionActor, type Permission, type PermissionString, type TypedPermissionString, } from "./permissionActor.js";
|
|
7
7
|
export { type RuleEffect, type RuleCombiningAlgorithm, type RuleEvaluation, type PermissionRule, type PermissionConditionFn, type PermissionContext, type PermissionDecision, } from "./ruleTypes.js";
|
|
8
8
|
export { type RoleDefinition, type PermissionResolver, type RoleResolver, type PermissionCache, type PermissionPolicyDefinition, type PolicyEffect, type ExplainStep, type ExplainResult, type AuthorizationOptions, } from "./policyTypes.js";
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -23,6 +23,21 @@ export interface Permission {
|
|
|
23
23
|
/** Action being performed (e.g. "read", "update", "*"). */
|
|
24
24
|
readonly action: string;
|
|
25
25
|
}
|
|
26
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* Permission string format: "resource:action" or wildcards like "post:*",
|
|
28
|
+
* "*:*".
|
|
29
|
+
*
|
|
30
|
+
* Kept as a plain `string` so existing call sites (values read from
|
|
31
|
+
* configuration, databases or tokens) keep compiling. Use
|
|
32
|
+
* {@link TypedPermissionString} where you want the compiler to insist on the
|
|
33
|
+
* `resource:action` shape, and `toPermissionString()` / `isValidPermission()`
|
|
34
|
+
* to move a runtime string into it.
|
|
35
|
+
*/
|
|
27
36
|
export type PermissionString = string;
|
|
28
|
-
|
|
37
|
+
/**
|
|
38
|
+
* A permission string whose `resource:action` shape is checked by the
|
|
39
|
+
* compiler: `"post:read"` and `"billing.*:refund"` are accepted,
|
|
40
|
+
* `"postread"` is a type error. The full grammar (segment alphabet, no
|
|
41
|
+
* partial wildcards) is still enforced at runtime by `parsePermission()`.
|
|
42
|
+
*/
|
|
43
|
+
export type TypedPermissionString = `${string}:${string}`;
|
package/dist/policy/index.d.ts
CHANGED
package/dist/policy/index.js
CHANGED
|
@@ -39,4 +39,3 @@ export type ResolvedPolicyMode = "constrain" | "grant" | "legacyGrant";
|
|
|
39
39
|
* @param defaultEffect - The engine's `defaultPolicyEffect`.
|
|
40
40
|
*/
|
|
41
41
|
export declare function resolvePolicyMode(policy: PermissionPolicyDefinition, defaultEffect?: PolicyEffect): ResolvedPolicyMode;
|
|
42
|
-
//# sourceMappingURL=policyEffect.core.d.ts.map
|
package/dist/resolvers/index.js
CHANGED
|
@@ -20,4 +20,3 @@ export declare function createStaticPermissionResolver(rules: readonly Permissio
|
|
|
20
20
|
* Static role resolver — always returns the same roles.
|
|
21
21
|
*/
|
|
22
22
|
export declare function createStaticRoleResolver(roles: readonly string[]): RoleResolver;
|
|
23
|
-
//# sourceMappingURL=resolvers.core.d.ts.map
|
package/dist/role/index.d.ts
CHANGED
|
@@ -5,4 +5,3 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { createRoleRegistry, type RoleRegistry, type RoleRegistryOptions, } from "./roleRegistry.js";
|
|
7
7
|
export { resolveRolePermissions, memoizeRoleLookup, type RoleResolution, type RoleResolutionOptions, } from "./roleHierarchy.js";
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/role/index.js
CHANGED
|
@@ -51,4 +51,3 @@ export declare function freezeRoleDefinition(definition: RoleDefinition): RoleDe
|
|
|
51
51
|
* Pass it straight to `createPermissionEngine({ roles: registry })`.
|
|
52
52
|
*/
|
|
53
53
|
export declare function createRoleRegistry(options?: RoleRegistryOptions): RoleRegistry;
|
|
54
|
-
//# sourceMappingURL=roleRegistry.d.ts.map
|
package/dist/rule/index.d.ts
CHANGED
package/dist/rule/index.js
CHANGED
package/dist/rule/rule.core.d.ts
CHANGED
|
@@ -42,4 +42,3 @@ export declare function evaluateRules(rules: readonly PermissionRule[], target:
|
|
|
42
42
|
export declare function evaluateRulesSync(rules: readonly PermissionRule[], target: Permission, options?: {
|
|
43
43
|
readonly algorithm?: RuleCombiningAlgorithm;
|
|
44
44
|
}): RuleEvaluation;
|
|
45
|
-
//# sourceMappingURL=rule.core.d.ts.map
|
package/dist/rule/rule.core.js
CHANGED
|
@@ -41,4 +41,3 @@ export declare function ruleOverlaps(rule: PermissionRule, target: Permission):
|
|
|
41
41
|
export declare function ruleBearsOn(rule: PermissionRule, target: Permission): boolean;
|
|
42
42
|
/** Whether a permission names more than one concrete permission. */
|
|
43
43
|
export declare function isWildcardTarget(target: Permission): boolean;
|
|
44
|
-
//# sourceMappingURL=rule.pattern.d.ts.map
|
|
@@ -33,4 +33,3 @@ export declare function compileRules(rules: readonly PermissionRule[]): RuleInde
|
|
|
33
33
|
* count twice when the decision is combined.
|
|
34
34
|
*/
|
|
35
35
|
export declare function findMatchingRules(index: RuleIndex, target: Permission): readonly PermissionRule[];
|
|
36
|
-
//# sourceMappingURL=ruleCompiler.d.ts.map
|
package/dist/utils/index.d.ts
CHANGED
package/dist/utils/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zudojs/permissions",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Generic authorization engine with RBAC, ABAC, resource authorization, wildcards, role hierarchy, policies, and abilities.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"!dist/.tsbuildinfo"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@zudojs/errors": "1.
|
|
30
|
-
"@zudojs/middleware": "1.1.
|
|
29
|
+
"@zudojs/errors": "1.4.0",
|
|
30
|
+
"@zudojs/middleware": "1.1.3"
|
|
31
31
|
},
|
|
32
32
|
"engines": {
|
|
33
33
|
"node": ">=24.0.0"
|