@zintrust/core 0.4.34 → 0.4.36

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 (37) hide show
  1. package/package.json +4 -4
  2. package/src/cache/drivers/RedisDriver.d.ts.map +1 -1
  3. package/src/cache/drivers/RedisDriver.js +1 -1
  4. package/src/cli/OptionalCliExtensions.d.ts.map +1 -1
  5. package/src/cli/OptionalCliExtensions.js +1 -0
  6. package/src/cli/commands/WorkerCommands.d.ts +2 -1
  7. package/src/cli/commands/WorkerCommands.d.ts.map +1 -1
  8. package/src/cli/commands/WorkerCommands.js +111 -62
  9. package/src/cli/services/WorkerStartupDiagnostics.d.ts +41 -0
  10. package/src/cli/services/WorkerStartupDiagnostics.d.ts.map +1 -0
  11. package/src/cli/services/WorkerStartupDiagnostics.js +348 -0
  12. package/src/cli/utils/DistPackager.d.ts.map +1 -1
  13. package/src/cli/utils/DistPackager.js +22 -18
  14. package/src/config/workers.d.ts +2 -1
  15. package/src/config/workers.d.ts.map +1 -1
  16. package/src/config/workers.js +6 -1
  17. package/src/index.d.ts +11 -11
  18. package/src/index.d.ts.map +1 -1
  19. package/src/index.js +13 -13
  20. package/src/proxy/CloudflareProxyShared.d.ts +50 -0
  21. package/src/proxy/CloudflareProxyShared.d.ts.map +1 -0
  22. package/src/proxy/CloudflareProxyShared.js +117 -0
  23. package/src/proxy/d1/ZintrustD1Proxy.d.ts.map +1 -1
  24. package/src/proxy/d1/ZintrustD1Proxy.js +49 -158
  25. package/src/proxy/kv/ZintrustKvProxy.d.ts.map +1 -1
  26. package/src/proxy/kv/ZintrustKvProxy.js +41 -142
  27. package/src/security/CsrfTokenManager.d.ts.map +1 -1
  28. package/src/security/CsrfTokenManager.js +1 -1
  29. package/src/security/JwtSessions.d.ts.map +1 -1
  30. package/src/security/JwtSessions.js +1 -1
  31. package/src/security/TokenRevocation.d.ts.map +1 -1
  32. package/src/security/TokenRevocation.js +1 -1
  33. package/src/tools/queue/LockProvider.d.ts.map +1 -1
  34. package/src/tools/queue/LockProvider.js +1 -1
  35. package/src/tools/redis/RedisTransport.d.ts +34 -0
  36. package/src/tools/redis/RedisTransport.d.ts.map +1 -0
  37. package/src/tools/redis/RedisTransport.js +251 -0
