@cloud-copilot/iam-lens 0.1.136 → 0.1.138

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 (31) hide show
  1. package/dist/cjs/index.d.ts +2 -2
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/principalCan/permission.d.ts +24 -5
  5. package/dist/cjs/principalCan/permission.d.ts.map +1 -1
  6. package/dist/cjs/principalCan/permission.js +114 -30
  7. package/dist/cjs/principalCan/permission.js.map +1 -1
  8. package/dist/cjs/principalCan/permissionSet.d.ts +7 -3
  9. package/dist/cjs/principalCan/permissionSet.d.ts.map +1 -1
  10. package/dist/cjs/principalCan/permissionSet.js +54 -31
  11. package/dist/cjs/principalCan/permissionSet.js.map +1 -1
  12. package/dist/cjs/principalCan/principalConstraints.d.ts +147 -0
  13. package/dist/cjs/principalCan/principalConstraints.d.ts.map +1 -0
  14. package/dist/cjs/principalCan/principalConstraints.js +472 -0
  15. package/dist/cjs/principalCan/principalConstraints.js.map +1 -0
  16. package/dist/esm/index.d.ts +2 -2
  17. package/dist/esm/index.d.ts.map +1 -1
  18. package/dist/esm/index.js.map +1 -1
  19. package/dist/esm/principalCan/permission.d.ts +24 -5
  20. package/dist/esm/principalCan/permission.d.ts.map +1 -1
  21. package/dist/esm/principalCan/permission.js +112 -30
  22. package/dist/esm/principalCan/permission.js.map +1 -1
  23. package/dist/esm/principalCan/permissionSet.d.ts +7 -3
  24. package/dist/esm/principalCan/permissionSet.d.ts.map +1 -1
  25. package/dist/esm/principalCan/permissionSet.js +54 -31
  26. package/dist/esm/principalCan/permissionSet.js.map +1 -1
  27. package/dist/esm/principalCan/principalConstraints.d.ts +147 -0
  28. package/dist/esm/principalCan/principalConstraints.d.ts.map +1 -0
  29. package/dist/esm/principalCan/principalConstraints.js +456 -0
  30. package/dist/esm/principalCan/principalConstraints.js.map +1 -0
  31. package/package.json +1 -1
@@ -8,6 +8,6 @@ export { simulateRequest, type SimulationRequest } from './simulate/simulate.js'
8
8
  export { whoCan, type WhoCanPrincipalScope, type ResourceAccessRequest, type WhoCanAllowed, type WhoCanResponse } from './whoCan/whoCan.js';
9
9
  export { WhoCanProcessor, type WhoCanProcessorConfig, type WhoCanProcessorRequest, type WhoCanSettledEvent, type WhoCanSettledSuccess, type WhoCanSettledError, type WorkerBootstrapPlugin } from './whoCan/WhoCanProcessor.js';
10
10
  export { type LightRequestAnalysis, type LightResourceAnalysis, type LightResourceAnalysisWithPattern, type SingleResourceLightRequestAnalysis, type WildcardResourceLightRequestAnalysis } from './whoCan/requestAnalysis.js';
