@zintrust/core 2.8.3 → 2.8.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zintrust/core",
3
- "version": "2.8.3",
3
+ "version": "2.8.4",
4
4
  "description": "Production-grade TypeScript backend framework for JavaScript",
5
5
  "homepage": "https://zintrust.com",
6
6
  "repository": {
@@ -0,0 +1,6 @@
1
+ export declare const readWorkersEnvString: (key: string) => string;
2
+ export declare const readWorkersFallbackString: (workersKey: string, fallbackKey: string, fallback?: string, includeFallbackWorkerBinding?: boolean) => string;
3
+ export declare const readWorkersFallbackInt: (workersKey: string, fallbackKey: string, fallback: number, includeFallbackWorkerBinding?: boolean) => number;
4
+ export declare const readWorkersFallbackBool: (workersKey: string, fallbackKey: string, fallback: boolean) => boolean;
5
+ export declare const parseJsonObjectEnv: (key: string) => Record<string, unknown> | undefined;
6
+ //# sourceMappingURL=EnvFallbackUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvFallbackUtils.d.ts","sourceRoot":"","sources":["../../../src/common/EnvFallbackUtils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB,GAAI,KAAK,MAAM,KAAG,MAIlD,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,YAAY,MAAM,EAClB,aAAa,MAAM,EACnB,iBAAa,EACb,sCAAoC,KACnC,MAUF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,YAAY,MAAM,EAClB,aAAa,MAAM,EACnB,UAAU,MAAM,EAChB,sCAAoC,KACnC,MAUF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,YAAY,MAAM,EAClB,aAAa,MAAM,EACnB,UAAU,OAAO,KAChB,OAMF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAa1E,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { Cloudflare } from '../config/cloudflare.js';
2
+ import { Env } from '../config/env.js';
3
+ const normalizeEnvString = (value, fallback = '') => typeof value === 'string' ? value : fallback;
4
+ export const readWorkersEnvString = (key) => {
5
+ const workerValue = Cloudflare.getWorkersVar(key);
6
+ if (workerValue !== null && workerValue.trim() !== '')
7
+ return workerValue;
8
+ return '';
9
+ };
10
+ export const readWorkersFallbackString = (workersKey, fallbackKey, fallback = '', includeFallbackWorkerBinding = false) => {
11
+ const workerValue = readWorkersEnvString(workersKey);
12
+ if (workerValue.trim() !== '')
13
+ return workerValue;
14
+ if (includeFallbackWorkerBinding) {
15
+ const fallbackWorkerValue = readWorkersEnvString(fallbackKey);
16
+ if (fallbackWorkerValue.trim() !== '')
17
+ return fallbackWorkerValue;
18
+ }
19
+ return normalizeEnvString(Env.get(fallbackKey, fallback), fallback);
20
+ };
21
+ export const readWorkersFallbackInt = (workersKey, fallbackKey, fallback, includeFallbackWorkerBinding = false) => {
22
+ const raw = readWorkersFallbackString(workersKey, fallbackKey, String(fallback), includeFallbackWorkerBinding);
23
+ if (raw.trim() === '')
24
+ return fallback;
25
+ const parsed = Number.parseInt(raw, 10);
26
+ return Number.isFinite(parsed) ? parsed : fallback;
27
+ };
28
+ export const readWorkersFallbackBool = (workersKey, fallbackKey, fallback) => {
29
+ const workerValue = readWorkersEnvString(workersKey);
30
+ if (workerValue.trim() !== '') {
31
+ return workerValue === 'true' || workerValue === '1';
32
+ }
33
+ return Env.getBool(fallbackKey, fallback);
34
+ };
35
+ export const parseJsonObjectEnv = (key) => {
36
+ const value = Env.get(key, '');
37
+ const raw = typeof value === 'string' ? value.trim() : '';
38
+ if (raw === '')
39
+ return undefined;
40
+ try {
41
+ const parsed = JSON.parse(raw);
42
+ if (typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)) {
43
+ return parsed;
44
+ }
45
+ }
46
+ catch {
47
+ return { value: raw };
48
+ }
49
+ return undefined;
50
+ };
@@ -2,6 +2,7 @@
2
2
  * Shared Utilities for External Service Drivers
3
3
  * Common patterns for API calls, environment variable reading, and error handling
