@cloud-copilot/iam-policy 0.1.5-1 → 0.1.6
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/dist/cjs/actions/action.d.ts +1 -7
- package/dist/cjs/actions/action.d.ts.map +1 -1
- package/dist/cjs/actions/action.js +0 -9
- package/dist/cjs/actions/action.js.map +1 -1
- package/dist/cjs/conditions/condition.d.ts +2 -8
- package/dist/cjs/conditions/condition.d.ts.map +1 -1
- package/dist/cjs/conditions/condition.js +0 -8
- package/dist/cjs/conditions/condition.js.map +1 -1
- package/dist/cjs/conditions/conditionOperation.d.ts.map +1 -1
- package/dist/cjs/conditions/conditionOperation.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/parser.d.ts +1 -2
- package/dist/cjs/parser.d.ts.map +1 -1
- package/dist/cjs/parser.js +1 -5
- package/dist/cjs/parser.js.map +1 -1
- package/dist/cjs/policies/policy.d.ts +3 -13
- package/dist/cjs/policies/policy.d.ts.map +1 -1
- package/dist/cjs/policies/policy.js +5 -21
- package/dist/cjs/policies/policy.js.map +1 -1
- package/dist/cjs/principals/principal.d.ts +1 -7
- package/dist/cjs/principals/principal.d.ts.map +1 -1
- package/dist/cjs/principals/principal.js +1 -10
- package/dist/cjs/principals/principal.js.map +1 -1
- package/dist/cjs/resources/resource.d.ts +1 -7
- package/dist/cjs/resources/resource.d.ts.map +1 -1
- package/dist/cjs/resources/resource.js +9 -17
- package/dist/cjs/resources/resource.js.map +1 -1
- package/dist/cjs/statements/statement.d.ts +25 -69
- package/dist/cjs/statements/statement.d.ts.map +1 -1
- package/dist/cjs/statements/statement.js +35 -75
- package/dist/cjs/statements/statement.js.map +1 -1
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/validate/validate.d.ts.map +1 -1
- package/dist/cjs/validate/validate.js +29 -11
- package/dist/cjs/validate/validate.js.map +1 -1
- package/dist/cjs/validate/validateTypes.d.ts +1 -1
- package/dist/cjs/validate/validateTypes.d.ts.map +1 -1
- package/dist/cjs/validate/validateTypes.js +18 -12
- package/dist/cjs/validate/validateTypes.js.map +1 -1
- package/dist/esm/actions/action.d.ts +1 -7
- package/dist/esm/actions/action.d.ts.map +1 -1
- package/dist/esm/actions/action.js +1 -9
- package/dist/esm/actions/action.js.map +1 -1
- package/dist/esm/conditions/condition.d.ts +2 -8
- package/dist/esm/conditions/condition.d.ts.map +1 -1
- package/dist/esm/conditions/condition.js +1 -9
- package/dist/esm/conditions/condition.js.map +1 -1
- package/dist/esm/conditions/conditionOperation.d.ts.map +1 -1
- package/dist/esm/conditions/conditionOperation.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 +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/parser.d.ts +1 -2
- package/dist/esm/parser.d.ts.map +1 -1
- package/dist/esm/parser.js +2 -5
- package/dist/esm/parser.js.map +1 -1
- package/dist/esm/policies/policy.d.ts +3 -13
- package/dist/esm/policies/policy.d.ts.map +1 -1
- package/dist/esm/policies/policy.js +5 -18
- package/dist/esm/policies/policy.js.map +1 -1
- package/dist/esm/principals/principal.d.ts +1 -7
- package/dist/esm/principals/principal.d.ts.map +1 -1
- package/dist/esm/principals/principal.js +1 -9
- package/dist/esm/principals/principal.js.map +1 -1
- package/dist/esm/resources/resource.d.ts +1 -7
- package/dist/esm/resources/resource.d.ts.map +1 -1
- package/dist/esm/resources/resource.js +10 -18
- package/dist/esm/resources/resource.js.map +1 -1
- package/dist/esm/statements/statement.d.ts +25 -69
- package/dist/esm/statements/statement.d.ts.map +1 -1
- package/dist/esm/statements/statement.js +39 -70
- package/dist/esm/statements/statement.js.map +1 -1
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/validate/validate.d.ts.map +1 -1
- package/dist/esm/validate/validate.js +29 -11
- package/dist/esm/validate/validate.js.map +1 -1
- package/dist/esm/validate/validateTypes.d.ts +1 -1
- package/dist/esm/validate/validateTypes.d.ts.map +1 -1
- package/dist/esm/validate/validateTypes.js +19 -13
- package/dist/esm/validate/validateTypes.js.map +1 -1
- package/package.json +7 -3
- package/dist/cjs/annotations/annotations.d.ts +0 -55
- package/dist/cjs/annotations/annotations.d.ts.map +0 -1
- package/dist/cjs/annotations/annotations.js +0 -29
- package/dist/cjs/annotations/annotations.js.map +0 -1
- package/dist/esm/annotations/annotations.d.ts +0 -55
- package/dist/esm/annotations/annotations.d.ts.map +0 -1
- package/dist/esm/annotations/annotations.js +0 -24
- package/dist/esm/annotations/annotations.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"validateTypes.d.ts","sourceRoot":"","sources":["../../../src/validate/validateTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,
|
1
|
+
{"version":3,"file":"validateTypes.d.ts","sourceRoot":"","sources":["../../../src/validate/validateTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAA;AAErE;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,eAAe,EAAE,CAarE;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,GAAG,GAAG,eAAe,EAAE,CA0D3E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,eAAe,EAAE,CAarE;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,GAAG,GAAG,eAAe,EAAE,CAyC5E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,eAAe,EAAE,CAelE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,eAAe,EAAE,CAarE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,GAAG,eAAe,EAAE,CAapE"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { validatePolicySyntax } from
|
1
|
+
import { validatePolicySyntax } from './validate.js';
|
2
2
|
/**
|
3
3
|
* Validates an Identity Policy attached to an IAM role or user, or managed policy
|
4
4
|
*
|
@@ -33,10 +33,12 @@ export function validateServiceControlPolicy(policy) {
|
|
33
33
|
if (firstWildcard == action.length - 1) {
|
34
34
|
return [];
|
35
35
|
}
|
36
|
-
return [
|
36
|
+
return [
|
37
|
+
{
|
37
38
|
path,
|
38
39
|
message: `Wildcard characters are only allowed at the end of ${type} in ${policyType}`
|
39
|
-
}
|
40
|
+
}
|
41
|
+
];
|
40
42
|
};
|
41
43
|
return validatePolicySyntax(policy, {
|
42
44
|
validateStatement: (statement, path) => {
|
@@ -44,8 +46,8 @@ export function validateServiceControlPolicy(policy) {
|
|
44
46
|
errors.push(...validateProhibitedFields(statement, ['Principal', 'NotPrincipal', 'NotResource'], path, policyType));
|
45
47
|
errors.push(...validateAtLeastOneOf(statement, ['Resource'], path, policyType));
|
46
48
|
errors.push(...validateAtLeastOneOf(statement, ['Action', 'NotAction'], path, policyType));
|
47
|
-
if (statement.Effect ===
|
48
|
-
if (statement.Resource !==
|
49
|
+
if (statement.Effect === 'Allow') {
|
50
|
+
if (statement.Resource !== '*') {
|
49
51
|
errors.push({
|
50
52
|
path,
|
51
53
|
message: `Resource must be "*" when Effect is "Allow" in ${policyType}`
|
@@ -99,13 +101,13 @@ export function validateResourceControlPolicy(policy) {
|
|
99
101
|
return validatePolicySyntax(policy, {
|
100
102
|
validateStatement: (statement, path) => {
|
101
103
|
const errors = [];
|
102
|
-
if (statement.Effect !==
|
104
|
+
if (statement.Effect !== 'Deny') {
|
103
105
|
errors.push({
|
104
106
|
path: `${path}.Effect`,
|
105
107
|
message: `Effect must be "Deny" in ${policyType}`
|
106
108
|
});
|
107
109
|
}
|
108
|
-
if (statement.Principal !==
|
110
|
+
if (statement.Principal !== '*') {
|
109
111
|
errors.push({
|
110
112
|
path: `${path}.Principal`,
|
111
113
|
message: `Principal must be "*" in ${policyType}`
|
@@ -117,11 +119,13 @@ export function validateResourceControlPolicy(policy) {
|
|
117
119
|
return errors;
|
118
120
|
},
|
119
121
|
validateAction: (action, path) => {
|
120
|
-
if (action ===
|
121
|
-
return [
|
122
|
+
if (action === '*') {
|
123
|
+
return [
|
124
|
+
{
|
122
125
|
path,
|
123
126
|
message: `Action cannot be "*" in ${policyType}`
|
124
|
-
}
|
127
|
+
}
|
128
|
+
];
|
125
129
|
}
|
126
130
|
return [];
|
127
131
|
}
|
@@ -191,16 +195,18 @@ export function validateSessionPolicy(policy) {
|
|
191
195
|
* @returns an array of validation errors
|
192
196
|
*/
|
193
197
|
function validateAtLeastOneOf(statement, requiredFields, path, policyType) {
|
194
|
-
const presentFields = requiredFields.filter(field => statement[field]);
|
198
|
+
const presentFields = requiredFields.filter((field) => statement[field]);
|
195
199
|
let message = `One of ${requiredFields.join(' or ')} is required in ${policyType}`;
|
196
200
|
if (requiredFields.length === 1) {
|
197
201
|
message = `${requiredFields[0]} is required in ${policyType}`;
|
198
202
|
}
|
199
203
|
if (presentFields.length === 0) {
|
200
|
-
return [
|
204
|
+
return [
|
205
|
+
{
|
201
206
|
path,
|
202
207
|
message
|
203
|
-
}
|
208
|
+
}
|
209
|
+
];
|
204
210
|
}
|
205
211
|
return [];
|
206
212
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"validateTypes.js","sourceRoot":"","sources":["../../../src/validate/validateTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmB,MAAM,eAAe,
|
1
|
+
{"version":3,"file":"validateTypes.js","sourceRoot":"","sources":["../../../src/validate/validateTypes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@cloud-copilot/iam-policy",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.6",
|
4
4
|
"description": "An ORM for AWS IAM policies",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -20,7 +20,9 @@
|
|
20
20
|
"build": "npx tsc -p tsconfig.cjs.json && npx tsc -p tsconfig.esm.json && ./postbuild.sh",
|
21
21
|
"clean": "rm -rf dist",
|
22
22
|
"test": "npx vitest --run --coverage",
|
23
|
-
"release": "npm install && npm run clean && npm run build && npm test && npm publish"
|
23
|
+
"release": "npm install && npm run clean && npm run build && npm test && npm run format-check && npm publish",
|
24
|
+
"format": "npx prettier --write src/",
|
25
|
+
"format-check": "npx prettier --check src/"
|
24
26
|
},
|
25
27
|
"keywords": [
|
26
28
|
"AWS",
|
@@ -33,9 +35,11 @@
|
|
33
35
|
},
|
34
36
|
"homepage": "https://github.com/cloud-copilot/iam-policy#readme",
|
35
37
|
"devDependencies": {
|
38
|
+
"@cloud-copilot/prettier-config": "^0.1.0",
|
36
39
|
"@types/node": "^22.5.0",
|
37
40
|
"@vitest/coverage-v8": "^2.0.5",
|
38
41
|
"typescript": "^5.5.4",
|
39
42
|
"vitest": "^2.0.5"
|
40
|
-
}
|
43
|
+
},
|
44
|
+
"prettier": "@cloud-copilot/prettier-config"
|
41
45
|
}
|
@@ -1,55 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* The annotations on a policy element
|
3
|
-
*/
|
4
|
-
export interface Annotations {
|
5
|
-
/**
|
6
|
-
* The string keys that have annotations
|
7
|
-
*
|
8
|
-
* @returns the keys that have annotations
|
9
|
-
*/
|
10
|
-
keys(): string[];
|
11
|
-
/**
|
12
|
-
* Get the values for a key
|
13
|
-
*
|
14
|
-
* @param key the key to get the values for
|
15
|
-
* @returns the values for the key or an empty array if the key does not exist
|
16
|
-
*/
|
17
|
-
values(key: string): string[];
|
18
|
-
/**
|
19
|
-
* Checks if a key is present in the annotations
|
20
|
-
*
|
21
|
-
* @param key the key to check
|
22
|
-
* @returns true if the key is present, false otherwise
|
23
|
-
*/
|
24
|
-
hasKey(key: string): boolean;
|
25
|
-
}
|
26
|
-
/**
|
27
|
-
* A store for policy annotations
|
28
|
-
*/
|
29
|
-
export declare class AnnotationStore implements Annotations {
|
30
|
-
private annotations;
|
31
|
-
constructor();
|
32
|
-
addAnnotation(key: string, value: string): void;
|
33
|
-
keys(): string[];
|
34
|
-
hasKey(key: string): boolean;
|
35
|
-
values(key: string): string[];
|
36
|
-
}
|
37
|
-
/**
|
38
|
-
* Standard methods for an object that can be annotated
|
39
|
-
*/
|
40
|
-
export interface Annotated {
|
41
|
-
/**
|
42
|
-
* Add an annotation to the object
|
43
|
-
*
|
44
|
-
* @param key the key of the annotation
|
45
|
-
* @param value the value of the annotation
|
46
|
-
*/
|
47
|
-
addAnnotation(key: string, value: string): void;
|
48
|
-
/**
|
49
|
-
* Get the annotations on the object
|
50
|
-
*
|
51
|
-
* @returns the annotations on the object
|
52
|
-
*/
|
53
|
-
getAnnotations(): Annotations;
|
54
|
-
}
|
55
|
-
//# sourceMappingURL=annotations.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../../src/annotations/annotations.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,WAAW,WAAW;IAE1B;;;;OAIG;IACH,IAAI,IAAI,MAAM,EAAE,CAAA;IAEhB;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAE7B;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAC7B;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,WAAW,CAA2B;;IAK9C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAOxC,IAAI,IAAI,MAAM,EAAE;IAIhB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;CAG9B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IAExB;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAE/C;;;;OAIG;IACH,cAAc,IAAI,WAAW,CAAA;CAC9B"}
|
@@ -1,29 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.AnnotationStore = void 0;
|
4
|
-
/**
|
5
|
-
* A store for policy annotations
|
6
|
-
*/
|
7
|
-
class AnnotationStore {
|
8
|
-
annotations;
|
9
|
-
constructor() {
|
10
|
-
this.annotations = {};
|
11
|
-
}
|
12
|
-
addAnnotation(key, value) {
|
13
|
-
if (!this.annotations[key]) {
|
14
|
-
this.annotations[key] = [];
|
15
|
-
}
|
16
|
-
this.annotations[key].push(value);
|
17
|
-
}
|
18
|
-
keys() {
|
19
|
-
return Object.keys(this.annotations);
|
20
|
-
}
|
21
|
-
hasKey(key) {
|
22
|
-
return this.annotations[key] !== undefined;
|
23
|
-
}
|
24
|
-
values(key) {
|
25
|
-
return this.annotations[key] || [];
|
26
|
-
}
|
27
|
-
}
|
28
|
-
exports.AnnotationStore = AnnotationStore;
|
29
|
-
//# sourceMappingURL=annotations.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../../src/annotations/annotations.ts"],"names":[],"mappings":";;;AA8BA;;GAEG;AACH,MAAa,eAAe;IAClB,WAAW,CAA2B;IAC9C;QACE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,KAAa;QACtC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,IAAI;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;CACF;AAxBD,0CAwBC"}
|
@@ -1,55 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* The annotations on a policy element
|
3
|
-
*/
|
4
|
-
export interface Annotations {
|
5
|
-
/**
|
6
|
-
* The string keys that have annotations
|
7
|
-
*
|
8
|
-
* @returns the keys that have annotations
|
9
|
-
*/
|
10
|
-
keys(): string[];
|
11
|
-
/**
|
12
|
-
* Get the values for a key
|
13
|
-
*
|
14
|
-
* @param key the key to get the values for
|
15
|
-
* @returns the values for the key or an empty array if the key does not exist
|
16
|
-
*/
|
17
|
-
values(key: string): string[];
|
18
|
-
/**
|
19
|
-
* Checks if a key is present in the annotations
|
20
|
-
*
|
21
|
-
* @param key the key to check
|
22
|
-
* @returns true if the key is present, false otherwise
|
23
|
-
*/
|
24
|
-
hasKey(key: string): boolean;
|
25
|
-
}
|
26
|
-
/**
|
27
|
-
* A store for policy annotations
|
28
|
-
*/
|
29
|
-
export declare class AnnotationStore implements Annotations {
|
30
|
-
private annotations;
|
31
|
-
constructor();
|
32
|
-
addAnnotation(key: string, value: string): void;
|
33
|
-
keys(): string[];
|
34
|
-
hasKey(key: string): boolean;
|
35
|
-
values(key: string): string[];
|
36
|
-
}
|
37
|
-
/**
|
38
|
-
* Standard methods for an object that can be annotated
|
39
|
-
*/
|
40
|
-
export interface Annotated {
|
41
|
-
/**
|
42
|
-
* Add an annotation to the object
|
43
|
-
*
|
44
|
-
* @param key the key of the annotation
|
45
|
-
* @param value the value of the annotation
|
46
|
-
*/
|
47
|
-
addAnnotation(key: string, value: string): void;
|
48
|
-
/**
|
49
|
-
* Get the annotations on the object
|
50
|
-
*
|
51
|
-
* @returns the annotations on the object
|
52
|
-
*/
|
53
|
-
getAnnotations(): Annotations;
|
54
|
-
}
|
55
|
-
//# sourceMappingURL=annotations.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../../src/annotations/annotations.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,WAAW,WAAW;IAE1B;;;;OAIG;IACH,IAAI,IAAI,MAAM,EAAE,CAAA;IAEhB;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAE7B;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAC7B;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,WAAW,CAA2B;;IAK9C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAOxC,IAAI,IAAI,MAAM,EAAE;IAIhB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;CAG9B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IAExB;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAE/C;;;;OAIG;IACH,cAAc,IAAI,WAAW,CAAA;CAC9B"}
|
@@ -1,24 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* A store for policy annotations
|
3
|
-
*/
|
4
|
-
export class AnnotationStore {
|
5
|
-
constructor() {
|
6
|
-
this.annotations = {};
|
7
|
-
}
|
8
|
-
addAnnotation(key, value) {
|
9
|
-
if (!this.annotations[key]) {
|
10
|
-
this.annotations[key] = [];
|
11
|
-
}
|
12
|
-
this.annotations[key].push(value);
|
13
|
-
}
|
14
|
-
keys() {
|
15
|
-
return Object.keys(this.annotations);
|
16
|
-
}
|
17
|
-
hasKey(key) {
|
18
|
-
return this.annotations[key] !== undefined;
|
19
|
-
}
|
20
|
-
values(key) {
|
21
|
-
return this.annotations[key] || [];
|
22
|
-
}
|
23
|
-
}
|
24
|
-
//# sourceMappingURL=annotations.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../../src/annotations/annotations.ts"],"names":[],"mappings":"AA8BA;;GAEG;AACH,MAAM,OAAO,eAAe;IAE1B;QACE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,KAAa;QACtC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,IAAI;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;CACF"}
|