@cloud-copilot/iam-policy 0.0.2 → 0.0.4
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 +75 -7
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/policies/policy.js +1 -1
- package/dist/cjs/policies/policy.js.map +1 -1
- package/dist/cjs/statements/statement.d.ts +7 -1
- package/dist/cjs/statements/statement.d.ts.map +1 -1
- package/dist/cjs/statements/statement.js +6 -1
- package/dist/cjs/statements/statement.js.map +1 -1
- package/dist/cjs/validate/validate.d.ts +6 -0
- package/dist/cjs/validate/validate.d.ts.map +1 -0
- package/dist/cjs/validate/validate.js +147 -0
- package/dist/cjs/validate/validate.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/policies/policy.js +1 -1
- package/dist/esm/policies/policy.js.map +1 -1
- package/dist/esm/statements/statement.d.ts +7 -1
- package/dist/esm/statements/statement.d.ts.map +1 -1
- package/dist/esm/statements/statement.js +5 -1
- package/dist/esm/statements/statement.js.map +1 -1
- package/dist/esm/validate/validate.d.ts +6 -0
- package/dist/esm/validate/validate.d.ts.map +1 -0
- package/dist/esm/validate/validate.js +144 -0
- package/dist/esm/validate/validate.js.map +1 -0
- package/package.json +1 -1
- package/dist/actions/action.d.ts +0 -51
- package/dist/actions/action.d.ts.map +0 -1
- package/dist/actions/action.js +0 -33
- package/dist/actions/action.js.map +0 -1
- package/dist/actions/actions.test.d.ts +0 -2
- package/dist/actions/actions.test.d.ts.map +0 -1
- package/dist/actions/actions.test.js +0 -91
- package/dist/actions/actions.test.js.map +0 -1
- package/dist/cjs/conditions/conditions.d.ts +0 -15
- package/dist/cjs/conditions/conditions.d.ts.map +0 -1
- package/dist/cjs/conditions/conditions.js +0 -24
- package/dist/cjs/conditions/conditions.js.map +0 -1
- package/dist/cjs/principals/principals.d.ts +0 -21
- package/dist/cjs/principals/principals.d.ts.map +0 -1
- package/dist/cjs/principals/principals.js +0 -35
- package/dist/cjs/principals/principals.js.map +0 -1
- package/dist/conditions/condition.d.ts +0 -16
- package/dist/conditions/condition.d.ts.map +0 -1
- package/dist/conditions/condition.js +0 -25
- package/dist/conditions/condition.js.map +0 -1
- package/dist/conditions/conditionOperation.d.ts +0 -31
- package/dist/conditions/conditionOperation.d.ts.map +0 -1
- package/dist/conditions/conditionOperation.js +0 -31
- package/dist/conditions/conditionOperation.js.map +0 -1
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -6
- package/dist/index.js.map +0 -1
- package/dist/parser.d.ts +0 -9
- package/dist/parser.d.ts.map +0 -1
- package/dist/parser.js +0 -14
- package/dist/parser.js.map +0 -1
- package/dist/policies/policy.d.ts +0 -14
- package/dist/policies/policy.d.ts.map +0 -1
- package/dist/policies/policy.js +0 -21
- package/dist/policies/policy.js.map +0 -1
- package/dist/policies/policy.test.d.ts +0 -2
- package/dist/policies/policy.test.d.ts.map +0 -1
- package/dist/policies/policy.test.js +0 -74
- package/dist/policies/policy.test.js.map +0 -1
- package/dist/principals/principal.d.ts +0 -21
- package/dist/principals/principal.d.ts.map +0 -1
- package/dist/principals/principal.js +0 -35
- package/dist/principals/principal.js.map +0 -1
- package/dist/resources/resource.d.ts +0 -20
- package/dist/resources/resource.d.ts.map +0 -1
- package/dist/resources/resource.js +0 -18
- package/dist/resources/resource.js.map +0 -1
- package/dist/resources/resource.test.d.ts +0 -2
- package/dist/resources/resource.test.d.ts.map +0 -1
- package/dist/resources/resource.test.js +0 -35
- package/dist/resources/resource.test.js.map +0 -1
- package/dist/statements/statement.d.ts +0 -146
- package/dist/statements/statement.d.ts.map +0 -1
- package/dist/statements/statement.js +0 -121
- package/dist/statements/statement.js.map +0 -1
- package/dist/statements/statement.test.d.ts +0 -2
- package/dist/statements/statement.test.d.ts.map +0 -1
- package/dist/statements/statement.test.js +0 -479
- package/dist/statements/statement.test.js.map +0 -1
- package/dist/utils.d.ts +0 -8
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -13
- package/dist/utils.js.map +0 -1
package/dist/parser.d.ts
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
import { PolicyImpl } from "./policies/policy.js";
|
2
|
-
/**
|
3
|
-
* Load a Policy from a policy document
|
4
|
-
*
|
5
|
-
* @param policyDocument the policy document JSON object
|
6
|
-
* @returns the Policy object for the backing policy document
|
7
|
-
*/
|
8
|
-
export declare function loadPolicy(policyDocument: any): PolicyImpl;
|
9
|
-
//# sourceMappingURL=parser.d.ts.map
|
package/dist/parser.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,cAAc,EAAE,GAAG,cAE7C"}
|
package/dist/parser.js
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.loadPolicy = loadPolicy;
|
4
|
-
const policy_js_1 = require("./policies/policy.js");
|
5
|
-
/**
|
6
|
-
* Load a Policy from a policy document
|
7
|
-
*
|
8
|
-
* @param policyDocument the policy document JSON object
|
9
|
-
* @returns the Policy object for the backing policy document
|
10
|
-
*/
|
11
|
-
function loadPolicy(policyDocument) {
|
12
|
-
return new policy_js_1.PolicyImpl(policyDocument);
|
13
|
-
}
|
14
|
-
//# sourceMappingURL=parser.js.map
|
package/dist/parser.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";;AAQA,gCAEC;AAVD,oDAAkD;AAElD;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,cAAmB;IAC1C,OAAO,IAAI,sBAAU,CAAC,cAAc,CAAC,CAAC;AAC1C,CAAC"}
|
@@ -1,14 +0,0 @@
|
|
1
|
-
import { Statement } from '../statements/statement.js';
|
2
|
-
export interface Policy {
|
3
|
-
version(): string | undefined;
|
4
|
-
id(): string | undefined;
|
5
|
-
statements(): Statement[];
|
6
|
-
}
|
7
|
-
export declare class PolicyImpl {
|
8
|
-
private readonly policyObject;
|
9
|
-
constructor(policyObject: any);
|
10
|
-
version(): string | undefined;
|
11
|
-
id(): string | undefined;
|
12
|
-
statements(): Statement[];
|
13
|
-
}
|
14
|
-
//# sourceMappingURL=policy.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/policies/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,MAAM,4BAA4B,CAAA;AAErE,MAAM,WAAW,MAAM;IACrB,OAAO,IAAI,MAAM,GAAG,SAAS,CAAA;IAC7B,EAAE,IAAI,MAAM,GAAG,SAAS,CAAA;IACxB,UAAU,IAAI,SAAS,EAAE,CAAA;CAC1B;AAED,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,GAAG;IAEvC,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,EAAE,IAAI,MAAM,GAAG,SAAS;IAIxB,UAAU,IAAI,SAAS,EAAE;CAGjC"}
|
package/dist/policies/policy.js
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.PolicyImpl = void 0;
|
4
|
-
const statement_js_1 = require("../statements/statement.js");
|
5
|
-
class PolicyImpl {
|
6
|
-
policyObject;
|
7
|
-
constructor(policyObject) {
|
8
|
-
this.policyObject = policyObject;
|
9
|
-
}
|
10
|
-
version() {
|
11
|
-
return this.policyObject.Version;
|
12
|
-
}
|
13
|
-
id() {
|
14
|
-
return this.policyObject.Id;
|
15
|
-
}
|
16
|
-
statements() {
|
17
|
-
return [this.policyObject.Statement].flat().map((statement) => new statement_js_1.StatementImpl(statement));
|
18
|
-
}
|
19
|
-
}
|
20
|
-
exports.PolicyImpl = PolicyImpl;
|
21
|
-
//# sourceMappingURL=policy.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/policies/policy.ts"],"names":[],"mappings":";;;AAAA,6DAAqE;AAQrE,MAAa,UAAU;IACQ;IAA7B,YAA6B,YAAiB;QAAjB,iBAAY,GAAZ,YAAY,CAAK;IAAG,CAAC;IAE3C,OAAO;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAA;IAClC,CAAC;IAEM,EAAE;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,CAAA;IAC7B,CAAC;IAEM,UAAU;QACf,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,SAAc,EAAE,EAAE,CAAC,IAAI,4BAAa,CAAC,SAAS,CAAC,CAAC,CAAA;IACnG,CAAC;CACF;AAdD,gCAcC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"policy.test.d.ts","sourceRoot":"","sources":["../../src/policies/policy.test.ts"],"names":[],"mappings":""}
|
@@ -1,74 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const vitest_1 = require("vitest");
|
4
|
-
const policy_js_1 = require("./policy.js");
|
5
|
-
(0, vitest_1.describe)("PolicyImpl", () => {
|
6
|
-
(0, vitest_1.describe)("version", () => {
|
7
|
-
(0, vitest_1.it)("should return the version", () => {
|
8
|
-
// Given a policy object
|
9
|
-
const policyObject = {
|
10
|
-
Version: "2012-10-17"
|
11
|
-
};
|
12
|
-
// When a PolicyImpl is created
|
13
|
-
const policy = new policy_js_1.PolicyImpl(policyObject);
|
14
|
-
// Then the version should be the version
|
15
|
-
(0, vitest_1.expect)(policy.version()).toBe(policyObject.Version);
|
16
|
-
});
|
17
|
-
});
|
18
|
-
(0, vitest_1.describe)("id", () => {
|
19
|
-
(0, vitest_1.it)("should return the id", () => {
|
20
|
-
// Given a policy object
|
21
|
-
const policyObject = {
|
22
|
-
Id: "MyPolicy"
|
23
|
-
};
|
24
|
-
// When a PolicyImpl is created
|
25
|
-
const policy = new policy_js_1.PolicyImpl(policyObject);
|
26
|
-
// Then the id should be the id
|
27
|
-
(0, vitest_1.expect)(policy.id()).toBe(policyObject.Id);
|
28
|
-
});
|
29
|
-
});
|
30
|
-
(0, vitest_1.describe)("statements", () => {
|
31
|
-
(0, vitest_1.it)('should return the statement when there is only one statement', () => {
|
32
|
-
// Given a policy object with a single statement in an object
|
33
|
-
const policyObject = {
|
34
|
-
Statement: {
|
35
|
-
Sid: 'Lonely',
|
36
|
-
Effect: "Allow",
|
37
|
-
Action: "s3:GetObject",
|
38
|
-
Resource: "arn:aws:s3:::my_corporate_bucket/*"
|
39
|
-
}
|
40
|
-
};
|
41
|
-
// When a PolicyImpl is created
|
42
|
-
const policy = new policy_js_1.PolicyImpl(policyObject);
|
43
|
-
// Then the statements should be an array with one statement
|
44
|
-
(0, vitest_1.expect)(policy.statements().length).toBe(1);
|
45
|
-
(0, vitest_1.expect)(policy.statements()[0].sid()).toBe('Lonely');
|
46
|
-
});
|
47
|
-
(0, vitest_1.it)('should return the statements when there are multiple statements', () => {
|
48
|
-
// Given a policy object with multiple statements in an array
|
49
|
-
const policyObject = {
|
50
|
-
Statement: [
|
51
|
-
{
|
52
|
-
Sid: 'First',
|
53
|
-
Effect: "Allow",
|
54
|
-
Action: "s3:GetObject",
|
55
|
-
Resource: "arn:aws:s3:::my_corporate_bucket/*"
|
56
|
-
},
|
57
|
-
{
|
58
|
-
Sid: 'Second',
|
59
|
-
Effect: "Deny",
|
60
|
-
Action: "s3:GetObject",
|
61
|
-
Resource: "arn:aws:s3:::my_corporate_bucket/secret_plans.txt"
|
62
|
-
}
|
63
|
-
]
|
64
|
-
};
|
65
|
-
// When a PolicyImpl is created
|
66
|
-
const policy = new policy_js_1.PolicyImpl(policyObject);
|
67
|
-
// Then the statements should be an array with two statements
|
68
|
-
(0, vitest_1.expect)(policy.statements().length).toBe(2);
|
69
|
-
(0, vitest_1.expect)(policy.statements()[0].sid()).toBe('First');
|
70
|
-
(0, vitest_1.expect)(policy.statements()[1].sid()).toBe('Second');
|
71
|
-
});
|
72
|
-
});
|
73
|
-
});
|
74
|
-
//# sourceMappingURL=policy.test.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"policy.test.js","sourceRoot":"","sources":["../../src/policies/policy.test.ts"],"names":[],"mappings":"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"}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
export type PrincipalType = 'AWS' | 'Service' | 'Federated' | 'CanonicalUser';
|
2
|
-
export interface Principal {
|
3
|
-
type(): PrincipalType;
|
4
|
-
value(): string;
|
5
|
-
}
|
6
|
-
export declare class PrincipalImpl {
|
7
|
-
private readonly principalType;
|
8
|
-
private readonly principalId;
|
9
|
-
constructor(principalType: PrincipalType, principalId: string);
|
10
|
-
value(): string;
|
11
|
-
type(): PrincipalType;
|
12
|
-
}
|
13
|
-
export declare class AwsPrincipal extends PrincipalImpl {
|
14
|
-
}
|
15
|
-
export declare class ServicePrincipal extends PrincipalImpl {
|
16
|
-
}
|
17
|
-
export declare class FederatedPrincipal extends PrincipalImpl {
|
18
|
-
}
|
19
|
-
export declare class CanonicalUserPrincipal extends PrincipalImpl {
|
20
|
-
}
|
21
|
-
//# sourceMappingURL=principal.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"principal.d.ts","sourceRoot":"","sources":["../../src/principals/principal.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,eAAe,CAAA;AAE7E,MAAM,WAAW,SAAS;IACxB,IAAI,IAAI,aAAa,CAAA;IACrB,KAAK,IAAI,MAAM,CAAA;CAChB;AAED,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,aAAa;IAAiB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAA1D,aAAa,EAAE,aAAa,EAAmB,WAAW,EAAE,MAAM;IAExF,KAAK,IAAI,MAAM;IAIf,IAAI,IAAI,aAAa;CAG7B;AAGD,qBAAa,YAAa,SAAQ,aAAa;CAC9C;AAGD,qBAAa,gBAAiB,SAAQ,aAAa;CAClD;AAGD,qBAAa,kBAAmB,SAAQ,aAAa;CACpD;AAGD,qBAAa,sBAAuB,SAAQ,aAAa;CACxD"}
|
@@ -1,35 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.CanonicalUserPrincipal = exports.FederatedPrincipal = exports.ServicePrincipal = exports.AwsPrincipal = exports.PrincipalImpl = void 0;
|
4
|
-
class PrincipalImpl {
|
5
|
-
principalType;
|
6
|
-
principalId;
|
7
|
-
constructor(principalType, principalId) {
|
8
|
-
this.principalType = principalType;
|
9
|
-
this.principalId = principalId;
|
10
|
-
}
|
11
|
-
value() {
|
12
|
-
return this.principalId;
|
13
|
-
}
|
14
|
-
type() {
|
15
|
-
return this.principalType;
|
16
|
-
}
|
17
|
-
}
|
18
|
-
exports.PrincipalImpl = PrincipalImpl;
|
19
|
-
//AWS
|
20
|
-
class AwsPrincipal extends PrincipalImpl {
|
21
|
-
}
|
22
|
-
exports.AwsPrincipal = AwsPrincipal;
|
23
|
-
//Service
|
24
|
-
class ServicePrincipal extends PrincipalImpl {
|
25
|
-
}
|
26
|
-
exports.ServicePrincipal = ServicePrincipal;
|
27
|
-
//Federated
|
28
|
-
class FederatedPrincipal extends PrincipalImpl {
|
29
|
-
}
|
30
|
-
exports.FederatedPrincipal = FederatedPrincipal;
|
31
|
-
//CanonicalUser
|
32
|
-
class CanonicalUserPrincipal extends PrincipalImpl {
|
33
|
-
}
|
34
|
-
exports.CanonicalUserPrincipal = CanonicalUserPrincipal;
|
35
|
-
//# sourceMappingURL=principal.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"principal.js","sourceRoot":"","sources":["../../src/principals/principal.ts"],"names":[],"mappings":";;;AAOA,MAAa,aAAa;IACK;IAA+C;IAA5E,YAA6B,aAA4B,EAAmB,WAAmB;QAAlE,kBAAa,GAAb,aAAa,CAAe;QAAmB,gBAAW,GAAX,WAAW,CAAQ;IAAG,CAAC;IAE5F,KAAK;QACV,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;CACF;AAVD,sCAUC;AAED,KAAK;AACL,MAAa,YAAa,SAAQ,aAAa;CAC9C;AADD,oCACC;AAED,SAAS;AACT,MAAa,gBAAiB,SAAQ,aAAa;CAClD;AADD,4CACC;AAED,WAAW;AACX,MAAa,kBAAmB,SAAQ,aAAa;CACpD;AADD,gDACC;AAED,eAAe;AACf,MAAa,sBAAuB,SAAQ,aAAa;CACxD;AADD,wDACC"}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* A resource string in an IAM policy
|
3
|
-
*/
|
4
|
-
export interface Resource {
|
5
|
-
/**
|
6
|
-
* The raw string of the resource
|
7
|
-
*/
|
8
|
-
value(): string;
|
9
|
-
/**
|
10
|
-
* Whether the resource is all resources: `"*"`
|
11
|
-
*/
|
12
|
-
isAllResources(): boolean;
|
13
|
-
}
|
14
|
-
export declare class ResourceImpl implements Resource {
|
15
|
-
private readonly rawValue;
|
16
|
-
constructor(rawValue: string);
|
17
|
-
value(): string;
|
18
|
-
isAllResources(): boolean;
|
19
|
-
}
|
20
|
-
//# sourceMappingURL=resource.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/resources/resource.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,KAAK,IAAI,MAAM,CAAA;IAEf;;OAEG;IACH,cAAc,IAAI,OAAO,CAAA;CAC1B;AAGD,qBAAa,YAAa,YAAW,QAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAEtC,KAAK,IAAI,MAAM;IAIf,cAAc,IAAI,OAAO;CAGjC"}
|
@@ -1,18 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.ResourceImpl = void 0;
|
4
|
-
const utils_js_1 = require("../utils.js");
|
5
|
-
class ResourceImpl {
|
6
|
-
rawValue;
|
7
|
-
constructor(rawValue) {
|
8
|
-
this.rawValue = rawValue;
|
9
|
-
}
|
10
|
-
value() {
|
11
|
-
return this.rawValue;
|
12
|
-
}
|
13
|
-
isAllResources() {
|
14
|
-
return (0, utils_js_1.isAllWildcards)(this.rawValue);
|
15
|
-
}
|
16
|
-
}
|
17
|
-
exports.ResourceImpl = ResourceImpl;
|
18
|
-
//# sourceMappingURL=resource.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/resources/resource.ts"],"names":[],"mappings":";;;AAAA,0CAA6C;AAkB7C,MAAa,YAAY;IACM;IAA7B,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAE1C,KAAK;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,cAAc;QACnB,OAAO,IAAA,yBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC;CACF;AAVD,oCAUC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"resource.test.d.ts","sourceRoot":"","sources":["../../src/resources/resource.test.ts"],"names":[],"mappings":""}
|
@@ -1,35 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const vitest_1 = require("vitest");
|
4
|
-
const resource_js_1 = require("./resource.js");
|
5
|
-
(0, vitest_1.describe)("ResourceImpl", () => {
|
6
|
-
(0, vitest_1.describe)("value", () => {
|
7
|
-
(0, vitest_1.it)("should return the value", () => {
|
8
|
-
// Given a resource string
|
9
|
-
const resourceString = "arn:aws:s3:::my_corporate_bucket/*";
|
10
|
-
// When a ResourceImpl is created
|
11
|
-
const resource = new resource_js_1.ResourceImpl(resourceString);
|
12
|
-
// Then the value should be the resource string
|
13
|
-
(0, vitest_1.expect)(resource.value()).toBe(resourceString);
|
14
|
-
});
|
15
|
-
});
|
16
|
-
(0, vitest_1.describe)("isAllResources", () => {
|
17
|
-
(0, vitest_1.it)("should return true when all resources", () => {
|
18
|
-
// Given a resource wildcard
|
19
|
-
const resourceString = "*";
|
20
|
-
// When a ResourceImpl is created
|
21
|
-
const resource = new resource_js_1.ResourceImpl(resourceString);
|
22
|
-
// Then the isAllResources should be true
|
23
|
-
(0, vitest_1.expect)(resource.isAllResources()).toBe(true);
|
24
|
-
});
|
25
|
-
(0, vitest_1.it)("should return false when not all resources", () => {
|
26
|
-
// Given a resource string
|
27
|
-
const resourceString = "arn:aws:s3:::my_corporate_bucket/*";
|
28
|
-
// When a ResourceImpl is created
|
29
|
-
const resource = new resource_js_1.ResourceImpl(resourceString);
|
30
|
-
// Then the isAllResources should be false
|
31
|
-
(0, vitest_1.expect)(resource.isAllResources()).toBe(false);
|
32
|
-
});
|
33
|
-
});
|
34
|
-
});
|
35
|
-
//# sourceMappingURL=resource.test.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"resource.test.js","sourceRoot":"","sources":["../../src/resources/resource.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,+CAA6C;AAE7C,IAAA,iBAAQ,EAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAA,iBAAQ,EAAC,OAAO,EAAE,GAAG,EAAE;QACrB,IAAA,WAAE,EAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,0BAA0B;YAC1B,MAAM,cAAc,GAAG,oCAAoC,CAAC;YAE5D,iCAAiC;YACjC,MAAM,QAAQ,GAAG,IAAI,0BAAY,CAAC,cAAc,CAAC,CAAC;YAElD,+CAA+C;YAC/C,IAAA,eAAM,EAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,IAAA,WAAE,EAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,4BAA4B;YAC5B,MAAM,cAAc,GAAG,GAAG,CAAC;YAE3B,iCAAiC;YACjC,MAAM,QAAQ,GAAG,IAAI,0BAAY,CAAC,cAAc,CAAC,CAAC;YAElD,yCAAyC;YACzC,IAAA,eAAM,EAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,0BAA0B;YAC1B,MAAM,cAAc,GAAG,oCAAoC,CAAC;YAE5D,iCAAiC;YACjC,MAAM,QAAQ,GAAG,IAAI,0BAAY,CAAC,cAAc,CAAC,CAAC;YAElD,0CAA0C;YAC1C,IAAA,eAAM,EAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAA"}
|
@@ -1,146 +0,0 @@
|
|
1
|
-
import { Action } from "../actions/action.js";
|
2
|
-
import { Condition } from "../conditions/condition.js";
|
3
|
-
import { Principal } from "../principals/principal.js";
|
4
|
-
import { Resource } from "../resources/resource.js";
|
5
|
-
/**
|
6
|
-
* Represents a statement in an IAM policy
|
7
|
-
*/
|
8
|
-
export interface Statement {
|
9
|
-
/**
|
10
|
-
* The optional Sid (Statement ID) for a statement
|
11
|
-
*/
|
12
|
-
sid(): string | undefined;
|
13
|
-
/**
|
14
|
-
* The effect of the statement, either 'Allow' or 'Deny'
|
15
|
-
*/
|
16
|
-
effect(): string;
|
17
|
-
/**
|
18
|
-
* Is the statement an Allow statement
|
19
|
-
*/
|
20
|
-
isAllow(): boolean;
|
21
|
-
/**
|
22
|
-
* Is the statement a Deny statement
|
23
|
-
*/
|
24
|
-
isDeny(): boolean;
|
25
|
-
/**
|
26
|
-
* The conditions for the statement
|
27
|
-
*/
|
28
|
-
conditions(): Condition[];
|
29
|
-
/**
|
30
|
-
* Does the statement have a Principal
|
31
|
-
*/
|
32
|
-
isPrincipalStatement(): this is PrincipalStatement;
|
33
|
-
/**
|
34
|
-
* Does the statement have a NotPrincipal
|
35
|
-
*/
|
36
|
-
isNotPrincipalStatement(): this is NotPrincipalStatement;
|
37
|
-
/**
|
38
|
-
* Does the statement have an Action
|
39
|
-
*/
|
40
|
-
isActionStatement(): this is ActionStatement;
|
41
|
-
/**
|
42
|
-
* Does the statement have a NotAction
|
43
|
-
*/
|
44
|
-
isNotActionStatement(): this is NotActionStatement;
|
45
|
-
/**
|
46
|
-
* Does the statement have a Resource
|
47
|
-
*/
|
48
|
-
isResourceStatement(): this is ResourceStatement;
|
49
|
-
/**
|
50
|
-
* Does the statement have a NotResource
|
51
|
-
*/
|
52
|
-
isNotResourceStatement(): this is NotResourceStatement;
|
53
|
-
}
|
54
|
-
/**
|
55
|
-
* Represents a statement in an IAM policy that has Action
|
56
|
-
*/
|
57
|
-
export interface ActionStatement extends Statement {
|
58
|
-
/**
|
59
|
-
* The actions for the statement
|
60
|
-
*/
|
61
|
-
actions(): Action[];
|
62
|
-
}
|
63
|
-
/**
|
64
|
-
* Represents a statement in an IAM policy that has NotAction
|
65
|
-
*/
|
66
|
-
export interface NotActionStatement extends Statement {
|
67
|
-
/**
|
68
|
-
* The not actions for the statement
|
69
|
-
*/
|
70
|
-
notActions(): Action[];
|
71
|
-
}
|
72
|
-
/**
|
73
|
-
* Represents a statement in an IAM policy that has Resource
|
74
|
-
*/
|
75
|
-
export interface ResourceStatement extends Statement {
|
76
|
-
/**
|
77
|
-
* The resources for the statement
|
78
|
-
*/
|
79
|
-
resources(): Resource[];
|
80
|
-
/**
|
81
|
-
* Is the resource element exactly a single wildcard: `"*"`
|
82
|
-
*/
|
83
|
-
hasSingleResourceWildcard(): boolean;
|
84
|
-
}
|
85
|
-
/**
|
86
|
-
* Represents a statement in an IAM policy that has NotResource
|
87
|
-
*/
|
88
|
-
export interface NotResourceStatement extends Statement {
|
89
|
-
/**
|
90
|
-
* The not resources for the statement
|
91
|
-
*/
|
92
|
-
notResources(): Resource[];
|
93
|
-
}
|
94
|
-
/**
|
95
|
-
* Represents a statement in an IAM policy that has Principal
|
96
|
-
*/
|
97
|
-
export interface PrincipalStatement extends Statement {
|
98
|
-
/**
|
99
|
-
* The principals for the statement
|
100
|
-
*/
|
101
|
-
principals(): Principal[];
|
102
|
-
}
|
103
|
-
/**
|
104
|
-
* Represents a statement in an IAM policy that has NotPrincipal
|
105
|
-
*/
|
106
|
-
export interface NotPrincipalStatement extends Statement {
|
107
|
-
/**
|
108
|
-
* The not principals for the statement
|
109
|
-
*/
|
110
|
-
notPrincipals(): Principal[];
|
111
|
-
}
|
112
|
-
/**
|
113
|
-
* Implementation of the Statement interface and all its sub-interfaces
|
114
|
-
*/
|
115
|
-
export declare class StatementImpl implements Statement, ActionStatement, NotActionStatement, ResourceStatement, NotResourceStatement, PrincipalStatement {
|
116
|
-
private readonly statementObject;
|
117
|
-
constructor(statementObject: any);
|
118
|
-
sid(): string | undefined;
|
119
|
-
effect(): string;
|
120
|
-
isAllow(): boolean;
|
121
|
-
isDeny(): boolean;
|
122
|
-
isPrincipalStatement(): this is PrincipalStatement;
|
123
|
-
isNotPrincipalStatement(): this is NotPrincipalStatement;
|
124
|
-
principals(): Principal[];
|
125
|
-
notPrincipals(): Principal[];
|
126
|
-
/**
|
127
|
-
* Parse the principal object into PrincipalImpl objects.
|
128
|
-
*
|
129
|
-
* This is non trivial and we don't want to implement this in each function.
|
130
|
-
*
|
131
|
-
* @param principals the Principal or NotPrincipal object ot parse
|
132
|
-
* @returns the backing principals for a Principal or NotPrincipal object
|
133
|
-
*/
|
134
|
-
private parsePrincipalObject;
|
135
|
-
isActionStatement(): this is ActionStatement;
|
136
|
-
isNotActionStatement(): this is NotActionStatement;
|
137
|
-
actions(): Action[];
|
138
|
-
notActions(): Action[];
|
139
|
-
isResourceStatement(): this is ResourceStatement;
|
140
|
-
isNotResourceStatement(): this is NotResourceStatement;
|
141
|
-
resources(): Resource[];
|
142
|
-
notResources(): Resource[];
|
143
|
-
hasSingleResourceWildcard(): boolean;
|
144
|
-
conditions(): Condition[];
|
145
|
-
}
|
146
|
-
//# sourceMappingURL=statement.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"statement.d.ts","sourceRoot":"","sources":["../../src/statements/statement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAiB,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,SAAS,EAAgC,MAAM,4BAA4B,CAAA;AACpF,OAAO,EAAE,QAAQ,EAAgB,MAAM,0BAA0B,CAAA;AAEjE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,GAAG,IAAI,MAAM,GAAG,SAAS,CAAA;IAEzB;;OAEG;IACH,MAAM,IAAI,MAAM,CAAA;IAEhB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAA;IAElB;;OAEG;IACH,MAAM,IAAI,OAAO,CAAA;IAEjB;;OAEG;IACH,UAAU,IAAI,SAAS,EAAE,CAAA;IAEzB;;OAEG;IACH,oBAAoB,IAAI,IAAI,IAAI,kBAAkB,CAAA;IAElD;;OAEG;IACH,uBAAuB,IAAI,IAAI,IAAI,qBAAqB,CAAA;IAExD;;OAEG;IACH,iBAAiB,IAAI,IAAI,IAAI,eAAe,CAAA;IAE5C;;OAEG;IACH,oBAAoB,IAAI,IAAI,IAAI,kBAAkB,CAAA;IAElD;;OAEG;IACH,mBAAmB,IAAI,IAAI,IAAI,iBAAiB,CAAA;IAEhD;;OAEG;IACH,sBAAsB,IAAI,IAAI,IAAI,oBAAoB,CAAA;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD;;OAEG;IACH,OAAO,IAAI,MAAM,EAAE,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IAEnD;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD;;OAEG;IACH,SAAS,IAAI,QAAQ,EAAE,CAAA;IAEvB;;OAEG;IACH,yBAAyB,IAAI,OAAO,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD;;OAEG;IACH,YAAY,IAAI,QAAQ,EAAE,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD;;OAEG;IACH,UAAU,IAAI,SAAS,EAAE,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IAEtD;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE,CAAA;CAC7B;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB;IACnI,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,GAAG;IAE1C,GAAG,IAAI,MAAM,GAAG,SAAS;IAIzB,MAAM,IAAI,MAAM;IAIhB,OAAO,IAAI,OAAO;IAIlB,MAAM,IAAI,OAAO;IAIjB,oBAAoB,IAAI,IAAI,IAAI,kBAAkB;IAIlD,uBAAuB,IAAI,IAAI,IAAI,qBAAqB;IAIxD,UAAU,IAAI,SAAS,EAAE;IAOzB,aAAa,IAAI,SAAS,EAAE;IAOnC;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAcrB,iBAAiB,IAAI,IAAI,IAAI,eAAe;IAI5C,oBAAoB,IAAI,IAAI,IAAI,kBAAkB;IAIlD,OAAO,IAAI,MAAM,EAAE;IAOnB,UAAU,IAAI,MAAM,EAAE;IAOtB,mBAAmB,IAAI,IAAI,IAAI,iBAAiB;IAIhD,sBAAsB,IAAI,IAAI,IAAI,oBAAoB;IAItD,SAAS,IAAI,QAAQ,EAAE;IAOvB,YAAY,IAAI,QAAQ,EAAE;IAO1B,yBAAyB,IAAI,OAAO;IAOpC,UAAU,IAAI,SAAS,EAAE;CAWjC"}
|
@@ -1,121 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.StatementImpl = void 0;
|
4
|
-
const action_js_1 = require("../actions/action.js");
|
5
|
-
const condition_js_1 = require("../conditions/condition.js");
|
6
|
-
const principal_js_1 = require("../principals/principal.js");
|
7
|
-
const resource_js_1 = require("../resources/resource.js");
|
8
|
-
/**
|
9
|
-
* Implementation of the Statement interface and all its sub-interfaces
|
10
|
-
*/
|
11
|
-
class StatementImpl {
|
12
|
-
statementObject;
|
13
|
-
constructor(statementObject) {
|
14
|
-
this.statementObject = statementObject;
|
15
|
-
}
|
16
|
-
sid() {
|
17
|
-
return this.statementObject.Sid;
|
18
|
-
}
|
19
|
-
effect() {
|
20
|
-
return this.statementObject.Effect;
|
21
|
-
}
|
22
|
-
isAllow() {
|
23
|
-
return this.effect() === 'Allow';
|
24
|
-
}
|
25
|
-
isDeny() {
|
26
|
-
return this.effect() === 'Deny';
|
27
|
-
}
|
28
|
-
isPrincipalStatement() {
|
29
|
-
return this.statementObject.Principal !== undefined;
|
30
|
-
}
|
31
|
-
isNotPrincipalStatement() {
|
32
|
-
return this.statementObject.NotPrincipal !== undefined;
|
33
|
-
}
|
34
|
-
principals() {
|
35
|
-
if (!this.isPrincipalStatement()) {
|
36
|
-
throw new Error('Called principals on a statement without Principal, use isPrincipalStatement before calling principals');
|
37
|
-
}
|
38
|
-
return this.parsePrincipalObject(this.statementObject.Principal);
|
39
|
-
}
|
40
|
-
notPrincipals() {
|
41
|
-
if (!this.isNotPrincipalStatement()) {
|
42
|
-
throw new Error('Called notPrincipals on a statement without NotPrincipal, use isNotPrincipalStatement before calling notPrincipals');
|
43
|
-
}
|
44
|
-
return this.parsePrincipalObject(this.statementObject.NotPrincipal);
|
45
|
-
}
|
46
|
-
/**
|
47
|
-
* Parse the principal object into PrincipalImpl objects.
|
48
|
-
*
|
49
|
-
* This is non trivial and we don't want to implement this in each function.
|
50
|
-
*
|
51
|
-
* @param principals the Principal or NotPrincipal object ot parse
|
52
|
-
* @returns the backing principals for a Principal or NotPrincipal object
|
53
|
-
*/
|
54
|
-
parsePrincipalObject(principals) {
|
55
|
-
if (typeof principals === 'string') {
|
56
|
-
return [new principal_js_1.PrincipalImpl('AWS', principals)];
|
57
|
-
}
|
58
|
-
return Object.entries(principals).map(([principalType, principalValue]) => {
|
59
|
-
if (typeof principalValue === 'string') {
|
60
|
-
return new principal_js_1.PrincipalImpl(principalType, principalValue);
|
61
|
-
}
|
62
|
-
return Object.entries(principalValue).map(([key, value]) => {
|
63
|
-
return new principal_js_1.PrincipalImpl(principalType, value);
|
64
|
-
});
|
65
|
-
}).flat();
|
66
|
-
}
|
67
|
-
isActionStatement() {
|
68
|
-
return this.statementObject.Action !== undefined;
|
69
|
-
}
|
70
|
-
isNotActionStatement() {
|
71
|
-
return this.statementObject.NotAction !== undefined;
|
72
|
-
}
|
73
|
-
actions() {
|
74
|
-
if (!this.isActionStatement()) {
|
75
|
-
throw new Error('Called actions on a statement without Action, use isActionStatement before calling actions');
|
76
|
-
}
|
77
|
-
return [this.statementObject.Action].flat().map((action) => new action_js_1.ActionImpl(action));
|
78
|
-
}
|
79
|
-
notActions() {
|
80
|
-
if (!this.isNotActionStatement()) {
|
81
|
-
throw new Error('Called notActions on a statement without NotAction, use isNotActionStatement before calling notActions');
|
82
|
-
}
|
83
|
-
return [this.statementObject.NotAction].flat().map((action) => new action_js_1.ActionImpl(action));
|
84
|
-
}
|
85
|
-
isResourceStatement() {
|
86
|
-
return this.statementObject.Resource !== undefined;
|
87
|
-
}
|
88
|
-
isNotResourceStatement() {
|
89
|
-
return this.statementObject.NotResource !== undefined;
|
90
|
-
}
|
91
|
-
resources() {
|
92
|
-
if (!this.isResourceStatement()) {
|
93
|
-
throw new Error('Called resources on a statement without Resource, use isResourceStatement before calling resources');
|
94
|
-
}
|
95
|
-
return [this.statementObject.Resource].flat().map((resource) => new resource_js_1.ResourceImpl(resource));
|
96
|
-
}
|
97
|
-
notResources() {
|
98
|
-
if (!this.isNotResourceStatement()) {
|
99
|
-
throw new Error('Called notResources on a statement without NotResource, use isNotResourceStatement before calling notResources');
|
100
|
-
}
|
101
|
-
return [this.statementObject.NotResource].flat().map((resource) => new resource_js_1.ResourceImpl(resource));
|
102
|
-
}
|
103
|
-
hasSingleResourceWildcard() {
|
104
|
-
if (!this.isResourceStatement()) {
|
105
|
-
throw new Error('Called hasSingleResourceWildcard on a statement without Resource, use isResourceStatement before calling hasSingleResourceWildcard');
|
106
|
-
}
|
107
|
-
return this.isResourceStatement() && this.statementObject.Resource === '*';
|
108
|
-
}
|
109
|
-
conditions() {
|
110
|
-
if (!this.statementObject.Condition) {
|
111
|
-
return [];
|
112
|
-
}
|
113
|
-
return Object.entries(this.statementObject.Condition).map(([opKey, opValue]) => {
|
114
|
-
return Object.entries(opValue).map(([condKey, condValue]) => {
|
115
|
-
return new condition_js_1.ConditionImpl(opKey, condKey, condValue);
|
116
|
-
});
|
117
|
-
}).flat();
|
118
|
-
}
|
119
|
-
}
|
120
|
-
exports.StatementImpl = StatementImpl;
|
121
|
-
//# sourceMappingURL=statement.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"statement.js","sourceRoot":"","sources":["../../src/statements/statement.ts"],"names":[],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"statement.test.d.ts","sourceRoot":"","sources":["../../src/statements/statement.test.ts"],"names":[],"mappings":""}
|