@dudousxd/nestjs-authz 0.8.1 → 0.9.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/CHANGELOG.md +115 -0
- package/README.md +279 -0
- package/dist/authz.guard.d.ts +48 -0
- package/dist/authz.guard.d.ts.map +1 -0
- package/dist/authz.guard.js +144 -0
- package/dist/authz.guard.js.map +1 -0
- package/dist/can-endpoint.controller.d.ts +0 -19
- package/dist/can-endpoint.controller.d.ts.map +1 -1
- package/dist/can-endpoint.controller.js +18 -9
- package/dist/can-endpoint.controller.js.map +1 -1
- package/dist/decision-provider.d.ts +25 -16
- package/dist/decision-provider.d.ts.map +1 -1
- package/dist/decision-provider.js +11 -1
- package/dist/decision-provider.js.map +1 -1
- package/dist/decisions.d.ts +24 -0
- package/dist/decisions.d.ts.map +1 -0
- package/dist/decisions.js +87 -0
- package/dist/decisions.js.map +1 -0
- package/dist/decorator/roles.decorator.d.ts +6 -12
- package/dist/decorator/roles.decorator.d.ts.map +1 -1
- package/dist/decorator/roles.decorator.js +13 -15
- package/dist/decorator/roles.decorator.js.map +1 -1
- package/dist/diagnostics.d.ts +15 -5
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +3 -1
- package/dist/diagnostics.js.map +1 -1
- package/dist/errors/exceptions.d.ts +0 -8
- package/dist/errors/exceptions.d.ts.map +1 -1
- package/dist/errors/exceptions.js +0 -14
- package/dist/errors/exceptions.js.map +1 -1
- package/dist/gate.d.ts +83 -218
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +209 -611
- package/dist/gate.js.map +1 -1
- package/dist/helpers.d.ts +46 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +89 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +28 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -13
- package/dist/index.js.map +1 -1
- package/dist/links.d.ts +39 -0
- package/dist/links.d.ts.map +1 -0
- package/dist/links.js +57 -0
- package/dist/links.js.map +1 -0
- package/dist/module.d.ts +23 -22
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +129 -158
- package/dist/module.js.map +1 -1
- package/dist/official.d.ts +39 -0
- package/dist/official.d.ts.map +1 -0
- package/dist/official.js +44 -0
- package/dist/official.js.map +1 -0
- package/dist/policies/authz-policy.d.ts +42 -0
- package/dist/policies/authz-policy.d.ts.map +1 -0
- package/dist/policies/authz-policy.js +80 -0
- package/dist/policies/authz-policy.js.map +1 -0
- package/dist/policies/gate.policy.d.ts +18 -0
- package/dist/policies/gate.policy.d.ts.map +1 -0
- package/dist/policies/gate.policy.js +37 -0
- package/dist/policies/gate.policy.js.map +1 -0
- package/dist/policies/index.d.ts +5 -0
- package/dist/policies/index.d.ts.map +1 -0
- package/dist/policies/index.js +5 -0
- package/dist/policies/index.js.map +1 -0
- package/dist/policies/permission.policy.d.ts +27 -0
- package/dist/policies/permission.policy.d.ts.map +1 -0
- package/dist/policies/permission.policy.js +61 -0
- package/dist/policies/permission.policy.js.map +1 -0
- package/dist/policies/role.policy.d.ts +27 -0
- package/dist/policies/role.policy.d.ts.map +1 -0
- package/dist/policies/role.policy.js +51 -0
- package/dist/policies/role.policy.js.map +1 -0
- package/dist/policy-index.d.ts +51 -0
- package/dist/policy-index.d.ts.map +1 -0
- package/dist/policy-index.js +135 -0
- package/dist/policy-index.js.map +1 -0
- package/dist/rbac.d.ts +92 -0
- package/dist/rbac.d.ts.map +1 -0
- package/dist/rbac.js +293 -0
- package/dist/rbac.js.map +1 -0
- package/dist/resource-resolver.d.ts +15 -17
- package/dist/resource-resolver.d.ts.map +1 -1
- package/dist/resource-resolver.js +8 -8
- package/dist/resource-resolver.js.map +1 -1
- package/dist/runtime.d.ts +31 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +40 -0
- package/dist/runtime.js.map +1 -0
- package/dist/tokens.d.ts +4 -8
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +4 -8
- package/dist/tokens.js.map +1 -1
- package/dist/types.d.ts +52 -171
- package/dist/types.d.ts.map +1 -1
- package/package.json +20 -11
- package/skills/authz-enforcement/SKILL.md +67 -135
- package/skills/authz-policies/SKILL.md +43 -117
- package/skills/authz-query-scopes/SKILL.md +16 -9
- package/skills/authz-rbac-seams/SKILL.md +29 -12
- package/skills/authz-setup/SKILL.md +45 -106
- package/dist/decorator/can.decorator.d.ts +0 -29
- package/dist/decorator/can.decorator.d.ts.map +0 -1
- package/dist/decorator/can.decorator.js +0 -23
- package/dist/decorator/can.decorator.js.map +0 -1
- package/dist/decorator/policy.decorator.d.ts +0 -18
- package/dist/decorator/policy.decorator.d.ts.map +0 -1
- package/dist/decorator/policy.decorator.js +0 -28
- package/dist/decorator/policy.decorator.js.map +0 -1
- package/dist/guard/can.guard.d.ts +0 -31
- package/dist/guard/can.guard.d.ts.map +0 -1
- package/dist/guard/can.guard.js +0 -92
- package/dist/guard/can.guard.js.map +0 -1
- package/dist/guard/roles.guard.d.ts +0 -21
- package/dist/guard/roles.guard.d.ts.map +0 -1
- package/dist/guard/roles.guard.js +0 -50
- package/dist/guard/roles.guard.js.map +0 -1
- package/dist/policy-registry.d.ts +0 -46
- package/dist/policy-registry.d.ts.map +0 -1
- package/dist/policy-registry.js +0 -101
- package/dist/policy-registry.js.map +0 -1
package/dist/gate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type ExecutionContext, type Type } from '@nestjs/common';
|
|
2
|
+
/**
|
|
3
|
+
* The key, in the global symbol registry, of the arguments a static `@Can()` resolver
|
|
4
|
+
* always returns. Tools that evaluate a requirement without a call (the Aviary agent,
|
|
5
|
+
* before it offers a tool to a model) read it off the resolver function.
|
|
6
|
+
*/
|
|
7
|
+
export declare const STATIC_CAN_ARGS: unique symbol;
|
|
8
|
+
/** An official `@Can()` argument resolver. */
|
|
9
|
+
export type CanArgsResolver<A extends readonly unknown[] = readonly unknown[]> = (context: ExecutionContext) => A | Promise<A>;
|
|
10
|
+
/**
|
|
11
|
+
* A resolver for `@Can()` that returns the same arguments on every call, marked as
|
|
12
|
+
* static so they can be read without a call (see {@link STATIC_CAN_ARGS}).
|
|
13
|
+
*
|
|
14
|
+
* @example `@Can(FeaturePolicy, 'enabled', staticCanArgs('billing'))`
|
|
15
|
+
*/
|
|
16
|
+
export declare function staticCanArgs<const A extends readonly unknown[]>(...args: A): CanArgsResolver<A>;
|
|
17
|
+
/** The arguments of a static resolver (from {@link staticCanArgs}), or `undefined`. */
|
|
18
|
+
export declare function getStaticCanArgs(resolver: unknown): readonly unknown[] | undefined;
|
|
19
|
+
/** `@Can(RolePolicy, 'has', roles('admin', 'editor'))`: the user holds any of the roles. */
|
|
20
|
+
export declare function roles<const R extends readonly string[]>(...names: R): CanArgsResolver<R>;
|
|
21
|
+
/** `@Can(PermissionPolicy, 'has', permission('posts.update'))`: the user holds the permission (wildcards apply). */
|
|
22
|
+
export declare function permission<const P extends readonly string[]>(...names: P): CanArgsResolver<P>;
|
|
23
|
+
/** Alias of {@link permission}, for several. */
|
|
24
|
+
export declare const permissions: typeof permission;
|
|
25
|
+
/** `@Can(GatePolicy, 'allows', ability('access-admin'))`: a `gate.define()` gate or a named permission. */
|
|
26
|
+
export declare function ability<const A extends string>(name: A): CanArgsResolver<readonly [A]>;
|
|
27
|
+
/** Options for {@link byId}. */
|
|
28
|
+
export interface ByIdOptions {
|
|
29
|
+
/** The route param holding the id. Default: the resolver's (`'id'` for the default one). */
|
|
30
|
+
param?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* `@Can(PostPolicy, 'update', byId(Post))`: loads the `Post` the route's `:id` names
|
|
34
|
+
* with the registered {@link ResourceResolver}, and passes it to the ability. A
|
|
35
|
+
* resource that is not found refuses the call with a 403 before the policy runs.
|
|
36
|
+
*
|
|
37
|
+
* The loaded record is kept on the request: read it in the handler with
|
|
38
|
+
* {@link authorizedResource} instead of loading it again.
|
|
39
|
+
*/
|
|
40
|
+
export declare function byId<T>(resource: Type<T>, options?: ByIdOptions): CanArgsResolver<readonly [T]>;
|
|
41
|
+
/**
|
|
42
|
+
* The record `byId(resource)` loaded for this request, if it ran. Pass the HTTP request
|
|
43
|
+
* (or the execution context).
|
|
44
|
+
*/
|
|
45
|
+
export declare function authorizedResource<T>(requestOrContext: object, resource: Type<T>): T | undefined;
|
|
46
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAsB,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGtF;;;;GAIG;AACH,eAAO,MAAM,eAAe,eAA0C,CAAC;AAEvE,8CAA8C;AAC9C,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,IAAI,CAC/E,OAAO,EAAE,gBAAgB,KACtB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEpB;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAIhG;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,SAAS,CAIlF;AAED,4FAA4F;AAC5F,wBAAgB,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAExF;AAED,oHAAoH;AACpH,wBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAE7F;AAED,gDAAgD;AAChD,eAAO,MAAM,WAAW,mBAAa,CAAC;AAEtC,2GAA2G;AAC3G,wBAAgB,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAEtF;AAED,gCAAgC;AAChC,MAAM,WAAW,WAAW;IAC1B,4FAA4F;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,CAAC,EACpB,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EACjB,OAAO,GAAE,WAAgB,GACxB,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAQ/B;AAmBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAOhG"}
|
package/dist/helpers.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { ForbiddenException } from '@nestjs/common';
|
|
2
|
+
import { authzRuntime } from './runtime.js';
|
|
3
|
+
/**
|
|
4
|
+
* The key, in the global symbol registry, of the arguments a static `@Can()` resolver
|
|
5
|
+
* always returns. Tools that evaluate a requirement without a call (the Aviary agent,
|
|
6
|
+
* before it offers a tool to a model) read it off the resolver function.
|
|
7
|
+
*/
|
|
8
|
+
export const STATIC_CAN_ARGS = Symbol.for('@dudousxd/static-can-args');
|
|
9
|
+
/**
|
|
10
|
+
* A resolver for `@Can()` that returns the same arguments on every call, marked as
|
|
11
|
+
* static so they can be read without a call (see {@link STATIC_CAN_ARGS}).
|
|
12
|
+
*
|
|
13
|
+
* @example `@Can(FeaturePolicy, 'enabled', staticCanArgs('billing'))`
|
|
14
|
+
*/
|
|
15
|
+
export function staticCanArgs(...args) {
|
|
16
|
+
const resolver = () => args;
|
|
17
|
+
Object.defineProperty(resolver, STATIC_CAN_ARGS, { value: args, enumerable: false });
|
|
18
|
+
return resolver;
|
|
19
|
+
}
|
|
20
|
+
/** The arguments of a static resolver (from {@link staticCanArgs}), or `undefined`. */
|
|
21
|
+
export function getStaticCanArgs(resolver) {
|
|
22
|
+
if (typeof resolver !== 'function')
|
|
23
|
+
return undefined;
|
|
24
|
+
const args = resolver[STATIC_CAN_ARGS];
|
|
25
|
+
return Array.isArray(args) ? args : undefined;
|
|
26
|
+
}
|
|
27
|
+
/** `@Can(RolePolicy, 'has', roles('admin', 'editor'))`: the user holds any of the roles. */
|
|
28
|
+
export function roles(...names) {
|
|
29
|
+
return staticCanArgs(...names);
|
|
30
|
+
}
|
|
31
|
+
/** `@Can(PermissionPolicy, 'has', permission('posts.update'))`: the user holds the permission (wildcards apply). */
|
|
32
|
+
export function permission(...names) {
|
|
33
|
+
return staticCanArgs(...names);
|
|
34
|
+
}
|
|
35
|
+
/** Alias of {@link permission}, for several. */
|
|
36
|
+
export const permissions = permission;
|
|
37
|
+
/** `@Can(GatePolicy, 'allows', ability('access-admin'))`: a `gate.define()` gate or a named permission. */
|
|
38
|
+
export function ability(name) {
|
|
39
|
+
return staticCanArgs(name);
|
|
40
|
+
}
|
|
41
|
+
const RESOLVED_RESOURCES = Symbol.for('@dudousxd/nestjs-authz:resolved-resources');
|
|
42
|
+
/**
|
|
43
|
+
* `@Can(PostPolicy, 'update', byId(Post))`: loads the `Post` the route's `:id` names
|
|
44
|
+
* with the registered {@link ResourceResolver}, and passes it to the ability. A
|
|
45
|
+
* resource that is not found refuses the call with a 403 before the policy runs.
|
|
46
|
+
*
|
|
47
|
+
* The loaded record is kept on the request: read it in the handler with
|
|
48
|
+
* {@link authorizedResource} instead of loading it again.
|
|
49
|
+
*/
|
|
50
|
+
export function byId(resource, options = {}) {
|
|
51
|
+
return async (context) => {
|
|
52
|
+
const hints = options.param === undefined ? {} : { param: options.param };
|
|
53
|
+
const loaded = await authzRuntime().resourceResolver.resolve(resource, context, hints);
|
|
54
|
+
if (loaded === undefined || loaded === null)
|
|
55
|
+
throw new ForbiddenException();
|
|
56
|
+
remember(context, resource, loaded);
|
|
57
|
+
return [loaded];
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function carrierOf(context) {
|
|
61
|
+
try {
|
|
62
|
+
if (context.getType() === 'http')
|
|
63
|
+
return context.switchToHttp().getRequest();
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
function remember(context, resource, value) {
|
|
71
|
+
const carrier = carrierOf(context);
|
|
72
|
+
if (!carrier)
|
|
73
|
+
return;
|
|
74
|
+
const map = carrier[RESOLVED_RESOURCES] ?? new Map();
|
|
75
|
+
map.set(resource, value);
|
|
76
|
+
carrier[RESOLVED_RESOURCES] = map;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The record `byId(resource)` loaded for this request, if it ran. Pass the HTTP request
|
|
80
|
+
* (or the execution context).
|
|
81
|
+
*/
|
|
82
|
+
export function authorizedResource(requestOrContext, resource) {
|
|
83
|
+
const carrier = typeof requestOrContext.switchToHttp === 'function'
|
|
84
|
+
? carrierOf(requestOrContext)
|
|
85
|
+
: requestOrContext;
|
|
86
|
+
const map = carrier?.[RESOLVED_RESOURCES];
|
|
87
|
+
return map?.get(resource);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,30 +1,37 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
1
|
+
export declare const VERSION = "0.9.1";
|
|
2
|
+
export { AuthzModule } from './module.js';
|
|
3
|
+
export { AuthzGuard } from './authz.guard.js';
|
|
2
4
|
export { Gate, BoundGate } from './gate.js';
|
|
3
|
-
export type { BatchAbility, BatchResult } from './gate.js';
|
|
5
|
+
export type { AbilityArgsOf, BatchAbility, BatchItem, BatchPolicyCheck, BatchResult, } from './gate.js';
|
|
6
|
+
export { AuthzPolicy, superAdminBefore, decisionProviderBefore, RolePolicy, PermissionPolicy, GatePolicy, } from './policies/index.js';
|
|
7
|
+
export { STATIC_CAN_ARGS, staticCanArgs, getStaticCanArgs, byId, roles, permission, permissions, ability, authorizedResource, } from './helpers.js';
|
|
8
|
+
export type { ByIdOptions, CanArgsResolver } from './helpers.js';
|
|
9
|
+
export { Roles, Permission } from './decorator/roles.decorator.js';
|
|
10
|
+
export { PolicyFor, policyForResource, getPolicyResource, policyLinks } from './links.js';
|
|
11
|
+
export { PolicyIndex } from './policy-index.js';
|
|
12
|
+
export type { IndexedPolicy } from './policy-index.js';
|
|
13
|
+
export { OFFICIAL_POLICY_METADATA, OFFICIAL_CAN_METADATA, OFFICIAL_CAN_ANYONE_METADATA, OFFICIAL_PUBLIC_METADATA, isOfficialPolicy, readCanRequirements, routeRequirements, } from './official.js';
|
|
14
|
+
export type { OfficialCanRequirement } from './official.js';
|
|
15
|
+
export { currentUserOf } from './runtime.js';
|
|
16
|
+
export { AuthzRbac } from './rbac.js';
|
|
17
|
+
export type { PermissionProvider } from './permission-provider.js';
|
|
18
|
+
export { defaultRoleResolver } from './role-provider.js';
|
|
19
|
+
export type { RoleProvider, RoleResolver } from './role-provider.js';
|
|
20
|
+
export { CompiledPermissions, permissionMatches, permissionSatisfied, } from './permission-matcher.js';
|
|
4
21
|
export { PermissionCache } from './permission-cache.js';
|
|
22
|
+
export { normalizeVerdict } from './decision-provider.js';
|
|
23
|
+
export type { DecisionProvider, DecisionRequest, DecisionVerdict, } from './decision-provider.js';
|
|
5
24
|
export { authzDecisionChannel, publishAuthzDecision } from './diagnostics.js';
|
|
6
|
-
export type { AuthzDecisionDiagnostic, AuthzDecisionReason } from './diagnostics.js';
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export { Can } from './decorator/can.decorator.js';
|
|
10
|
-
export type { CanMetadata, CanOptions } from './decorator/can.decorator.js';
|
|
11
|
-
export { Roles } from './decorator/roles.decorator.js';
|
|
12
|
-
export { CanGuard } from './guard/can.guard.js';
|
|
13
|
-
export { RolesGuard } from './guard/roles.guard.js';
|
|
14
|
-
export { AuthzModule } from './module.js';
|
|
15
|
-
export { createCanController, DEFAULT_CAN_ENDPOINT_PATH, } from './can-endpoint.controller.js';
|
|
25
|
+
export type { AuthzDecisionDiagnostic, AuthzDecisionReason, AuthzDecisionSource, } from './diagnostics.js';
|
|
26
|
+
export { AuthzDecisionPublisher } from './decisions.js';
|
|
27
|
+
export { createCanController, DEFAULT_CAN_ENDPOINT_PATH } from './can-endpoint.controller.js';
|
|
16
28
|
export type { CanRequestBody, CanResponseBody, CanBatchRequestBody, CanBatchResultItem, } from './can-endpoint.controller.js';
|
|
17
29
|
export { IdParamResourceResolver } from './resource-resolver.js';
|
|
18
|
-
export type { ResourceResolver } from './resource-resolver.js';
|
|
30
|
+
export type { ResourceResolver, ResourceResolveHints } from './resource-resolver.js';
|
|
19
31
|
export type { ContextAccessor, ContextStore, UserRef } from './context-accessor.js';
|
|
20
|
-
export type { PermissionProvider } from './permission-provider.js';
|
|
21
|
-
export type { DecisionProvider, DecisionRequest, DecisionVerdict, } from './decision-provider.js';
|
|
22
|
-
export { defaultRoleResolver } from './role-provider.js';
|
|
23
|
-
export type { RoleProvider, RoleResolver } from './role-provider.js';
|
|
24
|
-
export { CompiledPermissions, permissionMatches, permissionSatisfied, } from './permission-matcher.js';
|
|
25
32
|
export { and, eq, SAFE_IDENTIFIER, assertSafeIdentifier, normalizeScope, or, scopeAll, scopeNone, where, } from './scope.js';
|
|
26
33
|
export type { ScopeAll, ScopeCondition, ScopeConstraint, ScopeGroup, ScopeMethod, ScopeNode, ScopeNone, ScopeOperator, ScopeResult, } from './scope.js';
|
|
27
|
-
export { AUTHZ_MODULE_OPTIONS, RESOURCE_RESOLVER, RESOURCE_HYDRATOR, CONTEXT_ACCESSOR, DECISION_PROVIDER, PERMISSION_PROVIDER, ROLE_PROVIDER, POLICY_RESOURCE_METADATA,
|
|
28
|
-
export { AuthzException,
|
|
29
|
-
export type {
|
|
34
|
+
export { AUTHZ_MODULE_OPTIONS, RESOURCE_RESOLVER, RESOURCE_HYDRATOR, CONTEXT_ACCESSOR, DECISION_PROVIDER, PERMISSION_PROVIDER, ROLE_PROVIDER, POLICY_RESOURCE_METADATA, } from './tokens.js';
|
|
35
|
+
export { AuthzException, AbilityNotResolvedException, AmbiguousAbilityException, } from './errors/exceptions.js';
|
|
36
|
+
export type { AuthzModuleOptions, AuthzModuleAsyncOptions, AuthzModuleOptionsFactory, AuthzModuleStaticOptions, UnannotatedRoutes, GateFn, PolicyResponse, PolicyResult, Resource, ResourceLoader, ResourceLoaderMap, SuperAdminHook, User, } from './types.js';
|
|
30
37
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,22 +1,39 @@
|
|
|
1
1
|
// Rewritten from this package's package.json by `scripts/sync-version.mjs`, which the root
|
|
2
2
|
// `version-packages` script runs right after `changeset version`. The build is plain `tsc`
|
|
3
3
|
// and injects nothing, so the literal below is what ships in dist.
|
|
4
|
-
export const VERSION = '0.
|
|
4
|
+
export const VERSION = '0.9.1';
|
|
5
|
+
// Extras on top of @nestjs/authorization. Its own API (@Policy, @Can, Can.Anyone,
|
|
6
|
+
// AuthorizationModule, AuthorizationService, AuthorizationGuard) is imported from there.
|
|
7
|
+
export { AuthzModule } from './module.js';
|
|
8
|
+
// Migration mode: `AuthzModule.forRoot({ unannotated: 'allow' })`
|
|
9
|
+
export { AuthzGuard } from './authz.guard.js';
|
|
5
10
|
export { Gate, BoundGate } from './gate.js';
|
|
11
|
+
// Official policies and the super-admin base class
|
|
12
|
+
export { AuthzPolicy, superAdminBefore, decisionProviderBefore, RolePolicy, PermissionPolicy, GatePolicy, } from './policies/index.js';
|
|
13
|
+
// Helpers for the official @Can()
|
|
14
|
+
export { STATIC_CAN_ARGS, staticCanArgs, getStaticCanArgs, byId, roles, permission, permissions, ability, authorizedResource, } from './helpers.js';
|
|
15
|
+
export { Roles, Permission } from './decorator/roles.decorator.js';
|
|
16
|
+
// Resource ↔ policy link
|
|
17
|
+
export { PolicyFor, policyForResource, getPolicyResource, policyLinks } from './links.js';
|
|
18
|
+
export { PolicyIndex } from './policy-index.js';
|
|
19
|
+
// Reading the official metadata
|
|
20
|
+
export { OFFICIAL_POLICY_METADATA, OFFICIAL_CAN_METADATA, OFFICIAL_CAN_ANYONE_METADATA, OFFICIAL_PUBLIC_METADATA, isOfficialPolicy, readCanRequirements, routeRequirements, } from './official.js';
|
|
21
|
+
export { currentUserOf } from './runtime.js';
|
|
22
|
+
// RBAC seams
|
|
23
|
+
export { AuthzRbac } from './rbac.js';
|
|
24
|
+
export { defaultRoleResolver } from './role-provider.js';
|
|
25
|
+
export { CompiledPermissions, permissionMatches, permissionSatisfied, } from './permission-matcher.js';
|
|
6
26
|
export { PermissionCache } from './permission-cache.js';
|
|
27
|
+
// External decision point (Cerbos adapter: `@dudousxd/nestjs-authz/cerbos`)
|
|
28
|
+
export { normalizeVerdict } from './decision-provider.js';
|
|
29
|
+
// Decisions
|
|
7
30
|
export { authzDecisionChannel, publishAuthzDecision } from './diagnostics.js';
|
|
8
|
-
export {
|
|
9
|
-
|
|
10
|
-
export {
|
|
11
|
-
export { Roles } from './decorator/roles.decorator.js';
|
|
12
|
-
export { CanGuard } from './guard/can.guard.js';
|
|
13
|
-
export { RolesGuard } from './guard/roles.guard.js';
|
|
14
|
-
export { AuthzModule } from './module.js';
|
|
15
|
-
export { createCanController, DEFAULT_CAN_ENDPOINT_PATH, } from './can-endpoint.controller.js';
|
|
31
|
+
export { AuthzDecisionPublisher } from './decisions.js';
|
|
32
|
+
// Client endpoint
|
|
33
|
+
export { createCanController, DEFAULT_CAN_ENDPOINT_PATH } from './can-endpoint.controller.js';
|
|
16
34
|
export { IdParamResourceResolver } from './resource-resolver.js';
|
|
17
|
-
|
|
18
|
-
export { CompiledPermissions, permissionMatches, permissionSatisfied, } from './permission-matcher.js';
|
|
35
|
+
// Query scoping
|
|
19
36
|
export { and, eq, SAFE_IDENTIFIER, assertSafeIdentifier, normalizeScope, or, scopeAll, scopeNone, where, } from './scope.js';
|
|
20
|
-
export { AUTHZ_MODULE_OPTIONS, RESOURCE_RESOLVER, RESOURCE_HYDRATOR, CONTEXT_ACCESSOR, DECISION_PROVIDER, PERMISSION_PROVIDER, ROLE_PROVIDER, POLICY_RESOURCE_METADATA,
|
|
21
|
-
export { AuthzException,
|
|
37
|
+
export { AUTHZ_MODULE_OPTIONS, RESOURCE_RESOLVER, RESOURCE_HYDRATOR, CONTEXT_ACCESSOR, DECISION_PROVIDER, PERMISSION_PROVIDER, ROLE_PROVIDER, POLICY_RESOURCE_METADATA, } from './tokens.js';
|
|
38
|
+
export { AuthzException, AbilityNotResolvedException, AmbiguousAbilityException, } from './errors/exceptions.js';
|
|
22
39
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,2FAA2F;AAC3F,mEAAmE;AACnE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,2FAA2F;AAC3F,mEAAmE;AACnE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,kFAAkF;AAClF,yFAAyF;AAEzF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,kEAAkE;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAS5C,mDAAmD;AACnD,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,UAAU,GACX,MAAM,qBAAqB,CAAC;AAE7B,kCAAkC;AAClC,OAAO,EACL,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,IAAI,EACJ,KAAK,EACL,UAAU,EACV,WAAW,EACX,OAAO,EACP,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEnE,yBAAyB;AACzB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,gCAAgC;AAChC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,4EAA4E;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO1D,YAAY;AACZ,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAM9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,kBAAkB;AAClB,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAQ9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAIjE,gBAAgB;AAChB,OAAO,EACL,GAAG,EACH,EAAE,EACF,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,EAAE,EACF,QAAQ,EACR,SAAS,EACT,KAAK,GACN,MAAM,YAAY,CAAC;AAapB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC"}
|
package/dist/links.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import type { Type } from '@nestjs/common';
|
|
3
|
+
/** Metadata key on a policy class: the resource class it is linked to. */
|
|
4
|
+
export declare const POLICY_RESOURCE_METADATA = "nestjs-authz:policy-resource";
|
|
5
|
+
/**
|
|
6
|
+
* Links an official policy to the resource class it authorizes, and marks it as an
|
|
7
|
+
* official `@Policy()`. The link is what lets the extras find the policy from a
|
|
8
|
+
* resource: `gate.allows('update', post)`, `gate.scope(Post)`, the client ability map.
|
|
9
|
+
* The official API itself never needs it: `@Can(PostPolicy, 'update', byId(Post))`
|
|
10
|
+
* names the policy.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { Policy } from '@nestjs/authorization';
|
|
15
|
+
*
|
|
16
|
+
* @Policy()
|
|
17
|
+
* @PolicyFor(Post)
|
|
18
|
+
* export class PostPolicy {
|
|
19
|
+
* update(user: User | null, post: Post) { return post.authorId === user?.id; }
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* `@PolicyFor(Post)` alone also works: it applies the official `@Policy()` itself.
|
|
24
|
+
*
|
|
25
|
+
* Links are process-wide. Linking a resource that is already linked to another policy
|
|
26
|
+
* throws; linking the same pair again is a no-op, and a re-declared class of the same
|
|
27
|
+
* name (a test helper declaring its policy per call, a hot reload) replaces the link.
|
|
28
|
+
*/
|
|
29
|
+
export declare function PolicyFor(resource: Type<unknown>): ClassDecorator;
|
|
30
|
+
/** The policy class linked to `resource` with {@link PolicyFor}, if any. */
|
|
31
|
+
export declare function policyForResource(resource: Type<unknown>): Type<unknown> | undefined;
|
|
32
|
+
/** The resource class a policy is linked to with {@link PolicyFor}, if any. Inherited by subclasses. */
|
|
33
|
+
export declare function getPolicyResource(policy: Type<unknown> | object): Type<unknown> | undefined;
|
|
34
|
+
/** Every resource → policy link declared so far, in declaration order. */
|
|
35
|
+
export declare function policyLinks(): Array<{
|
|
36
|
+
resource: Type<unknown>;
|
|
37
|
+
policy: Type<unknown>;
|
|
38
|
+
}>;
|
|
39
|
+
//# sourceMappingURL=links.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,iCAAiC,CAAC;AAIvE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,cAAc,CAejE;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAEpF;AAED,wGAAwG;AACxG,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAG3F;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,IAAI,KAAK,CAAC;IAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC,CAEvF"}
|
package/dist/links.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { Policy as OfficialPolicy } from '@nestjs/authorization';
|
|
3
|
+
/** Metadata key on a policy class: the resource class it is linked to. */
|
|
4
|
+
export const POLICY_RESOURCE_METADATA = 'nestjs-authz:policy-resource';
|
|
5
|
+
const policyByResource = new Map();
|
|
6
|
+
/**
|
|
7
|
+
* Links an official policy to the resource class it authorizes, and marks it as an
|
|
8
|
+
* official `@Policy()`. The link is what lets the extras find the policy from a
|
|
9
|
+
* resource: `gate.allows('update', post)`, `gate.scope(Post)`, the client ability map.
|
|
10
|
+
* The official API itself never needs it: `@Can(PostPolicy, 'update', byId(Post))`
|
|
11
|
+
* names the policy.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { Policy } from '@nestjs/authorization';
|
|
16
|
+
*
|
|
17
|
+
* @Policy()
|
|
18
|
+
* @PolicyFor(Post)
|
|
19
|
+
* export class PostPolicy {
|
|
20
|
+
* update(user: User | null, post: Post) { return post.authorId === user?.id; }
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* `@PolicyFor(Post)` alone also works: it applies the official `@Policy()` itself.
|
|
25
|
+
*
|
|
26
|
+
* Links are process-wide. Linking a resource that is already linked to another policy
|
|
27
|
+
* throws; linking the same pair again is a no-op, and a re-declared class of the same
|
|
28
|
+
* name (a test helper declaring its policy per call, a hot reload) replaces the link.
|
|
29
|
+
*/
|
|
30
|
+
export function PolicyFor(resource) {
|
|
31
|
+
return (target) => {
|
|
32
|
+
const policy = target;
|
|
33
|
+
const linked = policyByResource.get(resource);
|
|
34
|
+
// A class of the same name re-declared (a test helper that declares its policy per
|
|
35
|
+
// call, a hot reload) replaces the link; another policy is a conflict.
|
|
36
|
+
if (linked && linked !== policy && linked.name !== policy.name) {
|
|
37
|
+
throw new Error(`@PolicyFor(${resource.name}) on ${policy.name}: ${resource.name} is already linked to ${linked.name}. A resource has one policy; the link is process-wide, so two policies for it would silently replace each other.`);
|
|
38
|
+
}
|
|
39
|
+
Reflect.defineMetadata(POLICY_RESOURCE_METADATA, resource, target);
|
|
40
|
+
policyByResource.set(resource, policy);
|
|
41
|
+
OfficialPolicy()(target);
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/** The policy class linked to `resource` with {@link PolicyFor}, if any. */
|
|
45
|
+
export function policyForResource(resource) {
|
|
46
|
+
return policyByResource.get(resource);
|
|
47
|
+
}
|
|
48
|
+
/** The resource class a policy is linked to with {@link PolicyFor}, if any. Inherited by subclasses. */
|
|
49
|
+
export function getPolicyResource(policy) {
|
|
50
|
+
const ctor = typeof policy === 'function' ? policy : policy.constructor;
|
|
51
|
+
return Reflect.getMetadata(POLICY_RESOURCE_METADATA, ctor);
|
|
52
|
+
}
|
|
53
|
+
/** Every resource → policy link declared so far, in declaration order. */
|
|
54
|
+
export function policyLinks() {
|
|
55
|
+
return [...policyByResource].map(([resource, policy]) => ({ resource, policy }));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=links.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"links.js","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGjE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GAAG,8BAA8B,CAAC;AAEvE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAgC,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,SAAS,CAAC,QAAuB;IAC/C,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,MAAkC,CAAC;QAClD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,mFAAmF;QACnF,uEAAuE;QACvE,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CACb,cAAc,QAAQ,CAAC,IAAI,QAAQ,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,yBAAyB,MAAM,CAAC,IAAI,kHAAkH,CACvN,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,cAAc,CAAC,wBAAwB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnE,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtC,cAAc,EAA2B,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,QAAuB;IACvD,OAAO,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,iBAAiB,CAAC,MAA8B;IAC9D,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,MAAiB,CAAC,WAAW,CAAC;IACpF,OAAO,OAAO,CAAC,WAAW,CAAC,wBAAwB,EAAE,IAAI,CAA8B,CAAC;AAC1F,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC,GAAG,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACnF,CAAC"}
|
package/dist/module.d.ts
CHANGED
|
@@ -1,33 +1,34 @@
|
|
|
1
1
|
import { type DynamicModule } from '@nestjs/common';
|
|
2
2
|
import type { AuthzModuleAsyncOptions, AuthzModuleOptions } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* The extras on top of `@nestjs/authorization`. Import it next to the official module:
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* imports: [
|
|
8
|
+
* AuthorizationModule.forRoot(), // the official guard, @Can, AuthorizationService
|
|
9
|
+
* AuthzModule.forRoot({ superAdmin: (u) => u?.isRoot === true }),
|
|
10
|
+
* ]
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* Registers `RolePolicy`, `PermissionPolicy` and `GatePolicy` (official policies), the
|
|
14
|
+
* `Gate`, the resource resolver `byId()` uses, and the allow+deny decision event.
|
|
15
|
+
* It needs the official module to be global (its default).
|
|
16
|
+
*/
|
|
3
17
|
export declare class AuthzModule {
|
|
4
18
|
static forRoot(options?: AuthzModuleOptions): DynamicModule;
|
|
5
19
|
static forRootAsync(options: AuthzModuleAsyncOptions): DynamicModule;
|
|
20
|
+
private static common;
|
|
6
21
|
/**
|
|
7
|
-
*
|
|
8
|
-
* so
|
|
9
|
-
*
|
|
10
|
-
* override / `idParam` knob from forRoot OR forRootAsync is honored.
|
|
22
|
+
* `unannotated: 'allow'`: the migration guard, registered globally, and the check that the
|
|
23
|
+
* official global guard is off. Static, so it is read from `forRoot()` / the top level of
|
|
24
|
+
* `forRootAsync()`, never from the factory.
|
|
11
25
|
*/
|
|
12
|
-
private static
|
|
26
|
+
private static guards;
|
|
13
27
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* `{ type, id }` shim into the REAL entity before authorizing. Reads the resolved
|
|
17
|
-
* options so the map from forRoot OR a forRootAsync factory is honored. Resolves to
|
|
18
|
-
* `undefined` when no `resourceLoaders` are configured (endpoint behavior unchanged).
|
|
28
|
+
* The controllers this module mounts, each a fresh class (so `decorators` never leak between
|
|
29
|
+
* registrations), open to the official guard, then decorated with `decorators`.
|
|
19
30
|
*/
|
|
20
|
-
private static
|
|
21
|
-
|
|
22
|
-
* Provider that populates the {@link PolicyRegistry} on init (explicit policies
|
|
23
|
-
* + auto-discovered `@Policy` providers). Registered for both forRoot/forRootAsync.
|
|
24
|
-
*/
|
|
25
|
-
private static bootstrapProviders;
|
|
26
|
-
/**
|
|
27
|
-
* Build the opt-in `POST /authz/can` fallback controller (or none). Off by
|
|
28
|
-
* default; `true` mounts at the default path, a string mounts at that path.
|
|
29
|
-
*/
|
|
30
|
-
private static canControllers;
|
|
31
|
-
private static buildAsyncOptionsProvider;
|
|
31
|
+
private static controllers;
|
|
32
|
+
private static asyncOptionsProviders;
|
|
32
33
|
}
|
|
33
34
|
//# sourceMappingURL=module.d.ts.map
|
package/dist/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,aAAa,EAQnB,MAAM,gBAAgB,CAAC;AAexB,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAInB,MAAM,YAAY,CAAC;AAwDpB;;;;;;;;;;;;;GAaG;AACH,qBACa,WAAW;IACtB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,kBAAuB,GAAG,aAAa;IAe/D,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;IAepE,OAAO,CAAC,MAAM,CAAC,MAAM;IA2BrB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,MAAM;IAWrB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAa1B,OAAO,CAAC,MAAM,CAAC,qBAAqB;CAsBrC"}
|