11
- export { PermissionSet, buildPermissionSetFromPolicies, addPoliciesToPermissionSet, toPolicyStatements } from './principalCan/permissionSet.js';
12
- export { Permission, type PermissionEffect, type PermissionConditions } from './principalCan/permission.js';
11
+ export { PermissionSet, buildPermissionSetFromPolicies, addPoliciesToPermissionSet, toPolicyStatements, type AddStatementToPermissionSetOptions } from './principalCan/permissionSet.js';
12
+ export { Permission, type PermissionEffect, type PermissionConditions, type PermissionPrincipals, type PermissionPrincipalType } from './principalCan/permission.js';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,qBAAqB,EACrB,aAAa,EACb,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3E,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EACL,MAAM,EACN,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,gCAAgC,EACrC,KAAK,kCAAkC,EACvC,KAAK,oCAAoC,EAC1C,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,0BAA0B,EAC1B,kBAAkB,EACnB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,qBAAqB,EACrB,aAAa,EACb,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3E,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EACL,MAAM,EACN,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,gCAAgC,EACrC,KAAK,kCAAkC,EACvC,KAAK,oCAAoC,EAC1C,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,aAAa,EACb,8BAA8B,EAC9B,0BAA0B,EAC1B,kBAAkB,EAClB,KAAK,kCAAkC,EACxC,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC7B,MAAM,8BAA8B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAM4B;AAL1B,6GAAA,gBAAgB,OAAA;AAChB,kHAAA,qBAAqB,OAAA;AACrB,4GAAA,eAAe,OAAA;AAYjB,mDAK6B;AAJ3B,8GAAA,gBAAgB,OAAA;AAChB,gHAAA,kBAAkB,OAAA;AAIpB,kEAAqF;AAA5E,+GAAA,YAAY,OAAA;AACrB,gFAA2E;AAAlE,2HAAA,kBAAkB,OAAA;AAE3B,sDAAgF;AAAvE,8GAAA,eAAe,OAAA;AACxB,gDAM2B;AALzB,mGAAA,MAAM,OAAA;AAMR,kEAQoC;AAPlC,qHAAA,eAAe,OAAA;AAejB,oEAKwC;AAJtC,iHAAA,aAAa,OAAA;AACb,kIAAA,8BAA8B,OAAA;AAC9B,8HAAA,0BAA0B,OAAA;AAC1B,sHAAA,kBAAkB,OAAA;AAEpB,8DAIqC;AAHnC,2GAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAM4B;AAL1B,6GAAA,gBAAgB,OAAA;AAChB,kHAAA,qBAAqB,OAAA;AACrB,4GAAA,eAAe,OAAA;AAYjB,mDAK6B;AAJ3B,8GAAA,gBAAgB,OAAA;AAChB,gHAAA,kBAAkB,OAAA;AAIpB,kEAAqF;AAA5E,+GAAA,YAAY,OAAA;AACrB,gFAA2E;AAAlE,2HAAA,kBAAkB,OAAA;AAE3B,sDAAgF;AAAvE,8GAAA,eAAe,OAAA;AACxB,gDAM2B;AALzB,mGAAA,MAAM,OAAA;AAMR,kEAQoC;AAPlC,qHAAA,eAAe,OAAA;AAejB,oEAMwC;AALtC,iHAAA,aAAa,OAAA;AACb,kIAAA,8BAA8B,OAAA;AAC9B,8HAAA,0BAA0B,OAAA;AAC1B,sHAAA,kBAAkB,OAAA;AAGpB,8DAMqC;AALnC,2GAAA,UAAU,OAAA"}
@@ -1,3 +1,5 @@
1
+ import { type PermissionPrincipals, type PrincipalConstraint } from './principalConstraints.js';
2
+ export type { PermissionPrincipals, PermissionPrincipalType } from './principalConstraints.js';
1
3
  export type PermissionEffect = 'Allow' | 'Deny';
2
4
  export type PermissionConditions = Record<string, Record<string, string[]>>;
3
5
  /**
@@ -14,7 +16,15 @@ export declare class Permission {
14
16
  readonly resource: string[] | undefined;
15
17
  readonly notResource: string[] | undefined;
16
18
  readonly conditions: Record<string, Record<string, string[]>> | undefined;
17
- constructor(effect: PermissionEffect, service: string, action: string, resource: string[] | undefined, notResource: string[] | undefined, conditions: Record<string, Record<string, string[]>> | undefined);
19
+ readonly principal: PermissionPrincipals | undefined;
20
+ readonly notPrincipal: PermissionPrincipals | undefined;
21
+ constructor(effect: PermissionEffect, service: string, action: string, resource: string[] | undefined, notResource: string[] | undefined, conditions: Record<string, Record<string, string[]>> | undefined, principal?: PermissionPrincipals | undefined, notPrincipal?: PermissionPrincipals | undefined);
22
+ /**
23
+ * Return this permission's principal constraint normalized for set algebra.
24
+ *
25
+ * @returns The normalized principal constraint.
26
+ */
27
+ principalConstraint(): PrincipalConstraint;
18
28
  /**
19
29
  * Returns true if this Permission completely includes the other Permission.
20
30
  * Only supports merging of "Allow" permissions (same effect, service, action).
@@ -28,12 +38,21 @@ export declare class Permission {
28
38
  */
