@venizia/ignis-helpers 0.2.0-0 → 0.2.0-1

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.
@@ -3,18 +3,27 @@ import { BaseHelper } from '../base';
3
3
  * The correlation id every IGNIS host stamps on a request, so a server, a browser Worker and the
4
4
  * page calling it cannot drift into different formats.
5
5
  *
6
- * Never `crypto.randomUUID()`, which is `hono/request-id`'s own default: browsers expose it only in
7
- * a SECURE CONTEXT, so on plain http it is `undefined` and the call throws.
6
+ * Never `crypto.randomUUID()` on its own, which is `hono/request-id`'s default: browsers gate that
7
+ * one API on a SECURE CONTEXT. Measured in Chrome - on `http://<lan-ip>` both the page and a Worker
8
+ * report `crypto` present and `getRandomValues` working, while `randomUUID` and `subtle` are
9
+ * `undefined` and the call throws `TypeError`. On `http://localhost` (a secure origin) all four are
10
+ * there. So the gate follows the ORIGIN, not the worker: testing from a phone over the LAN is
11
+ * enough to lose it.
8
12
  *
9
- * The fallback matters because `nextId()` refuses a backwards clock jump over 100ms, which a
10
- * sleeping/resuming tab really sees - a correlation token should degrade, not fail the request.
13
+ * `getRandomValues` carries no such gate, so the fallback below builds the identical shape from raw
14
+ * entropy - a log pipeline cannot tell the two paths apart.
11
15
  */
12
16
  export declare class RequestIdGenerator extends BaseHelper {
13
- private readonly snowflake;
14
- private fallbackSequence;
17
+ /** 256 pre-rendered octets: formatting a byte as hex costs more than drawing the entropy does. */
18
+ private static readonly HEX_OCTETS;
19
+ /** Reused across calls - `nextId()` never yields between filling this and reading it. */
20
+ private readonly entropy;
21
+ private readonly generate;
15
22
  constructor(opts?: {
16
23
  scope?: string;
17
24
  });
18
25
  nextId(): string;
26
+ /** RFC 9562 version 4, same shape `crypto.randomUUID()` returns: version nibble 4, variant 10xx. */
27
+ private uuidFromEntropy;
19
28
  }
20
29
  //# sourceMappingURL=request-id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-id.d.ts","sourceRoot":"","sources":["../../../../src/modules/uid/request-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,gBAAgB,CAAK;gBAEjB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAKrC,MAAM,IAAI,MAAM;CAgBjB"}
