@actsecurity/iam-lens 0.1.165 → 0.1.167

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 (33) hide show
  1. package/dist/cjs/index.d.ts +1 -1
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js +2 -1
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/simulate/contextKeys.d.ts +4 -0
  6. package/dist/cjs/simulate/contextKeys.d.ts.map +1 -1
  7. package/dist/cjs/simulate/contextKeys.js +5 -3
  8. package/dist/cjs/simulate/contextKeys.js.map +1 -1
  9. package/dist/cjs/simulate/roleSessionTags.d.ts +51 -0
  10. package/dist/cjs/simulate/roleSessionTags.d.ts.map +1 -0
  11. package/dist/cjs/simulate/roleSessionTags.js +218 -0
  12. package/dist/cjs/simulate/roleSessionTags.js.map +1 -0
  13. package/dist/cjs/simulate/simulate.d.ts +35 -2
  14. package/dist/cjs/simulate/simulate.d.ts.map +1 -1
  15. package/dist/cjs/simulate/simulate.js +163 -11
  16. package/dist/cjs/simulate/simulate.js.map +1 -1
  17. package/dist/esm/index.d.ts +1 -1
  18. package/dist/esm/index.d.ts.map +1 -1
  19. package/dist/esm/index.js +1 -1
  20. package/dist/esm/index.js.map +1 -1
  21. package/dist/esm/simulate/contextKeys.d.ts +4 -0
  22. package/dist/esm/simulate/contextKeys.d.ts.map +1 -1
  23. package/dist/esm/simulate/contextKeys.js +5 -3
  24. package/dist/esm/simulate/contextKeys.js.map +1 -1
  25. package/dist/esm/simulate/roleSessionTags.d.ts +51 -0
  26. package/dist/esm/simulate/roleSessionTags.d.ts.map +1 -0
  27. package/dist/esm/simulate/roleSessionTags.js +213 -0
  28. package/dist/esm/simulate/roleSessionTags.js.map +1 -0
  29. package/dist/esm/simulate/simulate.d.ts +35 -2
  30. package/dist/esm/simulate/simulate.d.ts.map +1 -1
  31. package/dist/esm/simulate/simulate.js +163 -12
  32. package/dist/esm/simulate/simulate.js.map +1 -1
  33. package/package.json +1 -1
