@checkdigit/hash 4.0.0-PR.26-d40a → 4.0.1-PR.28-3b00

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/dist-mjs/hash.mjs CHANGED
@@ -3,10 +3,13 @@ import { createHash } from "node:crypto";
3
3
  import uuidV5 from "./uuid-v5.mjs";
4
4
  var HASH_NAMESPACE = "f25d4515-fea7-44c7-8baf-f3ca50865e66";
5
5
  function hash_default(value) {
6
- return uuidV5(createHash("sha512").update(value).digest("base64"), HASH_NAMESPACE);
6
+ return uuidV5(
7
+ createHash("sha512").update(value).digest("base64"),
8
+ HASH_NAMESPACE
9
+ );
7
10
  }
8
11
  export {
9
12
  HASH_NAMESPACE,
10
13
  hash_default as default
11
14
  };
12
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2hhc2gudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBUUEsU0FBUyxrQkFBa0I7QUFFM0IsT0FBTyxZQUFZO0FBR1osSUFBTSxpQkFBaUI7QUFNZixTQUFSLGFBQWtCLE9BQXVCO0FBQzlDLFNBQU8sT0FBTyxXQUFXLFFBQVEsRUFBRSxPQUFPLEtBQUssRUFBRSxPQUFPLFFBQVEsR0FBRyxjQUFjO0FBQ25GOyIsCiAgIm5hbWVzIjogW10KfQo=
15
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2hhc2gudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBUUEsU0FBUyxrQkFBa0I7QUFFM0IsT0FBTyxZQUFZO0FBR1osSUFBTSxpQkFBaUI7QUFNZixTQUFSLGFBQWtCLE9BQXVCO0FBQzlDLFNBQU87QUFBQSxJQUNMLFdBQVcsUUFBUSxFQUFFLE9BQU8sS0FBSyxFQUFFLE9BQU8sUUFBUTtBQUFBLElBQ2xEO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -14,7 +14,8 @@ function parse(namespace) {
14
14
  intArray[7] = value & 255;
15
15
  intArray[8] = (value = Number.parseInt(namespace.slice(19, 23), 16)) >>> 8;
16
16
  intArray[9] = value & 255;
17
- intArray[10] = (value = Number.parseInt(namespace.slice(24, 36), 16)) / 1099511627776 & 255;
17
+ intArray[10] = // eslint-disable-next-line sonarjs/no-nested-assignment
18
+ (value = Number.parseInt(namespace.slice(24, 36), 16)) / 1099511627776 & 255;
18
19
  intArray[11] = value / 4294967296 & 255;
19
20
  intArray[12] = value >>> 24 & 255;
20
21
  intArray[13] = value >>> 16 & 255;
@@ -27,9 +28,15 @@ function uuid_v5_default(value, namespace) {
27
28
  buffer[6] = (buffer[6] ?? 0) & 15 | 80;
28
29
  buffer[8] = (buffer[8] ?? 0) & 63 | 128;
29
30
  const hex = buffer.toString("hex", 0, 16);
30
- return [hex.slice(0, 8), hex.slice(8, 12), hex.slice(12, 16), hex.slice(16, 20), hex.slice(20, 32)].join("-").toLowerCase();
31
+ return [
32
+ hex.slice(0, 8),
33
+ hex.slice(8, 12),
34
+ hex.slice(12, 16),
35
+ hex.slice(16, 20),
36
+ hex.slice(20, 32)
37
+ ].join("-").toLowerCase();
31
38
  }
32
39
  export {
33
40
  uuid_v5_default as default
34
41
  };
35
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3V1aWQtdjUudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBNkJBLFNBQVMsa0JBQWtCO0FBRzNCLFNBQVMsTUFBTSxXQUFtQjtBQUNoQyxNQUFJO0FBQ0osUUFBTSxXQUFXLElBQUksV0FBVyxFQUFFO0FBSWxDLFdBQVMsQ0FBQyxLQUFLLFFBQVEsT0FBTyxTQUFTLFVBQVUsTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU87QUFDdkUsV0FBUyxDQUFDLElBQUssVUFBVSxLQUFNO0FBQy9CLFdBQVMsQ0FBQyxJQUFLLFVBQVUsSUFBSztBQUM5QixXQUFTLENBQUMsSUFBSSxRQUFRO0FBR3RCLFVBQVEsT0FBTyxTQUFTLFVBQVUsTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQ2xELFdBQVMsQ0FBQyxJQUFJLFVBQVU7QUFDeEIsV0FBUyxDQUFDLElBQUksUUFBUTtBQUl0QixXQUFTLENBQUMsS0FBSyxRQUFRLE9BQU8sU0FBUyxVQUFVLE1BQU0sSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPO0FBQ3pFLFdBQVMsQ0FBQyxJQUFJLFFBQVE7QUFJdEIsV0FBUyxDQUFDLEtBQUssUUFBUSxPQUFPLFNBQVMsVUFBVSxNQUFNLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTztBQUN6RSxXQUFTLENBQUMsSUFBSSxRQUFRO0FBS3RCLFdBQVMsRUFBRSxLQUFNLFFBQVEsT0FBTyxTQUFTLFVBQVUsTUFBTSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssZ0JBQXNCO0FBQy9GLFdBQVMsRUFBRSxJQUFLLFFBQVEsYUFBbUI7QUFDM0MsV0FBUyxFQUFFLElBQUssVUFBVSxLQUFNO0FBQ2hDLFdBQVMsRUFBRSxJQUFLLFVBQVUsS0FBTTtBQUNoQyxXQUFTLEVBQUUsSUFBSyxVQUFVLElBQUs7QUFDL0IsV0FBUyxFQUFFLElBQUksUUFBUTtBQUV2QixTQUFPO0FBQ1Q7QUFFZSxTQUFSLGdCQUFrQixPQUFlLFdBQTJCO0FBRWpFLFFBQU0sU0FBUyxXQUFXLE1BQU0sRUFBRSxPQUFPLE1BQU0sU0FBUyxDQUFDLEVBQUUsT0FBTyxLQUFLLEVBQUUsT0FBTztBQUVoRixTQUFPLENBQUMsS0FBTSxPQUFPLENBQUMsS0FBSyxLQUFLLEtBQVE7QUFDeEMsU0FBTyxDQUFDLEtBQU0sT0FBTyxDQUFDLEtBQUssS0FBSyxLQUFRO0FBQ3hDLFFBQU0sTUFBTSxPQUFPLFNBQVMsT0FBTyxHQUFHLEVBQUU7QUFDeEMsU0FBTyxDQUFDLElBQUksTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLE1BQU0sR0FBRyxFQUFFLEdBQUcsSUFBSSxNQUFNLElBQUksRUFBRSxHQUFHLElBQUksTUFBTSxJQUFJLEVBQUUsR0FBRyxJQUFJLE1BQU0sSUFBSSxFQUFFLENBQUMsRUFDL0YsS0FBSyxHQUFHLEVBQ1IsWUFBWTtBQUNqQjsiLAogICJuYW1lcyI6IFtdCn0K
42
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3V1aWQtdjUudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBNkJBLFNBQVMsa0JBQWtCO0FBRzNCLFNBQVMsTUFBTSxXQUFtQjtBQUNoQyxNQUFJO0FBQ0osUUFBTSxXQUFXLElBQUksV0FBVyxFQUFFO0FBSWxDLFdBQVMsQ0FBQyxLQUFLLFFBQVEsT0FBTyxTQUFTLFVBQVUsTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU87QUFDdkUsV0FBUyxDQUFDLElBQUssVUFBVSxLQUFNO0FBQy9CLFdBQVMsQ0FBQyxJQUFLLFVBQVUsSUFBSztBQUM5QixXQUFTLENBQUMsSUFBSSxRQUFRO0FBR3RCLFVBQVEsT0FBTyxTQUFTLFVBQVUsTUFBTSxHQUFHLEVBQUUsR0FBRyxFQUFFO0FBQ2xELFdBQVMsQ0FBQyxJQUFJLFVBQVU7QUFDeEIsV0FBUyxDQUFDLElBQUksUUFBUTtBQUl0QixXQUFTLENBQUMsS0FBSyxRQUFRLE9BQU8sU0FBUyxVQUFVLE1BQU0sSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPO0FBQ3pFLFdBQVMsQ0FBQyxJQUFJLFFBQVE7QUFJdEIsV0FBUyxDQUFDLEtBQUssUUFBUSxPQUFPLFNBQVMsVUFBVSxNQUFNLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTztBQUN6RSxXQUFTLENBQUMsSUFBSSxRQUFRO0FBSXRCLFdBQVMsRUFBRTtBQUFBLEdBRVAsUUFBUSxPQUFPLFNBQVMsVUFBVSxNQUFNLElBQUksRUFBRSxHQUFHLEVBQUUsS0FDbkQsZ0JBQ0Y7QUFDRixXQUFTLEVBQUUsSUFBSyxRQUFRLGFBQW1CO0FBQzNDLFdBQVMsRUFBRSxJQUFLLFVBQVUsS0FBTTtBQUNoQyxXQUFTLEVBQUUsSUFBSyxVQUFVLEtBQU07QUFDaEMsV0FBUyxFQUFFLElBQUssVUFBVSxJQUFLO0FBQy9CLFdBQVMsRUFBRSxJQUFJLFFBQVE7QUFFdkIsU0FBTztBQUNUO0FBRWUsU0FBUixnQkFBa0IsT0FBZSxXQUEyQjtBQUVqRSxRQUFNLFNBQVMsV0FBVyxNQUFNLEVBQzdCLE9BQU8sTUFBTSxTQUFTLENBQUMsRUFDdkIsT0FBTyxLQUFLLEVBQ1osT0FBTztBQUVWLFNBQU8sQ0FBQyxLQUFNLE9BQU8sQ0FBQyxLQUFLLEtBQUssS0FBUTtBQUN4QyxTQUFPLENBQUMsS0FBTSxPQUFPLENBQUMsS0FBSyxLQUFLLEtBQVE7QUFDeEMsUUFBTSxNQUFNLE9BQU8sU0FBUyxPQUFPLEdBQUcsRUFBRTtBQUN4QyxTQUFPO0FBQUEsSUFDTCxJQUFJLE1BQU0sR0FBRyxDQUFDO0FBQUEsSUFDZCxJQUFJLE1BQU0sR0FBRyxFQUFFO0FBQUEsSUFDZixJQUFJLE1BQU0sSUFBSSxFQUFFO0FBQUEsSUFDaEIsSUFBSSxNQUFNLElBQUksRUFBRTtBQUFBLElBQ2hCLElBQUksTUFBTSxJQUFJLEVBQUU7QUFBQSxFQUNsQixFQUNHLEtBQUssR0FBRyxFQUNSLFlBQVk7QUFDakI7IiwKICAibmFtZXMiOiBbXQp9Cg==
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@checkdigit/hash","version":"4.0.0-PR.26-d40a","description":"Hash is a small function for Check Digit services to create a uuid derived from a hash generated from a given value.","homepage":"https://github.com/checkdigit/hash#readme","bugs":{"url":"https://github.com/checkdigit/hash/issues"},"repository":{"type":"git","url":"git+https://github.com/checkdigit/hash.git"},"license":"MIT","author":"Check Digit, LLC","sideEffects":false,"type":"module","exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist-mjs/index.mjs","default":"./dist-mjs/index.mjs"}},"files":["src","dist-types","dist-mjs","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"build:dist-mjs":"rimraf dist-mjs && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs","build:dist-types":"rimraf dist-types && npx builder --type=types --outDir=dist-types","ci:compile":"tsc --noEmit","ci:coverage":"rimraf coverage && mkdir coverage && node --experimental-strip-types --test-timeout 600000 --experimental-test-coverage --test-reporter=lcov --test-reporter-destination=coverage/lcov.info --test \"src/**/*.spec.ts\"","ci:lint":"npm run lint","ci:style":"npm run prettier","ci:test":"node --disable-warning ExperimentalWarning --experimental-strip-types --test-timeout 600000 --test \"src/**/*.spec.ts\"","coverage":"node --disable-warning ExperimentalWarning --experimental-strip-types --test-timeout 600000 --experimental-test-coverage --test \"src/**/*.spec.ts\"","lint":"eslint --max-warnings 0 .","lint:fix":"eslint . --fix","prepublishOnly":"npm run build:dist-types && npm run build:dist-mjs","prettier":"prettier --ignore-path .gitignore --list-different .","prettier:fix":"prettier --ignore-path .gitignore --write .","test":"npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style"},"prettier":"@checkdigit/prettier-config","devDependencies":{"@checkdigit/eslint-config":"^11.0.5","@checkdigit/prettier-config":"^6.1.0","@checkdigit/typescript-config":"^9.0.0","rimraf":"^6.0.1","uuid":"^11.0.5"},"engines":{"node":">=22.11"}}
1
+ {"name":"@checkdigit/hash","version":"4.0.1-PR.28-3b00","description":"Hash is a small function for Check Digit services to create a uuid derived from a hash generated from a given value.","homepage":"https://github.com/checkdigit/hash#readme","bugs":{"url":"https://github.com/checkdigit/hash/issues"},"repository":{"type":"git","url":"git+https://github.com/checkdigit/hash.git"},"license":"MIT","author":"Check Digit, LLC","sideEffects":false,"type":"module","exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist-mjs/index.mjs","default":"./dist-mjs/index.mjs"}},"files":["src","dist-types","dist-mjs","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"build:dist-mjs":"rimraf dist-mjs && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs","build:dist-types":"rimraf dist-types && npx builder --type=types --outDir=dist-types","ci:compile":"tsc --noEmit","ci:coverage":"rimraf coverage && mkdir coverage && node --experimental-strip-types --test-timeout 600000 --experimental-test-coverage --test-reporter=lcov --test-reporter-destination=coverage/lcov.info --test \"src/**/*.spec.ts\"","ci:lint":"npm run lint","ci:style":"npm run prettier","ci:test":"node --disable-warning ExperimentalWarning --experimental-strip-types --test-timeout 600000 --test \"src/**/*.spec.ts\"","coverage":"node --disable-warning ExperimentalWarning --experimental-strip-types --test-timeout 600000 --experimental-test-coverage --test \"src/**/*.spec.ts\"","lint":"eslint --max-warnings 0 .","lint:fix":"eslint . --fix","prepublishOnly":"npm run build:dist-types && npm run build:dist-mjs","prettier":"prettier --ignore-path .gitignore --list-different .","prettier:fix":"prettier --ignore-path .gitignore --write .","test":"npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style"},"prettier":"@checkdigit/prettier-config","devDependencies":{"@checkdigit/eslint-config":"^11.0.5","@checkdigit/prettier-config":"^7.1.1","@checkdigit/typescript-config":"^9.0.0","rimraf":"^6.0.1","uuid":"^11.0.5"},"engines":{"node":">=22.11"}}
package/src/hash.ts CHANGED
@@ -18,5 +18,8 @@ export const HASH_NAMESPACE = 'f25d4515-fea7-44c7-8baf-f3ca50865e66';
18
18
  */
