@cloud-copilot/iam-simulate 0.1.102 → 0.1.104
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/README.md +22 -7
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/request/requestResource.d.ts +12 -0
- package/dist/cjs/request/requestResource.d.ts.map +1 -1
- package/dist/cjs/request/requestResource.js +6 -0
- package/dist/cjs/request/requestResource.js.map +1 -1
- package/dist/cjs/resource/resource.d.ts +11 -2
- package/dist/cjs/resource/resource.d.ts.map +1 -1
- package/dist/cjs/resource/resource.js +170 -8
- package/dist/cjs/resource/resource.js.map +1 -1
- package/dist/cjs/simulation_engine/contextKeys.d.ts +2 -1
- package/dist/cjs/simulation_engine/contextKeys.d.ts.map +1 -1
- package/dist/cjs/simulation_engine/contextKeys.js +13 -8
- package/dist/cjs/simulation_engine/contextKeys.js.map +1 -1
- package/dist/cjs/simulation_engine/overallResult.d.ts +13 -0
- package/dist/cjs/simulation_engine/overallResult.d.ts.map +1 -0
- package/dist/cjs/simulation_engine/overallResult.js +35 -0
- package/dist/cjs/simulation_engine/overallResult.js.map +1 -0
- package/dist/cjs/simulation_engine/policyResources.d.ts +41 -0
- package/dist/cjs/simulation_engine/policyResources.d.ts.map +1 -0
- package/dist/cjs/simulation_engine/policyResources.js +112 -0
- package/dist/cjs/simulation_engine/policyResources.js.map +1 -0
- package/dist/cjs/simulation_engine/resourceTypes.d.ts +18 -0
- package/dist/cjs/simulation_engine/resourceTypes.d.ts.map +1 -0
- package/dist/cjs/simulation_engine/resourceTypes.js +145 -0
- package/dist/cjs/simulation_engine/resourceTypes.js.map +1 -0
- package/dist/cjs/simulation_engine/simulationEngine.d.ts +92 -14
- package/dist/cjs/simulation_engine/simulationEngine.d.ts.map +1 -1
- package/dist/cjs/simulation_engine/simulationEngine.js +74 -16
- package/dist/cjs/simulation_engine/simulationEngine.js.map +1 -1
- package/dist/cjs/util/resourceStrings.d.ts +10 -0
- package/dist/cjs/util/resourceStrings.d.ts.map +1 -0
- package/dist/cjs/util/resourceStrings.js +81 -0
- package/dist/cjs/util/resourceStrings.js.map +1 -0
- package/dist/cjs/util.d.ts +0 -10
- package/dist/cjs/util.d.ts.map +1 -1
- package/dist/cjs/util.js +0 -25
- package/dist/cjs/util.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/request/requestResource.d.ts +12 -0
- package/dist/esm/request/requestResource.d.ts.map +1 -1
- package/dist/esm/request/requestResource.js +6 -0
- package/dist/esm/request/requestResource.js.map +1 -1
- package/dist/esm/resource/resource.d.ts +11 -2
- package/dist/esm/resource/resource.d.ts.map +1 -1
- package/dist/esm/resource/resource.js +169 -8
- package/dist/esm/resource/resource.js.map +1 -1
- package/dist/esm/simulation_engine/contextKeys.d.ts +2 -1
- package/dist/esm/simulation_engine/contextKeys.d.ts.map +1 -1
- package/dist/esm/simulation_engine/contextKeys.js +14 -9
- package/dist/esm/simulation_engine/contextKeys.js.map +1 -1
- package/dist/esm/simulation_engine/overallResult.d.ts +13 -0
- package/dist/esm/simulation_engine/overallResult.d.ts.map +1 -0
- package/dist/esm/simulation_engine/overallResult.js +32 -0
- package/dist/esm/simulation_engine/overallResult.js.map +1 -0
- package/dist/esm/simulation_engine/policyResources.d.ts +41 -0
- package/dist/esm/simulation_engine/policyResources.d.ts.map +1 -0
- package/dist/esm/simulation_engine/policyResources.js +106 -0
- package/dist/esm/simulation_engine/policyResources.js.map +1 -0
- package/dist/esm/simulation_engine/resourceTypes.d.ts +18 -0
- package/dist/esm/simulation_engine/resourceTypes.d.ts.map +1 -0
- package/dist/esm/simulation_engine/resourceTypes.js +141 -0
- package/dist/esm/simulation_engine/resourceTypes.js.map +1 -0
- package/dist/esm/simulation_engine/simulationEngine.d.ts +92 -14
- package/dist/esm/simulation_engine/simulationEngine.d.ts.map +1 -1
- package/dist/esm/simulation_engine/simulationEngine.js +75 -17
- package/dist/esm/simulation_engine/simulationEngine.js.map +1 -1
- package/dist/esm/util/resourceStrings.d.ts +10 -0
- package/dist/esm/util/resourceStrings.d.ts.map +1 -0
- package/dist/esm/util/resourceStrings.js +78 -0
- package/dist/esm/util/resourceStrings.js.map +1 -0
- package/dist/esm/util.d.ts +0 -10
- package/dist/esm/util.d.ts.map +1 -1
- package/dist/esm/util.js +1 -25
- package/dist/esm/util.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulationEngine.js","sourceRoot":"","sources":["../../../src/simulation_engine/simulationEngine.ts"],"names":[],"mappings":";;AAqFA,sCAgPC;AAED,sEA4CC;AAnXD,sDAA2E;AAC3E,0DAQkC;AAClC,wDAA6F;AAC7F,2EAAwE;AACxE,mEAA2F;AAC3F,+EAAwE;AACxE,kFAM8C;AAE9C,sDAAsD;AACtD,4DAAyD;AACzD,wCAA4E;AAC5E,qDAA+D;AAI/D,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE;QACN,OAAO,EAAE,YAAY;QACrB,SAAS,EAAE;YACT;gBACE,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE,GAAG;gBACd,MAAM,EAAE,GAAG;gBACX,QAAQ,EAAE,GAAG;aACd;SACF;KACF;CACF,CAAA;AAoCD;;;;;;GAMG;AACI,KAAK,UAAU,aAAa,CACjC,UAAsB,EACtB,iBAA6C;IAE7C,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAA;IAE9C,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;QAC7B,IACE,CAAC,IAAA,wBAAY,EAAC,SAAS,CAAC;YACxB,CAAC,IAAA,4BAAgB,EAAC,SAAS,CAAC;YAC5B,CAAC,IAAA,8BAAkB,EAAC,SAAS,CAAC,EAC9B,CAAC;YACD,OAAO;gBACL,MAAM,EAAE;oBACN,OAAO,EAAE,kCAAkC;iBAC5C;aACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,UAAU,CAAC,aAAa;QAClD,CAAC,CAAC,IAAA,mCAAsB,EAAC,UAAU,CAAC,aAAa,CAAC;QAClD,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa;QAC5C,CAAC,CAAC,IAAA,uBAAU,EAAC,UAAU,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;QACjE,CAAC,CAAC,SAAS,CAAA;IAEb,MAAM,oBAAoB,GAAsC,EAAE,CAAA;IAClE,MAAM,gBAAgB,GAAqB,EAAE,CAAA;IAC7C,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;QAC9B,MAAM,gBAAgB,GAAG,IAAA,mCAAsB,EAAC,MAAM,CAAC,CAAA;QACvD,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,gBAAgB,CAAC,IAAI,CAAC,IAAA,uBAAU,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAA;QAC/C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,0BAA0B,GAAsC,EAAE,CAAA;IACxE,MAAM,sBAAsB,GAAsB,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9F,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAA;QAC9B,MAAM,aAAa,GAAqB,EAAE,CAAA;QAE1C,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;YAC9B,MAAM,gBAAgB,GAAG,IAAA,yCAA4B,EAAC,MAAM,CAAC,CAAA;YAC7D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,0BAA0B,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAA;YACrD,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,IAAA,uBAAU,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YAClD,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,aAAa;SACxB,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,2BAA2B,GAAsC,EAAE,CAAA;IACzE,MAAM,uBAAuB,GAAsB,UAAU,CAAC,uBAAuB,CAAC,GAAG,CACvF,CAAC,GAAG,EAAE,EAAE;QACN,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAA;QAC9B,MAAM,aAAa,GAAqB,EAAE,CAAA;QAC1C,aAAa,CAAC,IAAI,CAAC,IAAA,uBAAU,EAAC,WAAW,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QAE9E,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;YAC9B,MAAM,gBAAgB,GAAG,IAAA,0CAA6B,EAAC,MAAM,CAAC,CAAA;YAC9D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,2BAA2B,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAA;YACtD,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,IAAA,uBAAU,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YAClD,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,aAAa;SACxB,CAAA;IACH,CAAC,CACF,CAAA;IAED,MAAM,oBAAoB,GAAG,UAAU,CAAC,cAAc;QACpD,CAAC,CAAC,IAAA,mCAAsB,EAAC,UAAU,CAAC,cAAc,CAAC;QACnD,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,oBAAoB,GAAiC,UAAU,CAAC,0BAA0B;QAC9F,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,wBAAwB,GAAsC,EAAE,CAAA;IACtE,UAAU,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAChD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QAC3B,MAAM,gBAAgB,GAAG,IAAA,mCAAsB,EAAC,MAAM,CAAC,CAAA;QACvD,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,oBAAqB,CAAC,IAAI,CAAC,IAAA,uBAAU,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC1D,CAAC;aAAM,CAAC;YACN,wBAAwB,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAA;QACnD,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,mBAAmB,GAAiC,UAAU,CAAC,mBAAmB;QACtF,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,iBAAiB,GAAsC,EAAE,CAAA;IAC/D,UAAU,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE;QACrD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAA;QACvC,MAAM,gBAAgB,GAAG,IAAA,mCAAsB,EAAC,MAAM,CAAC,CAAA;QACvD,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,mBAAoB,CAAC,IAAI,CAAC,IAAA,uBAAU,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACzD,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAA;QAC5C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IACE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,GAAG,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,MAAM,GAAG,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,GAAG,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,MAAM,GAAG,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC;QACzC,oBAAoB,CAAC,MAAM,GAAG,CAAC;QAC/B,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAC9B,CAAC;QACD,OAAO;YACL,MAAM,EAAE;gBACN,mBAAmB;gBACnB,oBAAoB;gBACpB,0BAA0B,EAAE,0BAA0B;gBACtD,2BAA2B;gBAC3B,oBAAoB;gBACpB,wBAAwB;gBACxB,iBAAiB;gBACjB,OAAO,EAAE,eAAe;aACzB;SACF,CAAA;IACH,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc;QAC9C,CAAC,CAAC,IAAA,uBAAU,EAAC,UAAU,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QACjF,CAAC,CAAC,SAAS,CAAA;IAEb,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACrD,OAAO;YACL,MAAM,EAAE;gBACN,OAAO,EAAE,gBAAgB;aAC1B;SACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9D,MAAM,YAAY,GAAG,MAAM,IAAA,2BAAgB,EAAC,OAAO,CAAC,CAAA;IACpD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;YACL,MAAM,EAAE;gBACN,OAAO,EAAE,iBAAiB;aAC3B;SACF,CAAA;IACH,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,IAAA,0BAAe,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,MAAM,EAAE;gBACN,OAAO,EAAE,gBAAgB;aAC1B;SACF,CAAA;IACH,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAA;IACxD,MAAM,oBAAoB,GAAG,MAAM,IAAA,8BAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACxE,IAAI,YAAY,GAAuB,SAAS,CAAA;IAChD,IAAI,oBAAoB,EAAE,CAAC;QACzB,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;YACxB,OAAO;gBACL,MAAM,EAAE;oBACN,OAAO,EAAE,mBAAmB;iBAC7B;aACF,CAAA;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,MAAM,IAAA,mCAAyB,EAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;QACnF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACL,MAAM,EAAE;oBACN,OAAO,EAAE,mBAAmB;iBAC7B;aACF,CAAA;QACH,CAAC;aAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO;gBACL,MAAM,EAAE;oBACN,OAAO,EAAE,yBAAyB;iBACnC;aACF,CAAA;QACH,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACrC,CAAC;IACH,CAAC;IAED,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,MAAM,6BAA6B,CAAC,UAAU,CAAC,CAAA;IAElG,MAAM,cAAc,GAAG,6CAAoB,CAAC,QAAQ,CAClD,iBAAiB,CAAC,cAAgC,CACnD;QACC,CAAC,CAAE,iBAAiB,CAAC,cAAiC;QACtD,CAAC,CAAC,QAAQ,CAAA;IAEZ,MAAM,mBAAmB,GACvB,cAAc,KAAK,WAAW;QAC5B,CAAC,CAAC,IAAI,wCAAiB,CAAC,iBAAiB,CAAC,mBAAmB,IAAI,EAAE,CAAC;QACpE,CAAC,CAAC,IAAI,wCAAiB,CAAC,EAAE,CAAC,CAAA;IAE/B,MAAM,gBAAgB,GAAG,IAAA,kCAAS,EAAC;QACjC,OAAO,EAAE,IAAI,2BAAc,CACzB,SAAS,EACT;YACE,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ;YAC9C,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;SACjD,EACD,UAAU,CAAC,OAAO,CAAC,MAAM,EACzB,IAAI,sCAAkB,CAAC,kBAAkB,CAAC,CAC3C;QACD,aAAa;QACb,gBAAgB;QAChB,sBAAsB;QACtB,uBAAuB;QACvB,cAAc;QACd,oBAAoB;QACpB,mBAAmB;QACnB,oBAAoB,EAAE;YACpB,cAAc,EAAE,cAAc;YAC9B,mBAAmB,EAAE,mBAAmB;SACzC;KACF,CAAC,CAAA;IAEF,OAAO;QACL,QAAQ,EAAE,gBAAgB;QAC1B,kBAAkB;QAClB,YAAY;KACb,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,6BAA6B,CAAC,UAAsB;IAIxE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9D,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAA;IACxD,MAAM,yBAAyB,GAAG,IAAI,GAAG,CACvC,MAAM,IAAA,6CAA4B,EAChC,OAAO,EACP,MAAM,EACN,WAAW,EACX,CAAC,CAAC,UAAU,CAAC,kBAAkB,EAAE,EAAE,EAAE,iBAAiB,CACvD,CACF,CAAA;IAED,4FAA4F;IAC5F,MAAM,kBAAkB,GAAsC,EAAE,CAAA;IAChE,MAAM,kBAAkB,GAAa,EAAE,CAAA;IACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;QACtD,MAAM,YAAY,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;QACtC,IACE,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC;YAC3C,uBAAuB,CAAC,YAAY,EAAE,yBAAyB,CAAC,EAChE,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,IAAA,kCAAiB,EAAC,YAAY,CAAC,CAAA;YAC3D,MAAM,aAAa,GAAG,MAAM,IAAA,wCAAuB,EAAC,GAAG,CAAC,CAAA;YAExD,IAAI,IAAA,wCAAmB,EAAC,aAAa,CAAC,EAAE,CAAC;gBACvC,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;YACpD,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9C,CAAC;iBAAM,CAAC;gBACN,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAA;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,OAAO;QACL,kBAAkB;QAClB,kBAAkB;KACnB,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,YAAoB,EAAE,gBAA6B;IAClF,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACjD,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAA;IACzD,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"simulationEngine.js","sourceRoot":"","sources":["../../../src/simulation_engine/simulationEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Determines if two AWS ARN patterns have any overlap in the resources they could match.
|
|
3
|
+
* Handles wildcards (*) and single-character patterns (?) in both ARN strings.
|
|
4
|
+
*
|
|
5
|
+
* @param arn1 First ARN pattern to compare
|
|
6
|
+
* @param arn2 Second ARN pattern to compare
|
|
7
|
+
* @returns true if the patterns could match some of the same resources, false if they are completely disjoint
|
|
8
|
+
*/
|
|
9
|
+
export declare function resourceArnsOverlap(arn1: string, arn2: string): boolean;
|
|
10
|
+
//# sourceMappingURL=resourceStrings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resourceStrings.d.ts","sourceRoot":"","sources":["../../../src/util/resourceStrings.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAgDvE"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resourceArnsOverlap = resourceArnsOverlap;
|
|
4
|
+
/**
|
|
5
|
+
* Determines if two AWS ARN patterns have any overlap in the resources they could match.
|
|
6
|
+
* Handles wildcards (*) and single-character patterns (?) in both ARN strings.
|
|
7
|
+
*
|
|
8
|
+
* @param arn1 First ARN pattern to compare
|
|
9
|
+
* @param arn2 Second ARN pattern to compare
|
|
10
|
+
* @returns true if the patterns could match some of the same resources, false if they are completely disjoint
|
|
11
|
+
*/
|
|
12
|
+
function resourceArnsOverlap(arn1, arn2) {
|
|
13
|
+
// Fast-path
|
|
14
|
+
if (arn1 === arn2)
|
|
15
|
+
return true;
|
|
16
|
+
if (arn1 === '*' || arn2 === '*')
|
|
17
|
+
return true;
|
|
18
|
+
const A = [...arn1];
|
|
19
|
+
const B = [...arn2];
|
|
20
|
+
const n = A.length;
|
|
21
|
+
const m = B.length;
|
|
22
|
+
// BFS over states (i, j) meaning:
|
|
23
|
+
// we've consumed up to i in A and up to j in B
|
|
24
|
+
const visited = new Set();
|
|
25
|
+
const queue = [[0, 0]];
|
|
26
|
+
const key = (i, j) => `${i},${j}`;
|
|
27
|
+
while (queue.length > 0) {
|
|
28
|
+
const [i, j] = queue.shift();
|
|
29
|
+
const k = key(i, j);
|
|
30
|
+
if (visited.has(k))
|
|
31
|
+
continue;
|
|
32
|
+
visited.add(k);
|
|
33
|
+
// Accept if both ended
|
|
34
|
+
if (i === n && j === m)
|
|
35
|
+
return true;
|
|
36
|
+
const aTok = tokAt(A, i);
|
|
37
|
+
const bTok = tokAt(B, j);
|
|
38
|
+
// Epsilon transitions: '*' can match empty
|
|
39
|
+
if (aTok === '*')
|
|
40
|
+
queue.push([i + 1, j]);
|
|
41
|
+
if (bTok === '*')
|
|
42
|
+
queue.push([i, j + 1]);
|
|
43
|
+
// Consume-one-character transitions:
|
|
44
|
+
// if both can consume the same next character, advance appropriately
|
|
45
|
+
if (canConsumeSameChar(aTok, bTok)) {
|
|
46
|
+
const nextIs = nextIdxAfterOneChar(A, i);
|
|
47
|
+
const nextJs = nextIdxAfterOneChar(B, j);
|
|
48
|
+
for (const ni of nextIs) {
|
|
49
|
+
for (const nj of nextJs) {
|
|
50
|
+
queue.push([ni, nj]);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
function tokAt(p, idx) {
|
|
58
|
+
return idx < p.length ? p[idx] : null; // null = end
|
|
59
|
+
}
|
|
60
|
+
// Whether both patterns can consume at least one *same* next character
|
|
61
|
+
function canConsumeSameChar(a, b) {
|
|
62
|
+
if (a === null || b === null)
|
|
63
|
+
return false;
|
|
64
|
+
const aAny = a === '*' || a === '?';
|
|
65
|
+
const bAny = b === '*' || b === '?';
|
|
66
|
+
// both literals
|
|
67
|
+
if (!aAny && !bAny)
|
|
68
|
+
return a === b;
|
|
69
|
+
// at least one side can match any char
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
// Next indices after consuming exactly one character from pattern p at idx
|
|
73
|
+
function nextIdxAfterOneChar(p, idx) {
|
|
74
|
+
const t = tokAt(p, idx);
|
|
75
|
+
if (t === null)
|
|
76
|
+
return [];
|
|
77
|
+
if (t === '*')
|
|
78
|
+
return [idx]; // '*' stays and can keep consuming
|
|
79
|
+
return [idx + 1]; // literal or '?' consumes one and advances
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=resourceStrings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resourceStrings.js","sourceRoot":"","sources":["../../../src/util/resourceStrings.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/util.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ResourceType } from '@cloud-copilot/iam-data';
|
|
2
1
|
import { Resource } from '@cloud-copilot/iam-policy';
|
|
3
2
|
import { AwsRequest } from './request/request.js';
|
|
4
3
|
export interface StringReplaceOptions {
|
|
@@ -67,15 +66,6 @@ export declare function isNotDefined<T>(value: T | undefined): value is undefine
|
|
|
67
66
|
* @throws an error if the service or action does not exist
|
|
68
67
|
*/
|
|
69
68
|
export declare function isWildcardOnlyAction(service: string, action: string): Promise<boolean>;
|
|
70
|
-
/**
|
|
71
|
-
* Get the the possible resource types for an action and resource
|
|
72
|
-
*
|
|
73
|
-
* @param service the service the action belongs to
|
|
74
|
-
* @param action the action to get the resource type for
|
|
75
|
-
* @param resource the resource type matching the action, if any
|
|
76
|
-
* @throws an error if the service or action does not exist, or if the action is a wildcard only action
|
|
77
|
-
*/
|
|
78
|
-
export declare function getResourceTypesForAction(service: string, action: string, resource: string): Promise<ResourceType[]>;
|
|
79
69
|
/**
|
|
80
70
|
* Convert a resource pattern from iam-data to a regex pattern
|
|
81
71
|
*
|
package/dist/cjs/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAIjD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,OAAO,CAAA;CACxB;AAOD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,KAAK,CAAA;CAAE,GACpE,MAAM,CAAA;AACT,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,EACnB,cAAc,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAC7C;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AA+IzC,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CAG7B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAenD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BxE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,IAAI,SAAS,CAExE;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG5F;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOrE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAY9D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAa1D"}
|
package/dist/cjs/util.js
CHANGED
|
@@ -6,7 +6,6 @@ exports.getResourceSegments = getResourceSegments;
|
|
|
6
6
|
exports.isDefined = isDefined;
|
|
7
7
|
exports.isNotDefined = isNotDefined;
|
|
8
8
|
exports.isWildcardOnlyAction = isWildcardOnlyAction;
|
|
9
|
-
exports.getResourceTypesForAction = getResourceTypesForAction;
|
|
10
9
|
exports.convertResourcePatternToRegex = convertResourcePatternToRegex;
|
|
11
10
|
exports.lowerCaseAll = lowerCaseAll;
|
|
12
11
|
exports.getVariablesFromString = getVariablesFromString;
|
|
@@ -219,30 +218,6 @@ async function isWildcardOnlyAction(service, action) {
|
|
|
219
218
|
const actionDetails = await (0, iam_data_1.iamActionDetails)(service, action);
|
|
220
219
|
return actionDetails.resourceTypes.length === 0;
|
|
221
220
|
}
|
|
222
|
-
/**
|
|
223
|
-
* Get the the possible resource types for an action and resource
|
|
224
|
-
*
|
|
225
|
-
* @param service the service the action belongs to
|
|
226
|
-
* @param action the action to get the resource type for
|
|
227
|
-
* @param resource the resource type matching the action, if any
|
|
228
|
-
* @throws an error if the service or action does not exist, or if the action is a wildcard only action
|
|
229
|
-
*/
|
|
230
|
-
async function getResourceTypesForAction(service, action, resource) {
|
|
231
|
-
const actionDetails = await (0, iam_data_1.iamActionDetails)(service, action);
|
|
232
|
-
if (actionDetails.resourceTypes.length === 0) {
|
|
233
|
-
throw new Error(`${service}:${action} does not have any resource types`);
|
|
234
|
-
}
|
|
235
|
-
const matchingResourceTypes = [];
|
|
236
|
-
for (const rt of actionDetails.resourceTypes) {
|
|
237
|
-
const resourceType = await (0, iam_data_1.iamResourceTypeDetails)(service, rt.name);
|
|
238
|
-
const pattern = convertResourcePatternToRegex(resourceType.arn);
|
|
239
|
-
const match = resource.match(new RegExp(pattern));
|
|
240
|
-
if (match) {
|
|
241
|
-
matchingResourceTypes.push(resourceType);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
return matchingResourceTypes;
|
|
245
|
-
}
|
|
246
221
|
/**
|
|
247
222
|
* Convert a resource pattern from iam-data to a regex pattern
|
|
248
223
|
*
|
package/dist/cjs/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":";;AAkCA,4CAkFC;AA4ED,sCAeC;AAUD,kDA2BC;AAQD,8BAEC;AAQD,oCAEC;AAUD,oDAGC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":";;AAkCA,4CAkFC;AA4ED,sCAeC;AAUD,kDA2BC;AAQD,8BAEC;AAQD,oCAEC;AAUD,oDAGC;AAQD,sEAOC;AAQD,oCAEC;AAQD,wDAYC;AAQD,sDAaC;AAvVD,sDAA0D;AAI1D,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;AAOvC,MAAM,2BAA2B,GAAyB;IACxD,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,IAAI;CACrB,CAAA;AAoBD,SAAgB,gBAAgB,CAC9B,KAAa,EACb,OAAmB,EACnB,cAA8C;IAE9C,MAAM,OAAO,GAAG,EAAE,GAAG,2BAA2B,EAAE,GAAG,cAAc,EAAE,CAAA;IAErE,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3E,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;YACjB,OAAO,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;YACnD,aAAa;QACf,CAAC;aAAM,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;YACxB,OAAO,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;YACrD,eAAe;QACjB,CAAC;aAAM,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;YAC9D,eAAe;QACjB,CAAC;aAAM,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;YAC9D,eAAe;QACjB,CAAC;aAAM,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;YAC9D,eAAe;QACjB,CAAC;QACD,EAAE;QACF,4BAA4B;QAC5B,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAExC,IAAI,YAAY,GAAG,SAAS,CAAA;QAC5B,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9C,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,iBAAiB,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAC5C,IAAI,iBAAiB,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1E,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAC/C,CAAC;QACH,CAAC;QACD,MAAM,YAAY,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAA;QAE/C,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,qBAAqB,CAC7E,OAAO,EACP,YAAY,CACb,CAAA;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,wDAAwD;YACxD,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;QACpF,CAAC;aAAM,IAAI,YAAY,EAAE,CAAC;YACxB;;;cAGE;YACF,wDAAwD;YACxD,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;QACpF,CAAC;aAAM,CAAC;YACN,IAAI,iBAAiB,IAAI,SAAS,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CACT,IAAI,YAAY,sFAAsF,CACvG,CAAA;YACH,CAAC;iBAAM,IAAI,iBAAiB,IAAI,YAAY,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CACT,IAAI,YAAY,2FAA2F,CAC5G,CAAA;YACH,CAAC;YACD;;cAEE;YACF,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,CAAA;IAC5C,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAA;AACtD,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,GAAW;IACxC,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;AACnD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAC5B,OAAmB,EACnB,cAAsB;IAEtB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,KAAK,EAAE,SAAS;SACjB,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAA;IAC3D,IAAI,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;IAClC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;AAChC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CACvB,QAAgB,EAChB,OAAe,EACf,KAAa,EACb,OAA6B;IAE7B,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAYD;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEzC,OAAO;QACL,SAAS;QACT,OAAO;QACP,MAAM;QACN,SAAS;QACT,QAAQ;KACT,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,QAAkB;IACpD,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAA;IACxE,CAAC;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;IAE1C,kCAAkC;IAClC,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACzF,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAE9C,IAAI,UAAU,GAAG,UAAU,CAAA;IAC3B,IAAI,UAAU,IAAI,CAAC,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC;QACzC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC;SAAM,IAAI,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5B,UAAU,GAAG,UAAU,GAAG,CAAC,CAAA;IAC7B,CAAC;SAAM,IAAI,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5B,UAAU,GAAG,UAAU,GAAG,CAAC,CAAA;IAC7B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;AAChF,CAAC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAI,KAAoB;IAC/C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAA;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAI,KAAoB;IAClD,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC1B,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,oBAAoB,CAAC,OAAe,EAAE,MAAc;IACxE,MAAM,aAAa,GAAG,MAAM,IAAA,2BAAgB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC7D,OAAO,aAAa,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAA;AACjD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,6BAA6B,CAAC,OAAe;IAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC/D,OAAO,MAAM,SAAS,SAAS,CAAA;IACjC,CAAC,CAAC,CAAA;IACF,OAAO,IAAI,KAAK,GAAG,CAAA;AACrB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,OAAiB;IAC5C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,KAAa;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACzC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACjC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACxC,CAAC;YACD,OAAO,UAAU,CAAA;QACnB,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,GAAW;IAC/C,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACvB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,wDAAwD;IACxD,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export type { ActionExplain, ConditionExplain, ConditionValueExplain, ExplainPri
|
|
|
8
8
|
export { allowedContextKeysForRequest } from './simulation_engine/contextKeys.js';
|
|
9
9
|
export type { Simulation, SimulationIdentityPolicy, SimulationOrgPolicies } from './simulation_engine/simulation.js';
|
|
10
10
|
export { runSimulation } from './simulation_engine/simulationEngine.js';
|
|
11
|
-
export type { SimulationErrors,
|
|
11
|
+
export type { ErrorSimulationResult, RunSimulationResults, SimulationErrors, SimulationResourceResult, SimulationResultType, SingleResourceSimulationResult, SuccessfulRunSimulationResults, WildcardResourceSimulationResults, WildcardSimulationResourceResult } from './simulation_engine/simulationEngine.js';
|
|
12
12
|
export type { SimulationOptions } from './simulation_engine/simulationOptions.js';
|
|
13
13
|
export { runUnsafeSimulation } from './simulation_engine/unsafeSimulationEngine.js';
|
|
14
14
|
export { isWildcardOnlyAction } from './util.js';
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,gBAAgB,EACtB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAC1E,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EAChB,MAAM,eAAe,CAAA;AACtB,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EACjB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAA;AACjF,YAAY,EACV,UAAU,EACV,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AACvE,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,gBAAgB,EACtB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AAC1E,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EAChB,MAAM,eAAe,CAAA;AACtB,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EACjB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAA;AACjF,YAAY,EACV,UAAU,EACV,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AACvE,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,EAC9B,8BAA8B,EAC9B,iCAAiC,EACjC,gCAAgC,EACjC,MAAM,yCAAyC,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA"}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAGjB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAEL,mBAAmB,EAEpB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AAiBnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAA;AAMjF,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAGjB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAEL,mBAAmB,EAEpB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AAiBnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAA;AAMjF,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AAavE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -27,6 +27,16 @@ export interface RequestResource {
|
|
|
27
27
|
* The account ID of the resource, independent of what is in the ARN
|
|
28
28
|
*/
|
|
29
29
|
accountId(): string;
|
|
30
|
+
/**
|
|
31
|
+
* Checks if this resource represents all resources (i.e., the wildcard "*")
|
|
32
|
+
* @returns true if the resource is "*", false otherwise
|
|
33
|
+
*/
|
|
34
|
+
isAllResources(): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Checks if this resource contains any wildcard characters
|
|
37
|
+
* @returns true if the resource contains "*", false otherwise
|
|
38
|
+
*/
|
|
39
|
+
hasWildcards(): boolean;
|
|
30
40
|
}
|
|
31
41
|
export declare class ResourceRequestImpl implements RequestResource {
|
|
32
42
|
private readonly rawValue;
|
|
@@ -39,5 +49,7 @@ export declare class ResourceRequestImpl implements RequestResource {
|
|
|
39
49
|
resource(): string;
|
|
40
50
|
value(): string;
|
|
41
51
|
accountId(): string;
|
|
52
|
+
isAllResources(): boolean;
|
|
53
|
+
hasWildcards(): boolean;
|
|
42
54
|
}
|
|
43
55
|
//# sourceMappingURL=requestResource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestResource.d.ts","sourceRoot":"","sources":["../../../src/request/requestResource.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,IAAI,MAAM,CAAA;IAEf;;OAEG;IACH,SAAS,IAAI,MAAM,CAAA;IAEnB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,MAAM,IAAI,MAAM,CAAA;IAEhB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAA;IAElB;;OAEG;IACH,SAAS,IAAI,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"requestResource.d.ts","sourceRoot":"","sources":["../../../src/request/requestResource.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,IAAI,MAAM,CAAA;IAEf;;OAEG;IACH,SAAS,IAAI,MAAM,CAAA;IAEnB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,MAAM,IAAI,MAAM,CAAA;IAEhB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAA;IAElB;;OAEG;IACH,SAAS,IAAI,MAAM,CAAA;IAEnB;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAA;IAEzB;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAA;CACxB;AAED,qBAAa,mBAAoB,YAAW,eAAe;IAEvD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;gBADf,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM;IAG1C,SAAS,IAAI,MAAM;IAInB,OAAO,IAAI,MAAM;IAIjB,MAAM,IAAI,MAAM;IAIhB,OAAO,IAAI,MAAM;IAIjB,QAAQ,IAAI,MAAM;IAIlB,KAAK,IAAI,MAAM;IAIf,SAAS,IAAI,MAAM;IAInB,cAAc,IAAI,OAAO;IAIzB,YAAY,IAAI,OAAO;CAGxB"}
|
|
@@ -24,5 +24,11 @@ export class ResourceRequestImpl {
|
|
|
24
24
|
accountId() {
|
|
25
25
|
return this.accountIdString;
|
|
26
26
|
}
|
|
27
|
+
isAllResources() {
|
|
28
|
+
return this.value() === '*';
|
|
29
|
+
}
|
|
30
|
+
hasWildcards() {
|
|
31
|
+
return this.value().includes('*');
|
|
32
|
+
}
|
|
27
33
|
}
|
|
28
34
|
//# sourceMappingURL=requestResource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestResource.js","sourceRoot":"","sources":["../../../src/request/requestResource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"requestResource.js","sourceRoot":"","sources":["../../../src/request/requestResource.ts"],"names":[],"mappings":"AAiDA,MAAM,OAAO,mBAAmB;IAC9B,YACmB,QAAgB,EAChB,eAAuB;QADvB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,oBAAe,GAAf,eAAe,CAAQ;IACvC,CAAC;IAEJ,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAA;IAC7B,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACnC,CAAC;CACF"}
|
|
@@ -19,7 +19,7 @@ export declare function requestMatchesStatementResources(request: AwsRequest, st
|
|
|
19
19
|
* @param policyResources the resources to check against
|
|
20
20
|
* @returns true if the request matches any of the resources, false otherwise
|
|
21
21
|
*/
|
|
22
|
-
export declare function requestMatchesResources(request: AwsRequest, policyResources: Resource[]): {
|
|
22
|
+
export declare function requestMatchesResources(request: AwsRequest, policyResources: Resource[], resourceType: 'Resource' | 'NotResource', effect: 'Allow' | 'Deny'): {
|
|
23
23
|
matches: boolean;
|
|
24
24
|
explains: ResourceExplain[];
|
|
25
25
|
};
|
|
@@ -30,8 +30,17 @@ export declare function requestMatchesResources(request: AwsRequest, policyResou
|
|
|
30
30
|
* @param policyResources the resources to check against
|
|
31
31
|
* @returns true if the request does not match any of the resources, false otherwise
|
|
32
32
|
*/
|
|
33
|
-
export declare function requestMatchesNotResources(request: AwsRequest, policyResources: Resource[]): {
|
|
33
|
+
export declare function requestMatchesNotResources(request: AwsRequest, policyResources: Resource[], resourceType: 'Resource' | 'NotResource', effect: 'Allow' | 'Deny'): {
|
|
34
34
|
matches: boolean;
|
|
35
35
|
explains: ResourceExplain[];
|
|
36
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* Determines if the policy string is equal to, a subset of, a superset of,
|
|
39
|
+
* or has no overlap with the request string.
|
|
40
|
+
*
|
|
41
|
+
* @param policyString the policy string to use
|
|
42
|
+
* @param requestString the request string to compare to the policy string
|
|
43
|
+
* @returns 'equal' if the strings are equal, 'subset' if the policy string is a subset of the request string, 'superset' if the policy string is a superset of the request string, or 'none' if there is no overlap
|
|
44
|
+
*/
|
|
45
|
+
export declare function resourcePatternOverlap(policyString: string, requestString: string): 'equal' | 'policy_is_subset' | 'policy_is_superset' | 'none';
|
|
37
46
|
//# sourceMappingURL=resource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/resource/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAiBlD;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,SAAS,GACnB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,cAAc,CAAC,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/resource/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAiBlD;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,SAAS,GACnB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,GAAG,cAAc,CAAC,CAAA;CAAE,CAyBrF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,UAAU,EACnB,eAAe,EAAE,QAAQ,EAAE,EAC3B,YAAY,EAAE,UAAU,GAAG,aAAa,EACxC,MAAM,EAAE,OAAO,GAAG,MAAM,GACvB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAMnD;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,UAAU,EACnB,eAAe,EAAE,QAAQ,EAAE,EAC3B,YAAY,EAAE,UAAU,GAAG,aAAa,EACxC,MAAM,EAAE,OAAO,GAAG,MAAM,GACvB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,CAUnD;AA8OD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,OAAO,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,MAAM,CAe9D"}
|
|
@@ -21,14 +21,14 @@ function convertResourceSegmentToRegex(segment) {
|
|
|
21
21
|
*/
|
|
22
22
|
export function requestMatchesStatementResources(request, statement) {
|
|
23
23
|
if (statement.isResourceStatement()) {
|
|
24
|
-
const { matches, explains } = requestMatchesResources(request, statement.resources());
|
|
24
|
+
const { matches, explains } = requestMatchesResources(request, statement.resources(), 'Resource', statement.effect());
|
|
25
25
|
if (!statement.resourceIsArray()) {
|
|
26
26
|
return { matches, details: { resources: explains[0] } };
|
|
27
27
|
}
|
|
28
28
|
return { matches, details: { resources: explains } };
|
|
29
29
|
}
|
|
30
30
|
else if (statement.isNotResourceStatement()) {
|
|
31
|
-
const { matches, explains } = requestMatchesNotResources(request, statement.notResources());
|
|
31
|
+
const { matches, explains } = requestMatchesNotResources(request, statement.notResources(), 'NotResource', statement.effect());
|
|
32
32
|
if (!statement.notResourceIsArray()) {
|
|
33
33
|
return { matches, details: { notResources: explains[0] } };
|
|
34
34
|
}
|
|
@@ -43,8 +43,8 @@ export function requestMatchesStatementResources(request, statement) {
|
|
|
43
43
|
* @param policyResources the resources to check against
|
|
44
44
|
* @returns true if the request matches any of the resources, false otherwise
|
|
45
45
|
*/
|
|
46
|
-
export function requestMatchesResources(request, policyResources) {
|
|
47
|
-
const explains = policyResources.map((policyResource) => singleResourceMatchesRequest(request, policyResource));
|
|
46
|
+
export function requestMatchesResources(request, policyResources, resourceType, effect) {
|
|
47
|
+
const explains = policyResources.map((policyResource) => singleResourceMatchesRequest(request, policyResource, resourceType, effect));
|
|
48
48
|
const matches = explains.some((explain) => explain.matches);
|
|
49
49
|
return { matches, explains };
|
|
50
50
|
}
|
|
@@ -55,9 +55,9 @@ export function requestMatchesResources(request, policyResources) {
|
|
|
55
55
|
* @param policyResources the resources to check against
|
|
56
56
|
* @returns true if the request does not match any of the resources, false otherwise
|
|
57
57
|
*/
|
|
58
|
-
export function requestMatchesNotResources(request, policyResources) {
|
|
58
|
+
export function requestMatchesNotResources(request, policyResources, resourceType, effect) {
|
|
59
59
|
const explains = policyResources.map((policyResource) => {
|
|
60
|
-
const explain = singleResourceMatchesRequest(request, policyResource);
|
|
60
|
+
const explain = singleResourceMatchesRequest(request, policyResource, resourceType, effect);
|
|
61
61
|
if (!explain.errors) {
|
|
62
62
|
explain.matches = !explain.matches;
|
|
63
63
|
}
|
|
@@ -66,6 +66,40 @@ export function requestMatchesNotResources(request, policyResources) {
|
|
|
66
66
|
const matches = !explains.some((explain) => !explain.matches);
|
|
67
67
|
return { matches, explains };
|
|
68
68
|
}
|
|
69
|
+
/*
|
|
70
|
+
Specifications for **request resource** wildcards:
|
|
71
|
+
- Asterisks (*) can be used to match any sequence of characters (including an empty sequence)
|
|
72
|
+
- Asterisks can appear in any segment of the ARN (partition, service, region, account, resource)
|
|
73
|
+
- Asterisks are not greedy, and can be followed or preceded by other characters in the same segment
|
|
74
|
+
- Existing rules of matching wildcard segments in ARNs still apply
|
|
75
|
+
- Question marks (?) are not supported in the request resource ARN
|
|
76
|
+
|
|
77
|
+
If the string in the policy is the same as the resolved string after variable substitution, it is a match
|
|
78
|
+
|
|
79
|
+
For an Allow/Resource Statement:
|
|
80
|
+
- If the resolved string matches the request resource, it is a match
|
|
81
|
+
- If the resolved string is a superset of the request resource, it is a match
|
|
82
|
+
- If the resolved string is a subset of the request resource, it is a match
|
|
83
|
+
- If there is no overlap at all between the resolved string and the request resource, it is not a match
|
|
84
|
+
|
|
85
|
+
For a Deny/Resource Statement:
|
|
86
|
+
- If the resolved string matches the request resource, it is a match
|
|
87
|
+
- If the resolved string is a superset of the request resource, it is a match
|
|
88
|
+
- If the resolved string is a subset of the request resource, it is not a match
|
|
89
|
+
- If there is no overlap at all between the resolved string and the request resource, it is not a match
|
|
90
|
+
|
|
91
|
+
For an Allow/NotResource Statement:
|
|
92
|
+
- If the resolved string matches the request resource, it is not a match
|
|
93
|
+
- If the resolved string is a superset of the request resource, it is not a match
|
|
94
|
+
- If the resolved string is a subset of the request resource, it is a match
|
|
95
|
+
- If there is no overlap at all between the resolved string and the request resource, it is a match
|
|
96
|
+
|
|
97
|
+
For a Deny/NotResource Statement:
|
|
98
|
+
- If the resolved string matches the request resource, it is not a match
|
|
99
|
+
- If the resolved string is a superset of the request resource, it is not a match
|
|
100
|
+
- If the resolved string is a subset of the request resource, it is not a match
|
|
101
|
+
- If there is no overlap at all between the resolved string and the request resource, it is a match
|
|
102
|
+
*/
|
|
69
103
|
/**
|
|
70
104
|
* Check if a single resource matches a request.
|
|
71
105
|
*
|
|
@@ -73,14 +107,119 @@ export function requestMatchesNotResources(request, policyResources) {
|
|
|
73
107
|
* @param policyResource the resource to check against
|
|
74
108
|
* @returns true if the request matches the resource, false otherwise
|
|
75
109
|
*/
|
|
76
|
-
function singleResourceMatchesRequest(request, policyResource) {
|
|
110
|
+
function singleResourceMatchesRequest(request, policyResource, resourceType, effect) {
|
|
111
|
+
// Policy is all resources
|
|
77
112
|
if (policyResource.isAllResources()) {
|
|
78
113
|
return {
|
|
79
114
|
resource: policyResource.value(),
|
|
80
115
|
matches: true
|
|
81
116
|
};
|
|
82
117
|
}
|
|
83
|
-
|
|
118
|
+
// Request is all resources
|
|
119
|
+
if (request.resource?.isAllResources()) {
|
|
120
|
+
if (effect === 'Allow' && resourceType === 'Resource') {
|
|
121
|
+
return {
|
|
122
|
+
resource: policyResource.value(),
|
|
123
|
+
matches: true
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
else if (effect === 'Allow' && resourceType === 'NotResource') {
|
|
127
|
+
return {
|
|
128
|
+
resource: policyResource.value(),
|
|
129
|
+
matches: false // This gets inverted in the caller
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
else if (effect === 'Deny' && resourceType === 'Resource') {
|
|
133
|
+
// This is a Deny statement that is not all resources, so it's not a match
|
|
134
|
+
return {
|
|
135
|
+
resource: policyResource.value(),
|
|
136
|
+
matches: false
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
else if (effect === 'Deny' && resourceType === 'NotResource') {
|
|
140
|
+
return {
|
|
141
|
+
resource: policyResource.value(),
|
|
142
|
+
matches: true // This gets inverted in the caller
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
throw new Error(`Unknown Resource Type and Effect Combination: ${resourceType} ${effect}`);
|
|
146
|
+
}
|
|
147
|
+
// Request contains wildcards but neither is a full *
|
|
148
|
+
if (request.resource.hasWildcards() && policyResource.isArnResource()) {
|
|
149
|
+
const overlaps = [
|
|
150
|
+
resourcePatternOverlap(policyResource.partition(), request.resource.partition()),
|
|
151
|
+
resourcePatternOverlap(policyResource.service(), request.resource.service()),
|
|
152
|
+
resourcePatternOverlap(policyResource.region(), request.resource.region()),
|
|
153
|
+
resourcePatternOverlap(policyResource.account(), request.resource.account()),
|
|
154
|
+
resourcePatternOverlap(policyResource.resource(), request.resource.resource())
|
|
155
|
+
];
|
|
156
|
+
if (resourceType === 'Resource' && effect === 'Allow') {
|
|
157
|
+
if (overlaps.every((o) => o !== 'none')) {
|
|
158
|
+
return {
|
|
159
|
+
resource: policyResource.value(),
|
|
160
|
+
matches: true
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
else if (resourceType === 'Resource' && effect === 'Deny') {
|
|
165
|
+
if (overlaps.some((o) => o === 'none' || o === 'policy_is_subset')) {
|
|
166
|
+
return {
|
|
167
|
+
resource: policyResource.value(),
|
|
168
|
+
matches: false
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
else if (resourceType === 'NotResource' && effect === 'Allow') {
|
|
173
|
+
/*
|
|
174
|
+
* For an Allow/NotResource Statement:
|
|
175
|
+
- If the resolved string matches the request resource, it is not a match
|
|
176
|
+
- If the resolved string is a superset of the request resource, it is not a match
|
|
177
|
+
- If the resolved string is a subset of the request resource, it is a match
|
|
178
|
+
- If there is no overlap at all between the resolved string and the request resource, it is a match
|
|
179
|
+
*/
|
|
180
|
+
if (overlaps.every((o) => o === 'equal' || o === 'policy_is_superset')) {
|
|
181
|
+
return {
|
|
182
|
+
resource: policyResource.value(),
|
|
183
|
+
// This gets inverted in the caller
|
|
184
|
+
matches: true
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
return {
|
|
189
|
+
resource: policyResource.value(),
|
|
190
|
+
// This gets inverted in the caller
|
|
191
|
+
matches: false
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
else if (resourceType === 'NotResource' && effect === 'Deny') {
|
|
196
|
+
/*
|
|
197
|
+
For a Deny/NotResource Statement:
|
|
198
|
+
- If the resolved string matches the request resource, it is not a match
|
|
199
|
+
- If the resolved string is a superset of the request resource, it is not a match
|
|
200
|
+
- If the resolved string is a subset of the request resource, it is not a match
|
|
201
|
+
- If there is no overlap at all between the resolved string and the request resource, it is a match
|
|
202
|
+
*/
|
|
203
|
+
if (overlaps.some((o) => o === 'none')) {
|
|
204
|
+
return {
|
|
205
|
+
resource: policyResource.value(),
|
|
206
|
+
// This gets inverted in the caller
|
|
207
|
+
matches: false
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
return {
|
|
212
|
+
resource: policyResource.value(),
|
|
213
|
+
// This gets inverted in the caller
|
|
214
|
+
matches: true
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
throw new Error(`Unknown Resource Type and Effect Combination: ${resourceType} ${effect}`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
if (policyResource.isArnResource()) {
|
|
84
223
|
if (!request.resource) {
|
|
85
224
|
return {
|
|
86
225
|
resource: policyResource.value(),
|
|
@@ -153,4 +292,26 @@ function singleResourceMatchesRequest(request, policyResource) {
|
|
|
153
292
|
throw new Error('Unknown resource type');
|
|
154
293
|
}
|
|
155
294
|
}
|
|
295
|
+
/**
|
|
296
|
+
* Determines if the policy string is equal to, a subset of, a superset of,
|
|
297
|
+
* or has no overlap with the request string.
|
|
298
|
+
*
|
|
299
|
+
* @param policyString the policy string to use
|
|
300
|
+
* @param requestString the request string to compare to the policy string
|
|
301
|
+
* @returns 'equal' if the strings are equal, 'subset' if the policy string is a subset of the request string, 'superset' if the policy string is a superset of the request string, or 'none' if there is no overlap
|
|
302
|
+
*/
|
|
303
|
+
export function resourcePatternOverlap(policyString, requestString) {
|
|
304
|
+
if (policyString === requestString) {
|
|
305
|
+
return 'equal';
|
|
306
|
+
}
|
|
307
|
+
const requestPattern = '^' + requestString.replace(/\*/g, '.*?') + '$';
|
|
308
|
+
if (policyString.match(requestPattern)) {
|
|
309
|
+
return 'policy_is_subset';
|
|
310
|
+
}
|
|
311
|
+
const policyPattern = '^' + policyString.replace(/\?/g, '.').replace(/\*/g, '.*?') + '$';
|
|
312
|
+
if (requestString.match(policyPattern)) {
|
|
313
|
+
return 'policy_is_superset';
|
|
314
|
+
}
|
|
315
|
+
return 'none';
|
|
316
|
+
}
|
|
156
317
|
//# sourceMappingURL=resource.js.map
|