@@ -4,7 +4,7 @@ export { getCollectClient, loadCollectConfigs, type ClientFactoryPlugin, type Co
4
4
  export { principalCan, type PrincipalCanInput } from './principalCan/principalCan.js';
5
5
  export { makePrincipalIndex } from './principalIndex/makePrincipalIndex.js';
6
6
  export type { ContextKeys } from './simulate/contextKeys.js';
7
- export { simulateRequest, simulateAnonymousRequest, simulateExternalPrincipalRequest, simulateExternalResourceRequest, type SimulationRequest, type AnonymousSimulationRequest, type ExternalResourceSimulationRequest, type SimulateRequestResult } from './simulate/simulate.js';
7
+ export { simulateRequest, simulateAnonymousRequest, simulateExternalPrincipalRequest, simulateVirtualPrincipal, simulateExternalResourceRequest, type SimulationRequest, type AnonymousSimulationRequest, type VirtualPrincipalSimulationRequest, type ExternalResourceSimulationRequest, type SimulateRequestResult } from './simulate/simulate.js';
8
8
  export { whoCan, type WhoCanPrincipalScope, type ResourceAccessRequest, type WhoCanAllowed, type WhoCanAllowedResourcePattern, 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';
@@ -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,EACL,eAAe,EACf,wBAAwB,EACxB,gCAAgC,EAChC,+BAA+B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,iCAAiC,EACtC,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,MAAM,EACN,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,4BAA4B,EACjC,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
+ {"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,EACL,eAAe,EACf,wBAAwB,EACxB,gCAAgC,EAChC,wBAAwB,EACxB,+BAA+B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EACtC,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,MAAM,EACN,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,4BAA4B,EACjC,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"}
package/dist/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Permission = exports.toPolicyStatements = exports.addPoliciesToPermissionSet = exports.buildPermissionSetFromPolicies = exports.PermissionSet = exports.WhoCanProcessor = exports.whoCan = exports.simulateExternalResourceRequest = exports.simulateExternalPrincipalRequest = exports.simulateAnonymousRequest = exports.simulateRequest = exports.makePrincipalIndex = exports.principalCan = exports.loadCollectConfigs = exports.getCollectClient = exports.NoCacheProvider = exports.InMemoryCacheProvider = exports.IamCollectClient = void 0;
3
+ exports.Permission = exports.toPolicyStatements = exports.addPoliciesToPermissionSet = exports.buildPermissionSetFromPolicies = exports.PermissionSet = exports.WhoCanProcessor = exports.whoCan = exports.simulateExternalResourceRequest = exports.simulateVirtualPrincipal = exports.simulateExternalPrincipalRequest = exports.simulateAnonymousRequest = exports.simulateRequest = exports.makePrincipalIndex = exports.principalCan = exports.loadCollectConfigs = exports.getCollectClient = exports.NoCacheProvider = exports.InMemoryCacheProvider = exports.IamCollectClient = void 0;
4
4
  var client_js_1 = require("./collect/client.js");
5
5
  Object.defineProperty(exports, "IamCollectClient", { enumerable: true, get: function () { return client_js_1.IamCollectClient; } });
6
6
  Object.defineProperty(exports, "InMemoryCacheProvider", { enumerable: true, get: function () { return client_js_1.InMemoryCacheProvider; } });
@@ -16,6 +16,7 @@ var simulate_js_1 = require("./simulate/simulate.js");
16
16
  Object.defineProperty(exports, "simulateRequest", { enumerable: true, get: function () { return simulate_js_1.simulateRequest; } });
17
17
  Object.defineProperty(exports, "simulateAnonymousRequest", { enumerable: true, get: function () { return simulate_js_1.simulateAnonymousRequest; } });
18
18
  Object.defineProperty(exports, "simulateExternalPrincipalRequest", { enumerable: true, get: function () { return simulate_js_1.simulateExternalPrincipalRequest; } });
19
+ Object.defineProperty(exports, "simulateVirtualPrincipal", { enumerable: true, get: function () { return simulate_js_1.simulateVirtualPrincipal; } });
19
20
  Object.defineProperty(exports, "simulateExternalResourceRequest", { enumerable: true, get: function () { return simulate_js_1.simulateExternalResourceRequest; } });
20
21
  var whoCan_js_1 = require("./whoCan/whoCan.js");
21
22
  Object.defineProperty(exports, "whoCan", { enumerable: true, get: function () { return whoCan_js_1.whoCan; } });
@@ -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,sDAS+B;AAR7B,8GAAA,eAAe,OAAA;AACf,uHAAA,wBAAwB,OAAA;AACxB,+HAAA,gCAAgC,OAAA;AAChC,8HAAA,+BAA+B,OAAA;AAMjC,gDAO2B;AANzB,mGAAA,MAAM,OAAA;AAOR,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
+ {"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,sDAW+B;AAV7B,8GAAA,eAAe,OAAA;AACf,uHAAA,wBAAwB,OAAA;AACxB,+HAAA,gCAAgC,OAAA;AAChC,uHAAA,wBAAwB,OAAA;AACxB,8HAAA,+BAA+B,OAAA;AAOjC,gDAO2B;AANzB,mGAAA,MAAM,OAAA;AAOR,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"}
@@ -16,6 +16,10 @@ export interface CreateContextKeysOptions {
16
16
  * Whether resource tags and presence should be loaded from collected data.
17
17
  */
18
18
  includeResourceMetadata?: boolean;
19
+ /**
20
+ * Whether principal tags should be loaded from collected IAM metadata.
21
+ */
22
+ includePrincipalTags?: boolean;
19
23
  }
20
24
  /**
21
25
  * Placeholder for the caller account AWS supplies on a service-mediated KMS request.
@@ -1 +1 @@
1
- {"version":3,"file":"contextKeys.d.ts","sourceRoot":"","sources":["../../../src/simulate/contextKeys.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;AAE3D;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC;AAED;;;;GAIG;AACH,eAAO,MAAM,2CAA2C,iBAAiB,CAAA;AAEzE,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAyB7C,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;CASxB,CAAA;AAgBD;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKnE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAK7F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,gBAAgB,EAC/B,iBAAiB,EAAE,yBAAyB,EAC5C,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,WAAW,EAChC,8BAA8B,CAAC,EAAE,MAAM,EACvC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC;IAAE,oBAAoB,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,CAAC,CAsItE;AAwBD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,WAAW,CAAC,CAgEtB;AAyCD;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5E"}
1
+ {"version":3,"file":"contextKeys.d.ts","sourceRoot":"","sources":["../../../src/simulate/contextKeys.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;AAE3D;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAEjC;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED;;;;GAIG;AACH,eAAO,MAAM,2CAA2C,iBAAiB,CAAA;AAEzE,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAyB7C,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;CASxB,CAAA;AAgBD;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKnE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAK7F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,gBAAgB,EAC/B,iBAAiB,EAAE,yBAAyB,EAC5C,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,WAAW,EAChC,8BAA8B,CAAC,EAAE,MAAM,EACvC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC;IAAE,oBAAoB,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,CAAC,CAwItE;AAwBD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,WAAW,CAAC,CAgEtB;AAyCD;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5E"}
@@ -128,9 +128,11 @@ async function createContextKeys(collectClient, simulationRequest, service, cont
128
128
  const orgStructure = await collectClient.getOrgUnitHierarchyForAccount(principalAccountId);
129
129
  contextKeys['aws:PrincipalOrgPaths'] = makeOrgPaths(orgId, orgStructure);
130
130
  }
131
- const { tags } = await collectClient.getTagsForResource(principalArnForContext, principalAccountId);
132
- for (const [key, value] of Object.entries(tags)) {
133
- contextKeys[`aws:PrincipalTag/${key}`] = value;
131
+ if (options.includePrincipalTags !== false) {
132
+ const { tags } = await collectClient.getTagsForResource(principalArnForContext, principalAccountId);
133
+ for (const [key, value] of Object.entries(tags)) {
134
+ contextKeys[`aws:PrincipalTag/${key}`] = value;
135
+ }
134
136
  }
135
137
  contextKeys['aws:PrincipalIsAWSService'] = 'false';
136
138
  if (service.toLowerCase() === 'kms') {
@@ -1 +1 @@
1
- {"version":3,"file":"contextKeys.js","sourceRoot":"","sources":["../../../src/simulate/contextKeys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contextKeys.js","sourceRoot":"","sources":["../../../src/simulate/contextKeys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { type ValidatedPolicy } from '@actsecurity/iam-policy';
2
+ /** A tag-key value permitted by a role trust policy. */
3
+ export interface SessionTagKey {
4
+ /** Tag-key spelling from the trust policy. */
5
+ tagKey: string;
6
+ /** Whether the trust-policy comparison ignores case. */
7
+ ignoreCase: boolean;
8
+ }
9
+ /** Describes which tag keys a role session may supply, independently of the role's stored tags. */
10
+ export type RoleSessionTagCapability = {
11
+ type: 'none';
12
+ } | {
13
+ type: 'any';
14
+ } | {
15
+ type: 'allowlist';
16
+ tagKeys: SessionTagKey[];
17
+ };
18
+ /**
19
+ * Determines which tag keys a role session may supply from the role's trust policy.
20
+ *
21
+ * This result intentionally does not depend on tags currently stored on the role. Deny statements
22
+ * and conditions unrelated to `aws:TagKeys` are ignored. Supported
23
+ * `ForAllValues:StringEquals` operators form a finite allowlist for one Allow statement, while
24
+ * `ForAnyValue`, unsupported operators, and policy-variable values conservatively permit any key.
25
+ *
26
+ * @param trustPolicy the role's validated trust policy, or undefined when it was not collected
27
+ * @returns the role's session-tag key capability
28
+ */
29
+ export declare function roleSessionTagCapability(trustPolicy: ValidatedPolicy<{
30
+ name: string;
31
+ }> | undefined): RoleSessionTagCapability;
32
+ /**
33
+ * Determines whether a tag key can be supplied by a role session.
34
+ *
35
+ * @param capability the trust-policy-derived session-tag capability
36
+ * @param tagKey the tag key to test
37
+ * @returns true when a role session may supply the key
38
+ */
39
+ export declare function roleSessionCanSetTagKey(capability: RoleSessionTagCapability, tagKey: string): boolean;
40
+ /**
41
+ * Builds a slash-delimited regex constraint for PrincipalTag keys that cannot be session supplied.
42
+ *
43
+ * The iam-simulate constraint matcher is case-insensitive. Consequently, case variants of a
44
+ * case-sensitive allowlist entry are also excluded from this strict pattern. That may preserve
45
+ * extra conditional results, but it cannot incorrectly make a mutable tag strict.
46
+ *
47
+ * @param capability the trust-policy-derived session-tag capability
48
+ * @returns a strict PrincipalTag pattern, or undefined when every tag key may be supplied
49
+ */
50
+ export declare function immutablePrincipalTagPattern(capability: RoleSessionTagCapability): string | undefined;
51
+ //# sourceMappingURL=roleSessionTags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roleSessionTags.d.ts","sourceRoot":"","sources":["../../../src/simulate/roleSessionTags.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAA;AAOhC,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAA;IAEd,wDAAwD;IACxD,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,mGAAmG;AACnG,MAAM,MAAM,wBAAwB,GAClC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,aAAa,EAAE,CAAA;CAAE,CAAA;AAQtF;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,eAAe,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,GACzD,wBAAwB,CAiC1B;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,MAAM,GACb,OAAO,CAST;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,wBAAwB,GACnC,MAAM,GAAG,SAAS,CAUpB"}
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.roleSessionTagCapability = roleSessionTagCapability;
4
+ exports.roleSessionCanSetTagKey = roleSessionCanSetTagKey;
5
+ exports.immutablePrincipalTagPattern = immutablePrincipalTagPattern;
6
+ const iam_policy_1 = require("@actsecurity/iam-policy");
7
+ const iam_utils_1 = require("@actsecurity/iam-utils");
8
+ const tagSessionAction = 'sts:TagSession';
9
+ const tagKeysConditionKey = 'aws:tagkeys';
10
+ const policyVariablePattern = /\$\{[^}]+\}/;
11
+ /** No trust-policy Allow permits session tags. */
12
+ const noSessionTags = { type: 'none' };
13
+ /** At least one trust-policy Allow may permit any session-tag key. */
14
+ const anySessionTag = { type: 'any' };
15
+ /**
16
+ * Determines which tag keys a role session may supply from the role's trust policy.
17
+ *
18
+ * This result intentionally does not depend on tags currently stored on the role. Deny statements
19
+ * and conditions unrelated to `aws:TagKeys` are ignored. Supported
20
+ * `ForAllValues:StringEquals` operators form a finite allowlist for one Allow statement, while
21
+ * `ForAnyValue`, unsupported operators, and policy-variable values conservatively permit any key.
22
+ *
23
+ * @param trustPolicy the role's validated trust policy, or undefined when it was not collected
24
+ * @returns the role's session-tag key capability
25
+ */
26
+ function roleSessionTagCapability(trustPolicy) {
27
+ if (!trustPolicy) {
28
+ return noSessionTags;
29
+ }
30
+ if (trustPolicy.errors.length > 0) {
31
+ return anySessionTag;
32
+ }
33
+ const allowedTagKeys = [];
34
+ let hasTagSessionAllow = false;
35
+ for (const statement of (0, iam_policy_1.loadPolicy)(trustPolicy).statements()) {
36
+ if (!statement.isAllow() || !statementAllowsTagSession(statement)) {
37
+ continue;
38
+ }
39
+ hasTagSessionAllow = true;
40
+ const statementCapability = tagCapabilityForStatement(statement);
41
+ if (statementCapability.type === 'any') {
42
+ return anySessionTag;
43
+ }
44
+ if (statementCapability.type === 'allowlist') {
45
+ allowedTagKeys.push(...statementCapability.tagKeys);
46
+ }
47
+ }
48
+ if (!hasTagSessionAllow) {
49
+ return noSessionTags;
50
+ }
51
+ return {
52
+ type: 'allowlist',
53
+ tagKeys: uniqueTagKeys(allowedTagKeys)
54
+ };
55
+ }
56
+ /**
57
+ * Determines whether a tag key can be supplied by a role session.
58
+ *
59
+ * @param capability the trust-policy-derived session-tag capability
60
+ * @param tagKey the tag key to test
61
+ * @returns true when a role session may supply the key
62
+ */
63
+ function roleSessionCanSetTagKey(capability, tagKey) {
64
+ if (capability.type === 'any') {
65
+ return true;
66
+ }
67
+ if (capability.type === 'none') {
68
+ return false;
69
+ }
70
+ return capability.tagKeys.some((entry) => tagKeyMatchesEntry(tagKey, entry));
71
+ }
72
+ /**
73
+ * Builds a slash-delimited regex constraint for PrincipalTag keys that cannot be session supplied.
74
+ *
75
+ * The iam-simulate constraint matcher is case-insensitive. Consequently, case variants of a
76
+ * case-sensitive allowlist entry are also excluded from this strict pattern. That may preserve
77
+ * extra conditional results, but it cannot incorrectly make a mutable tag strict.
78
+ *
79
+ * @param capability the trust-policy-derived session-tag capability
80
+ * @returns a strict PrincipalTag pattern, or undefined when every tag key may be supplied
81
+ */
82
+ function immutablePrincipalTagPattern(capability) {
83
+ if (capability.type === 'any') {
84
+ return undefined;
85
+ }
86
+ if (capability.type === 'none' || capability.tagKeys.length === 0) {
87
+ return '/^aws:PrincipalTag\/.*/';
88
+ }
89
+ const mutableNames = capability.tagKeys.map((entry) => escapeRegex(entry.tagKey)).join('|');
90
+ return `/^aws:PrincipalTag\\/(?!(?:${mutableNames})$).*/`;
91
+ }
92
+ /**
93
+ * Determines whether an Allow statement's Action or NotAction includes `sts:TagSession`.
94
+ *
95
+ * @param statement the parsed trust-policy statement to inspect
96
+ * @returns true when the statement applies to the TagSession action
97
+ */
98
+ function statementAllowsTagSession(statement) {
99
+ if (statement.isActionStatement()) {
100
+ return statement
101
+ .actions()
102
+ .some((action) => (0, iam_utils_1.actionMatchesPattern)(tagSessionAction, action.value()));
103
+ }
104
+ if (statement.isNotActionStatement()) {
105
+ return !statement
106
+ .notActions()
107
+ .some((action) => (0, iam_utils_1.actionMatchesPattern)(tagSessionAction, action.value()));
108
+ }
109
+ return false;
110
+ }
111
+ /**
112
+ * Determines which tag keys one TagSession Allow statement may supply.
113
+ *
114
+ * @param statement a parsed Allow statement that includes TagSession
115
+ * @returns the statement's session-tag capability
116
+ */
117
+ function tagCapabilityForStatement(statement) {
118
+ const tagKeysConditions = statement
119
+ .conditions()
120
+ .filter((condition) => stringsEqualIgnoreCase(condition.conditionKey(), tagKeysConditionKey));
121
+ if (tagKeysConditions.length === 0 || tagKeysConditions.some(conditionIsUnbounded)) {
122
+ return anySessionTag;
123
+ }
124
+ return {
125
+ type: 'allowlist',
126
+ tagKeys: intersectTagKeyConditions(tagKeysConditions)
127
+ };
128
+ }
129
+ /**
130
+ * Determines whether a TagKeys condition cannot prove a finite exhaustive key allowlist.
131
+ *
132
+ * @param condition the parsed `aws:TagKeys` condition
133
+ * @returns true when the statement must conservatively be treated as permitting any key
134
+ */
135
+ function conditionIsUnbounded(condition) {
136
+ const operation = condition.operation();
137
+ if (operation.isIfExists() || operation.setOperator() !== 'ForAllValues') {
138
+ return true;
139
+ }
140
+ const baseOperator = operation.baseOperator();
141
+ if (!stringsEqualIgnoreCase(baseOperator, 'StringEquals') &&
142
+ !stringsEqualIgnoreCase(baseOperator, 'StringEqualsIgnoreCase')) {
143
+ return true;
144
+ }
145
+ return condition.conditionValues().some((value) => policyVariablePattern.test(value));
146
+ }
147
+ /**
148
+ * Intersects finite ForAllValues TagKeys allowlists within one statement.
149
+ *
150
+ * @param conditions supported TagKeys conditions from one statement
151
+ * @returns tag keys capable of satisfying every condition
152
+ */
153
+ function intersectTagKeyConditions(conditions) {
154
+ const conditionEntries = conditions.map(entriesForCondition);
155
+ const hasCaseSensitiveCondition = conditionEntries.some((entries) => entries.some((entry) => !entry.ignoreCase));
156
+ const candidates = hasCaseSensitiveCondition
157
+ ? conditionEntries.flat().filter((entry) => !entry.ignoreCase)
158
+ : conditionEntries[0];
159
+ return uniqueTagKeys(candidates.filter((candidate) => conditionEntries.every((entries) => entries.some((entry) => tagKeyMatchesEntry(candidate.tagKey, entry)))));
160
+ }
161
+ /**
162
+ * Converts one supported TagKeys condition into comparable entries.
163
+ *
164
+ * @param condition the parsed supported condition
165
+ * @returns entries carrying the condition's case-comparison semantics
166
+ */
167
+ function entriesForCondition(condition) {
168
+ const ignoreCase = stringsEqualIgnoreCase(condition.operation().baseOperator(), 'StringEqualsIgnoreCase');
169
+ return condition.conditionValues().map((tagKey) => ({ tagKey, ignoreCase }));
170
+ }
171
+ /**
172
+ * Tests a concrete tag key against a trust-policy allowlist entry.
173
+ *
174
+ * @param tagKey the concrete tag key
175
+ * @param entry the allowlist entry and its comparison semantics
176
+ * @returns true when the key matches the entry
177
+ */
178
+ function tagKeyMatchesEntry(tagKey, entry) {
179
+ return entry.ignoreCase ? stringsEqualIgnoreCase(tagKey, entry.tagKey) : tagKey === entry.tagKey;
180
+ }
181
+ /**
182
+ * Removes semantically duplicate tag-key entries while preserving case-sensitive alternatives.
183
+ *
184
+ * @param entries tag-key entries to deduplicate
185
+ * @returns unique entries
186
+ */
187
+ function uniqueTagKeys(entries) {
188
+ const unique = [];
189
+ for (const entry of entries) {
190
+ if (!unique.some((existing) => existing.ignoreCase === entry.ignoreCase &&
191
+ (entry.ignoreCase
192
+ ? stringsEqualIgnoreCase(existing.tagKey, entry.tagKey)
193
+ : existing.tagKey === entry.tagKey))) {
194
+ unique.push(entry);
195
+ }
196
+ }
197
+ return unique;
198
+ }
199
+ /**
200
+ * Compares strings without case sensitivity or normalized string allocations.
201
+ *
202
+ * @param left first value to compare
203
+ * @param right second value to compare
204
+ * @returns true when the values compare equally without case sensitivity
205
+ */
206
+ function stringsEqualIgnoreCase(left, right) {
207
+ return left.localeCompare(right, undefined, { sensitivity: 'base' }) === 0;
208
+ }
209
+ /**
210
+ * Escapes a literal string for use inside a regular expression.
211
+ *
212
+ * @param value the literal value to escape
213
+ * @returns a regex-safe representation
214
+ */
215
+ function escapeRegex(value) {
216
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
217
+ }
218
+ //# sourceMappingURL=roleSessionTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roleSessionTags.js","sourceRoot":"","sources":["../../../src/simulate/roleSessionTags.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,18 @@ export interface AnonymousSimulationRequest extends Omit<SimulationRequest, 'pri
54
54
  */
55
55
  resourceArn: string;
56
56
  }
