@aws-sdk/util-arn-parser 3.32.0 → 3.37.0
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/CHANGELOG.md +38 -0
- package/dist-cjs/index.js +27 -0
- package/dist-es/index.js +24 -0
- package/{dist/types → dist-types}/index.d.ts +0 -0
- package/{dist/types → dist-types}/ts3.4/index.d.ts +3 -9
- package/package.json +12 -8
- package/dist/cjs/index.js +0 -39
- package/dist/es/index.js +0 -36
- package/src/index.ts +0 -50
- package/tsconfig.cjs.json +0 -10
- package/tsconfig.es.json +0 -10
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,44 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.37.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.36.1...v3.37.0) (2021-10-15)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @aws-sdk/util-arn-parser
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [3.36.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.35.0...v3.36.0) (2021-10-08)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* publish files in dist-* only ([#2873](https://github.com/aws/aws-sdk-js-v3/issues/2873)) ([53b4243](https://github.com/aws/aws-sdk-js-v3/commit/53b4243b066f25ff2412d5f0dea1036054b2df32))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# [3.35.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.34.0...v3.35.0) (2021-10-04)
|
|
26
|
+
|
|
27
|
+
**Note:** Version bump only for package @aws-sdk/util-arn-parser
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# [3.34.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.33.0...v3.34.0) (2021-09-24)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### Features
|
|
37
|
+
|
|
38
|
+
* **non-clients:** remove comments from transpiled JS files ([#2813](https://github.com/aws/aws-sdk-js-v3/issues/2813)) ([e6fc7f3](https://github.com/aws/aws-sdk-js-v3/commit/e6fc7f3e0fa74785590ac19e7ed143c916bb9b6e))
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
6
44
|
# [3.32.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.31.0...v3.32.0) (2021-09-17)
|
|
7
45
|
|
|
8
46
|
**Note:** Version bump only for package @aws-sdk/util-arn-parser
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.build = exports.parse = exports.validate = void 0;
|
|
4
|
+
const validate = (str) => typeof str === "string" && str.indexOf("arn:") === 0 && str.split(":").length >= 6;
|
|
5
|
+
exports.validate = validate;
|
|
6
|
+
const parse = (arn) => {
|
|
7
|
+
const segments = arn.split(":");
|
|
8
|
+
if (segments.length < 6 || segments[0] !== "arn")
|
|
9
|
+
throw new Error("Malformed ARN");
|
|
10
|
+
const [, partition, service, region, accountId, ...resource] = segments;
|
|
11
|
+
return {
|
|
12
|
+
partition,
|
|
13
|
+
service,
|
|
14
|
+
region,
|
|
15
|
+
accountId,
|
|
16
|
+
resource: resource.join(":"),
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
exports.parse = parse;
|
|
20
|
+
const build = (arnObject) => {
|
|
21
|
+
const { partition = "aws", service, region, accountId, resource } = arnObject;
|
|
22
|
+
if ([service, region, accountId, resource].some((segment) => typeof segment !== "string")) {
|
|
23
|
+
throw new Error("Input ARN object is invalid");
|
|
24
|
+
}
|
|
25
|
+
return `arn:${partition}:${service}:${region}:${accountId}:${resource}`;
|
|
26
|
+
};
|
|
27
|
+
exports.build = build;
|
package/dist-es/index.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { __read } from "tslib";
|
|
2
|
+
export var validate = function (str) {
|
|
3
|
+
return typeof str === "string" && str.indexOf("arn:") === 0 && str.split(":").length >= 6;
|
|
4
|
+
};
|
|
5
|
+
export var parse = function (arn) {
|
|
6
|
+
var segments = arn.split(":");
|
|
7
|
+
if (segments.length < 6 || segments[0] !== "arn")
|
|
8
|
+
throw new Error("Malformed ARN");
|
|
9
|
+
var _a = __read(segments), partition = _a[1], service = _a[2], region = _a[3], accountId = _a[4], resource = _a.slice(5);
|
|
10
|
+
return {
|
|
11
|
+
partition: partition,
|
|
12
|
+
service: service,
|
|
13
|
+
region: region,
|
|
14
|
+
accountId: accountId,
|
|
15
|
+
resource: resource.join(":"),
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export var build = function (arnObject) {
|
|
19
|
+
var _a = arnObject.partition, partition = _a === void 0 ? "aws" : _a, service = arnObject.service, region = arnObject.region, accountId = arnObject.accountId, resource = arnObject.resource;
|
|
20
|
+
if ([service, region, accountId, resource].some(function (segment) { return typeof segment !== "string"; })) {
|
|
21
|
+
throw new Error("Input ARN object is invalid");
|
|
22
|
+
}
|
|
23
|
+
return "arn:" + partition + ":" + service + ":" + region + ":" + accountId + ":" + resource;
|
|
24
|
+
};
|
|
File without changes
|
|
@@ -5,19 +5,13 @@ export interface ARN {
|
|
|
5
5
|
accountId: string;
|
|
6
6
|
resource: string;
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
* Validate whether a string is an ARN.
|
|
10
|
-
*/
|
|
8
|
+
|
|
11
9
|
export declare const validate: (str: any) => boolean;
|
|
12
|
-
|
|
13
|
-
* Parse an ARN string into structure with partition, service, region, accountId and resource values
|
|
14
|
-
*/
|
|
10
|
+
|
|
15
11
|
export declare const parse: (arn: string) => ARN;
|
|
16
12
|
declare type buildOptions = Pick<ARN, Exclude<keyof ARN, "partition">> & {
|
|
17
13
|
partition?: string;
|
|
18
14
|
};
|
|
19
|
-
|
|
20
|
-
* Build an ARN with service, partition, region, accountId, and resources strings
|
|
21
|
-
*/
|
|
15
|
+
|
|
22
16
|
export declare const build: (arnObject: buildOptions) => string;
|
|
23
17
|
export {};
|
package/package.json
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/util-arn-parser",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.37.0",
|
|
4
4
|
"description": "A parser to Amazon Resource Names",
|
|
5
|
-
"main": "./dist
|
|
6
|
-
"module": "./dist
|
|
5
|
+
"main": "./dist-cjs/index.js",
|
|
6
|
+
"module": "./dist-es/index.js",
|
|
7
7
|
"scripts": {
|
|
8
|
+
"build": "yarn build:cjs && yarn build:es && yarn build:types",
|
|
8
9
|
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
9
10
|
"build:es": "tsc -p tsconfig.es.json",
|
|
10
|
-
"build": "
|
|
11
|
-
"downlevel-dts": "downlevel-dts dist
|
|
11
|
+
"build:types": "tsc -p tsconfig.types.json",
|
|
12
|
+
"downlevel-dts": "downlevel-dts dist-types dist-types/ts3.4",
|
|
12
13
|
"test": "jest"
|
|
13
14
|
},
|
|
14
15
|
"author": {
|
|
@@ -25,17 +26,20 @@
|
|
|
25
26
|
"jest": "^26.1.0",
|
|
26
27
|
"typescript": "~4.3.5"
|
|
27
28
|
},
|
|
28
|
-
"types": "./dist
|
|
29
|
+
"types": "./dist-types/index.d.ts",
|
|
29
30
|
"engines": {
|
|
30
31
|
"node": ">= 10.0.0"
|
|
31
32
|
},
|
|
32
33
|
"typesVersions": {
|
|
33
34
|
"<4.0": {
|
|
34
|
-
"dist
|
|
35
|
-
"dist
|
|
35
|
+
"dist-types/*": [
|
|
36
|
+
"dist-types/ts3.4/*"
|
|
36
37
|
]
|
|
37
38
|
}
|
|
38
39
|
},
|
|
40
|
+
"files": [
|
|
41
|
+
"dist-*"
|
|
42
|
+
],
|
|
39
43
|
"homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages/util-arn-parser",
|
|
40
44
|
"repository": {
|
|
41
45
|
"type": "git",
|
package/dist/cjs/index.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.build = exports.parse = exports.validate = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Validate whether a string is an ARN.
|
|
6
|
-
*/
|
|
7
|
-
const validate = (str) => typeof str === "string" && str.indexOf("arn:") === 0 && str.split(":").length >= 6;
|
|
8
|
-
exports.validate = validate;
|
|
9
|
-
/**
|
|
10
|
-
* Parse an ARN string into structure with partition, service, region, accountId and resource values
|
|
11
|
-
*/
|
|
12
|
-
const parse = (arn) => {
|
|
13
|
-
const segments = arn.split(":");
|
|
14
|
-
if (segments.length < 6 || segments[0] !== "arn")
|
|
15
|
-
throw new Error("Malformed ARN");
|
|
16
|
-
const [,
|
|
17
|
-
//Skip "arn" literal
|
|
18
|
-
partition, service, region, accountId, ...resource] = segments;
|
|
19
|
-
return {
|
|
20
|
-
partition,
|
|
21
|
-
service,
|
|
22
|
-
region,
|
|
23
|
-
accountId,
|
|
24
|
-
resource: resource.join(":"),
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
exports.parse = parse;
|
|
28
|
-
/**
|
|
29
|
-
* Build an ARN with service, partition, region, accountId, and resources strings
|
|
30
|
-
*/
|
|
31
|
-
const build = (arnObject) => {
|
|
32
|
-
const { partition = "aws", service, region, accountId, resource } = arnObject;
|
|
33
|
-
if ([service, region, accountId, resource].some((segment) => typeof segment !== "string")) {
|
|
34
|
-
throw new Error("Input ARN object is invalid");
|
|
35
|
-
}
|
|
36
|
-
return `arn:${partition}:${service}:${region}:${accountId}:${resource}`;
|
|
37
|
-
};
|
|
38
|
-
exports.build = build;
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0E7O0dBRUc7QUFDSSxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVEsRUFBVyxFQUFFLENBQzVDLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7QUFEeEUsUUFBQSxRQUFRLFlBQ2dFO0FBRXJGOztHQUVHO0FBQ0ksTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFXLEVBQU8sRUFBRTtJQUN4QyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUs7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25GLE1BQU0sQ0FDSixBQURLO0lBRUwsb0JBQW9CO0lBQ3BCLFNBQVMsRUFDVCxPQUFPLEVBQ1AsTUFBTSxFQUNOLFNBQVMsRUFDVCxHQUFHLFFBQVEsQ0FDWixHQUFHLFFBQVEsQ0FBQztJQUViLE9BQU87UUFDTCxTQUFTO1FBQ1QsT0FBTztRQUNQLE1BQU07UUFDTixTQUFTO1FBQ1QsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0tBQzdCLENBQUM7QUFDSixDQUFDLENBQUM7QUFwQlcsUUFBQSxLQUFLLFNBb0JoQjtBQUlGOztHQUVHO0FBQ0ksTUFBTSxLQUFLLEdBQUcsQ0FBQyxTQUF1QixFQUFVLEVBQUU7SUFDdkQsTUFBTSxFQUFFLFNBQVMsR0FBRyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBQzlFLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxFQUFFO1FBQ3pGLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztLQUNoRDtJQUNELE9BQU8sT0FBTyxTQUFTLElBQUksT0FBTyxJQUFJLE1BQU0sSUFBSSxTQUFTLElBQUksUUFBUSxFQUFFLENBQUM7QUFDMUUsQ0FBQyxDQUFDO0FBTlcsUUFBQSxLQUFLLFNBTWhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBUk4ge1xuICBwYXJ0aXRpb246IHN0cmluZztcbiAgc2VydmljZTogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIHJlc291cmNlOiBzdHJpbmc7XG59XG4vKipcbiAqIFZhbGlkYXRlIHdoZXRoZXIgYSBzdHJpbmcgaXMgYW4gQVJOLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGUgPSAoc3RyOiBhbnkpOiBib29sZWFuID0+XG4gIHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIgJiYgc3RyLmluZGV4T2YoXCJhcm46XCIpID09PSAwICYmIHN0ci5zcGxpdChcIjpcIikubGVuZ3RoID49IDY7XG5cbi8qKlxuICogUGFyc2UgYW4gQVJOIHN0cmluZyBpbnRvIHN0cnVjdHVyZSB3aXRoIHBhcnRpdGlvbiwgc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQgYW5kIHJlc291cmNlIHZhbHVlc1xuICovXG5leHBvcnQgY29uc3QgcGFyc2UgPSAoYXJuOiBzdHJpbmcpOiBBUk4gPT4ge1xuICBjb25zdCBzZWdtZW50cyA9IGFybi5zcGxpdChcIjpcIik7XG4gIGlmIChzZWdtZW50cy5sZW5ndGggPCA2IHx8IHNlZ21lbnRzWzBdICE9PSBcImFyblwiKSB0aHJvdyBuZXcgRXJyb3IoXCJNYWxmb3JtZWQgQVJOXCIpO1xuICBjb25zdCBbXG4gICAgLFxuICAgIC8vU2tpcCBcImFyblwiIGxpdGVyYWxcbiAgICBwYXJ0aXRpb24sXG4gICAgc2VydmljZSxcbiAgICByZWdpb24sXG4gICAgYWNjb3VudElkLFxuICAgIC4uLnJlc291cmNlXG4gIF0gPSBzZWdtZW50cztcblxuICByZXR1cm4ge1xuICAgIHBhcnRpdGlvbixcbiAgICBzZXJ2aWNlLFxuICAgIHJlZ2lvbixcbiAgICBhY2NvdW50SWQsXG4gICAgcmVzb3VyY2U6IHJlc291cmNlLmpvaW4oXCI6XCIpLFxuICB9O1xufTtcblxudHlwZSBidWlsZE9wdGlvbnMgPSBPbWl0PEFSTiwgXCJwYXJ0aXRpb25cIj4gJiB7IHBhcnRpdGlvbj86IHN0cmluZyB9O1xuXG4vKipcbiAqIEJ1aWxkIGFuIEFSTiB3aXRoIHNlcnZpY2UsIHBhcnRpdGlvbiwgcmVnaW9uLCBhY2NvdW50SWQsIGFuZCByZXNvdXJjZXMgc3RyaW5nc1xuICovXG5leHBvcnQgY29uc3QgYnVpbGQgPSAoYXJuT2JqZWN0OiBidWlsZE9wdGlvbnMpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IHBhcnRpdGlvbiA9IFwiYXdzXCIsIHNlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCByZXNvdXJjZSB9ID0gYXJuT2JqZWN0O1xuICBpZiAoW3NlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCByZXNvdXJjZV0uc29tZSgoc2VnbWVudCkgPT4gdHlwZW9mIHNlZ21lbnQgIT09IFwic3RyaW5nXCIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSW5wdXQgQVJOIG9iamVjdCBpcyBpbnZhbGlkXCIpO1xuICB9XG4gIHJldHVybiBgYXJuOiR7cGFydGl0aW9ufToke3NlcnZpY2V9OiR7cmVnaW9ufToke2FjY291bnRJZH06JHtyZXNvdXJjZX1gO1xufTtcbiJdfQ==
|
package/dist/es/index.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { __read } from "tslib";
|
|
2
|
-
/**
|
|
3
|
-
* Validate whether a string is an ARN.
|
|
4
|
-
*/
|
|
5
|
-
export var validate = function (str) {
|
|
6
|
-
return typeof str === "string" && str.indexOf("arn:") === 0 && str.split(":").length >= 6;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Parse an ARN string into structure with partition, service, region, accountId and resource values
|
|
10
|
-
*/
|
|
11
|
-
export var parse = function (arn) {
|
|
12
|
-
var segments = arn.split(":");
|
|
13
|
-
if (segments.length < 6 || segments[0] !== "arn")
|
|
14
|
-
throw new Error("Malformed ARN");
|
|
15
|
-
var _a = __read(segments),
|
|
16
|
-
//Skip "arn" literal
|
|
17
|
-
partition = _a[1], service = _a[2], region = _a[3], accountId = _a[4], resource = _a.slice(5);
|
|
18
|
-
return {
|
|
19
|
-
partition: partition,
|
|
20
|
-
service: service,
|
|
21
|
-
region: region,
|
|
22
|
-
accountId: accountId,
|
|
23
|
-
resource: resource.join(":"),
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Build an ARN with service, partition, region, accountId, and resources strings
|
|
28
|
-
*/
|
|
29
|
-
export var build = function (arnObject) {
|
|
30
|
-
var _a = arnObject.partition, partition = _a === void 0 ? "aws" : _a, service = arnObject.service, region = arnObject.region, accountId = arnObject.accountId, resource = arnObject.resource;
|
|
31
|
-
if ([service, region, accountId, resource].some(function (segment) { return typeof segment !== "string"; })) {
|
|
32
|
-
throw new Error("Input ARN object is invalid");
|
|
33
|
-
}
|
|
34
|
-
return "arn:" + partition + ":" + service + ":" + region + ":" + accountId + ":" + resource;
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQU9BOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sUUFBUSxHQUFHLFVBQUMsR0FBUTtJQUMvQixPQUFBLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDO0FBQWxGLENBQWtGLENBQUM7QUFFckY7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxLQUFLLEdBQUcsVUFBQyxHQUFXO0lBQy9CLElBQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0UsSUFBQSxLQUFBLE9BUUYsUUFBUSxDQUFBO0lBTlYsb0JBQW9CO0lBQ3BCLFNBQVMsUUFBQSxFQUNULE9BQU8sUUFBQSxFQUNQLE1BQU0sUUFBQSxFQUNOLFNBQVMsUUFBQSxFQUNOLFFBQVEsY0FDRCxDQUFDO0lBRWIsT0FBTztRQUNMLFNBQVMsV0FBQTtRQUNULE9BQU8sU0FBQTtRQUNQLE1BQU0sUUFBQTtRQUNOLFNBQVMsV0FBQTtRQUNULFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztLQUM3QixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBSUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxLQUFLLEdBQUcsVUFBQyxTQUF1QjtJQUNuQyxJQUFBLEtBQTRELFNBQVMsVUFBcEQsRUFBakIsU0FBUyxtQkFBRyxLQUFLLEtBQUEsRUFBRSxPQUFPLEdBQWtDLFNBQVMsUUFBM0MsRUFBRSxNQUFNLEdBQTBCLFNBQVMsT0FBbkMsRUFBRSxTQUFTLEdBQWUsU0FBUyxVQUF4QixFQUFFLFFBQVEsR0FBSyxTQUFTLFNBQWQsQ0FBZTtJQUM5RSxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsT0FBTyxJQUFLLE9BQUEsT0FBTyxPQUFPLEtBQUssUUFBUSxFQUEzQixDQUEyQixDQUFDLEVBQUU7UUFDekYsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ2hEO0lBQ0QsT0FBTyxTQUFPLFNBQVMsU0FBSSxPQUFPLFNBQUksTUFBTSxTQUFJLFNBQVMsU0FBSSxRQUFVLENBQUM7QUFDMUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBUk4ge1xuICBwYXJ0aXRpb246IHN0cmluZztcbiAgc2VydmljZTogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIHJlc291cmNlOiBzdHJpbmc7XG59XG4vKipcbiAqIFZhbGlkYXRlIHdoZXRoZXIgYSBzdHJpbmcgaXMgYW4gQVJOLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGUgPSAoc3RyOiBhbnkpOiBib29sZWFuID0+XG4gIHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIgJiYgc3RyLmluZGV4T2YoXCJhcm46XCIpID09PSAwICYmIHN0ci5zcGxpdChcIjpcIikubGVuZ3RoID49IDY7XG5cbi8qKlxuICogUGFyc2UgYW4gQVJOIHN0cmluZyBpbnRvIHN0cnVjdHVyZSB3aXRoIHBhcnRpdGlvbiwgc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQgYW5kIHJlc291cmNlIHZhbHVlc1xuICovXG5leHBvcnQgY29uc3QgcGFyc2UgPSAoYXJuOiBzdHJpbmcpOiBBUk4gPT4ge1xuICBjb25zdCBzZWdtZW50cyA9IGFybi5zcGxpdChcIjpcIik7XG4gIGlmIChzZWdtZW50cy5sZW5ndGggPCA2IHx8IHNlZ21lbnRzWzBdICE9PSBcImFyblwiKSB0aHJvdyBuZXcgRXJyb3IoXCJNYWxmb3JtZWQgQVJOXCIpO1xuICBjb25zdCBbXG4gICAgLFxuICAgIC8vU2tpcCBcImFyblwiIGxpdGVyYWxcbiAgICBwYXJ0aXRpb24sXG4gICAgc2VydmljZSxcbiAgICByZWdpb24sXG4gICAgYWNjb3VudElkLFxuICAgIC4uLnJlc291cmNlXG4gIF0gPSBzZWdtZW50cztcblxuICByZXR1cm4ge1xuICAgIHBhcnRpdGlvbixcbiAgICBzZXJ2aWNlLFxuICAgIHJlZ2lvbixcbiAgICBhY2NvdW50SWQsXG4gICAgcmVzb3VyY2U6IHJlc291cmNlLmpvaW4oXCI6XCIpLFxuICB9O1xufTtcblxudHlwZSBidWlsZE9wdGlvbnMgPSBPbWl0PEFSTiwgXCJwYXJ0aXRpb25cIj4gJiB7IHBhcnRpdGlvbj86IHN0cmluZyB9O1xuXG4vKipcbiAqIEJ1aWxkIGFuIEFSTiB3aXRoIHNlcnZpY2UsIHBhcnRpdGlvbiwgcmVnaW9uLCBhY2NvdW50SWQsIGFuZCByZXNvdXJjZXMgc3RyaW5nc1xuICovXG5leHBvcnQgY29uc3QgYnVpbGQgPSAoYXJuT2JqZWN0OiBidWlsZE9wdGlvbnMpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IHBhcnRpdGlvbiA9IFwiYXdzXCIsIHNlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCByZXNvdXJjZSB9ID0gYXJuT2JqZWN0O1xuICBpZiAoW3NlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCByZXNvdXJjZV0uc29tZSgoc2VnbWVudCkgPT4gdHlwZW9mIHNlZ21lbnQgIT09IFwic3RyaW5nXCIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSW5wdXQgQVJOIG9iamVjdCBpcyBpbnZhbGlkXCIpO1xuICB9XG4gIHJldHVybiBgYXJuOiR7cGFydGl0aW9ufToke3NlcnZpY2V9OiR7cmVnaW9ufToke2FjY291bnRJZH06JHtyZXNvdXJjZX1gO1xufTtcbiJdfQ==
|
package/src/index.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
export interface ARN {
|
|
2
|
-
partition: string;
|
|
3
|
-
service: string;
|
|
4
|
-
region: string;
|
|
5
|
-
accountId: string;
|
|
6
|
-
resource: string;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Validate whether a string is an ARN.
|
|
10
|
-
*/
|
|
11
|
-
export const validate = (str: any): boolean =>
|
|
12
|
-
typeof str === "string" && str.indexOf("arn:") === 0 && str.split(":").length >= 6;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Parse an ARN string into structure with partition, service, region, accountId and resource values
|
|
16
|
-
*/
|
|
17
|
-
export const parse = (arn: string): ARN => {
|
|
18
|
-
const segments = arn.split(":");
|
|
19
|
-
if (segments.length < 6 || segments[0] !== "arn") throw new Error("Malformed ARN");
|
|
20
|
-
const [
|
|
21
|
-
,
|
|
22
|
-
//Skip "arn" literal
|
|
23
|
-
partition,
|
|
24
|
-
service,
|
|
25
|
-
region,
|
|
26
|
-
accountId,
|
|
27
|
-
...resource
|
|
28
|
-
] = segments;
|
|
29
|
-
|
|
30
|
-
return {
|
|
31
|
-
partition,
|
|
32
|
-
service,
|
|
33
|
-
region,
|
|
34
|
-
accountId,
|
|
35
|
-
resource: resource.join(":"),
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
type buildOptions = Omit<ARN, "partition"> & { partition?: string };
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Build an ARN with service, partition, region, accountId, and resources strings
|
|
43
|
-
*/
|
|
44
|
-
export const build = (arnObject: buildOptions): string => {
|
|
45
|
-
const { partition = "aws", service, region, accountId, resource } = arnObject;
|
|
46
|
-
if ([service, region, accountId, resource].some((segment) => typeof segment !== "string")) {
|
|
47
|
-
throw new Error("Input ARN object is invalid");
|
|
48
|
-
}
|
|
49
|
-
return `arn:${partition}:${service}:${region}:${accountId}:${resource}`;
|
|
50
|
-
};
|
package/tsconfig.cjs.json
DELETED