@authup/access 1.0.0-beta.52 → 1.0.0-beta.54

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 (44) hide show
  1. package/dist/index.d.mts +150 -24
  2. package/dist/index.d.mts.map +1 -1
  3. package/dist/index.mjs +309 -89
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/permission/evaluator/module.d.ts +12 -1
  6. package/dist/permission/evaluator/module.d.ts.map +1 -1
  7. package/dist/permission/evaluator/types.d.ts +48 -0
  8. package/dist/permission/evaluator/types.d.ts.map +1 -1
  9. package/dist/permission/helpers/aggregate.d.ts +1 -1
  10. package/dist/permission/realm-scope/constants.d.ts +1 -1
  11. package/dist/permission/realm-scope/constants.d.ts.map +1 -1
  12. package/dist/permission/types.d.ts +7 -7
  13. package/dist/permission/types.d.ts.map +1 -1
  14. package/dist/policy/built-in/attribute-names/evaluator.d.ts +1 -0
  15. package/dist/policy/built-in/attribute-names/evaluator.d.ts.map +1 -1
  16. package/dist/policy/built-in/attributes/evaluator.d.ts +5 -0
  17. package/dist/policy/built-in/attributes/evaluator.d.ts.map +1 -1
  18. package/dist/policy/built-in/attributes/types.d.ts +2 -2
  19. package/dist/policy/built-in/attributes/types.d.ts.map +1 -1
  20. package/dist/policy/built-in/composite/evaluator.d.ts.map +1 -1
  21. package/dist/policy/built-in/composite/types.d.ts +1 -1
  22. package/dist/policy/built-in/composite/types.d.ts.map +1 -1
  23. package/dist/policy/built-in/constants.d.ts +0 -1
  24. package/dist/policy/built-in/constants.d.ts.map +1 -1
  25. package/dist/policy/built-in/identity/evaluator.d.ts +1 -0
  26. package/dist/policy/built-in/identity/evaluator.d.ts.map +1 -1
  27. package/dist/policy/built-in/identity/types.d.ts +1 -1
  28. package/dist/policy/built-in/permission-binding/module.d.ts +1 -0
  29. package/dist/policy/built-in/permission-binding/module.d.ts.map +1 -1
  30. package/dist/policy/built-in/realm-match/evaluator.d.ts +14 -0
  31. package/dist/policy/built-in/realm-match/evaluator.d.ts.map +1 -1
  32. package/dist/policy/built-in/realm-match/types.d.ts +6 -6
  33. package/dist/policy/built-in/realm-match/types.d.ts.map +1 -1
  34. package/dist/policy/built-in/time/types.d.ts +3 -3
  35. package/dist/policy/built-in/time/types.d.ts.map +1 -1
  36. package/dist/policy/built-in/types.d.ts +2 -0
  37. package/dist/policy/built-in/types.d.ts.map +1 -1
  38. package/dist/policy/engine/module.d.ts.map +1 -1
  39. package/dist/policy/evaluation/context/define.d.ts.map +1 -1
  40. package/dist/policy/evaluation/context/types.d.ts +7 -0
  41. package/dist/policy/evaluation/context/types.d.ts.map +1 -1
  42. package/dist/policy/evaluation/types.d.ts +42 -0
  43. package/dist/policy/evaluation/types.d.ts.map +1 -1
  44. package/package.json +6 -4
package/dist/index.d.mts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { AuthupError, AuthupErrorOptions } from "@authup/errors";
2
2
  import { DecisionStrategy } from "@authup/kit";
3
+ import { ICondition } from "@rapiq/core";
3
4
  import { Container, Issue, IssueGroup, IssueItem } from "validup";
4
- import { MongoQuery } from "@ucast/mongo2js";
5
+ import { MongoFiltersParser, MongoFiltersParserInput } from "@rapiq/parser-mongo";
5
6
  //#region src/policy/data.d.ts
