@authup/access 1.0.0-beta.34 → 1.0.0-beta.35
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/index.d.mts +547 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +976 -1228
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -10
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,547 @@
|
|
|
1
|
+
import { AuthupError, AuthupErrorOptions } from "@authup/errors";
|
|
2
|
+
import { DecisionStrategy, DecisionStrategy as DecisionStrategy$1 } from "@authup/kit";
|
|
3
|
+
import { Container, Issue, IssueGroup, IssueItem } from "validup";
|
|
4
|
+
import { MongoQuery } from "@ucast/mongo2js";
|
|
5
|
+
|
|
6
|
+
//#region src/policy/data.d.ts
|
|
7
|
+
interface IPolicyData {
|
|
8
|
+
set(key: string, value: unknown): void;
|
|
9
|
+
has(key: string): boolean;
|
|
10
|
+
get<T = unknown>(key: string): T;
|
|
11
|
+
isValidated(key: string): boolean;
|
|
12
|
+
setValidated(key: string): void;
|
|
13
|
+
clone(): IPolicyData;
|
|
14
|
+
}
|
|
15
|
+
declare class PolicyData implements IPolicyData {
|
|
16
|
+
protected data: Record<string, any>;
|
|
17
|
+
protected validated: Set<string>;
|
|
18
|
+
constructor(data?: Record<string, any>, validated?: Set<string>);
|
|
19
|
+
set<T = unknown>(key: string, value: T): void;
|
|
20
|
+
get<T = unknown>(key: string): T;
|
|
21
|
+
has(key: string): boolean;
|
|
22
|
+
setValidated(key: string): void;
|
|
23
|
+
isValidated(key: string): boolean;
|
|
24
|
+
clone(): PolicyData;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/policy/evaluation/context/types.d.ts
|
|
28
|
+
type PolicyEvaluationContext = {
|
|
29
|
+
readonly evaluators: Record<string, IPolicyEvaluator>;
|
|
30
|
+
readonly path: (string | number)[];
|
|
31
|
+
readonly exclude: string[];
|
|
32
|
+
readonly include: string[];
|
|
33
|
+
readonly data: PolicyData;
|
|
34
|
+
};
|
|
35
|
+
type PolicyEvaluationContextInput = Partial<PolicyEvaluationContext>;
|
|
36
|
+
//#endregion
|
|
37
|
+
//#region src/policy/evaluation/context/define.d.ts
|
|
38
|
+
declare function definePolicyEvaluationContext(input?: PolicyEvaluationContextInput): PolicyEvaluationContext;
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region src/policy/evaluation/types.d.ts
|
|
41
|
+
type PolicyEvaluators = Record<string, IPolicyEvaluator>;
|
|
42
|
+
type PolicyEvaluationResult = {
|
|
43
|
+
success: boolean;
|
|
44
|
+
issues?: Issue[];
|
|
45
|
+
};
|
|
46
|
+
interface IPolicyEvaluator {
|
|
47
|
+
/**
|
|
48
|
+
* Execute the policy with specific data and a given context.
|
|
49
|
+
*/
|
|
50
|
+
evaluate(value: Record<string, any>, context: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region src/policy/types.d.ts
|
|
54
|
+
type BasePolicy<T extends string = string> = {
|
|
55
|
+
/**
|
|
56
|
+
* Type describing the policy.
|
|
57
|
+
*/
|
|
58
|
+
type?: T;
|
|
59
|
+
/**
|
|
60
|
+
* Invert evaluation result of policy (true->false and false->true)
|
|
61
|
+
*/
|
|
62
|
+
invert?: boolean;
|
|
63
|
+
};
|
|
64
|
+
type PolicyWithType<R extends Record<string, any> = Record<string, any>, T extends string = string> = R & BasePolicy<T>;
|
|
65
|
+
//#endregion
|
|
66
|
+
//#region src/policy/engine/types.d.ts
|
|
67
|
+
interface IPolicyEngine {
|
|
68
|
+
evaluate(policy: BasePolicy, options: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
|
|
69
|
+
evaluateOrFail(policy: BasePolicy, options: PolicyEvaluationContext): Promise<void>;
|
|
70
|
+
}
|
|
71
|
+
//#endregion
|
|
72
|
+
//#region src/policy/engine/module.d.ts
|
|
73
|
+
/**
|
|
74
|
+
* The policy engine is a component that interprets defined policies and makes decisions
|
|
75
|
+
* on whether to allow or deny a particular access.
|
|
76
|
+
*/
|
|
77
|
+
declare class PolicyEngine implements IPolicyEngine {
|
|
78
|
+
protected evaluators: Record<string, IPolicyEvaluator>;
|
|
79
|
+
constructor(evaluators?: PolicyEvaluators);
|
|
80
|
+
registerEvaluator(type: string, evaluator: IPolicyEvaluator): void;
|
|
81
|
+
registerEvaluators(evaluators: PolicyEvaluators): void;
|
|
82
|
+
/**
|
|
83
|
+
* @param policy
|
|
84
|
+
* @param ctx
|
|
85
|
+
*/
|
|
86
|
+
evaluate(policy: BasePolicy, ctx: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
|
|
87
|
+
evaluateOrFail(policy: BasePolicy, ctx: PolicyEvaluationContext): Promise<void>;
|
|
88
|
+
}
|
|
89
|
+
//#endregion
|
|
90
|
+
//#region src/policy/issue/constants.d.ts
|
|
91
|
+
declare enum PolicyIssueSeverity {
|
|
92
|
+
WARNING = "warning",
|
|
93
|
+
ERROR = "error"
|
|
94
|
+
}
|
|
95
|
+
declare enum PolicyIssueCode {
|
|
96
|
+
DATA_MISSING = "DATA_MISSING",
|
|
97
|
+
DATA_INVALID = "DATA_INVALID",
|
|
98
|
+
INVALID = "INVALID",
|
|
99
|
+
TYPE_UNKNOWN = "TYPE_UNKNOWN",
|
|
100
|
+
FIELD_MISSING = "FIELD_MISSING",
|
|
101
|
+
FIELD_INVALID = "FIELD_INVALID",
|
|
102
|
+
CHILD_INVALID = "CHILD_INVALID",
|
|
103
|
+
CHILD_EVALUATION_FAILED = "CHILD_EVALUATION_FAILED",
|
|
104
|
+
EVALUATION_DENIED = "EVALUATION_DENIED",
|
|
105
|
+
EVALUATOR_NOT_FOUND = "EVALUATOR_NOT_FOUND",
|
|
106
|
+
EVALUATOR_ERROR = "EVALUATOR_ERROR",
|
|
107
|
+
SKIPPED_EXCLUDED = "SKIPPED_EXCLUDED",
|
|
108
|
+
SKIPPED_NOT_INCLUDED = "SKIPPED_NOT_INCLUDED",
|
|
109
|
+
INTERNAL_ERROR = "INTERNAL_ERROR"
|
|
110
|
+
}
|
|
111
|
+
//#endregion
|
|
112
|
+
//#region src/policy/issue/types.d.ts
|
|
113
|
+
type PolicyIssueItem = IssueItem;
|
|
114
|
+
type PolicyIssueGroup = IssueGroup;
|
|
115
|
+
type PolicyIssue = PolicyIssueItem | PolicyIssueGroup;
|
|
116
|
+
//#endregion
|
|
117
|
+
//#region src/policy/issue/define.d.ts
|
|
118
|
+
declare function definePolicyIssueItem(input: Omit<PolicyIssueItem, 'type'>): PolicyIssueItem;
|
|
119
|
+
declare function definePolicyIssueGroup(input: Omit<PolicyIssueGroup, 'type'>): PolicyIssueGroup;
|
|
120
|
+
//#endregion
|
|
121
|
+
//#region src/policy/error/module.d.ts
|
|
122
|
+
declare class PolicyError extends AuthupError {
|
|
123
|
+
constructor(message?: string, code?: string | null);
|
|
124
|
+
addIssue(data: PolicyIssue): void;
|
|
125
|
+
addIssues(data: PolicyIssue[]): void;
|
|
126
|
+
static evaluatorNotFound(type: string): PolicyError;
|
|
127
|
+
static evaluatorNotProcessable(): PolicyError;
|
|
128
|
+
static evaluatorContextInvalid(): PolicyError;
|
|
129
|
+
}
|
|
130
|
+
//#endregion
|
|
131
|
+
//#region src/policy/helpers/invert.d.ts
|
|
132
|
+
type InvertFn = (input: boolean) => boolean;
|
|
133
|
+
declare function maybeInvertPolicyOutcome(outcome: boolean, invert?: boolean | InvertFn): boolean;
|
|
134
|
+
//#endregion
|
|
135
|
+
//#region src/policy/built-in/attribute-names/types.d.ts
|
|
136
|
+
interface AttributeNamesPolicy extends BasePolicy {
|
|
137
|
+
names: string[];
|
|
138
|
+
}
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region src/policy/built-in/attribute-names/validator.d.ts
|
|
141
|
+
declare class AttributeNamesPolicyValidator extends Container<AttributeNamesPolicy> {
|
|
142
|
+
initialize(): void;
|
|
143
|
+
}
|
|
144
|
+
//#endregion
|
|
145
|
+
//#region src/policy/built-in/attributes/types.d.ts
|
|
146
|
+
type AttributesPolicyQuery<T> = MongoQuery<T>;
|
|
147
|
+
interface AttributesPolicy<T extends Record<string, any> = Record<string, any>> extends BasePolicy {
|
|
148
|
+
query: AttributesPolicyQuery<T>;
|
|
149
|
+
}
|
|
150
|
+
//#endregion
|
|
151
|
+
//#region src/policy/built-in/attributes/define.d.ts
|
|
152
|
+
declare function defineAttributesPolicy<T extends Record<string, any> = Record<string, any>>(data: AttributesPolicy<T>): AttributesPolicy<T>;
|
|
153
|
+
//#endregion
|
|
154
|
+
//#region src/policy/built-in/attributes/validator.d.ts
|
|
155
|
+
declare class AttributesPolicyValidator<T extends Record<string, any> = Record<string, any>> extends Container<AttributesPolicy<T>> {
|
|
156
|
+
initialize(): void;
|
|
157
|
+
}
|
|
158
|
+
//#endregion
|
|
159
|
+
//#region src/policy/built-in/attributes/evaluator.d.ts
|
|
160
|
+
declare class AttributesPolicyEvaluator<T extends Record<string, any> = Record<string, any>> implements IPolicyEvaluator {
|
|
161
|
+
protected validator: AttributesPolicyValidator<T>;
|
|
162
|
+
constructor();
|
|
163
|
+
accessData(ctx: PolicyEvaluationContext): Promise<T | null>;
|
|
164
|
+
evaluate(value: Record<string, any>, ctx: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
|
|
165
|
+
protected fixQuery(query: unknown | unknown[]): void;
|
|
166
|
+
}
|
|
167
|
+
//#endregion
|
|
168
|
+
//#region src/policy/built-in/attribute-names/evaluator.d.ts
|
|
169
|
+
declare class AttributeNamesPolicyEvaluator implements IPolicyEvaluator {
|
|
170
|
+
protected validator: AttributeNamesPolicyValidator;
|
|
171
|
+
protected attributesEvaluator: AttributesPolicyEvaluator;
|
|
172
|
+
constructor();
|
|
173
|
+
evaluate(value: Record<string, any>, ctx: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
|
|
174
|
+
}
|
|
175
|
+
//#endregion
|
|
176
|
+
//#region src/policy/built-in/composite/types.d.ts
|
|
177
|
+
interface CompositePolicy extends BasePolicy {
|
|
178
|
+
/**
|
|
179
|
+
* How to decide if a policy evaluates to true.
|
|
180
|
+
*/
|
|
181
|
+
decision_strategy?: `${DecisionStrategy}`;
|
|
182
|
+
/**
|
|
183
|
+
* Child policies.
|
|
184
|
+
*/
|
|
185
|
+
children: BasePolicy[];
|
|
186
|
+
}
|
|
187
|
+
//#endregion
|
|
188
|
+
//#region src/policy/built-in/composite/validator.d.ts
|
|
189
|
+
declare class CompositePolicyValidator extends Container<CompositePolicy> {
|
|
190
|
+
initialize(): void;
|
|
191
|
+
}
|
|
192
|
+
//#endregion
|
|
193
|
+
//#region src/policy/built-in/composite/evaluator.d.ts
|
|
194
|
+
declare class CompositePolicyEvaluator implements IPolicyEvaluator {
|
|
195
|
+
protected validator: CompositePolicyValidator;
|
|
196
|
+
constructor();
|
|
197
|
+
evaluate(value: Record<string, any>, ctx: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
|
|
198
|
+
}
|
|
199
|
+
//#endregion
|
|
200
|
+
//#region src/policy/built-in/composite/helper.d.ts
|
|
201
|
+
declare function isCompositePolicy(input: PolicyWithType): input is PolicyWithType<CompositePolicy>;
|
|
202
|
+
//#endregion
|
|
203
|
+
//#region src/policy/built-in/date/types.d.ts
|
|
204
|
+
interface DatePolicy extends BasePolicy {
|
|
205
|
+
start?: string | Date | number;
|
|
206
|
+
end?: string | Date | number;
|
|
207
|
+
}
|
|
208
|
+
//#endregion
|
|
209
|
+
//#region src/policy/built-in/date/validator.d.ts
|
|
210
|
+
declare class DatePolicyValidator extends Container<DatePolicy> {
|
|
211
|
+
initialize(): void;
|
|
212
|
+
}
|
|
213
|
+
//#endregion
|
|
214
|
+
//#region src/policy/built-in/date/evaluator.d.ts
|
|
215
|
+
declare class DatePolicyEvaluator implements IPolicyEvaluator {
|
|
216
|
+
protected validator: DatePolicyValidator;
|
|
217
|
+
constructor();
|
|
218
|
+
evaluate(value: Record<string, any>, ctx: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
|
|
219
|
+
}
|
|
220
|
+
//#endregion
|
|
221
|
+
//#region src/policy/built-in/identity/types.d.ts
|
|
222
|
+
interface IdentityPolicy extends BasePolicy {
|
|
223
|
+
/**
|
|
224
|
+
* Set of allowed identity types.
|
|
225
|
+
*/
|
|
226
|
+
types?: string[];
|
|
227
|
+
}
|
|
228
|
+
type IdentityPolicyData = {
|
|
229
|
+
/**
|
|
230
|
+
* user, client, robot
|
|
231
|
+
*/
|
|
232
|
+
type: string;
|
|
233
|
+
/**
|
|
234
|
+
* UUID
|
|
235
|
+
*/
|
|
236
|
+
id: string;
|
|
237
|
+
/**
|
|
238
|
+
* Client associated with identity.
|
|
239
|
+
*/
|
|
240
|
+
clientId?: string | null;
|
|
241
|
+
/**
|
|
242
|
+
* Realm id associated with identity.
|
|
243
|
+
*/
|
|
244
|
+
realmId?: string | null;
|
|
245
|
+
/**
|
|
246
|
+
* Realm name associated with identity.
|
|
247
|
+
*/
|
|
248
|
+
realmName?: string | null;
|
|
249
|
+
};
|
|
250
|
+
//#endregion
|
|
251
|
+
//#region src/policy/built-in/identity/data/validator.d.ts
|
|
252
|
+
declare class PolicyIdentityDataValidator extends Container<IdentityPolicyData> {
|
|
253
|
+
initialize(): void;
|
|
254
|
+
}
|
|
255
|
+
//#endregion
|
|
256
|
+
//#region src/policy/built-in/identity/validator.d.ts
|
|
257
|
+
declare class IdentityPolicyValidator extends Container<IdentityPolicy> {
|
|
258
|
+
initialize(): void;
|
|
259
|
+
}
|
|
260
|
+
//#endregion
|
|
261
|
+
//#region src/policy/built-in/identity/evaluator.d.ts
|
|
262
|
+
declare class IdentityPolicyEvaluator implements IPolicyEvaluator {
|
|
263
|
+
protected validator: IdentityPolicyValidator;
|
|
264
|
+
protected dataValidator: PolicyIdentityDataValidator;
|
|
265
|
+
constructor();
|
|
266
|
+
accessData(ctx: PolicyEvaluationContext): Promise<IdentityPolicyData | null>;
|
|
267
|
+
evaluate(value: Record<string, any>, ctx: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
|
|
268
|
+
}
|
|
269
|
+
//#endregion
|
|
270
|
+
//#region src/policy/built-in/permission-binding/types.d.ts
|
|
271
|
+
interface PermissionBindingPolicy extends BasePolicy {}
|
|
272
|
+
//#endregion
|
|
273
|
+
//#region src/policy/built-in/permission-binding/validator.d.ts
|
|
274
|
+
declare class PermissionBindingPolicyValidator extends Container<PermissionBindingPolicy> {
|
|
275
|
+
initialize(): void;
|
|
276
|
+
}
|
|
277
|
+
//#endregion
|
|
278
|
+
//#region src/policy/built-in/permission-binding/module.d.ts
|
|
279
|
+
declare class PermissionBindingPolicyEvaluator implements IPolicyEvaluator {
|
|
280
|
+
protected validator: PermissionBindingPolicyValidator;
|
|
281
|
+
constructor();
|
|
282
|
+
evaluate(value: Record<string, any>): Promise<PolicyEvaluationResult>;
|
|
283
|
+
}
|
|
284
|
+
//#endregion
|
|
285
|
+
//#region src/policy/built-in/realm-match/types.d.ts
|
|
286
|
+
interface RealmMatchPolicy extends BasePolicy {
|
|
287
|
+
/**
|
|
288
|
+
* Determines how realm-id/name matches are handled.
|
|
289
|
+
*/
|
|
290
|
+
decision_strategy?: `${DecisionStrategy}`;
|
|
291
|
+
/**
|
|
292
|
+
* Specifies the name(s) of the realm-id/name attribute(s) used for matching.
|
|
293
|
+
* Can be a single attribute name or an array of attribute names.
|
|
294
|
+
*/
|
|
295
|
+
attribute_name?: string | string[];
|
|
296
|
+
/**
|
|
297
|
+
* Only match if the attribute is strict equal to the name.
|
|
298
|
+
*/
|
|
299
|
+
attribute_name_strict?: boolean;
|
|
300
|
+
/**
|
|
301
|
+
* Determines if resources with null realm-id/name value should match all identity realms.
|
|
302
|
+
* If true, any identity realm can access resources with null realm-id/name values.
|
|
303
|
+
*/
|
|
304
|
+
attribute_null_match_all?: boolean;
|
|
305
|
+
/**
|
|
306
|
+
* Specifies whether the master realm of an identity should match all realm-id/name attributes, including null.
|
|
307
|
+
* If true, the master realm can access any resource regardless of its realm value.
|
|
308
|
+
*/
|
|
309
|
+
identity_master_match_all?: boolean;
|
|
310
|
+
}
|
|
311
|
+
//#endregion
|
|
312
|
+
//#region src/policy/built-in/realm-match/validator.d.ts
|
|
313
|
+
declare class RealmMatchPolicyValidator extends Container<RealmMatchPolicy> {
|
|
314
|
+
initialize(): void;
|
|
315
|
+
}
|
|
316
|
+
//#endregion
|
|
317
|
+
//#region src/policy/built-in/realm-match/evaluator.d.ts
|
|
318
|
+
declare class RealmMatchPolicyEvaluator implements IPolicyEvaluator {
|
|
319
|
+
protected validator: RealmMatchPolicyValidator;
|
|
320
|
+
protected identityEvaluator: IdentityPolicyEvaluator;
|
|
321
|
+
protected attributesEvaluator: AttributesPolicyEvaluator;
|
|
322
|
+
constructor();
|
|
323
|
+
evaluate(value: Record<string, any>, ctx: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
|
|
324
|
+
}
|
|
325
|
+
//#endregion
|
|
326
|
+
//#region src/policy/built-in/time/constants.d.ts
|
|
327
|
+
declare enum TimePolicyInterval {
|
|
328
|
+
DAILY = "daily",
|
|
329
|
+
WEEKLY = "weekly",
|
|
330
|
+
MONTHLY = "monthly",
|
|
331
|
+
YEARLY = "yearly"
|
|
332
|
+
}
|
|
333
|
+
//#endregion
|
|
334
|
+
//#region src/policy/built-in/time/types.d.ts
|
|
335
|
+
interface TimePolicy extends BasePolicy {
|
|
336
|
+
/**
|
|
337
|
+
* Format: HH:MM
|
|
338
|
+
*/
|
|
339
|
+
start?: string | number | Date;
|
|
340
|
+
/**
|
|
341
|
+
* Format HH:MM
|
|
342
|
+
*/
|
|
343
|
+
end?: string | number | Date;
|
|
344
|
+
/**
|
|
345
|
+
* Interval: daily, weekly, monthly, yearly
|
|
346
|
+
*/
|
|
347
|
+
interval?: `${TimePolicyInterval}`;
|
|
348
|
+
/**
|
|
349
|
+
* 0 (Sunday) - 6 (Saturday)
|
|
350
|
+
*/
|
|
351
|
+
day_of_week?: number;
|
|
352
|
+
/**
|
|
353
|
+
* 1 - 31
|
|
354
|
+
*/
|
|
355
|
+
day_of_month?: number;
|
|
356
|
+
/**
|
|
357
|
+
* 1 - 365
|
|
358
|
+
*/
|
|
359
|
+
day_of_year?: number;
|
|
360
|
+
}
|
|
361
|
+
//#endregion
|
|
362
|
+
//#region src/policy/built-in/time/validator.d.ts
|
|
363
|
+
declare class TimePolicyValidator extends Container<TimePolicy> {
|
|
364
|
+
initialize(): void;
|
|
365
|
+
}
|
|
366
|
+
//#endregion
|
|
367
|
+
//#region src/policy/built-in/time/evaluator.d.ts
|
|
368
|
+
declare class TimePolicyEvaluator implements IPolicyEvaluator {
|
|
369
|
+
protected validator: TimePolicyValidator;
|
|
370
|
+
constructor();
|
|
371
|
+
evaluate(value: Record<string, any>, ctx: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
|
|
372
|
+
}
|
|
373
|
+
//#endregion
|
|
374
|
+
//#region src/policy/built-in/time/helpers.d.ts
|
|
375
|
+
declare function isIntervalForDayOfWeek(interval: string): interval is TimePolicyInterval.WEEKLY | TimePolicyInterval.MONTHLY | TimePolicyInterval.YEARLY;
|
|
376
|
+
declare function isIntervalForDayOfMonth(interval: string): interval is TimePolicyInterval.MONTHLY | TimePolicyInterval.YEARLY;
|
|
377
|
+
declare function isIntervalForDayOfYear(interval: string): interval is TimePolicyInterval.YEARLY;
|
|
378
|
+
//#endregion
|
|
379
|
+
//#region src/policy/built-in/constants.d.ts
|
|
380
|
+
declare enum BuiltInPolicyType {
|
|
381
|
+
/**
|
|
382
|
+
* Bundles different policies.
|
|
383
|
+
*/
|
|
384
|
+
COMPOSITE = "composite",
|
|
385
|
+
/**
|
|
386
|
+
* Date Based Access Control (DBAC)
|
|
387
|
+
*/
|
|
388
|
+
DATE = "date",
|
|
389
|
+
/**
|
|
390
|
+
* Time Based Access Control (TBAC)
|
|
391
|
+
*/
|
|
392
|
+
TIME = "time",
|
|
393
|
+
/**
|
|
394
|
+
* Attribute Name Based Access Control (ANBAC)
|
|
395
|
+
*/
|
|
396
|
+
ATTRIBUTE_NAMES = "attributeNames",
|
|
397
|
+
/**
|
|
398
|
+
* Attribute Based Access Control (ABAC)
|
|
399
|
+
*/
|
|
400
|
+
ATTRIBUTES = "attributes",
|
|
401
|
+
/**
|
|
402
|
+
* Realm of Identity is for attribute realm.
|
|
403
|
+
*/
|
|
404
|
+
REALM_MATCH = "realmMatch",
|
|
405
|
+
/**
|
|
406
|
+
* Restriction based on identity (type, id, ...)
|
|
407
|
+
*/
|
|
408
|
+
IDENTITY = "identity",
|
|
409
|
+
/**
|
|
410
|
+
* Restriction based on a binding between identity <-> permission
|
|
411
|
+
*/
|
|
412
|
+
PERMISSION_BINDING = "permissionBinding"
|
|
413
|
+
}
|
|
414
|
+
declare const SystemPolicyName: {
|
|
415
|
+
readonly DEFAULT: "system.default";
|
|
416
|
+
readonly IDENTITY: "system.identity";
|
|
417
|
+
readonly PERMISSION_BINDING: "system.permission-binding";
|
|
418
|
+
readonly REALM_MATCH: "system.realm-match";
|
|
419
|
+
readonly REALM_BOUND: "system.realm-bound";
|
|
420
|
+
readonly REALM_OR_GLOBAL: "system.realm-or-global";
|
|
421
|
+
};
|
|
422
|
+
//#endregion
|
|
423
|
+
//#region src/policy/built-in/types.d.ts
|
|
424
|
+
type BuiltInPolicyTypeMapRaw<T extends Record<string, any> = Record<string, any>> = {
|
|
425
|
+
[BuiltInPolicyType.ATTRIBUTES]: AttributesPolicy<T>;
|
|
426
|
+
[BuiltInPolicyType.ATTRIBUTE_NAMES]: AttributeNamesPolicy;
|
|
427
|
+
[BuiltInPolicyType.DATE]: DatePolicy;
|
|
428
|
+
[BuiltInPolicyType.COMPOSITE]: CompositePolicy;
|
|
429
|
+
[BuiltInPolicyType.TIME]: TimePolicy;
|
|
430
|
+
[BuiltInPolicyType.IDENTITY]: IdentityPolicy;
|
|
431
|
+
[BuiltInPolicyType.PERMISSION_BINDING]: PermissionBindingPolicy;
|
|
432
|
+
};
|
|
433
|
+
type BuiltInPolicyTypeMap<T extends Record<string, any> = Record<string, any>> = { [K in keyof BuiltInPolicyTypeMapRaw<T> as `${K}`]: BuiltInPolicyTypeMapRaw<T>[K] };
|
|
434
|
+
type BuiltInPolicies<T extends Record<string, any> = Record<string, any>> = { [K in keyof BuiltInPolicyTypeMap<T>]: BuiltInPolicyTypeMap<T>[K] & {
|
|
435
|
+
type: K;
|
|
436
|
+
} }[keyof BuiltInPolicyTypeMap];
|
|
437
|
+
//#endregion
|
|
438
|
+
//#region src/policy/built-in/define.d.ts
|
|
439
|
+
declare function definePolicyWithType<K extends keyof BuiltInPolicyTypeMap, D extends BuiltInPolicyTypeMap<any>[K]>(type: K, data: D): PolicyWithType<D, K>;
|
|
440
|
+
//#endregion
|
|
441
|
+
//#region src/policy/constants.d.ts
|
|
442
|
+
declare const PolicyDefaultEvaluators: {
|
|
443
|
+
readonly composite: CompositePolicyEvaluator;
|
|
444
|
+
readonly attributes: AttributesPolicyEvaluator<Record<string, any>>;
|
|
445
|
+
readonly attributeNames: AttributeNamesPolicyEvaluator;
|
|
446
|
+
readonly date: DatePolicyEvaluator;
|
|
447
|
+
readonly identity: IdentityPolicyEvaluator;
|
|
448
|
+
readonly permissionBinding: PermissionBindingPolicyEvaluator;
|
|
449
|
+
readonly realmMatch: RealmMatchPolicyEvaluator;
|
|
450
|
+
readonly time: TimePolicyEvaluator;
|
|
451
|
+
};
|
|
452
|
+
//#endregion
|
|
453
|
+
//#region src/permission/error/module.d.ts
|
|
454
|
+
declare class PermissionError extends AuthupError {
|
|
455
|
+
constructor(options?: AuthupErrorOptions);
|
|
456
|
+
addIssue(data: PolicyIssue): void;
|
|
457
|
+
addIssues(data: PolicyIssue[]): void;
|
|
458
|
+
static notFound(name: string): PermissionError;
|
|
459
|
+
static denied(name: string): PermissionError;
|
|
460
|
+
static deniedAll(names: string[]): PermissionError;
|
|
461
|
+
static evaluationFailed(name: string | string[]): PermissionError;
|
|
462
|
+
}
|
|
463
|
+
//#endregion
|
|
464
|
+
//#region src/permission/types.d.ts
|
|
465
|
+
type BasePermission = {
|
|
466
|
+
name: string;
|
|
467
|
+
client_id?: string | null;
|
|
468
|
+
realm_id?: string | null;
|
|
469
|
+
decision_strategy?: `${DecisionStrategy$1}` | null;
|
|
470
|
+
};
|
|
471
|
+
type PermissionPolicyBinding = {
|
|
472
|
+
permission: BasePermission;
|
|
473
|
+
policies?: BasePolicy[];
|
|
474
|
+
};
|
|
475
|
+
//#endregion
|
|
476
|
+
//#region src/permission/helpers/equal.d.ts
|
|
477
|
+
declare function isPermissionPolicyBindingEqual(a: PermissionPolicyBinding, b: PermissionPolicyBinding): boolean;
|
|
478
|
+
//#endregion
|
|
479
|
+
//#region src/permission/helpers/key.d.ts
|
|
480
|
+
declare function buildPermissionKey(input: BasePermission): string;
|
|
481
|
+
//#endregion
|
|
482
|
+
//#region src/permission/helpers/merge.d.ts
|
|
483
|
+
declare function mergePermissionPolicyBindings(input: PermissionPolicyBinding[]): PermissionPolicyBinding[];
|
|
484
|
+
//#endregion
|
|
485
|
+
//#region src/permission/provider/types.d.ts
|
|
486
|
+
type PermissionGetOptions = {
|
|
487
|
+
name: string;
|
|
488
|
+
clientId?: string | null;
|
|
489
|
+
realmId?: string | null;
|
|
490
|
+
};
|
|
491
|
+
interface IPermissionProvider {
|
|
492
|
+
findOne(criteria: PermissionGetOptions): Promise<PermissionPolicyBinding | null>;
|
|
493
|
+
}
|
|
494
|
+
//#endregion
|
|
495
|
+
//#region src/permission/provider/memory.d.ts
|
|
496
|
+
declare class PermissionMemoryProvider implements IPermissionProvider {
|
|
497
|
+
protected items: Record<string, PermissionPolicyBinding>;
|
|
498
|
+
constructor(items?: PermissionPolicyBinding[]);
|
|
499
|
+
findOne(options: PermissionGetOptions): Promise<PermissionPolicyBinding | null>;
|
|
500
|
+
setMany(input: PermissionPolicyBinding[]): void;
|
|
501
|
+
}
|
|
502
|
+
//#endregion
|
|
503
|
+
//#region src/permission/evaluator/types.d.ts
|
|
504
|
+
interface IPermissionEvaluator {
|
|
505
|
+
evaluate(ctx: PermissionEvaluationContext): Promise<void>;
|
|
506
|
+
evaluateOneOf(ctx: PermissionEvaluationContext): Promise<void>;
|
|
507
|
+
preEvaluate(ctx: PermissionEvaluationContext): Promise<void>;
|
|
508
|
+
preEvaluateOneOf(ctx: PermissionEvaluationContext): Promise<void>;
|
|
509
|
+
}
|
|
510
|
+
type PermissionEvaluatorOptions = {
|
|
511
|
+
provider: IPermissionProvider;
|
|
512
|
+
policyEngine?: IPolicyEngine;
|
|
513
|
+
realmId?: string | null;
|
|
514
|
+
clientId?: string | null;
|
|
515
|
+
};
|
|
516
|
+
type PermissionEvaluationOptions = {
|
|
517
|
+
decisionStrategy?: `${DecisionStrategy}`;
|
|
518
|
+
policiesIncluded?: string[];
|
|
519
|
+
policiesExcluded?: string[];
|
|
520
|
+
};
|
|
521
|
+
type PermissionEvaluationContext = {
|
|
522
|
+
name: string | string[];
|
|
523
|
+
realmId?: string | null;
|
|
524
|
+
clientId?: string | null;
|
|
525
|
+
input?: PolicyData;
|
|
526
|
+
options?: PermissionEvaluationOptions;
|
|
527
|
+
};
|
|
528
|
+
//#endregion
|
|
529
|
+
//#region src/permission/evaluator/module.d.ts
|
|
530
|
+
declare class PermissionEvaluator implements IPermissionEvaluator {
|
|
531
|
+
protected provider: IPermissionProvider;
|
|
532
|
+
protected policyEngine: IPolicyEngine;
|
|
533
|
+
protected clientId?: string | null;
|
|
534
|
+
protected realmId?: string | null;
|
|
535
|
+
constructor(options: PermissionEvaluatorOptions);
|
|
536
|
+
protected findOne(input: string, overrides?: {
|
|
537
|
+
realmId?: string | null;
|
|
538
|
+
clientId?: string | null;
|
|
539
|
+
}): Promise<PermissionPolicyBinding | null>;
|
|
540
|
+
evaluate(ctx: PermissionEvaluationContext): Promise<void>;
|
|
541
|
+
evaluateOneOf(ctx: PermissionEvaluationContext): Promise<void>;
|
|
542
|
+
preEvaluate(ctx: PermissionEvaluationContext): Promise<void>;
|
|
543
|
+
preEvaluateOneOf(ctx: PermissionEvaluationContext): Promise<void>;
|
|
544
|
+
}
|
|
545
|
+
//#endregion
|
|
546
|
+
export { AttributeNamesPolicy, AttributeNamesPolicyEvaluator, AttributeNamesPolicyValidator, AttributesPolicy, AttributesPolicyEvaluator, AttributesPolicyQuery, AttributesPolicyValidator, BasePermission, BasePolicy, BuiltInPolicies, BuiltInPolicyType, BuiltInPolicyTypeMap, CompositePolicy, CompositePolicyEvaluator, CompositePolicyValidator, DatePolicy, DatePolicyEvaluator, DatePolicyValidator, DecisionStrategy, IPermissionEvaluator, IPermissionProvider, IPolicyData, IPolicyEngine, IPolicyEvaluator, IdentityPolicy, IdentityPolicyData, IdentityPolicyEvaluator, IdentityPolicyValidator, PermissionBindingPolicy, PermissionBindingPolicyEvaluator, PermissionBindingPolicyValidator, PermissionError, PermissionEvaluationContext, PermissionEvaluationOptions, PermissionEvaluator, PermissionEvaluatorOptions, PermissionGetOptions, PermissionMemoryProvider, PermissionPolicyBinding, PolicyData, PolicyDefaultEvaluators, PolicyEngine, PolicyError, PolicyEvaluationContext, PolicyEvaluationContextInput, PolicyEvaluationResult, PolicyEvaluators, PolicyIssue, PolicyIssueCode, PolicyIssueGroup, PolicyIssueItem, PolicyIssueSeverity, PolicyWithType, RealmMatchPolicy, RealmMatchPolicyEvaluator, RealmMatchPolicyValidator, SystemPolicyName, TimePolicy, TimePolicyEvaluator, TimePolicyInterval, TimePolicyValidator, buildPermissionKey, defineAttributesPolicy, definePolicyEvaluationContext, definePolicyIssueGroup, definePolicyIssueItem, definePolicyWithType, isCompositePolicy, isIntervalForDayOfMonth, isIntervalForDayOfWeek, isIntervalForDayOfYear, isPermissionPolicyBindingEqual, maybeInvertPolicyOutcome, mergePermissionPolicyBindings };
|
|
547
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/policy/data.ts","../src/policy/evaluation/context/types.ts","../src/policy/evaluation/context/define.ts","../src/policy/evaluation/types.ts","../src/policy/types.ts","../src/policy/engine/types.ts","../src/policy/engine/module.ts","../src/policy/issue/constants.ts","../src/policy/issue/types.ts","../src/policy/issue/define.ts","../src/policy/error/module.ts","../src/policy/helpers/invert.ts","../src/policy/built-in/attribute-names/types.ts","../src/policy/built-in/attribute-names/validator.ts","../src/policy/built-in/attributes/types.ts","../src/policy/built-in/attributes/define.ts","../src/policy/built-in/attributes/validator.ts","../src/policy/built-in/attributes/evaluator.ts","../src/policy/built-in/attribute-names/evaluator.ts","../src/policy/built-in/composite/types.ts","../src/policy/built-in/composite/validator.ts","../src/policy/built-in/composite/evaluator.ts","../src/policy/built-in/composite/helper.ts","../src/policy/built-in/date/types.ts","../src/policy/built-in/date/validator.ts","../src/policy/built-in/date/evaluator.ts","../src/policy/built-in/identity/types.ts","../src/policy/built-in/identity/data/validator.ts","../src/policy/built-in/identity/validator.ts","../src/policy/built-in/identity/evaluator.ts","../src/policy/built-in/permission-binding/types.ts","../src/policy/built-in/permission-binding/validator.ts","../src/policy/built-in/permission-binding/module.ts","../src/policy/built-in/realm-match/types.ts","../src/policy/built-in/realm-match/validator.ts","../src/policy/built-in/realm-match/evaluator.ts","../src/policy/built-in/time/constants.ts","../src/policy/built-in/time/types.ts","../src/policy/built-in/time/validator.ts","../src/policy/built-in/time/evaluator.ts","../src/policy/built-in/time/helpers.ts","../src/policy/built-in/constants.ts","../src/policy/built-in/types.ts","../src/policy/built-in/define.ts","../src/policy/constants.ts","../src/permission/error/module.ts","../src/permission/types.ts","../src/permission/helpers/equal.ts","../src/permission/helpers/key.ts","../src/permission/helpers/merge.ts","../src/permission/provider/types.ts","../src/permission/provider/memory.ts","../src/permission/evaluator/types.ts","../src/permission/evaluator/module.ts"],"mappings":"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"}
|