29
39
  union(other: Permission): Permission[];
30
40
  /**
31
- * Returns the intersection of this Permission with another.
32
- * Always returns exactly one Permission. If there is no overlap,
33
- * returns undefined.
41
+ * Returns all representable intersections of this Permission with another.
42
+ *
43
+ * @param other The other Permission to intersect with.
44
+ * @returns New Permissions representing the overlap, or an empty array if there is no intersection.
45
+ */
46
+ intersections(other: Permission): Permission[];
47
+ /**
48
+ * Returns one intersection of this Permission with another.
49
+ *
50
+ * Prefer {@link intersections} when correctness depends on all possible overlaps. This
51
+ * compatibility method returns at most one Permission and may omit additional representable
52
+ * intersections if future principal algebra produces multiple principal residuals.
34
53
  *
35
54
  * @param other The other Permission to intersect with.
36
- * @returns A new Permission representing the intersection of other and this, or undefined if there is no intersection.
55
+ * @returns A new Permission representing one intersection of other and this, or undefined if there is no intersection.
37
56
  */
38
57
  intersection(other: Permission): Permission | undefined;
39
58
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../../src/principalCan/permission.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAA;AAE/C,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AAU3E;;;;;;GAMG;AACH,qBAAa,UAAU;aAEH,MAAM,EAAE,gBAAgB;aACxB,OAAO,EAAE,MAAM;aACf,MAAM,EAAE,MAAM;aACd,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS;aAC9B,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS;aACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS;gBALhE,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9B,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,EACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS;IASlF;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAyH3C;;;;;OAKG;IACI,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE;IAiE7C;;;;;;;OAOG;IACI,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS;IAkL9D;;;;;;;;;OASG;IACI,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE;CAyZjD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAC3C,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAmHjD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,EAC3C,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CA0DjD;AAkID;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,CAWxF;AA+BD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAqB1C;AAqCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,CAiC5F"}
1
+ {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../../src/principalCan/permission.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ exports.intersectConditions = intersectConditions;
6
6
  exports.normalizeConditionKeys = normalizeConditionKeys;
7
7
  exports.invertConditions = invertConditions;
8
8
  exports.applyDenyConditionsToAllow = applyDenyConditionsToAllow;
9
+ const principalConstraints_js_1 = require("./principalConstraints.js");
9
10
  /**
10
11
  * Convert an AWS wildcard ARN pattern (e.g. "arn:aws:s3:::bucket/*") into a RegExp.
11
12
  */
@@ -27,19 +28,32 @@ class Permission {
27
28
  resource;
28
29
  notResource;
29
30
  conditions;
30
- constructor(effect, service, action, resource, notResource, conditions) {
31
+ principal;
32
+ notPrincipal;
33
+ constructor(effect, service, action, resource, notResource, conditions, principal = undefined, notPrincipal = undefined) {
31
34
  this.effect = effect;
32
35
  this.service = service;
33
36
  this.action = action;
34
37
  this.resource = resource;
35
38
  this.notResource = notResource;
36
39
  this.conditions = conditions;
40
+ this.principal = principal;
41
+ this.notPrincipal = notPrincipal;
37
42
  if (resource !== undefined && notResource !== undefined) {
38
43
  throw new Error('Permission must have a resource or notResource, not both.');
39
44
  }
40
45
  else if (resource === undefined && notResource === undefined) {
41
46
  throw new Error('Permission must have a resource or notResource, one must be defined.');
42
47
  }
48
+ (0, principalConstraints_js_1.normalizePrincipalConstraint)(principal, notPrincipal);
49
+ }
50
+ /**
51
+ * Return this permission's principal constraint normalized for set algebra.
52
+ *
53
+ * @returns The normalized principal constraint.
54
+ */
55
+ principalConstraint() {
56
+ return (0, principalConstraints_js_1.normalizePrincipalConstraint)(this.principal, this.notPrincipal);
43
57
  }
44
58
  /**
45
59
  * Returns true if this Permission completely includes the other Permission.
@@ -52,6 +66,9 @@ class Permission {
52
66
  this.action !== other.action) {
53
67
  return false;
54
68
  }
69
+ if (!(0, principalConstraints_js_1.principalIncludes)(this.principalConstraint(), other.principalConstraint())) {
70
+ return false;
71
+ }
55
72
  // 2. Conditions: every condition in this must be implied by the other permission’s conditions
56
73
  // That is, for each operator and context key in this.conditions, other.conditions must have it,
57
74
  // and the values must satisfy inclusion logic per operator.
@@ -191,6 +208,11 @@ class Permission {
191
208
  if (mergedConds === null) {
192
209
  return [this, other];
193
210
  }
211
+ const principalUnions = (0, principalConstraints_js_1.unionPrincipalConstraints)(this.principalConstraint(), other.principalConstraint());
212
+ if (principalUnions.length !== 1) {
213
+ return [this, other];
214
+ }
215
+ const principalArgs = (0, principalConstraints_js_1.principalArgsForConstraint)(principalUnions[0]);
194
216
  // 4. Combine resource/notResource (constructor enforces exclusivity)
195
217
  const thisResource = this.resource;
196
218
  const thisNotResource = this.notResource;
@@ -203,37 +225,62 @@ class Permission {
203
225
  // Both have resource[]
204
226
  if (thisResource !== undefined && otherResource !== undefined) {
205
227
  const union = Array.from(new Set([...thisResource, ...otherResource]));
206
- return [new Permission(eff, svc, act, union, undefined, conds)];
228
+ return [
229
+ new Permission(eff, svc, act, union, undefined, conds, principalArgs.principal, principalArgs.notPrincipal)
230
+ ];
207
231
  }
208
232
  // Both have notResource[]
209
233
  if (thisNotResource !== undefined && otherNotResource !== undefined) {
210
234
  // Intersection of both notResource arrays
211
235
  const intersection = thisNotResource.filter((n) => otherNotResource.includes(n));
212
- return [new Permission(eff, svc, act, undefined, intersection, conds)];
236
+ return [
237
+ new Permission(eff, svc, act, undefined, intersection, conds, principalArgs.principal, principalArgs.notPrincipal)
238
+ ];
213
239
  }
214
240
  // One has resource, other has notResource
215
241
  if (thisResource !== undefined && otherNotResource !== undefined) {
216
242
  return [
217
- new Permission(eff, svc, act, thisResource, undefined, conds),
218
- new Permission(eff, svc, act, undefined, otherNotResource, conds)
243
+ new Permission(eff, svc, act, thisResource, undefined, conds, principalArgs.principal, principalArgs.notPrincipal),
244
+ new Permission(eff, svc, act, undefined, otherNotResource, conds, principalArgs.principal, principalArgs.notPrincipal)
219
245
  ];
220
246
  }
221
247
  if (otherResource !== undefined && thisNotResource !== undefined) {
222
248
  return [
223
- new Permission(eff, svc, act, otherResource, undefined, conds),
224
- new Permission(eff, svc, act, undefined, thisNotResource, conds)
249
+ new Permission(eff, svc, act, otherResource, undefined, conds, principalArgs.principal, principalArgs.notPrincipal),
250
+ new Permission(eff, svc, act, undefined, thisNotResource, conds, principalArgs.principal, principalArgs.notPrincipal)
225
251
  ];
226
252
  }
227
253
  // Otherwise cannot combine, return both
228
254
  return [this, other];
229
255
  }
230
256
  /**
231
- * Returns the intersection of this Permission with another.
232
- * Always returns exactly one Permission. If there is no overlap,
233
- * returns undefined.
257
+ * Returns all representable intersections of this Permission with another.
234
258
  *
235
259
  * @param other The other Permission to intersect with.
236
- * @returns A new Permission representing the intersection of other and this, or undefined if there is no intersection.
260
+ * @returns New Permissions representing the overlap, or an empty array if there is no intersection.
261
+ */
262
+ intersections(other) {
263
+ const principalIntersections = (0, principalConstraints_js_1.intersectPrincipalConstraints)(this.principalConstraint(), other.principalConstraint());
264
+ const results = [];
265
+ for (const principalIntersection of principalIntersections) {
266
+ const principalArgs = (0, principalConstraints_js_1.principalArgsForConstraint)(principalIntersection);
267
+ const permissionWithIntersectionPrincipal = new Permission(this.effect, this.service, this.action, this.resource, this.notResource, this.conditions, principalArgs.principal, principalArgs.notPrincipal);
268
+ const intersection = permissionWithIntersectionPrincipal.intersection(other);
269
+ if (intersection) {
270
+ results.push(intersection);
271
+ }
272
+ }
273
+ return results;
274
+ }
275
+ /**
276
+ * Returns one intersection of this Permission with another.
277
+ *
278
+ * Prefer {@link intersections} when correctness depends on all possible overlaps. This
279
+ * compatibility method returns at most one Permission and may omit additional representable
280
+ * intersections if future principal algebra produces multiple principal residuals.
281
+ *
282
+ * @param other The other Permission to intersect with.
283
+ * @returns A new Permission representing one intersection of other and this, or undefined if there is no intersection.
237
284
  */
238
285
  intersection(other) {
239
286
  // 1. Must match effect, service, and action
@@ -243,6 +290,11 @@ class Permission {
243
290
  // No overlap at all—return a "zero-resource" permission
244
291
  return undefined;
245
292
  }
293
+ const principalIntersections = (0, principalConstraints_js_1.intersectPrincipalConstraints)(this.principalConstraint(), other.principalConstraint());
294
+ if (principalIntersections.length === 0) {
295
+ return undefined;
296
+ }
297
+ const principalArgs = (0, principalConstraints_js_1.principalArgsForConstraint)(principalIntersections[0]);
246
298
  if (this.resource != undefined && other.resource != undefined) {
247
299
  // 2. If one includes the other, return the narrower one unless both are NotResource
248
300
  if (this.includes(other)) {
@@ -368,7 +420,7 @@ class Permission {
368
420
  if (intersectR.length === 0) {
369
421
  return undefined;
370
422
  }
371
- return new Permission(eff, svc, act, intersectR, undefined, conds);
423
+ return new Permission(eff, svc, act, intersectR, undefined, conds, principalArgs.principal, principalArgs.notPrincipal);
372
424
  }
373
425
  // Both have notResource[] => union of exclusions (more restrictive), but remove subsumed patterns
374
426
  if (thisNotResource !== undefined && otherNotResource !== undefined) {
@@ -376,7 +428,7 @@ class Permission {
376
428
  const combined = Array.from(new Set([...thisNotResource, ...otherNotResource]));
377
429
  // Remove any pattern that is subsumed by a more general pattern
378
430
  const filtered = combined.filter((pat) => !combined.some((otherPat) => otherPat !== pat && wildcardToRegex(otherPat).test(pat)));
379
- return new Permission(eff, svc, act, undefined, filtered, conds);
431
+ return new Permission(eff, svc, act, undefined, filtered, conds, principalArgs.principal, principalArgs.notPrincipal);
380
432
  }
381
433
  // One has resource, other has notResource
382
434
  const resource = thisResource || otherResource;
@@ -386,7 +438,7 @@ class Permission {
386
438
  if (filtered.length === 0) {
387
439
  return undefined;
388
440
  }
389
- return new Permission(eff, svc, act, filtered, undefined, conds);
441
+ return new Permission(eff, svc, act, filtered, undefined, conds, principalArgs.principal, principalArgs.notPrincipal);
390
442
  }
391
443
  // This should never happen
392
444
  return undefined;
@@ -413,6 +465,11 @@ class Permission {
413
465
  const allowCondsNorm = normalizeConditionKeys(this.conditions || {});
414
466
  const denyCondsNorm = normalizeConditionKeys(other.conditions || {});
415
467
  const conditionsMatch = JSON.stringify(allowCondsNorm) === JSON.stringify(denyCondsNorm);
468
+ const allowPrincipalConstraint = this.principalConstraint();
469
+ const denyPrincipalConstraint = other.principalConstraint();
470
+ if (!(0, principalConstraints_js_1.principalConstraintsOverlap)(allowPrincipalConstraint, denyPrincipalConstraint)) {
471
+ return [this];
472
+ }
416
473
  const allowResource = this.resource;
417
474
  const allowNotResource = this.notResource;
418
475
  const denyResource = other.resource;
@@ -420,6 +477,29 @@ class Permission {
420
477
  const eff = this.effect;
421
478
  const svc = this.service;
422
479
  const act = this.action;
480
+ const principalResiduals = (0, principalConstraints_js_1.subtractPrincipalConstraint)(allowPrincipalConstraint, denyPrincipalConstraint);
481
+ const sameResourceShape = JSON.stringify([...(allowResource ?? [])].sort()) ===
482
+ JSON.stringify([...(denyResource ?? [])].sort()) &&
483
+ JSON.stringify([...(allowNotResource ?? [])].sort()) ===
484
+ JSON.stringify([...(denyNotResource ?? [])].sort());
485
+ const denyFullyCoversPrincipal = (0, principalConstraints_js_1.principalIncludes)(denyPrincipalConstraint, allowPrincipalConstraint);
486
+ const allowPrincipalArgs = (0, principalConstraints_js_1.principalArgsForConstraint)(allowPrincipalConstraint);
487
+ const denyPrincipalArgs = (0, principalConstraints_js_1.principalArgsForConstraint)(denyPrincipalConstraint);
488
+ if (!denyFullyCoversPrincipal && sameResourceShape && conditionsMatch) {
489
+ const principalResidualsEqualAllow = principalResiduals.length === 1 &&
490
+ JSON.stringify((0, principalConstraints_js_1.principalArgsForConstraint)(principalResiduals[0])) ===
491
+ JSON.stringify(allowPrincipalArgs);
492
+ if (principalResidualsEqualAllow) {
493
+ return [this, other];
494
+ }
495
+ return principalResiduals.map((constraint) => {
496
+ const args = (0, principalConstraints_js_1.principalArgsForConstraint)(constraint);
497
+ return new Permission(eff, svc, act, allowResource, allowNotResource, this.conditions, args.principal, args.notPrincipal);
498
+ });
499
+ }
500
+ if (!denyFullyCoversPrincipal) {
501
+ return [this, other];
502
+ }
423
503
  // Case: Allow.resource & Deny.resource
424
504
  if (allowResource !== undefined && denyResource !== undefined) {
425
505
  const overlappingResources = allowResource.some((a) => {
@@ -481,20 +561,20 @@ class Permission {
481
561
  }
482
562
  const permissionsToReturn = [];
483
563
  if (allowNoOverlap.length > 0) {
484
- permissionsToReturn.push(new Permission(eff, svc, act, allowNoOverlap, undefined, this.conditions));
564
+ permissionsToReturn.push(new Permission(eff, svc, act, allowNoOverlap, undefined, this.conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal));
485
565
  }
486
566
  if (allowSupersets.length > 0) {
487
- permissionsToReturn.push(new Permission(eff, svc, act, allowSupersets, undefined, this.conditions));
567
+ permissionsToReturn.push(new Permission(eff, svc, act, allowSupersets, undefined, this.conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal));
488
568
  }
489
569
  if (allowMatches.length > 0 || allowSubsets.length > 0) {
490
570
  // If conditions are identical, these are fully dropped from the Allow. If not, they need to be kept with inverted conditions
491
571
  if (!conditionsMatch) {
492
- const newAllow = new Permission(eff, svc, act, [...allowMatches, ...allowSubsets], undefined, this.conditions);
572
+ const newAllow = new Permission(eff, svc, act, [...allowMatches, ...allowSubsets], undefined, this.conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal);
493
573
  permissionsToReturn.push(...applyDenyConditionsToAllow(newAllow, other));
494
574
  }
495
575
  }
496
576
  if (denySubsets.length > 0) {
497
- permissionsToReturn.push(new Permission('Deny', svc, act, denySubsets, undefined, other.conditions));
577
+ permissionsToReturn.push(new Permission('Deny', svc, act, denySubsets, undefined, other.conditions, denyPrincipalArgs.principal, denyPrincipalArgs.notPrincipal));
498
578
  }
499
579
  return permissionsToReturn;
500
580
  }
@@ -555,7 +635,7 @@ class Permission {
555
635
  const permissionsToReturn = [];
556
636
  // ExcludedFromDeny: Keep as-is with original conditions (deny doesn't touch these)
557
637
  if (excludedFromDeny.length > 0) {
558
- permissionsToReturn.push(new Permission(eff, svc, act, excludedFromDeny, undefined, this.conditions));
638
+ permissionsToReturn.push(new Permission(eff, svc, act, excludedFromDeny, undefined, this.conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal));
559
639
  }
560
640
  // Superset: Allow resource is broader than denyNotResource patterns
561
641
  // - The covered denyNotResource patterns are excluded from deny (allow unconditionally)
@@ -563,11 +643,11 @@ class Permission {
563
643
  if (supersets.length > 0) {
564
644
  // First: Allow the covered patterns unconditionally (they're excluded from deny)
565
645
  if (coveredDenyNotResourcePatterns.length > 0) {
566
- permissionsToReturn.push(new Permission(eff, svc, act, coveredDenyNotResourcePatterns, undefined, this.conditions));
646
+ permissionsToReturn.push(new Permission(eff, svc, act, coveredDenyNotResourcePatterns, undefined, this.conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal));
567
647
  }
568
648
  // Second: Apply inverted deny conditions to the superset resources
569
649
  if (denyHasConditions && !conditionsMatch) {
570
- const supersetAllow = new Permission(eff, svc, act, supersets, undefined, this.conditions);
650
+ const supersetAllow = new Permission(eff, svc, act, supersets, undefined, this.conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal);
571
651
  permissionsToReturn.push(...applyDenyConditionsToAllow(supersetAllow, other));
572
652
  }
573
653
  // If no conditions or conditions match, the superset is fully denied (nothing to add)
@@ -578,7 +658,7 @@ class Permission {
578
658
  // If the conditions match - these are fully denied (drop them)
579
659
  if (denyHasConditions && !conditionsMatch) {
580
660
  // Different conditions - keep with inverted deny conditions
581
- const newAllow = new Permission(eff, svc, act, affectedByDeny, undefined, this.conditions);
661
+ const newAllow = new Permission(eff, svc, act, affectedByDeny, undefined, this.conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal);
582
662
  permissionsToReturn.push(...applyDenyConditionsToAllow(newAllow, other));
583
663
  }
584
664
  }
@@ -629,7 +709,9 @@ class Permission {
629
709
  const expandedNotResource = Array.from(new Set([...keptPatterns, ...subsetDenyPatterns, ...noOverlapDenyResources]));
630
710
  // Same conditions or no deny conditions: simply expand notResource
631
711
  if (conditionsMatch || !denyHasConditions) {
632
- return [new Permission(eff, svc, act, undefined, expandedNotResource, this.conditions)];
712
+ return [
713
+ new Permission(eff, svc, act, undefined, expandedNotResource, this.conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal)
714
+ ];
633
715
  }
634
716
  // Different conditions: handle Subset and NoOverlap cases separately
635
717
  const permissionsToReturn = [];
@@ -637,7 +719,7 @@ class Permission {
637
719
  const hasNoOverlapAdditions = noOverlapDenyResources.length > 0;
638
720
  // Part 1: Original allowNotResource with inverted deny conditions
639
721
  // (when deny condition is NOT met, original allow applies)
640
- const originalAllow = new Permission(eff, svc, act, undefined, allowNotResource, this.conditions);
722
+ const originalAllow = new Permission(eff, svc, act, undefined, allowNotResource, this.conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal);
641
723
  permissionsToReturn.push(...applyDenyConditionsToAllow(originalAllow, other));
642
724
  // Part 2a: For SUBSET replacements - expanded notResource WITH deny conditions
643
725
  // (replacing smaller exclusion with larger one, only valid when condition is met)
@@ -645,12 +727,12 @@ class Permission {
645
727
  // Build notResource with just the subset replacements (not the noOverlap additions)
646
728
  const subsetExpandedNotResource = Array.from(new Set([...keptPatterns, ...subsetDenyPatterns]));
647
729
  const subsetConditions = intersectConditions(this.conditions || {}, other.conditions || {});
648
- permissionsToReturn.push(new Permission(eff, svc, act, undefined, subsetExpandedNotResource, subsetConditions || other.conditions));
730
+ permissionsToReturn.push(new Permission(eff, svc, act, undefined, subsetExpandedNotResource, subsetConditions || other.conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal));
649
731
  }
650
732
  // Part 2b: For NO OVERLAP additions - expanded notResource WITHOUT conditions
651
733
  // (adding new exclusion is always safe, no condition needed)
652
734
  if (hasNoOverlapAdditions) {
653
- permissionsToReturn.push(new Permission(eff, svc, act, undefined, expandedNotResource, this.conditions));
735
+ permissionsToReturn.push(new Permission(eff, svc, act, undefined, expandedNotResource, this.conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal));
654
736
  }
655
737
  return permissionsToReturn;
656
738
  }
@@ -688,17 +770,19 @@ class Permission {
688
770
  // Handle conditions
689
771
  if (!denyHasConditions || conditionsMatch) {
690
772
  // No deny conditions or same conditions: apply directly
691
- return [new Permission(eff, svc, act, survivingResources, undefined, this.conditions)];
773
+ return [
774
+ new Permission(eff, svc, act, survivingResources, undefined, this.conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal)
775
+ ];
692
776
  }
693
777
  // Different conditions: split into two parts
694
778
  const permissionsToReturn = [];
695
779
  // Part 1: When deny condition is NOT met → original allow applies
696
- const originalAllow = new Permission(eff, svc, act, undefined, allowNotResource, this.conditions);
780
+ const originalAllow = new Permission(eff, svc, act, undefined, allowNotResource, this.conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal);
697
781
  permissionsToReturn.push(...applyDenyConditionsToAllow(originalAllow, other));
698
782
  // Part 2: When deny condition IS met → surviving resources with deny's condition
699
783
  const denyConditionCount = Object.values(other.conditions || {}).reduce((sum, keyMap) => sum + Object.keys(keyMap).length, 0);
700
784
  const part2Conditions = denyConditionCount === 1 ? other.conditions : undefined;
701
- permissionsToReturn.push(new Permission(eff, svc, act, survivingResources, undefined, part2Conditions));
785
+ permissionsToReturn.push(new Permission(eff, svc, act, survivingResources, undefined, part2Conditions, allowPrincipalArgs.principal, allowPrincipalArgs.notPrincipal));
702
786
  return permissionsToReturn;
703
787
  }
704
788
  // This should never happen
@@ -1136,7 +1220,7 @@ function applyDenyConditionsToAllow(allow, deny) {
1136
1220
  // Merge with the original Allow conditions
1137
1221
  const mergedConditions = intersectConditions(allow.conditions || {}, invertedCondition);
1138
1222
  if (mergedConditions !== null) {
1139
- results.push(new Permission(allow.effect, allow.service, allow.action, allow.resource, allow.notResource, mergedConditions));
1223
+ results.push(new Permission(allow.effect, allow.service, allow.action, allow.resource, allow.notResource, mergedConditions, allow.principal, allow.notPrincipal));
1140
1224
  }
1141
1225
  }
1142
1226
  }
@@ -1 +1 @@
1
- {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/principalCan/permission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/principalCan/permission.ts"],"names":[],"mappings":"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"}