6
7
  interface IPolicyData {
7
8
  set(key: string, value: unknown): void;
@@ -30,6 +31,13 @@ type PolicyEvaluationContext = {
30
31
  readonly exclude: string[];
31
32
  readonly include: string[];
32
33
  readonly data: PolicyData;
34
+ /**
35
+ * Attach the condition form (`PolicyEvaluationResult.condition`) to pending
36
+ * subtrees via `IPolicyEvaluator.toCondition`. Off by default — evaluation-only
37
+ * callers (evaluate / preEvaluate hot paths) must not pay the lowering cost;
38
+ * query-build callers opt in.
39
+ */
40
+ readonly withConditions: boolean;
33
41
  };
34
42
  type PolicyEvaluationContextInput = Partial<PolicyEvaluationContext>;
35
43
  //#endregion
@@ -40,9 +48,50 @@ declare function definePolicyEvaluationContext(input?: PolicyEvaluationContextIn
40
48
  type PolicyEvaluators = Record<string, IPolicyEvaluator>;
41
49
  type PolicyEvaluationResult = {
42
50
  success: boolean;
51
+ /**
52
+ * The policy could not be settled yet — a data key it requires is absent from the
53
+ * evaluation bag (see {@link IPolicyEvaluator.requires}). Pending always rides on
54
+ * `success: false` (fail-closed: a consumer that ignores the flag behaves like a
55
+ * deny); only pre-gate style consumers treat pending as a pass.
56
+ *
57
+ * Unknown stays unknown: `invert` is never applied to a pending result.
58
+ */
59
+ pending?: boolean;
60
+ /**
61
+ * EXACT condition form of the pending subtree (see
62
+ * {@link IPolicyEvaluator.toCondition}): a row satisfies the condition iff the
63
+ * pending subtree settles true on that row's attributes, given the current bag.
64
+ * Attached only on pending results, only when the evaluation context requested it
65
+ * (`withConditions`), and only when the ENTIRE pending subtree is expressible —
66
+ * a partially expressible tree carries no condition (fail-safe: the consumer
67
+ * falls back to a per-row post-check).
68
+ */
69
+ condition?: ICondition;
43
70
  issues?: Issue[];
44
71
  };
45
72
  interface IPolicyEvaluator {
73
+ /**
74
+ * PolicyData keys this policy needs before it can settle (e.g. `identity`,
75
+ * `attributes`). When any returned key is absent from the evaluation bag, the
76
+ * engine returns a pending result instead of invoking {@link evaluate}.
77
+ *
78
+ * Receives the raw (unvalidated) policy configuration, since data needs may be
79
+ * config-dependent (e.g. realm-match scope vs. attribute mode). Omit the method
80
+ * (or return an empty array) for policies evaluable with ambient data only.
81
+ */
82
+ requires?(value: Record<string, any>): string[];
83
+ /**
84
+ * Express the policy as a condition over row attributes (rapiq `ICondition`)
85
+ * instead of waiting for the row — the WHERE-pushdown capability. The result is
86
+ * a partial evaluation against the knowns in `context.data` (e.g. the actor's
87
+ * realm is baked into a realm-match condition), and must be EXACT: for every
88
+ * row, `condition(row)` === "this policy settles true with attributes = row".
89
+ *
90
+ * Return `null` when this configuration is not expressible (the policy then
91
+ * stays a per-row post-check — always sound). Omit the method for policies that
92
+ * never lower (identity, date/time, attributeNames).
93
+ */
94
+ toCondition?(value: Record<string, any>, context: PolicyEvaluationContext): Promise<ICondition | null>;
46
95
  /**
47
96
  * Execute the policy with specific data and a given context.
48
97
  */
@@ -146,7 +195,7 @@ declare class AttributeNamesPolicyValidator extends Container<AttributeNamesPoli
146
195
  }
147
196
  //#endregion
148
197
  //#region src/policy/built-in/attributes/types.d.ts
149
- type AttributesPolicyQuery<T> = MongoQuery<T>;
198
+ type AttributesPolicyQuery<T extends Record<string, any> = Record<string, any>> = MongoFiltersParserInput<T>;
150
199
  interface AttributesPolicy<T extends Record<string, any> = Record<string, any>> extends BasePolicy {
151
200
  query: AttributesPolicyQuery<T>;
152
201
  }
@@ -162,7 +211,10 @@ declare class AttributesPolicyValidator<T extends Record<string, any> = Record<s
162
211
  //#region src/policy/built-in/attributes/evaluator.d.ts
163
212
  declare class AttributesPolicyEvaluator<T extends Record<string, any> = Record<string, any>> implements IPolicyEvaluator {
164
213
  protected validator: AttributesPolicyValidator<T>;
214
+ protected parser: MongoFiltersParser;
165
215
  constructor();
216
+ requires(): string[];
217
+ toCondition(value: Record<string, any>): Promise<ICondition | null>;
166
218
  accessData(ctx: PolicyEvaluationContext): Promise<T | null>;
167
219
  evaluate(value: Record<string, any>, ctx: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
168
220
  protected fixQuery(query: unknown | unknown[]): void;
@@ -173,6 +225,7 @@ declare class AttributeNamesPolicyEvaluator implements IPolicyEvaluator {
173
225
  protected validator: AttributeNamesPolicyValidator;
174
226
  protected attributesEvaluator: AttributesPolicyEvaluator;
175
227
  constructor();
228
+ requires(): string[];
176
229
  evaluate(value: Record<string, any>, ctx: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
177
230
  }
178
231
  //#endregion
@@ -181,7 +234,7 @@ interface CompositePolicy extends BasePolicy {
181
234
  /**
182
235
  * How to decide if a policy evaluates to true.
183
236
  */
184
- decision_strategy?: `${DecisionStrategy}`;
237
+ decisionStrategy?: `${DecisionStrategy}`;
185
238
  /**
186
239
  * Child policies.
187
240
  */
@@ -230,7 +283,7 @@ interface IdentityPolicy extends BasePolicy {
230
283
  }
231
284
  type IdentityPolicyData = {
232
285
  /**
233
- * user, client, robot
286
+ * user, client
234
287
  */
235
288
  type: string;
236
289
  /**
@@ -266,6 +319,7 @@ declare class IdentityPolicyEvaluator implements IPolicyEvaluator {
266
319
  protected validator: IdentityPolicyValidator;
267
320
  protected dataValidator: PolicyIdentityDataValidator;
268
321
  constructor();
322
+ requires(): string[];
269
323
  accessData(ctx: PolicyEvaluationContext): Promise<IdentityPolicyData | null>;
270
324
  evaluate(value: Record<string, any>, ctx: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
271
325
  }
@@ -282,6 +336,7 @@ declare class PermissionBindingPolicyValidator extends Container<PermissionBindi
282
336
  declare class PermissionBindingPolicyEvaluator implements IPolicyEvaluator {
283
337
  protected validator: PermissionBindingPolicyValidator;
284
338
  constructor();
339
+ requires(): string[];
285
340
  evaluate(value: Record<string, any>): Promise<PolicyEvaluationResult>;
286
341
  }
287
342
  //#endregion
@@ -298,7 +353,7 @@ declare enum RealmScope {
298
353
  NONE = "none",
299
354
  /** Own realm only — resource realm must equal the actor's realm. */
300
355
  OWN = "own",
301
- /** Own realm or null/global resources (realm_id === null). */
356
+ /** Own realm or null/global resources (realmId === null). */
302
357
  OWN_OR_NULL = "ownOrNull",
303
358
  /** Any realm, including null/global. */
304
359
  ANY = "any"
@@ -334,26 +389,26 @@ interface RealmMatchPolicy extends BasePolicy {
334
389
  /**
335
390
  * Determines how realm-id/name matches are handled.
336
391
  */
337
- decision_strategy?: `${DecisionStrategy}`;
392
+ decisionStrategy?: `${DecisionStrategy}`;
338
393
  /**
339
394
  * Specifies the name(s) of the realm-id/name attribute(s) used for matching.
340
395
  * Can be a single attribute name or an array of attribute names.
341
396
  */
342
- attribute_name?: string | string[];
397
+ attributeName?: string | string[];
343
398
  /**
344
399
  * Only match if the attribute is strict equal to the name.
345
400
  */
346
- attribute_name_strict?: boolean;
401
+ attributeNameStrict?: boolean;
347
402
  /**
348
403
  * Determines if resources with null realm-id/name value should match all identity realms.
349
404
  * If true, any identity realm can access resources with null realm-id/name values.
350
405
  */
351
- attribute_null_match_all?: boolean;
406
+ attributeNullMatchAll?: boolean;
352
407
  /**
353
408
  * Coarse, actor-relative realm reach (none/own/ownOrNull/any). When set, the evaluator
354
409
  * runs in SCOPE MODE: it matches the resource realm read from the REALM_MATCH data key
355
- * against the identity realm via `realmScopeMatches`, and ignores `attribute_name` /
356
- * `attribute_null_match_all`. With no REALM_MATCH key present it neutral-passes.
410
+ * against the identity realm via `realmScopeMatches`, and ignores `attributeName` /
411
+ * `attributeNullMatchAll`. With no REALM_MATCH key present it neutral-passes.
357
412
  */
358
413
  scope?: `${RealmScope}`;
359
414
  }
@@ -369,6 +424,19 @@ declare class RealmMatchPolicyEvaluator implements IPolicyEvaluator {
369
424
  protected identityEvaluator: IdentityPolicyEvaluator;
370
425
  protected attributesEvaluator: AttributesPolicyEvaluator;
371
426
  constructor();
427
+ requires(value: Record<string, any>): string[];
428
+ /**
429
+ * Condition form over the row's realm column, with the actor realm baked in
430
+ * (mirrors `realmScopeMatches` / the attribute-mode match). Exactness holds for
431
+ * row-shaped data where the referenced field exists (DB rows) — the object-bag
432
+ * "key absent → neutral-pass" case has no SQL counterpart. Lowerable configs:
433
+ * scope mode (field = single-string `attributeName`, default `realmId` — scope-mode
434
+ * EVALUATION ignores `attributeName`, lowering reuses it as the column override),
435
+ * and strict attribute mode with a single explicit `attributeName`. Everything
436
+ * else (multi-key / default-key CONSENSUS, non-strict key expansion) is
437
+ * row-shape-dependent and stays a post-check.
438
+ */
439
+ toCondition(value: Record<string, any>, ctx: PolicyEvaluationContext): Promise<ICondition | null>;
372
440
  evaluate(value: Record<string, any>, ctx: PolicyEvaluationContext): Promise<PolicyEvaluationResult>;
373
441
  }
374
442
  //#endregion
@@ -397,15 +465,15 @@ interface TimePolicy extends BasePolicy {
397
465
  /**
398
466
  * 0 (Sunday) - 6 (Saturday)
399
467
  */
400
- day_of_week?: number;
468
+ dayOfWeek?: number;
401
469
  /**
402
470
  * 1 - 31
403
471
  */
404
- day_of_month?: number;
472
+ dayOfMonth?: number;
405
473
  /**
406
474
  * 1 - 365
407
475
  */
408
- day_of_year?: number;
476
+ dayOfYear?: number;
409
477
  }
410
478
  //#endregion
411
479
  //#region src/policy/built-in/time/validator.d.ts
@@ -466,7 +534,6 @@ declare const SystemPolicyName: {
466
534
  readonly PERMISSION_BINDING: "system.permission-binding";
467
535
  readonly REALM_MATCH: "system.realm-match";
468
536
  readonly CLIENT_NAMES_SELF_MANAGE: "system.client-names-self-manage";
469
- readonly ROBOT_NAMES_SELF_MANAGE: "system.robot-names-self-manage";
470
537
  readonly USER_NAMES_SELF_MANAGE: "system.user-names-self-manage";
471
538
  };
472
539
  //#endregion
@@ -479,6 +546,7 @@ type BuiltInPolicyTypeMapRaw<T extends Record<string, any> = Record<string, any>
479
546
  [BuiltInPolicyType.TIME]: TimePolicy;
480
547
  [BuiltInPolicyType.IDENTITY]: IdentityPolicy;
481
548
  [BuiltInPolicyType.PERMISSION_BINDING]: PermissionBindingPolicy;
549
+ [BuiltInPolicyType.REALM_MATCH]: RealmMatchPolicy;
482
550
  };
483
551
  type BuiltInPolicyTypeMap<T extends Record<string, any> = Record<string, any>> = { [K in keyof BuiltInPolicyTypeMapRaw<T> as `${K}`]: BuiltInPolicyTypeMapRaw<T>[K]; };
484
552
  type BuiltInPolicies<T extends Record<string, any> = Record<string, any>> = { [K in keyof BuiltInPolicyTypeMap<T>]: BuiltInPolicyTypeMap<T>[K] & {
@@ -542,9 +610,9 @@ declare function isPermissionError(input: unknown): input is PermissionError;
542
610
  //#region src/permission/types.d.ts
543
611
  type BasePermission = {
544
612
  name: string;
545
- client_id?: string | null;
546
- realm_id?: string | null;
547
- decision_strategy?: `${DecisionStrategy}` | null;
613
+ clientId?: string | null;
614
+ realmId?: string | null;
615
+ decisionStrategy?: `${DecisionStrategy}` | null;
548
616
  };
549
617
  /**
550
618
  * A raw permission grant: one permission with its policies and realm reach, as loaded from a
@@ -559,16 +627,16 @@ type PermissionPolicyBinding = {
559
627
  * most restrictive `own` (fail-closed). NOT part of the binding identity key
560
628
  * (see isPermissionPolicyBindingEqual).
561
629
  */
562
- realm_scope?: `${RealmScope}`;
630
+ realmScope?: `${RealmScope}`;
563
631
  };
564
632
  /**
565
633
  * One disjunction term of an aggregated binding: a single grant's realm reach paired with its
566
- * own (single) policy. A disjunction-aware consumer ORs `realmScopeMatches(realm_scope) ∧ policy`
634
+ * own (single) policy. A disjunction-aware consumer ORs `realmScopeMatches(realmScope) ∧ policy`
567
635
  * across the grants of a permission.
568
636
  */
569
637
  type PermissionGrant = {
570
638
  /** Relative realm reach (none/own/ownOrNull/any), normalized — fail-closed default `own`. */
571
- realm_scope: `${RealmScope}`;
639
+ realmScope: `${RealmScope}`;
572
640
  /**
573
641
  * The grant's policy: the raw junction policy (its `id` preserved, for propagation) for a
574
642
  * single-policy grant, a composite for a multi-policy (Layer-1) binding, or `undefined`
@@ -579,7 +647,7 @@ type PermissionGrant = {
579
647
  /**
580
648
  * A permission together with the actor's disjunction of grants for it. Output of
581
649
  * `aggregatePermissionPolicyBindings` — the honest, lossless replacement for the collapsed
582
- * `PermissionPolicyBinding` (no top-level realm_scope/policies; the access decision is the
650
+ * `PermissionPolicyBinding` (no top-level realmScope/policies; the access decision is the
583
651
  * OR over `grants`).
584
652
  */
585
653
  type PermissionPolicyBindingAggregated = {
@@ -590,7 +658,7 @@ type PermissionPolicyBindingAggregated = {
590
658
  //#region src/permission/helpers/aggregate.d.ts
591
659
  /**
592
660
  * Group raw permission-policy bindings by permission key into the actor's disjunction of
593
- * `(realm_scope, policy)` grants per permission — with NO lossy collapse. Every consumer
661
+ * `(realmScope, policy)` grants per permission — with NO lossy collapse. Every consumer
594
662
  * (the binding evaluator, isSuperset, junction propagation, the memory provider) evaluates the
595
663
  * grant disjunction directly, so each grant's realm reach stays paired with the policy that
596
664
  * gates it.
@@ -640,6 +708,7 @@ interface IPermissionEvaluator {
640
708
  evaluateOneOf(ctx: PermissionEvaluationContext): Promise<void>;
641
709
  preEvaluate(ctx: PermissionEvaluationContext): Promise<void>;
642
710
  preEvaluateOneOf(ctx: PermissionEvaluationContext): Promise<void>;
711
+ compile(ctx: PermissionCompileContext): Promise<PermissionCompileResult>;
643
712
  }
644
713
  type PermissionEvaluatorOptions = {
645
714
  provider: IPermissionProvider;
@@ -651,6 +720,16 @@ type PermissionEvaluationOptions = {
651
720
  decisionStrategy?: `${DecisionStrategy}`;
652
721
  policiesIncluded?: string[];
653
722
  policiesExcluded?: string[];
723
+ /**
724
+ * How a grant whose policy evaluation is PENDING (a required data key is absent —
725
+ * see `PolicyEvaluationResult.pending`) is treated:
726
+ *
727
+ * - `deny` (default): pending counts as failure — full `evaluate()` semantics,
728
+ * matching the historical missing-data deny.
729
+ * - `permit`: pending counts as pass — the data-availability-derived pre-gate
730
+ * (`preEvaluate()`): only a tree that settles false with the current bag denies.
731
+ */
732
+ pendingPolicies?: 'deny' | 'permit';
654
733
  };
655
734
  type PermissionEvaluationContext = {
656
735
  name: string | string[];
@@ -659,6 +738,42 @@ type PermissionEvaluationContext = {
659
738
  data?: PolicyData;
660
739
  options?: PermissionEvaluationOptions;
661
740
  };
741
+ type PermissionCompileContext = {
742
+ /**
743
+ * Permission name(s). Several names compile as a disjunction — the row is
744
+ * readable when ANY of them passes (`evaluateOneOf` semantics).
745
+ */
746
+ name: string | string[];
747
+ realmId?: string | null;
748
+ clientId?: string | null;
749
+ /**
750
+ * The knowns bag (typically the actor identity). Row-dependent keys
751
+ * (`attributes`, `realmMatch`) are deliberately absent — they are what the
752
+ * compiled condition ranges over.
753
+ */
754
+ data?: PolicyData;
755
+ };
756
+ /**
757
+ * Outcome of compiling a permission's policy trees against the knowns bag
758
+ * (issue #3286 phase 3) — the query-build counterpart of `evaluate()`:
759
+ *
760
+ * - `allow` — settled true for every row; no restriction needed.
761
+ * - `deny` — settled false for every row; no row can pass.
762
+ * - `conditional` — the EXACT residual as a rapiq condition over row attributes:
763
+ * push it into the row query (WHERE) and skip per-row post-evaluation.
764
+ * - `post` — some pending policy is not expressible as a condition; fall back to
765
+ * loading rows and evaluating per row (always sound).
766
+ */
767
+ type PermissionCompileResult = {
768
+ verdict: 'allow';
769
+ } | {
770
+ verdict: 'deny';
771
+ } | {
772
+ verdict: 'conditional';
773
+ condition: ICondition;
774
+ } | {
775
+ verdict: 'post';
776
+ };
662
777
  //#endregion
663
778
  //#region src/permission/evaluator/module.d.ts
664
779
  declare class PermissionEvaluator implements IPermissionEvaluator {
@@ -675,7 +790,18 @@ declare class PermissionEvaluator implements IPermissionEvaluator {
675
790
  evaluateOneOf(ctx: PermissionEvaluationContext): Promise<void>;
676
791
  preEvaluate(ctx: PermissionEvaluationContext): Promise<void>;
677
792
  preEvaluateOneOf(ctx: PermissionEvaluationContext): Promise<void>;
793
+ /**
794
+ * Compile the permission's policy trees against the knowns bag into a
795
+ * {@link PermissionCompileResult} — the query-build counterpart of
796
+ * {@link evaluate} (issue #3286 phase 3). Runs the SAME evaluation walk with
797
+ * `withConditions` enabled: policies that settle with the knowns settle here,
798
+ * pending subtrees contribute their exact condition form. Multiple names are
799
+ * a disjunction (any-of), so a single non-expressible name degrades the whole
800
+ * compilation to `post` — pushing only some disjuncts would wrongly exclude
801
+ * rows another name would admit.
802
+ */
803
+ compile(ctx: PermissionCompileContext): Promise<PermissionCompileResult>;
678
804
  }
679
805
  //#endregion
680
- export { AttributeNamesPolicy, AttributeNamesPolicyEvaluator, AttributeNamesPolicyValidator, AttributesPolicy, AttributesPolicyEvaluator, AttributesPolicyQuery, AttributesPolicyValidator, BasePermission, BasePolicy, BuiltInPolicies, BuiltInPolicyType, BuiltInPolicyTypeMap, CompositePolicy, CompositePolicyEvaluator, CompositePolicyValidator, DatePolicy, DatePolicyEvaluator, DatePolicyValidator, IPermissionEvaluator, IPermissionProvider, IPolicyData, IPolicyEngine, IPolicyEvaluator, IdentityPolicy, IdentityPolicyData, IdentityPolicyEvaluator, IdentityPolicyValidator, PERMISSION_ERROR_INSTANCE, POLICY_ERROR_INSTANCE, PermissionBindingPolicy, PermissionBindingPolicyEvaluator, PermissionBindingPolicyValidator, PermissionError, PermissionEvaluationContext, PermissionEvaluationOptions, PermissionEvaluator, PermissionEvaluatorOptions, PermissionGetOptions, PermissionGrant, PermissionMemoryProvider, PermissionPolicyBinding, PermissionPolicyBindingAggregated, PolicyData, PolicyDefaultEvaluators, PolicyEngine, PolicyError, PolicyEvaluationContext, PolicyEvaluationContextInput, PolicyEvaluationResult, PolicyEvaluators, PolicyInput, PolicyIssue, PolicyIssueCode, PolicyIssueGroup, PolicyIssueItem, PolicyIssueSeverity, PolicyWithType, REALM_SCOPE_ORDER, RealmMatchPolicy, RealmMatchPolicyEvaluator, RealmMatchPolicyValidator, RealmScope, SystemPolicyName, TimePolicy, TimePolicyEvaluator, TimePolicyInterval, TimePolicyValidator, aggregatePermissionPolicyBindings, buildPermissionKey, compareRealmScope, defineAttributesPolicy, definePolicyData, definePolicyEvaluationContext, definePolicyIssueGroup, definePolicyIssueItem, definePolicyWithType, grantDominates, isCompositePolicy, isIntervalForDayOfMonth, isIntervalForDayOfWeek, isIntervalForDayOfYear, isPermissionError, isPermissionPolicyBindingEqual, isPolicyError, maxRealmScope, maybeInvertPolicyOutcome, minRealmScope, normalizeRealmScope, realmScopeMatches };
806
+ export { AttributeNamesPolicy, AttributeNamesPolicyEvaluator, AttributeNamesPolicyValidator, AttributesPolicy, AttributesPolicyEvaluator, AttributesPolicyQuery, AttributesPolicyValidator, BasePermission, BasePolicy, BuiltInPolicies, BuiltInPolicyType, BuiltInPolicyTypeMap, CompositePolicy, CompositePolicyEvaluator, CompositePolicyValidator, DatePolicy, DatePolicyEvaluator, DatePolicyValidator, IPermissionEvaluator, IPermissionProvider, IPolicyData, IPolicyEngine, IPolicyEvaluator, IdentityPolicy, IdentityPolicyData, IdentityPolicyEvaluator, IdentityPolicyValidator, PERMISSION_ERROR_INSTANCE, POLICY_ERROR_INSTANCE, PermissionBindingPolicy, PermissionBindingPolicyEvaluator, PermissionBindingPolicyValidator, PermissionCompileContext, PermissionCompileResult, PermissionError, PermissionEvaluationContext, PermissionEvaluationOptions, PermissionEvaluator, PermissionEvaluatorOptions, PermissionGetOptions, PermissionGrant, PermissionMemoryProvider, PermissionPolicyBinding, PermissionPolicyBindingAggregated, PolicyData, PolicyDefaultEvaluators, PolicyEngine, PolicyError, PolicyEvaluationContext, PolicyEvaluationContextInput, PolicyEvaluationResult, PolicyEvaluators, PolicyInput, PolicyIssue, PolicyIssueCode, PolicyIssueGroup, PolicyIssueItem, PolicyIssueSeverity, PolicyWithType, REALM_SCOPE_ORDER, RealmMatchPolicy, RealmMatchPolicyEvaluator, RealmMatchPolicyValidator, RealmScope, SystemPolicyName, TimePolicy, TimePolicyEvaluator, TimePolicyInterval, TimePolicyValidator, aggregatePermissionPolicyBindings, buildPermissionKey, compareRealmScope, defineAttributesPolicy, definePolicyData, definePolicyEvaluationContext, definePolicyIssueGroup, definePolicyIssueItem, definePolicyWithType, grantDominates, isCompositePolicy, isIntervalForDayOfMonth, isIntervalForDayOfWeek, isIntervalForDayOfYear, isPermissionError, isPermissionPolicyBindingEqual, isPolicyError, maxRealmScope, maybeInvertPolicyOutcome, minRealmScope, normalizeRealmScope, realmScopeMatches };
681
807
  //# sourceMappingURL=index.d.mts.map
@@ -1 +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/error/check.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/permission/realm-scope/constants.ts","../src/permission/realm-scope/helpers.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/policy/input.ts","../src/permission/error/module.ts","../src/permission/error/check.ts","../src/permission/types.ts","../src/permission/helpers/aggregate.ts","../src/permission/helpers/equal.ts","../src/permission/helpers/grant.ts","../src/permission/helpers/key.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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"}
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/error/check.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/permission/realm-scope/constants.ts","../src/permission/realm-scope/helpers.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/policy/input.ts","../src/permission/error/module.ts","../src/permission/error/check.ts","../src/permission/types.ts","../src/permission/helpers/aggregate.ts","../src/permission/helpers/equal.ts","../src/permission/helpers/grant.ts","../src/permission/helpers/key.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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"}