@lage-run/cache 0.1.20 → 0.1.22

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.
package/CHANGELOG.json CHANGED
@@ -2,7 +2,37 @@
2
2
  "name": "@lage-run/cache",
3
3
  "entries": [
4
4
  {
5
- "date": "Thu, 20 Oct 2022 00:22:08 GMT",
5
+ "date": "Mon, 24 Oct 2022 21:39:49 GMT",
6
+ "tag": "@lage-run/cache_v0.1.22",
7
+ "version": "0.1.22",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "kchau@microsoft.com",
12
+ "package": "@lage-run/cache",
13
+ "commit": "c91040aa0f9d6e804c300e18a1b41295c242fa4e",
14
+ "comment": "Fixed salt to not have race conditions with env hash calculations"
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "date": "Sun, 23 Oct 2022 04:31:57 GMT",
21
+ "tag": "@lage-run/cache_v0.1.21",
22
+ "version": "0.1.21",
23
+ "comments": {
24
+ "patch": [
25
+ {
26
+ "author": "beachball",
27
+ "package": "@lage-run/cache",
28
+ "comment": "Bump @lage-run/target-graph to v0.4.4",
29
+ "commit": "6ad9b723b65f6ef6b45aa156eb406344de8299eb"
30
+ }
31
+ ]
32
+ }
33
+ },
34
+ {
35
+ "date": "Thu, 20 Oct 2022 00:22:27 GMT",
6
36
  "tag": "@lage-run/cache_v0.1.20",
7
37
  "version": "0.1.20",
8
38
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,28 @@
1
1
  # Change Log - @lage-run/cache
2
2
 
3
- This log was last generated on Thu, 20 Oct 2022 00:22:08 GMT and should not be manually modified.
3
+ This log was last generated on Mon, 24 Oct 2022 21:39:49 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.1.22
8
+
9
+ Mon, 24 Oct 2022 21:39:49 GMT
10
+
11
+ ### Patches
12
+
13
+ - Fixed salt to not have race conditions with env hash calculations (kchau@microsoft.com)
14
+
15
+ ## 0.1.21
16
+
17
+ Sun, 23 Oct 2022 04:31:57 GMT
18
+
19
+ ### Patches
20
+
21
+ - Bump @lage-run/target-graph to v0.4.4
22
+
7
23
  ## 0.1.20
8
24
 
9
- Thu, 20 Oct 2022 00:22:08 GMT
25
+ Thu, 20 Oct 2022 00:22:27 GMT
10
26
 
11
27
  ### Patches
12
28
 
package/lib/salt.js CHANGED
@@ -28,33 +28,40 @@ const path = __importStar(require("path"));
28
28
  const crypto = __importStar(require("crypto"));
29
29
  const fg = __importStar(require("fast-glob"));
30
30
  const fs = __importStar(require("fs/promises"));
31
- let envHash = undefined;
31
+ let envHashes = {};
32
32
  function _testResetEnvHash() {
33
- envHash = undefined;
33
+ envHashes = {};
34
34
  }
35
35
  exports._testResetEnvHash = _testResetEnvHash;
36
36
  async function salt(environmentGlobFiles, command, repoRoot, customKey = "") {
37
- return hashStrings([...(await getEnvHash(environmentGlobFiles, repoRoot)), command, customKey]);
37
+ const envHash = await getEnvHash(environmentGlobFiles, repoRoot);
38
+ return hashStrings([...envHash, command, customKey]);
38
39
  }
39
40
  exports.salt = salt;
41
+ function envHashKey(environmentGlobFiles) {
42
+ return environmentGlobFiles.sort().join("|");
43
+ }
40
44
  async function getEnvHash(environmentGlobFiles, repoRoot) {
41
- if (!envHash) {
42
- envHash = [];
43
- const newline = /\r\n|\r|\n/g;
44
- const LF = "\n";
45
- const files = fg.sync(environmentGlobFiles, {
46
- cwd: repoRoot,
47
- });
48
- files.sort((a, b) => a.localeCompare(b));
49
- for (const file of files) {
50
- const hasher = crypto.createHash("sha1");
51
- hasher.update(file);
52
- const fileBuffer = await fs.readFile(path.join(repoRoot, file), "utf-8");
53
- const data = fileBuffer.replace(newline, LF);
54
- hasher.update(data);
55
- envHash.push(hasher.digest("hex"));
56
- }
45
+ const key = envHashKey(environmentGlobFiles);
46
+ if (envHashes[key]) {
47
+ return envHashes[key];
48
+ }
49
+ const envHash = [];
50
+ const newline = /\r\n|\r|\n/g;
51
+ const LF = "\n";
52
+ const files = fg.sync(environmentGlobFiles, {
53
+ cwd: repoRoot,
54
+ });
55
+ files.sort((a, b) => a.localeCompare(b));
56
+ for (const file of files) {
57
+ const hasher = crypto.createHash("sha1");
58
+ hasher.update(file);
59
+ const fileBuffer = await fs.readFile(path.join(repoRoot, file), "utf-8");
60
+ const data = fileBuffer.replace(newline, LF);
61
+ hasher.update(data);
62
+ envHash.push(hasher.digest("hex"));
57
63
  }
64
+ envHashes[key] = envHash;
58
65
  return envHash;
59
66
  }
60
67
  function hashStrings(strings) {
package/lib/salt.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"salt.js","sourceRoot":"","sources":["../src/salt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,+CAAiC;AACjC,8CAAgC;AAChC,gDAAkC;AAElC,IAAI,OAAO,GAAyB,SAAS,CAAC;AAE9C,SAAgB,iBAAiB;IAC/B,OAAO,GAAG,SAAS,CAAC;AACtB,CAAC;AAFD,8CAEC;AAEM,KAAK,UAAU,IAAI,CAAC,oBAA8B,EAAE,OAAe,EAAE,QAAgB,EAAE,SAAS,GAAG,EAAE;IAC1G,OAAO,WAAW,CAAC,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAClG,CAAC;AAFD,oBAEC;AAED,KAAK,UAAU,UAAU,CAAC,oBAA8B,EAAE,QAAgB;IACxE,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,aAAa,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC;QAChB,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC1C,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YACzE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACpC;KACF;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,OAA0B;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAEtD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"salt.js","sourceRoot":"","sources":["../src/salt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,+CAAiC;AACjC,8CAAgC;AAChC,gDAAkC;AAMlC,IAAI,SAAS,GAAsB,EAAE,CAAC;AAEtC,SAAgB,iBAAiB;IAC/B,SAAS,GAAG,EAAE,CAAC;AACjB,CAAC;AAFD,8CAEC;AAEM,KAAK,UAAU,IAAI,CAAC,oBAA8B,EAAE,OAAe,EAAE,QAAgB,EAAE,SAAS,GAAG,EAAE;IAC1G,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IACjE,OAAO,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AACvD,CAAC;AAHD,oBAGC;AAED,SAAS,UAAU,CAAC,oBAA8B;IAChD,OAAO,oBAAoB,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,oBAA8B,EAAE,QAAgB;IACxE,MAAM,GAAG,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAE7C,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;QAClB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;KACvB;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,aAAa,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,CAAC;IAChB,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE;QAC1C,GAAG,EAAE,QAAQ;KACd,CAAC,CAAC;IAEH,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEpB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KACpC;IAED,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACzB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,OAA0B;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAEtD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lage-run/cache",
3
- "version": "0.1.20",
3
+ "version": "0.1.22",
4
4
  "description": "Cache for Lage",
5
5
  "repository": {
6
6
  "url": "https://github.com/microsoft/lage"
@@ -15,7 +15,7 @@
15
15
  "lint": "monorepo-scripts lint"
16
16
  },
17
17
  "dependencies": {
18
- "@lage-run/target-graph": "^0.4.3",
18
+ "@lage-run/target-graph": "^0.4.4",
19
19
  "@lage-run/logger": "^1.2.0",
20
20
  "backfill-config": "^6.3.0",
21
21
  "backfill-cache": "^5.6.1",