@@ -0,0 +1,348 @@
1
+ import { Env } from '../../config/env.js';
2
+ import { Logger } from '../../config/logger.js';
3
+ import { queueConfig } from '../../config/queue.js';
4
+ import { ErrorFactory } from '../../exceptions/ZintrustError.js';
5
+ import { isNonEmptyString, isObject } from '../../helper/index.js';
6
+ const SECRET_KEY_PATTERN = /(SECRET|PASSWORD|TOKEN|KEY)$/i;
7
+ const uniqueStrings = (values) => {
8
+ const seen = new Set();
9
+ const out = [];
10
+ for (const value of values) {
11
+ const normalized = value.trim();
12
+ if (!isNonEmptyString(normalized))
13
+ continue;
14
+ if (seen.has(normalized))
15
+ continue;
16
+ seen.add(normalized);
17
+ out.push(normalized);
18
+ }
19
+ return out;
20
+ };
21
+ const getSnapshotValue = (snapshot, key) => {
22
+ const value = snapshot[key];
23
+ return typeof value === 'string' ? value.trim() : '';
24
+ };
25
+ const getExplicitEnv = (snapshot, key) => getSnapshotValue(snapshot, key);
26
+ const getResolvedEnv = (key) => Env.get(key, '').trim();
27
+ const resolveRedisProxyKeyId = (snapshot) => {
28
+ const explicit = getExplicitEnv(snapshot, 'REDIS_PROXY_KEY_ID');
29
+ if (isNonEmptyString(explicit))
30
+ return explicit;
31
+ const appName = getExplicitEnv(snapshot, 'APP_NAME') || Env.get('APP_NAME', 'zintrust').trim();
32
+ return (appName || 'zintrust').trim().toLowerCase().replaceAll(/\s+/g, '_');
33
+ };
34
+ const resolveRedisProxySecret = (snapshot) => {
35
+ const explicit = getExplicitEnv(snapshot, 'REDIS_PROXY_SECRET');
36
+ if (isNonEmptyString(explicit))
37
+ return explicit;
38
+ return getExplicitEnv(snapshot, 'APP_KEY') || Env.get('APP_KEY', '').trim();
39
+ };
40
+ const resolveRedisProxyUrl = (snapshot) => {
41
+ const explicit = getExplicitEnv(snapshot, 'REDIS_PROXY_URL');
42
+ if (isNonEmptyString(explicit))
43
+ return explicit;
44
+ if (!Env.getBool('USE_REDIS_PROXY', false))
45
+ return '';
46
+ const host = getExplicitEnv(snapshot, 'REDIS_PROXY_HOST') || Env.get('REDIS_PROXY_HOST', '127.0.0.1').trim();
47
+ const port = getExplicitEnv(snapshot, 'REDIS_PROXY_PORT') || Env.get('REDIS_PROXY_PORT', '8791').trim();
48
+ return host === '' || port === '' ? '' : `http://${host}:${port}`;
49
+ };
50
+ const DIAGNOSTIC_VALUE_RESOLVERS = Object.freeze({
51
+ RUNTIME_MODE: (_snapshot, flags) => flags.runtimeMode,
52
+ WORKER_ENABLED: (_snapshot, flags) => String(flags.workerEnabled),
53
+ WORKER_AUTO_START: (_snapshot, flags) => String(flags.workerAutoStart),
54
+ DOCKER_WORKER: (_snapshot, flags) => String(flags.dockerWorker),
55
+ QUEUE_ENABLED: (_snapshot, flags) => String(flags.queueEnabled),
56
+ QUEUE_DRIVER: (_snapshot, flags) => flags.queueDriver,
57
+ WORKER_PERSISTENCE_DRIVER: (_snapshot, flags) => flags.persistenceDriver,
58
+ REDIS_PROXY_URL: (snapshot) => resolveRedisProxyUrl(snapshot),
59
+ REDIS_PROXY_HOST: (snapshot) => getExplicitEnv(snapshot, 'REDIS_PROXY_HOST') ||
60
+ Env.get('REDIS_PROXY_HOST', '127.0.0.1').trim(),
61
+ REDIS_PROXY_SECRET: (snapshot) => resolveRedisProxySecret(snapshot),
62
+ REDIS_PROXY_KEY_ID: (snapshot) => resolveRedisProxyKeyId(snapshot),
63
+ REDIS_QUEUE_DB: (snapshot) => getExplicitEnv(snapshot, 'REDIS_QUEUE_DB') || Env.get('REDIS_QUEUE_DB', '1').trim(),
64
+ WORKER_PERSISTENCE_DB_CONNECTION: (snapshot) => getExplicitEnv(snapshot, 'WORKER_PERSISTENCE_DB_CONNECTION') ||
65
+ Env.get('WORKER_PERSISTENCE_DB_CONNECTION', 'default').trim(),
66
+ WORKER_PERSISTENCE_TABLE: (snapshot) => getExplicitEnv(snapshot, 'WORKER_PERSISTENCE_TABLE') ||
67
+ Env.get('WORKER_PERSISTENCE_TABLE', 'zintrust_workers').trim(),
68
+ DB_CONNECTION: (snapshot) => getExplicitEnv(snapshot, 'DB_CONNECTION') || Env.get('DB_CONNECTION', '').trim(),
69
+ });
70
+ const getDiagnosticResolvedValue = (snapshot, key, flags) => DIAGNOSTIC_VALUE_RESOLVERS[key]?.(snapshot, flags) ?? getResolvedEnv(key);
71
+ const maskResolvedValue = (key, value) => {
72
+ if (!isNonEmptyString(value))
73
+ return '[missing]';
74
+ if (SECRET_KEY_PATTERN.test(key))
75
+ return '[set]';
76
+ return value;
77
+ };
78
+ const getQueueDriver = () => {
79
+ try {
80
+ return { value: queueConfig.default };
81
+ }
82
+ catch (error) {
83
+ const message = error instanceof Error ? error.message : String(error);
84
+ return {
85
+ value: Env.get('QUEUE_DRIVER', 'sync').trim() || 'sync',
86
+ issue: {
87
+ severity: 'error',
88
+ message: `Queue config failed to resolve: ${message}`,
89
+ envKeys: extractEnvKeysFromMessage(message),
90
+ },
91
+ };
92
+ }
93
+ };
94
+ const getPersistenceDriver = () => {
95
+ const raw = Env.get('WORKER_PERSISTENCE_DRIVER', '').trim().toLowerCase();
96
+ return raw === '' ? 'memory (implicit)' : raw;
97
+ };
98
+ const extractEnvKeysFromMessage = (message) => {
99
+ const matches = message.match(/\b[A-Z][A-Z0-9_]{2,}\b/g) ?? [];
100
+ return uniqueStrings(matches);
101
+ };
102
+ const inferEnvKeysFromContext = (message, flags) => {
103
+ const lower = message.toLowerCase();
104
+ const inferred = [];
105
+ if (lower.includes('redis') && lower.includes('host is required')) {
106
+ inferred.push('REDIS_HOST');
107
+ }
108
+ if (lower.includes('worker persistence') && lower.includes('database client')) {
109
+ inferred.push('WORKER_PERSISTENCE_DB_CONNECTION', 'DB_CONNECTION');
110
+ }
111
+ if (lower.includes('worker persistence') && lower.includes('redis config')) {
112
+ inferred.push('REDIS_HOST', 'REDIS_PORT');
113
+ }
114
+ if (flags.queueDriver === 'sqs') {
115
+ inferred.push('AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_REGION', 'AWS_SQS_QUEUE_URL');
116
+ }
117
+ return uniqueStrings(inferred);
118
+ };
119
+ const getFirstFault = (error, flags) => {
120
+ if (!(error instanceof Error))
121
+ return null;
122
+ const errorCode = isObject(error) && typeof error['code'] === 'string' ? error['code'] : undefined;
123
+ const envKeys = uniqueStrings([
124
+ ...extractEnvKeysFromMessage(error.message),
125
+ ...inferEnvKeysFromContext(error.message, flags),
126
+ ]);
127
+ return {
128
+ message: envKeys.length > 0
129
+ ? `${error.message} | likely env keys: ${envKeys.join(', ')}`
130
+ : error.message,
131
+ code: errorCode,
132
+ };
133
+ };
134
+ const getQueueDriverEnvKeys = (snapshot, queueDriver) => {
135
+ if (queueDriver === 'sqs') {
136
+ return ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_REGION', 'AWS_SQS_QUEUE_URL'];
137
+ }
138
+ if (queueDriver === 'database') {
139
+ return ['QUEUE_DB_CONNECTION', 'DB_CONNECTION'];
140
+ }
141
+ if (queueDriver === 'rabbitmq') {
142
+ return ['RABBITMQ_HOST', 'RABBITMQ_PORT', 'RABBITMQ_USER', 'RABBITMQ_PASSWORD'];
143
+ }
144
+ const usesRedisProxy = Env.getBool('USE_REDIS_PROXY', false) ||
145
+ isNonEmptyString(getExplicitEnv(snapshot, 'REDIS_PROXY_URL'));
146
+ if (queueDriver === 'redis' && usesRedisProxy) {
147
+ return [
148
+ 'REDIS_PROXY_URL',
149
+ 'REDIS_PROXY_HOST',
150
+ 'REDIS_PROXY_SECRET',
151
+ 'REDIS_PROXY_KEY_ID',
152
+ 'APP_KEY',
153
+ 'REDIS_QUEUE_DB',
154
+ ];
155
+ }
156
+ if (queueDriver === 'redis') {
157
+ return ['REDIS_HOST', 'REDIS_PORT', 'REDIS_PASSWORD', 'REDIS_QUEUE_DB'];
158
+ }
159
+ return [];
160
+ };
161
+ const getPersistenceEnvKeys = (persistenceDriver) => {
162
+ if (persistenceDriver === 'database' || persistenceDriver === 'db') {
163
+ return ['WORKER_PERSISTENCE_DB_CONNECTION', 'WORKER_PERSISTENCE_TABLE', 'DB_CONNECTION'];
164
+ }
165
+ if (persistenceDriver === 'redis') {
166
+ return ['WORKER_PERSISTENCE_REDIS_DB', 'REDIS_HOST', 'REDIS_PORT', 'REDIS_PASSWORD'];
167
+ }
168
+ return [];
169
+ };
170
+ const buildFlags = () => {
171
+ const queueDriver = getQueueDriver();
172
+ return {
173
+ runtimeMode: Env.get('RUNTIME_MODE', 'node-server').trim() || 'node-server',
174
+ workerEnabled: Env.getBool('WORKER_ENABLED', false),
175
+ workerAutoStart: Env.getBool('WORKER_AUTO_START', false),
176
+ dockerWorker: Env.getBool('DOCKER_WORKER', false),
177
+ queueEnabled: Env.getBool('QUEUE_ENABLED', false),
178
+ queueDriver: queueDriver.value,
179
+ persistenceDriver: getPersistenceDriver(),
180
+ };
181
+ };
182
+ const buildEnvStatus = (snapshot, flags, firstFault) => {
183
+ const relevantKeys = uniqueStrings([
184
+ 'RUNTIME_MODE',
185
+ 'WORKER_ENABLED',
186
+ 'WORKER_AUTO_START',
187
+ 'DOCKER_WORKER',
188
+ 'QUEUE_ENABLED',
189
+ 'QUEUE_DRIVER',
190
+ 'WORKER_PERSISTENCE_DRIVER',
191
+ ...getQueueDriverEnvKeys(snapshot, flags.queueDriver),
192
+ ...getPersistenceEnvKeys(flags.persistenceDriver),
193
+ ...(firstFault ? extractEnvKeysFromMessage(firstFault.message) : []),
194
+ ]);
195
+ return relevantKeys.map((key) => {
196
+ const explicitValue = getExplicitEnv(snapshot, key);
197
+ const effectiveValue = getDiagnosticResolvedValue(snapshot, key, flags);
198
+ return {
199
+ key,
200
+ present: isNonEmptyString(explicitValue) || isNonEmptyString(effectiveValue),
201
+ explicitValue,
202
+ resolvedValue: maskResolvedValue(key, effectiveValue),
203
+ };
204
+ });
205
+ };
206
+ const buildIssues = (envStatus, flags, firstFault, queueIssue) => {
207
+ const issues = [];
208
+ if (queueIssue !== undefined) {
209
+ issues.push(queueIssue);
210
+ }
211
+ if (!flags.workerEnabled) {
212
+ issues.push({
213
+ severity: flags.dockerWorker ? 'error' : 'warn',
214
+ message: 'WORKER_ENABLED is false, so the worker runtime will not process jobs.',
215
+ envKeys: ['WORKER_ENABLED'],
216
+ });
217
+ }
218
+ if (!flags.queueEnabled) {
219
+ issues.push({
220
+ severity: 'warn',
221
+ message: 'QUEUE_ENABLED is false, so queue-backed workers cannot process jobs.',
222
+ envKeys: ['QUEUE_ENABLED'],
223
+ });
224
+ }
225
+ if (flags.workerEnabled && !flags.workerAutoStart) {
226
+ issues.push({
227
+ severity: 'warn',
228
+ message: 'WORKER_AUTO_START is false, so worker:start-all will skip auto-start.',
229
+ envKeys: ['WORKER_AUTO_START'],
230
+ });
231
+ }
232
+ const missingEnvKeys = envStatus.filter((entry) => !entry.present).map((entry) => entry.key);
233
+ if (flags.queueDriver === 'sqs') {
234
+ const sqsMissing = missingEnvKeys.filter((key) => ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_REGION', 'AWS_SQS_QUEUE_URL'].includes(key));
235
+ if (sqsMissing.length > 0) {
236
+ issues.push({
237
+ severity: 'error',
238
+ message: 'SQS queue driver is selected but required AWS queue env keys are missing.',
239
+ envKeys: sqsMissing,
240
+ });
241
+ }
242
+ }
243
+ if (firstFault !== null) {
244
+ const firstFaultKeys = uniqueStrings([
245
+ ...extractEnvKeysFromMessage(firstFault.message),
246
+ ...inferEnvKeysFromContext(firstFault.message, flags),
247
+ ]);
248
+ if (firstFaultKeys.length > 0) {
249
+ issues.push({
250
+ severity: 'error',
251
+ message: 'The first failure points to missing or invalid runtime env configuration.',
252
+ envKeys: firstFaultKeys,
253
+ });
254
+ }
255
+ }
256
+ return issues;
257
+ };
258
+ const buildLogPointers = (flags) => flags.runtimeMode === 'containers'
259
+ ? [
260
+ 'worker:start-all stderr/stdout',
261
+ 'zin docker --wrangler-config wrangler.containers-proxy.jsonc --env <env> output',
262
+ 'worker container logs for the node dist/bin/zin.js worker:start-all process',
263
+ ]
264
+ : ['worker:start-all stderr/stdout'];
265
+ const buildNextSteps = (flags) => flags.runtimeMode === 'containers'
266
+ ? [
267
+ 'zin worker:doctor --json',
268
+ 'node dist/bin/zin.js worker:start-all',
269
+ 'node scripts/docker-image-smoke.mjs worker --skip-build --image <image>',
270
+ ]
271
+ : ['zin worker:doctor --json'];
272
+ const collect = (error) => {
273
+ const snapshot = Env.snapshot();
274
+ const queueDriver = getQueueDriver();
275
+ const flags = buildFlags();
276
+ const firstFault = getFirstFault(error, flags);
277
+ const envStatus = buildEnvStatus(snapshot, flags, firstFault);
278
+ const issues = buildIssues(envStatus, flags, firstFault, queueDriver.issue);
279
+ const missingFromIssues = issues.flatMap((issue) => issue.envKeys);
280
+ const missingEnvKeys = uniqueStrings(missingFromIssues);
281
+ return {
282
+ flags,
283
+ issues,
284
+ missingEnvKeys,
285
+ envStatus,
286
+ firstFault,
287
+ logPointers: buildLogPointers(flags),
288
+ nextSteps: buildNextSteps(flags),
289
+ };
290
+ };
291
+ const appendSection = (lines, title, items) => {
292
+ if (items.length === 0)
293
+ return;
294
+ lines.push('', title, ...items);
295
+ };
296
+ const renderIssues = (report) => report.issues.map((issue) => {
297
+ const envSuffix = issue.envKeys.length > 0 ? ` [${issue.envKeys.join(', ')}]` : '';
298
+ return `- ${issue.severity.toUpperCase()}: ${issue.message}${envSuffix}`;
299
+ });
300
+ const renderEnvStatus = (report) => report.envStatus.map((entry) => {
301
+ const state = entry.present ? entry.resolvedValue : '[missing]';
302
+ return `- ${entry.key}: ${state}`;
303
+ });
304
+ const renderBullets = (items) => items.map((item) => `- ${item}`);
305
+ const renderLines = (report) => {
306
+ const lines = [
307
+ '=== Worker Startup Diagnostics ===',
308
+ '',
309
+ `Runtime Mode: ${report.flags.runtimeMode}`,
310
+ `Worker Enabled: ${report.flags.workerEnabled}`,
311
+ `Worker Auto Start: ${report.flags.workerAutoStart}`,
312
+ `Docker Worker: ${report.flags.dockerWorker}`,
313
+ `Queue Enabled: ${report.flags.queueEnabled}`,
314
+ `Queue Driver: ${report.flags.queueDriver}`,
315
+ `Persistence Driver: ${report.flags.persistenceDriver}`,
316
+ ];
317
+ appendSection(lines, 'First Fault:', report.firstFault === null ? [] : [`- ${report.firstFault.message}`]);
318
+ appendSection(lines, 'Issues:', renderIssues(report));
319
+ appendSection(lines, 'Relevant Env:', renderEnvStatus(report));
320
+ appendSection(lines, 'Log Pointers:', renderBullets(report.logPointers));
321
+ appendSection(lines, 'Next Steps:', renderBullets(report.nextSteps));
322
+ return lines;
323
+ };
324
+ const log = (error, context = 'worker startup') => {
325
+ const report = collect(error);
326
+ Logger.error(`${context} first-fault summary`, {
327
+ flags: report.flags,
328
+ missingEnvKeys: report.missingEnvKeys,
329
+ firstFault: report.firstFault,
330
+ issues: report.issues,
331
+ logPointers: report.logPointers,
332
+ nextSteps: report.nextSteps,
333
+ });
334
+ if (report.missingEnvKeys.length > 0) {
335
+ Logger.error('Likely missing env keys for worker startup', report.missingEnvKeys);
336
+ }
337
+ return report;
338
+ };
339
+ const hasBlockingIssues = (report) => report.issues.some((issue) => issue.severity === 'error');
340
+ export const WorkerStartupDiagnostics = Object.freeze({
341
+ collect,
342
+ renderLines,
343
+ log,
344
+ hasBlockingIssues,
345
+ createCliError(message) {
346
+ return ErrorFactory.createCliError(message);
347
+ },
348
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"DistPackager.d.ts","sourceRoot":"","sources":["../../../../src/cli/utils/DistPackager.ts"],"names":[],"mappings":"AAmKA,eAAO,MAAM,YAAY;IACvB;;;OAGG;sBACe,MAAM,aAAY,MAAM,GAAmB,IAAI;EAgBjE,CAAC"}
1
+ {"version":3,"file":"DistPackager.d.ts","sourceRoot":"","sources":["../../../../src/cli/utils/DistPackager.ts"],"names":[],"mappings":"AAgKA,eAAO,MAAM,YAAY;IACvB;;;OAGG;sBACe,MAAM,aAAY,MAAM,GAAmB,IAAI;EAgBjE,CAAC"}
@@ -85,14 +85,15 @@ const buildDistPackageJson = (rootPkg) => {
85
85
  };
86
86
  };
87
87
  const writeDistEntrypoints = (distPath) => {
88
- const distIndexJsPath = path.join(distPath, 'index.js');
89
- const distIndexDtsPath = path.join(distPath, 'index.d.ts');
90
- const distStartJsPath = path.join(distPath, 'start.js');
91
- const distStartDtsPath = path.join(distPath, 'start.d.ts');
92
- fs.writeFileSync(distIndexJsPath, "export * from './src/index.js';\n");
93
- fs.writeFileSync(distIndexDtsPath, "export * from './src/index';\n");
94
- fs.writeFileSync(distStartJsPath, "export * from './src/start.js'; export { default } from './src/start.js';\n");
95
- fs.writeFileSync(distStartDtsPath, "export * from './src/start'; export { default } from './src/start';\n");
88
+ const entrypoints = [
89
+ ['index.js', "export * from './src/index.js';\n"],
90
+ ['index.d.ts', "export * from './src/index';\n"],
91
+ ['start.js', "export * from './src/start.js'; export { default } from './src/start.js';\n"],
92
+ ['start.d.ts', "export * from './src/start'; export { default } from './src/start';\n"],
93
+ ];
94
+ for (const [relativePath, content] of entrypoints) {
95
+ fs.writeFileSync(path.join(distPath, relativePath), content);
96
+ }
96
97
  };
97
98
  const writeDistPackageJson = (distPath, pkg) => {
98
99
  const distPackageJsonPath = path.join(distPath, 'package.json');
@@ -100,18 +101,21 @@ const writeDistPackageJson = (distPath, pkg) => {
100
101
  };
101
102
  const warnIfMissingDistArtifacts = (distPath) => {
102
103
  const expected = [
103
- path.join(distPath, 'src', 'index.js'),
104
- path.join(distPath, 'bin', 'zintrust.js'),
105
- path.join(distPath, 'bin', 'zin.js'),
104
+ ['src/index.js', 'Dist artifact missing (did you run build?)'],
105
+ ['bin/zintrust.js', 'Dist artifact missing (did you run build?)'],
106
+ ['bin/zin.js', 'Dist artifact missing (did you run build?)'],
107
+ ['public', 'Docs public root missing'],
106
108
  ];
107
- for (const candidate of expected) {
108
- if (!fs.existsSync(candidate)) {
109
- Logger.warn(`Dist artifact missing (did you run build?): ${candidate}`);
109
+ for (const [relativePath, message] of expected) {
110
+ const candidate = path.join(distPath, ...relativePath.split('/'));
111
+ if (fs.existsSync(candidate)) {
112
+ continue;
110
113
  }
111
- }
112
- const docsRoot = path.join(distPath, 'public');
113
- if (!fs.existsSync(docsRoot)) {
114
- Logger.warn(`Docs public root missing at ${docsRoot} (expected dist/public)`);
114
+ if (relativePath === 'public') {
115
+ Logger.warn(`${message} at ${candidate} (expected dist/public)`);
116
+ continue;
117
+ }
118
+ Logger.warn(`${message}: ${candidate}`);
115
119
  }
116
120
  };
117
121
  export const DistPackager = Object.freeze({
@@ -3,9 +3,10 @@
3
3
  * Background worker management settings
4
4
  * Sealed namespace for immutability
5
5
  */
6
+ import { type RedisTransportOptions } from '../tools/redis/RedisTransport';
6
7
  import type { RedisConfig, WorkersGlobalConfig } from './type';
7
8
  import type IORedis from 'ioredis';
8
- export declare const createRedisConnection: (config: RedisConfig, maxRetries?: number) => IORedis;
9
+ export declare const createRedisConnection: (config: RedisConfig, maxRetries?: number, options?: RedisTransportOptions) => IORedis;
9
10
  declare const createWorkersConfig: () => WorkersGlobalConfig;
10
11
  export type WorkersConfig = ReturnType<typeof createWorkersConfig>;
11
12
  export declare const workersConfig: WorkersConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../../src/config/workers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EACV,WAAW,EAIX,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAoMnC,eAAO,MAAM,qBAAqB,GAAI,QAAQ,WAAW,EAAE,mBAAc,KAAG,OAwB3E,CAAC;AAgFF,QAAA,MAAM,mBAAmB,QAAO,mBA2D/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAqBnE,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;AAoMnC,eAAO,MAAM,qBAAqB,GAChC,QAAQ,WAAW,EACnB,mBAAc,EACd,UAAU,qBAAqB,KAC9B,OA6BF,CAAC;AAgFF,QAAA,MAAM,mBAAmB,QAAO,mBA2D/B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAqBnE,eAAO,MAAM,aAAa,EAAE,aAY1B,CAAC"}
@@ -3,6 +3,7 @@
3
3
  * Background worker management settings
4
4
  * Sealed namespace for immutability
5
5
  */
6
+ import { createRedisProxyConnection, ensureRedisTransportMode, } from '../tools/redis/RedisTransport.js';
6
7
  import { Cloudflare } from './cloudflare.js';
7
8
  import { Env } from './env.js';
8
9
  import { Logger } from './logger.js';
@@ -149,7 +150,11 @@ const resolveEffectiveRedisConfig = (config, isWorkersRuntime, proxySettings) =>
149
150
  }
150
151
  return config;
151
152
  };
152
- export const createRedisConnection = (config, maxRetries = 3) => {
153
+ export const createRedisConnection = (config, maxRetries = 3, options) => {
154
+ const mode = ensureRedisTransportMode(config, options);
155
+ if (mode === 'proxy') {
156
+ return createRedisProxyConnection(config, options);
157
+ }
153
158
  const isWorkersRuntime = Cloudflare.getWorkersEnv() !== null;
154
159
  const proxySettings = getProxySettings();
155
160
  const effectiveConfig = resolveEffectiveRedisConfig(config, isWorkersRuntime, proxySettings);
package/src/index.d.ts CHANGED
@@ -13,7 +13,7 @@ export { AwsSigV4 } from './common/index';
13
13
  export { SignedRequest } from './security/SignedRequest';
14
14
  export { Server } from './boot/Server';
15
15
  export { ServiceContainer } from './container/ServiceContainer';
16
- export { Paginator, createPaginator, getNextPageUrl, getPrevPageUrl } from './database/Paginator';
16
+ export { createPaginator, getNextPageUrl, getPrevPageUrl, Paginator } from './database/Paginator';
17
17
  export type { CreatePaginatorInput, PaginationLinks, PaginationQuery, Paginator as PaginatorType, } from './database/Paginator';
18
18
  export { Controller } from './http/Controller';
19
19
  export { FileUpload } from './http/FileUpload';
@@ -30,7 +30,7 @@ export type { IRequest, ValidatedRequest } from './http/Request';
30
30
  export { RequestContext } from './http/RequestContext';
31
31
  export { Response } from './http/Response';
32
32
  export type { IResponse } from './http/Response';
33
- export { ValidationHelper, getValidatedBody, getValidatedHeaders, getValidatedParams, getValidatedQuery, hasValidatedBody, requireValidatedBody, } from './http/ValidationHelper';
33
+ export { getValidatedBody, getValidatedHeaders, getValidatedParams, getValidatedQuery, hasValidatedBody, requireValidatedBody, ValidationHelper, } from './http/ValidationHelper';
34
34
  export { CsrfMiddleware } from './middleware/CsrfMiddleware';
35
35
  export { ErrorHandlerMiddleware } from './middleware/ErrorHandlerMiddleware';
36
36
  export { LoggingMiddleware } from './middleware/LoggingMiddleware';
@@ -49,7 +49,7 @@ export type { IDatabase } from './orm/Database';
49
49
  export { Model } from './orm/Model';
50
50
  export type { IModel, ModelConfig, ModelStatic } from './orm/Model';
51
51
  export { QueryBuilder } from './orm/QueryBuilder';
52
- export type { IQueryBuilder, InsertResult, PaginationOptions } from './orm/QueryBuilder';
52
+ export type { InsertResult, IQueryBuilder, PaginationOptions } from './orm/QueryBuilder';
53
53
  export type { IRelationship } from './orm/Relationships';
54
54
  export { DateTime } from './time/DateTime';
55
55
  export type { IDateTime } from './time/DateTime';
@@ -58,12 +58,12 @@ export { OpenApiGenerator } from './openapi/OpenApiGenerator';
58
58
  export type { OpenApiGeneratorOptions } from './openapi/OpenApiGenerator';
59
59
  export { Router } from './routes/Router';
60
60
  export type { IRouter } from './routes/Router';
61
- export { RouteRegistry, normalizeRouteMeta } from './routes/RouteRegistry';
61
+ export { normalizeRouteMeta, RouteRegistry } from './routes/RouteRegistry';
62
62
  export type { RouteMeta, RouteMetaInput, RouteRegistration } from './routes/RouteRegistry';
63
63
  export { DatabaseAdapterRegistry } from './orm/DatabaseAdapterRegistry';
64
- export { Utilities, generateSecureJobId, generateUuid, getString, type UtilitiesType, } from './common/utility';
64
+ export { generateSecureJobId, generateUuid, getString, Utilities, type UtilitiesType, } from './common/utility';
65
65
  export { delay, ensureDirSafe } from './common/index';
66
- export { Collection, collect } from './collections/index';
66
+ export { collect, Collection } from './collections/index';
67
67
  export type { ICollection, PrimitiveKey } from './collections/index';
68
68
  export { HttpClient } from './tools/http/Http';
69
69
  export type { IHttpRequest, IHttpResponse } from './tools/http/Http';
@@ -92,12 +92,12 @@ export type { IJwtManager, JwtAlgorithm, JwtManagerType, JwtOptions, JwtPayload,
92
92
  export { JwtSessions } from './security/JwtSessions';
93
93
  export { PasswordResetTokenBroker } from './security/PasswordResetTokenBroker';
94
94
  export type { IPasswordResetTokenBroker, IPasswordResetTokenStore, PasswordResetTokenBrokerOptions, PasswordResetTokenBrokerType, PasswordResetTokenRecord, } from './security/PasswordResetTokenBroker';
95
- export { Sanitizer, createSanitizer, type SanitizerType } from './security/Sanitizer';
95
+ export { createSanitizer, Sanitizer, type SanitizerType } from './security/Sanitizer';
96
96
  export { TokenRevocation } from './security/TokenRevocation';
97
97
  export { Xss } from './security/Xss';
98
98
  export { XssProtection } from './security/XssProtection';
99
99
  export { ErrorFactory } from './exceptions/ZintrustError';
100
- export { RUNTIME_PLATFORM, RuntimeServices, detectCloudflareWorkers, detectRuntimePlatform, type RuntimeCrypto, type RuntimeEnvReader, type RuntimeFs, type RuntimePlatform, type RuntimeServices as RuntimeServicesType, type RuntimeTimers, } from './runtime/RuntimeServices';
100
+ export { detectCloudflareWorkers, detectRuntimePlatform, RUNTIME_PLATFORM, RuntimeServices, type RuntimeCrypto, type RuntimeEnvReader, type RuntimeFs, type RuntimePlatform, type RuntimeServices as RuntimeServicesType, type RuntimeTimers, } from './runtime/RuntimeServices';
101
101
  export { EventDispatcher } from './events/EventDispatcher';
102
102
  export type { EventListener, EventMap, IEventDispatcher } from './events/EventDispatcher';
103
103
  export { SessionManager } from './session/SessionManager';
@@ -133,7 +133,7 @@ export type { AggregatedHealthStatus, HealthCheckResult, IServiceHealthMonitor,
133
133
  export { getServiceId, isCanonicalServiceId, normalizeServiceManifest, } from './microservices/ServiceManifest';
134
134
  export type { ProjectRuntimeModule, ServiceManifestEntry } from './microservices/ServiceManifest';
135
135
  export { ProjectRuntime } from './runtime/ProjectRuntime';
136
- export { MiddlewareKeys, clearMiddlewareConfigCache, middlewareConfig } from './config/middleware';
136
+ export { clearMiddlewareConfigCache, middlewareConfig, MiddlewareKeys } from './config/middleware';
137
137
  export type { MiddlewareKey } from './config/middleware';
138
138
  export type { MiddlewareConfigType } from './config/type';
139
139
  export { createBaseDrivers, queueConfig } from './config/queue';
@@ -152,7 +152,7 @@ export type { StartupConfig } from './config/startup';
152
152
  export { Constants, DEFAULTS, ENV_KEYS, HTTP_HEADERS, MIME_TYPES } from './config/constants';
153
153
  export { FeatureFlags } from './config/features';
154
154
  export { Cloudflare } from './config/cloudflare';
155
- export { SECRETS, SecretsManager, getDatabaseCredentials, getJwtSecrets, } from './config/SecretsManager';
155
+ export { getDatabaseCredentials, getJwtSecrets, SECRETS, SecretsManager, } from './config/SecretsManager';
156
156
  export type { DatabaseCredentials, JwtSecrets } from './config/SecretsManager';
157
157
  export type { MailDriverConfig, MailDriverName, WorkersEnv } from './config/type';
158
158
  export { StartupConfigValidator } from './config/StartupConfigValidator';
@@ -227,7 +227,7 @@ export * from './helper/index';
227
227
  export { ZintrustLang } from './lang/lang';
228
228
  export { createRedisConnection, workersConfig } from './config/workers';
229
229
  export type { RouteOptions } from './routes/Router';
230
- export { RedisKeys, createRedisKey, extractOriginalKey, getBullMQSafeQueueName, getPrefix, isAppKey, type RedisKeyType, } from './tools/redis/RedisKeyManager';
230
+ export { createRedisKey, extractOriginalKey, getBullMQSafeQueueName, getPrefix, isAppKey, RedisKeys, type RedisKeyType, } from './tools/redis/RedisKeyManager';
231
231
  export { CloudflareSocket } from './sockets/CloudflareSocket';
232
232
  export { detectRuntime } from './runtime/detectRuntime';
233
233
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}