@cloud-copilot/iam-collect 0.1.29 → 0.1.31

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 (143) hide show
  1. package/dist/cjs/aws/ClientPool.d.ts +1 -1
  2. package/dist/cjs/aws/ClientPool.d.ts.map +1 -1
  3. package/dist/cjs/aws/ClientPool.js +1 -1
  4. package/dist/cjs/aws/ClientPool.js.map +1 -1
  5. package/dist/cjs/aws/auth.d.ts +8 -13
  6. package/dist/cjs/aws/auth.d.ts.map +1 -1
  7. package/dist/cjs/aws/auth.js +55 -86
  8. package/dist/cjs/aws/auth.js.map +1 -1
  9. package/dist/cjs/aws/coreAuth.d.ts +45 -0
  10. package/dist/cjs/aws/coreAuth.d.ts.map +1 -0
  11. package/dist/cjs/aws/coreAuth.js +92 -0
  12. package/dist/cjs/aws/coreAuth.js.map +1 -0
  13. package/dist/cjs/aws/tokens.d.ts +12 -0
  14. package/dist/cjs/aws/tokens.d.ts.map +1 -0
  15. package/dist/cjs/aws/tokens.js +24 -0
  16. package/dist/cjs/aws/tokens.js.map +1 -0
  17. package/dist/cjs/cli.js +7 -2
  18. package/dist/cjs/cli.js.map +1 -1
  19. package/dist/cjs/config/config.d.ts +7 -0
  20. package/dist/cjs/config/config.d.ts.map +1 -1
  21. package/dist/cjs/config/config.js +17 -8
  22. package/dist/cjs/config/config.js.map +1 -1
  23. package/dist/cjs/download/download.d.ts +1 -1
  24. package/dist/cjs/download/download.d.ts.map +1 -1
  25. package/dist/cjs/download/download.js +54 -20
  26. package/dist/cjs/download/download.js.map +1 -1
  27. package/dist/cjs/download/jobQueue.d.ts +41 -0
  28. package/dist/cjs/download/jobQueue.d.ts.map +1 -0
  29. package/dist/cjs/download/jobQueue.js +37 -0
  30. package/dist/cjs/download/jobQueue.js.map +1 -0
  31. package/dist/cjs/download/util.d.ts +7 -0
  32. package/dist/cjs/download/util.d.ts.map +1 -0
  33. package/dist/cjs/download/util.js +14 -0
  34. package/dist/cjs/download/util.js.map +1 -0
  35. package/dist/cjs/persistence/util.d.ts +10 -0
  36. package/dist/cjs/persistence/util.d.ts.map +1 -1
  37. package/dist/cjs/persistence/util.js +15 -0
  38. package/dist/cjs/persistence/util.js.map +1 -1
  39. package/dist/cjs/regions.d.ts +1 -1
  40. package/dist/cjs/regions.d.ts.map +1 -1
  41. package/dist/cjs/services.d.ts +8 -2
  42. package/dist/cjs/services.d.ts.map +1 -1
  43. package/dist/cjs/services.js +4 -0
  44. package/dist/cjs/services.js.map +1 -1
  45. package/dist/cjs/syncs/iam/authorizationDetails.js.map +1 -1
  46. package/dist/cjs/syncs/iam/identityProviders.d.ts.map +1 -1
  47. package/dist/cjs/syncs/iam/identityProviders.js +2 -8
  48. package/dist/cjs/syncs/iam/identityProviders.js.map +1 -1
  49. package/dist/cjs/syncs/organizations/organizations.js.map +1 -1
  50. package/dist/cjs/syncs/s3/buckets.js.map +1 -1
  51. package/dist/cjs/syncs/sns/topics.d.ts +3 -0
  52. package/dist/cjs/syncs/sns/topics.d.ts.map +1 -0
  53. package/dist/cjs/syncs/sns/topics.js +64 -0
  54. package/dist/cjs/syncs/sns/topics.js.map +1 -0
  55. package/dist/cjs/syncs/sync.d.ts +1 -1
  56. package/dist/cjs/syncs/sync.d.ts.map +1 -1
  57. package/dist/cjs/syncs/syncMap.d.ts.map +1 -1
  58. package/dist/cjs/syncs/syncMap.js +2 -0
  59. package/dist/cjs/syncs/syncMap.js.map +1 -1
  60. package/dist/cjs/syncs/typedSync.d.ts +1 -1
  61. package/dist/cjs/syncs/typedSync.d.ts.map +1 -1
  62. package/dist/cjs/syncs/typedSync.js.map +1 -1
  63. package/dist/cjs/utils/arn.js +1 -1
  64. package/dist/cjs/utils/arn.js.map +1 -1
  65. package/dist/cjs/utils/log.d.ts.map +1 -1
  66. package/dist/cjs/utils/log.js +13 -1
  67. package/dist/cjs/utils/log.js.map +1 -1
  68. package/dist/cjs/utils/promise.d.ts +8 -0
  69. package/dist/cjs/utils/promise.d.ts.map +1 -0
  70. package/dist/cjs/utils/promise.js +13 -0
  71. package/dist/cjs/utils/promise.js.map +1 -0
  72. package/dist/esm/aws/ClientPool.d.ts +1 -1
  73. package/dist/esm/aws/ClientPool.d.ts.map +1 -1
  74. package/dist/esm/aws/ClientPool.js +1 -1
  75. package/dist/esm/aws/ClientPool.js.map +1 -1
  76. package/dist/esm/aws/auth.d.ts +8 -13
  77. package/dist/esm/aws/auth.d.ts.map +1 -1
  78. package/dist/esm/aws/auth.js +55 -84
  79. package/dist/esm/aws/auth.js.map +1 -1
  80. package/dist/esm/aws/coreAuth.d.ts +45 -0
  81. package/dist/esm/aws/coreAuth.d.ts.map +1 -0
  82. package/dist/esm/aws/coreAuth.js +87 -0
  83. package/dist/esm/aws/coreAuth.js.map +1 -0
  84. package/dist/esm/aws/tokens.d.ts +12 -0
  85. package/dist/esm/aws/tokens.d.ts.map +1 -0
  86. package/dist/esm/aws/tokens.js +21 -0
  87. package/dist/esm/aws/tokens.js.map +1 -0
  88. package/dist/esm/cli.js +7 -2
  89. package/dist/esm/cli.js.map +1 -1
  90. package/dist/esm/config/config.d.ts +7 -0
  91. package/dist/esm/config/config.d.ts.map +1 -1
  92. package/dist/esm/config/config.js +16 -8
  93. package/dist/esm/config/config.js.map +1 -1
  94. package/dist/esm/download/download.d.ts +1 -1
  95. package/dist/esm/download/download.d.ts.map +1 -1
  96. package/dist/esm/download/download.js +55 -21
  97. package/dist/esm/download/download.js.map +1 -1
  98. package/dist/esm/download/jobQueue.d.ts +41 -0
  99. package/dist/esm/download/jobQueue.d.ts.map +1 -0
  100. package/dist/esm/download/jobQueue.js +34 -0
  101. package/dist/esm/download/jobQueue.js.map +1 -0
  102. package/dist/esm/download/util.d.ts +7 -0
  103. package/dist/esm/download/util.d.ts.map +1 -0
  104. package/dist/esm/download/util.js +11 -0
  105. package/dist/esm/download/util.js.map +1 -0
  106. package/dist/esm/persistence/util.d.ts +10 -0
  107. package/dist/esm/persistence/util.d.ts.map +1 -1
  108. package/dist/esm/persistence/util.js +14 -0
  109. package/dist/esm/persistence/util.js.map +1 -1
  110. package/dist/esm/regions.d.ts +1 -1
  111. package/dist/esm/regions.d.ts.map +1 -1
  112. package/dist/esm/services.d.ts +8 -2
  113. package/dist/esm/services.d.ts.map +1 -1
  114. package/dist/esm/services.js +4 -0
  115. package/dist/esm/services.js.map +1 -1
  116. package/dist/esm/syncs/iam/authorizationDetails.js.map +1 -1
  117. package/dist/esm/syncs/iam/identityProviders.d.ts.map +1 -1
  118. package/dist/esm/syncs/iam/identityProviders.js +2 -8
  119. package/dist/esm/syncs/iam/identityProviders.js.map +1 -1
  120. package/dist/esm/syncs/organizations/organizations.js.map +1 -1
  121. package/dist/esm/syncs/s3/buckets.js.map +1 -1
  122. package/dist/esm/syncs/sns/topics.d.ts +3 -0
  123. package/dist/esm/syncs/sns/topics.d.ts.map +1 -0
  124. package/dist/esm/syncs/sns/topics.js +61 -0
  125. package/dist/esm/syncs/sns/topics.js.map +1 -0
  126. package/dist/esm/syncs/sync.d.ts +1 -1
  127. package/dist/esm/syncs/sync.d.ts.map +1 -1
  128. package/dist/esm/syncs/syncMap.d.ts.map +1 -1
  129. package/dist/esm/syncs/syncMap.js +2 -0
  130. package/dist/esm/syncs/syncMap.js.map +1 -1
  131. package/dist/esm/syncs/typedSync.d.ts +1 -1
  132. package/dist/esm/syncs/typedSync.d.ts.map +1 -1
  133. package/dist/esm/syncs/typedSync.js.map +1 -1
  134. package/dist/esm/utils/arn.js +1 -1
  135. package/dist/esm/utils/arn.js.map +1 -1
  136. package/dist/esm/utils/log.d.ts.map +1 -1
  137. package/dist/esm/utils/log.js +13 -1
  138. package/dist/esm/utils/log.js.map +1 -1
  139. package/dist/esm/utils/promise.d.ts +8 -0
  140. package/dist/esm/utils/promise.d.ts.map +1 -0
  141. package/dist/esm/utils/promise.js +10 -0
  142. package/dist/esm/utils/promise.js.map +1 -0
  143. package/package.json +2 -1