4
4
  */
5
+ export { parseJsonObjectEnv, readWorkersEnvString, readWorkersFallbackBool, readWorkersFallbackInt, readWorkersFallbackString, } from './EnvFallbackUtils';
5
6
  export type TracedFetchTraceOptions = {
6
7
  source?: string;
7
8
  };
@@ -10,11 +11,6 @@ export type TracedFetchTraceOptions = {
10
11
  * Handles both Env.get() and process.env for maximum compatibility
11
12
  */
12
13
  export declare const readEnvString: (key: string, fallback?: string) => string;
13
- export declare const readWorkersEnvString: (key: string) => string;
14
- export declare const readWorkersFallbackString: (workersKey: string, fallbackKey: string, fallback?: string, includeFallbackWorkerBinding?: boolean) => string;
15
- export declare const readWorkersFallbackInt: (workersKey: string, fallbackKey: string, fallback: number, includeFallbackWorkerBinding?: boolean) => number;
16
- export declare const readWorkersFallbackBool: (workersKey: string, fallbackKey: string, fallback: boolean) => boolean;
17
- export declare const parseJsonObjectEnv: (key: string) => Record<string, unknown> | undefined;
18
14
  /**
19
15
  * Validate required parameters for external service calls
20
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalServiceUtils.d.ts","sourceRoot":"","sources":["../../../src/common/ExternalServiceUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAkHF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,iBAAa,KAAG,MAe1D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,KAAK,MAAM,KAAG,MAIlD,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,YAAY,MAAM,EAClB,aAAa,MAAM,EACnB,iBAAa,EACb,sCAAoC,KACnC,MAUF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,YAAY,MAAM,EAClB,aAAa,MAAM,EACnB,UAAU,MAAM,EAChB,sCAAoC,KACnC,MAUF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,YAAY,MAAM,EAClB,aAAa,MAAM,EACnB,UAAU,OAAO,KAChB,OAMF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAY1E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,MAAM,EAAE,KACjB,IAWF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,SAAS,MAAM,KAAG,KAEjE,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,KAAK,MAAM,EACX,SAAS,WAAW,EACpB,QAAQ,uBAAuB,KAC9B,OAAO,CAAC,QAAQ,CAWlB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GACpB,KAAK,MAAM,EACX,SAAS,WAAW,EACpB,QAAQ,uBAAuB,KAC9B,OAAO,CAAC,QAAQ,CAclB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAChC,SAAS,OAAO,EAChB,OAAO,CAAC,EACR,QAAQ,MAAM,KACb;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAY9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB;;OAEG;iBACU,MAAM;IAMnB;;OAEG;oBACa,MAAM;IAItB;;OAEG;8BACuB,MAAM,GAAG,OAAO;IAI1C;;OAEG;gCAEO,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,eACpD,MAAM,UACX,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;IAYjC;;OAEG;+BAEO,WAAW,GAAG,WAAW,eACpB,MAAM,SACZ,KAAK,UACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;CASlC,CAAC"}
1
+ {"version":3,"file":"ExternalServiceUtils.d.ts","sourceRoot":"","sources":["../../../src/common/ExternalServiceUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAkHF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,iBAAa,KAAG,MAe1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,MAAM,EAAE,KACjB,IAWF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,SAAS,MAAM,KAAG,KAEjE,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,KAAK,MAAM,EACX,SAAS,WAAW,EACpB,QAAQ,uBAAuB,KAC9B,OAAO,CAAC,QAAQ,CAWlB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,GACpB,KAAK,MAAM,EACX,SAAS,WAAW,EACpB,QAAQ,uBAAuB,KAC9B,OAAO,CAAC,QAAQ,CAclB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAChC,SAAS,OAAO,EAChB,OAAO,CAAC,EACR,QAAQ,MAAM,KACb;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAY9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB;;OAEG;iBACU,MAAM;IAMnB;;OAEG;oBACa,MAAM;IAItB;;OAEG;8BACuB,MAAM,GAAG,OAAO;IAI1C;;OAEG;gCAEO,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,eACpD,MAAM,UACX,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;IAYjC;;OAEG;+BAEO,WAAW,GAAG,WAAW,eACpB,MAAM,SACZ,KAAK,UACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;CASlC,CAAC"}
@@ -3,9 +3,9 @@
3
3
  * Common patterns for API calls, environment variable reading, and error handling
4
4
  */
5
5
  import { SystemTraceBridge } from '../trace/SystemTraceBridge.js';
6
- import { Cloudflare } from '../config/cloudflare.js';
7
6
  import { Env } from '../config/env.js';
8
7
  import { ErrorFactory } from '../exceptions/ZintrustError.js';
8
+ export { parseJsonObjectEnv, readWorkersEnvString, readWorkersFallbackBool, readWorkersFallbackInt, readWorkersFallbackString, } from './EnvFallbackUtils.js';
9
9
  const isHeaderEntriesLike = (value) => {
10
10
  return typeof value === 'object' && value !== null && 'entries' in value;
11
11
  };
@@ -110,52 +110,6 @@ export const readEnvString = (key, fallback = '') => {
110
110
  }
111
111
  return fallback;
112
112
  };
