@cloud-copilot/iam-collect 0.1.1
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/LICENSE.txt +661 -0
- package/README.md +23 -0
- package/dist/cjs/cli.d.ts +3 -0
- package/dist/cjs/cli.d.ts.map +1 -0
- package/dist/cjs/cli.js +23 -0
- package/dist/cjs/cli.js.map +1 -0
- package/dist/cjs/cli2.d.ts +63 -0
- package/dist/cjs/cli2.d.ts.map +1 -0
- package/dist/cjs/cli2.js +41 -0
- package/dist/cjs/cli2.js.map +1 -0
- package/dist/cjs/cli3.d.ts +63 -0
- package/dist/cjs/cli3.d.ts.map +1 -0
- package/dist/cjs/cli3.js +41 -0
- package/dist/cjs/cli3.js.map +1 -0
- package/dist/cjs/cliUtils.d.ts +13 -0
- package/dist/cjs/cliUtils.d.ts.map +1 -0
- package/dist/cjs/cliUtils.js +43 -0
- package/dist/cjs/cliUtils.js.map +1 -0
- package/dist/cjs/config/config.d.ts +74 -0
- package/dist/cjs/config/config.d.ts.map +1 -0
- package/dist/cjs/config/config.js +121 -0
- package/dist/cjs/config/config.js.map +1 -0
- package/dist/cjs/config/createConfigFile.d.ts +5 -0
- package/dist/cjs/config/createConfigFile.d.ts.map +1 -0
- package/dist/cjs/config/createConfigFile.js +17 -0
- package/dist/cjs/config/createConfigFile.js.map +1 -0
- package/dist/cjs/config/defaultConfig.d.ts +14 -0
- package/dist/cjs/config/defaultConfig.d.ts.map +1 -0
- package/dist/cjs/config/defaultConfig.js +83 -0
- package/dist/cjs/config/defaultConfig.js.map +1 -0
- package/dist/cjs/config/packageVersion.d.ts +12 -0
- package/dist/cjs/config/packageVersion.d.ts.map +1 -0
- package/dist/cjs/config/packageVersion.js +41 -0
- package/dist/cjs/config/packageVersion.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/showHelp.d.ts +2 -0
- package/dist/cjs/showHelp.d.ts.map +1 -0
- package/dist/cjs/showHelp.js +33 -0
- package/dist/cjs/showHelp.js.map +1 -0
- package/dist/cjs/utils.d.ts +8 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +21 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/cli.d.ts +3 -0
- package/dist/esm/cli.d.ts.map +1 -0
- package/dist/esm/cli.js +21 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/cliUtils.d.ts +13 -0
- package/dist/esm/cliUtils.d.ts.map +1 -0
- package/dist/esm/cliUtils.js +40 -0
- package/dist/esm/cliUtils.js.map +1 -0
- package/dist/esm/config/config.d.ts +74 -0
- package/dist/esm/config/config.d.ts.map +1 -0
- package/dist/esm/config/config.js +116 -0
- package/dist/esm/config/config.js.map +1 -0
- package/dist/esm/config/createConfigFile.d.ts +5 -0
- package/dist/esm/config/createConfigFile.d.ts.map +1 -0
- package/dist/esm/config/createConfigFile.js +14 -0
- package/dist/esm/config/createConfigFile.js.map +1 -0
- package/dist/esm/config/defaultConfig.d.ts +14 -0
- package/dist/esm/config/defaultConfig.d.ts.map +1 -0
- package/dist/esm/config/defaultConfig.js +77 -0
- package/dist/esm/config/defaultConfig.js.map +1 -0
- package/dist/esm/config/packageVersion.d.ts +12 -0
- package/dist/esm/config/packageVersion.d.ts.map +1 -0
- package/dist/esm/config/packageVersion.js +37 -0
- package/dist/esm/config/packageVersion.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/utils.d.ts +8 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +18 -0
- package/dist/esm/utils.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { existsSync } from 'fs';
|
|
2
|
+
import { resolve } from 'path';
|
|
3
|
+
import { iamDownloadVersion } from './packageVersion.js';
|
|
4
|
+
export const defaultConfigFileName = 'iam-download.jsonc';
|
|
5
|
+
/**
|
|
6
|
+
* Get the full path to the config file.
|
|
7
|
+
*
|
|
8
|
+
* @returns The full path to the config file.
|
|
9
|
+
*/
|
|
10
|
+
export function fullDefaultConfigPath() {
|
|
11
|
+
return resolve(process.cwd(), defaultConfigFileName);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @returns Whether the default config file exists
|
|
16
|
+
*/
|
|
17
|
+
export function defaultConfigExists() {
|
|
18
|
+
return existsSync(fullDefaultConfigPath());
|
|
19
|
+
}
|
|
20
|
+
const defaultConfig = `
|
|
21
|
+
{
|
|
22
|
+
// The name of the configuration, used if you need to have multiple configurations.
|
|
23
|
+
"name": "default config",
|
|
24
|
+
"iamDownloadVersion": "0.0.0",
|
|
25
|
+
|
|
26
|
+
// Default storage is on the file system.
|
|
27
|
+
"storage": {
|
|
28
|
+
"type": "file",
|
|
29
|
+
//If this starts with a '.', it is relative to the config file, otherwise it is an absolute path.
|
|
30
|
+
"rootPath": "./"
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/*
|
|
34
|
+
You can also use S3 storage instead of the default file storage.
|
|
35
|
+
"storage": {
|
|
36
|
+
"type": "s3",
|
|
37
|
+
"bucket": "my-bucket",
|
|
38
|
+
"prefix": "iam-data/",
|
|
39
|
+
"region": "us-west-2",
|
|
40
|
+
"endpoint": "https://s3.us-west-2.amazonaws.com", // Optional endpoint if using a specific VPC endpoint
|
|
41
|
+
//Optional auth configuration, see https://github.com/cloud-copilot/iam-download/docs/Authentication.md
|
|
42
|
+
"auth": {
|
|
43
|
+
//The type of authentication to use
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
// Optional block, by default all regions returned by ec2:DescribeRegions with 'opt-in-not-required' or 'opted-in' are included
|
|
49
|
+
// If regions are specified in the CLI, this is ignored
|
|
50
|
+
// "regions": {
|
|
51
|
+
//Optional regions to include, if empty all regions are included
|
|
52
|
+
// "included": ["us-east-1", "us-west-1"],
|
|
53
|
+
//Optional regions to exclude, if empty no regions are excluded. You can use it with included, but that wouldn't make much sense.
|
|
54
|
+
// "excluded": ["us-west-2"]
|
|
55
|
+
// },
|
|
56
|
+
|
|
57
|
+
// Optional block, by default all supported services are included
|
|
58
|
+
// If services are specified in the CLI, this is ignored
|
|
59
|
+
// "services": {
|
|
60
|
+
//Optional services to include, if empty all supported services are included
|
|
61
|
+
// "included": ["s3", "ec2"],
|
|
62
|
+
//Optional services to exclude, if empty no services are excluded. You can use it with included, but that wouldn't make much sense.
|
|
63
|
+
// "excluded": ["iam"]
|
|
64
|
+
// },
|
|
65
|
+
|
|
66
|
+
// Optional block for authentication, see , see https://github.com/cloud-copilot/iam-download/docs/Authentication.md
|
|
67
|
+
// "auth": {
|
|
68
|
+
// //The type of authentication to use
|
|
69
|
+
// }
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
}
|
|
73
|
+
`;
|
|
74
|
+
export function getDefaultConfig() {
|
|
75
|
+
return defaultConfig.replace('0.0.0', iamDownloadVersion());
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=defaultConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultConfig.js","sourceRoot":"","sources":["../../../src/config/defaultConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAExD,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAAoB,CAAA;AAEzD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAA;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDrB,CAAA;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAA;AAC7D,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a data file from the data directory in CommonJS
|
|
3
|
+
*
|
|
4
|
+
* @param file the path to the file to retrieve data for.
|
|
5
|
+
* @returns the data from the file
|
|
6
|
+
*/
|
|
7
|
+
export declare function readRelativeFile<T>(pathParts: string[]): T;
|
|
8
|
+
/**
|
|
9
|
+
* Get the version of the package
|
|
10
|
+
*/
|
|
11
|
+
export declare function iamDownloadVersion(): string;
|
|
12
|
+
//# sourceMappingURL=packageVersion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../../../src/config/packageVersion.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAG1D;AAqBD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAG3C"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
let root = join(__dirname, '..', '..');
|
|
4
|
+
if (__dirname.endsWith('src')) {
|
|
5
|
+
root = join(__dirname, '..');
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Get a data file from the data directory in CommonJS
|
|
9
|
+
*
|
|
10
|
+
* @param file the path to the file to retrieve data for.
|
|
11
|
+
* @returns the data from the file
|
|
12
|
+
*/
|
|
13
|
+
export function readRelativeFile(pathParts) {
|
|
14
|
+
const contents = readFileSync(join(root, ...pathParts), 'utf8');
|
|
15
|
+
return JSON.parse(contents);
|
|
16
|
+
}
|
|
17
|
+
let packageCache = undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Get the package data version
|
|
20
|
+
*
|
|
21
|
+
* @returns the package data version
|
|
22
|
+
*/
|
|
23
|
+
function getPackageData() {
|
|
24
|
+
if (!packageCache) {
|
|
25
|
+
const packageInfo = readRelativeFile(['package.json']);
|
|
26
|
+
packageCache = packageInfo;
|
|
27
|
+
}
|
|
28
|
+
return packageCache;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get the version of the package
|
|
32
|
+
*/
|
|
33
|
+
export function iamDownloadVersion() {
|
|
34
|
+
const data = getPackageData();
|
|
35
|
+
return data.version;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=packageVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../../../src/config/packageVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACtC,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9B,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAI,SAAmB;IACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;IAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;AAC7B,CAAC;AAMD,IAAI,YAAY,GAA4B,SAAS,CAAA;AAErD;;;;GAIG;AACH,SAAS,cAAc;IACrB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,gBAAgB,CAAsB,CAAC,cAAc,CAAC,CAAC,CAAA;QAC3E,YAAY,GAAG,WAAW,CAAA;IAC5B,CAAC;IACD,OAAO,YAAa,CAAA;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAA;AACrB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optionally print a message and exit the process with the given exit code.
|
|
3
|
+
*
|
|
4
|
+
* @param exitCode the exit code to use
|
|
5
|
+
* @param message the message to print
|
|
6
|
+
*/
|
|
7
|
+
export declare function exit(exitCode: number, message: string | undefined): void;
|
|
8
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,QASjE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optionally print a message and exit the process with the given exit code.
|
|
3
|
+
*
|
|
4
|
+
* @param exitCode the exit code to use
|
|
5
|
+
* @param message the message to print
|
|
6
|
+
*/
|
|
7
|
+
export function exit(exitCode, message) {
|
|
8
|
+
if (message) {
|
|
9
|
+
if (exitCode === 0) {
|
|
10
|
+
console.log(message);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
console.error(message);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
process.exit(exitCode);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,QAAgB,EAAE,OAA2B;IAChE,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACxB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cloud-copilot/iam-collect",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Collect IAM information from AWS Accounts",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/cloud-copilot/iam-collect.git"
|
|
8
|
+
},
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/esm/index.js",
|
|
12
|
+
"require": "./dist/cjs/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist/**/*"
|
|
17
|
+
],
|
|
18
|
+
"types": "dist/cjs/index.d.ts",
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "npx tsc -p tsconfig.cjs.json && npx tsc -p tsconfig.esm.json && ./postbuild.sh",
|
|
21
|
+
"clean": "rm -rf dist",
|
|
22
|
+
"test": "npx vitest --run --coverage",
|
|
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/"
|
|
26
|
+
},
|
|
27
|
+
"keywords": [
|
|
28
|
+
"AWS",
|
|
29
|
+
"IAM"
|
|
30
|
+
],
|
|
31
|
+
"author": "David Kerber <dave@cloudcopilot.io>",
|
|
32
|
+
"license": "AGPL-3.0-or-later",
|
|
33
|
+
"bugs": {
|
|
34
|
+
"url": "https://github.com/cloud-copilot/iam-collect/issues"
|
|
35
|
+
},
|
|
36
|
+
"homepage": "https://github.com/cloud-copilot/iam-collect#readme",
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@cloud-copilot/prettier-config": "^0.1.0",
|
|
39
|
+
"@types/node": "^22.5.0",
|
|
40
|
+
"@vitest/coverage-v8": "^2.0.5",
|
|
41
|
+
"typescript": "^5.7.2",
|
|
42
|
+
"vitest": "^2.0.5"
|
|
43
|
+
},
|
|
44
|
+
"prettier": "@cloud-copilot/prettier-config"
|
|
45
|
+
}
|