1
+ {"version":3,"file":"request-id.d.ts","sourceRoot":"","sources":["../../../../src/modules/uid/request-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;IAChD,kGAAkG;IAClG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAEhC;IAEF,yFAAyF;IACzF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;gBAE5B,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAWrC,MAAM,IAAI,MAAM;IAIhB,oGAAoG;IACpG,OAAO,CAAC,eAAe;CAgCxB"}
@@ -2,34 +2,64 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RequestIdGenerator = void 0;
4
4
  const base_1 = require("../base");
5
- const helper_1 = require("./helper");
6
5
  /**
7
6
  * The correlation id every IGNIS host stamps on a request, so a server, a browser Worker and the
8
7
  * page calling it cannot drift into different formats.
9
8
  *
10
- * Never `crypto.randomUUID()`, which is `hono/request-id`'s own default: browsers expose it only in
11
- * a SECURE CONTEXT, so on plain http it is `undefined` and the call throws.
9
+ * Never `crypto.randomUUID()` on its own, which is `hono/request-id`'s default: browsers gate that
10
+ * one API on a SECURE CONTEXT. Measured in Chrome - on `http://<lan-ip>` both the page and a Worker
11
+ * report `crypto` present and `getRandomValues` working, while `randomUUID` and `subtle` are
12
+ * `undefined` and the call throws `TypeError`. On `http://localhost` (a secure origin) all four are
13
+ * there. So the gate follows the ORIGIN, not the worker: testing from a phone over the LAN is
14
+ * enough to lose it.
12
15
  *
13
- * The fallback matters because `nextId()` refuses a backwards clock jump over 100ms, which a
14
- * sleeping/resuming tab really sees - a correlation token should degrade, not fail the request.
16
+ * `getRandomValues` carries no such gate, so the fallback below builds the identical shape from raw
17
+ * entropy - a log pipeline cannot tell the two paths apart.
15
18
  */
16
19
  class RequestIdGenerator extends base_1.BaseHelper {
20
+ /** 256 pre-rendered octets: formatting a byte as hex costs more than drawing the entropy does. */
21
+ static { this.HEX_OCTETS = Array.from({ length: 256 }, (_, value) => (value + 0x100).toString(16).slice(1)); }
17
22
  constructor(opts) {
18
23
  super({ scope: opts?.scope ?? RequestIdGenerator.name });
19
- this.fallbackSequence = 0;
20
- this.snowflake = new helper_1.SnowflakeUidHelper();
24
+ /** Reused across calls - `nextId()` never yields between filling this and reading it. */
25
+ this.entropy = new Uint8Array(16);
26
+ // Resolved once, not per call: whether the host exposes `randomUUID` is fixed for the life of a
27
+ // realm, so a per-request branch would only pay for a question already answered.
28
+ this.generate =
29
+ typeof globalThis.crypto?.randomUUID === 'function'
30
+ ? () => globalThis.crypto.randomUUID()
31
+ : () => this.uuidFromEntropy();
21
32
  }
22
33
  nextId() {
23
- try {
24
- return this.snowflake.nextId();
25
- }
26
- catch (error) {
27
- this.fallbackSequence += 1;
28
- this.logger
29
- .for(this.nextId.name)
30
- .warn('Snowflake refused to generate a request id, falling back | error: %s', error instanceof Error ? error.message : String(error));
31
- return `fallback-${Date.now()}-${this.fallbackSequence}`;
32
- }
34
+ return this.generate();
35
+ }
36
+ /** RFC 9562 version 4, same shape `crypto.randomUUID()` returns: version nibble 4, variant 10xx. */
37
+ uuidFromEntropy() {
38
+ const bytes = this.entropy;
39
+ globalThis.crypto.getRandomValues(bytes);
40
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
41
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
42
+ const hex = RequestIdGenerator.HEX_OCTETS;
43
+ return (hex[bytes[0]] +
44
+ hex[bytes[1]] +
45
+ hex[bytes[2]] +
46
+ hex[bytes[3]] +
47
+ '-' +
48
+ hex[bytes[4]] +
49
+ hex[bytes[5]] +
50
+ '-' +
51
+ hex[bytes[6]] +
52
+ hex[bytes[7]] +
53
+ '-' +
54
+ hex[bytes[8]] +
55
+ hex[bytes[9]] +
56
+ '-' +
57
+ hex[bytes[10]] +
58
+ hex[bytes[11]] +
59
+ hex[bytes[12]] +
60
+ hex[bytes[13]] +
61
+ hex[bytes[14]] +
62
+ hex[bytes[15]]);
33
63
  }
34
64
  }
35
65
  exports.RequestIdGenerator = RequestIdGenerator;
@@ -1 +1 @@
1
- {"version":3,"file":"request-id.js","sourceRoot":"","sources":["../../../../src/modules/uid/request-id.ts"],"names":[],"mappings":";;;AAAA,kCAAqC;AACrC,qCAA8C;AAE9C;;;;;;;;;GASG;AACH,MAAa,kBAAmB,SAAQ,iBAAU;IAIhD,YAAY,IAAyB;QACnC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;QAHnD,qBAAgB,GAAG,CAAC,CAAC;QAI3B,IAAI,CAAC,SAAS,GAAG,IAAI,2BAAkB,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM;QACJ,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;YAE3B,IAAI,CAAC,MAAM;iBACR,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;iBACrB,IAAI,CACH,sEAAsE,EACtE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;YAEJ,OAAO,YAAY,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3D,CAAC;IACH,CAAC;CACF;AAzBD,gDAyBC"}
1
+ {"version":3,"file":"request-id.js","sourceRoot":"","sources":["../../../../src/modules/uid/request-id.ts"],"names":[],"mappings":";;;AAAA,kCAAqC;AAErC;;;;;;;;;;;;;GAaG;AACH,MAAa,kBAAmB,SAAQ,iBAAU;IAChD,kGAAkG;aAC1E,eAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAC5E,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACtC,AAFiC,CAEhC;IAOF,YAAY,IAAyB;QACnC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;QAN3D,yFAAyF;QACxE,YAAO,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAO5C,gGAAgG;QAChG,iFAAiF;QACjF,IAAI,CAAC,QAAQ;YACX,OAAO,UAAU,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU;gBACjD,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE;gBACtC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACrC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,oGAAoG;IAC5F,eAAe;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEzC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACpC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAEpC,MAAM,GAAG,GAAG,kBAAkB,CAAC,UAAU,CAAC;QAE1C,OAAO,CACL,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG;YACH,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG;YACH,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG;YACH,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG;YACH,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CACf,CAAC;IACJ,CAAC;;AA1DH,gDA2DC"}
@@ -3,18 +3,27 @@ import { BaseHelper } from '../base.js';
3
3
  * The correlation id every IGNIS host stamps on a request, so a server, a browser Worker and the
4
4
  * page calling it cannot drift into different formats.
5
5
  *
6
- * Never `crypto.randomUUID()`, which is `hono/request-id`'s own default: browsers expose it only in
7
- * a SECURE CONTEXT, so on plain http it is `undefined` and the call throws.
6
+ * Never `crypto.randomUUID()` on its own, which is `hono/request-id`'s default: browsers gate that
7
+ * one API on a SECURE CONTEXT. Measured in Chrome - on `http://<lan-ip>` both the page and a Worker
8
+ * report `crypto` present and `getRandomValues` working, while `randomUUID` and `subtle` are
9
+ * `undefined` and the call throws `TypeError`. On `http://localhost` (a secure origin) all four are
10
+ * there. So the gate follows the ORIGIN, not the worker: testing from a phone over the LAN is
11
+ * enough to lose it.
8
12
  *
9
- * The fallback matters because `nextId()` refuses a backwards clock jump over 100ms, which a
10
- * sleeping/resuming tab really sees - a correlation token should degrade, not fail the request.
13
+ * `getRandomValues` carries no such gate, so the fallback below builds the identical shape from raw
14
+ * entropy - a log pipeline cannot tell the two paths apart.
11
15
  */
12
16
  export declare class RequestIdGenerator extends BaseHelper {
13
- private readonly snowflake;
14
- private fallbackSequence;
17
+ /** 256 pre-rendered octets: formatting a byte as hex costs more than drawing the entropy does. */
18
+ private static readonly HEX_OCTETS;
19
+ /** Reused across calls - `nextId()` never yields between filling this and reading it. */
20
+ private readonly entropy;
21
+ private readonly generate;
15
22
  constructor(opts?: {
16
23
  scope?: string;
17
24
  });
18
25
  nextId(): string;
26
+ /** RFC 9562 version 4, same shape `crypto.randomUUID()` returns: version nibble 4, variant 10xx. */
27
+ private uuidFromEntropy;
19
28
  }
20
29
  //# sourceMappingURL=request-id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-id.d.ts","sourceRoot":"","sources":["../../../../src/modules/uid/request-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,gBAAgB,CAAK;gBAEjB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAKrC,MAAM,IAAI,MAAM;CAgBjB"}
1
+ {"version":3,"file":"request-id.d.ts","sourceRoot":"","sources":["../../../../src/modules/uid/request-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;IAChD,kGAAkG;IAClG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAEhC;IAEF,yFAAyF;IACzF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAE9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;gBAE5B,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAWrC,MAAM,IAAI,MAAM;IAIhB,oGAAoG;IACpG,OAAO,CAAC,eAAe;CAgCxB"}
@@ -1,32 +1,62 @@
1
1
  import { BaseHelper } from '../base.js';
2
- import { SnowflakeUidHelper } from './helper.js';
3
2
  /**
4
3
  * The correlation id every IGNIS host stamps on a request, so a server, a browser Worker and the
5
4
  * page calling it cannot drift into different formats.
6
5
  *
7
- * Never `crypto.randomUUID()`, which is `hono/request-id`'s own default: browsers expose it only in
8
- * a SECURE CONTEXT, so on plain http it is `undefined` and the call throws.
6
+ * Never `crypto.randomUUID()` on its own, which is `hono/request-id`'s default: browsers gate that
7
+ * one API on a SECURE CONTEXT. Measured in Chrome - on `http://<lan-ip>` both the page and a Worker
8
+ * report `crypto` present and `getRandomValues` working, while `randomUUID` and `subtle` are
9
+ * `undefined` and the call throws `TypeError`. On `http://localhost` (a secure origin) all four are
10
+ * there. So the gate follows the ORIGIN, not the worker: testing from a phone over the LAN is
11
+ * enough to lose it.
9
12
  *
10
- * The fallback matters because `nextId()` refuses a backwards clock jump over 100ms, which a
11
- * sleeping/resuming tab really sees - a correlation token should degrade, not fail the request.
13
+ * `getRandomValues` carries no such gate, so the fallback below builds the identical shape from raw
14
+ * entropy - a log pipeline cannot tell the two paths apart.
12
15
  */
13
16
  export class RequestIdGenerator extends BaseHelper {
17
+ /** 256 pre-rendered octets: formatting a byte as hex costs more than drawing the entropy does. */
18
+ static { this.HEX_OCTETS = Array.from({ length: 256 }, (_, value) => (value + 0x100).toString(16).slice(1)); }
14
19
  constructor(opts) {
15
20
  super({ scope: opts?.scope ?? RequestIdGenerator.name });
16
- this.fallbackSequence = 0;
17
- this.snowflake = new SnowflakeUidHelper();
21
+ /** Reused across calls - `nextId()` never yields between filling this and reading it. */
22
+ this.entropy = new Uint8Array(16);
23
+ // Resolved once, not per call: whether the host exposes `randomUUID` is fixed for the life of a
24
+ // realm, so a per-request branch would only pay for a question already answered.
25
+ this.generate =
26
+ typeof globalThis.crypto?.randomUUID === 'function'
27
+ ? () => globalThis.crypto.randomUUID()
28
+ : () => this.uuidFromEntropy();
18
29
  }
19
30
  nextId() {
20
- try {
21
- return this.snowflake.nextId();
22
- }
23
- catch (error) {
24
- this.fallbackSequence += 1;
25
- this.logger
26
- .for(this.nextId.name)
27
- .warn('Snowflake refused to generate a request id, falling back | error: %s', error instanceof Error ? error.message : String(error));
28
- return `fallback-${Date.now()}-${this.fallbackSequence}`;
29
- }
31
+ return this.generate();
32
+ }
33
+ /** RFC 9562 version 4, same shape `crypto.randomUUID()` returns: version nibble 4, variant 10xx. */
34
+ uuidFromEntropy() {
35
+ const bytes = this.entropy;
36
+ globalThis.crypto.getRandomValues(bytes);
37
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
38
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
39
+ const hex = RequestIdGenerator.HEX_OCTETS;
40
+ return (hex[bytes[0]] +
41
+ hex[bytes[1]] +
42
+ hex[bytes[2]] +
43
+ hex[bytes[3]] +
44
+ '-' +
45
+ hex[bytes[4]] +
46
+ hex[bytes[5]] +
47
+ '-' +
48
+ hex[bytes[6]] +
49
+ hex[bytes[7]] +
50
+ '-' +
51
+ hex[bytes[8]] +
52
+ hex[bytes[9]] +
53
+ '-' +
54
+ hex[bytes[10]] +
55
+ hex[bytes[11]] +
56
+ hex[bytes[12]] +
57
+ hex[bytes[13]] +
58
+ hex[bytes[14]] +
59
+ hex[bytes[15]]);
30
60
  }
31
61
  }
32
62
  //# sourceMappingURL=request-id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-id.js","sourceRoot":"","sources":["../../../../src/modules/uid/request-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAIhD,YAAY,IAAyB;QACnC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;QAHnD,qBAAgB,GAAG,CAAC,CAAC;QAI3B,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM;QACJ,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;YAE3B,IAAI,CAAC,MAAM;iBACR,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;iBACrB,IAAI,CACH,sEAAsE,EACtE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;YAEJ,OAAO,YAAY,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3D,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"request-id.js","sourceRoot":"","sources":["../../../../src/modules/uid/request-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAChD,kGAAkG;aAC1E,eAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAC5E,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACtC,AAFiC,CAEhC;IAOF,YAAY,IAAyB;QACnC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;QAN3D,yFAAyF;QACxE,YAAO,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAO5C,gGAAgG;QAChG,iFAAiF;QACjF,IAAI,CAAC,QAAQ;YACX,OAAO,UAAU,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU;gBACjD,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE;gBACtC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACrC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED,oGAAoG;IAC5F,eAAe;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEzC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACpC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAEpC,MAAM,GAAG,GAAG,kBAAkB,CAAC,UAAU,CAAC;QAE1C,OAAO,CACL,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG;YACH,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG;YACH,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG;YACH,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,GAAG;YACH,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CACf,CAAC;IACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venizia/ignis-helpers",
3
- "version": "0.2.0-0",
3
+ "version": "0.2.0-1",
4
4
  "description": "Production-ready TypeScript utility library: pluggable logging (winston or pino behind one ILogger contract), Redis single/cluster/sentinel with pub/sub, BullMQ/MQTT/Kafka message queues, MinIO/Disk/Bun-S3 object storage, AES-256/RSA/ECDH cryptography, Snowflake UID generation, cron scheduling, Socket.IO/WebSocket, TCP/TLS/UDP networking, HTTP clients, secrets/Vault, worker thread pools, and environment management. Sub-path imports isolate optional peer dependencies so the root barrel never forces a peer into your bundle.",
5
5
  "keywords": [
6
6
  "aes",