@cloud-copilot/iam-collect 0.1.64 → 0.1.65

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,5 +1,5 @@
1
1
  export type { StorageConfig, TopLevelConfig } from './config/config.js';
2
2
  export { loadConfigFiles } from './config/configFile.js';
3
3
  export type { AwsIamStore } from './persistence/AwsIamStore.ts';
4
- export { createStorageClient } from './persistence/util.js';
4
+ export { createInMemoryStorageClient, createStorageClient } from './persistence/util.js';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA"}
package/dist/cjs/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createStorageClient = exports.loadConfigFiles = void 0;
3
+ exports.createStorageClient = exports.createInMemoryStorageClient = exports.loadConfigFiles = void 0;
4
4
  var configFile_js_1 = require("./config/configFile.js");
5
5
  Object.defineProperty(exports, "loadConfigFiles", { enumerable: true, get: function () { return configFile_js_1.loadConfigFiles; } });
6
6
  var util_js_1 = require("./persistence/util.js");
7
+ Object.defineProperty(exports, "createInMemoryStorageClient", { enumerable: true, get: function () { return util_js_1.createInMemoryStorageClient; } });
7
8
  Object.defineProperty(exports, "createStorageClient", { enumerable: true, get: function () { return util_js_1.createStorageClient; } });
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AACA,wDAAwD;AAA/C,gHAAA,eAAe,OAAA;AAExB,iDAA2D;AAAlD,8GAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AACA,wDAAwD;AAA/C,gHAAA,eAAe,OAAA;AAExB,iDAAwF;AAA/E,sHAAA,2BAA2B,OAAA;AAAE,8GAAA,mBAAmB,OAAA"}
@@ -16,6 +16,12 @@ export declare function createStorageClient(configs: TopLevelConfig[], partition
16
16
  * @returns The storage client instance to use
17
17
  */
18
18
  export declare function createStorageClient(storageConfig: StorageConfig, partition: string): AwsIamStore;
19
+ /**
20
+ * Create an in-memory storage client with the 'aws' partition.
21
+ *
22
+ * This is useful for testing.
23
+ */
24
+ export declare function createInMemoryStorageClient(): AwsIamStore;
19
25
  /**
20
26
  * Generate a resource prefix given a starting path, a resource ARN, and a separator.
21
27
  * The function uses splitArnParts to get the parts of the ARN and then joins each non-empty part
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/persistence/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAErF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAI9C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;AAC9F;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;AAyBjG;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CAcR;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE;IACL,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,EACD,SAAS,EAAE,MAAM,GAChB,MAAM,CAYR;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKtF"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/persistence/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAErF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAK9C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;AAC9F;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;AAyBjG;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,WAAW,CAEzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CAcR;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE;IACL,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,EACD,SAAS,EAAE,MAAM,GAChB,MAAM,CAYR;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKtF"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createStorageClient = createStorageClient;
4
+ exports.createInMemoryStorageClient = createInMemoryStorageClient;
4
5
  exports.resourcePrefix = resourcePrefix;
5
6
  exports.resourceTypePrefix = resourceTypePrefix;
6
7
  exports.joinPathParts = joinPathParts;
@@ -8,6 +9,7 @@ const path_1 = require("path");
8
9
  const config_js_1 = require("../config/config.js");
9
10
  const arn_js_1 = require("../utils/arn.js");
10
11
  const FileSystemAwsIamStore_js_1 = require("./file/FileSystemAwsIamStore.js");
12
+ const InMemoryPathBasedPersistenceAdapter_js_1 = require("./InMemoryPathBasedPersistenceAdapter.js");
11
13
  const S3PathBasedPersistenceAdapter_js_1 = require("./s3/S3PathBasedPersistenceAdapter.js");
12
14
  function createStorageClient(storageConfig, partition) {
13
15
  if (Array.isArray(storageConfig)) {
@@ -26,6 +28,14 @@ function createStorageClient(storageConfig, partition) {
26
28
  }
27
29
  throw new Error(`Unsupported storage type: ${storageConfig.type}. Supported types are: file and s3.`);
28
30
  }
31
+ /**
32
+ * Create an in-memory storage client with the 'aws' partition.
33
+ *
34
+ * This is useful for testing.
35
+ */
36
+ function createInMemoryStorageClient() {
37
+ return new FileSystemAwsIamStore_js_1.FileSystemAwsIamStore('mock', 'aws', '/', new InMemoryPathBasedPersistenceAdapter_js_1.InMemoryPathBasedPersistenceAdapter());
38
+ }
29
39
  /**
30
40
  * Generate a resource prefix given a starting path, a resource ARN, and a separator.
31
41
  * The function uses splitArnParts to get the parts of the ARN and then joins each non-empty part
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/persistence/util.ts"],"names":[],"mappings":";;AAuBA,kDAsBC;AAYD,wCAkBC;AAUD,gDAsBC;AAED,sCAKC;AAlHD,+BAA0B;AAC1B,mDAAqF;AACrF,4CAA+C;AAE/C,8EAAuE;AACvE,4FAAqF;AAkBrF,SAAgB,mBAAmB,CACjC,aAA+C,EAC/C,SAAiB;IAEjB,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,IAAA,4BAAgB,EAAC,aAAa,CAAC,CAAA;QACnD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;QAClF,CAAC;QACD,aAAa,GAAG,WAAW,CAAA;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,IAAI,gDAAqB,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,UAAG,CAAC,CAAA;IACtE,CAAC;SAAM,IAAI,aAAa,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACvC,MAAM,kBAAkB,GAAG,IAAI,gEAA6B,CAAC,aAAa,CAAC,CAAA;QAC3E,OAAO,IAAI,gDAAqB,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAA;IAClG,CAAC;IAED,MAAM,IAAI,KAAK,CACb,6BAA8B,aAAqB,CAAC,IAAI,qCAAqC,CAC9F,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,cAAc,CAC5B,YAAoB,EACpB,WAAmB,EACnB,SAAiB;IAEjB,MAAM,KAAK,GAAG,IAAA,sBAAa,EAAC,WAAW,CAAC,CAAA;IAExC,OAAO,aAAa,CAClB;QACE,YAAY;QACZ,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACvD,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/E,EACD,SAAS,CACV,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAChC,YAAoB,EACpB,KAMC,EACD,SAAiB;IAEjB,OAAO,aAAa,CAClB;QACE,YAAY;QACZ,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACnD,KAAK,CAAC,YAAY;KACnB,EACD,SAAS,CACV,CAAA;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,KAA6B,EAAE,SAAiB;IAC5E,wCAAwC;IACxC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACtF,sCAAsC;IACtC,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACtC,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/persistence/util.ts"],"names":[],"mappings":";;AAwBA,kDAsBC;AAOD,kEAEC;AAYD,wCAkBC;AAUD,gDAsBC;AAED,sCAKC;AA5HD,+BAA0B;AAC1B,mDAAqF;AACrF,4CAA+C;AAE/C,8EAAuE;AACvE,qGAA8F;AAC9F,4FAAqF;AAkBrF,SAAgB,mBAAmB,CACjC,aAA+C,EAC/C,SAAiB;IAEjB,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,IAAA,4BAAgB,EAAC,aAAa,CAAC,CAAA;QACnD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;QAClF,CAAC;QACD,aAAa,GAAG,WAAW,CAAA;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,IAAI,gDAAqB,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,UAAG,CAAC,CAAA;IACtE,CAAC;SAAM,IAAI,aAAa,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACvC,MAAM,kBAAkB,GAAG,IAAI,gEAA6B,CAAC,aAAa,CAAC,CAAA;QAC3E,OAAO,IAAI,gDAAqB,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAA;IAClG,CAAC;IAED,MAAM,IAAI,KAAK,CACb,6BAA8B,aAAqB,CAAC,IAAI,qCAAqC,CAC9F,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,2BAA2B;IACzC,OAAO,IAAI,gDAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,4EAAmC,EAAE,CAAC,CAAA;AACjG,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,cAAc,CAC5B,YAAoB,EACpB,WAAmB,EACnB,SAAiB;IAEjB,MAAM,KAAK,GAAG,IAAA,sBAAa,EAAC,WAAW,CAAC,CAAA;IAExC,OAAO,aAAa,CAClB;QACE,YAAY;QACZ,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACvD,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/E,EACD,SAAS,CACV,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAChC,YAAoB,EACpB,KAMC,EACD,SAAiB;IAEjB,OAAO,aAAa,CAClB;QACE,YAAY;QACZ,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACnD,KAAK,CAAC,YAAY;KACnB,EACD,SAAS,CACV,CAAA;AACH,CAAC;AAED,SAAgB,aAAa,CAAC,KAA6B,EAAE,SAAiB;IAC5E,wCAAwC;IACxC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACtF,sCAAsC;IACtC,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACtC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export type { StorageConfig, TopLevelConfig } from './config/config.js';
2
2
  export { loadConfigFiles } from './config/configFile.js';
3
3
  export type { AwsIamStore } from './persistence/AwsIamStore.ts';
4
- export { createStorageClient } from './persistence/util.js';
4
+ export { createInMemoryStorageClient, createStorageClient } from './persistence/util.js';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA"}
package/dist/esm/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export { loadConfigFiles } from './config/configFile.js';
2
- export { createStorageClient } from './persistence/util.js';
2
+ export { createInMemoryStorageClient, createStorageClient } from './persistence/util.js';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -16,6 +16,12 @@ export declare function createStorageClient(configs: TopLevelConfig[], partition
16
16
  * @returns The storage client instance to use
17
17
  */
18
18
  export declare function createStorageClient(storageConfig: StorageConfig, partition: string): AwsIamStore;
19
+ /**
20
+ * Create an in-memory storage client with the 'aws' partition.
21
+ *
22
+ * This is useful for testing.
23
+ */
24
+ export declare function createInMemoryStorageClient(): AwsIamStore;
19
25
  /**
20
26
  * Generate a resource prefix given a starting path, a resource ARN, and a separator.
21
27
  * The function uses splitArnParts to get the parts of the ARN and then joins each non-empty part
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/persistence/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAErF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAI9C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;AAC9F;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;AAyBjG;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CAcR;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE;IACL,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,EACD,SAAS,EAAE,MAAM,GAChB,MAAM,CAYR;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKtF"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/persistence/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAErF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAK9C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;AAC9F;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;AAyBjG;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,WAAW,CAEzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CAcR;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE;IACL,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,EACD,SAAS,EAAE,MAAM,GAChB,MAAM,CAYR;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKtF"}
@@ -2,6 +2,7 @@ import { sep } from 'path';
2
2
  import { getStorageConfig } from '../config/config.js';
3
3
  import { splitArnParts } from '../utils/arn.js';
4
4
  import { FileSystemAwsIamStore } from './file/FileSystemAwsIamStore.js';
5
+ import { InMemoryPathBasedPersistenceAdapter } from './InMemoryPathBasedPersistenceAdapter.js';
5
6
  import { S3PathBasedPersistenceAdapter } from './s3/S3PathBasedPersistenceAdapter.js';
6
7
  export function createStorageClient(storageConfig, partition) {
7
8
  if (Array.isArray(storageConfig)) {
@@ -20,6 +21,14 @@ export function createStorageClient(storageConfig, partition) {
20
21
  }
21
22
  throw new Error(`Unsupported storage type: ${storageConfig.type}. Supported types are: file and s3.`);
22
23
  }
24
+ /**
25
+ * Create an in-memory storage client with the 'aws' partition.
26
+ *
27
+ * This is useful for testing.
28
+ */
29
+ export function createInMemoryStorageClient() {
30
+ return new FileSystemAwsIamStore('mock', 'aws', '/', new InMemoryPathBasedPersistenceAdapter());
31
+ }
23
32
  /**
24
33
  * Generate a resource prefix given a starting path, a resource ARN, and a separator.
25
34
  * The function uses splitArnParts to get the parts of the ARN and then joins each non-empty part
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/persistence/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAiC,MAAM,qBAAqB,CAAA;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAA;AAkBrF,MAAM,UAAU,mBAAmB,CACjC,aAA+C,EAC/C,SAAiB;IAEjB,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAA;QACnD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;QAClF,CAAC;QACD,aAAa,GAAG,WAAW,CAAA;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,IAAI,qBAAqB,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA;IACtE,CAAC;SAAM,IAAI,aAAa,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACvC,MAAM,kBAAkB,GAAG,IAAI,6BAA6B,CAAC,aAAa,CAAC,CAAA;QAC3E,OAAO,IAAI,qBAAqB,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAA;IAClG,CAAC;IAED,MAAM,IAAI,KAAK,CACb,6BAA8B,aAAqB,CAAC,IAAI,qCAAqC,CAC9F,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,YAAoB,EACpB,WAAmB,EACnB,SAAiB;IAEjB,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,CAAC,CAAA;IAExC,OAAO,aAAa,CAClB;QACE,YAAY;QACZ,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACvD,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/E,EACD,SAAS,CACV,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,YAAoB,EACpB,KAMC,EACD,SAAiB;IAEjB,OAAO,aAAa,CAClB;QACE,YAAY;QACZ,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACnD,KAAK,CAAC,YAAY;KACnB,EACD,SAAS,CACV,CAAA;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAA6B,EAAE,SAAiB;IAC5E,wCAAwC;IACxC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACtF,sCAAsC;IACtC,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AACtC,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/persistence/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud-copilot/iam-collect",
3
- "version": "0.1.64",
3
+ "version": "0.1.65",
4
4
  "description": "Collect IAM information from AWS Accounts",
5
5
  "repository": {
6
6
  "type": "git",