@@ -1,5 +1,5 @@
1
1
  import type { Client } from '@smithy/smithy-client';
2
- import { AwsCredentialIdentityWithMetaData } from './auth.js';
2
+ import { AwsCredentialIdentityWithMetaData } from './coreAuth.js';
3
3
  type ClientConstructor<T> = new (args: any) => T;
4
4
  type AnyClient = Client<any, any, any, any>;
5
5
  export declare class AwsClientPool {
@@ -1 +1 @@
1
- {"version":3,"file":"ClientPool.d.ts","sourceRoot":"","sources":["../../../src/aws/ClientPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,iCAAiC,EAAE,MAAM,WAAW,CAAA;AAE7D,KAAK,iBAAiB,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,GAAG,KAAK,CAAC,CAAA;AAChD,KAAK,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAE3C,qBAAa,aAAa;IACxB,OAAc,eAAe,gBAAsB;IAEnD,OAAO,CAAC,WAAW,CAA+B;IAElD;;;;;;;;OAQG;IACI,MAAM,CAAC,CAAC,SAAS,SAAS,EAC/B,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAChC,WAAW,EAAE,iCAAiC,EAC9C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,CAAC;IAmBJ,OAAO,CAAC,WAAW;IASnB;;;;OAIG;IACI,KAAK,IAAI,IAAI;CAQrB"}
1
+ {"version":3,"file":"ClientPool.d.ts","sourceRoot":"","sources":["../../../src/aws/ClientPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,iCAAiC,EAAE,MAAM,eAAe,CAAA;AAEjE,KAAK,iBAAiB,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,GAAG,KAAK,CAAC,CAAA;AAChD,KAAK,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAE3C,qBAAa,aAAa;IACxB,OAAc,eAAe,gBAAsB;IAEnD,OAAO,CAAC,WAAW,CAA+B;IAElD;;;;;;;;OAQG;IACI,MAAM,CAAC,CAAC,SAAS,SAAS,EAC/B,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAChC,WAAW,EAAE,iCAAiC,EAC9C,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,CAAC;IAmBJ,OAAO,CAAC,WAAW;IASnB;;;;OAIG;IACI,KAAK,IAAI,IAAI;CAQrB"}
@@ -32,7 +32,7 @@ class AwsClientPool {
32
32
  return this.clientCache.get(cacheKey);
33
33
  }
34
34
  getCacheKey(ClientType, credentials, region, endpoint) {
35
- return `${ClientType.name}:${credentials.accountId}:${region}:${endpoint}`;
35
+ return `${ClientType.name}:${credentials.accountId}:${credentials.accessKeyId}:${region}:${endpoint}`;
36
36
  }
37
37
  /**
38
38
  * Destroys all clients in the pool and empties the cache.
@@ -1 +1 @@
1
- {"version":3,"file":"ClientPool.js","sourceRoot":"","sources":["../../../src/aws/ClientPool.ts"],"names":[],"mappings":";;;AACA,mDAAgD;AAMhD,MAAa,aAAa;IACjB,MAAM,CAAC,eAAe,GAAG,IAAI,aAAa,EAAE,CAAA;IAE3C,WAAW,GAAG,IAAI,GAAG,EAAqB,CAAA;IAElD;;;;;;;;OAQG;IACI,MAAM,CACX,UAAgC,EAChC,WAA8C,EAC9C,MAA0B,EAC1B,QAA4B;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAE5E,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,2DAA2D;YAC3D,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;gBAC5B,WAAW;gBACX,MAAM;gBACN,WAAW,EAAE,EAAE;gBACf,SAAS,EAAE,wBAAW,CAAC,QAAQ;aAChC,CAAC,CAAA;YACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACxC,CAAC;aAAM,CAAC;YACN,uDAAuD;QACzD,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAM,CAAA;IAC5C,CAAC;IAEO,WAAW,CACjB,UAAgC,EAChC,WAA8C,EAC9C,MAA0B,EAC1B,QAA4B;QAE5B,OAAO,GAAG,UAAU,CAAC,IAAI,IAAI,WAAW,CAAC,SAAS,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAA;IAC5E,CAAC;IAED;;;;OAIG;IACI,KAAK;QACV,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAClC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACzC,MAAM,CAAC,OAAO,EAAE,CAAA;YAClB,CAAC;QACH,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;;AA3DH,sCA4DC"}
1
+ {"version":3,"file":"ClientPool.js","sourceRoot":"","sources":["../../../src/aws/ClientPool.ts"],"names":[],"mappings":";;;AACA,mDAAgD;AAMhD,MAAa,aAAa;IACjB,MAAM,CAAC,eAAe,GAAG,IAAI,aAAa,EAAE,CAAA;IAE3C,WAAW,GAAG,IAAI,GAAG,EAAqB,CAAA;IAElD;;;;;;;;OAQG;IACI,MAAM,CACX,UAAgC,EAChC,WAA8C,EAC9C,MAA0B,EAC1B,QAA4B;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAE5E,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,2DAA2D;YAC3D,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;gBAC5B,WAAW;gBACX,MAAM;gBACN,WAAW,EAAE,EAAE;gBACf,SAAS,EAAE,wBAAW,CAAC,QAAQ;aAChC,CAAC,CAAA;YACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACxC,CAAC;aAAM,CAAC;YACN,uDAAuD;QACzD,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAM,CAAA;IAC5C,CAAC;IAEO,WAAW,CACjB,UAAgC,EAChC,WAA8C,EAC9C,MAA0B,EAC1B,QAA4B;QAE5B,OAAO,GAAG,UAAU,CAAC,IAAI,IAAI,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,WAAW,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAA;IACvG,CAAC;IAED;;;;OAIG;IACI,KAAK;QACV,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAClC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACzC,MAAM,CAAC,OAAO,EAAE,CAAA;YAClB,CAAC;QACH,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;;AA3DH,sCA4DC"}
@@ -1,16 +1,11 @@
1
- import { AwsCredentialIdentity } from '@aws-sdk/types';
2
1
  import { AuthConfig } from '../config/config.js';
3
- export interface AwsCredentialIdentityWithMetaData extends AwsCredentialIdentity {
4
- partition: string;
5
- accountId: string;
6
- }
7
- export interface CollectIdentityProvider {
8
- getCredentials: () => Promise<AwsCredentialIdentityWithMetaData>;
9
- }
10
- export declare function getDefaultCredentials(): Promise<AwsCredentialIdentity>;
2
+ import { AwsCredentialIdentityWithMetaData } from './coreAuth.js';
3
+ /**
4
+ * Get credentials for the given account ID and auth configuration.
5
+ *
6
+ * @param accountId the AWS account ID for which to get credentials
7
+ * @param authConfig the authentication configuration to use for the account
8
+ * @returns new or cached credentials based on the provided account ID and auth configuration
9
+ */
11
10
  export declare function getCredentials(accountId: string, authConfig: AuthConfig | undefined): Promise<AwsCredentialIdentityWithMetaData>;
12
- export declare function getTokenInfo(credentials: AwsCredentialIdentity): Promise<{
13
- accountId: string;
14
- partition: string;
15
- }>;
16
11
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/aws/auth.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAMhD,MAAM,WAAW,iCAAkC,SAAQ,qBAAqB;IAC9E,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,OAAO,CAAC,iCAAiC,CAAC,CAAA;CACjE;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAG5E;AAuCD,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,GAAG,SAAS,GACjC,OAAO,CAAC,iCAAiC,CAAC,CAgF5C;AAED,wBAAsB,YAAY,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAAC;IAC9E,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAC,CAYD"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/aws/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,OAAO,EAAE,iCAAiC,EAA0B,MAAM,eAAe,CAAA;AA6DzF;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,GAAG,SAAS,GACjC,OAAO,CAAC,iCAAiC,CAAC,CAuB5C"}
@@ -1,24 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDefaultCredentials = getDefaultCredentials;
4
3
  exports.getCredentials = getCredentials;
5
- exports.getTokenInfo = getTokenInfo;
6
- const client_sts_1 = require("@aws-sdk/client-sts");
7
- const credential_providers_1 = require("@aws-sdk/credential-providers");
8
4
  const log_js_1 = require("../utils/log.js");
9
- const strings_js_1 = require("../utils/strings.js");
10
- const CREDENTIAL_CACHE_TIMEOUT = 300 * 1000;
11
- async function getDefaultCredentials() {
12
- const provider = (0, credential_providers_1.fromNodeProviderChain)();
13
- return provider();
14
- }
15
- //Cache credentials based on the auth config with a timeout
5
+ const coreAuth_js_1 = require("./coreAuth.js");
6
+ /**
7
+ * We cache credentials with a timeout
8
+ */
16
9
  const credentialsCache = new Map();
10
+ // Currently using a static timeout
11
+ const CREDENTIAL_CACHE_TIMEOUT = 300 * 1000;
12
+ /**
13
+ * We cache requests for credentials to avoid multiple requests for the same accountId and authConfig.
14
+ */
15
+ const credentialRequestCache = {};
16
+ /**
17
+ * Generate a cache key for the given account ID and auth configuration.
18
+ *
19
+ * @param accountId the AWS account ID
20
+ * @param authConfig the authentication configuration, if any
21
+ * @returns a unique cache key for the credentials
22
+ */
17
23
  function credentialsCacheKey(accountId, authConfig) {
18
24
  return authConfig ? `${accountId}:${JSON.stringify(authConfig)}` : accountId;
19
25
  }
20
- function getCachedCredentials(accountId, authConfig) {
21
- const cacheKey = credentialsCacheKey(accountId, authConfig);
26
+ /**
27
+ * Get cached credentials for the given cache key, if they exist and are not expired.
28
+ *
29
+ * @param cacheKey the cache key to get credentials for
30
+ * @returns the cached credentials if they exist and are not expired, otherwise undefined
31
+ */
32
+ function getCachedCredentials(cacheKey) {
22
33
  const cached = credentialsCache.get(cacheKey);
23
34
  if (cached && cached.expiration > Date.now()) {
24
35
  return cached.credentials;
@@ -26,86 +37,44 @@ function getCachedCredentials(accountId, authConfig) {
26
37
  credentialsCache.delete(cacheKey);
27
38
  return undefined;
28
39
  }
29
- function setCachedCredentials(accountId, authConfig, credentials) {
30
- const cacheKey = credentialsCacheKey(accountId, authConfig);
31
- const expiration = Date.now() + CREDENTIAL_CACHE_TIMEOUT;
40
+ /**
41
+ * Cache a set of credentials
42
+ *
43
+ * @param cacheKey the cache key to use for the credentials
44
+ * @param credentials the credentials to cache
45
+ */
46
+ function setCachedCredentials(cacheKey, credentials) {
47
+ const expiration = (0, coreAuth_js_1.now)() + CREDENTIAL_CACHE_TIMEOUT;
32
48
  credentialsCache.set(cacheKey, { expiration, credentials });
33
49
  }
50
+ /**
51
+ * Get credentials for the given account ID and auth configuration.
52
+ *
53
+ * @param accountId the AWS account ID for which to get credentials
54
+ * @param authConfig the authentication configuration to use for the account
55
+ * @returns new or cached credentials based on the provided account ID and auth configuration
56
+ */
34
57
  async function getCredentials(accountId, authConfig) {
35
- const cachedCredentials = getCachedCredentials(accountId, authConfig);
58
+ const cacheKey = credentialsCacheKey(accountId, authConfig);
59
+ const cachedCredentials = getCachedCredentials(cacheKey);
36
60
  if (cachedCredentials) {
37
61
  log_js_1.log.trace({ accountId }, 'Using cached credentials');
38
62
  return cachedCredentials;
39
63
  }
40
- //If there is no auth config specific to that account, use the default auth config
41
- if (!authConfig) {
42
- log_js_1.log.trace({
43
- accountId
44
- }, 'Using default SDK credential chain');
45
- const provider = (0, credential_providers_1.fromNodeProviderChain)();
46
- const credentials = await provider();
47
- const tokenInfo = await getTokenInfo(credentials);
48
- if (tokenInfo.accountId !== accountId) {
49
- throw new Error(`No auth config found for account ${accountId} and no default auth config found. The account ID of the current credentials does not match.`);
50
- }
51
- const defaultCredentials = {
52
- ...credentials,
53
- accountId: tokenInfo.accountId,
54
- partition: tokenInfo.partition
55
- };
56
- setCachedCredentials(accountId, authConfig, defaultCredentials);
57
- return defaultCredentials;
58
- }
59
- let credentials = undefined;
60
- if (authConfig.profile) {
61
- log_js_1.log.trace({
62
- accountId,
63
- profile: authConfig.profile
64
- }, 'Using profile for credentials');
65
- const provider = (0, credential_providers_1.fromIni)({ profile: authConfig.profile });
66
- credentials = await provider();
67
- }
68
- else {
69
- log_js_1.log.trace({
70
- accountId
71
- }, 'Using default SDK credential chain');
72
- const provider = (0, credential_providers_1.fromNodeProviderChain)();
73
- credentials = await provider();
74
- }
75
- const sessionInfo = await getTokenInfo(credentials);
76
- if (authConfig.role) {
77
- const roleArn = `arn:${sessionInfo.partition}:iam::${accountId}:role/${authConfig.role.pathAndName}`;
78
- log_js_1.log.trace({ accountId, roleArn, sessionInfo }, 'Assuming role for account with credentials');
79
- const roleProvider = (0, credential_providers_1.fromTemporaryCredentials)({
80
- masterCredentials: credentials,
81
- params: {
82
- RoleArn: roleArn,
83
- ExternalId: authConfig.role.externalId,
84
- RoleSessionName: authConfig.role.sessionName || `iam-collect-${(0, strings_js_1.randomCharacters)()}`
85
- }
86
- });
87
- credentials = await roleProvider();
88
- }
89
- else if (sessionInfo.accountId != accountId) {
90
- // If the account ID from the credentials doesn't match the expected account ID and no role is specified
91
- // throw an error to indicate that the credentials do not match the expected account
92
- throw new Error(`The credentials provided do not match the expected account ID ${accountId}. Found ${sessionInfo.accountId}. Please check your auth configuration.`);
64
+ if (credentialRequestCache[cacheKey] !== undefined) {
65
+ return credentialRequestCache[cacheKey];
93
66
  }
94
- const accountCredentials = { ...credentials, accountId, partition: sessionInfo.partition };
95
- setCachedCredentials(accountId, authConfig, accountCredentials);
96
- return accountCredentials;
97
- }
98
- async function getTokenInfo(credentials) {
99
- const stsClient = new client_sts_1.STSClient({ credentials });
100
- const command = new client_sts_1.GetCallerIdentityCommand({});
101
- const response = await stsClient.send(command);
102
- const accountId = response.Account;
103
- const arn = response.Arn;
104
- const arnParts = arn.split(':');
105
- const partition = arnParts[1];
106
- return {
107
- accountId: accountId,
108
- partition: partition
109
- };
67
+ //Create a new promise and store it in case another request comes in while this one is being processed.
68
+ return (credentialRequestCache[cacheKey] = (async () => {
69
+ try {
70
+ log_js_1.log.trace({ accountId }, 'Creating new credentials');
71
+ const newCredentials = await (0, coreAuth_js_1.getNewCredentials)(accountId, authConfig);
72
+ setCachedCredentials(cacheKey, newCredentials);
73
+ return newCredentials;
74
+ }
75
+ finally {
76
+ delete credentialRequestCache[cacheKey]; // Clean up the queue regardless of success or failure.
77
+ }
78
+ })());
110
79
  }
111
80
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/aws/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/aws/auth.ts"],"names":[],"mappings":";;AAsEA,wCA0BC;AA/FD,4CAAqC;AACrC,+CAAyF;AAEzF;;GAEG;AACH,MAAM,gBAAgB,GAMlB,IAAI,GAAG,EAAE,CAAA;AAEb,mCAAmC;AACnC,MAAM,wBAAwB,GAAG,GAAG,GAAG,IAAI,CAAA;AAE3C;;GAEG;AACH,MAAM,sBAAsB,GAA+D,EAAE,CAAA;AAE7F;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,SAAiB,EAAE,UAAkC;IAChF,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9E,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7C,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,WAAW,CAAA;IAC3B,CAAC;IACD,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACjC,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,QAAgB,EAChB,WAA8C;IAE9C,MAAM,UAAU,GAAG,IAAA,iBAAG,GAAE,GAAG,wBAAwB,CAAA;IACnD,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;AAC7D,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,UAAkC;IAElC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAC3D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IACxD,IAAI,iBAAiB,EAAE,CAAC;QACtB,YAAG,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,EAAE,0BAA0B,CAAC,CAAA;QACpD,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,IAAI,sBAAsB,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;QACnD,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,uGAAuG;IACvG,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;QACrD,IAAI,CAAC;YACH,YAAG,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,EAAE,0BAA0B,CAAC,CAAA;YACpD,MAAM,cAAc,GAAG,MAAM,IAAA,+BAAiB,EAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YACrE,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;YAC9C,OAAO,cAAc,CAAA;QACvB,CAAC;gBAAS,CAAC;YACT,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAA,CAAC,uDAAuD;QACjG,CAAC;IACH,CAAC,CAAC,EAAE,CAAC,CAAA;AACP,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { AwsCredentialIdentity } from '@aws-sdk/types';
2
+ import { AuthConfig } from '../config/config.js';
3
+ /**
4
+ * Credentials with additional metadata, including the AWS account ID and partition.
5
+ */
6
+ export interface AwsCredentialIdentityWithMetaData extends AwsCredentialIdentity {
7
+ /**
8
+ * The AWS partition (e.g., 'aws', 'aws-cn', 'aws-us-gov').
9
+ */
10
+ partition: string;
11
+ /**
12
+ * The AWS account ID associated with these credentials.
13
+ */
14
+ accountId: string;
15
+ }
16
+ /**
17
+ * What time is it now?
18
+ *
19
+ * This exists to make unit tests of caching behavior easier.
20
+ *
21
+ * @returns the current timestamp in milliseconds since the Unix epoch
22
+ */
23
+ export declare function now(): number;
24
+ /**
25
+ * Get brand new credentials for the given account ID and auth configuration.
26
+ *
27
+ * DO NOT USE THIS DIRECTLY. Use `getCredentials` in `auth.ts` instead
28
+ *
29
+ * @param accountId the AWS account ID for which to get credentials
30
+ * @param authConfig the authentication configuration to use for the account
31
+ * @returns new credentials based on the provided account ID and auth configuration
32
+ */
33
+ export declare function getNewCredentials(accountId: string, authConfig: AuthConfig | undefined): Promise<AwsCredentialIdentityWithMetaData>;
34
+ /**
35
+ * This gets a new set of initial credentials for an auth configuration. These are the initial
36
+ * credentials that are the default credentials are used to then assume a role if one is specified.
37
+ * There are very few cases where this should be used directly, and in most cases you should use
38
+ * getNewCredentials instead.
39
+ *
40
+ * @param authConfig the authentication configuration to use
41
+ * @param logInfo any additional information to log while getting the credentials
42
+ * @returns new credentials based on the provided auth configuration
43
+ */
44
+ export declare function getNewInitialCredentials(authConfig: AuthConfig | undefined, logInfo?: Record<string, unknown>): Promise<AwsCredentialIdentityWithMetaData>;
45
+ //# sourceMappingURL=coreAuth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreAuth.d.ts","sourceRoot":"","sources":["../../../src/aws/coreAuth.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAKhD;;GAEG;AACH,MAAM,WAAW,iCAAkC,SAAQ,qBAAqB;IAC9E;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,GAAG,SAAS,GACjC,OAAO,CAAC,iCAAiC,CAAC,CAwC5C;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,OAAO,CAAC,iCAAiC,CAAC,CAiB5C"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.now = now;
4
+ exports.getNewCredentials = getNewCredentials;
5
+ exports.getNewInitialCredentials = getNewInitialCredentials;
6
+ const credential_providers_1 = require("@aws-sdk/credential-providers");
7
+ const log_js_1 = require("../utils/log.js");
8
+ const strings_js_1 = require("../utils/strings.js");
9
+ const tokens_js_1 = require("./tokens.js");
10
+ /**
11
+ * What time is it now?
12
+ *
13
+ * This exists to make unit tests of caching behavior easier.
14
+ *
15
+ * @returns the current timestamp in milliseconds since the Unix epoch
16
+ */
17
+ function now() {
18
+ return Date.now();
19
+ }
20
+ /**
21
+ * Get brand new credentials for the given account ID and auth configuration.
22
+ *
23
+ * DO NOT USE THIS DIRECTLY. Use `getCredentials` in `auth.ts` instead
24
+ *
25
+ * @param accountId the AWS account ID for which to get credentials
26
+ * @param authConfig the authentication configuration to use for the account
27
+ * @returns new credentials based on the provided account ID and auth configuration
28
+ */
29
+ async function getNewCredentials(accountId, authConfig) {
30
+ const baseCredentials = await getNewInitialCredentials(authConfig, {
31
+ accountId
32
+ });
33
+ let credentials = baseCredentials;
34
+ if (authConfig?.role) {
35
+ const roleArn = `arn:${baseCredentials.partition}:iam::${accountId}:role/${authConfig.role.pathAndName}`;
36
+ log_js_1.log.trace({ accountId, roleArn, sourceAccount: baseCredentials.accountId }, 'Assuming role for account with credentials');
37
+ const roleProvider = (0, credential_providers_1.fromTemporaryCredentials)({
38
+ masterCredentials: baseCredentials,
39
+ params: {
40
+ RoleArn: roleArn,
41
+ ExternalId: authConfig.role.externalId,
42
+ RoleSessionName: authConfig.role.sessionName || `iam-collect-${(0, strings_js_1.randomCharacters)()}`
43
+ }
44
+ });
45
+ const roleCredentials = await roleProvider();
46
+ credentials = {
47
+ ...roleCredentials,
48
+ accountId: accountId,
49
+ partition: baseCredentials.partition
50
+ };
51
+ }
52
+ else if (baseCredentials.accountId != accountId) {
53
+ // If the account ID from the credentials doesn't match the expected account ID and no role is specified
54
+ // throw an error to indicate that the credentials do not match the expected account
55
+ log_js_1.log.error('Auth config, account mismatch', {
56
+ desiredAccountId: accountId,
57
+ currentAccountId: baseCredentials.accountId
58
+ });
59
+ throw new Error(`The credentials provided do not match the expected account ID ${accountId}. Found ${baseCredentials.accountId}. Please check your auth configuration.`);
60
+ }
61
+ return credentials;
62
+ }
63
+ /**
64
+ * This gets a new set of initial credentials for an auth configuration. These are the initial
65
+ * credentials that are the default credentials are used to then assume a role if one is specified.
66
+ * There are very few cases where this should be used directly, and in most cases you should use
67
+ * getNewCredentials instead.
68
+ *
69
+ * @param authConfig the authentication configuration to use
70
+ * @param logInfo any additional information to log while getting the credentials
71
+ * @returns new credentials based on the provided auth configuration
72
+ */
73
+ async function getNewInitialCredentials(authConfig, logInfo = {}) {
74
+ let credentials;
75
+ if (authConfig?.profile) {
76
+ log_js_1.log.trace({ ...logInfo, profile: authConfig.profile }, 'Using profile for credentials');
77
+ const provider = (0, credential_providers_1.fromIni)({ profile: authConfig.profile });
78
+ credentials = await provider();
79
+ }
80
+ else {
81
+ log_js_1.log.trace(logInfo, 'Using default SDK credential chain');
82
+ const provider = (0, credential_providers_1.fromNodeProviderChain)();
83
+ credentials = await provider();
84
+ }
85
+ const tokenInfo = await (0, tokens_js_1.getTokenInfo)(credentials);
86
+ return {
87
+ ...credentials,
88
+ accountId: tokenInfo.accountId,
89
+ partition: tokenInfo.partition
90
+ };
91
+ }
92
+ //# sourceMappingURL=coreAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreAuth.js","sourceRoot":"","sources":["../../../src/aws/coreAuth.ts"],"names":[],"mappings":";;AAiCA,kBAEC;AAWD,8CA2CC;AAYD,4DAoBC;AAzHD,wEAIsC;AAGtC,4CAAqC;AACrC,oDAAsD;AACtD,2CAA0C;AAiB1C;;;;;;GAMG;AACH,SAAgB,GAAG;IACjB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAA;AACnB,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,iBAAiB,CACrC,SAAiB,EACjB,UAAkC;IAElC,MAAM,eAAe,GAAG,MAAM,wBAAwB,CAAC,UAAU,EAAE;QACjE,SAAS;KACV,CAAC,CAAA;IAEF,IAAI,WAAW,GAAG,eAAe,CAAA;IACjC,IAAI,UAAU,EAAE,IAAI,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,OAAO,eAAe,CAAC,SAAS,SAAS,SAAS,SAAS,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;QACxG,YAAG,CAAC,KAAK,CACP,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,SAAS,EAAE,EAChE,4CAA4C,CAC7C,CAAA;QACD,MAAM,YAAY,GAAG,IAAA,+CAAwB,EAAC;YAC5C,iBAAiB,EAAE,eAAe;YAClC,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU;gBACtC,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,IAAI,eAAe,IAAA,6BAAgB,GAAE,EAAE;aACpF;SACF,CAAC,CAAA;QAEF,MAAM,eAAe,GAAG,MAAM,YAAY,EAAE,CAAA;QAC5C,WAAW,GAAG;YACZ,GAAG,eAAe;YAClB,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,eAAe,CAAC,SAAS;SACrC,CAAA;IACH,CAAC;SAAM,IAAI,eAAe,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;QAClD,wGAAwG;QACxG,oFAAoF;QACpF,YAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE;YACzC,gBAAgB,EAAE,SAAS;YAC3B,gBAAgB,EAAE,eAAe,CAAC,SAAS;SAC5C,CAAC,CAAA;QACF,MAAM,IAAI,KAAK,CACb,iEAAiE,SAAS,WAAW,eAAe,CAAC,SAAS,yCAAyC,CACxJ,CAAA;IACH,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;;;;;;;;GASG;AACI,KAAK,UAAU,wBAAwB,CAC5C,UAAkC,EAClC,UAAmC,EAAE;IAErC,IAAI,WAAkC,CAAA;IACtC,IAAI,UAAU,EAAE,OAAO,EAAE,CAAC;QACxB,YAAG,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,EAAE,+BAA+B,CAAC,CAAA;QACvF,MAAM,QAAQ,GAAG,IAAA,8BAAO,EAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;QACzD,WAAW,GAAG,MAAM,QAAQ,EAAE,CAAA;IAChC,CAAC;SAAM,CAAC;QACN,YAAG,CAAC,KAAK,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAA;QACxD,MAAM,QAAQ,GAAG,IAAA,4CAAqB,GAAE,CAAA;QACxC,WAAW,GAAG,MAAM,QAAQ,EAAE,CAAA;IAChC,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,IAAA,wBAAY,EAAC,WAAW,CAAC,CAAA;IACjD,OAAO;QACL,GAAG,WAAW;QACd,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;KAC/B,CAAA;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { AwsCredentialIdentity } from '@aws-sdk/types';
2
+ /**
3
+ * Get the AWS account ID and partition from the provided credentials.
4
+ *
5
+ * @param credentials The AWS credentials to use for the request.
6
+ * @returns An object containing the AWS account ID and partition for the provided credentials.
7
+ */
8
+ export declare function getTokenInfo(credentials: AwsCredentialIdentity): Promise<{
9
+ accountId: string;
10
+ partition: string;
11
+ }>;
12
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../src/aws/tokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAAC;IAC9E,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAC,CAYD"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTokenInfo = getTokenInfo;
4
+ const client_sts_1 = require("@aws-sdk/client-sts");
5
+ /**
6
+ * Get the AWS account ID and partition from the provided credentials.
7
+ *
8
+ * @param credentials The AWS credentials to use for the request.
9
+ * @returns An object containing the AWS account ID and partition for the provided credentials.
10
+ */
11
+ async function getTokenInfo(credentials) {
12
+ const stsClient = new client_sts_1.STSClient({ credentials });
13
+ const command = new client_sts_1.GetCallerIdentityCommand({});
14
+ const response = await stsClient.send(command);
15
+ const accountId = response.Account;
16
+ const arn = response.Arn;
17
+ const arnParts = arn.split(':');
18
+ const partition = arnParts[1];
19
+ return {
20
+ accountId: accountId,
21
+ partition: partition
22
+ };
23
+ }
24
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/aws/tokens.ts"],"names":[],"mappings":";;AASA,oCAeC;AAxBD,oDAAyE;AAGzE;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAAC,WAAkC;IAInE,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,IAAI,qCAAwB,CAAC,EAAE,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAA;IAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAA;IACxB,MAAM,QAAQ,GAAG,GAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC7B,OAAO;QACL,SAAS,EAAE,SAAU;QACrB,SAAS,EAAE,SAAS;KACrB,CAAA;AACH,CAAC"}
package/dist/cjs/cli.js CHANGED
@@ -23,7 +23,7 @@ const main = async () => {
23
23
  description: 'The configuration files to use',
24
24
  values: 'multiple'
25
25
  },
26
- accountIds: {
26
+ accounts: {
27
27
  type: 'string',
28
28
  description: 'The account IDs to download from',
29
29
  values: 'multiple'
@@ -37,6 +37,11 @@ const main = async () => {
37
37
  type: 'string',
38
38
  description: 'The services to download',
39
39
  values: 'multiple'
40
+ },
41
+ concurrency: {
42
+ type: 'number',
43
+ description: 'The maximum number of concurrent downloads to allow. Defaults based on your system CPUs',
44
+ values: 'single'
40
45
  }
41
46
  }
42
47
  }
@@ -68,7 +73,7 @@ const main = async () => {
68
73
  const defaultConfig = './iam-collect.jsonc';
69
74
  const configFiles = cli.args.configFiles?.length > 0 ? cli.args.configFiles : [defaultConfig];
70
75
  const configs = (0, configFile_js_1.loadConfigFiles)(configFiles);
71
- await (0, download_js_1.downloadData)(configs, cli.args.accountIds, cli.args.regions, cli.args.services);
76
+ await (0, download_js_1.downloadData)(configs, cli.args.accounts, cli.args.regions, cli.args.services, cli.args.concurrency);
72
77
  }
73
78
  };
74
79
  main()
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";;;AAEA,4CAAsD;AACtD,0DAAwD;AACxD,sEAAyE;AACzE,gEAA+D;AAC/D,kEAA8D;AAC9D,wDAAqD;AACrD,2CAAuD;AAEvD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACtB,MAAM,OAAO,GAAG,MAAM,IAAA,qCAAiB,GAAE,CAAA;IACzC,MAAM,GAAG,GAAG,IAAA,uBAAiB,EAC3B,aAAa,EACb;QACE,IAAI,EAAE;YACJ,WAAW,EAAE,+CAA+C;YAC5D,OAAO,EAAE,EAAE;SACZ;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE;gBACP,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;oBAC7C,MAAM,EAAE,UAAU;iBACnB;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;oBAC/C,MAAM,EAAE,UAAU;iBACnB;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8BAA8B;oBAC3C,MAAM,EAAE,UAAU;iBACnB;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;oBACvC,MAAM,EAAE,UAAU;iBACnB;aACF;SACF;KACF,EACD;QACE,GAAG,EAAE;YACH,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,sBAAsB;YACnC,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,kBAAS;SACvB;KACF,EACD;QACE,SAAS,EAAE,aAAa;QACxB,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,OAAO;KACjB,CACF,CAAA;IAED,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACjB,IAAA,oBAAW,EAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAC9B,IAAI,IAAA,sCAAmB,GAAE,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9B,MAAM,IAAA,gDAA0B,GAAE,CAAA;IACpC,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,qBAAqB,CAAA;QAC3C,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;QAC7F,MAAM,OAAO,GAAG,IAAA,+BAAe,EAAC,WAAW,CAAC,CAAA;QAC5C,MAAM,IAAA,0BAAY,EAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACvF,CAAC;AACH,CAAC,CAAA;AAED,IAAI,EAAE;KACH,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC;KACD,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;KACd,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -69,6 +69,13 @@ export interface ResolvedAccountServiceRegionConfig {
69
69
  auth?: AuthConfig;
70
70
  endpoint?: string;
71
71
  }
72
+ /**
73
+ * Get the default auth config from the provided configs.
74
+ *
75
+ * @param configs the configs to search for the default auth config
76
+ * @returns the default auth config, or an empty object if none found
77
+ */
78
+ export declare function getDefaultAuthConfig(configs: TopLevelConfig[]): AuthConfig;
72
79
  export declare function servicesForAccount(account: string, configs: TopLevelConfig[], allServices: string[]): ServicesForAccount;
73
80
  export declare function regionsForService(service: string, account: string, configs: TopLevelConfig[], allRegions: string[]): RegionsForAccountService;
74
81
  export declare function accountServiceRegionConfig(service: string, accountId: string, region: string, configs: TopLevelConfig[]): ResolvedAccountServiceRegionConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDefaultAuthConfig = getDefaultAuthConfig;
3
4
  exports.servicesForAccount = servicesForAccount;
4
5
  exports.regionsForService = regionsForService;
5
6
  exports.accountServiceRegionConfig = accountServiceRegionConfig;
6
7
  exports.getAccountAuthConfig = getAccountAuthConfig;
7
8
  exports.getStorageConfig = getStorageConfig;
9
+ /**
10
+ * Get the default auth config from the provided configs.
11
+ *
12
+ * @param configs the configs to search for the default auth config
13
+ * @returns the default auth config, or an empty object if none found
14
+ */
15
+ function getDefaultAuthConfig(configs) {
16
+ // Return the last config with an auth config, or an empty object if none found
17
+ for (let i = configs.length - 1; i >= 0; i--) {
18
+ const configAuth = configs[i].auth;
19
+ if (configAuth) {
20
+ return configAuth;
21
+ }
22
+ }
23
+ return {};
24
+ }
8
25
  function servicesForAccount(account, configs, allServices) {
9
26
  let services = allServices;
10
27
  for (const config of configs) {
@@ -69,14 +86,6 @@ function regionsForService(service, account, configs, allRegions) {
69
86
  }
70
87
  return regions;
71
88
  }
72
- // export function defaultStsRegion(configs: TopLevelConfig[]): string {
73
- // for (const config of configs) {
74
- // if (config.regions?.included) {
75
- // return config.regions.included[0]
76
- // }
77
- // }
78
- // return 'us-east-1'
79
- // }
80
89
  function accountServiceRegionConfig(service, accountId, region, configs) {
81
90
  let result = {
82
91
  accountId: accountId,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":";;AA2GA,oDASC;AAED,gDA+BC;AAED,8CA+CC;AAED,gEAiEC;AASD,oDAeC;AAED,4CAUC;AAxMD;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,OAAyB;IAC5D,+EAA+E;IAC/E,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAClC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAA;QACnB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAgB,kBAAkB,CAChC,OAAe,EACf,OAAyB,EACzB,WAAqB;IAErB,IAAI,QAAQ,GAAG,WAAW,CAAA;IAC1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;YAC9B,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA;QACrC,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;YAC9B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;QACxF,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAA;QAC5D,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;gBAC7B,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;oBAC/C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;wBAChC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,eAAe,CAAC,QAAQ,EAAE,CAAC;gBAC7B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;YACvF,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAA8B,CAAA;AACvC,CAAC;AAED,SAAgB,iBAAiB,CAC/B,OAAe,EACf,OAAe,EACf,OAAyB,EACzB,UAAoB;IAEpB,IAAI,OAAO,GAAG,UAAU,CAAA;IACxB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;YAC7B,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAA;QACnC,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;YAC7B,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QACnF,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAA;QACtD,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;gBACpC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAA;YAC1C,CAAC;YACD,IAAI,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;gBACpC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,OAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;YAC1F,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;gBACpC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAA;YAC1C,CAAC;YACD,IAAI,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;gBACpC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,OAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;YAC1F,CAAC;YAED,MAAM,eAAe,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAA;YAC/D,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;oBACtC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAA;gBAC5C,CAAC;gBACD,IAAI,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;oBACtC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,OAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;gBAC5F,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAgB,0BAA0B,CACxC,OAAe,EACf,SAAiB,EACjB,MAAc,EACd,OAAyB;IAEzB,IAAI,MAAM,GAAuC;QAC/C,SAAS,EAAE,SAAS;QACpB,OAAO;QACP,MAAM;KACP,CAAA;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QAC3B,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAA;QACtD,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;YACzD,CAAC;YACD,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAC3B,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAA;YAC1C,CAAC;YAED,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAA;YAC1D,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,CAAA;gBACxD,CAAC;gBACD,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;oBAC1B,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAA;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAA;YAClC,CAAC;YAED,MAAM,oBAAoB,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAA;YACpE,IAAI,oBAAoB,EAAE,CAAC;gBACzB,IAAI,oBAAoB,CAAC,IAAI,EAAE,CAAC;oBAC9B,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,oBAAoB,CAAC,IAAI,EAAE,CAAA;gBAChE,CAAC;gBACD,IAAI,oBAAoB,CAAC,QAAQ,EAAE,CAAC;oBAClC,MAAM,CAAC,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAA;gBACjD,CAAC;gBAED,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAA;gBACxE,IAAI,mBAAmB,EAAE,CAAC;oBACxB,IAAI,mBAAmB,CAAC,IAAI,EAAE,CAAC;wBAC7B,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAA;oBAC/D,CAAC;oBACD,IAAI,mBAAmB,CAAC,QAAQ,EAAE,CAAC;wBACjC,MAAM,CAAC,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAA;oBAChD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,SAAiB,EACjB,OAAyB;IAEzB,IAAI,MAAM,GAA2B,SAAS,CAAA;IAC9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA;QACtB,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,aAAa,EAAE,IAAI,EAAE,CAAC;YACxB,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;QACvD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAyB;IACxD,MAAM,cAAc,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;IAC7C,+DAA+D;IAC/D,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC;IACH,CAAC;IACD,iDAAiD;IACjD,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { TopLevelConfig } from '../config/config.js';
2
- export declare function downloadData(configs: TopLevelConfig[], accountIds: string[], regions: string[], services: string[]): Promise<void>;
2
+ export declare function downloadData(configs: TopLevelConfig[], accountIds: string[], regions: string[], services: string[], concurrency: number | undefined): Promise<void>;
3
3
  //# sourceMappingURL=download.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,cAAc,EACf,MAAM,qBAAqB,CAAA;AAQ5B,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CA0Ef"}
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/download/download.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,cAAc,EACf,MAAM,qBAAqB,CAAA;AAS5B,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EAAE,EACzB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,EAAE,EAClB,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,OAAO,CAAC,IAAI,CAAC,CAoHf"}