113
- export const readWorkersEnvString = (key) => {
114
- const workerValue = Cloudflare.getWorkersVar(key);
115
- if (workerValue !== null && workerValue.trim() !== '')
116
- return workerValue;
117
- return '';
118
- };
119
- export const readWorkersFallbackString = (workersKey, fallbackKey, fallback = '', includeFallbackWorkerBinding = false) => {
120
- const workerValue = readWorkersEnvString(workersKey);
121
- if (workerValue.trim() !== '')
122
- return workerValue;
123
- if (includeFallbackWorkerBinding) {
124
- const fallbackWorkerValue = readWorkersEnvString(fallbackKey);
125
- if (fallbackWorkerValue.trim() !== '')
126
- return fallbackWorkerValue;
127
- }
128
- return readEnvString(fallbackKey, fallback);
129
- };
130
- export const readWorkersFallbackInt = (workersKey, fallbackKey, fallback, includeFallbackWorkerBinding = false) => {
131
- const raw = readWorkersFallbackString(workersKey, fallbackKey, String(fallback), includeFallbackWorkerBinding);
132
- if (raw.trim() === '')
133
- return fallback;
134
- const parsed = Number.parseInt(raw, 10);
135
- return Number.isFinite(parsed) ? parsed : fallback;
136
- };
137
- export const readWorkersFallbackBool = (workersKey, fallbackKey, fallback) => {
138
- const workerValue = readWorkersEnvString(workersKey);
139
- if (workerValue.trim() !== '') {
140
- return workerValue === 'true' || workerValue === '1';
141
- }
142
- return Env.getBool(fallbackKey, fallback);
143
- };
144
- export const parseJsonObjectEnv = (key) => {
145
- const raw = Env.get(key, '').trim();
146
- if (raw === '')
147
- return undefined;
148
- try {
149
- const parsed = JSON.parse(raw);
150
- if (typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)) {
151
- return parsed;
152
- }
153
- }
154
- catch {
155
- return { value: raw };
156
- }
157
- return undefined;
158
- };
159
113
  /**
160
114
  * Validate required parameters for external service calls
161
115
  */
@@ -3,7 +3,7 @@
3
3
  * Caching drivers and settings
4
4
  * Sealed namespace for immutability
5
5
  */
6
- import { parseJsonObjectEnv, readWorkersFallbackBool, readWorkersFallbackInt, readWorkersFallbackString, } from '../common/ExternalServiceUtils.js';
6
+ import { parseJsonObjectEnv, readWorkersFallbackBool, readWorkersFallbackInt, readWorkersFallbackString, } from '../common/EnvFallbackUtils.js';
7
7
  import { Env } from './env.js';
8
8
  import { ErrorFactory } from '../exceptions/ZintrustError.js';
9
9
  import { StartupConfigFile, StartupConfigFileRegistry } from '../runtime/StartupConfigFileRegistry.js';
@@ -3,7 +3,8 @@
3
3
  * Database connections and pooling settings
4
4
  * Sealed namespace for immutability
5
5
  */
6
- import { parseJsonObjectEnv, readEnvString, readWorkersFallbackInt as readSharedWorkersFallbackInt, readWorkersFallbackString as readSharedWorkersFallbackString, } from '../common/ExternalServiceUtils.js';
6
+ import { parseJsonObjectEnv, readWorkersFallbackInt as readSharedWorkersFallbackInt, readWorkersFallbackString as readSharedWorkersFallbackString, } from '../common/EnvFallbackUtils.js';
7
+ import { readEnvString } from '../common/ExternalServiceUtils.js';
7
8
  import { Env } from './env.js';
