@cloud-copilot/iam-data 0.6.202410011 → 0.7.202410011

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":"data.d.ts","sourceRoot":"","sources":["../../src/data.ts"],"names":[],"mappings":"AAIA,wBAAsB,YAAY,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAQxE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEtE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEzE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEzE"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/data.ts"],"names":[],"mappings":"AAKA,wBAAsB,YAAY,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CA0BxE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEtE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEzE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEzE"}
package/dist/cjs/data.js CHANGED
@@ -6,14 +6,30 @@ exports.readConditionKeys = readConditionKeys;
6
6
  exports.readResourceTypes = readResourceTypes;
7
7
  const readRelativeFile_js_1 = require("./readRelativeFile.js");
8
8
  const dataCache = {};
9
+ const requestCache = {};
9
10
  async function readDataFile(...pathParts) {
10
11
  pathParts.unshift('data');
11
12
  const file = pathParts.join('/');
12
- if (!dataCache[file]) {
13
- const data = await (0, readRelativeFile_js_1.readRelativeFile)(pathParts);
14
- dataCache[file] = data;
13
+ // If the data is already cached, return it immediately.
14
+ if (dataCache[file]) {
15
+ return dataCache[file];
15
16
  }
16
- return dataCache[file];
17
+ // If there's an ongoing request, return the existing Promise.
18
+ if (requestCache[file] !== undefined) {
19
+ return requestCache[file];
20
+ }
21
+ // Create a new Promise and store it in dataQueues synchronously.
22
+ requestCache[file] = (async () => {
23
+ try {
24
+ const data = await (0, readRelativeFile_js_1.readRelativeFile)(pathParts);
25
+ dataCache[file] = data; // Cache the fetched data.
26
+ return data;
27
+ }
28
+ finally {
29
+ delete requestCache[file]; // Clean up the queue regardless of success or failure.
30
+ }
31
+ })();
32
+ return requestCache[file];
17
33
  }
18
34
  /**
19
35
  * Read the action data for a service
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/data.ts"],"names":[],"mappings":";;AAIA,oCAQC;AAQD,wCAEC;AAQD,8CAEC;AAQD,8CAEC;AA1CD,+DAAyD;AAEzD,MAAM,SAAS,GAAwB,EAAE,CAAC;AAEnC,KAAK,UAAU,YAAY,CAAI,GAAG,SAAmB;IAC1D,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,IAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,IAAA,sCAAgB,EAAC,SAAS,CAAC,CAAA;QAC9C,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACxB,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAAI,UAAkB;IACxD,OAAO,YAAY,CAAI,SAAS,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,iBAAiB,CAAI,UAAkB;IAC3D,OAAO,YAAY,CAAI,eAAe,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,iBAAiB,CAAI,UAAkB;IAC3D,OAAO,YAAY,CAAI,eAAe,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/data.ts"],"names":[],"mappings":";;AAKA,oCA0BC;AAQD,wCAEC;AAQD,8CAEC;AAQD,8CAEC;AA7DD,+DAAyD;AAEzD,MAAM,SAAS,GAAwB,EAAE,CAAC;AAC1C,MAAM,YAAY,GAAiC,EAAE,CAAC;AAE/C,KAAK,UAAU,YAAY,CAAI,GAAG,SAAmB;IAC1D,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjC,wDAAwD;IACxD,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,8DAA8D;IAC9D,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,iEAAiE;IACjE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAA,sCAAgB,EAAC,SAAS,CAAC,CAAC;YAC/C,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,0BAA0B;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,uDAAuD;QACpF,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAAI,UAAkB;IACxD,OAAO,YAAY,CAAI,SAAS,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,iBAAiB,CAAI,UAAkB;IAC3D,OAAO,YAAY,CAAI,eAAe,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,iBAAiB,CAAI,UAAkB;IAC3D,OAAO,YAAY,CAAI,eAAe,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AAChE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/data.ts"],"names":[],"mappings":"AAIA,wBAAsB,YAAY,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAQxE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEtE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEzE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEzE"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/data.ts"],"names":[],"mappings":"AAKA,wBAAsB,YAAY,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CA0BxE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEtE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEzE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEzE"}
package/dist/esm/data.js CHANGED
@@ -1,13 +1,29 @@
1
1
  import { readRelativeFile } from "./readRelativeFile.js";
2
2
  const dataCache = {};
3
+ const requestCache = {};
3
4
  export async function readDataFile(...pathParts) {
4
5
  pathParts.unshift('data');
5
6
  const file = pathParts.join('/');
6
- if (!dataCache[file]) {
7
- const data = await readRelativeFile(pathParts);
8
- dataCache[file] = data;
7
+ // If the data is already cached, return it immediately.
8
+ if (dataCache[file]) {
9
+ return dataCache[file];
9
10
  }
10
- return dataCache[file];
11
+ // If there's an ongoing request, return the existing Promise.
12
+ if (requestCache[file] !== undefined) {
13
+ return requestCache[file];
14
+ }
15
+ // Create a new Promise and store it in dataQueues synchronously.
16
+ requestCache[file] = (async () => {
17
+ try {
18
+ const data = await readRelativeFile(pathParts);
19
+ dataCache[file] = data; // Cache the fetched data.
20
+ return data;
21
+ }
22
+ finally {
23
+ delete requestCache[file]; // Clean up the queue regardless of success or failure.
24
+ }
25
+ })();
26
+ return requestCache[file];
11
27
  }
12
28
  /**
13
29
  * Read the action data for a service
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,SAAS,GAAwB,EAAE,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,GAAG,SAAmB;IAC1D,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,IAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAA;QAC9C,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACxB,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAI,UAAkB;IACxD,OAAO,YAAY,CAAI,SAAS,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAI,UAAkB;IAC3D,OAAO,YAAY,CAAI,eAAe,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAI,UAAkB;IAC3D,OAAO,YAAY,CAAI,eAAe,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,SAAS,GAAwB,EAAE,CAAC;AAC1C,MAAM,YAAY,GAAiC,EAAE,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,GAAG,SAAmB;IAC1D,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjC,wDAAwD;IACxD,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,8DAA8D;IAC9D,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,iEAAiE;IACjE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC/C,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,0BAA0B;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,uDAAuD;QACpF,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAI,UAAkB;IACxD,OAAO,YAAY,CAAI,SAAS,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAI,UAAkB;IAC3D,OAAO,YAAY,CAAI,eAAe,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAI,UAAkB;IAC3D,OAAO,YAAY,CAAI,eAAe,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;AAChE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud-copilot/iam-data",
3
- "version": "0.6.202410011",
3
+ "version": "0.7.202410011",
4
4
  "description": "AWS IAM Data",
5
5
  "repository": "github:cloud-copilot/iam-data",
6
6
  "updatedAt": "2024-10-01T04:48:40.009Z",
@@ -18,8 +18,9 @@
18
18
  "types": "dist/cjs/index.d.ts",
19
19
  "scripts": {
20
20
  "test": "npx vitest --run --coverage",
21
+ "clean": "rm -rf dist",
21
22
  "build": "npx tsc -p tsconfig.cjs.json && npx tsc -p tsconfig.esm.json && ./postbuild.sh",
22
- "prepare": "npm run build"
23
+ "release": "npm install && npm run clean && npm run build && npm run test && npm publish"
23
24
  },
24
25
  "keywords": [
25
26
  "AWS",