@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.
@@ -0,0 +1,2 @@
1
+ export * from './redis.connection';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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;IAE9D,OAAO;WAEa,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;WAyDnC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAOrD;AAED,eAAe,sBAAsB,CAAC"}
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
- // If already connected, return immediately
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
- return RedisConnectionManager.instance;
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
- // Reconnect strategy
48
+ // More robust reconnect strategy
26
49
  reconnectStrategy: (retries) => {
27
- if (retries > 10) {
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
- return Math.min(retries * 100, 3000);
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
- await client.connect();
48
- RedisConnectionManager.instance = client;
49
- RedisConnectionManager.connecting = null;
50
- return client;
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
- await RedisConnectionManager.instance.quit();
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;IAI1B,gBAAuB,CAAC;IAEjB,MAAM,CAAC,KAAK,CAAC,WAAW;QAC7B,2CAA2C;QAC3C,IAAI,sBAAsB,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,sBAAsB,CAAC,QAAQ,CAAC;QACzC,CAAC;QAED,oDAAoD;QACpD,IAAI,sBAAsB,CAAC,UAAU,EAAE,CAAC;YACtC,OAAO,sBAAsB,CAAC,UAAU,CAAC;QAC3C,CAAC;QAED,uBAAuB;QACvB,sBAAsB,CAAC,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE;YAC9C,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC;gBAC1B,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,SAAmB;gBACpC,MAAM,EAAE;oBACN,yBAAyB;oBACzB,cAAc,EAAE,KAAK;oBACrB,4CAA4C;oBAC5C,SAAS,EAAE,IAAI;oBACf,qBAAqB;oBACrB,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE;wBAC7B,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;4BACjB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;4BACpD,OAAO,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;wBACvC,CAAC;wBACD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;oBACvC,CAAC;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;gBAClC,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACxB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,sBAAsB,CAAC,QAAQ,GAAG,MAAM,CAAC;YACzC,sBAAsB,CAAC,UAAU,GAAG,IAAI,CAAC;YAEzC,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,sBAAsB,CAAC,UAAU,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,eAAe;QACjC,IAAI,sBAAsB,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC7C,sBAAsB,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvC,sBAAsB,CAAC,UAAU,GAAG,IAAI,CAAC;QAC3C,CAAC;IACH,CAAC;;AApEc,+BAAQ,GAAuB,IAAI,CAAC;AACpC,iCAAU,GAAgC,IAAI,CAAC;AAsEhE,kBAAe,sBAAsB,CAAC"}
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.6",
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",