@venizia/ignis-helpers 0.2.0-38 → 0.2.0-39

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.
Files changed (87) hide show
  1. package/dist/cjs/modules/base.d.ts +4 -1
  2. package/dist/cjs/modules/base.d.ts.map +1 -1
  3. package/dist/cjs/modules/base.js +12 -4
  4. package/dist/cjs/modules/base.js.map +1 -1
  5. package/dist/cjs/modules/logger/resolver.d.ts.map +1 -1
  6. package/dist/cjs/modules/logger/resolver.js +6 -0
  7. package/dist/cjs/modules/logger/resolver.js.map +1 -1
  8. package/dist/cjs/modules/logger/slot.d.ts +27 -0
  9. package/dist/cjs/modules/logger/slot.d.ts.map +1 -0
  10. package/dist/cjs/modules/logger/slot.js +68 -0
  11. package/dist/cjs/modules/logger/slot.js.map +1 -0
  12. package/dist/cjs/modules/uid/uuid/common/constants.d.ts +5 -4
  13. package/dist/cjs/modules/uid/uuid/common/constants.d.ts.map +1 -1
  14. package/dist/cjs/modules/uid/uuid/common/constants.js +5 -4
  15. package/dist/cjs/modules/uid/uuid/common/constants.js.map +1 -1
  16. package/dist/cjs/modules/uid/uuid/helper.d.ts +13 -52
  17. package/dist/cjs/modules/uid/uuid/helper.d.ts.map +1 -1
  18. package/dist/cjs/modules/uid/uuid/helper.js +17 -137
  19. package/dist/cjs/modules/uid/uuid/helper.js.map +1 -1
  20. package/dist/cjs/modules/uid/uuid/index.d.ts +2 -0
  21. package/dist/cjs/modules/uid/uuid/index.d.ts.map +1 -1
  22. package/dist/cjs/modules/uid/uuid/index.js +2 -0
  23. package/dist/cjs/modules/uid/uuid/index.js.map +1 -1
  24. package/dist/cjs/modules/uid/uuid/sha1.d.ts +7 -11
  25. package/dist/cjs/modules/uid/uuid/sha1.d.ts.map +1 -1
  26. package/dist/cjs/modules/uid/uuid/sha1.js +7 -11
  27. package/dist/cjs/modules/uid/uuid/sha1.js.map +1 -1
  28. package/dist/cjs/modules/uid/uuid/v4.d.ts +5 -0
  29. package/dist/cjs/modules/uid/uuid/v4.d.ts.map +1 -0
  30. package/dist/cjs/modules/uid/uuid/v4.js +49 -0
  31. package/dist/cjs/modules/uid/uuid/v4.js.map +1 -0
  32. package/dist/cjs/modules/uid/uuid/v5.d.ts +15 -0
  33. package/dist/cjs/modules/uid/uuid/v5.d.ts.map +1 -0
  34. package/dist/cjs/modules/uid/uuid/v5.js +84 -0
  35. package/dist/cjs/modules/uid/uuid/v5.js.map +1 -0
  36. package/dist/cjs/modules/uid/uuid/v7.d.ts +4 -36
  37. package/dist/cjs/modules/uid/uuid/v7.d.ts.map +1 -1
  38. package/dist/cjs/modules/uid/uuid/v7.js +66 -82
  39. package/dist/cjs/modules/uid/uuid/v7.js.map +1 -1
  40. package/dist/cjs/uuid.d.ts +2 -0
  41. package/dist/cjs/uuid.d.ts.map +1 -0
  42. package/dist/cjs/uuid.js +19 -0
  43. package/dist/cjs/uuid.js.map +1 -0
  44. package/dist/esm/modules/base.d.ts +4 -1
  45. package/dist/esm/modules/base.d.ts.map +1 -1
  46. package/dist/esm/modules/base.js +12 -4
  47. package/dist/esm/modules/base.js.map +1 -1
  48. package/dist/esm/modules/logger/resolver.d.ts.map +1 -1
  49. package/dist/esm/modules/logger/resolver.js +6 -0
  50. package/dist/esm/modules/logger/resolver.js.map +1 -1
  51. package/dist/esm/modules/logger/slot.d.ts +27 -0
  52. package/dist/esm/modules/logger/slot.d.ts.map +1 -0
  53. package/dist/esm/modules/logger/slot.js +62 -0
  54. package/dist/esm/modules/logger/slot.js.map +1 -0
  55. package/dist/esm/modules/uid/uuid/common/constants.d.ts +5 -4
  56. package/dist/esm/modules/uid/uuid/common/constants.d.ts.map +1 -1
  57. package/dist/esm/modules/uid/uuid/common/constants.js +5 -4
  58. package/dist/esm/modules/uid/uuid/common/constants.js.map +1 -1
  59. package/dist/esm/modules/uid/uuid/helper.d.ts +13 -52
  60. package/dist/esm/modules/uid/uuid/helper.d.ts.map +1 -1
  61. package/dist/esm/modules/uid/uuid/helper.js +17 -137
  62. package/dist/esm/modules/uid/uuid/helper.js.map +1 -1
  63. package/dist/esm/modules/uid/uuid/index.d.ts +2 -0
  64. package/dist/esm/modules/uid/uuid/index.d.ts.map +1 -1
  65. package/dist/esm/modules/uid/uuid/index.js +2 -0
  66. package/dist/esm/modules/uid/uuid/index.js.map +1 -1
  67. package/dist/esm/modules/uid/uuid/sha1.d.ts +7 -11
  68. package/dist/esm/modules/uid/uuid/sha1.d.ts.map +1 -1
  69. package/dist/esm/modules/uid/uuid/sha1.js +7 -11
  70. package/dist/esm/modules/uid/uuid/sha1.js.map +1 -1
  71. package/dist/esm/modules/uid/uuid/v4.d.ts +5 -0
  72. package/dist/esm/modules/uid/uuid/v4.d.ts.map +1 -0
  73. package/dist/esm/modules/uid/uuid/v4.js +45 -0
  74. package/dist/esm/modules/uid/uuid/v4.js.map +1 -0
  75. package/dist/esm/modules/uid/uuid/v5.d.ts +15 -0
  76. package/dist/esm/modules/uid/uuid/v5.d.ts.map +1 -0
  77. package/dist/esm/modules/uid/uuid/v5.js +80 -0
  78. package/dist/esm/modules/uid/uuid/v5.js.map +1 -0
  79. package/dist/esm/modules/uid/uuid/v7.d.ts +4 -36
  80. package/dist/esm/modules/uid/uuid/v7.d.ts.map +1 -1
  81. package/dist/esm/modules/uid/uuid/v7.js +64 -80
  82. package/dist/esm/modules/uid/uuid/v7.js.map +1 -1
  83. package/dist/esm/uuid.d.ts +2 -0
  84. package/dist/esm/uuid.d.ts.map +1 -0
  85. package/dist/esm/uuid.js +3 -0
  86. package/dist/esm/uuid.js.map +1 -0
  87. package/package.json +7 -1
