@cloud-copilot/iam-collect 0.1.8 → 0.1.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"lambda.d.ts","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,IAAI,EAAyB,MAAM,YAAY,CAAA;AAExD,eAAO,MAAM,UAAU,EAAE,IAkExB,CAAA"}
1
+ {"version":3,"file":"lambda.d.ts","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,IAAI,EAAyB,MAAM,YAAY,CAAA;AAGxD,eAAO,MAAM,UAAU,EAAE,IAmExB,CAAA"}
@@ -5,20 +5,17 @@ const client_lambda_1 = require("@aws-sdk/client-lambda");
5
5
  const ClientPool_js_1 = require("../../aws/ClientPool.js");
6
6
  const client_tools_js_1 = require("../../utils/client-tools.js");
7
7
  const sync_js_1 = require("../sync.js");
8
+ const typedSync_js_1 = require("../typedSync.js");
8
9
  exports.LambdaSync = {
9
10
  awsService: 'lambda',
10
11
  name: 'lambda',
11
12
  global: false,
12
13
  execute: async (accountId, region, credentials, storage, endpoint, syncOptions) => {
13
14
  const lambdaClient = ClientPool_js_1.AwsClientPool.defaultInstance.client(client_lambda_1.LambdaClient, credentials, region, endpoint);
14
- const command = new client_lambda_1.ListFunctionsCommand();
15
- const functions = [];
16
- let marker = undefined;
17
- do {
18
- const response = await lambdaClient.send(command);
19
- functions.push(...(response.Functions || []));
20
- marker = response.NextMarker;
21
- } while (marker);
15
+ const functions = await (0, typedSync_js_1.paginateResource)(lambdaClient, client_lambda_1.ListFunctionsCommand, 'Functions', {
16
+ inputKey: 'Marker',
17
+ outputKey: 'NextMarker'
18
+ }, {});
22
19
  const functionData = [];
23
20
  for (const func of functions) {
24
21
  const policy = await (0, client_tools_js_1.runAndCatch404)(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":";;;AAAA,0DAM+B;AAE/B,2DAAuD;AAEvD,iEAA4D;AAC5D,wCAAwD;AAE3C,QAAA,UAAU,GAAS;IAC9B,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK,EACZ,SAAiB,EACjB,MAAc,EACd,WAA8C,EAC9C,OAAoB,EACpB,QAA4B,EAC5B,WAAwB,EACT,EAAE;QACjB,MAAM,YAAY,GAAG,6BAAa,CAAC,eAAe,CAAC,MAAM,CACvD,4BAAY,EACZ,WAAW,EACX,MAAM,EACN,QAAQ,CACT,CAAA;QAED,MAAM,OAAO,GAAG,IAAI,oCAAoB,EAAE,CAAA;QAE1C,MAAM,SAAS,GAA4B,EAAE,CAAA;QAC7C,IAAI,MAAM,GAAuB,SAAS,CAAA;QAC1C,GAAG,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACjD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAA;YAC7C,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAA;QAC9B,CAAC,QAAQ,MAAM,EAAC;QAEhB,MAAM,YAAY,GAA8C,EAAE,CAAA;QAClE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAA,gCAAc,EAAC,KAAK,IAAI,EAAE;gBAC7C,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,IAAI,CAC1C,IAAI,gCAAgB,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAC1D,CAAA;gBACD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;gBACxC,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,MAAM,IAAA,gCAAc,EAAC,KAAK,IAAI,EAAE;gBAC3C,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,CACxC,IAAI,+BAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CACpD,CAAA;gBACD,OAAO,UAAU,CAAC,IAAI,CAAA;YACxB,CAAC,CAAC,CAAA;YAEF,YAAY,CAAC,IAAI,CAAC;gBAChB,GAAG,EAAE,IAAI,CAAC,WAAY;gBACtB,QAAQ,EAAE;oBACR,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,EAAE,IAAI,CAAC,WAAW;oBACrB,IAAI,EAAE,IAAI,CAAC,YAAY;iBACxB;gBACD,MAAM;gBACN,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,IAAA,kBAAQ,EAAC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE;YAC/C,OAAO,EAAE,QAAQ;YACjB,YAAY,EAAE,UAAU;YACxB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,MAAM;SACf,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":";;;AAAA,0DAK+B;AAE/B,2DAAuD;AAEvD,iEAA4D;AAC5D,wCAAwD;AACxD,kDAAkD;AAErC,QAAA,UAAU,GAAS;IAC9B,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK,EACZ,SAAiB,EACjB,MAAc,EACd,WAA8C,EAC9C,OAAoB,EACpB,QAA4B,EAC5B,WAAwB,EACT,EAAE;QACjB,MAAM,YAAY,GAAG,6BAAa,CAAC,eAAe,CAAC,MAAM,CACvD,4BAAY,EACZ,WAAW,EACX,MAAM,EACN,QAAQ,CACT,CAAA;QAED,MAAM,SAAS,GAAG,MAAM,IAAA,+BAAgB,EACtC,YAAY,EACZ,oCAAoB,EACpB,WAAW,EACX;YACE,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,YAAY;SACxB,EACD,EAAE,CACH,CAAA;QAED,MAAM,YAAY,GAA8C,EAAE,CAAA;QAClE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAA,gCAAc,EAAC,KAAK,IAAI,EAAE;gBAC7C,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,IAAI,CAC1C,IAAI,gCAAgB,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAC1D,CAAA;gBACD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;gBACxC,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,MAAM,IAAA,gCAAc,EAAC,KAAK,IAAI,EAAE;gBAC3C,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,CACxC,IAAI,+BAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CACpD,CAAA;gBACD,OAAO,UAAU,CAAC,IAAI,CAAA;YACxB,CAAC,CAAC,CAAA;YAEF,YAAY,CAAC,IAAI,CAAC;gBAChB,GAAG,EAAE,IAAI,CAAC,WAAY;gBACtB,QAAQ,EAAE;oBACR,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,EAAE,IAAI,CAAC,WAAW;oBACrB,IAAI,EAAE,IAAI,CAAC,YAAY;iBACxB;gBACD,MAAM;gBACN,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,IAAA,kBAAQ,EAAC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE;YAC/C,OAAO,EAAE,QAAQ;YACjB,YAAY,EAAE,UAAU;YACxB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,MAAM;SACf,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"buckets.d.ts","sourceRoot":"","sources":["../../../../src/syncs/s3/buckets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAMN,8BAA8B,EAG9B,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAK3B,OAAO,EAAE,IAAI,EAAyB,MAAM,YAAY,CAAA;AAExD,MAAM,WAAW,gBAAiB,SAAQ,MAAM;IAC9C,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACxC,GAAG,EAAE,8BAA8B,GAAG,SAAS,CAAA;IAC/C,MAAM,EAAE,GAAG,CAAA;IACX,UAAU,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAA;IAClD,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,eAAO,MAAM,0BAA0B,EAAE,IAwExC,CAAA"}
1
+ {"version":3,"file":"buckets.d.ts","sourceRoot":"","sources":["../../../../src/syncs/s3/buckets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAMN,8BAA8B,EAG9B,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAK3B,OAAO,EAAE,IAAI,EAAyB,MAAM,YAAY,CAAA;AAGxD,MAAM,WAAW,gBAAiB,SAAQ,MAAM;IAC9C,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACxC,GAAG,EAAE,8BAA8B,GAAG,SAAS,CAAA;IAC/C,MAAM,EAAE,GAAG,CAAA;IACX,UAAU,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAA;IAClD,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,eAAO,MAAM,0BAA0B,EAAE,IAwExC,CAAA"}
@@ -5,22 +5,17 @@ const client_s3_1 = require("@aws-sdk/client-s3");
5
5
  const ClientPool_js_1 = require("../../aws/ClientPool.js");
6
6
  const client_tools_js_1 = require("../../utils/client-tools.js");
7
7
  const sync_js_1 = require("../sync.js");
8
+ const typedSync_js_1 = require("../typedSync.js");
8
9
  exports.S3GeneralPurposeBucketSync = {
9
10
  awsService: 's3',
10
11
  name: 'generalPurposeBuckets',
11
12
  global: true,
12
13
  execute: async (accountId, region, credentials, storage, endpoint, syncOptions) => {
13
14
  const s3Client = ClientPool_js_1.AwsClientPool.defaultInstance.client(client_s3_1.S3Client, credentials, region, endpoint);
14
- const allBuckets = [];
15
- let continuationToken = undefined;
16
- do {
17
- const listBucketsCommand = new client_s3_1.ListBucketsCommand({ MaxBuckets: 1000 });
18
- const response = await s3Client.send(listBucketsCommand);
19
- if (response.Buckets) {
20
- allBuckets.push(...response.Buckets);
21
- }
22
- continuationToken = response.ContinuationToken;
23
- } while (continuationToken);
15
+ const allBuckets = await (0, typedSync_js_1.paginateResource)(s3Client, client_s3_1.ListBucketsCommand, 'Buckets', {
16
+ inputKey: 'ContinuationToken',
17
+ outputKey: 'ContinuationToken'
18
+ }, { MaxBuckets: 1000 });
24
19
  const bucketsByRegion = {};
25
20
  for (const bucket of allBuckets) {
26
21
  const bucketRegion = bucket.BucketRegion;
@@ -1 +1 @@
1
- {"version":3,"file":"buckets.js","sourceRoot":"","sources":["../../../../src/syncs/s3/buckets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buckets.js","sourceRoot":"","sources":["../../../../src/syncs/s3/buckets.ts"],"names":[],"mappings":";;;AAAA,kDAW2B;AAE3B,2DAAuD;AAEvD,iEAA4D;AAC5D,wCAAwD;AACxD,kDAAkD;AAcrC,QAAA,0BAA0B,GAAS;IAC9C,UAAU,EAAE,IAAI;IAChB,IAAI,EAAE,uBAAuB;IAC7B,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,KAAK,EACZ,SAAiB,EACjB,MAAc,EACd,WAA8C,EAC9C,OAAoB,EACpB,QAA4B,EAC5B,WAAwB,EACT,EAAE;QACjB,MAAM,QAAQ,GAAG,6BAAa,CAAC,eAAe,CAAC,MAAM,CAAC,oBAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAE9F,MAAM,UAAU,GAAG,MAAM,IAAA,+BAAgB,EACvC,QAAQ,EACR,8BAAkB,EAClB,SAAS,EACT;YACE,QAAQ,EAAE,mBAAmB;YAC7B,SAAS,EAAE,mBAAmB;SAC/B,EACD,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB,CAAA;QAED,MAAM,eAAe,GAA6B,EAAE,CAAA;QACpD,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAa,CAAA;YACzC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnC,eAAe,CAAC,YAAY,CAAC,GAAG,EAAE,CAAA;YACpC,CAAC;YACD,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5C,CAAC;QAED,MAAM,kBAAkB,GAAuB,EAAE,CAAA;QACjD,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YACxD,MAAM,YAAY,GAAG,6BAAa,CAAC,eAAe,CAAC,MAAM,CACvD,oBAAQ,EACR,WAAW,EACX,YAAY,EACZ,QAAQ,CACT,CAAA;YACD,MAAM,aAAa,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;YACnD,MAAM,sBAAsB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9C,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACjC,MAAM,CAAC,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAClF,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC;oBACtC,6BAA6B,CAAC,YAAY,EAAE,MAAM,CAAC;oBACnD,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC;oBAC5D,2BAA2B,CAAC,YAAY,EAAE,MAAM,CAAC;iBAClD,CAAC,CAAA;gBAEF,OAAO;oBACL,GAAG,EAAE,OAAO,WAAW,CAAC,SAAS,SAAS,MAAM,CAAC,IAAI,EAAE;oBACvD,IAAI,EAAE,IAAI;oBACV,GAAG,EAAE,uBAAuB;oBAC5B,MAAM,EAAE,YAAY;oBACpB,UAAU,EAAE,UAAU,EAAE,KAAK;oBAC7B,QAAQ,EAAE;wBACR,IAAI,EAAE,MAAM,CAAC,IAAK;wBAClB,MAAM,EAAE,YAAY;qBACrB;iBACF,CAAA;YACH,CAAC,CAAC,CACH,CAAA;YACD,kBAAkB,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAA;YAElD,IAAA,kBAAQ,EAAC,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE;gBAC/C,OAAO,EAAE,IAAI;aACd,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AAED;;;;;;GAMG;AACH,KAAK,UAAU,gBAAgB,CAC7B,MAAgB,EAChB,MAAc;IAEd,MAAM,UAAU,GAAG,IAAI,mCAAuB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAK,EAAE,CAAC,CAAA;IACxE,MAAM,IAAI,GAAG,MAAM,IAAA,gCAAc,EAAyB,KAAK,IAAI,EAAE;QACnE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC9C,OAAO,QAAQ,CAAC,MAAM,EAAE,MAAM,CAC5B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,GAAG,CAAC,GAAG,CAAC,GAAI,CAAC,GAAG,GAAG,CAAC,KAAM,CAAA;YAC1B,OAAO,GAAG,CAAA;QACZ,CAAC,EACD,EAA4B,CAC7B,CAAA;IACH,CAAC,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,eAAe,CAC5B,MAAgB,EAChB,MAAuB,EACvB,SAAiB;IAEjB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,MAAM,CAAC,IAAK,CAAA;IACvB,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,kCAAsB,CAAC;QAC/C,MAAM,EAAE,MAAM;QACd,mBAAmB,EAAE,SAAS;KAC/B,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,MAAM,IAAA,gCAAc,EAAM,KAAK,IAAI,EAAE;QAClD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACjD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAClE,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,6BAA6B,CAC1C,MAAgB,EAChB,MAAc;IAEd,MAAM,OAAO,GAAG,IAAI,uCAA2B,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAK,EAAE,CAAC,CAAA;IACzE,MAAM,QAAQ,GAAG,MAAM,IAAA,gCAAc,EAAC,KAAK,IAAI,EAAE;QAC/C,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IACF,OAAO,QAAQ,EAAE,8BAA8B,CAAA;AACjD,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,2BAA2B,CACxC,MAAgB,EAChB,MAAc;IAEd,MAAM,OAAO,GAAG,IAAI,sCAA0B,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAK,EAAE,CAAC,CAAA;IACxE,MAAM,QAAQ,GAAG,MAAM,IAAA,gCAAc,EAAC,KAAK,IAAI,EAAE;QAC/C,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IACF,OAAO,QAAQ,EAAE,iCAAiC,CAAA;AACpD,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { Client, Command } from '@smithy/smithy-client';
2
+ export type ClientConstructor = new (args: any) => Client<any, any, any, any>;
3
+ type CommandConstructor = new (args: any) => Command<any, any, any, any, any>;
4
+ type ShortCommandConstructor = new (args: any) => Command<any, any, any>;
5
+ export type CommandConstructors = CommandConstructor | ShortCommandConstructor;
6
+ export type ExtractOutputType<T> = T extends CommandConstructors ? InstanceType<T> extends Command<any, infer Output, any, any, any> ? Output : never : never;
7
+ type ExtractInputType<T> = T extends CommandConstructors ? InstanceType<T> extends Command<infer Input, any, any, any, any> ? Input : never : never;
8
+ type Pagination<C extends CommandConstructors> = {
9
+ inputKey: Extract<keyof ExtractInputType<C>, string>;
10
+ outputKey: Extract<keyof ExtractOutputType<C>, string>;
11
+ } | '::no-pagination::';
12
+ type ClientInstanceOrConstructor = InstanceType<ClientConstructor>;
13
+ /**
14
+ * Paginates through all available resources for a given AWS API
15
+ *
16
+ * @param clientClass The AWS Client class to use
17
+ * @param commandClass The command class to invoke for the resource
18
+ * @param key The key of the resource in the command output to pull
19
+ * @param paginationConfig The pagination configuration for the command, defines the keys to use for pagination, use `::no-pagination::` to indicate no pagination
20
+ * @param params Optional parameters to pass to the command
21
+ * @returns Returns an array of resources returned from the commandClass Response Type key
22
+ */
23
+ export declare function paginateResource<C extends CommandConstructors, K extends keyof ExtractOutputType<C>>(clientClassOrInstance: ClientInstanceOrConstructor, commandClass: C, key: K, paginationConfig: Pagination<C>, params?: Partial<ExtractInputType<C>>): Promise<NonNullable<ExtractOutputType<C>[K]>>;
24
+ export {};
25
+ //# sourceMappingURL=typedSync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedSync.d.ts","sourceRoot":"","sources":["../../../src/syncs/typedSync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAE5D,MAAM,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAC7E,KAAK,kBAAkB,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAC7E,KAAK,uBAAuB,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAExE,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,uBAAuB,CAAA;AAE9E,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,mBAAmB,GAC5D,YAAY,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAC/D,MAAM,GACN,KAAK,GACP,KAAK,CAAA;AACT,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,mBAAmB,GACpD,YAAY,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAC9D,KAAK,GACL,KAAK,GACP,KAAK,CAAA;AAET,KAAK,UAAU,CAAC,CAAC,SAAS,mBAAmB,IACzC;IACE,QAAQ,EAAE,OAAO,CAAC,MAAM,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACpD,SAAS,EAAE,OAAO,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;CACvD,GACD,mBAAmB,CAAA;AAEvB,KAAK,2BAA2B,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAA;AAClE;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,CAAC,SAAS,mBAAmB,EAC7B,CAAC,SAAS,MAAM,iBAAiB,CAAC,CAAC,CAAC,EAEpC,qBAAqB,EAAE,2BAA2B,EAClD,YAAY,EAAE,CAAC,EACf,GAAG,EAAE,CAAC,EACN,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC,EAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GACpC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CA8B/C"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.paginateResource = paginateResource;
4
+ /**
5
+ * Paginates through all available resources for a given AWS API
6
+ *
7
+ * @param clientClass The AWS Client class to use
8
+ * @param commandClass The command class to invoke for the resource
9
+ * @param key The key of the resource in the command output to pull
10
+ * @param paginationConfig The pagination configuration for the command, defines the keys to use for pagination, use `::no-pagination::` to indicate no pagination
11
+ * @param params Optional parameters to pass to the command
12
+ * @returns Returns an array of resources returned from the commandClass Response Type key
13
+ */
14
+ async function paginateResource(clientClassOrInstance, commandClass, key, paginationConfig, params) {
15
+ const client = clientClassOrInstance;
16
+ let nextToken = undefined;
17
+ const inputPaginationKey = paginationInputKey(paginationConfig);
18
+ const outputPaginationKey = paginationOutputKey(paginationConfig);
19
+ const resources = [];
20
+ params = params || {};
21
+ do {
22
+ const args = { ...params };
23
+ if (inputPaginationKey) {
24
+ args[inputPaginationKey] = nextToken;
25
+ }
26
+ const command = new commandClass(args);
27
+ const results = await client.send(command);
28
+ if (results[key]) {
29
+ resources.push(...results[key]);
30
+ }
31
+ if (outputPaginationKey) {
32
+ nextToken = results[outputPaginationKey];
33
+ }
34
+ } while (nextToken);
35
+ return resources;
36
+ }
37
+ function paginationInputKey(paginationConfig) {
38
+ if (paginationConfig === '::no-pagination::') {
39
+ return undefined;
40
+ }
41
+ else if (typeof paginationConfig === 'object') {
42
+ return paginationConfig.inputKey;
43
+ }
44
+ else {
45
+ return undefined;
46
+ }
47
+ }
48
+ function paginationOutputKey(paginationConfig) {
49
+ if (paginationConfig === '::no-pagination::') {
50
+ return undefined;
51
+ }
52
+ else if (typeof paginationConfig === 'object') {
53
+ return paginationConfig.outputKey;
54
+ }
55
+ else {
56
+ return undefined;
57
+ }
58
+ }
59
+ //# sourceMappingURL=typedSync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedSync.js","sourceRoot":"","sources":["../../../src/syncs/typedSync.ts"],"names":[],"mappings":";;AAqCA,4CAuCC;AAjDD;;;;;;;;;GASG;AACI,KAAK,UAAU,gBAAgB,CAIpC,qBAAkD,EAClD,YAAe,EACf,GAAM,EACN,gBAA+B,EAC/B,MAAqC;IAErC,MAAM,MAAM,GAAG,qBAAqB,CAAA;IAEpC,IAAI,SAAS,GAAuB,SAAS,CAAA;IAE7C,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;IAC/D,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;IAEjE,MAAM,SAAS,GAA4B,EAAE,CAAA;IAC7C,MAAM,GAAG,MAAM,IAAI,EAAE,CAAA;IAErB,GAAG,CAAC;QACF,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAS,CAAA;QACjC,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAI,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAA;QACtC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,OAAO,GAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE/C,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,mBAAmB,EAAE,CAAC;YACxB,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC,QAAQ,SAAS,EAAC;IAEnB,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,kBAAkB,CACzB,gBAA+B;IAE/B,IAAI,gBAAgB,KAAK,mBAAmB,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAA;IAClB,CAAC;SAAM,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,gBAAgB,CAAC,QAAQ,CAAA;IAClC,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,gBAA+B;IAE/B,IAAI,gBAAgB,KAAK,mBAAmB,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAA;IAClB,CAAC;SAAM,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,gBAAgB,CAAC,SAAS,CAAA;IACnC,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lambda.d.ts","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,IAAI,EAAyB,MAAM,YAAY,CAAA;AAExD,eAAO,MAAM,UAAU,EAAE,IAkExB,CAAA"}
1
+ {"version":3,"file":"lambda.d.ts","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,IAAI,EAAyB,MAAM,YAAY,CAAA;AAGxD,eAAO,MAAM,UAAU,EAAE,IAmExB,CAAA"}
@@ -2,20 +2,17 @@ import { GetPolicyCommand, LambdaClient, ListFunctionsCommand, ListTagsCommand }
2
2
  import { AwsClientPool } from '../../aws/ClientPool.js';
3
3
  import { runAndCatch404 } from '../../utils/client-tools.js';
4
4
  import { syncData } from '../sync.js';
5
+ import { paginateResource } from '../typedSync.js';
5
6
  export const LambdaSync = {
6
7
  awsService: 'lambda',
7
8
  name: 'lambda',
8
9
  global: false,
9
10
  execute: async (accountId, region, credentials, storage, endpoint, syncOptions) => {
10
11
  const lambdaClient = AwsClientPool.defaultInstance.client(LambdaClient, credentials, region, endpoint);
11
- const command = new ListFunctionsCommand();
12
- const functions = [];
13
- let marker = undefined;
14
- do {
15
- const response = await lambdaClient.send(command);
16
- functions.push(...(response.Functions || []));
17
- marker = response.NextMarker;
18
- } while (marker);
12
+ const functions = await paginateResource(lambdaClient, ListFunctionsCommand, 'Functions', {
13
+ inputKey: 'Marker',
14
+ outputKey: 'NextMarker'
15
+ }, {});
19
16
  const functionData = [];
20
17
  for (const func of functions) {
21
18
  const policy = await runAndCatch404(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EAChB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAQ,QAAQ,EAAe,MAAM,YAAY,CAAA;AAExD,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK,EACZ,SAAiB,EACjB,MAAc,EACd,WAA8C,EAC9C,OAAoB,EACpB,QAA4B,EAC5B,WAAwB,EACT,EAAE;QACjB,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CACvD,YAAY,EACZ,WAAW,EACX,MAAM,EACN,QAAQ,CACT,CAAA;QAED,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAA;QAE1C,MAAM,SAAS,GAA4B,EAAE,CAAA;QAC7C,IAAI,MAAM,GAAuB,SAAS,CAAA;QAC1C,GAAG,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACjD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAA;YAC7C,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAA;QAC9B,CAAC,QAAQ,MAAM,EAAC;QAEhB,MAAM,YAAY,GAA8C,EAAE,CAAA;QAClE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,IAAI,EAAE;gBAC7C,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,IAAI,CAC1C,IAAI,gBAAgB,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAC1D,CAAA;gBACD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;gBACxC,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,IAAI,EAAE;gBAC3C,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,CACxC,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CACpD,CAAA;gBACD,OAAO,UAAU,CAAC,IAAI,CAAA;YACxB,CAAC,CAAC,CAAA;YAEF,YAAY,CAAC,IAAI,CAAC;gBAChB,GAAG,EAAE,IAAI,CAAC,WAAY;gBACtB,QAAQ,EAAE;oBACR,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,EAAE,IAAI,CAAC,WAAW;oBACrB,IAAI,EAAE,IAAI,CAAC,YAAY;iBACxB;gBACD,MAAM;gBACN,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE;YAC/C,OAAO,EAAE,QAAQ;YACjB,YAAY,EAAE,UAAU;YACxB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,MAAM;SACf,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/syncs/lambda/lambda.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EAChB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAQ,QAAQ,EAAe,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,UAAU,EAAE,QAAQ;IACpB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK,EACZ,SAAiB,EACjB,MAAc,EACd,WAA8C,EAC9C,OAAoB,EACpB,QAA4B,EAC5B,WAAwB,EACT,EAAE;QACjB,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CACvD,YAAY,EACZ,WAAW,EACX,MAAM,EACN,QAAQ,CACT,CAAA;QAED,MAAM,SAAS,GAAG,MAAM,gBAAgB,CACtC,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX;YACE,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,YAAY;SACxB,EACD,EAAE,CACH,CAAA;QAED,MAAM,YAAY,GAA8C,EAAE,CAAA;QAClE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,IAAI,EAAE;gBAC7C,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,IAAI,CAC1C,IAAI,gBAAgB,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAC1D,CAAA;gBACD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;gBACxC,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,IAAI,EAAE;gBAC3C,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,CACxC,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CACpD,CAAA;gBACD,OAAO,UAAU,CAAC,IAAI,CAAA;YACxB,CAAC,CAAC,CAAA;YAEF,YAAY,CAAC,IAAI,CAAC;gBAChB,GAAG,EAAE,IAAI,CAAC,WAAY;gBACtB,QAAQ,EAAE;oBACR,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,EAAE,IAAI,CAAC,WAAW;oBACrB,IAAI,EAAE,IAAI,CAAC,YAAY;iBACxB;gBACD,MAAM;gBACN,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE;YAC/C,OAAO,EAAE,QAAQ;YACjB,YAAY,EAAE,UAAU;YACxB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,MAAM;SACf,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"buckets.d.ts","sourceRoot":"","sources":["../../../../src/syncs/s3/buckets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAMN,8BAA8B,EAG9B,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAK3B,OAAO,EAAE,IAAI,EAAyB,MAAM,YAAY,CAAA;AAExD,MAAM,WAAW,gBAAiB,SAAQ,MAAM;IAC9C,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACxC,GAAG,EAAE,8BAA8B,GAAG,SAAS,CAAA;IAC/C,MAAM,EAAE,GAAG,CAAA;IACX,UAAU,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAA;IAClD,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,eAAO,MAAM,0BAA0B,EAAE,IAwExC,CAAA"}
1
+ {"version":3,"file":"buckets.d.ts","sourceRoot":"","sources":["../../../../src/syncs/s3/buckets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAMN,8BAA8B,EAG9B,wBAAwB,EACzB,MAAM,oBAAoB,CAAA;AAK3B,OAAO,EAAE,IAAI,EAAyB,MAAM,YAAY,CAAA;AAGxD,MAAM,WAAW,gBAAiB,SAAQ,MAAM;IAC9C,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACxC,GAAG,EAAE,8BAA8B,GAAG,SAAS,CAAA;IAC/C,MAAM,EAAE,GAAG,CAAA;IACX,UAAU,EAAE,wBAAwB,EAAE,GAAG,SAAS,CAAA;IAClD,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,eAAO,MAAM,0BAA0B,EAAE,IAwExC,CAAA"}
@@ -2,22 +2,17 @@ import { GetBucketEncryptionCommand, GetBucketPolicyCommand, GetBucketTaggingCom
2
2
  import { AwsClientPool } from '../../aws/ClientPool.js';
3
3
  import { runAndCatch404 } from '../../utils/client-tools.js';
4
4
  import { syncData } from '../sync.js';
5
+ import { paginateResource } from '../typedSync.js';
5
6
  export const S3GeneralPurposeBucketSync = {
6
7
  awsService: 's3',
7
8
  name: 'generalPurposeBuckets',
8
9
  global: true,
9
10
  execute: async (accountId, region, credentials, storage, endpoint, syncOptions) => {
10
11
  const s3Client = AwsClientPool.defaultInstance.client(S3Client, credentials, region, endpoint);
11
- const allBuckets = [];
12
- let continuationToken = undefined;
13
- do {
14
- const listBucketsCommand = new ListBucketsCommand({ MaxBuckets: 1000 });
15
- const response = await s3Client.send(listBucketsCommand);
16
- if (response.Buckets) {
17
- allBuckets.push(...response.Buckets);
18
- }
19
- continuationToken = response.ContinuationToken;
20
- } while (continuationToken);
12
+ const allBuckets = await paginateResource(s3Client, ListBucketsCommand, 'Buckets', {
13
+ inputKey: 'ContinuationToken',
14
+ outputKey: 'ContinuationToken'
15
+ }, { MaxBuckets: 1000 });
21
16
  const bucketsByRegion = {};
22
17
  for (const bucket of allBuckets) {
23
18
  const bucketRegion = bucket.BucketRegion;
@@ -1 +1 @@
1
- {"version":3,"file":"buckets.js","sourceRoot":"","sources":["../../../../src/syncs/s3/buckets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buckets.js","sourceRoot":"","sources":["../../../../src/syncs/s3/buckets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { Client, Command } from '@smithy/smithy-client';
2
+ export type ClientConstructor = new (args: any) => Client<any, any, any, any>;
3
+ type CommandConstructor = new (args: any) => Command<any, any, any, any, any>;
4
+ type ShortCommandConstructor = new (args: any) => Command<any, any, any>;
5
+ export type CommandConstructors = CommandConstructor | ShortCommandConstructor;
6
+ export type ExtractOutputType<T> = T extends CommandConstructors ? InstanceType<T> extends Command<any, infer Output, any, any, any> ? Output : never : never;
7
+ type ExtractInputType<T> = T extends CommandConstructors ? InstanceType<T> extends Command<infer Input, any, any, any, any> ? Input : never : never;
8
+ type Pagination<C extends CommandConstructors> = {
9
+ inputKey: Extract<keyof ExtractInputType<C>, string>;
10
+ outputKey: Extract<keyof ExtractOutputType<C>, string>;
11
+ } | '::no-pagination::';
12
+ type ClientInstanceOrConstructor = InstanceType<ClientConstructor>;
13
+ /**
14
+ * Paginates through all available resources for a given AWS API
15
+ *
16
+ * @param clientClass The AWS Client class to use
17
+ * @param commandClass The command class to invoke for the resource
18
+ * @param key The key of the resource in the command output to pull
19
+ * @param paginationConfig The pagination configuration for the command, defines the keys to use for pagination, use `::no-pagination::` to indicate no pagination
20
+ * @param params Optional parameters to pass to the command
21
+ * @returns Returns an array of resources returned from the commandClass Response Type key
22
+ */
23
+ export declare function paginateResource<C extends CommandConstructors, K extends keyof ExtractOutputType<C>>(clientClassOrInstance: ClientInstanceOrConstructor, commandClass: C, key: K, paginationConfig: Pagination<C>, params?: Partial<ExtractInputType<C>>): Promise<NonNullable<ExtractOutputType<C>[K]>>;
24
+ export {};
25
+ //# sourceMappingURL=typedSync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedSync.d.ts","sourceRoot":"","sources":["../../../src/syncs/typedSync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAE5D,MAAM,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAC7E,KAAK,kBAAkB,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAC7E,KAAK,uBAAuB,GAAG,KAAK,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAExE,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,uBAAuB,CAAA;AAE9E,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,mBAAmB,GAC5D,YAAY,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAC/D,MAAM,GACN,KAAK,GACP,KAAK,CAAA;AACT,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,mBAAmB,GACpD,YAAY,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAC9D,KAAK,GACL,KAAK,GACP,KAAK,CAAA;AAET,KAAK,UAAU,CAAC,CAAC,SAAS,mBAAmB,IACzC;IACE,QAAQ,EAAE,OAAO,CAAC,MAAM,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;IACpD,SAAS,EAAE,OAAO,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;CACvD,GACD,mBAAmB,CAAA;AAEvB,KAAK,2BAA2B,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAA;AAClE;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,CAAC,SAAS,mBAAmB,EAC7B,CAAC,SAAS,MAAM,iBAAiB,CAAC,CAAC,CAAC,EAEpC,qBAAqB,EAAE,2BAA2B,EAClD,YAAY,EAAE,CAAC,EACf,GAAG,EAAE,CAAC,EACN,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC,EAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GACpC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CA8B/C"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Paginates through all available resources for a given AWS API
3
+ *
4
+ * @param clientClass The AWS Client class to use
5
+ * @param commandClass The command class to invoke for the resource
6
+ * @param key The key of the resource in the command output to pull
7
+ * @param paginationConfig The pagination configuration for the command, defines the keys to use for pagination, use `::no-pagination::` to indicate no pagination
8
+ * @param params Optional parameters to pass to the command
9
+ * @returns Returns an array of resources returned from the commandClass Response Type key
10
+ */
11
+ export async function paginateResource(clientClassOrInstance, commandClass, key, paginationConfig, params) {
12
+ const client = clientClassOrInstance;
13
+ let nextToken = undefined;
14
+ const inputPaginationKey = paginationInputKey(paginationConfig);
15
+ const outputPaginationKey = paginationOutputKey(paginationConfig);
16
+ const resources = [];
17
+ params = params || {};
18
+ do {
19
+ const args = { ...params };
20
+ if (inputPaginationKey) {
21
+ args[inputPaginationKey] = nextToken;
22
+ }
23
+ const command = new commandClass(args);
24
+ const results = await client.send(command);
25
+ if (results[key]) {
26
+ resources.push(...results[key]);
27
+ }
28
+ if (outputPaginationKey) {
29
+ nextToken = results[outputPaginationKey];
30
+ }
31
+ } while (nextToken);
32
+ return resources;
33
+ }
34
+ function paginationInputKey(paginationConfig) {
35
+ if (paginationConfig === '::no-pagination::') {
36
+ return undefined;
37
+ }
38
+ else if (typeof paginationConfig === 'object') {
39
+ return paginationConfig.inputKey;
40
+ }
41
+ else {
42
+ return undefined;
43
+ }
44
+ }
45
+ function paginationOutputKey(paginationConfig) {
46
+ if (paginationConfig === '::no-pagination::') {
47
+ return undefined;
48
+ }
49
+ else if (typeof paginationConfig === 'object') {
50
+ return paginationConfig.outputKey;
51
+ }
52
+ else {
53
+ return undefined;
54
+ }
55
+ }
56
+ //# sourceMappingURL=typedSync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedSync.js","sourceRoot":"","sources":["../../../src/syncs/typedSync.ts"],"names":[],"mappings":"AA2BA;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAIpC,qBAAkD,EAClD,YAAe,EACf,GAAM,EACN,gBAA+B,EAC/B,MAAqC;IAErC,MAAM,MAAM,GAAG,qBAAqB,CAAA;IAEpC,IAAI,SAAS,GAAuB,SAAS,CAAA;IAE7C,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;IAC/D,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;IAEjE,MAAM,SAAS,GAA4B,EAAE,CAAA;IAC7C,MAAM,GAAG,MAAM,IAAI,EAAE,CAAA;IAErB,GAAG,CAAC;QACF,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAS,CAAA;QACjC,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAI,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAA;QACtC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;QACtC,MAAM,OAAO,GAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE/C,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;QACjC,CAAC;QAED,IAAI,mBAAmB,EAAE,CAAC;YACxB,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC,QAAQ,SAAS,EAAC;IAEnB,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,kBAAkB,CACzB,gBAA+B;IAE/B,IAAI,gBAAgB,KAAK,mBAAmB,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAA;IAClB,CAAC;SAAM,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,gBAAgB,CAAC,QAAQ,CAAA;IAClC,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,gBAA+B;IAE/B,IAAI,gBAAgB,KAAK,mBAAmB,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAA;IAClB,CAAC;SAAM,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,gBAAgB,CAAC,SAAS,CAAA;IACnC,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud-copilot/iam-collect",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "Collect IAM information from AWS Accounts",
5
5
  "repository": {
6
6
  "type": "git",