@wazobiatech/auth-middleware 1.0.6 → 1.0.8
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/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +18 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/redis.connection.d.ts +10 -0
- package/dist/utils/redis.connection.d.ts.map +1 -1
- package/dist/utils/redis.connection.js +114 -12
- package/dist/utils/redis.connection.js.map +1 -1
- package/package.json +17 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./redis.connection"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC"}
|
|
@@ -4,9 +4,19 @@ type RedisClient = ReturnType<typeof createClient>;
|
|
|
4
4
|
declare class RedisConnectionManager {
|
|
5
5
|
private static instance;
|
|
6
6
|
private static connecting;
|
|
7
|
+
private static isShuttingDown;
|
|
7
8
|
private constructor();
|
|
8
9
|
static getInstance(): Promise<RedisClient>;
|
|
9
10
|
static closeConnection(): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Get connection status without triggering a new connection
|
|
13
|
+
*/
|
|
14
|
+
static isConnected(): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Setup graceful shutdown handlers for common termination signals
|
|
17
|
+
*/
|
|
18
|
+
private static shutdownPromise;
|
|
19
|
+
static setupGracefulShutdown(): void;
|
|
10
20
|
}
|
|
11
21
|
export default RedisConnectionManager;
|
|
12
22
|
//# sourceMappingURL=redis.connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.connection.d.ts","sourceRoot":"","sources":["../../src/utils/redis.connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,eAAe,CAAC;AAEvB,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AAEnD,cAAM,sBAAsB;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;IACnD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAqC;
|
|
1
|
+
{"version":3,"file":"redis.connection.d.ts","sourceRoot":"","sources":["../../src/utils/redis.connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,eAAe,CAAC;AAEvB,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AAEnD,cAAM,sBAAsB;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;IACnD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAqC;IAC9D,OAAO,CAAC,MAAM,CAAC,cAAc,CAAS;IAEtC,OAAO;WAEa,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;WAqGnC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCpD;;OAEG;WACW,WAAW,IAAI,OAAO;IAIpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe,CAA8B;WAE9C,qBAAqB,IAAI,IAAI;CA0B5C;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -5,14 +5,37 @@ require("dotenv/config");
|
|
|
5
5
|
class RedisConnectionManager {
|
|
6
6
|
constructor() { }
|
|
7
7
|
static async getInstance() {
|
|
8
|
-
//
|
|
8
|
+
// Prevent new connections during shutdown
|
|
9
|
+
if (RedisConnectionManager.isShuttingDown) {
|
|
10
|
+
throw new Error("Redis connection manager is shutting down");
|
|
11
|
+
}
|
|
12
|
+
// If already connected, verify it's still healthy
|
|
9
13
|
if (RedisConnectionManager.instance) {
|
|
10
|
-
|
|
14
|
+
try {
|
|
15
|
+
// Quick health check - check if connection is open first
|
|
16
|
+
if (RedisConnectionManager.instance.isOpen) {
|
|
17
|
+
await RedisConnectionManager.instance.ping();
|
|
18
|
+
return RedisConnectionManager.instance;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
// Connection is closed, reset instance
|
|
22
|
+
RedisConnectionManager.instance = null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
console.warn("Redis health check failed, reconnecting:", error);
|
|
27
|
+
// Reset instance to trigger reconnection
|
|
28
|
+
RedisConnectionManager.instance = null;
|
|
29
|
+
}
|
|
11
30
|
}
|
|
12
31
|
// If currently connecting, wait for that connection
|
|
13
32
|
if (RedisConnectionManager.connecting) {
|
|
14
33
|
return RedisConnectionManager.connecting;
|
|
15
34
|
}
|
|
35
|
+
// Validate required environment variable
|
|
36
|
+
if (!process.env.REDIS_URL) {
|
|
37
|
+
throw new Error("REDIS_URL environment variable is required");
|
|
38
|
+
}
|
|
16
39
|
// Start new connection
|
|
17
40
|
RedisConnectionManager.connecting = (async () => {
|
|
18
41
|
const client = (0, redis_1.createClient)({
|
|
@@ -20,20 +43,34 @@ class RedisConnectionManager {
|
|
|
20
43
|
socket: {
|
|
21
44
|
// Add connection timeout
|
|
22
45
|
connectTimeout: 10000,
|
|
23
|
-
// Keep alive to prevent idle disconnections
|
|
46
|
+
// Keep alive to prevent idle disconnections
|
|
24
47
|
keepAlive: true,
|
|
25
|
-
//
|
|
48
|
+
// More robust reconnect strategy
|
|
26
49
|
reconnectStrategy: (retries) => {
|
|
27
|
-
|
|
50
|
+
// Increased retry limit for production resilience
|
|
51
|
+
if (retries > 20) {
|
|
28
52
|
console.error("Redis: Too many retries, giving up");
|
|
29
53
|
return new Error("Too many retries");
|
|
30
54
|
}
|
|
31
|
-
|
|
55
|
+
// Exponential backoff with jitter
|
|
56
|
+
const baseDelay = Math.min(retries * 100, 3000);
|
|
57
|
+
const jitter = Math.random() * 1000;
|
|
58
|
+
return baseDelay + jitter;
|
|
32
59
|
},
|
|
33
60
|
},
|
|
34
61
|
});
|
|
35
62
|
client.on("error", (error) => {
|
|
36
63
|
console.error("Redis connection error:", error);
|
|
64
|
+
// Reset instance on error to trigger reconnection on next call
|
|
65
|
+
if (RedisConnectionManager.instance === client) {
|
|
66
|
+
RedisConnectionManager.instance = null;
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
client.on("end", () => {
|
|
70
|
+
console.log("Redis connection ended");
|
|
71
|
+
if (RedisConnectionManager.instance === client) {
|
|
72
|
+
RedisConnectionManager.instance = null;
|
|
73
|
+
}
|
|
37
74
|
});
|
|
38
75
|
client.on("connect", () => {
|
|
39
76
|
console.log("Redis client connected");
|
|
@@ -44,22 +81,87 @@ class RedisConnectionManager {
|
|
|
44
81
|
client.on("reconnecting", () => {
|
|
45
82
|
console.log("Redis client reconnecting");
|
|
46
83
|
});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
84
|
+
try {
|
|
85
|
+
await client.connect();
|
|
86
|
+
RedisConnectionManager.instance = client;
|
|
87
|
+
RedisConnectionManager.connecting = null;
|
|
88
|
+
return client;
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
RedisConnectionManager.connecting = null;
|
|
92
|
+
console.error("Failed to connect to Redis:", error);
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
51
95
|
})();
|
|
52
96
|
return RedisConnectionManager.connecting;
|
|
53
97
|
}
|
|
54
98
|
static async closeConnection() {
|
|
99
|
+
RedisConnectionManager.isShuttingDown = true;
|
|
100
|
+
// Wait for any pending connections to complete
|
|
101
|
+
if (RedisConnectionManager.connecting) {
|
|
102
|
+
try {
|
|
103
|
+
await RedisConnectionManager.connecting;
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
// Ignore connection errors during shutdown
|
|
107
|
+
console.warn("Error during shutdown connection wait:", error);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
55
110
|
if (RedisConnectionManager.instance) {
|
|
56
|
-
|
|
111
|
+
try {
|
|
112
|
+
await RedisConnectionManager.instance.quit();
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
console.warn("Error during Redis quit:", error);
|
|
116
|
+
// Force disconnect if quit fails
|
|
117
|
+
try {
|
|
118
|
+
await RedisConnectionManager.instance.disconnect();
|
|
119
|
+
}
|
|
120
|
+
catch (disconnectError) {
|
|
121
|
+
console.warn("Error during Redis disconnect:", disconnectError);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
57
124
|
RedisConnectionManager.instance = null;
|
|
58
|
-
RedisConnectionManager.connecting = null;
|
|
59
125
|
}
|
|
126
|
+
RedisConnectionManager.connecting = null;
|
|
127
|
+
RedisConnectionManager.isShuttingDown = false;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Get connection status without triggering a new connection
|
|
131
|
+
*/
|
|
132
|
+
static isConnected() {
|
|
133
|
+
return RedisConnectionManager.instance?.isOpen ?? false;
|
|
134
|
+
}
|
|
135
|
+
static setupGracefulShutdown() {
|
|
136
|
+
const signals = ['SIGTERM', 'SIGINT', 'SIGQUIT'];
|
|
137
|
+
const shutdown = async (signal) => {
|
|
138
|
+
if (RedisConnectionManager.shutdownPromise) {
|
|
139
|
+
return RedisConnectionManager.shutdownPromise;
|
|
140
|
+
}
|
|
141
|
+
console.log(`Received ${signal}, closing Redis connection...`);
|
|
142
|
+
RedisConnectionManager.shutdownPromise = (async () => {
|
|
143
|
+
try {
|
|
144
|
+
await RedisConnectionManager.closeConnection();
|
|
145
|
+
console.log('Redis connection closed successfully');
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
console.error('Error closing Redis connection:', error);
|
|
149
|
+
}
|
|
150
|
+
})();
|
|
151
|
+
await RedisConnectionManager.shutdownPromise;
|
|
152
|
+
process.exit(0);
|
|
153
|
+
};
|
|
154
|
+
signals.forEach(signal => {
|
|
155
|
+
process.once(signal, () => shutdown(signal)); // Use 'once' instead of 'on'
|
|
156
|
+
});
|
|
60
157
|
}
|
|
61
158
|
}
|
|
62
159
|
RedisConnectionManager.instance = null;
|
|
63
160
|
RedisConnectionManager.connecting = null;
|
|
161
|
+
RedisConnectionManager.isShuttingDown = false;
|
|
162
|
+
/**
|
|
163
|
+
* Setup graceful shutdown handlers for common termination signals
|
|
164
|
+
*/
|
|
165
|
+
RedisConnectionManager.shutdownPromise = null;
|
|
64
166
|
exports.default = RedisConnectionManager;
|
|
65
167
|
//# sourceMappingURL=redis.connection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.connection.js","sourceRoot":"","sources":["../../src/utils/redis.connection.ts"],"names":[],"mappings":";;AAAA,iCAAqC;AACrC,yBAAuB;AAIvB,MAAM,sBAAsB;
|
|
1
|
+
{"version":3,"file":"redis.connection.js","sourceRoot":"","sources":["../../src/utils/redis.connection.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wazobiatech/auth-middleware",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "Framework-agnostic JWT authentication library for Wazobia microservices platform",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -27,7 +27,6 @@
|
|
|
27
27
|
"@nestjs/passport": "^10.0.0 || ^11.0.0",
|
|
28
28
|
"express": "^4.18.0 || ^5.0.0",
|
|
29
29
|
"fastify": "^4.0.0 || ^5.0.0",
|
|
30
|
-
"ioredis": "^5.0.0",
|
|
31
30
|
"passport-jwt": "^4.0.0"
|
|
32
31
|
},
|
|
33
32
|
"peerDependenciesMeta": {
|
|
@@ -48,9 +47,6 @@
|
|
|
48
47
|
},
|
|
49
48
|
"passport-jwt": {
|
|
50
49
|
"optional": true
|
|
51
|
-
},
|
|
52
|
-
"ioredis": {
|
|
53
|
-
"optional": true
|
|
54
50
|
}
|
|
55
51
|
},
|
|
56
52
|
"exports": {
|
|
@@ -65,6 +61,14 @@
|
|
|
65
61
|
"./nestjs": {
|
|
66
62
|
"types": "./dist/nestjs/index.d.ts",
|
|
67
63
|
"default": "./dist/nestjs/index.js"
|
|
64
|
+
},
|
|
65
|
+
"./utils": {
|
|
66
|
+
"types": "./dist/utils/index.d.ts",
|
|
67
|
+
"default": "./dist/utils/index.js"
|
|
68
|
+
},
|
|
69
|
+
"./utils/redis.connection": {
|
|
70
|
+
"types": "./dist/utils/redis.connection.d.ts",
|
|
71
|
+
"default": "./dist/utils/redis.connection.js"
|
|
68
72
|
}
|
|
69
73
|
},
|
|
70
74
|
"typesVersions": {
|
|
@@ -74,6 +78,12 @@
|
|
|
74
78
|
],
|
|
75
79
|
"nestjs": [
|
|
76
80
|
"dist/nestjs/index.d.ts"
|
|
81
|
+
],
|
|
82
|
+
"utils": [
|
|
83
|
+
"dist/utils/index.d.ts"
|
|
84
|
+
],
|
|
85
|
+
"utils/redis.connection": [
|
|
86
|
+
"dist/utils/redis.connection.d.ts"
|
|
77
87
|
]
|
|
78
88
|
}
|
|
79
89
|
},
|
|
@@ -82,7 +92,8 @@
|
|
|
82
92
|
"dotenv": "^16.3.1",
|
|
83
93
|
"jsonwebtoken": "^9.0.0",
|
|
84
94
|
"node-jose": "^2.2.0",
|
|
85
|
-
"passport": "^0.7.0"
|
|
95
|
+
"passport": "^0.7.0",
|
|
96
|
+
"redis": "^5.1.1"
|
|
86
97
|
},
|
|
87
98
|
"devDependencies": {
|
|
88
99
|
"@nestjs/common": "^11.1.5",
|
|
@@ -102,7 +113,6 @@
|
|
|
102
113
|
"graphql": "^16.11.0",
|
|
103
114
|
"jest": "^29.0.0",
|
|
104
115
|
"passport-jwt": "^4.0.1",
|
|
105
|
-
"redis": "^5.1.1",
|
|
106
116
|
"reflect-metadata": "^0.2.2",
|
|
107
117
|
"rxjs": "^7.8.0",
|
|
108
118
|
"ts-jest": "^29.0.0",
|