@@ -1,21 +1,17 @@
1
1
  /**
2
- * SHA-1 over bytes, synchronous, no host API.
2
+ * SHA-1 over bytes, synchronous, no host API - `node:crypto` fails the purity gate and
3
+ * `crypto.subtle` is async and secure-context only.
3
4
  *
4
- * Carried here rather than borrowed: `node:crypto` is a builtin the browser-purity gate refuses,
5
- * and `crypto.subtle.digest` is both asynchronous and gated on a SECURE CONTEXT - measured absent
6
- * on `http://<lan-ip>`, exactly where a phone on the LAN tests a dev server. Version 5 needs the
7
- * digest inline to keep `v5()` the same shape as `v4()` and `v7()`.
8
- *
9
- * Only UUID version 5 uses it. SHA-1 is broken against a chosen-prefix collision and must never be
10
- * used to sign, to authenticate, or to store a password.
5
+ * Only UUID v5 uses it. SHA-1 is broken against a chosen-prefix collision: never sign, authenticate
6
+ * or store a password with it.
11
7
  */
12
8
  export declare class Sha1Digest {
13
- /** 80-word message schedule, reused: `of()` never yields, so no second call can observe it mid-flight. */
9
+ /** Reused: `of()` never yields, so no second call can observe it mid-flight. */
14
10
  private static readonly SCHEDULE;
15
- /** Padding buffer for the inputs this package actually hashes - a namespace plus a name. A longer one allocates. */
11
+ /** Padding buffer sized for a namespace plus a name; a longer input allocates. */
16
12
  private static readonly SCRATCH;
17
13
  private static readonly K;
18
- /** 20 bytes, big-endian, as the standard defines them. */
14
+ /** Digests `bytes` into 20 big-endian bytes. */
19
15
  static of(opts: {
20
16
  bytes: Uint8Array;
21
17
  }): Uint8Array;
@@ -1 +1 @@
1
- {"version":3,"file":"sha1.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uid/uuid/sha1.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,qBAAa,UAAU;IACrB,0GAA0G;IAC1G,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD,oHAAoH;IACpH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAEtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAoD;IAE7E,0DAA0D;IAC1D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,UAAU;CAqGnD"}
1
+ {"version":3,"file":"sha1.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uid/uuid/sha1.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,gFAAgF;IAChF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD,kFAAkF;IAClF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAEtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAoD;IAE7E,gDAAgD;IAChD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,UAAU;CAqGnD"}
@@ -2,23 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Sha1Digest = void 0;
4
4
  /**
5
- * SHA-1 over bytes, synchronous, no host API.
5
+ * SHA-1 over bytes, synchronous, no host API - `node:crypto` fails the purity gate and
6
+ * `crypto.subtle` is async and secure-context only.
6
7
  *
7
- * Carried here rather than borrowed: `node:crypto` is a builtin the browser-purity gate refuses,
8
- * and `crypto.subtle.digest` is both asynchronous and gated on a SECURE CONTEXT - measured absent
9
- * on `http://<lan-ip>`, exactly where a phone on the LAN tests a dev server. Version 5 needs the
10
- * digest inline to keep `v5()` the same shape as `v4()` and `v7()`.
11
- *
12
- * Only UUID version 5 uses it. SHA-1 is broken against a chosen-prefix collision and must never be
13
- * used to sign, to authenticate, or to store a password.
8
+ * Only UUID v5 uses it. SHA-1 is broken against a chosen-prefix collision: never sign, authenticate
9
+ * or store a password with it.
14
10
  */
15
11
  class Sha1Digest {
16
- /** 80-word message schedule, reused: `of()` never yields, so no second call can observe it mid-flight. */
12
+ /** Reused: `of()` never yields, so no second call can observe it mid-flight. */
17
13
  static { this.SCHEDULE = new Uint32Array(80); }
18
- /** Padding buffer for the inputs this package actually hashes - a namespace plus a name. A longer one allocates. */
14
+ /** Padding buffer sized for a namespace plus a name; a longer input allocates. */
19
15
  static { this.SCRATCH = new Uint8Array(512); }
20
16
  static { this.K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6]; }
21
- /** 20 bytes, big-endian, as the standard defines them. */
17
+ /** Digests `bytes` into 20 big-endian bytes. */
22
18
  static of(opts) {
23
19
  const { bytes } = opts;
24
20
  const length = bytes.length;
@@ -1 +1 @@
1
- {"version":3,"file":"sha1.js","sourceRoot":"","sources":["../../../../../src/modules/uid/uuid/sha1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sha1.js","sourceRoot":"","sources":["../../../../../src/modules/uid/uuid/sha1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Builds a v4 generator with its own entropy pool. */
2
+ export declare const createUuidV4: () => (() => string);
3
+ /** Mints a random UUID v4 - a public identifier or a token. */
4
+ export declare const uuidV4: () => string;
5
+ //# sourceMappingURL=v4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v4.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uid/uuid/v4.ts"],"names":[],"mappings":"AAIA,uDAAuD;AACvD,eAAO,MAAM,YAAY,QAAO,CAAC,MAAM,MAAM,CA6C5C,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,MAAM,EAAE,MAAM,MAAuB,CAAC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.uuidV4 = exports.createUuidV4 = void 0;
4
+ const constants_1 = require("./common/constants");
5
+ const POOL_SIZE = 16 * 256;
6
+ /** Builds a v4 generator with its own entropy pool. */
7
+ const createUuidV4 = () => {
8
+ const native = globalThis.crypto?.randomUUID;
9
+ if (typeof native === 'function') {
10
+ return native.bind(globalThis.crypto);
11
+ }
12
+ const pool = new Uint8Array(POOL_SIZE);
13
+ let offset = POOL_SIZE;
14
+ return () => {
15
+ if (offset > POOL_SIZE - 16) {
16
+ globalThis.crypto.getRandomValues(pool);
17
+ offset = 0;
18
+ }
19
+ const at = offset;
20
+ offset = at + 16;
21
+ const version = (pool[at + 6] & 0x0f) | 0x40;
22
+ const variant = (pool[at + 8] & 0x3f) | 0x80;
23
+ const hex = constants_1.UUID_HEX_OCTETS;
24
+ return (hex[pool[at]] +
25
+ hex[pool[at + 1]] +
26
+ hex[pool[at + 2]] +
27
+ hex[pool[at + 3]] +
28
+ '-' +
29
+ hex[pool[at + 4]] +
30
+ hex[pool[at + 5]] +
31
+ '-' +
32
+ hex[version] +
33
+ hex[pool[at + 7]] +
34
+ '-' +
35
+ hex[variant] +
36
+ hex[pool[at + 9]] +
37
+ '-' +
38
+ hex[pool[at + 10]] +
39
+ hex[pool[at + 11]] +
40
+ hex[pool[at + 12]] +
41
+ hex[pool[at + 13]] +
42
+ hex[pool[at + 14]] +
43
+ hex[pool[at + 15]]);
44
+ };
45
+ };
46
+ exports.createUuidV4 = createUuidV4;
47
+ /** Mints a random UUID v4 - a public identifier or a token. */
48
+ exports.uuidV4 = (0, exports.createUuidV4)();
49
+ //# sourceMappingURL=v4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v4.js","sourceRoot":"","sources":["../../../../../src/modules/uid/uuid/v4.ts"],"names":[],"mappings":";;;AAAA,kDAAqD;AAErD,MAAM,SAAS,GAAG,EAAE,GAAG,GAAG,CAAC;AAE3B,uDAAuD;AAChD,MAAM,YAAY,GAAG,GAAmB,EAAE;IAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC;IAC7C,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,MAAM,GAAG,SAAS,CAAC;IAEvB,OAAO,GAAG,EAAE;QACV,IAAI,MAAM,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC;YAC5B,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,GAAG,CAAC,CAAC;QACb,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,CAAC;QAClB,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC;QAEjB,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAC7C,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAC7C,MAAM,GAAG,GAAG,2BAAe,CAAC;QAE5B,OAAO,CACL,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjB,GAAG;YACH,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjB,GAAG;YACH,GAAG,CAAC,OAAO,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjB,GAAG;YACH,GAAG,CAAC,OAAO,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjB,GAAG;YACH,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CACnB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AA7CW,QAAA,YAAY,gBA6CvB;AAEF,+DAA+D;AAClD,QAAA,MAAM,GAAiB,IAAA,oBAAY,GAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** Builds a v5 generator with its own namespace cache and buffer. */
2
+ export declare const createUuidV5: () => ((opts: {
3
+ namespace: string;
4
+ name: string;
5
+ }) => string);
6
+ /**
7
+ * Mints a deterministic UUID v5 from `namespace` and `name` - an idempotency key.
8
+ *
9
+ * Reproducible therefore NOT secret: never a share link, a reset token or an API key.
10
+ */
11
+ export declare const uuidV5: (opts: {
12
+ namespace: string;
13
+ name: string;
14
+ }) => string;
15
+ //# sourceMappingURL=v5.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v5.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uid/uuid/v5.ts"],"names":[],"mappings":"AASA,qEAAqE;AACrE,eAAO,MAAM,YAAY,QAAO,CAAC,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,CAiFrF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,MAAuB,CAAC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.uuidV5 = exports.createUuidV5 = void 0;
4
+ // Past the barrels: this module ships on the `./uuid` subpath and must not pull their surface.
5
+ const ignis_inversion_1 = require("@venizia/ignis-inversion");
6
+ const http_1 = require("../../../common/constants/http");
7
+ const constants_1 = require("./common/constants");
8
+ const sha1_1 = require("./sha1");
9
+ /** Fits a namespace plus a ~160-character name; a longer name reallocates once. */
10
+ const INPUT_SIZE = 512;
11
+ /** Builds a v5 generator with its own namespace cache and buffer. */
12
+ const createUuidV5 = () => {
13
+ const encoder = new TextEncoder();
14
+ /** Parsed namespaces, capped so a caller-fed one cannot grow the map without bound. */
15
+ const namespaces = new Map();
16
+ let input = new Uint8Array(INPUT_SIZE);
17
+ let nameView = input.subarray(16);
18
+ const resolveNamespace = (opts) => {
19
+ const { namespace } = opts;
20
+ const cached = namespaces.get(namespace);
21
+ if (cached) {
22
+ return cached;
23
+ }
24
+ if (!constants_1.UUID_PATTERN.test(namespace)) {
25
+ throw (0, ignis_inversion_1.getError)({
26
+ statusCode: http_1.HTTP.ResultCodes.RS_5.InternalServerError,
27
+ message: `[uuidV5] namespace must be a UUID - received: ${namespace}`,
28
+ });
29
+ }
30
+ const bytes = new Uint8Array(16);
31
+ const hex = namespace.replaceAll('-', '');
32
+ for (let index = 0; index < 16; index++) {
33
+ bytes[index] = Number.parseInt(hex.slice(index * 2, index * 2 + 2), 16);
34
+ }
35
+ if (namespaces.size < constants_1.MAX_CACHED_NAMESPACES) {
36
+ namespaces.set(namespace, bytes);
37
+ }
38
+ return bytes;
39
+ };
40
+ return opts => {
41
+ const { namespace, name } = opts;
42
+ const namespaceBytes = resolveNamespace({ namespace });
43
+ // UTF-8 never exceeds 3 bytes per UTF-16 code unit.
44
+ const required = 16 + name.length * 3;
45
+ if (required > input.length) {
46
+ input = new Uint8Array(required);
47
+ nameView = input.subarray(16);
48
+ }
49
+ input.set(namespaceBytes);
50
+ const { written } = encoder.encodeInto(name, nameView);
51
+ const digest = sha1_1.Sha1Digest.of({ bytes: input.subarray(0, 16 + written) });
52
+ digest[6] = (digest[6] & 0x0f) | 0x50;
53
+ digest[8] = (digest[8] & 0x3f) | 0x80;
54
+ const hex = constants_1.UUID_HEX_OCTETS;
55
+ return (hex[digest[0]] +
56
+ hex[digest[1]] +
57
+ hex[digest[2]] +
58
+ hex[digest[3]] +
59
+ '-' +
60
+ hex[digest[4]] +
61
+ hex[digest[5]] +
62
+ '-' +
63
+ hex[digest[6]] +
64
+ hex[digest[7]] +
65
+ '-' +
66
+ hex[digest[8]] +
67
+ hex[digest[9]] +
68
+ '-' +
69
+ hex[digest[10]] +
70
+ hex[digest[11]] +
71
+ hex[digest[12]] +
72
+ hex[digest[13]] +
73
+ hex[digest[14]] +
74
+ hex[digest[15]]);
75
+ };
76
+ };
77
+ exports.createUuidV5 = createUuidV5;
78
+ /**
79
+ * Mints a deterministic UUID v5 from `namespace` and `name` - an idempotency key.
80
+ *
81
+ * Reproducible therefore NOT secret: never a share link, a reset token or an API key.
82
+ */
83
+ exports.uuidV5 = (0, exports.createUuidV5)();
84
+ //# sourceMappingURL=v5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v5.js","sourceRoot":"","sources":["../../../../../src/modules/uid/uuid/v5.ts"],"names":[],"mappings":"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"}
@@ -1,37 +1,5 @@
1
- import { BaseHelper } from '../../base';
2
- /**
3
- * RFC 9562 UUID version 7: 48-bit unix milliseconds, then randomness. Ids sort as text in creation
4
- * order, so a primary-key B-tree appends instead of splitting pages - measured on PGlite, 200k
5
- * inserts ran 11-36% faster with a 27% smaller index than version 4.
6
- *
7
- * Bun's native `randomUUIDv7` when present (monotonic, fastest); elsewhere - a browser - the same
8
- * shape from `getRandomValues`, with a 12-bit counter keeping ids ordered inside one millisecond.
9
- */
10
- export declare class UuidV7Generator extends BaseHelper {
11
- /** Realm-keyed: a dual CJS+ESM build puts two copies of this class in one process, and two counters would interleave out of order. */
12
- private static readonly SHARED_SLOT;
13
- /** 256 ids of entropy per `getRandomValues` call. */
14
- private static readonly POOL_SIZE;
15
- private static readonly MAX_COUNTER;
16
- /**
17
- * The resolved generator ITSELF, not a method wrapping it: `nextId()` then lands directly on
18
- * `Bun.randomUUIDv7` with no frame in between - measured 7 ns per id on this machine.
19
- */
20
- readonly nextId: () => string;
21
- private readonly pool;
22
- private offset;
23
- private lastMs;
24
- private counter;
25
- /** `xxxxxxxx-xxxx-` for `lastMs`, rebuilt only when the millisecond changes. */
26
- private prefix;
27
- constructor(opts?: {
28
- scope?: string;
29
- });
30
- /** One sequence per realm: ids from every caller stay ordered against each other, across both module copies. */
31
- static getInstance(): UuidV7Generator;
32
- private fromEntropy;
33
- /** Seeds below 0x800, leaving at least 2048 increments inside the millisecond. */
34
- private drawCounterSeed;
35
- private renderPrefix;
36
- }
1
+ /** Builds a v7 generator with its own clock state and counter. */
2
+ export declare const createUuidV7: () => (() => string);
3
+ /** Mints a time-ordered UUID v7 - the default for a string primary key. */
4
+ export declare const uuidV7: () => string;
37
5
  //# sourceMappingURL=v7.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"v7.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uid/uuid/v7.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,sIAAsI;IACtI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAA0D;IAE7F,qDAAqD;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAW;IAE5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAS;IAE5C;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6C;IAClE,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAK;IACpB,gFAAgF;IAChF,OAAO,CAAC,MAAM,CAAM;gBAER,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAUrC,gHAAgH;IAChH,MAAM,CAAC,WAAW,IAAI,eAAe;IAcrC,OAAO,CAAC,WAAW;IA2CnB,kFAAkF;IAClF,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,YAAY;CAkBrB"}
1
+ {"version":3,"file":"v7.d.ts","sourceRoot":"","sources":["../../../../../src/modules/uid/uuid/v7.ts"],"names":[],"mappings":"AAQA,kEAAkE;AAClE,eAAO,MAAM,YAAY,QAAO,CAAC,MAAM,MAAM,CAsF5C,CAAC;AAQF,2EAA2E;AAC3E,eAAO,MAAM,MAAM,EAAE,MAAM,MAAmB,CAAC"}
@@ -1,69 +1,71 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UuidV7Generator = void 0;
4
- const base_1 = require("../../base");
3
+ exports.uuidV7 = exports.createUuidV7 = void 0;
5
4
  const constants_1 = require("./common/constants");
6
- /**
7
- * RFC 9562 UUID version 7: 48-bit unix milliseconds, then randomness. Ids sort as text in creation
8
- * order, so a primary-key B-tree appends instead of splitting pages - measured on PGlite, 200k
9
- * inserts ran 11-36% faster with a 27% smaller index than version 4.
10
- *
11
- * Bun's native `randomUUIDv7` when present (monotonic, fastest); elsewhere - a browser - the same
12
- * shape from `getRandomValues`, with a 12-bit counter keeping ids ordered inside one millisecond.
13
- */
14
- class UuidV7Generator extends base_1.BaseHelper {
15
- /** Realm-keyed: a dual CJS+ESM build puts two copies of this class in one process, and two counters would interleave out of order. */
16
- static { this.SHARED_SLOT = Symbol.for('@venizia/ignis-helpers:uuid-v7-generator'); }
17
- /** 256 ids of entropy per `getRandomValues` call. */
18
- static { this.POOL_SIZE = 8 * 256; }
19
- static { this.MAX_COUNTER = 0xfff; }
20
- constructor(opts) {
21
- super({ scope: opts?.scope ?? UuidV7Generator.name });
22
- this.pool = new Uint8Array(UuidV7Generator.POOL_SIZE);
23
- this.offset = UuidV7Generator.POOL_SIZE;
24
- this.lastMs = -1;
25
- this.counter = 0;
26
- /** `xxxxxxxx-xxxx-` for `lastMs`, rebuilt only when the millisecond changes. */
27
- this.prefix = '';
28
- // Through `globalThis`: a member access on the bare global survives into a browser bundle and
29
- // the purity gate rejects the whole entry for it.
30
- const runtime = Reflect.get(globalThis, 'Bun');
31
- const native = runtime?.randomUUIDv7;
32
- this.nextId = typeof native === 'function' ? native : () => this.fromEntropy();
5
+ /** One sequence per realm: the CJS and ESM copies must not interleave two counters. */
6
+ const SHARED_SLOT = Symbol.for('@venizia/ignis-helpers:uuid-v7');
7
+ const POOL_SIZE = 8 * 256;
8
+ const MAX_COUNTER = 0xfff;
9
+ /** Builds a v7 generator with its own clock state and counter. */
10
+ const createUuidV7 = () => {
11
+ // Through `globalThis`: a member access on the bare global fails the browser-purity gate.
12
+ const runtime = Reflect.get(globalThis, 'Bun');
13
+ const native = runtime?.randomUUIDv7;
14
+ if (typeof native === 'function') {
15
+ return native;
33
16
  }
34
- /** One sequence per realm: ids from every caller stay ordered against each other, across both module copies. */
35
- static getInstance() {
36
- const shared = Reflect.get(globalThis, UuidV7Generator.SHARED_SLOT);
37
- if (shared) {
38
- return shared;
17
+ const pool = new Uint8Array(POOL_SIZE);
18
+ let offset = POOL_SIZE;
19
+ let lastMs = -1;
20
+ let counter = 0;
21
+ let prefix = '';
22
+ /** Draws a counter seed below 0x800, leaving room to climb inside the millisecond. */
23
+ const drawCounterSeed = () => {
24
+ if (offset > POOL_SIZE - 2) {
25
+ globalThis.crypto.getRandomValues(pool);
26
+ offset = 0;
39
27
  }
40
- const created = new UuidV7Generator();
41
- Reflect.set(globalThis, UuidV7Generator.SHARED_SLOT, created);
42
- return created;
43
- }
44
- fromEntropy() {
28
+ const seed = ((pool[offset] << 8) | pool[offset + 1]) & 0x7ff;
29
+ offset += 2;
30
+ return seed;
31
+ };
32
+ /** Renders the 48-bit timestamp half of the id. */
33
+ const renderPrefix = (opts) => {
34
+ const { ms } = opts;
35
+ const hex = constants_1.UUID_HEX_OCTETS;
36
+ // 48 bits exceed the 32-bit bitwise range: split at 24 bits with arithmetic first.
37
+ const high = Math.floor(ms / 0x1000000);
38
+ const low = ms % 0x1000000;
39
+ return (hex[(high >>> 16) & 0xff] +
40
+ hex[(high >>> 8) & 0xff] +
41
+ hex[high & 0xff] +
42
+ hex[(low >>> 16) & 0xff] +
43
+ '-' +
44
+ hex[(low >>> 8) & 0xff] +
45
+ hex[low & 0xff] +
46
+ '-');
47
+ };
48
+ return () => {
45
49
  const now = Date.now();
46
- if (now > this.lastMs) {
47
- this.lastMs = now;
48
- this.counter = this.drawCounterSeed();
49
- this.prefix = this.renderPrefix({ ms: now });
50
+ if (now > lastMs) {
51
+ lastMs = now;
52
+ counter = drawCounterSeed();
53
+ prefix = renderPrefix({ ms: now });
50
54
  }
51
- else if (++this.counter > UuidV7Generator.MAX_COUNTER) {
55
+ else if (++counter > MAX_COUNTER) {
52
56
  // Counter spent, or the clock stepped back: borrow the next millisecond rather than repeat.
53
- this.lastMs += 1;
54
- this.counter = this.drawCounterSeed();
55
- this.prefix = this.renderPrefix({ ms: this.lastMs });
57
+ lastMs += 1;
58
+ counter = drawCounterSeed();
59
+ prefix = renderPrefix({ ms: lastMs });
56
60
  }
57
- if (this.offset > UuidV7Generator.POOL_SIZE - 8) {
58
- globalThis.crypto.getRandomValues(this.pool);
59
- this.offset = 0;
61
+ if (offset > POOL_SIZE - 8) {
62
+ globalThis.crypto.getRandomValues(pool);
63
+ offset = 0;
60
64
  }
61
- const pool = this.pool;
62
- const at = this.offset;
63
- this.offset = at + 8;
65
+ const at = offset;
66
+ offset = at + 8;
64
67
  const hex = constants_1.UUID_HEX_OCTETS;
65
- const counter = this.counter;
66
- return (this.prefix +
68
+ return (prefix +
67
69
  hex[0x70 | (counter >>> 8)] +
68
70
  hex[counter & 0xff] +
69
71
  '-' +
@@ -76,32 +78,14 @@ class UuidV7Generator extends base_1.BaseHelper {
76
78
  hex[pool[at + 5]] +
77
79
  hex[pool[at + 6]] +
78
80
  hex[pool[at + 7]]);
79
- }
80
- /** Seeds below 0x800, leaving at least 2048 increments inside the millisecond. */
81
- drawCounterSeed() {
82
- if (this.offset > UuidV7Generator.POOL_SIZE - 2) {
83
- globalThis.crypto.getRandomValues(this.pool);
84
- this.offset = 0;
85
- }
86
- const seed = ((this.pool[this.offset] << 8) | this.pool[this.offset + 1]) & 0x7ff;
87
- this.offset += 2;
88
- return seed;
89
- }
90
- renderPrefix(opts) {
91
- const { ms } = opts;
92
- const hex = constants_1.UUID_HEX_OCTETS;
93
- // 48 bits exceed the 32-bit bitwise range: split at 24 bits with arithmetic first.
94
- const high = Math.floor(ms / 0x1000000);
95
- const low = ms % 0x1000000;
96
- return (hex[(high >>> 16) & 0xff] +
97
- hex[(high >>> 8) & 0xff] +
98
- hex[high & 0xff] +
99
- hex[(low >>> 16) & 0xff] +
100
- '-' +
101
- hex[(low >>> 8) & 0xff] +
102
- hex[low & 0xff] +
103
- '-');
104
- }
81
+ };
82
+ };
83
+ exports.createUuidV7 = createUuidV7;
84
+ const sharedV7 = Reflect.get(globalThis, SHARED_SLOT);
85
+ const resolvedV7 = sharedV7 ?? (0, exports.createUuidV7)();
86
+ if (!sharedV7) {
87
+ Reflect.set(globalThis, SHARED_SLOT, resolvedV7);
105
88
  }
106
- exports.UuidV7Generator = UuidV7Generator;
89
+ /** Mints a time-ordered UUID v7 - the default for a string primary key. */
90
+ exports.uuidV7 = resolvedV7;
107
91
  //# sourceMappingURL=v7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"v7.js","sourceRoot":"","sources":["../../../../../src/modules/uid/uuid/v7.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v7.js","sourceRoot":"","sources":["../../../../../src/modules/uid/uuid/v7.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './modules/uid/uuid';
2
+ //# sourceMappingURL=uuid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/uuid.ts"],"names":[],"mappings":"AACA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // The UUID primitives alone, for a browser bundle that wants an id and nothing else.
18
+ __exportStar(require("./modules/uid/uuid"), exports);
19
+ //# sourceMappingURL=uuid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../src/uuid.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qFAAqF;AACrF,qDAAmC"}
@@ -2,11 +2,14 @@ import { ILogger } from './logger/common/types.js';
2
2
  export declare class BaseHelper {
3
3
  scope: string;
4
4
  identifier: string;
5
- logger: ILogger;
6
5
  constructor(opts: {
7
6
  scope: string;
8
7
  identifier?: string;
9
8
  });
9
+ /** The helper's logger, resolved on first read - a helper that never logs never builds one. */
10
+ get logger(): ILogger;
11
+ /** Installs one logger on this helper - a test spy, or a host overriding the global resolver. */
12
+ set logger(value: ILogger);
10
13
  getIdentifier(): string;
11
14
  getLogger(): ILogger;
12
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/modules/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAGxD,qBAAa,UAAU;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;gBAEJ,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IASxD,aAAa;IAIb,SAAS,IAAI,OAAO;CAGrB"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/modules/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAGxD,qBAAa,UAAU;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;gBAEP,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAKxD,+FAA+F;IAC/F,IAAI,MAAM,IAAI,OAAO,CAKpB;IAED,iGAAiG;IACjG,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAExB;IAED,aAAa;IAIb,SAAS,IAAI,OAAO;CAGrB"}
@@ -1,12 +1,20 @@
1
- import { LoggerResolver } from './logger/resolver.js';
1
+ import { resolveHelperLogger, setHelperLogger } from './logger/slot.js';
2
2
  export class BaseHelper {
3
3
  constructor(opts) {
4
- this.logger = LoggerResolver.resolve({
5
- scopes: [opts.scope, opts.identifier ?? ''].filter(el => el && el.length > 0),
6
- });
7
4
  this.scope = opts.scope ?? '';
8
5
  this.identifier = opts.identifier ?? '';
9
6
  }
7
+ /** The helper's logger, resolved on first read - a helper that never logs never builds one. */
8
+ get logger() {
9
+ return resolveHelperLogger({
10
+ helper: this,
11
+ scopes: [this.scope, this.identifier].filter(scope => scope && scope.length > 0),
12
+ });
13
+ }
14
+ /** Installs one logger on this helper - a test spy, or a host overriding the global resolver. */
15
+ set logger(value) {
16
+ setHelperLogger({ helper: this, logger: value });
17
+ }
10
18
  getIdentifier() {
11
19
  return this.identifier;
12
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/modules/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,OAAO,UAAU;IAKrB,YAAY,IAA4C;QACtD,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SAC9E,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/modules/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,OAAO,UAAU;IAIrB,YAAY,IAA4C;QACtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,+FAA+F;IAC/F,IAAI,MAAM;QACR,OAAO,mBAAmB,CAAC;YACzB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACjF,CAAC,CAAC;IACL,CAAC;IAED,iGAAiG;IACjG,IAAI,MAAM,CAAC,KAAc;QACvB,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/modules/logger/resolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAa,MAAM,gBAAgB,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAAE,KAAK,OAAO,CAAC;AAoD3E,4JAA4J;AAC5J,qBAAa,cAAc;IACzB,2FAA2F;IAC3F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAIrC;IAEF,OAAO,CAAC,MAAM,CAAC,MAAM,CAAyC;IAC9D,OAAO,CAAC,MAAM,CAAC,UAAU,CAAK;IAE9B,kNAAkN;IAClN,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,eAAe,CAAA;KAAE,GAAG,IAAI;IAKrD,MAAM,CAAC,KAAK,IAAI,IAAI;IAKpB,wGAAwG;IACxG,MAAM,CAAC,iBAAiB,IAAI,MAAM;IAIlC,kFAAkF;IAClF,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO;IAI3D;;;;OAIG;IACH,MAAM,CAAC,uBAAuB,IAAI,IAAI;IAetC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO;IAIxD,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAS;CACjD"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../src/modules/logger/resolver.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAa,MAAM,gBAAgB,CAAC;AAGpD,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAAE,KAAK,OAAO,CAAC;AAoD3E,4JAA4J;AAC5J,qBAAa,cAAc;IACzB,2FAA2F;IAC3F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAIrC;IAEF,OAAO,CAAC,MAAM,CAAC,MAAM,CAAyC;IAC9D,OAAO,CAAC,MAAM,CAAC,UAAU,CAAK;IAE9B,kNAAkN;IAClN,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,eAAe,CAAA;KAAE,GAAG,IAAI;IAKrD,MAAM,CAAC,KAAK,IAAI,IAAI;IAKpB,wGAAwG;IACxG,MAAM,CAAC,iBAAiB,IAAI,MAAM;IAIlC,kFAAkF;IAClF,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO;IAI3D;;;;OAIG;IACH,MAAM,CAAC,uBAAuB,IAAI,IAAI;IAetC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO;IAIxD,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAS;CACjD"}