@cloud-copilot/iam-utils 0.1.4 → 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/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/principals.d.ts +21 -0
- package/dist/cjs/principals.d.ts.map +1 -1
- package/dist/cjs/principals.js +31 -0
- package/dist/cjs/principals.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/principals.d.ts +21 -0
- package/dist/esm/principals.d.ts.map +1 -1
- package/dist/esm/principals.js +28 -0
- package/dist/esm/principals.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { getResourceSegments, splitArnParts, type ArnParts } from './arn.js';
|
|
2
|
-
export { convertAssumedRoleArnToRoleArn, convertRoleArnToAssumedRoleArn, isAssumedRoleArn, isFederatedUserArn, isIamUserArn } from './principals.js';
|
|
2
|
+
export { convertAssumedRoleArnToRoleArn, convertRoleArnToAssumedRoleArn, isAssumedRoleArn, isFederatedUserArn, isIamRoleArn, isIamUserArn } from './principals.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACb,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACb,MAAM,iBAAiB,CAAA"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isIamUserArn = exports.isFederatedUserArn = exports.isAssumedRoleArn = exports.convertRoleArnToAssumedRoleArn = exports.convertAssumedRoleArnToRoleArn = exports.splitArnParts = exports.getResourceSegments = void 0;
|
|
3
|
+
exports.isIamUserArn = exports.isIamRoleArn = exports.isFederatedUserArn = exports.isAssumedRoleArn = exports.convertRoleArnToAssumedRoleArn = exports.convertAssumedRoleArnToRoleArn = exports.splitArnParts = exports.getResourceSegments = void 0;
|
|
4
4
|
var arn_js_1 = require("./arn.js");
|
|
5
5
|
Object.defineProperty(exports, "getResourceSegments", { enumerable: true, get: function () { return arn_js_1.getResourceSegments; } });
|
|
6
6
|
Object.defineProperty(exports, "splitArnParts", { enumerable: true, get: function () { return arn_js_1.splitArnParts; } });
|
|
@@ -9,5 +9,6 @@ Object.defineProperty(exports, "convertAssumedRoleArnToRoleArn", { enumerable: t
|
|
|
9
9
|
Object.defineProperty(exports, "convertRoleArnToAssumedRoleArn", { enumerable: true, get: function () { return principals_js_1.convertRoleArnToAssumedRoleArn; } });
|
|
10
10
|
Object.defineProperty(exports, "isAssumedRoleArn", { enumerable: true, get: function () { return principals_js_1.isAssumedRoleArn; } });
|
|
11
11
|
Object.defineProperty(exports, "isFederatedUserArn", { enumerable: true, get: function () { return principals_js_1.isFederatedUserArn; } });
|
|
12
|
+
Object.defineProperty(exports, "isIamRoleArn", { enumerable: true, get: function () { return principals_js_1.isIamRoleArn; } });
|
|
12
13
|
Object.defineProperty(exports, "isIamUserArn", { enumerable: true, get: function () { return principals_js_1.isIamUserArn; } });
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA4E;AAAnE,6GAAA,mBAAmB,OAAA;AAAE,uGAAA,aAAa,OAAA;AAC3C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA4E;AAAnE,6GAAA,mBAAmB,OAAA;AAAE,uGAAA,aAAa,OAAA;AAC3C,iDAOwB;AANtB,+HAAA,8BAA8B,OAAA;AAC9B,+HAAA,8BAA8B,OAAA;AAC9B,iHAAA,gBAAgB,OAAA;AAChB,mHAAA,kBAAkB,OAAA;AAClB,6GAAA,YAAY,OAAA;AACZ,6GAAA,YAAY,OAAA"}
|
package/dist/cjs/principals.d.ts
CHANGED
|
@@ -27,6 +27,13 @@ export declare function isAssumedRoleArn(principal: string): boolean;
|
|
|
27
27
|
* @returns true if the principal is an IAM user ARN, false otherwise
|
|
28
28
|
*/
|
|
29
29
|
export declare function isIamUserArn(principal: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Test if a principal string is an IAM Role ARN
|
|
32
|
+
*
|
|
33
|
+
* @param principal the principal string to test
|
|
34
|
+
* @returns true if the principal is an IAM role ARN, false otherwise
|
|
35
|
+
*/
|
|
36
|
+
export declare function isIamRoleArn(principal: string): boolean;
|
|
30
37
|
/**
|
|
31
38
|
* Test if a principal string is a federated user ARN
|
|
32
39
|
*
|
|
@@ -34,4 +41,18 @@ export declare function isIamUserArn(principal: string): boolean;
|
|
|
34
41
|
* @returns true if the principal is a federated user ARN, false otherwise
|
|
35
42
|
*/
|
|
36
43
|
export declare function isFederatedUserArn(principal: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Test if a principal string is an ARN
|
|
46
|
+
*
|
|
47
|
+
* @param principal the principal string to test
|
|
48
|
+
* @returns true if the principal is an ARN, false otherwise
|
|
49
|
+
*/
|
|
50
|
+
export declare function isArnPrincipal(principal: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Test if a principal string is a service principal
|
|
53
|
+
*
|
|
54
|
+
* @param principal the principal string to test
|
|
55
|
+
* @returns true if the principal is a service principal, false otherwise
|
|
56
|
+
*/
|
|
57
|
+
export declare function isServicePrincipal(principal: string): boolean;
|
|
37
58
|
//# sourceMappingURL=principals.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principals.d.ts","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAI7E;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAI3F;AAID;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D;AAID;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D"}
|
|
1
|
+
{"version":3,"file":"principals.d.ts","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAI7E;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAI3F;AAID;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D;AAID;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAID;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D"}
|
package/dist/cjs/principals.js
CHANGED
|
@@ -4,7 +4,10 @@ exports.convertAssumedRoleArnToRoleArn = convertAssumedRoleArnToRoleArn;
|
|
|
4
4
|
exports.convertRoleArnToAssumedRoleArn = convertRoleArnToAssumedRoleArn;
|
|
5
5
|
exports.isAssumedRoleArn = isAssumedRoleArn;
|
|
6
6
|
exports.isIamUserArn = isIamUserArn;
|
|
7
|
+
exports.isIamRoleArn = isIamRoleArn;
|
|
7
8
|
exports.isFederatedUserArn = isFederatedUserArn;
|
|
9
|
+
exports.isArnPrincipal = isArnPrincipal;
|
|
10
|
+
exports.isServicePrincipal = isServicePrincipal;
|
|
8
11
|
const arn_js_1 = require("./arn.js");
|
|
9
12
|
/**
|
|
10
13
|
* Transform an assumed role session ARN into a role ARN
|
|
@@ -49,6 +52,16 @@ const userArnRegex = /^arn:[a-zA-Z\-]+:iam::\d{12}:user\/.*$/;
|
|
|
49
52
|
function isIamUserArn(principal) {
|
|
50
53
|
return userArnRegex.test(principal);
|
|
51
54
|
}
|
|
55
|
+
const iamRoleArnRegex = /^arn:[a-zA-Z\-]+:iam::\d{12}:role\/.*$/;
|
|
56
|
+
/**
|
|
57
|
+
* Test if a principal string is an IAM Role ARN
|
|
58
|
+
*
|
|
59
|
+
* @param principal the principal string to test
|
|
60
|
+
* @returns true if the principal is an IAM role ARN, false otherwise
|
|
61
|
+
*/
|
|
62
|
+
function isIamRoleArn(principal) {
|
|
63
|
+
return iamRoleArnRegex.test(principal);
|
|
64
|
+
}
|
|
52
65
|
const federatedUserArnRegex = /^arn:[a-zA-Z\-]+:sts::\d{12}:federated-user\/.*$/;
|
|
53
66
|
/**
|
|
54
67
|
* Test if a principal string is a federated user ARN
|
|
@@ -59,4 +72,22 @@ const federatedUserArnRegex = /^arn:[a-zA-Z\-]+:sts::\d{12}:federated-user\/.*$/
|
|
|
59
72
|
function isFederatedUserArn(principal) {
|
|
60
73
|
return federatedUserArnRegex.test(principal);
|
|
61
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Test if a principal string is an ARN
|
|
77
|
+
*
|
|
78
|
+
* @param principal the principal string to test
|
|
79
|
+
* @returns true if the principal is an ARN, false otherwise
|
|
80
|
+
*/
|
|
81
|
+
function isArnPrincipal(principal) {
|
|
82
|
+
return principal.startsWith('arn:');
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Test if a principal string is a service principal
|
|
86
|
+
*
|
|
87
|
+
* @param principal the principal string to test
|
|
88
|
+
* @returns true if the principal is a service principal, false otherwise
|
|
89
|
+
*/
|
|
90
|
+
function isServicePrincipal(principal) {
|
|
91
|
+
return !isArnPrincipal(principal) && principal.endsWith('amazonaws.com');
|
|
92
|
+
}
|
|
62
93
|
//# sourceMappingURL=principals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principals.js","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":";;AAQA,wEAIC;AASD,wEAIC;AAUD,4CAEC;AAUD,oCAEC;AAUD,gDAEC;
|
|
1
|
+
{"version":3,"file":"principals.js","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":";;AAQA,wEAIC;AASD,wEAIC;AAUD,4CAEC;AAUD,oCAEC;AAUD,oCAEC;AAUD,gDAEC;AAQD,wCAEC;AAQD,gDAEC;AA7FD,qCAAwC;AAExC;;;;;GAKG;AACH,SAAgB,8BAA8B,CAAC,cAAsB;IACnE,MAAM,QAAQ,GAAG,IAAA,sBAAa,EAAC,cAAc,CAAC,CAAA;IAC9C,MAAM,eAAe,GAAG,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAChF,OAAO,OAAO,QAAQ,CAAC,SAAS,SAAS,QAAQ,CAAC,SAAS,SAAS,eAAe,EAAE,CAAA;AACvF,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,8BAA8B,CAAC,OAAe,EAAE,WAAmB;IACjF,MAAM,QAAQ,GAAG,IAAA,sBAAa,EAAC,OAAO,CAAC,CAAA;IACvC,MAAM,eAAe,GAAG,QAAQ,CAAC,YAAY,CAAA;IAC7C,OAAO,OAAO,QAAQ,CAAC,SAAS,SAAS,QAAQ,CAAC,SAAS,iBAAiB,eAAe,IAAI,WAAW,EAAE,CAAA;AAC9G,CAAC;AAED,MAAM,mBAAmB,GAAG,gDAAgD,CAAA;AAE5E;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,SAAiB;IAChD,OAAO,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,YAAY,GAAG,wCAAwC,CAAA;AAE7D;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,SAAiB;IAC5C,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,eAAe,GAAG,wCAAwC,CAAA;AAEhE;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,SAAiB;IAC5C,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,qBAAqB,GAAG,kDAAkD,CAAA;AAEhF;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,OAAO,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,SAAiB;IAC9C,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AACrC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,SAAiB;IAClD,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;AAC1E,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { getResourceSegments, splitArnParts, type ArnParts } from './arn.js';
|
|
2
|
-
export { convertAssumedRoleArnToRoleArn, convertRoleArnToAssumedRoleArn, isAssumedRoleArn, isFederatedUserArn, isIamUserArn } from './principals.js';
|
|
2
|
+
export { convertAssumedRoleArnToRoleArn, convertRoleArnToAssumedRoleArn, isAssumedRoleArn, isFederatedUserArn, isIamRoleArn, isIamUserArn } from './principals.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
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,EAAE,mBAAmB,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACb,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACb,MAAM,iBAAiB,CAAA"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { getResourceSegments, splitArnParts } from './arn.js';
|
|
2
|
-
export { convertAssumedRoleArnToRoleArn, convertRoleArnToAssumedRoleArn, isAssumedRoleArn, isFederatedUserArn, isIamUserArn } from './principals.js';
|
|
2
|
+
export { convertAssumedRoleArnToRoleArn, convertRoleArnToAssumedRoleArn, isAssumedRoleArn, isFederatedUserArn, isIamRoleArn, isIamUserArn } from './principals.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAiB,MAAM,UAAU,CAAA;AAC5E,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACb,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAiB,MAAM,UAAU,CAAA;AAC5E,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,EAC9B,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACb,MAAM,iBAAiB,CAAA"}
|
package/dist/esm/principals.d.ts
CHANGED
|
@@ -27,6 +27,13 @@ export declare function isAssumedRoleArn(principal: string): boolean;
|
|
|
27
27
|
* @returns true if the principal is an IAM user ARN, false otherwise
|
|
28
28
|
*/
|
|
29
29
|
export declare function isIamUserArn(principal: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Test if a principal string is an IAM Role ARN
|
|
32
|
+
*
|
|
33
|
+
* @param principal the principal string to test
|
|
34
|
+
* @returns true if the principal is an IAM role ARN, false otherwise
|
|
35
|
+
*/
|
|
36
|
+
export declare function isIamRoleArn(principal: string): boolean;
|
|
30
37
|
/**
|
|
31
38
|
* Test if a principal string is a federated user ARN
|
|
32
39
|
*
|
|
@@ -34,4 +41,18 @@ export declare function isIamUserArn(principal: string): boolean;
|
|
|
34
41
|
* @returns true if the principal is a federated user ARN, false otherwise
|
|
35
42
|
*/
|
|
36
43
|
export declare function isFederatedUserArn(principal: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Test if a principal string is an ARN
|
|
46
|
+
*
|
|
47
|
+
* @param principal the principal string to test
|
|
48
|
+
* @returns true if the principal is an ARN, false otherwise
|
|
49
|
+
*/
|
|
50
|
+
export declare function isArnPrincipal(principal: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Test if a principal string is a service principal
|
|
53
|
+
*
|
|
54
|
+
* @param principal the principal string to test
|
|
55
|
+
* @returns true if the principal is a service principal, false otherwise
|
|
56
|
+
*/
|
|
57
|
+
export declare function isServicePrincipal(principal: string): boolean;
|
|
37
58
|
//# sourceMappingURL=principals.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principals.d.ts","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAI7E;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAI3F;AAID;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D;AAID;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D"}
|
|
1
|
+
{"version":3,"file":"principals.d.ts","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAI7E;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAI3F;AAID;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D;AAID;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAID;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D"}
|
package/dist/esm/principals.js
CHANGED
|
@@ -42,6 +42,16 @@ const userArnRegex = /^arn:[a-zA-Z\-]+:iam::\d{12}:user\/.*$/;
|
|
|
42
42
|
export function isIamUserArn(principal) {
|
|
43
43
|
return userArnRegex.test(principal);
|
|
44
44
|
}
|
|
45
|
+
const iamRoleArnRegex = /^arn:[a-zA-Z\-]+:iam::\d{12}:role\/.*$/;
|
|
46
|
+
/**
|
|
47
|
+
* Test if a principal string is an IAM Role ARN
|
|
48
|
+
*
|
|
49
|
+
* @param principal the principal string to test
|
|
50
|
+
* @returns true if the principal is an IAM role ARN, false otherwise
|
|
51
|
+
*/
|
|
52
|
+
export function isIamRoleArn(principal) {
|
|
53
|
+
return iamRoleArnRegex.test(principal);
|
|
54
|
+
}
|
|
45
55
|
const federatedUserArnRegex = /^arn:[a-zA-Z\-]+:sts::\d{12}:federated-user\/.*$/;
|
|
46
56
|
/**
|
|
47
57
|
* Test if a principal string is a federated user ARN
|
|
@@ -52,4 +62,22 @@ const federatedUserArnRegex = /^arn:[a-zA-Z\-]+:sts::\d{12}:federated-user\/.*$/
|
|
|
52
62
|
export function isFederatedUserArn(principal) {
|
|
53
63
|
return federatedUserArnRegex.test(principal);
|
|
54
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Test if a principal string is an ARN
|
|
67
|
+
*
|
|
68
|
+
* @param principal the principal string to test
|
|
69
|
+
* @returns true if the principal is an ARN, false otherwise
|
|
70
|
+
*/
|
|
71
|
+
export function isArnPrincipal(principal) {
|
|
72
|
+
return principal.startsWith('arn:');
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Test if a principal string is a service principal
|
|
76
|
+
*
|
|
77
|
+
* @param principal the principal string to test
|
|
78
|
+
* @returns true if the principal is a service principal, false otherwise
|
|
79
|
+
*/
|
|
80
|
+
export function isServicePrincipal(principal) {
|
|
81
|
+
return !isArnPrincipal(principal) && principal.endsWith('amazonaws.com');
|
|
82
|
+
}
|
|
55
83
|
//# sourceMappingURL=principals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principals.js","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,cAAsB;IACnE,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC,CAAA;IAC9C,MAAM,eAAe,GAAG,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAChF,OAAO,OAAO,QAAQ,CAAC,SAAS,SAAS,QAAQ,CAAC,SAAS,SAAS,eAAe,EAAE,CAAA;AACvF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAe,EAAE,WAAmB;IACjF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,eAAe,GAAG,QAAQ,CAAC,YAAY,CAAA;IAC7C,OAAO,OAAO,QAAQ,CAAC,SAAS,SAAS,QAAQ,CAAC,SAAS,iBAAiB,eAAe,IAAI,WAAW,EAAE,CAAA;AAC9G,CAAC;AAED,MAAM,mBAAmB,GAAG,gDAAgD,CAAA;AAE5E;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,YAAY,GAAG,wCAAwC,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,qBAAqB,GAAG,kDAAkD,CAAA;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"principals.js","sourceRoot":"","sources":["../../src/principals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,cAAsB;IACnE,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC,CAAA;IAC9C,MAAM,eAAe,GAAG,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAChF,OAAO,OAAO,QAAQ,CAAC,SAAS,SAAS,QAAQ,CAAC,SAAS,SAAS,eAAe,EAAE,CAAA;AACvF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAe,EAAE,WAAmB;IACjF,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,eAAe,GAAG,QAAQ,CAAC,YAAY,CAAA;IAC7C,OAAO,OAAO,QAAQ,CAAC,SAAS,SAAS,QAAQ,CAAC,SAAS,iBAAiB,eAAe,IAAI,WAAW,EAAE,CAAA;AAC9G,CAAC;AAED,MAAM,mBAAmB,GAAG,gDAAgD,CAAA;AAE5E;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,YAAY,GAAG,wCAAwC,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,eAAe,GAAG,wCAAwC,CAAA;AAEhE;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,qBAAqB,GAAG,kDAAkD,CAAA;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;AAC1E,CAAC"}
|