19
19
 
20
20
  export default function (value: string): string {
21
- return uuidV5(createHash('sha512').update(value).digest('base64'), HASH_NAMESPACE);
21
+ return uuidV5(
22
+ createHash('sha512').update(value).digest('base64'),
23
+ HASH_NAMESPACE,
24
+ );
22
25
  }
package/src/uuid-v5.ts CHANGED
@@ -58,8 +58,11 @@ function parse(namespace: string) {
58
58
 
59
59
  // Parse ........-....-....-....-############
60
60
  // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)
61
- // eslint-disable-next-line sonarjs/no-nested-assignment
62
- intArray[10] = ((value = Number.parseInt(namespace.slice(24, 36), 16)) / 0x1_00_00_00_00_00) & 0xff;
61
+ intArray[10] =
62
+ // eslint-disable-next-line sonarjs/no-nested-assignment
63
+ ((value = Number.parseInt(namespace.slice(24, 36), 16)) /
64
+ 0x1_00_00_00_00_00) &
65
+ 0xff;
63
66
  intArray[11] = (value / 0x1_00_00_00_00) & 0xff;
64
67
  intArray[12] = (value >>> 24) & 0xff;
65
68
  intArray[13] = (value >>> 16) & 0xff;
@@ -71,12 +74,21 @@ function parse(namespace: string) {
71
74
 
72
75
  export default function (value: string, namespace: string): string {
73
76
  // eslint-disable-next-line sonarjs/hashing
74
- const buffer = createHash('sha1').update(parse(namespace)).update(value).digest();
77
+ const buffer = createHash('sha1')
78
+ .update(parse(namespace))
79
+ .update(value)
80
+ .digest();
75
81
  // note that undefined is treated as 0 by the & operator
76
82
  buffer[6] = ((buffer[6] ?? 0) & 0x0f) | 0x50;
77
83
  buffer[8] = ((buffer[8] ?? 0) & 0x3f) | 0x80;
78
84
  const hex = buffer.toString('hex', 0, 16);
79
- return [hex.slice(0, 8), hex.slice(8, 12), hex.slice(12, 16), hex.slice(16, 20), hex.slice(20, 32)]
85
+ return [
86
+ hex.slice(0, 8),
87
+ hex.slice(8, 12),
88
+ hex.slice(12, 16),
89
+ hex.slice(16, 20),
90
+ hex.slice(20, 32),
91
+ ]
80
92
  .join('-')
81
93
  .toLowerCase();
82
94
  }