8
9
  import { ErrorFactory } from '../exceptions/ZintrustError.js';
9
10
  import { StartupConfigFile, StartupConfigFileRegistry } from '../runtime/StartupConfigFileRegistry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACpE,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;8BAkCoY,CAAC;;;;;;;;;;;;;;;;;;;;iFAhDrX,CAAA;;;;;;;;;;;;;;;;;;;;8BAD2B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAiDuuE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;EAH5xE,CAAC;AAEZ,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACpE,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;8BAkCoY,CAAC;;;;;;;;;;;;;;;;;;;;iFAhDrX,CAAA;;;;;;;;;;;;;;;;;;;;8BAD2B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAiDmuE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;EAHxxE,CAAC;AAEZ,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Background job and message queue settings
4
4
  * Sealed namespace for immutability
5
5
  */
6
- import { parseJsonObjectEnv, readWorkersFallbackBool, readWorkersFallbackInt, readWorkersFallbackString, } from '../common/ExternalServiceUtils.js';
6
+ import { parseJsonObjectEnv, readWorkersFallbackBool, readWorkersFallbackInt, readWorkersFallbackString, } from '../common/EnvFallbackUtils.js';
7
7
  import { Env } from './env.js';
8
8
  import { Logger } from './logger.js';
9
9
  import { ErrorFactory } from '../exceptions/ZintrustError.js';