57
+ /**
58
+ * A simulation request for a principal ARN that is not collected as an IAM identity.
59
+ *
60
+ * The principal's captured organization policy hierarchies still apply. Its identity policies
61
+ * and permission boundary are replaced by one synthetic allow-all policy or `inlinePolicy`.
62
+ */
63
+ export interface VirtualPrincipalSimulationRequest extends SimulationRequest {
64
+ /**
65
+ * Raw inline identity policy that replaces the default synthetic allow-all policy.
66
+ */
67
+ inlinePolicy?: Record<string, unknown>;
68
+ }
57
69
  /**
58
70
  * A simulation request targeting a resource that is not expected to exist in the collected dataset.
59
71
  */
@@ -89,6 +101,10 @@ export type InternalSimulationRequest = Omit<SimulationRequest, 'principal'> & {
89
101
  * Authenticated principal string, or undefined for an anonymous request.
90
102
  */
91
103
  principal: string | undefined;
104
+ /**
105
+ * Caller-supplied inline identity policy for a virtual principal.
106
+ */
107
+ inlinePolicy?: Record<string, unknown>;
92
108
  /**
93
109
  * Caller-supplied external resource or trust policy.
94
110
  */
@@ -147,6 +163,18 @@ export declare function simulateAnonymousRequest(simulationRequest: AnonymousSim
147
163
  * @returns the normalized request and simulation result
148
164
  */
149
165
  export declare function simulateExternalPrincipalRequest(simulationRequest: SimulationRequest, collectClient: IamCollectClient): Promise<SimulateRequestResult>;
166
+ /**
167
+ * Simulate an uncollected IAM principal while applying organization controls for its account.
168
+ *
169
+ * The principal receives a synthetic allow-all identity policy unless `inlinePolicy` replaces it.
170
+ * Permission boundaries and collected identity policies do not apply; supplied session policies still
171
+ * constrain the request.
172
+ *
173
+ * @param simulationRequest the virtual principal request details
174
+ * @param collectClient the IAM collect client to use for organization and resource-side data access
175
+ * @returns the normalized request and simulation result
176
+ */
177
+ export declare function simulateVirtualPrincipal(simulationRequest: VirtualPrincipalSimulationRequest, collectClient: IamCollectClient): Promise<SimulateRequestResult>;
150
178
  /**
151
179
  * Simulate a collected principal accessing a resource outside the collected dataset.
152
180
  * Wildcard-only actions are unsupported.
@@ -157,14 +185,19 @@ export declare function simulateExternalPrincipalRequest(simulationRequest: Simu
157
185
  */
158
186
  export declare function simulateExternalResourceRequest(simulationRequest: ExternalResourceSimulationRequest, collectClient: IamCollectClient): Promise<SimulateRequestResult>;
159
187
  /**
160
- * Convert an iam-lens strict context key into an iam-simulate Discovery constraint.
188
+ * Convert an iam-lens context key into an iam-simulate Discovery constraint.
189
+ *
190
+ * Caller-provided and explicitly strict keys remain fully authoritative. A stored PrincipalTag
191
+ * whose role session may override it has known presence but an unknown value. All other input keys
192
+ * are strict and continue through the existing special-case handling.
161
193
  *
162
194
  * @param keyName the literal context key or slash-delimited key pattern
163
195
  * @param simulationRequest the normalized request whose context certainty is modeled
196
+ * @param mutablePrincipalTagKeys stored PrincipalTag keys whose values are non-authoritative
164
197
  * @returns the Discovery constraint to pass to iam-simulate
165
198
  * @internal
166
199
  */
167
- export declare function discoveryConstraintForStrictKey(keyName: string, simulationRequest: Pick<InternalSimulationRequest, 'customContextKeys' | 'simulationMode' | 'principal'>): DiscoveryContextKeyConstraint;
200
+ export declare function discoveryConstraintForStrictKey(keyName: string, simulationRequest: Pick<InternalSimulationRequest, 'additionalStrictContextKeys' | 'customContextKeys' | 'simulationMode' | 'principal'>, mutablePrincipalTagKeys?: ReadonlySet<string>): DiscoveryContextKeyConstraint;
168
201
  /**
169
202
  * Compare an actual simulation decision with an optional expected result.
170
203
  *
@@ -1 +1 @@
1
- {"version":3,"file":"simulate.d.ts","sourceRoot":"","sources":["../../../src/simulate/simulate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simulate.d.ts","sourceRoot":"","sources":["../../../src/simulate/simulate.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,6BAA6B,EAClC,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAA;AASlC,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAanF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,EAEL,KAAK,WAAW,EAKjB,MAAM,kBAAkB,CAAA;AAWzB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAE/B;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,SAAS,CAAA;IAEnC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,iBAAiB,EAAE,WAAW,CAAA;IAE9B;;OAEG;IACH,cAAc,EAAE,cAAc,CAAA;IAE9B;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;IAE/B;;OAEG;IACH,aAAa,CAAC,EAAE,GAAG,CAAA;IAEnB;;OAEG;IACH,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAA;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CACtD,iBAAiB,EACjB,WAAW,GAAG,aAAa,GAAG,eAAe,CAC9C;IACC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iCAAkC,SAAQ,iBAAiB;IAC1E;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,iCAAkC,SAAQ,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC;IAC/F;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IAE9B;;OAEG;IACH,MAAM,EAAE,oBAAoB,CAAA;CAC7B;AAQD;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG;IAC7E;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAE7B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAEtC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,gBAAgB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE,EAAE,CAAA;IAEjD;;OAEG;IACH,sBAAsB,EAAE,qBAAqB,EAAE,CAAA;IAE/C;;OAEG;IACH,0BAA0B,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE,EAAE,GAAG,SAAS,CAAA;IAEvE;;OAEG;IACH,oBAAoB,EAAE,qBAAqB,EAAE,CAAA;CAC9C;AAiBD;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,iBAAiB,EAAE,0BAA0B,EAC7C,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAMhC;AAED;;;;;;;;GAQG;AACH,wBAAsB,gCAAgC,CACpD,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,iBAAiB,EAAE,iCAAiC,EACpD,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED;;;;;;;GAOG;AACH,wBAAsB,+BAA+B,CACnD,iBAAiB,EAAE,iCAAiC,EACpD,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAyiBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,IAAI,CACrB,yBAAyB,EACzB,6BAA6B,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,WAAW,CACrF,EACD,uBAAuB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5C,6BAA6B,CAoC/B;AAoLD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GAAG,SAAS,EAClD,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAQT"}