@actsecurity/iam-lens 0.1.156
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +661 -0
- package/README.md +203 -0
- package/dist/cjs/cli.d.ts +3 -0
- package/dist/cjs/cli.d.ts.map +1 -0
- package/dist/cjs/cli.js +206 -0
- package/dist/cjs/cli.js.map +1 -0
- package/dist/cjs/collect/client.d.ts +550 -0
- package/dist/cjs/collect/client.d.ts.map +1 -0
- package/dist/cjs/collect/client.js +1119 -0
- package/dist/cjs/collect/client.js.map +1 -0
- package/dist/cjs/collect/collect.d.ts +44 -0
- package/dist/cjs/collect/collect.d.ts.map +1 -0
- package/dist/cjs/collect/collect.js +55 -0
- package/dist/cjs/collect/collect.js.map +1 -0
- package/dist/cjs/collect/inMemoryClient.d.ts +6 -0
- package/dist/cjs/collect/inMemoryClient.d.ts.map +1 -0
- package/dist/cjs/collect/inMemoryClient.js +11 -0
- package/dist/cjs/collect/inMemoryClient.js.map +1 -0
- package/dist/cjs/index.d.ts +13 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +28 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/principalCan/permission.d.ts +125 -0
- package/dist/cjs/principalCan/permission.d.ts.map +1 -0
- package/dist/cjs/principalCan/permission.js +1229 -0
- package/dist/cjs/principalCan/permission.js.map +1 -0
- package/dist/cjs/principalCan/permissionSet.d.ts +140 -0
- package/dist/cjs/principalCan/permissionSet.d.ts.map +1 -0
- package/dist/cjs/principalCan/permissionSet.js +437 -0
- package/dist/cjs/principalCan/permissionSet.js.map +1 -0
- package/dist/cjs/principalCan/principalCan.d.ts +26 -0
- package/dist/cjs/principalCan/principalCan.d.ts.map +1 -0
- package/dist/cjs/principalCan/principalCan.js +195 -0
- package/dist/cjs/principalCan/principalCan.js.map +1 -0
- package/dist/cjs/principalCan/principalConstraints.d.ts +147 -0
- package/dist/cjs/principalCan/principalConstraints.d.ts.map +1 -0
- package/dist/cjs/principalCan/principalConstraints.js +472 -0
- package/dist/cjs/principalCan/principalConstraints.js.map +1 -0
- package/dist/cjs/principalCan/resources/actions.d.ts +9 -0
- package/dist/cjs/principalCan/resources/actions.d.ts.map +1 -0
- package/dist/cjs/principalCan/resources/actions.js +27 -0
- package/dist/cjs/principalCan/resources/actions.js.map +1 -0
- package/dist/cjs/principalCan/resources/resourceTypes/iamRoles.d.ts +31 -0
- package/dist/cjs/principalCan/resources/resourceTypes/iamRoles.d.ts.map +1 -0
- package/dist/cjs/principalCan/resources/resourceTypes/iamRoles.js +114 -0
- package/dist/cjs/principalCan/resources/resourceTypes/iamRoles.js.map +1 -0
- package/dist/cjs/principalCan/resources/resourceTypes/kmsKeys.d.ts +30 -0
- package/dist/cjs/principalCan/resources/resourceTypes/kmsKeys.d.ts.map +1 -0
- package/dist/cjs/principalCan/resources/resourceTypes/kmsKeys.js +110 -0
- package/dist/cjs/principalCan/resources/resourceTypes/kmsKeys.js.map +1 -0
- package/dist/cjs/principalCan/resources/resourceTypes/s3Buckets.d.ts +18 -0
- package/dist/cjs/principalCan/resources/resourceTypes/s3Buckets.d.ts.map +1 -0
- package/dist/cjs/principalCan/resources/resourceTypes/s3Buckets.js +123 -0
- package/dist/cjs/principalCan/resources/resourceTypes/s3Buckets.js.map +1 -0
- package/dist/cjs/principalCan/resources/statements.d.ts +27 -0
- package/dist/cjs/principalCan/resources/statements.d.ts.map +1 -0
- package/dist/cjs/principalCan/resources/statements.js +119 -0
- package/dist/cjs/principalCan/resources/statements.js.map +1 -0
- package/dist/cjs/principalIndex/makePrincipalIndex.d.ts +8 -0
- package/dist/cjs/principalIndex/makePrincipalIndex.d.ts.map +1 -0
- package/dist/cjs/principalIndex/makePrincipalIndex.js +105 -0
- package/dist/cjs/principalIndex/makePrincipalIndex.js.map +1 -0
- package/dist/cjs/principals.d.ts +54 -0
- package/dist/cjs/principals.d.ts.map +1 -0
- package/dist/cjs/principals.js +143 -0
- package/dist/cjs/principals.js.map +1 -0
- package/dist/cjs/resources.d.ts +32 -0
- package/dist/cjs/resources.d.ts.map +1 -0
- package/dist/cjs/resources.js +71 -0
- package/dist/cjs/resources.js.map +1 -0
- package/dist/cjs/simulate/contextKeys.d.ts +68 -0
- package/dist/cjs/simulate/contextKeys.d.ts.map +1 -0
- package/dist/cjs/simulate/contextKeys.js +293 -0
- package/dist/cjs/simulate/contextKeys.js.map +1 -0
- package/dist/cjs/simulate/simulate.d.ts +72 -0
- package/dist/cjs/simulate/simulate.d.ts.map +1 -0
- package/dist/cjs/simulate/simulate.js +296 -0
- package/dist/cjs/simulate/simulate.js.map +1 -0
- package/dist/cjs/test-datasets/testClient.d.ts +17 -0
- package/dist/cjs/test-datasets/testClient.d.ts.map +1 -0
- package/dist/cjs/test-datasets/testClient.js +58 -0
- package/dist/cjs/test-datasets/testClient.js.map +1 -0
- package/dist/cjs/utils/arn.d.ts +22 -0
- package/dist/cjs/utils/arn.d.ts.map +1 -0
- package/dist/cjs/utils/arn.js +49 -0
- package/dist/cjs/utils/arn.js.map +1 -0
- package/dist/cjs/utils/bitset.d.ts +45 -0
- package/dist/cjs/utils/bitset.d.ts.map +1 -0
- package/dist/cjs/utils/bitset.js +149 -0
- package/dist/cjs/utils/bitset.js.map +1 -0
- package/dist/cjs/utils/dynamicImport.d.ts +31 -0
- package/dist/cjs/utils/dynamicImport.d.ts.map +1 -0
- package/dist/cjs/utils/dynamicImport.js +64 -0
- package/dist/cjs/utils/dynamicImport.js.map +1 -0
- package/dist/cjs/utils/packageVersion.d.ts +5 -0
- package/dist/cjs/utils/packageVersion.d.ts.map +1 -0
- package/dist/cjs/utils/packageVersion.js +25 -0
- package/dist/cjs/utils/packageVersion.js.map +1 -0
- package/dist/cjs/utils/readPackageFile.d.ts +3 -0
- package/dist/cjs/utils/readPackageFile.d.ts.map +1 -0
- package/dist/cjs/utils/readPackageFile.js +16 -0
- package/dist/cjs/utils/readPackageFile.js.map +1 -0
- package/dist/cjs/utils/s3Abac.d.ts +3 -0
- package/dist/cjs/utils/s3Abac.d.ts.map +1 -0
- package/dist/cjs/utils/s3Abac.js +5 -0
- package/dist/cjs/utils/s3Abac.js.map +1 -0
- package/dist/cjs/utils/stringOrFileArgument.d.ts +9 -0
- package/dist/cjs/utils/stringOrFileArgument.d.ts.map +1 -0
- package/dist/cjs/utils/stringOrFileArgument.js +25 -0
- package/dist/cjs/utils/stringOrFileArgument.js.map +1 -0
- package/dist/cjs/utils/sts.d.ts +2 -0
- package/dist/cjs/utils/sts.d.ts.map +1 -0
- package/dist/cjs/utils/sts.js +9 -0
- package/dist/cjs/utils/sts.js.map +1 -0
- package/dist/cjs/utils/testUtils.d.ts +56 -0
- package/dist/cjs/utils/testUtils.d.ts.map +1 -0
- package/dist/cjs/utils/testUtils.js +95 -0
- package/dist/cjs/utils/testUtils.js.map +1 -0
- package/dist/cjs/utils/workerScript.d.ts +8 -0
- package/dist/cjs/utils/workerScript.d.ts.map +1 -0
- package/dist/cjs/utils/workerScript.js +23 -0
- package/dist/cjs/utils/workerScript.js.map +1 -0
- package/dist/cjs/whoCan/WhoCanMainThreadWorker.d.ts +73 -0
- package/dist/cjs/whoCan/WhoCanMainThreadWorker.d.ts.map +1 -0
- package/dist/cjs/whoCan/WhoCanMainThreadWorker.js +80 -0
- package/dist/cjs/whoCan/WhoCanMainThreadWorker.js.map +1 -0
- package/dist/cjs/whoCan/WhoCanProcessor.d.ts +400 -0
- package/dist/cjs/whoCan/WhoCanProcessor.d.ts.map +1 -0
- package/dist/cjs/whoCan/WhoCanProcessor.js +1088 -0
- package/dist/cjs/whoCan/WhoCanProcessor.js.map +1 -0
- package/dist/cjs/whoCan/WhoCanWorker.d.ts +87 -0
- package/dist/cjs/whoCan/WhoCanWorker.d.ts.map +1 -0
- package/dist/cjs/whoCan/WhoCanWorker.js +201 -0
- package/dist/cjs/whoCan/WhoCanWorker.js.map +1 -0
- package/dist/cjs/whoCan/WhoCanWorkerThreadWorker.d.ts +2 -0
- package/dist/cjs/whoCan/WhoCanWorkerThreadWorker.d.ts.map +1 -0
- package/dist/cjs/whoCan/WhoCanWorkerThreadWorker.js +189 -0
- package/dist/cjs/whoCan/WhoCanWorkerThreadWorker.js.map +1 -0
- package/dist/cjs/whoCan/principalArnFilter.d.ts +84 -0
- package/dist/cjs/whoCan/principalArnFilter.d.ts.map +1 -0
- package/dist/cjs/whoCan/principalArnFilter.js +258 -0
- package/dist/cjs/whoCan/principalArnFilter.js.map +1 -0
- package/dist/cjs/whoCan/principalScope.d.ts +35 -0
- package/dist/cjs/whoCan/principalScope.d.ts.map +1 -0
- package/dist/cjs/whoCan/principalScope.js +104 -0
- package/dist/cjs/whoCan/principalScope.js.map +1 -0
- package/dist/cjs/whoCan/requestAnalysis.d.ts +73 -0
- package/dist/cjs/whoCan/requestAnalysis.d.ts.map +1 -0
- package/dist/cjs/whoCan/requestAnalysis.js +87 -0
- package/dist/cjs/whoCan/requestAnalysis.js.map +1 -0
- package/dist/cjs/whoCan/untrustingActions.d.ts +7 -0
- package/dist/cjs/whoCan/untrustingActions.d.ts.map +1 -0
- package/dist/cjs/whoCan/untrustingActions.js +30 -0
- package/dist/cjs/whoCan/untrustingActions.js.map +1 -0
- package/dist/cjs/whoCan/whoCan.d.ts +295 -0
- package/dist/cjs/whoCan/whoCan.d.ts.map +1 -0
- package/dist/cjs/whoCan/whoCan.js +574 -0
- package/dist/cjs/whoCan/whoCan.js.map +1 -0
- package/dist/cjs/whoCan/workerBootstrapPlugin.d.ts +17 -0
- package/dist/cjs/whoCan/workerBootstrapPlugin.d.ts.map +1 -0
- package/dist/cjs/whoCan/workerBootstrapPlugin.js +3 -0
- package/dist/cjs/whoCan/workerBootstrapPlugin.js.map +1 -0
- package/dist/cjs/workers/ArrayStreamingWorkQueue.d.ts +15 -0
- package/dist/cjs/workers/ArrayStreamingWorkQueue.d.ts.map +1 -0
- package/dist/cjs/workers/ArrayStreamingWorkQueue.js +35 -0
- package/dist/cjs/workers/ArrayStreamingWorkQueue.js.map +1 -0
- package/dist/cjs/workers/JobRunner.d.ts +47 -0
- package/dist/cjs/workers/JobRunner.d.ts.map +1 -0
- package/dist/cjs/workers/JobRunner.js +101 -0
- package/dist/cjs/workers/JobRunner.js.map +1 -0
- package/dist/cjs/workers/RingQueue.d.ts +14 -0
- package/dist/cjs/workers/RingQueue.d.ts.map +1 -0
- package/dist/cjs/workers/RingQueue.js +43 -0
- package/dist/cjs/workers/RingQueue.js.map +1 -0
- package/dist/cjs/workers/SharedArrayBufferMainCache.d.ts +10 -0
- package/dist/cjs/workers/SharedArrayBufferMainCache.d.ts.map +1 -0
- package/dist/cjs/workers/SharedArrayBufferMainCache.js +37 -0
- package/dist/cjs/workers/SharedArrayBufferMainCache.js.map +1 -0
- package/dist/cjs/workers/SharedArrayBufferWorkerCache.d.ts +10 -0
- package/dist/cjs/workers/SharedArrayBufferWorkerCache.d.ts.map +1 -0
- package/dist/cjs/workers/SharedArrayBufferWorkerCache.js +49 -0
- package/dist/cjs/workers/SharedArrayBufferWorkerCache.js.map +1 -0
- package/dist/cjs/workers/StreamingWorkQueue.d.ts +18 -0
- package/dist/cjs/workers/StreamingWorkQueue.d.ts.map +1 -0
- package/dist/cjs/workers/StreamingWorkQueue.js +67 -0
- package/dist/cjs/workers/StreamingWorkQueue.js.map +1 -0
- package/dist/cjs/workers/buffers.d.ts +4 -0
- package/dist/cjs/workers/buffers.d.ts.map +1 -0
- package/dist/cjs/workers/buffers.js +26 -0
- package/dist/cjs/workers/buffers.js.map +1 -0
- package/dist/esm/cli.d.ts +3 -0
- package/dist/esm/cli.d.ts.map +1 -0
- package/dist/esm/cli.js +204 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/collect/client.d.ts +550 -0
- package/dist/esm/collect/client.d.ts.map +1 -0
- package/dist/esm/collect/client.js +1114 -0
- package/dist/esm/collect/client.js.map +1 -0
- package/dist/esm/collect/collect.d.ts +44 -0
- package/dist/esm/collect/collect.d.ts.map +1 -0
- package/dist/esm/collect/collect.js +51 -0
- package/dist/esm/collect/collect.js.map +1 -0
- package/dist/esm/collect/inMemoryClient.d.ts +6 -0
- package/dist/esm/collect/inMemoryClient.d.ts.map +1 -0
- package/dist/esm/collect/inMemoryClient.js +8 -0
- package/dist/esm/collect/inMemoryClient.js.map +1 -0
- package/dist/esm/index.d.ts +13 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +11 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/principalCan/permission.d.ts +125 -0
- package/dist/esm/principalCan/permission.d.ts.map +1 -0
- package/dist/esm/principalCan/permission.js +1212 -0
- package/dist/esm/principalCan/permission.js.map +1 -0
- package/dist/esm/principalCan/permissionSet.d.ts +140 -0
- package/dist/esm/principalCan/permissionSet.d.ts.map +1 -0
- package/dist/esm/principalCan/permissionSet.js +429 -0
- package/dist/esm/principalCan/permissionSet.js.map +1 -0
- package/dist/esm/principalCan/principalCan.d.ts +26 -0
- package/dist/esm/principalCan/principalCan.d.ts.map +1 -0
- package/dist/esm/principalCan/principalCan.js +193 -0
- package/dist/esm/principalCan/principalCan.js.map +1 -0
- package/dist/esm/principalCan/principalConstraints.d.ts +147 -0
- package/dist/esm/principalCan/principalConstraints.d.ts.map +1 -0
- package/dist/esm/principalCan/principalConstraints.js +456 -0
- package/dist/esm/principalCan/principalConstraints.js.map +1 -0
- package/dist/esm/principalCan/resources/actions.d.ts +9 -0
- package/dist/esm/principalCan/resources/actions.d.ts.map +1 -0
- package/dist/esm/principalCan/resources/actions.js +24 -0
- package/dist/esm/principalCan/resources/actions.js.map +1 -0
- package/dist/esm/principalCan/resources/resourceTypes/iamRoles.d.ts +31 -0
- package/dist/esm/principalCan/resources/resourceTypes/iamRoles.d.ts.map +1 -0
- package/dist/esm/principalCan/resources/resourceTypes/iamRoles.js +110 -0
- package/dist/esm/principalCan/resources/resourceTypes/iamRoles.js.map +1 -0
- package/dist/esm/principalCan/resources/resourceTypes/kmsKeys.d.ts +30 -0
- package/dist/esm/principalCan/resources/resourceTypes/kmsKeys.d.ts.map +1 -0
- package/dist/esm/principalCan/resources/resourceTypes/kmsKeys.js +106 -0
- package/dist/esm/principalCan/resources/resourceTypes/kmsKeys.js.map +1 -0
- package/dist/esm/principalCan/resources/resourceTypes/s3Buckets.d.ts +18 -0
- package/dist/esm/principalCan/resources/resourceTypes/s3Buckets.d.ts.map +1 -0
- package/dist/esm/principalCan/resources/resourceTypes/s3Buckets.js +120 -0
- package/dist/esm/principalCan/resources/resourceTypes/s3Buckets.js.map +1 -0
- package/dist/esm/principalCan/resources/statements.d.ts +27 -0
- package/dist/esm/principalCan/resources/statements.d.ts.map +1 -0
- package/dist/esm/principalCan/resources/statements.js +117 -0
- package/dist/esm/principalCan/resources/statements.js.map +1 -0
- package/dist/esm/principalIndex/makePrincipalIndex.d.ts +8 -0
- package/dist/esm/principalIndex/makePrincipalIndex.d.ts.map +1 -0
- package/dist/esm/principalIndex/makePrincipalIndex.js +104 -0
- package/dist/esm/principalIndex/makePrincipalIndex.js.map +1 -0
- package/dist/esm/principals.d.ts +54 -0
- package/dist/esm/principals.d.ts.map +1 -0
- package/dist/esm/principals.js +133 -0
- package/dist/esm/principals.js.map +1 -0
- package/dist/esm/resources.d.ts +32 -0
- package/dist/esm/resources.d.ts.map +1 -0
- package/dist/esm/resources.js +69 -0
- package/dist/esm/resources.js.map +1 -0
- package/dist/esm/simulate/contextKeys.d.ts +68 -0
- package/dist/esm/simulate/contextKeys.d.ts.map +1 -0
- package/dist/esm/simulate/contextKeys.js +287 -0
- package/dist/esm/simulate/contextKeys.js.map +1 -0
- package/dist/esm/simulate/simulate.d.ts +72 -0
- package/dist/esm/simulate/simulate.d.ts.map +1 -0
- package/dist/esm/simulate/simulate.js +295 -0
- package/dist/esm/simulate/simulate.js.map +1 -0
- package/dist/esm/test-datasets/testClient.d.ts +17 -0
- package/dist/esm/test-datasets/testClient.d.ts.map +1 -0
- package/dist/esm/test-datasets/testClient.js +56 -0
- package/dist/esm/test-datasets/testClient.js.map +1 -0
- package/dist/esm/utils/arn.d.ts +22 -0
- package/dist/esm/utils/arn.d.ts.map +1 -0
- package/dist/esm/utils/arn.js +43 -0
- package/dist/esm/utils/arn.js.map +1 -0
- package/dist/esm/utils/bitset.d.ts +45 -0
- package/dist/esm/utils/bitset.d.ts.map +1 -0
- package/dist/esm/utils/bitset.js +141 -0
- package/dist/esm/utils/bitset.js.map +1 -0
- package/dist/esm/utils/dynamicImport.d.ts +31 -0
- package/dist/esm/utils/dynamicImport.d.ts.map +1 -0
- package/dist/esm/utils/dynamicImport.js +60 -0
- package/dist/esm/utils/dynamicImport.js.map +1 -0
- package/dist/esm/utils/packageVersion.d.ts +5 -0
- package/dist/esm/utils/packageVersion.d.ts.map +1 -0
- package/dist/esm/utils/packageVersion.js +22 -0
- package/dist/esm/utils/packageVersion.js.map +1 -0
- package/dist/esm/utils/readPackageFile.d.ts +3 -0
- package/dist/esm/utils/readPackageFile.d.ts.map +1 -0
- package/dist/esm/utils/readPackageFile.js +15 -0
- package/dist/esm/utils/readPackageFile.js.map +1 -0
- package/dist/esm/utils/readPackageFileEsm.d.ts.map +1 -0
- package/dist/esm/utils/s3Abac.d.ts +3 -0
- package/dist/esm/utils/s3Abac.d.ts.map +1 -0
- package/dist/esm/utils/s3Abac.js +2 -0
- package/dist/esm/utils/s3Abac.js.map +1 -0
- package/dist/esm/utils/stringOrFileArgument.d.ts +9 -0
- package/dist/esm/utils/stringOrFileArgument.d.ts.map +1 -0
- package/dist/esm/utils/stringOrFileArgument.js +22 -0
- package/dist/esm/utils/stringOrFileArgument.js.map +1 -0
- package/dist/esm/utils/sts.d.ts +2 -0
- package/dist/esm/utils/sts.d.ts.map +1 -0
- package/dist/esm/utils/sts.js +6 -0
- package/dist/esm/utils/sts.js.map +1 -0
- package/dist/esm/utils/testUtils.d.ts +56 -0
- package/dist/esm/utils/testUtils.d.ts.map +1 -0
- package/dist/esm/utils/testUtils.js +90 -0
- package/dist/esm/utils/testUtils.js.map +1 -0
- package/dist/esm/utils/workerScript.d.ts +8 -0
- package/dist/esm/utils/workerScript.d.ts.map +1 -0
- package/dist/esm/utils/workerScript.js +18 -0
- package/dist/esm/utils/workerScript.js.map +1 -0
- package/dist/esm/utils/workerScriptEsm.d.ts.map +1 -0
- package/dist/esm/whoCan/WhoCanMainThreadWorker.d.ts +73 -0
- package/dist/esm/whoCan/WhoCanMainThreadWorker.d.ts.map +1 -0
- package/dist/esm/whoCan/WhoCanMainThreadWorker.js +81 -0
- package/dist/esm/whoCan/WhoCanMainThreadWorker.js.map +1 -0
- package/dist/esm/whoCan/WhoCanProcessor.d.ts +400 -0
- package/dist/esm/whoCan/WhoCanProcessor.d.ts.map +1 -0
- package/dist/esm/whoCan/WhoCanProcessor.js +1080 -0
- package/dist/esm/whoCan/WhoCanProcessor.js.map +1 -0
- package/dist/esm/whoCan/WhoCanWorker.d.ts +87 -0
- package/dist/esm/whoCan/WhoCanWorker.d.ts.map +1 -0
- package/dist/esm/whoCan/WhoCanWorker.js +198 -0
- package/dist/esm/whoCan/WhoCanWorker.js.map +1 -0
- package/dist/esm/whoCan/WhoCanWorkerThreadWorker.d.ts +2 -0
- package/dist/esm/whoCan/WhoCanWorkerThreadWorker.d.ts.map +1 -0
- package/dist/esm/whoCan/WhoCanWorkerThreadWorker.js +193 -0
- package/dist/esm/whoCan/WhoCanWorkerThreadWorker.js.map +1 -0
- package/dist/esm/whoCan/principalArnFilter.d.ts +84 -0
- package/dist/esm/whoCan/principalArnFilter.d.ts.map +1 -0
- package/dist/esm/whoCan/principalArnFilter.js +253 -0
- package/dist/esm/whoCan/principalArnFilter.js.map +1 -0
- package/dist/esm/whoCan/principalScope.d.ts +35 -0
- package/dist/esm/whoCan/principalScope.d.ts.map +1 -0
- package/dist/esm/whoCan/principalScope.js +102 -0
- package/dist/esm/whoCan/principalScope.js.map +1 -0
- package/dist/esm/whoCan/requestAnalysis.d.ts +73 -0
- package/dist/esm/whoCan/requestAnalysis.d.ts.map +1 -0
- package/dist/esm/whoCan/requestAnalysis.js +83 -0
- package/dist/esm/whoCan/requestAnalysis.js.map +1 -0
- package/dist/esm/whoCan/untrustingActions.d.ts +7 -0
- package/dist/esm/whoCan/untrustingActions.d.ts.map +1 -0
- package/dist/esm/whoCan/untrustingActions.js +27 -0
- package/dist/esm/whoCan/untrustingActions.js.map +1 -0
- package/dist/esm/whoCan/whoCan.d.ts +295 -0
- package/dist/esm/whoCan/whoCan.d.ts.map +1 -0
- package/dist/esm/whoCan/whoCan.js +571 -0
- package/dist/esm/whoCan/whoCan.js.map +1 -0
- package/dist/esm/whoCan/workerBootstrapPlugin.d.ts +17 -0
- package/dist/esm/whoCan/workerBootstrapPlugin.d.ts.map +1 -0
- package/dist/esm/whoCan/workerBootstrapPlugin.js +2 -0
- package/dist/esm/whoCan/workerBootstrapPlugin.js.map +1 -0
- package/dist/esm/workers/ArrayStreamingWorkQueue.d.ts +15 -0
- package/dist/esm/workers/ArrayStreamingWorkQueue.d.ts.map +1 -0
- package/dist/esm/workers/ArrayStreamingWorkQueue.js +31 -0
- package/dist/esm/workers/ArrayStreamingWorkQueue.js.map +1 -0
- package/dist/esm/workers/JobRunner.d.ts +47 -0
- package/dist/esm/workers/JobRunner.d.ts.map +1 -0
- package/dist/esm/workers/JobRunner.js +94 -0
- package/dist/esm/workers/JobRunner.js.map +1 -0
- package/dist/esm/workers/RingQueue.d.ts +14 -0
- package/dist/esm/workers/RingQueue.d.ts.map +1 -0
- package/dist/esm/workers/RingQueue.js +36 -0
- package/dist/esm/workers/RingQueue.js.map +1 -0
- package/dist/esm/workers/SharedArrayBufferMainCache.d.ts +10 -0
- package/dist/esm/workers/SharedArrayBufferMainCache.d.ts.map +1 -0
- package/dist/esm/workers/SharedArrayBufferMainCache.js +34 -0
- package/dist/esm/workers/SharedArrayBufferMainCache.js.map +1 -0
- package/dist/esm/workers/SharedArrayBufferWorkerCache.d.ts +10 -0
- package/dist/esm/workers/SharedArrayBufferWorkerCache.d.ts.map +1 -0
- package/dist/esm/workers/SharedArrayBufferWorkerCache.js +46 -0
- package/dist/esm/workers/SharedArrayBufferWorkerCache.js.map +1 -0
- package/dist/esm/workers/StreamingWorkQueue.d.ts +18 -0
- package/dist/esm/workers/StreamingWorkQueue.d.ts.map +1 -0
- package/dist/esm/workers/StreamingWorkQueue.js +61 -0
- package/dist/esm/workers/StreamingWorkQueue.js.map +1 -0
- package/dist/esm/workers/buffers.d.ts +4 -0
- package/dist/esm/workers/buffers.d.ts.map +1 -0
- package/dist/esm/workers/buffers.js +21 -0
- package/dist/esm/workers/buffers.js.map +1 -0
- package/package.json +132 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.simulateRequest = simulateRequest;
|
|
4
|
+
exports.resultMatchesExpectation = resultMatchesExpectation;
|
|
5
|
+
const iam_data_1 = require("@actsecurity/iam-data");
|
|
6
|
+
const iam_simulate_1 = require("@actsecurity/iam-simulate");
|
|
7
|
+
const iam_utils_1 = require("@actsecurity/iam-utils");
|
|
8
|
+
const principals_js_1 = require("../principals.js");
|
|
9
|
+
const resources_js_1 = require("../resources.js");
|
|
10
|
+
const sts_js_1 = require("../utils/sts.js");
|
|
11
|
+
const contextKeys_js_1 = require("./contextKeys.js");
|
|
12
|
+
/**
|
|
13
|
+
* Simulate an IAM request against the collected IAM data.
|
|
14
|
+
*
|
|
15
|
+
* @param simulationRequest the simulation request details.
|
|
16
|
+
* @param collectClient the IAM collect client to use for data access.
|
|
17
|
+
* @returns the simulation result, including the request and the evaluation result.
|
|
18
|
+
*/
|
|
19
|
+
async function simulateRequest(simulationRequest, collectClient) {
|
|
20
|
+
const actionParts = simulationRequest.action.split(':');
|
|
21
|
+
const service = actionParts[0];
|
|
22
|
+
const serviceAction = actionParts[1];
|
|
23
|
+
const serviceExists = await (0, iam_data_1.iamServiceExists)(service);
|
|
24
|
+
const actionExists = serviceExists && (await (0, iam_data_1.iamActionExists)(service, serviceAction));
|
|
25
|
+
if (!serviceExists || !actionExists) {
|
|
26
|
+
throw new Error(`Unable to find action details for ${simulationRequest.action}`);
|
|
27
|
+
}
|
|
28
|
+
const actionDetails = await (0, iam_data_1.iamActionDetails)(service, serviceAction);
|
|
29
|
+
// If it is a wildcard action, the resource account is always the principal account
|
|
30
|
+
if (actionDetails.isWildcardOnly) {
|
|
31
|
+
simulationRequest.resourceAccount = (0, iam_utils_1.splitArnParts)(simulationRequest.principal).accountId;
|
|
32
|
+
}
|
|
33
|
+
if (!simulationRequest.resourceAccount && !simulationRequest.resourceArn) {
|
|
34
|
+
throw new Error('Non wildcard actions require a resource ARN or resource account to be specified.');
|
|
35
|
+
}
|
|
36
|
+
simulationRequest.resourceAccount =
|
|
37
|
+
simulationRequest.resourceAccount ||
|
|
38
|
+
(await (0, resources_js_1.getAccountIdForResource)(collectClient, simulationRequest.resourceArn));
|
|
39
|
+
if (!simulationRequest.resourceAccount) {
|
|
40
|
+
throw new Error(`Unable to find account ID for resource ${simulationRequest.resourceArn}`);
|
|
41
|
+
}
|
|
42
|
+
const principalFound = await (0, principals_js_1.principalExists)(simulationRequest.principal, collectClient);
|
|
43
|
+
if (!principalFound && !simulationRequest.ignoreMissingPrincipal) {
|
|
44
|
+
throw new Error(`Principal ${simulationRequest.principal} does not exist. Use --ignore-missing-principal to ignore this.`);
|
|
45
|
+
}
|
|
46
|
+
const request = {
|
|
47
|
+
action: simulationRequest.action,
|
|
48
|
+
resource: {
|
|
49
|
+
resource: simulationRequest.resourceArn || '*',
|
|
50
|
+
accountId: simulationRequest.resourceAccount
|
|
51
|
+
},
|
|
52
|
+
principal: simulationRequest.principal,
|
|
53
|
+
contextVariables: {}
|
|
54
|
+
};
|
|
55
|
+
//Lookup the principal policies
|
|
56
|
+
const principalPolicies = await (0, principals_js_1.getAllPoliciesForPrincipal)(collectClient, simulationRequest.principal);
|
|
57
|
+
const { resourcePolicy, resourceRcps } = await getResourcePolicies(collectClient, simulationRequest.resourceArn, simulationRequest.resourceAccount);
|
|
58
|
+
const useResourcePolicy = simulationRequest.resourceArn &&
|
|
59
|
+
!((0, iam_utils_1.isIamRoleArn)(simulationRequest.resourceArn) && service.toLowerCase() === 'iam');
|
|
60
|
+
if (sts_js_1.AssumeRoleActions.has(simulationRequest.action.toLowerCase()) && !resourcePolicy) {
|
|
61
|
+
throw new Error(`Trust policy not found for resource ${simulationRequest.resourceArn}. sts assume role actions require a trust policy.`);
|
|
62
|
+
}
|
|
63
|
+
const principalArnForContext = await resolvePrincipalArnForContext(collectClient, simulationRequest.principal);
|
|
64
|
+
const { contextKeys, resourceTagsAreKnown } = await (0, contextKeys_js_1.createContextKeys)(collectClient, simulationRequest, service, simulationRequest.customContextKeys, principalArnForContext);
|
|
65
|
+
const vpcEndpointId = (0, contextKeys_js_1.contextValue)(contextKeys, contextKeys_js_1.CONTEXT_KEYS.vpcEndpointId);
|
|
66
|
+
let vpcEndpointPolicy = undefined;
|
|
67
|
+
if (vpcEndpointId && typeof vpcEndpointId === 'string') {
|
|
68
|
+
const vpcEndpointArn = await collectClient.getVpcEndpointArnForVpcEndpointId(vpcEndpointId);
|
|
69
|
+
if (vpcEndpointArn) {
|
|
70
|
+
const vpcPolicy = await collectClient.getVpcEndpointPolicyForArn(vpcEndpointArn);
|
|
71
|
+
if (vpcPolicy) {
|
|
72
|
+
vpcEndpointPolicy = { name: vpcEndpointArn, policy: vpcPolicy };
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
const applicableScps = (0, principals_js_1.isServiceLinkedRole)(simulationRequest.principal)
|
|
77
|
+
? []
|
|
78
|
+
: principalPolicies.scps;
|
|
79
|
+
request.contextVariables = contextKeys;
|
|
80
|
+
const simulation = {
|
|
81
|
+
request,
|
|
82
|
+
sessionPolicy: simulationRequest.sessionPolicy,
|
|
83
|
+
identityPolicies: prepareIdentityPolicies(simulationRequest.principal, principalPolicies),
|
|
84
|
+
serviceControlPolicies: applicableScps,
|
|
85
|
+
resourceControlPolicies: rcpsForRequest(simulationRequest.principal, actionDetails.isWildcardOnly, resourceRcps, principalPolicies.rcps),
|
|
86
|
+
resourcePolicy: useResourcePolicy ? resourcePolicy : undefined,
|
|
87
|
+
permissionBoundaryPolicies: preparePermissionBoundary(principalPolicies),
|
|
88
|
+
vpcEndpointPolicies: vpcEndpointPolicy ? [vpcEndpointPolicy] : undefined
|
|
89
|
+
};
|
|
90
|
+
const s3BucketOrObjectRequest = simulationRequest.resourceArn && (0, iam_utils_1.isS3BucketOrObjectArn)(simulationRequest.resourceArn);
|
|
91
|
+
if (s3BucketOrObjectRequest) {
|
|
92
|
+
const [bucketAbacEnabled, blockPublicAccess] = await Promise.all([
|
|
93
|
+
evaluateAbacForBucket(simulationRequest.s3AbacOverride, collectClient, simulationRequest.resourceAccount, simulationRequest.resourceArn),
|
|
94
|
+
collectClient.getBlockPublicAccessEnabledForBucket(simulationRequest.resourceAccount, simulationRequest.resourceArn)
|
|
95
|
+
]);
|
|
96
|
+
simulation.additionalSettings = {
|
|
97
|
+
s3: {
|
|
98
|
+
bucketAbacEnabled,
|
|
99
|
+
blockPublicAccess
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
// Assemble the strict context keys for the simulation
|
|
104
|
+
// Start with the default known context keys
|
|
105
|
+
const strictContextKeys = [
|
|
106
|
+
...contextKeys_js_1.knownContextKeys,
|
|
107
|
+
...(simulationRequest.additionalStrictContextKeys ?? [])
|
|
108
|
+
];
|
|
109
|
+
if (!(0, iam_utils_1.isIamRoleArn)(simulationRequest.principal)) {
|
|
110
|
+
strictContextKeys.push(contextKeys_js_1.CONTEXT_KEYS.userId);
|
|
111
|
+
}
|
|
112
|
+
if (!simulationRequest.principal.endsWith(':root')) {
|
|
113
|
+
// Treat this as strict unless it is a root principal
|
|
114
|
+
strictContextKeys.push(contextKeys_js_1.CONTEXT_KEYS.assumedRoot);
|
|
115
|
+
}
|
|
116
|
+
// S3 Access Points are Not Supported Right Now, Don't Add Noise
|
|
117
|
+
if (simulationRequest.action.startsWith('s3:')) {
|
|
118
|
+
strictContextKeys.push('s3:DataAccessPointAccount');
|
|
119
|
+
strictContextKeys.push('s3:DataAccessPointArn');
|
|
120
|
+
}
|
|
121
|
+
// Add the custom context keys from the simulation request
|
|
122
|
+
for (const key of Object.keys(simulationRequest.customContextKeys)) {
|
|
123
|
+
strictContextKeys.push(key);
|
|
124
|
+
}
|
|
125
|
+
//If we know the tag keys, just make all tag keys strict
|
|
126
|
+
if (resourceTagsAreKnown) {
|
|
127
|
+
strictContextKeys.push('/^aws:ResourceTag\/.*/');
|
|
128
|
+
if (s3BucketOrObjectRequest) {
|
|
129
|
+
strictContextKeys.push('/^s3:BucketTag\/.*/');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// There also may be other tag context keys, so add those too
|
|
133
|
+
for (const key of Object.keys(contextKeys)) {
|
|
134
|
+
if (key.toLowerCase().includes('tag/')) {
|
|
135
|
+
strictContextKeys.push(key);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
const discoveryContextKeyConstraints = strictContextKeys.map(discoveryConstraintForStrictKey);
|
|
139
|
+
const result = await (0, iam_simulate_1.runSimulation)(simulation, {
|
|
140
|
+
simulationMode: simulationRequest.simulationMode,
|
|
141
|
+
discoveryContextKeyConstraints
|
|
142
|
+
});
|
|
143
|
+
return { request, result };
|
|
144
|
+
}
|
|
145
|
+
const awsSourceKeyPrefix = 'aws:source';
|
|
146
|
+
/**
|
|
147
|
+
* Converts an iam-lens strict context key into an iam-simulate Discovery constraint.
|
|
148
|
+
*
|
|
149
|
+
* Most strict keys should preserve the old behavior where both presence and
|
|
150
|
+
* value are authoritative. Service source context keys are different during
|
|
151
|
+
* who-can discovery: iam-lens supplies resource-derived placeholder values, but
|
|
152
|
+
* the actual source account/org for a service principal request may differ.
|
|
153
|
+
* Treating those values as unknown lets who-can return conditional access
|
|
154
|
+
* instead of incorrectly denying service-principal statements.
|
|
155
|
+
*
|
|
156
|
+
* @param keyName the literal context key or slash-delimited key pattern
|
|
157
|
+
* @returns the Discovery constraint to pass to iam-simulate
|
|
158
|
+
*/
|
|
159
|
+
function discoveryConstraintForStrictKey(keyName) {
|
|
160
|
+
if (keyName.slice(0, 10).localeCompare(awsSourceKeyPrefix, undefined, { sensitivity: 'base' }) === 0) {
|
|
161
|
+
return {
|
|
162
|
+
keyName,
|
|
163
|
+
presenceIsKnown: true,
|
|
164
|
+
valueIsKnown: false
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
keyName,
|
|
169
|
+
presenceIsKnown: true,
|
|
170
|
+
valueIsKnown: true
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
async function getResourcePolicies(collectClient, resourceArn, resourceAccount) {
|
|
174
|
+
if (!resourceArn) {
|
|
175
|
+
return { resourcePolicy: undefined, resourceRcps: [] };
|
|
176
|
+
}
|
|
177
|
+
const resourcePolicy = await (0, resources_js_1.getResourcePolicyForResource)(collectClient, resourceArn, resourceAccount);
|
|
178
|
+
const resourceRcps = await (0, resources_js_1.getRcpsForResource)(collectClient, resourceArn, resourceAccount);
|
|
179
|
+
return { resourcePolicy, resourceRcps };
|
|
180
|
+
}
|
|
181
|
+
function rcpsForRequest(principalArn, actionIsWildcard, resourceRcps, principalRcps) {
|
|
182
|
+
if ((0, principals_js_1.isServiceLinkedRole)(principalArn)) {
|
|
183
|
+
return [];
|
|
184
|
+
}
|
|
185
|
+
let theRcps = resourceRcps;
|
|
186
|
+
if (actionIsWildcard) {
|
|
187
|
+
theRcps = principalRcps;
|
|
188
|
+
}
|
|
189
|
+
return theRcps.map((rcp) => {
|
|
190
|
+
rcp.orgIdentifier;
|
|
191
|
+
return {
|
|
192
|
+
orgIdentifier: rcp.orgIdentifier,
|
|
193
|
+
policies: rcp.policies.filter((policy) => {
|
|
194
|
+
return !policy.name.toLowerCase().endsWith('rcpfullawsaccess');
|
|
195
|
+
})
|
|
196
|
+
};
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Resolves the principal ARN to use for role-backed context keys.
|
|
201
|
+
*
|
|
202
|
+
* Direct simulations can use STS assumed-role session ARNs, but collected tags
|
|
203
|
+
* and the canonical `aws:PrincipalArn` value belong to the underlying IAM role.
|
|
204
|
+
* This function performs the collected-data lookup only after the principal ARN
|
|
205
|
+
* passes the cheap assumed-role ARN check, avoiding unnecessary storage lookups
|
|
206
|
+
* for users, role ARNs, root principals, and service principals.
|
|
207
|
+
*
|
|
208
|
+
* @param collectClient the IAM collect client to use for resolving role ARNs
|
|
209
|
+
* @param principalArn the simulation principal ARN or service principal
|
|
210
|
+
* @returns the canonical role ARN for assumed-role sessions, otherwise undefined
|
|
211
|
+
*/
|
|
212
|
+
async function resolvePrincipalArnForContext(collectClient, principalArn) {
|
|
213
|
+
if (!(0, iam_utils_1.isAssumedRoleArn)(principalArn)) {
|
|
214
|
+
return undefined;
|
|
215
|
+
}
|
|
216
|
+
return ((await collectClient.resolvePrincipalArn(principalArn)) ??
|
|
217
|
+
(0, iam_utils_1.convertAssumedRoleArnToRoleArn)(principalArn));
|
|
218
|
+
}
|
|
219
|
+
function prepareIdentityPolicies(principalArn, principalPolicies) {
|
|
220
|
+
//Collect unique managed policies
|
|
221
|
+
const uniqueIdentityPolicies = {};
|
|
222
|
+
principalPolicies.managedPolicies.forEach((policy) => {
|
|
223
|
+
if (!uniqueIdentityPolicies[policy.arn]) {
|
|
224
|
+
uniqueIdentityPolicies[policy.arn] = {
|
|
225
|
+
name: policy.arn,
|
|
226
|
+
policy: policy.policy
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
principalPolicies.groupPolicies?.forEach((groupPolicy) => {
|
|
231
|
+
groupPolicy.managedPolicies.forEach((policy) => {
|
|
232
|
+
if (!uniqueIdentityPolicies[policy.arn]) {
|
|
233
|
+
uniqueIdentityPolicies[policy.arn] = {
|
|
234
|
+
name: policy.arn,
|
|
235
|
+
policy: policy.policy
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
const identityPolicies = Object.values(uniqueIdentityPolicies);
|
|
241
|
+
principalPolicies.inlinePolicies.forEach((policy) => {
|
|
242
|
+
identityPolicies.push({
|
|
243
|
+
name: `${principalArn}#${policy.name}`,
|
|
244
|
+
policy: policy.policy
|
|
245
|
+
});
|
|
246
|
+
});
|
|
247
|
+
principalPolicies.groupPolicies?.forEach((groupPolicy) => {
|
|
248
|
+
groupPolicy.inlinePolicies.forEach((policy) => {
|
|
249
|
+
identityPolicies.push({
|
|
250
|
+
name: `${groupPolicy.group}#${policy.name}`,
|
|
251
|
+
policy: policy.policy
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
return identityPolicies;
|
|
256
|
+
}
|
|
257
|
+
function preparePermissionBoundary(principalPolicies) {
|
|
258
|
+
if (principalPolicies.permissionBoundary) {
|
|
259
|
+
return [
|
|
260
|
+
{
|
|
261
|
+
name: principalPolicies.permissionBoundary.arn,
|
|
262
|
+
policy: principalPolicies.permissionBoundary.policy
|
|
263
|
+
}
|
|
264
|
+
];
|
|
265
|
+
}
|
|
266
|
+
return undefined;
|
|
267
|
+
}
|
|
268
|
+
function resultMatchesExpectation(expected, result) {
|
|
269
|
+
if (!expected) {
|
|
270
|
+
return true;
|
|
271
|
+
}
|
|
272
|
+
if (expected === 'AnyDeny') {
|
|
273
|
+
return result.includes('Denied');
|
|
274
|
+
}
|
|
275
|
+
return expected === result;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Evaluates whether ABAC (Attribute-Based Access Control) is enabled for a given S3 bucket or object.
|
|
279
|
+
* The evaluation can be overridden by the `s3AbacOverride` parameter.
|
|
280
|
+
*
|
|
281
|
+
* @param s3AbacOverride the override setting for S3 ABAC or undefined to auto-detect
|
|
282
|
+
* @param collectClient the IAM collect client to use for data access
|
|
283
|
+
* @param bucketAccountId the account ID the bucket belongs to
|
|
284
|
+
* @param bucketOrObjectArn the ARN of the bucket or bucket object
|
|
285
|
+
* @returns whether ABAC should be used to evaluate access for the bucket or object
|
|
286
|
+
*/
|
|
287
|
+
async function evaluateAbacForBucket(s3AbacOverride, collectClient, bucketAccountId, bucketOrObjectArn) {
|
|
288
|
+
if (s3AbacOverride === 'enabled') {
|
|
289
|
+
return true;
|
|
290
|
+
}
|
|
291
|
+
if (s3AbacOverride === 'disabled') {
|
|
292
|
+
return false;
|
|
293
|
+
}
|
|
294
|
+
return collectClient.getAbacEnabledForBucket(bucketAccountId, bucketOrObjectArn);
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=simulate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simulate.js","sourceRoot":"","sources":["../../../src/simulate/simulate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type TopLevelConfig } from '@actsecurity/iam-collect';
|
|
2
|
+
import { IamCollectClient } from '../collect/client.js';
|
|
3
|
+
/**
|
|
4
|
+
* Get an IAMCollectClient for a test database
|
|
5
|
+
*
|
|
6
|
+
* @param dataSetId the ID of the test dataset to use
|
|
7
|
+
* @returns IamCollectClient instance configured for the specified dataset
|
|
8
|
+
*/
|
|
9
|
+
export declare function getTestDatasetClient(dataSetId: string): Promise<IamCollectClient>;
|
|
10
|
+
/**
|
|
11
|
+
* Get TopLevelConfig array for a test dataset.
|
|
12
|
+
*
|
|
13
|
+
* @param dataSetId - The numeric ID suffix of the dataset
|
|
14
|
+
* @returns Configuration array pointing to the dataset's file storage
|
|
15
|
+
*/
|
|
16
|
+
export declare function getTestDatasetConfigs(dataSetId: string): TopLevelConfig[];
|
|
17
|
+
//# sourceMappingURL=testClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testClient.d.ts","sourceRoot":"","sources":["../../../src/test-datasets/testClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAI9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAgBvD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoBvF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE,CAUzE"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTestDatasetClient = getTestDatasetClient;
|
|
4
|
+
exports.getTestDatasetConfigs = getTestDatasetConfigs;
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const url_1 = require("url");
|
|
8
|
+
const collect_js_1 = require("../collect/collect.js");
|
|
9
|
+
// @ts-ignore
|
|
10
|
+
const __dirname = (0, path_1.dirname)((0, url_1.fileURLToPath)(import.meta.url));
|
|
11
|
+
/**
|
|
12
|
+
* Resolves the absolute path for a test dataset directory.
|
|
13
|
+
*
|
|
14
|
+
* @param dataSetId - The numeric ID suffix of the dataset (e.g. "1" for iam-data-1)
|
|
15
|
+
* @returns Absolute path to the dataset directory
|
|
16
|
+
*/
|
|
17
|
+
function datasetPath(dataSetId) {
|
|
18
|
+
return (0, path_1.resolve)((0, path_1.join)(__dirname, `iam-data-${dataSetId}`));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get an IAMCollectClient for a test database
|
|
22
|
+
*
|
|
23
|
+
* @param dataSetId the ID of the test dataset to use
|
|
24
|
+
* @returns IamCollectClient instance configured for the specified dataset
|
|
25
|
+
*/
|
|
26
|
+
async function getTestDatasetClient(dataSetId) {
|
|
27
|
+
const path = datasetPath(dataSetId);
|
|
28
|
+
if (!(0, fs_1.existsSync)(path)) {
|
|
29
|
+
throw new Error(`Test dataset with ID ${dataSetId} does not exist at path ${path}. Someone messed up.`);
|
|
30
|
+
}
|
|
31
|
+
return (0, collect_js_1.getCollectClient)([
|
|
32
|
+
{
|
|
33
|
+
iamCollectVersion: '0.0.0',
|
|
34
|
+
storage: {
|
|
35
|
+
type: 'file',
|
|
36
|
+
path
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
], 'aws');
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get TopLevelConfig array for a test dataset.
|
|
43
|
+
*
|
|
44
|
+
* @param dataSetId - The numeric ID suffix of the dataset
|
|
45
|
+
* @returns Configuration array pointing to the dataset's file storage
|
|
46
|
+
*/
|
|
47
|
+
function getTestDatasetConfigs(dataSetId) {
|
|
48
|
+
return [
|
|
49
|
+
{
|
|
50
|
+
iamCollectVersion: '0.0.0',
|
|
51
|
+
storage: {
|
|
52
|
+
type: 'file',
|
|
53
|
+
path: datasetPath(dataSetId)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=testClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testClient.js","sourceRoot":"","sources":["../../../src/test-datasets/testClient.ts"],"names":[],"mappings":";;AA0BA,oDAoBC;AAQD,sDAUC;AA/DD,2BAA+B;AAC/B,+BAA6C;AAC7C,6BAAmC;AAEnC,sDAAwD;AAExD,aAAa;AACb,MAAM,SAAS,GAAG,IAAA,cAAO,EAAC,IAAA,mBAAa,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAEzD;;;;;GAKG;AACH,SAAS,WAAW,CAAC,SAAiB;IACpC,OAAO,IAAA,cAAO,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,YAAY,SAAS,EAAE,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,oBAAoB,CAAC,SAAiB;IAC1D,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,wBAAwB,SAAS,2BAA2B,IAAI,sBAAsB,CACvF,CAAA;IACH,CAAC;IAED,OAAO,IAAA,6BAAgB,EACrB;QACE;YACE,iBAAiB,EAAE,OAAO;YAC1B,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI;aACL;SACF;KACF,EACD,KAAK,CACN,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,SAAiB;IACrD,OAAO;QACL;YACE,iBAAiB,EAAE,OAAO;YAC1B,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC;aAC7B;SACF;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type ArnParts } from '@actsecurity/iam-utils';
|
|
2
|
+
export declare class Arn {
|
|
3
|
+
private readonly arn;
|
|
4
|
+
private readonly parts;
|
|
5
|
+
constructor(arn: string);
|
|
6
|
+
get service(): string;
|
|
7
|
+
get partition(): string;
|
|
8
|
+
get region(): string | undefined;
|
|
9
|
+
get accountId(): string | undefined;
|
|
10
|
+
get resourceType(): string | undefined;
|
|
11
|
+
get resourcePath(): string | undefined;
|
|
12
|
+
get resource(): string;
|
|
13
|
+
get value(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Check
|
|
16
|
+
*
|
|
17
|
+
* @param parts
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
matches(parts: Partial<ArnParts>): boolean;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=arn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arn.d.ts","sourceRoot":"","sources":["../../../src/utils/arn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAiB,MAAM,wBAAwB,CAAA;AAErE,qBAAa,GAAG;IAGF,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;gBAEH,GAAG,EAAE,MAAM;IAIxC,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,SAAS,CAErC;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO;CAK3C"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Arn = void 0;
|
|
4
|
+
const iam_utils_1 = require("@actsecurity/iam-utils");
|
|
5
|
+
class Arn {
|
|
6
|
+
arn;
|
|
7
|
+
parts;
|
|
8
|
+
constructor(arn) {
|
|
9
|
+
this.arn = arn;
|
|
10
|
+
this.parts = (0, iam_utils_1.splitArnParts)(arn);
|
|
11
|
+
}
|
|
12
|
+
get service() {
|
|
13
|
+
return this.parts.service;
|
|
14
|
+
}
|
|
15
|
+
get partition() {
|
|
16
|
+
return this.parts.partition;
|
|
17
|
+
}
|
|
18
|
+
get region() {
|
|
19
|
+
return this.parts.region;
|
|
20
|
+
}
|
|
21
|
+
get accountId() {
|
|
22
|
+
return this.parts.accountId;
|
|
23
|
+
}
|
|
24
|
+
get resourceType() {
|
|
25
|
+
return this.parts.resourceType;
|
|
26
|
+
}
|
|
27
|
+
get resourcePath() {
|
|
28
|
+
return this.parts.resourcePath;
|
|
29
|
+
}
|
|
30
|
+
get resource() {
|
|
31
|
+
return this.parts.resource || '';
|
|
32
|
+
}
|
|
33
|
+
get value() {
|
|
34
|
+
return this.arn;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Check
|
|
38
|
+
*
|
|
39
|
+
* @param parts
|
|
40
|
+
* @returns
|
|
41
|
+
*/
|
|
42
|
+
matches(parts) {
|
|
43
|
+
return Object.entries(parts).every(([key, value]) => {
|
|
44
|
+
return this.parts[key] === value;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.Arn = Arn;
|
|
49
|
+
//# sourceMappingURL=arn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arn.js","sourceRoot":"","sources":["../../../src/utils/arn.ts"],"names":[],"mappings":";;;AAAA,sDAAqE;AAErE,MAAa,GAAG;IAGe;IAFZ,KAAK,CAAU;IAEhC,YAA6B,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;QACtC,IAAI,CAAC,KAAK,GAAG,IAAA,yBAAa,EAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,OAAQ,CAAA;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,SAAU,CAAA;IAC9B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAA;IAC7B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAA;IAChC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAA;IAChC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAA;IAClC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,KAAwB;QAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAClD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAqB,CAAC,KAAK,KAAK,CAAA;QACpD,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAlDD,kBAkDC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import BitSet from 'bitset';
|
|
2
|
+
/**
|
|
3
|
+
* Encode a BitSet into a more compact representation
|
|
4
|
+
*
|
|
5
|
+
* @param bitset the BitSet to encode
|
|
6
|
+
* @returns the encoded representation
|
|
7
|
+
*/
|
|
8
|
+
export declare function encodeBitSet(bitset: BitSet): any;
|
|
9
|
+
/**
|
|
10
|
+
* Decode a BitSet from a compact representation
|
|
11
|
+
*
|
|
12
|
+
* @param encoded the encoded representation
|
|
13
|
+
* @returns the decoded BitSet
|
|
14
|
+
*/
|
|
15
|
+
export declare function decodeBitSet(encoded: any): BitSet;
|
|
16
|
+
/**
|
|
17
|
+
* Compress a hexadecimal string by replacing runs of zeros with a compact representation
|
|
18
|
+
*
|
|
19
|
+
* @param rawHex the original hexadecimal string
|
|
20
|
+
* @returns the compressed hexadecimal string
|
|
21
|
+
*/
|
|
22
|
+
export declare function compressHex(rawHex: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Decompress a hexadecimal string
|
|
25
|
+
*
|
|
26
|
+
* @param compressedHex the compressed hexadecimal string
|
|
27
|
+
* @returns the decompressed hexadecimal string
|
|
28
|
+
*/
|
|
29
|
+
export declare function decompressHex(compressedHex: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Compress a principal string for storage
|
|
32
|
+
*
|
|
33
|
+
* @param principalString the full principal string
|
|
34
|
+
* @returns the compressed principal string
|
|
35
|
+
*/
|
|
36
|
+
export declare function compressPrincipalString(principalString: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Decompress a principal string
|
|
39
|
+
*
|
|
40
|
+
* @param compressedString the compressed principal string
|
|
41
|
+
* @param prefix the ARN prefix to use
|
|
42
|
+
* @returns the decompressed principal string
|
|
43
|
+
*/
|
|
44
|
+
export declare function decompressPrincipalString(compressedString: string, prefix?: string): string;
|
|
45
|
+
//# sourceMappingURL=bitset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bitset.d.ts","sourceRoot":"","sources":["../../../src/utils/bitset.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAchD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CA2BjD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAM3D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAgBvE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,MAAM,EACxB,MAAM,GAAE,MAAwB,GAC/B,MAAM,CAuBR"}
|