@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.
Files changed (73) hide show
  1. package/LICENSE.txt +661 -0
  2. package/README.md +23 -0
  3. package/dist/cjs/cli.d.ts +3 -0
  4. package/dist/cjs/cli.d.ts.map +1 -0
  5. package/dist/cjs/cli.js +23 -0
  6. package/dist/cjs/cli.js.map +1 -0
  7. package/dist/cjs/cli2.d.ts +63 -0
  8. package/dist/cjs/cli2.d.ts.map +1 -0
  9. package/dist/cjs/cli2.js +41 -0
  10. package/dist/cjs/cli2.js.map +1 -0
  11. package/dist/cjs/cli3.d.ts +63 -0
  12. package/dist/cjs/cli3.d.ts.map +1 -0
  13. package/dist/cjs/cli3.js +41 -0
  14. package/dist/cjs/cli3.js.map +1 -0
  15. package/dist/cjs/cliUtils.d.ts +13 -0
  16. package/dist/cjs/cliUtils.d.ts.map +1 -0
  17. package/dist/cjs/cliUtils.js +43 -0
  18. package/dist/cjs/cliUtils.js.map +1 -0
  19. package/dist/cjs/config/config.d.ts +74 -0
  20. package/dist/cjs/config/config.d.ts.map +1 -0
  21. package/dist/cjs/config/config.js +121 -0
  22. package/dist/cjs/config/config.js.map +1 -0
  23. package/dist/cjs/config/createConfigFile.d.ts +5 -0
  24. package/dist/cjs/config/createConfigFile.d.ts.map +1 -0
  25. package/dist/cjs/config/createConfigFile.js +17 -0
  26. package/dist/cjs/config/createConfigFile.js.map +1 -0
  27. package/dist/cjs/config/defaultConfig.d.ts +14 -0
  28. package/dist/cjs/config/defaultConfig.d.ts.map +1 -0
  29. package/dist/cjs/config/defaultConfig.js +83 -0
  30. package/dist/cjs/config/defaultConfig.js.map +1 -0
  31. package/dist/cjs/config/packageVersion.d.ts +12 -0
  32. package/dist/cjs/config/packageVersion.d.ts.map +1 -0
  33. package/dist/cjs/config/packageVersion.js +41 -0
  34. package/dist/cjs/config/packageVersion.js.map +1 -0
  35. package/dist/cjs/package.json +3 -0
  36. package/dist/cjs/showHelp.d.ts +2 -0
  37. package/dist/cjs/showHelp.d.ts.map +1 -0
  38. package/dist/cjs/showHelp.js +33 -0
  39. package/dist/cjs/showHelp.js.map +1 -0
  40. package/dist/cjs/utils.d.ts +8 -0
  41. package/dist/cjs/utils.d.ts.map +1 -0
  42. package/dist/cjs/utils.js +21 -0
  43. package/dist/cjs/utils.js.map +1 -0
  44. package/dist/esm/cli.d.ts +3 -0
  45. package/dist/esm/cli.d.ts.map +1 -0
  46. package/dist/esm/cli.js +21 -0
  47. package/dist/esm/cli.js.map +1 -0
  48. package/dist/esm/cliUtils.d.ts +13 -0
  49. package/dist/esm/cliUtils.d.ts.map +1 -0
  50. package/dist/esm/cliUtils.js +40 -0
  51. package/dist/esm/cliUtils.js.map +1 -0
  52. package/dist/esm/config/config.d.ts +74 -0
  53. package/dist/esm/config/config.d.ts.map +1 -0
  54. package/dist/esm/config/config.js +116 -0
  55. package/dist/esm/config/config.js.map +1 -0
  56. package/dist/esm/config/createConfigFile.d.ts +5 -0
  57. package/dist/esm/config/createConfigFile.d.ts.map +1 -0
  58. package/dist/esm/config/createConfigFile.js +14 -0
  59. package/dist/esm/config/createConfigFile.js.map +1 -0
  60. package/dist/esm/config/defaultConfig.d.ts +14 -0
  61. package/dist/esm/config/defaultConfig.d.ts.map +1 -0
  62. package/dist/esm/config/defaultConfig.js +77 -0
  63. package/dist/esm/config/defaultConfig.js.map +1 -0
  64. package/dist/esm/config/packageVersion.d.ts +12 -0
  65. package/dist/esm/config/packageVersion.d.ts.map +1 -0
  66. package/dist/esm/config/packageVersion.js +37 -0
  67. package/dist/esm/config/packageVersion.js.map +1 -0
  68. package/dist/esm/package.json +3 -0
  69. package/dist/esm/utils.d.ts +8 -0
  70. package/dist/esm/utils.d.ts.map +1 -0
  71. package/dist/esm/utils.js +18 -0
  72. package/dist/esm/utils.js.map +1 -0
  73. 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,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -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
+ }