@zintrust/core 2.2.2 → 2.2.3
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 +1 -1
- package/src/config/env.d.ts +1 -0
- package/src/config/env.d.ts.map +1 -1
- package/src/config/env.js +1 -0
- package/src/index.d.ts +12 -11
- package/src/index.d.ts.map +1 -1
- package/src/index.js +13 -13
- package/src/proxy/redis/RedisProxyServer.d.ts.map +1 -1
- package/src/proxy/redis/RedisProxyServer.js +66 -3
- package/src/redis-index.d.ts +1 -0
- package/src/redis-index.d.ts.map +1 -1
- package/src/tools/redis/RedisTransport.d.ts +4 -0
- package/src/tools/redis/RedisTransport.d.ts.map +1 -1
- package/src/tools/redis/RedisTransport.js +60 -13
package/package.json
CHANGED
package/src/config/env.d.ts
CHANGED
|
@@ -105,6 +105,7 @@ export declare const Env: Readonly<{
|
|
|
105
105
|
REDIS_PROXY_TIMEOUT_MS: number;
|
|
106
106
|
REDIS_PROXY_REQUIRE_SIGNING: boolean;
|
|
107
107
|
REDIS_PROXY_SIGNING_WINDOW_MS: number;
|
|
108
|
+
REDIS_REQUIRE_DIRECT_FOR_SCRIPTS: boolean;
|
|
108
109
|
USE_REDIS_PROXY: boolean;
|
|
109
110
|
SMTP_PROXY_URL: string;
|
|
110
111
|
SMTP_PROXY_HOST: string;
|
package/src/config/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/config/env.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAClF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAqNF,eAAO,MAAM,cAAc,QAAO,WAAW,GAAG,SAAwB,CAAC;AAEzE,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,KAAG,MAKzE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAKlD,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,KAAG,OAGjC,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAKlD,CAAC;AAEF,eAAO,MAAM,eAAe,QAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAEvD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,gBAAyC,CAAC;AAG9E,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,EAAE,eAAe,MAAM,KAAG,MAIxD,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,MAMrC,CAAC;AAEF,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,cAAc,MAAM,KAAG,MAI1D,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,eAAe,MAAM,KAAG,MAI7D,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,eAAe,OAAO,KAAG,OAI7D,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,IAGhD,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,KAAG,IAInC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,QAAQ,SAAS,GAAG,IAAI,KAAG,IAEpD,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAOhD,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAKjE,CAAC;AACF,eAAO,MAAM,mBAAmB,QAAuC,CAAC;AAKxE,eAAO,MAAM,GAAG;eAnES,MAAM,iBAAiB,MAAM,KAAG,MAAM;uBA1B9B,MAAM,KAAG,MAAM,GAAG,SAAS;kBAwChC,MAAM,gBAAgB,MAAM,KAAG,MAAM;mBAYpC,MAAM,iBAAiB,OAAO,KAAG,OAAO;oBANvC,MAAM,iBAAiB,MAAM,KAAG,MAAM;eAvC3C,MAAM,KAAG,OAAO;eAmDhB,MAAM,SAAS,MAAM,KAAG,IAAI;iBAK1B,MAAM,KAAG,IAAI;wBAMN,SAAS,GAAG,IAAI,KAAG,IAAI;oBAI7B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;uBA7DjB,MAAM,KAAG,MAAM,GAAG,SAAS;2BAOzB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;4BAIrB,gBAAgB;cAuFN,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/config/env.ts"],"names":[],"mappings":"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"}
|
package/src/config/env.js
CHANGED
|
@@ -345,6 +345,7 @@ export const Env = Object.freeze({
|
|
|
345
345
|
REDIS_PROXY_TIMEOUT_MS: getInt('REDIS_PROXY_TIMEOUT_MS', ZT_PROXY_TIMEOUT_MS),
|
|
346
346
|
REDIS_PROXY_REQUIRE_SIGNING: getBool('REDIS_PROXY_REQUIRE_SIGNING', true),
|
|
347
347
|
REDIS_PROXY_SIGNING_WINDOW_MS: getInt('REDIS_PROXY_SIGNING_WINDOW_MS', getInt('ZT_PROXY_SIGNING_WINDOW_MS', 60000)),
|
|
348
|
+
REDIS_REQUIRE_DIRECT_FOR_SCRIPTS: getBool('REDIS_REQUIRE_DIRECT_FOR_SCRIPTS', true),
|
|
348
349
|
USE_REDIS_PROXY: getBool('USE_REDIS_PROXY', false),
|
|
349
350
|
SMTP_PROXY_URL: get('SMTP_PROXY_URL', ''),
|
|
350
351
|
SMTP_PROXY_HOST: get('SMTP_PROXY_HOST', '127.0.0.1'),
|
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 { createPaginator, getNextPageUrl, getPrevPageUrl
|
|
16
|
+
export { Paginator, createPaginator, getNextPageUrl, getPrevPageUrl } from './database/Paginator';
|
|
17
17
|
export type { CreatePaginatorInput, PaginationLinks, PaginationQuery, Paginator as PaginatorType, } from './database/Paginator';
|
|
18
18
|
export { MySQLAdapter } from './orm/adapters/MySQLAdapter';
|
|
19
19
|
export { PostgreSQLAdapter } from './orm/adapters/PostgreSQLAdapter';
|
|
@@ -25,9 +25,9 @@ export { DatabaseConnectionRegistry } from './orm/DatabaseConnectionRegistry';
|
|
|
25
25
|
export { Model } from './orm/Model';
|
|
26
26
|
export type { IModel, ModelConfig, ModelStatic } from './orm/Model';
|
|
27
27
|
export { QueryBuilder } from './orm/QueryBuilder';
|
|
28
|
-
export type {
|
|
28
|
+
export type { IQueryBuilder, InsertResult, PaginationOptions } from './orm/QueryBuilder';
|
|
29
29
|
export type { IRelationship } from './orm/Relationships';
|
|
30
|
-
export { BodyParsers,
|
|
30
|
+
export { BodyParsers, BulletproofAuthMiddleware, Controller, CsrfMiddleware, ErrorHandlerMiddleware, FileUpload, Kernel, LoggingMiddleware, MiddlewareStack, MultipartParser, RateLimiter, Request, RequestContext, Response, SecurityMiddleware, SessionMiddleware, ValidationHelper, ValidationMiddleware, bodyParsingMiddleware, fileUploadMiddleware, getValidatedBody, getValidatedHeaders, getValidatedParams, getValidatedQuery, hasValidatedBody, requireValidatedBody, } from './runtime-index.js';
|
|
31
31
|
export type { FileUploadOptions, IFileUploadHandler, IRequest, IResponse, Middleware, MultipartFieldValue, MultipartParseInput, MultipartParserProvider, ParsedMultipartData, UploadedFile, ValidatedRequest, } from './runtime-index.js';
|
|
32
32
|
export { DateTime } from './time/DateTime';
|
|
33
33
|
export type { IDateTime } from './time/DateTime';
|
|
@@ -36,12 +36,12 @@ export { OpenApiGenerator } from './openapi/OpenApiGenerator';
|
|
|
36
36
|
export type { OpenApiGeneratorOptions } from './openapi/OpenApiGenerator';
|
|
37
37
|
export { Router } from './routes/Router';
|
|
38
38
|
export type { IRouter } from './routes/Router';
|
|
39
|
-
export {
|
|
39
|
+
export { RouteRegistry, normalizeRouteMeta } from './routes/RouteRegistry';
|
|
40
40
|
export type { RouteMeta, RouteMetaInput, RouteRegistration } from './routes/RouteRegistry';
|
|
41
41
|
export { DatabaseAdapterRegistry } from './orm/DatabaseAdapterRegistry';
|
|
42
|
-
export { ContextLoader, delay, ensureDirSafe, generateSecureJobId, generateUuid, getString,
|
|
42
|
+
export { ContextLoader, RemoteSignedJson, Utilities, delay, ensureDirSafe, generateSecureJobId, generateUuid, getString, } from './runtime-index.js';
|
|
43
43
|
export type { ContextLoaderBatchHandler, ContextLoaderBatchKey, ContextLoaderBatchResult, ContextLoaderContext, ContextLoaderInstance, ContextLoaderMode, ContextLoaderPlan, ContextLoaderResolver, RemoteSignedJsonSettings, UtilitiesType, } from './runtime-index.js';
|
|
44
|
-
export {
|
|
44
|
+
export { Collection, collect } from './collections/index';
|
|
45
45
|
export type { ICollection, PrimitiveKey } from './collections/index';
|
|
46
46
|
export { HttpClient } from './tools/http/Http';
|
|
47
47
|
export type { IHttpRequest, IHttpResponse } from './tools/http/Http';
|
|
@@ -75,12 +75,12 @@ export { JwtVerifier } from './security/JwtVerifier';
|
|
|
75
75
|
export type { JwtVerifierAlgorithm, JwtVerifierFailure, JwtVerifierFailureReason, JwtVerifierJwk, JwtVerifierJwksDocument, JwtVerifierResult, JwtVerifierSuccess, JwtVerifierWithJwkInput, JwtVerifierWithJwksInput, } from './security/JwtVerifier';
|
|
76
76
|
export { PasswordResetTokenBroker } from './security/PasswordResetTokenBroker';
|
|
77
77
|
export type { IPasswordResetTokenBroker, IPasswordResetTokenStore, PasswordResetTokenBrokerOptions, PasswordResetTokenBrokerType, PasswordResetTokenRecord, } from './security/PasswordResetTokenBroker';
|
|
78
|
-
export {
|
|
78
|
+
export { Sanitizer, createSanitizer, type SanitizerType } from './security/Sanitizer';
|
|
79
79
|
export { TokenRevocation } from './security/TokenRevocation';
|
|
80
80
|
export { Xss } from './security/Xss';
|
|
81
81
|
export { XssProtection } from './security/XssProtection';
|
|
82
82
|
export { ErrorFactory } from './exceptions/ZintrustError';
|
|
83
|
-
export {
|
|
83
|
+
export { RUNTIME_PLATFORM, RuntimeServices, detectCloudflareWorkers, detectRuntimePlatform, type RuntimeCrypto, type RuntimeEnvReader, type RuntimeFs, type RuntimePlatform, type RuntimeServices as RuntimeServicesType, type RuntimeTimers, } from './runtime/RuntimeServices';
|
|
84
84
|
export { StartupConfigFile, StartupConfigFileRegistry } from './runtime/StartupConfigFileRegistry';
|
|
85
85
|
export { SystemTraceBridge } from './trace/SystemTraceBridge';
|
|
86
86
|
export { EventDispatcher } from './events/EventDispatcher';
|
|
@@ -118,7 +118,7 @@ export { HealthCheckHandler, ServiceHealthMonitor } from './microservices/Servic
|
|
|
118
118
|
export type { AggregatedHealthStatus, HealthCheckResult, IServiceHealthMonitor, } from './microservices/ServiceHealthMonitor';
|
|
119
119
|
export { getServiceId, isCanonicalServiceId, normalizeServiceManifest, } from './microservices/ServiceManifest';
|
|
120
120
|
export type { ProjectRuntimeModule, ServiceManifestEntry } from './microservices/ServiceManifest';
|
|
121
|
-
export { clearMiddlewareConfigCache, middlewareConfig
|
|
121
|
+
export { MiddlewareKeys, clearMiddlewareConfigCache, middlewareConfig } from './config/middleware';
|
|
122
122
|
export type { MiddlewareKey } from './config/middleware';
|
|
123
123
|
export type { MiddlewareConfigType } from './config/type';
|
|
124
124
|
export { createBaseDrivers, queueConfig } from './config/queue';
|
|
@@ -137,7 +137,7 @@ export type { StartupConfig } from './config/startup';
|
|
|
137
137
|
export { Constants, DEFAULTS, ENV_KEYS, HTTP_HEADERS, MIME_TYPES } from './config/constants';
|
|
138
138
|
export { FeatureFlags } from './config/features';
|
|
139
139
|
export { Cloudflare } from './config/cloudflare';
|
|
140
|
-
export {
|
|
140
|
+
export { SECRETS, SecretsManager, getDatabaseCredentials, getJwtSecrets, } from './config/SecretsManager';
|
|
141
141
|
export type { DatabaseCredentials, JwtSecrets } from './config/SecretsManager';
|
|
142
142
|
export type { MailDriverConfig, MailDriverName, WorkersEnv } from './config/type';
|
|
143
143
|
export { StartupConfigValidator } from './config/StartupConfigValidator';
|
|
@@ -219,8 +219,9 @@ export type * from './config/type';
|
|
|
219
219
|
export * from './helper/index';
|
|
220
220
|
export { ZintrustLang } from './lang/lang';
|
|
221
221
|
export { createRedisConnection, workersConfig } from './config/workers';
|
|
222
|
+
export type { RedisTransportOptions } from './tools/redis/RedisTransport';
|
|
222
223
|
export type { RouteOptions } from './routes/Router';
|
|
223
|
-
export { createRedisKey, extractOriginalKey, getBullMQSafeQueueName, getPrefix, isAppKey,
|
|
224
|
+
export { RedisKeys, createRedisKey, extractOriginalKey, getBullMQSafeQueueName, getPrefix, isAppKey, type RedisKeyType, } from './tools/redis/RedisKeyManager';
|
|
224
225
|
export { CloudflareSocket } from './sockets/CloudflareSocket';
|
|
225
226
|
export { SocketFeature } from './sockets/SocketRuntime';
|
|
226
227
|
export type { SocketAuthorizationContext, SocketAuthorizationDecision, SocketAuthorizer, SocketAuthorizerHandler, SocketFeatureSettings, SocketNodeUpgradeInput, SocketPublishContext, SocketPublishDecision, SocketPublishPolicy, SocketPublishPolicyHandler, SocketRouteRegistrar, SocketRuntime, SocketRuntimeDiagnostics, SocketTransportMode, SocketWorkerContext, } from './sockets/SocketRuntime';
|
package/src/index.d.ts.map
CHANGED
|
@@ -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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"}
|
package/src/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @zintrust/core v2.2.
|
|
2
|
+
* @zintrust/core v2.2.3
|
|
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-05-
|
|
8
|
+
* Built: 2026-05-28T13:50:35.338Z
|
|
9
9
|
* Node: >=20.0.0
|
|
10
10
|
* License: MIT
|
|
11
11
|
*
|
|
@@ -21,13 +21,13 @@
|
|
|
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-05-
|
|
24
|
+
export const ZINTRUST_BUILD_DATE = '2026-05-28T13:50:35.305Z'; // 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';
|
|
28
28
|
export { Server } from './boot/Server.js';
|
|
29
29
|
export { ServiceContainer } from './container/ServiceContainer.js';
|
|
30
|
-
export { createPaginator, getNextPageUrl, getPrevPageUrl
|
|
30
|
+
export { Paginator, createPaginator, getNextPageUrl, getPrevPageUrl } from './database/Paginator.js';
|
|
31
31
|
// HTTP primitives - re-exported from runtime
|
|
32
32
|
export { MySQLAdapter } from './orm/adapters/MySQLAdapter.js';
|
|
33
33
|
export { PostgreSQLAdapter } from './orm/adapters/PostgreSQLAdapter.js';
|
|
@@ -37,7 +37,7 @@ export { Database, resetDatabase, useDatabase, useEnsureDbConnected } from './or
|
|
|
37
37
|
export { DatabaseConnectionRegistry } from './orm/DatabaseConnectionRegistry.js';
|
|
38
38
|
export { Model } from './orm/Model.js';
|
|
39
39
|
export { QueryBuilder } from './orm/QueryBuilder.js';
|
|
40
|
-
export { BodyParsers,
|
|
40
|
+
export { BodyParsers, BulletproofAuthMiddleware, Controller, CsrfMiddleware, ErrorHandlerMiddleware, FileUpload, Kernel, LoggingMiddleware, MiddlewareStack, MultipartParser, RateLimiter, Request, RequestContext, Response, SecurityMiddleware, SessionMiddleware, ValidationHelper, ValidationMiddleware, bodyParsingMiddleware, fileUploadMiddleware, getValidatedBody, getValidatedHeaders, getValidatedParams, getValidatedQuery, hasValidatedBody, requireValidatedBody, } from './runtime-index.js';
|
|
41
41
|
// Time Utilities
|
|
42
42
|
export { DateTime } from './time/DateTime.js';
|
|
43
43
|
// Migrations
|
|
@@ -47,12 +47,12 @@ export { Schema as MigrationSchema } from './migrations/schema/index.js';
|
|
|
47
47
|
// Adapter registry (for external adapter packages)
|
|
48
48
|
export { OpenApiGenerator } from './openapi/OpenApiGenerator.js';
|
|
49
49
|
export { Router } from './routes/Router.js';
|
|
50
|
-
export {
|
|
50
|
+
export { RouteRegistry, normalizeRouteMeta } from './routes/RouteRegistry.js';
|
|
51
51
|
export { DatabaseAdapterRegistry } from './orm/DatabaseAdapterRegistry.js';
|
|
52
52
|
// Common - re-exported from runtime
|
|
53
|
-
export { ContextLoader, delay, ensureDirSafe, generateSecureJobId, generateUuid, getString,
|
|
53
|
+
export { ContextLoader, RemoteSignedJson, Utilities, delay, ensureDirSafe, generateSecureJobId, generateUuid, getString, } from './runtime-index.js';
|
|
54
54
|
// Collections
|
|
55
|
-
export {
|
|
55
|
+
export { Collection, collect } from './collections/index.js';
|
|
56
56
|
// HTTP Client
|
|
57
57
|
export { HttpClient } from './tools/http/Http.js';
|
|
58
58
|
// Database adapter types
|
|
@@ -82,14 +82,14 @@ export { JwtManager } from './security/JwtManager.js';
|
|
|
82
82
|
export { JwtSessions } from './security/JwtSessions.js';
|
|
83
83
|
export { JwtVerifier } from './security/JwtVerifier.js';
|
|
84
84
|
export { PasswordResetTokenBroker } from './security/PasswordResetTokenBroker.js';
|
|
85
|
-
export {
|
|
85
|
+
export { Sanitizer, createSanitizer } from './security/Sanitizer.js';
|
|
86
86
|
export { TokenRevocation } from './security/TokenRevocation.js';
|
|
87
87
|
export { Xss } from './security/Xss.js';
|
|
88
88
|
export { XssProtection } from './security/XssProtection.js';
|
|
89
89
|
// Exceptions
|
|
90
90
|
export { ErrorFactory } from './exceptions/ZintrustError.js';
|
|
91
91
|
// Runtime services
|
|
92
|
-
export {
|
|
92
|
+
export { RUNTIME_PLATFORM, RuntimeServices, detectCloudflareWorkers, detectRuntimePlatform, } from './runtime/RuntimeServices.js';
|
|
93
93
|
export { StartupConfigFile, StartupConfigFileRegistry } from './runtime/StartupConfigFileRegistry.js';
|
|
94
94
|
// Events
|
|
95
95
|
export { SystemTraceBridge } from './trace/SystemTraceBridge.js';
|
|
@@ -122,7 +122,7 @@ export { RequestTracingMiddleware } from './microservices/RequestTracingMiddlewa
|
|
|
122
122
|
export { ServiceAuthMiddleware } from './microservices/ServiceAuthMiddleware.js';
|
|
123
123
|
export { HealthCheckHandler, ServiceHealthMonitor } from './microservices/ServiceHealthMonitor.js';
|
|
124
124
|
export { getServiceId, isCanonicalServiceId, normalizeServiceManifest, } from './microservices/ServiceManifest.js';
|
|
125
|
-
export { clearMiddlewareConfigCache, middlewareConfig
|
|
125
|
+
export { MiddlewareKeys, clearMiddlewareConfigCache, middlewareConfig } from './config/middleware.js';
|
|
126
126
|
export { createBaseDrivers, queueConfig } from './config/queue.js';
|
|
127
127
|
export { default as broadcastConfig, clearBroadcastConfigCache } from './config/broadcast.js';
|
|
128
128
|
export { default as notificationConfig } from './config/notification.js';
|
|
@@ -133,7 +133,7 @@ export { startupConfig } from './config/startup.js';
|
|
|
133
133
|
export { Constants, DEFAULTS, ENV_KEYS, HTTP_HEADERS, MIME_TYPES } from './config/constants.js';
|
|
134
134
|
export { FeatureFlags } from './config/features.js';
|
|
135
135
|
export { Cloudflare } from './config/cloudflare.js';
|
|
136
|
-
export {
|
|
136
|
+
export { SECRETS, SecretsManager, getDatabaseCredentials, getJwtSecrets, } from './config/SecretsManager.js';
|
|
137
137
|
// Config (validation)
|
|
138
138
|
export { StartupConfigValidator } from './config/StartupConfigValidator.js';
|
|
139
139
|
export { Mail } from './tools/mail/index.js';
|
|
@@ -220,7 +220,7 @@ export { ZintrustLang } from './lang/lang.js';
|
|
|
220
220
|
// Workers config
|
|
221
221
|
export { createRedisConnection, workersConfig } from './config/workers.js';
|
|
222
222
|
// Redis config key - Singleton exports
|
|
223
|
-
export { createRedisKey, extractOriginalKey, getBullMQSafeQueueName, getPrefix, isAppKey,
|
|
223
|
+
export { RedisKeys, createRedisKey, extractOriginalKey, getBullMQSafeQueueName, getPrefix, isAppKey, } from './tools/redis/RedisKeyManager.js';
|
|
224
224
|
export { CloudflareSocket } from './sockets/CloudflareSocket.js';
|
|
225
225
|
export { SocketFeature } from './sockets/SocketRuntime.js';
|
|
226
226
|
export { SocketRuntimeRegistry } from './sockets/SocketRuntimeRegistry.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedisProxyServer.d.ts","sourceRoot":"","sources":["../../../../src/proxy/redis/RedisProxyServer.ts"],"names":[],"mappings":"AAQA,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAiBjC,KAAK,cAAc,GAAG,kBAAkB,GACtC,OAAO,CAAC;IACN,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"RedisProxyServer.d.ts","sourceRoot":"","sources":["../../../../src/proxy/redis/RedisProxyServer.ts"],"names":[],"mappings":"AAQA,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAiBjC,KAAK,cAAc,GAAG,kBAAkB,GACtC,OAAO,CAAC;IACN,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAwSL,eAAO,MAAM,gBAAgB;sBACJ,cAAc,GAAQ,OAAO,CAAC,IAAI,CAAC;EAqB1D,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -6,6 +6,48 @@ import { ErrorHandler } from '../ErrorHandler.js';
|
|
|
6
6
|
import { createProxyServer } from '../ProxyServer.js';
|
|
7
7
|
import { resolveBaseConfig, resolveBaseSigningConfig, verifyRequestSignature, } from '../ProxyServerUtils.js';
|
|
8
8
|
import { RequestValidator } from '../RequestValidator.js';
|
|
9
|
+
// Module-level script cache for persistent storage across requests
|
|
10
|
+
const scriptCache = new Map(); // script SHA -> script content
|
|
11
|
+
let scriptCacheClient = null;
|
|
12
|
+
const getScriptCacheClient = async (config) => {
|
|
13
|
+
if (scriptCacheClient !== null && scriptCacheClient.status === 'ready') {
|
|
14
|
+
return scriptCacheClient;
|
|
15
|
+
}
|
|
16
|
+
const module = (await getRedisModule());
|
|
17
|
+
const moduleDefault = module['default'];
|
|
18
|
+
const candidates = [
|
|
19
|
+
module['Redis'],
|
|
20
|
+
module['default'],
|
|
21
|
+
moduleDefault?.['Redis'],
|
|
22
|
+
moduleDefault?.['default'],
|
|
23
|
+
module,
|
|
24
|
+
];
|
|
25
|
+
const RedisCtor = candidates.find((candidate) => typeof candidate === 'function');
|
|
26
|
+
if (typeof RedisCtor !== 'function') {
|
|
27
|
+
throw ErrorFactory.createConfigError("Redis proxy could not resolve a Redis constructor from 'ioredis'.");
|
|
28
|
+
}
|
|
29
|
+
scriptCacheClient = new RedisCtor({
|
|
30
|
+
host: config.redis.host,
|
|
31
|
+
port: config.redis.port,
|
|
32
|
+
password: config.redis.password,
|
|
33
|
+
db: config.redis.db,
|
|
34
|
+
maxRetriesPerRequest: 3,
|
|
35
|
+
enableOfflineQueue: true,
|
|
36
|
+
lazyConnect: false,
|
|
37
|
+
retryStrategy: (times) => {
|
|
38
|
+
if (times > 3)
|
|
39
|
+
return null;
|
|
40
|
+
return Math.min(times * 100, 1000);
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
if (typeof scriptCacheClient.connect === 'function') {
|
|
44
|
+
await scriptCacheClient.connect();
|
|
45
|
+
}
|
|
46
|
+
scriptCacheClient.on('error', (error) => {
|
|
47
|
+
Logger.warn('[RedisProxyServer] script cache client error', error);
|
|
48
|
+
});
|
|
49
|
+
return scriptCacheClient;
|
|
50
|
+
};
|
|
9
51
|
const resolveRedisConfig = (overrides = {}) => {
|
|
10
52
|
const host = overrides.redisHost ?? Env.get('REDIS_PROXY_TARGET_HOST', Env.get('REDIS_HOST', '127.0.0.1'));
|
|
11
53
|
const port = overrides.redisPort ?? Env.getInt('REDIS_PROXY_TARGET_PORT', Env.getInt('REDIS_PORT', 6379));
|
|
@@ -90,9 +132,30 @@ const createClient = async (config) => {
|
|
|
90
132
|
}
|
|
91
133
|
return client;
|
|
92
134
|
};
|
|
93
|
-
const executeCommand = async (client, command, args) => {
|
|
135
|
+
const executeCommand = async (client, command, args, config) => {
|
|
94
136
|
const trimmed = command.trim();
|
|
95
137
|
const lower = trimmed.toLowerCase();
|
|
138
|
+
// Handle SCRIPT LOAD - use persistent cache client
|
|
139
|
+
if (lower === 'script' && args.length > 0) {
|
|
140
|
+
const subCommand = String(args[0]).toLowerCase();
|
|
141
|
+
if (subCommand === 'load' && args.length > 1) {
|
|
142
|
+
const script = String(args[1]);
|
|
143
|
+
const cacheClient = await getScriptCacheClient(config);
|
|
144
|
+
const sha = await cacheClient.call('SCRIPT', 'LOAD', script);
|
|
145
|
+
if (typeof sha === 'string') {
|
|
146
|
+
scriptCache.set(sha, script);
|
|
147
|
+
Logger.debug('[RedisProxyServer] Script loaded into cache', { sha });
|
|
148
|
+
}
|
|
149
|
+
return sha;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Handle EVALSHA - check cache first
|
|
153
|
+
if (lower === 'evalsha' && args.length > 0) {
|
|
154
|
+
const sha = String(args[0]);
|
|
155
|
+
if (scriptCache.has(sha)) {
|
|
156
|
+
Logger.debug('[RedisProxyServer] Using cached script for EVALSHA', { sha });
|
|
157
|
+
}
|
|
158
|
+
}
|
|
96
159
|
const candidate = client[lower];
|
|
97
160
|
if (typeof candidate === 'function') {
|
|
98
161
|
return candidate.apply(client, args);
|
|
@@ -140,7 +203,7 @@ const createBackend = (config) => ({
|
|
|
140
203
|
const client = await createClient(config);
|
|
141
204
|
try {
|
|
142
205
|
const startedAt = Date.now();
|
|
143
|
-
const result = await executeCommand(client, command, validated.args ?? []);
|
|
206
|
+
const result = await executeCommand(client, command, validated.args ?? [], config);
|
|
144
207
|
SystemTraceBridge.emitRedis(command, Date.now() - startedAt);
|
|
145
208
|
return { status: 200, body: { result } };
|
|
146
209
|
}
|
|
@@ -160,7 +223,7 @@ const createBackend = (config) => ({
|
|
|
160
223
|
await pingFn.apply(client);
|
|
161
224
|
}
|
|
162
225
|
else {
|
|
163
|
-
await executeCommand(client, 'PING', []);
|
|
226
|
+
await executeCommand(client, 'PING', [], config);
|
|
164
227
|
}
|
|
165
228
|
await client.quit();
|
|
166
229
|
return { status: 200, body: { status: 'healthy' } };
|
package/src/redis-index.d.ts
CHANGED
|
@@ -5,4 +5,5 @@
|
|
|
5
5
|
export { RedisKeys, createRedisKey, extractOriginalKey, getBullMQSafeQueueName, getPrefix, isAppKey, type RedisKeyType, } from './tools/redis/RedisKeyManager';
|
|
6
6
|
export type { RedisConfig } from './config/type';
|
|
7
7
|
export { createRedisConnection } from './config/workers';
|
|
8
|
+
export type { RedisTransportOptions } from './tools/redis/RedisTransport';
|
|
8
9
|
//# sourceMappingURL=redis-index.d.ts.map
|
package/src/redis-index.d.ts.map
CHANGED
|
@@ -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"}
|
|
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"}
|
|
@@ -3,6 +3,7 @@ export type RedisTransportMode = 'direct' | 'proxy';
|
|
|
3
3
|
export type RedisTransportOptions = Readonly<{
|
|
4
4
|
subsystem?: string;
|
|
5
5
|
requireDirect?: boolean;
|
|
6
|
+
requireDirectForScripts?: boolean;
|
|
6
7
|
}>;
|
|
7
8
|
type RedisProxyConnection = {
|
|
8
9
|
[x: string]: unknown;
|
|
@@ -26,6 +27,9 @@ type RedisProxyConnection = {
|
|
|
26
27
|
setMaxListeners: (count: number) => RedisProxyConnection;
|
|
27
28
|
getMaxListeners: () => number;
|
|
28
29
|
call: (command: string, ...args: unknown[]) => Promise<unknown>;
|
|
30
|
+
scripts: {
|
|
31
|
+
[key: string]: (...args: unknown[]) => Promise<unknown>;
|
|
32
|
+
};
|
|
29
33
|
pipeline: () => {
|
|
30
34
|
exec: () => Promise<Array<[Error | null, unknown]>>;
|
|
31
35
|
runCommand?: (name: string, args: unknown[]) => unknown;
|
|
@@ -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,CAAC;AAEpD,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"RedisTransport.d.ts","sourceRoot":"","sources":["../../../../src/tools/redis/RedisTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ import { ErrorFactory } from '../../exceptions/ZintrustError.js';
|
|
|
4
4
|
import { parseCustomHeadersFromEnv } from '../../orm/adapters/SqlProxyAdapterUtils.js';
|
|
5
5
|
import { SignedRequest } from '../../security/SignedRequest.js';
|
|
6
6
|
const loggedSelections = new Set();
|
|
7
|
+
// Module-level script storage for persistence across connections
|
|
8
|
+
const globalScripts = new Map();
|
|
7
9
|
const readEnvString = (key, fallback = '') => {
|
|
8
10
|
if (typeof Env.get === 'function') {
|
|
9
11
|
return Env.get(key, fallback);
|
|
@@ -253,24 +255,34 @@ const logDefineCommandCall = (name, definition) => {
|
|
|
253
255
|
luaPreview: definition.lua.substring(0, 100) + '...',
|
|
254
256
|
});
|
|
255
257
|
};
|
|
256
|
-
const storeScript = (
|
|
257
|
-
|
|
258
|
+
const storeScript = (name, definition) => {
|
|
259
|
+
globalScripts.set(name, {
|
|
258
260
|
numberOfKeys: definition.numberOfKeys,
|
|
259
261
|
lua: definition.lua,
|
|
260
262
|
});
|
|
261
263
|
Logger.debug('[redis][proxy][bullmq] Script stored', {
|
|
262
264
|
commandName: name,
|
|
263
|
-
totalScripts:
|
|
264
|
-
allScriptNames: Array.from(
|
|
265
|
+
totalScripts: globalScripts.size,
|
|
266
|
+
allScriptNames: Array.from(globalScripts.keys()),
|
|
265
267
|
});
|
|
266
268
|
};
|
|
267
269
|
const executeScriptViaEval = async (settings, name, script, args) => {
|
|
268
|
-
Logger.debug('[redis][proxy][bullmq] Executing script via
|
|
270
|
+
Logger.debug('[redis][proxy][bullmq] Executing script via SCRIPT LOAD + EVALSHA', {
|
|
269
271
|
commandName: name,
|
|
270
272
|
numberOfKeys: script.numberOfKeys,
|
|
271
273
|
luaLength: script.lua.length,
|
|
272
274
|
args: args.slice(0, 3), // Log first 3 args to avoid huge logs
|
|
273
275
|
});
|
|
276
|
+
// Load script into Redis cache
|
|
277
|
+
const sha = await requestProxyCommand(settings, 'SCRIPT', ['LOAD', script.lua]);
|
|
278
|
+
// Execute using SHA for performance
|
|
279
|
+
if (typeof sha === 'string') {
|
|
280
|
+
return requestProxyCommand(settings, 'EVALSHA', [sha, script.numberOfKeys, ...args]);
|
|
281
|
+
}
|
|
282
|
+
// Fallback to EVAL if SCRIPT LOAD fails
|
|
283
|
+
Logger.warn('[redis][proxy][bullmq] SCRIPT LOAD failed, falling back to EVAL', {
|
|
284
|
+
commandName: name,
|
|
285
|
+
});
|
|
274
286
|
return requestProxyCommand(settings, 'EVAL', [script.lua, script.numberOfKeys, ...args]);
|
|
275
287
|
};
|
|
276
288
|
const createCommandFunction = (settings, prop) => {
|
|
@@ -318,6 +330,32 @@ const handlePropertyAccess = (obj, prop, scripts, client, settings) => {
|
|
|
318
330
|
}
|
|
319
331
|
return createCommandFunction(settings, prop);
|
|
320
332
|
};
|
|
333
|
+
const createScriptsHandler = (scripts, settings) => {
|
|
334
|
+
return new Proxy({}, {
|
|
335
|
+
get(_target, prop) {
|
|
336
|
+
return async (...args) => {
|
|
337
|
+
const scriptName = String(prop);
|
|
338
|
+
Logger.debug('[redis][proxy][scripts] Script method called', {
|
|
339
|
+
scriptName,
|
|
340
|
+
argsCount: args.length,
|
|
341
|
+
isVersioned: scriptName.includes(':'),
|
|
342
|
+
});
|
|
343
|
+
// Strip version suffix (e.g., moveToActive:5.77.6 -> moveToActive)
|
|
344
|
+
const baseScriptName = scriptName.includes(':') ? scriptName.split(':')[0] : scriptName;
|
|
345
|
+
const script = scripts.get(baseScriptName);
|
|
346
|
+
if (script === undefined) {
|
|
347
|
+
Logger.warn('[redis][proxy][scripts] Script not found, falling back to direct proxy call', {
|
|
348
|
+
scriptName,
|
|
349
|
+
baseScriptName,
|
|
350
|
+
availableScripts: Array.from(scripts.keys()),
|
|
351
|
+
});
|
|
352
|
+
return requestProxyCommand(settings, scriptName, args);
|
|
353
|
+
}
|
|
354
|
+
return executeScriptViaEval(settings, scriptName, script, args);
|
|
355
|
+
};
|
|
356
|
+
},
|
|
357
|
+
});
|
|
358
|
+
};
|
|
321
359
|
const createProxyTarget = (config, options, scripts, runDefinedCommand, settings, client) => {
|
|
322
360
|
const target = {
|
|
323
361
|
__bullmq_iredis: true,
|
|
@@ -331,7 +369,7 @@ const createProxyTarget = (config, options, scripts, runDefinedCommand, settings
|
|
|
331
369
|
duplicate: () => createRedisProxyConnection(config, options),
|
|
332
370
|
defineCommand: (name, definition) => {
|
|
333
371
|
logDefineCommandCall(name, definition);
|
|
334
|
-
storeScript(
|
|
372
|
+
storeScript(name, definition);
|
|
335
373
|
},
|
|
336
374
|
runCommand: async (name, args) => runDefinedCommand(name, args),
|
|
337
375
|
on: (_event, _handler) => client ?? target,
|
|
@@ -350,6 +388,7 @@ const createProxyTarget = (config, options, scripts, runDefinedCommand, settings
|
|
|
350
388
|
});
|
|
351
389
|
return requestProxyCommand(settings, command, args);
|
|
352
390
|
},
|
|
391
|
+
scripts: createScriptsHandler(scripts, settings),
|
|
353
392
|
pipeline: () => createPipeline(settings, runDefinedCommand),
|
|
354
393
|
multi: () => createPipeline(settings, runDefinedCommand),
|
|
355
394
|
scanStream: (scanOptions) => createScanStream(settings, scanOptions),
|
|
@@ -358,19 +397,18 @@ const createProxyTarget = (config, options, scripts, runDefinedCommand, settings
|
|
|
358
397
|
};
|
|
359
398
|
export const createRedisProxyConnection = (config, options) => {
|
|
360
399
|
const settings = resolveProxySettings();
|
|
361
|
-
const scripts = new Map();
|
|
362
400
|
const runDefinedCommand = async (name, args) => {
|
|
363
401
|
Logger.debug('[redis][proxy][bullmq] runDefinedCommand called', {
|
|
364
402
|
commandName: name,
|
|
365
403
|
argsCount: args.length,
|
|
366
|
-
hasScript:
|
|
367
|
-
scriptKeys: Array.from(
|
|
404
|
+
hasScript: globalScripts.has(name),
|
|
405
|
+
scriptKeys: Array.from(globalScripts.keys()),
|
|
368
406
|
});
|
|
369
|
-
const script =
|
|
407
|
+
const script = globalScripts.get(name);
|
|
370
408
|
if (script === undefined) {
|
|
371
409
|
Logger.warn('[redis][proxy][bullmq] Script not found, falling back to direct proxy call', {
|
|
372
410
|
commandName: name,
|
|
373
|
-
availableScripts: Array.from(
|
|
411
|
+
availableScripts: Array.from(globalScripts.keys()),
|
|
374
412
|
});
|
|
375
413
|
return requestProxyCommand(settings, name, args);
|
|
376
414
|
}
|
|
@@ -386,10 +424,10 @@ export const createRedisProxyConnection = (config, options) => {
|
|
|
386
424
|
hasRunCommandMethod: true,
|
|
387
425
|
hasMultiMethod: true,
|
|
388
426
|
});
|
|
389
|
-
const proxyTarget = createProxyTarget(config, options,
|
|
427
|
+
const proxyTarget = createProxyTarget(config, options, globalScripts, runDefinedCommand, settings, null);
|
|
390
428
|
const client = new Proxy(proxyTarget, {
|
|
391
429
|
get(obj, prop) {
|
|
392
|
-
return handlePropertyAccess(obj, prop,
|
|
430
|
+
return handlePropertyAccess(obj, prop, globalScripts, client, settings);
|
|
393
431
|
},
|
|
394
432
|
});
|
|
395
433
|
return client;
|
|
@@ -399,6 +437,15 @@ export const ensureRedisTransportMode = (config, options) => {
|
|
|
399
437
|
if (mode === 'proxy' && options?.requireDirect === true) {
|
|
400
438
|
throw ErrorFactory.createConfigError(`Redis subsystem '${options.subsystem ?? 'redis'}' requires a direct Redis connection, but proxy mode is enabled.`);
|
|
401
439
|
}
|
|
440
|
+
// If requireDirectForScripts is set (option or env), force direct mode for script operations
|
|
441
|
+
const requireDirectForScripts = options?.requireDirectForScripts ?? Env.REDIS_REQUIRE_DIRECT_FOR_SCRIPTS;
|
|
442
|
+
if (mode === 'proxy' && requireDirectForScripts === true) {
|
|
443
|
+
Logger.warn('[redis][transport] Forcing direct mode for scripts due to requireDirectForScripts', {
|
|
444
|
+
subsystem: options?.subsystem ?? 'redis',
|
|
445
|
+
source: options?.requireDirectForScripts === true ? 'option' : 'env',
|
|
446
|
+
});
|
|
447
|
+
return 'direct';
|
|
448
|
+
}
|
|
402
449
|
if (mode === 'direct') {
|
|
403
450
|
logTransportSelection(mode, config, options);
|
|
404
451
|
}
|