@@ -1 +1 @@
1
- {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../../src/config/workers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAC;AAItC,OAAO,KAAK,EACV,WAAW,EAIX,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAibnC,eAAO,MAAM,qBAAqB,GAChC,QAAQ,WAAW,EACnB,mBAAc,EACd,UAAU,qBAAqB,KAC9B,OASF,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAa,OAAO,CAAC,IAAI,CAmB7D,CAAC;AAgFF,QAAA,MAAM,mBAAmB,QAAO,mBA2D/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAkBnE,eAAO,MAAM,aAAa,EAAE,aAY1B,CAAC"}
1
+ {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../../src/config/workers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAC;AAItC,OAAO,KAAK,EACV,WAAW,EAIX,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAibnC,eAAO,MAAM,qBAAqB,GAChC,QAAQ,WAAW,EACnB,mBAAc,EACd,UAAU,qBAAqB,KAC9B,OAcF,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAa,OAAO,CAAC,IAAI,CAmB7D,CAAC;AAgFF,QAAA,MAAM,mBAAmB,QAAO,mBA2D/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAkBnE,eAAO,MAAM,aAAa,EAAE,aAY1B,CAAC"}
@@ -329,7 +329,12 @@ export const createRedisConnection = (config, maxRetries = 3, options) => {
329
329
  const subsystem = options?.subsystem ?? '';
330
330
  const skipProxy = BULLMQ_SUBSYSTEMS.has(subsystem);
331
331
  const mode = skipProxy ? 'direct' : ensureRedisTransportMode(config, options);
332
- if (mode === 'proxy' || mode === 'rpc') {
332
+ // In zedgi mode, allow proxy connection for queue-monitor since we have a Zedgi-native driver
333
+ const allowProxyForZedgi = mode === 'zedgi' && subsystem === 'queue-monitor';
334
+ if (mode === 'proxy' || mode === 'rpc' || mode === 'zedgi') {
335
+ if (skipProxy && !allowProxyForZedgi) {
336
+ return createDirectRedisConnection(config, maxRetries, options);
337
+ }
333
338
  return createRedisProxyConnection(config, options);
334
339
  }
335
340
  return createDirectRedisConnection(config, maxRetries, options);
package/src/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @zintrust/core v2.8.3
2
+ * @zintrust/core v2.8.4
3
3
  *
4
4
  * ZinTrust Framework - Production-Grade TypeScript Backend
5
5
  * Built for performance, type safety, and exceptional developer experience
6
6
  *
7
7
  * Build Information:
8
- * Built: 2026-06-27T09:11:20.114Z
8
+ * Built: 2026-06-27T19:52:39.098Z
9
9
  * Node: >=20.0.0
10
10
  * License: MIT
11
11
  *
@@ -21,7 +21,7 @@
21
21
  * Available at runtime for debugging and health checks
22
22
  */
23
23
  export const ZINTRUST_VERSION = '0.1.41';
24
- export const ZINTRUST_BUILD_DATE = '2026-06-27T09:11:20.079Z'; // Replaced during build
24
+ export const ZINTRUST_BUILD_DATE = '2026-06-27T19:52:39.056Z'; // Replaced during build
25
25
  export { Application } from './boot/Application.js';
26
26
  export { AwsSigV4 } from './common/index.js';
27
27
  export { SignedRequest } from './security/SignedRequest.js';
@@ -6,4 +6,5 @@ export { RedisKeys, createRedisKey, extractOriginalKey, getBullMQSafeQueueName,
6
6
  export type { RedisConfig } from './config/type';
7
7
  export { createRedisConnection } from './config/workers';
8
8
  export type { RedisTransportOptions } from './tools/redis/RedisTransport';
9
+ export { isZedgiRedisExecutorRegistered, registerZedgiRedisExecutor, resolveRedisTransportMode, type RedisTransportMode, } from './tools/redis/RedisTransport';
9
10
  //# sourceMappingURL=redis-index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redis-index.d.ts","sourceRoot":"","sources":["../../src/redis-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,SAAS,EACT,QAAQ,EACR,KAAK,YAAY,GAClB,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"redis-index.d.ts","sourceRoot":"","sources":["../../src/redis-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,SAAS,EACT,QAAQ,EACR,KAAK,YAAY,GAClB,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGzE,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,KAAK,kBAAkB,GACxB,MAAM,6BAA6B,CAAC"}
@@ -5,3 +5,5 @@
5
5
  // Redis key manager
6
6
  export { RedisKeys, createRedisKey, extractOriginalKey, getBullMQSafeQueueName, getPrefix, isAppKey, } from './tools/redis/RedisKeyManager.js';
7
7
  export { createRedisConnection } from './config/workers.js';
8
+ // Redis transport and Zedgi integration
9
+ export { isZedgiRedisExecutorRegistered, registerZedgiRedisExecutor, resolveRedisTransportMode, } from './tools/redis/RedisTransport.js';
@@ -1 +1 @@
1
- {"version":3,"file":"QueueRuntimeRegistration.d.ts","sourceRoot":"","sources":["../../../../src/tools/queue/QueueRuntimeRegistration.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAsIjD,wBAAsB,+BAA+B,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDxF"}
1
+ {"version":3,"file":"QueueRuntimeRegistration.d.ts","sourceRoot":"","sources":["../../../../src/tools/queue/QueueRuntimeRegistration.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAuJjD,wBAAsB,+BAA+B,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDxF"}
@@ -1,5 +1,5 @@
1
- import { Logger } from '../../config/logger.js';
2
1
  import { Env } from '../../config/env.js';
2
+ import { Logger } from '../../config/logger.js';
3
3
  import { ErrorFactory } from '../../exceptions/ZintrustError.js';
4
4
  import { ZintrustLang } from '../../lang/lang.js';
5
5
  import { existsSync } from '../../node-singletons/fs.js';
@@ -7,10 +7,10 @@ import * as path from '../../node-singletons/path.js';
7
7
  import { pathToFileURL } from '../../node-singletons/url.js';
8
8
  import { detectRuntime } from '../../runtime/detectRuntime.js';
9
9
  import { DatabaseQueue } from '../queue/drivers/Database.js';
10
- import { autoRegisterJobStateTrackerPersistenceFromEnv } from '../queue/JobStateTrackerDbPersistence.js';
11
- import { QueueReliabilityOrchestrator } from '../queue/QueueReliabilityOrchestrator.js';
12
10
  import { InMemoryQueue } from '../queue/drivers/InMemory.js';
11
+ import { autoRegisterJobStateTrackerPersistenceFromEnv } from '../queue/JobStateTrackerDbPersistence.js';
13
12
  import { Queue } from '../queue/Queue.js';
13
+ import { QueueReliabilityOrchestrator } from '../queue/QueueReliabilityOrchestrator.js';
14
14
  const QUEUE_REDIS_PACKAGE = '@zintrust/queue-redis';
15
15
  const ZEDGI_PACKAGE = '@zintrust/zedgi';
16
16
  /**
@@ -21,7 +21,20 @@ const ZEDGI_PACKAGE = '@zintrust/zedgi';
21
21
  * - If the configured default is registered, it is ALSO registered as 'default'.
22
22
  * - Unknown/unregistered driver names still throw when selected.
23
23
  */
24
+ const isDriverRegistered = (name) => {
25
+ try {
26
+ Queue.get(name);
27
+ return true;
28
+ }
29
+ catch {
30
+ return false;
31
+ }
32
+ };
24
33
  const registerRedisDriverIfAvailable = async () => {
34
+ if (isDriverRegistered('redis')) {
35
+ return true;
36
+ }
37
+ // Fall back to dynamic import only if not already registered
25
38
  try {
26
39
  const mod = (await import(/* @vite-ignore */ QUEUE_REDIS_PACKAGE));
27
40
  if (mod.RedisQueue !== undefined) {
@@ -63,6 +76,10 @@ const registerRedisDriverIfAvailable = async () => {
63
76
  return false;
64
77
  };
65
78
  const registerZedgiQueueDriverIfAvailable = async (config) => {
79
+ if (isDriverRegistered('queue-zedgi')) {
80
+ return true;
81
+ }
82
+ // Fall back to dynamic import only if not already registered
66
83
  try {
67
84
  const mod = (await import(/* @vite-ignore */ ZEDGI_PACKAGE));
68
85
  if (mod.ZedgiQueueDriver !== undefined) {
@@ -1,5 +1,5 @@
1
1
  import type { RedisConfig } from '../../config/type';
2
- export type RedisTransportMode = 'direct' | 'proxy' | 'rpc';
2
+ export type RedisTransportMode = 'direct' | 'proxy' | 'rpc' | 'zedgi';
3
3
  export type RedisTransportOptions = Readonly<{
4
4
  subsystem?: string;
5
5
  requireDirect?: boolean;
@@ -32,6 +32,9 @@ type RedisProxyConnection = {
32
32
  off: (event: string, handler: (...args: unknown[]) => void) => unknown;
33
33
  };
34
34
  };
35
+ declare let zedgiRedisExecutor: ((config: Record<string, unknown>, command: string, args: unknown[]) => Promise<unknown>) | undefined;
36
+ export declare const registerZedgiRedisExecutor: (executor: typeof zedgiRedisExecutor) => void;
37
+ export declare const isZedgiRedisExecutorRegistered: () => boolean;
35
38
  export declare const resolveRedisTransportMode: () => RedisTransportMode;
36
39
  export declare const createRedisProxyConnection: (config: RedisConfig, options?: RedisTransportOptions) => RedisProxyConnection;
37
40
  export declare const ensureRedisTransportMode: (config: RedisConfig, options?: RedisTransportOptions) => RedisTransportMode;
@@ -1 +1 @@
1
- {"version":3,"file":"RedisTransport.d.ts","sourceRoot":"","sources":["../../../../src/tools/redis/RedisTransport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAKhD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC,CAAC;AAgBH,KAAK,oBAAoB,GAAG;IAC1B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,oBAAoB,CAAC;IACnF,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,oBAAoB,CAAC;IACrF,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,oBAAoB,CAAC;IACpF,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,oBAAoB,CAAC;IAC/F,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,QAAQ,EAAE,MAAM;QACd,IAAI,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,KAAK,EAAE,MAAM;QACX,IAAI,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK;QAC5D,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,OAAO,CAAC;QACtE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,OAAO,CAAC;QACxE,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,OAAO,CAAC;KACxE,CAAC;CACH,CAAC;AA6YF,eAAO,MAAM,yBAAyB,QAAO,kBAG5C,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,QAAQ,WAAW,EACnB,UAAU,qBAAqB,KAC9B,oBAwDF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,WAAW,EACnB,UAAU,qBAAqB,KAC9B,kBAaF,CAAC"}
1
+ {"version":3,"file":"RedisTransport.d.ts","sourceRoot":"","sources":["../../../../src/tools/redis/RedisTransport.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,19 @@ import { Logger } from '../../config/logger.js';
3
3
  import { ErrorFactory } from '../../exceptions/ZintrustError.js';
4
4
  import { parseCustomHeadersFromEnv } from '../../orm/adapters/SqlProxyAdapterUtils.js';
5
5
  import { SignedRequest } from '../../security/SignedRequest.js';
6
+ // Zedgi executor registry for static provider registration
7
+ let zedgiRedisExecutor;
8
+ export const registerZedgiRedisExecutor = (executor) => {
9
+ zedgiRedisExecutor = typeof executor === 'function' ? executor : undefined;
10
+ };
11
+ export const isZedgiRedisExecutorRegistered = () => zedgiRedisExecutor !== undefined;
12
+ const isZedgiRedisEnabled = () => zedgiRedisExecutor !== undefined && readEnvBool('USE_ZEDGI', false);
13
+ const requestZedgiCommand = async (settings, command, args) => {
14
+ if (zedgiRedisExecutor === undefined) {
15
+ throw ErrorFactory.createConfigError('Zedgi Redis executor is not registered');
16
+ }
17
+ return zedgiRedisExecutor(settings.config ?? {}, command, args);
18
+ };
6
19
  const loggedSelections = new Set();
7
20
  const readEnvString = (key, fallback = '') => {
8
21
  if (typeof Env.get === 'function') {
@@ -167,6 +180,9 @@ const requestRpcPipeline = async (settings, commands, transaction) => {
167
180
  ]);
168
181
  };
169
182
  const requestRedisCommand = async (mode, settings, command, args) => {
183
+ if (mode === 'zedgi') {
184
+ return requestZedgiCommand(settings, command, args);
185
+ }
170
186
  return mode === 'rpc'
171
187
  ? requestRpcCommand(settings, command, args)
172
188
  : requestProxyCommand(settings, command, args);
@@ -187,6 +203,7 @@ const logTransportSelection = (mode, config, options) => {
187
203
  port: mode === 'direct' ? config.port : undefined,
188
204
  proxyUrl: mode === 'proxy' ? resolveProxyBaseUrl() : undefined,
189
205
  rpcUrl: mode === 'rpc' ? readEnvString('REDIS_RPC_URL', '') : undefined,
206
+ zedgiUrl: mode === 'zedgi' ? readEnvString('ZEDGI_URL', '') : undefined,
190
207
  });
191
208
  };
192
209
  const normalizeScanResponse = (value) => {
@@ -294,13 +311,24 @@ const createPipeline = (settings, mode, transaction = false) => {
294
311
  return pipeline;
295
312
  };
296
313
  export const resolveRedisTransportMode = () => {
314
+ if (isZedgiRedisEnabled())
315
+ return 'zedgi';
297
316
  if (isRedisRpcEnabled())
298
317
  return 'rpc';
299
318
  return readEnvBool('USE_REDIS_PROXY', false) ? 'proxy' : 'direct';
300
319
  };
301
320
  export const createRedisProxyConnection = (config, options) => {
302
321
  const mode = resolveRedisTransportMode();
303
- const settings = mode === 'rpc' ? resolveRpcSettings() : resolveProxySettings();
322
+ let settings;
323
+ if (mode === 'zedgi') {
324
+ settings = { config };
325
+ }
326
+ else if (mode === 'rpc') {
327
+ settings = resolveRpcSettings();
328
+ }
329
+ else {
330
+ settings = resolveProxySettings();
331
+ }
304
332
  if (mode === 'direct') {
305
333
  throw ErrorFactory.createConfigError('Redis proxy connection requested while direct mode is active.');
306
334
  }
@@ -349,8 +377,8 @@ export const createRedisProxyConnection = (config, options) => {
349
377
  };
350
378
  export const ensureRedisTransportMode = (config, options) => {
351
379
  const mode = resolveRedisTransportMode();
352
- if (mode === 'proxy' && options?.requireDirect === true) {
353
- throw ErrorFactory.createConfigError(`Redis subsystem '${options.subsystem ?? 'redis'}' requires a direct Redis connection, but proxy mode is enabled.`);
380
+ if ((mode === 'proxy' || mode === 'zedgi') && options?.requireDirect === true) {
381
+ throw ErrorFactory.createConfigError(`Redis subsystem '${options.subsystem ?? 'redis'}' requires a direct Redis connection, but ${mode} mode is enabled.`);
354
382
  }
355
383
  if (mode === 'direct') {
356
384
  logTransportSelection(mode, config, options);