@authup/access 1.0.0-beta.33 → 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.
Files changed (51) hide show
  1. package/dist/index.d.mts +547 -0
  2. package/dist/index.d.mts.map +1 -0
  3. package/dist/index.mjs +980 -1149
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/permission/evaluator/module.d.ts +3 -3
  6. package/dist/permission/evaluator/module.d.ts.map +1 -1
  7. package/dist/permission/evaluator/types.d.ts +1 -1
  8. package/dist/permission/evaluator/types.d.ts.map +1 -1
  9. package/dist/permission/helpers/equal.d.ts +2 -1
  10. package/dist/permission/helpers/equal.d.ts.map +1 -1
  11. package/dist/permission/helpers/index.d.ts +1 -1
  12. package/dist/permission/helpers/index.d.ts.map +1 -1
  13. package/dist/permission/helpers/key.d.ts +2 -1
  14. package/dist/permission/helpers/key.d.ts.map +1 -1
  15. package/dist/permission/helpers/merge.d.ts +2 -1
  16. package/dist/permission/helpers/merge.d.ts.map +1 -1
  17. package/dist/permission/provider/memory.d.ts +5 -5
  18. package/dist/permission/provider/memory.d.ts.map +1 -1
  19. package/dist/permission/provider/types.d.ts +2 -2
  20. package/dist/permission/provider/types.d.ts.map +1 -1
  21. package/dist/permission/types.d.ts +12 -1
  22. package/dist/permission/types.d.ts.map +1 -1
  23. package/dist/policy/built-in/attribute-names/types.d.ts +2 -2
  24. package/dist/policy/built-in/attribute-names/validator.d.ts.map +1 -1
  25. package/dist/policy/built-in/attributes/types.d.ts +2 -2
  26. package/dist/policy/built-in/attributes/validator.d.ts.map +1 -1
  27. package/dist/policy/built-in/composite/evaluator.d.ts.map +1 -1
  28. package/dist/policy/built-in/composite/types.d.ts +3 -3
  29. package/dist/policy/built-in/composite/types.d.ts.map +1 -1
  30. package/dist/policy/built-in/composite/validator.d.ts.map +1 -1
  31. package/dist/policy/built-in/date/types.d.ts +2 -2
  32. package/dist/policy/built-in/date/validator.d.ts.map +1 -1
  33. package/dist/policy/built-in/identity/data/validator.d.ts.map +1 -1
  34. package/dist/policy/built-in/identity/types.d.ts +2 -2
  35. package/dist/policy/built-in/identity/validator.d.ts +1 -1
  36. package/dist/policy/built-in/identity/validator.d.ts.map +1 -1
  37. package/dist/policy/built-in/permission-binding/types.d.ts +2 -2
  38. package/dist/policy/built-in/permission-binding/validator.d.ts +1 -1
  39. package/dist/policy/built-in/permission-binding/validator.d.ts.map +1 -1
  40. package/dist/policy/built-in/realm-match/types.d.ts +2 -2
  41. package/dist/policy/built-in/realm-match/validator.d.ts.map +1 -1
  42. package/dist/policy/built-in/time/evaluator.d.ts.map +1 -1
  43. package/dist/policy/built-in/time/types.d.ts +2 -2
  44. package/dist/policy/built-in/time/validator.d.ts.map +1 -1
  45. package/dist/policy/engine/module.d.ts +3 -3
  46. package/dist/policy/engine/module.d.ts.map +1 -1
  47. package/dist/policy/engine/types.d.ts +3 -3
  48. package/dist/policy/engine/types.d.ts.map +1 -1
  49. package/dist/policy/types.d.ts +6 -8
  50. package/dist/policy/types.d.ts.map +1 -1
  51. package/package.json +9 -12
@@ -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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"}