@ackplus/nest-auth 1.1.45 → 1.1.46

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 (50) hide show
  1. package/dist/lib/admin-console/controllers/admin-users.controller.d.ts +1 -1
  2. package/dist/lib/admin-console/controllers/admin-users.controller.d.ts.map +1 -1
  3. package/dist/lib/admin-console/controllers/admin-users.controller.js +14 -10
  4. package/dist/lib/admin-console/controllers/admin-users.controller.js.map +1 -1
  5. package/dist/lib/admin-console/static/index.html +324 -329
  6. package/dist/lib/admin-console/static/nest-auth.json +1 -1
  7. package/dist/lib/auth/guards/auth.guard.d.ts +4 -1
  8. package/dist/lib/auth/guards/auth.guard.d.ts.map +1 -1
  9. package/dist/lib/auth/guards/auth.guard.js +32 -4
  10. package/dist/lib/auth/guards/auth.guard.js.map +1 -1
  11. package/dist/lib/core/interfaces/session-options.interface.d.ts +16 -1
  12. package/dist/lib/core/interfaces/session-options.interface.d.ts.map +1 -1
  13. package/dist/lib/core/services/auth-config.service.d.ts +1 -0
  14. package/dist/lib/core/services/auth-config.service.d.ts.map +1 -1
  15. package/dist/lib/core/services/auth-config.service.js +18 -0
  16. package/dist/lib/core/services/auth-config.service.js.map +1 -1
  17. package/dist/lib/session/index.d.ts +2 -1
  18. package/dist/lib/session/index.d.ts.map +1 -1
  19. package/dist/lib/session/index.js +2 -1
  20. package/dist/lib/session/index.js.map +1 -1
  21. package/dist/lib/session/interfaces/{session-repository.interface.d.ts → session-store.interface.d.ts} +2 -2
  22. package/dist/lib/session/interfaces/session-store.interface.d.ts.map +1 -0
  23. package/dist/lib/session/interfaces/{session-repository.interface.js → session-store.interface.js} +1 -1
  24. package/dist/lib/session/interfaces/session-store.interface.js.map +1 -0
  25. package/dist/lib/session/repositories/base-session.repository.d.ts +2 -2
  26. package/dist/lib/session/repositories/base-session.repository.d.ts.map +1 -1
  27. package/dist/lib/session/repositories/base-session.repository.js +4 -2
  28. package/dist/lib/session/repositories/base-session.repository.js.map +1 -1
  29. package/dist/lib/session/repositories/redis-session.repository.d.ts +14 -4
  30. package/dist/lib/session/repositories/redis-session.repository.d.ts.map +1 -1
  31. package/dist/lib/session/repositories/redis-session.repository.js +220 -65
  32. package/dist/lib/session/repositories/redis-session.repository.js.map +1 -1
  33. package/dist/lib/session/repositories/typeorm-session.repository.d.ts.map +1 -1
  34. package/dist/lib/session/repositories/typeorm-session.repository.js +29 -4
  35. package/dist/lib/session/repositories/typeorm-session.repository.js.map +1 -1
  36. package/dist/lib/session/services/session-manager.service.d.ts +8 -4
  37. package/dist/lib/session/services/session-manager.service.d.ts.map +1 -1
  38. package/dist/lib/session/services/session-manager.service.js +72 -23
  39. package/dist/lib/session/services/session-manager.service.js.map +1 -1
  40. package/dist/lib/session/session.module.d.ts +5 -1
  41. package/dist/lib/session/session.module.d.ts.map +1 -1
  42. package/dist/lib/session/session.module.js +93 -26
  43. package/dist/lib/session/session.module.js.map +1 -1
  44. package/dist/lib/session/stores/database-session.store.d.ts +19 -0
  45. package/dist/lib/session/stores/database-session.store.d.ts.map +1 -0
  46. package/dist/lib/session/stores/database-session.store.js +56 -0
  47. package/dist/lib/session/stores/database-session.store.js.map +1 -0
  48. package/package.json +2 -2
  49. package/dist/lib/session/interfaces/session-repository.interface.d.ts.map +0 -1
  50. package/dist/lib/session/interfaces/session-repository.interface.js.map +0 -1
@@ -15,17 +15,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
15
15
  return (mod && mod.__esModule) ? mod : { "default": mod };
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.SessionManagerService = exports.SESSION_REPOSITORY = void 0;
18
+ exports.SessionManagerService = exports.SESSION_REPOSITORY = exports.SESSION_STORE = void 0;
19
19
  const common_1 = require("@nestjs/common");
20
20
  const auth_config_service_1 = require("../../core/services/auth-config.service");
21
21
  const request_context_1 = require("../../request-context/request-context");
22
22
  const uuid_1 = require("uuid");
23
23
  const ms_1 = __importDefault(require("ms"));
24
+ exports.SESSION_STORE = 'SESSION_STORE';
24
25
  exports.SESSION_REPOSITORY = 'SESSION_REPOSITORY';
25
26
  let SessionManagerService = class SessionManagerService {
26
- repository;
27
- constructor(repository) {
28
- this.repository = repository;
27
+ store;
28
+ constructor(store) {
29
+ this.store = store;
29
30
  }
30
31
  get options() {
31
32
  return auth_config_service_1.AuthConfigService.getOptions();
@@ -50,7 +51,7 @@ let SessionManagerService = class SessionManagerService {
50
51
  ipAddress: ipAddress || request_context_1.RequestContext.getDeviceInfo().ipAddress,
51
52
  lastActive: new Date(),
52
53
  };
53
- const session = await this.repository.create(sessionPayload);
54
+ const session = await this.store.create(sessionPayload);
54
55
  if (this.options.session?.onCreated) {
55
56
  const user = data?.user;
56
57
  await this.options.session.onCreated(session, user);
@@ -58,55 +59,88 @@ let SessionManagerService = class SessionManagerService {
58
59
  return session;
59
60
  }
60
61
  async getSession(sessionId, refreshSession = true) {
61
- const session = await this.repository.findById(sessionId);
62
+ const session = await this.store.findById(sessionId);
62
63
  if (!session) {
63
64
  throw new common_1.UnauthorizedException('Session not found');
64
65
  }
65
66
  if (this.isExpired(session)) {
66
- await this.repository.delete(sessionId);
67
+ await this.store.delete(sessionId);
67
68
  throw new common_1.UnauthorizedException('Session expired');
68
69
  }
69
70
  if (refreshSession && this.slidingExpiration) {
70
- await this.repository.updateLastActive(sessionId);
71
+ await this.touchSession(sessionId);
71
72
  }
72
73
  return session;
73
74
  }
74
75
  async getUserSessions(userId) {
75
- return await this.repository.findByUserId(userId);
76
+ return await this.store.findByUserId(userId);
76
77
  }
77
78
  async getActiveSessions(userId) {
78
- return await this.repository.findActiveByUserId(userId);
79
+ return await this.store.findActiveByUserId(userId);
79
80
  }
80
81
  async updateSession(sessionId, updates) {
81
- return await this.repository.update(sessionId, updates);
82
+ return await this.store.update(sessionId, updates);
82
83
  }
83
84
  async revokeSession(sessionId) {
84
85
  let session = null;
85
86
  if (this.options.session?.onRevoked) {
86
- session = await this.repository.findById(sessionId);
87
+ session = await this.store.findById(sessionId);
87
88
  }
88
- await this.repository.delete(sessionId);
89
+ await this.store.delete(sessionId);
89
90
  if (this.options.session?.onRevoked && session) {
90
91
  await this.options.session.onRevoked(session, 'admin');
91
92
  }
92
93
  }
94
+ async deleteSession(sessionId) {
95
+ await this.revokeSession(sessionId);
96
+ }
93
97
  async revokeAllUserSessions(userId) {
94
- await this.repository.deleteByUserId(userId);
98
+ await this.store.deleteByUserId(userId);
95
99
  }
96
100
  async revokeOtherSessions(userId, currentSessionId) {
97
- const sessions = await this.repository.findByUserId(userId);
101
+ const sessions = await this.store.findByUserId(userId);
98
102
  for (const session of sessions) {
99
103
  if (session.id !== currentSessionId) {
100
- await this.repository.delete(session.id);
104
+ await this.store.delete(session.id);
101
105
  }
102
106
  }
103
107
  }
104
108
  async cleanupExpiredSessions() {
105
- return await this.repository.deleteExpired();
109
+ return await this.store.deleteExpired();
106
110
  }
107
111
  async extendSession(sessionId, duration) {
108
112
  const expiresAt = this.calculateExpiration(duration);
109
- return await this.repository.update(sessionId, { expiresAt });
113
+ return await this.store.update(sessionId, { expiresAt });
114
+ }
115
+ async touchSession(sessionId, duration) {
116
+ const expiresAt = this.calculateExpiration(duration);
117
+ return await this.store.update(sessionId, {
118
+ lastActive: new Date(),
119
+ expiresAt,
120
+ });
121
+ }
122
+ async rotateSession(sessionId) {
123
+ const session = await this.store.findById(sessionId);
124
+ if (!session) {
125
+ throw new common_1.UnauthorizedException('Session not found');
126
+ }
127
+ const newSessionPayload = {
128
+ id: (0, uuid_1.v4)(),
129
+ userId: session.userId,
130
+ refreshToken: session.refreshToken,
131
+ data: session.data,
132
+ expiresAt: this.calculateExpiration(),
133
+ userAgent: session.userAgent,
134
+ deviceName: session.deviceName,
135
+ ipAddress: session.ipAddress,
136
+ lastActive: new Date(),
137
+ };
138
+ const newSession = await this.store.create(newSessionPayload);
139
+ await this.store.delete(sessionId);
140
+ if (this.options.session?.onRevoked) {
141
+ await this.options.session.onRevoked(session, 'security');
142
+ }
143
+ return newSession;
110
144
  }
111
145
  async validateSession(sessionId) {
112
146
  try {
@@ -117,11 +151,11 @@ let SessionManagerService = class SessionManagerService {
117
151
  }
118
152
  }
119
153
  async hasReachedMaxSessions(userId) {
120
- const count = await this.repository.countActiveByUserId(userId);
154
+ const count = await this.store.countActiveByUserId(userId);
121
155
  return count >= this.maxSessionsPerUser;
122
156
  }
123
157
  async enforceMaxSessions(userId) {
124
- const activeSessions = await this.repository.findActiveByUserId(userId);
158
+ const activeSessions = await this.store.findActiveByUserId(userId);
125
159
  if (activeSessions.length >= this.maxSessionsPerUser) {
126
160
  const sorted = activeSessions.sort((a, b) => {
127
161
  const aTime = a.lastActive?.getTime() || 0;
@@ -130,13 +164,28 @@ let SessionManagerService = class SessionManagerService {
130
164
  });
131
165
  const toRemove = sorted.slice(0, activeSessions.length - this.maxSessionsPerUser + 1);
132
166
  for (const session of toRemove) {
133
- await this.repository.delete(session.id);
167
+ await this.store.delete(session.id);
134
168
  }
135
169
  }
136
170
  }
137
171
  calculateExpiration(duration) {
138
172
  const expiryDuration = duration || this.options.session?.sessionExpiry || '7d';
139
- const milliseconds = (0, ms_1.default)(expiryDuration);
173
+ let milliseconds;
174
+ if (typeof expiryDuration === 'string') {
175
+ const parsed = (0, ms_1.default)(expiryDuration);
176
+ if (parsed === undefined || !Number.isFinite(parsed) || parsed <= 0) {
177
+ milliseconds = (0, ms_1.default)('7d') || 7 * 24 * 60 * 60 * 1000;
178
+ }
179
+ else {
180
+ milliseconds = parsed;
181
+ }
182
+ }
183
+ else {
184
+ milliseconds = expiryDuration * 1000;
185
+ if (!Number.isFinite(milliseconds) || milliseconds <= 0) {
186
+ throw new Error(`Invalid session expiry duration: ${expiryDuration} seconds`);
187
+ }
188
+ }
140
189
  return new Date(Date.now() + milliseconds);
141
190
  }
142
191
  isExpired(session) {
@@ -187,7 +236,7 @@ let SessionManagerService = class SessionManagerService {
187
236
  exports.SessionManagerService = SessionManagerService;
188
237
  exports.SessionManagerService = SessionManagerService = __decorate([
189
238
  (0, common_1.Injectable)(),
190
- __param(0, (0, common_1.Inject)(exports.SESSION_REPOSITORY)),
239
+ __param(0, (0, common_1.Inject)(exports.SESSION_STORE)),
191
240
  __metadata("design:paramtypes", [Object])
192
241
  ], SessionManagerService);
193
242
  //# sourceMappingURL=session-manager.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.service.js","sourceRoot":"","sources":["../../../../src/lib/session/services/session-manager.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.service.js","sourceRoot":"","sources":["../../../../src/lib/session/services/session-manager.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
1
  export declare class SessionModule {
2
- private static createRedisRepository;
2
+ private static createRedisStore;
3
+ private static resolveStorageType;
4
+ private static resolveRedisOptions;
5
+ private static resolveDefaultTtlSeconds;
6
+ private static buildRedisClientOptions;
3
7
  }
4
8
  //# sourceMappingURL=session.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.module.d.ts","sourceRoot":"","sources":["../../../src/lib/session/session.module.ts"],"names":[],"mappings":"AAgBA,qBA0Ca,aAAa;IAKtB,OAAO,CAAC,MAAM,CAAC,qBAAqB;CAsCvC"}
1
+ {"version":3,"file":"session.module.d.ts","sourceRoot":"","sources":["../../../src/lib/session/session.module.ts"],"names":[],"mappings":"AAmBA,qBAiDa,aAAa;IAKtB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAsC/B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAajC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAYlC,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAgBvC,OAAO,CAAC,MAAM,CAAC,uBAAuB;CAqBzC"}
@@ -5,6 +5,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ var SessionModule_1;
8
12
  Object.defineProperty(exports, "__esModule", { value: true });
9
13
  exports.SessionModule = void 0;
10
14
  const common_1 = require("@nestjs/common");
@@ -13,40 +17,96 @@ const session_entity_1 = require("./entities/session.entity");
13
17
  const session_manager_service_1 = require("./services/session-manager.service");
14
18
  const typeorm_session_repository_1 = require("./repositories/typeorm-session.repository");
15
19
  const memory_session_repository_1 = require("./repositories/memory-session.repository");
20
+ const database_session_store_1 = require("./stores/database-session.store");
21
+ const redis_session_repository_1 = require("./repositories/redis-session.repository");
16
22
  const core_module_1 = require("../core/core.module");
17
23
  const session_options_interface_1 = require("../core/interfaces/session-options.interface");
18
24
  const auth_config_service_1 = require("../core/services/auth-config.service");
19
- let SessionModule = class SessionModule {
20
- static createRedisRepository(redisUrl) {
21
- let RedisSessionRepository;
22
- let ioredisModule;
25
+ const ms_1 = __importDefault(require("ms"));
26
+ let SessionModule = SessionModule_1 = class SessionModule {
27
+ static createRedisStore(session) {
28
+ let RedisClient;
23
29
  let redisClient;
24
30
  try {
25
- RedisSessionRepository = require('./repositories/redis-session.repository').RedisSessionRepository;
26
- ioredisModule = require('@nestjs-modules/ioredis');
27
- const Redis = require('ioredis').default || require('ioredis');
28
- if (redisUrl) {
29
- redisClient = new Redis(redisUrl);
30
- }
31
- else {
32
- redisClient = new Redis();
33
- }
34
- return new RedisSessionRepository(redisClient);
31
+ RedisClient = require('ioredis').default || require('ioredis');
32
+ const redisOptions = SessionModule_1.resolveRedisOptions(session);
33
+ const clientOptions = SessionModule_1.buildRedisClientOptions(redisOptions);
34
+ redisClient = redisOptions.url
35
+ ? new RedisClient(redisOptions.url, clientOptions)
36
+ : new RedisClient(clientOptions);
37
+ const storeOptions = {
38
+ keyPrefix: redisOptions.keyPrefix,
39
+ ttlSeconds: redisOptions.ttlSeconds ?? SessionModule_1.resolveDefaultTtlSeconds(session),
40
+ };
41
+ return new redis_session_repository_1.RedisSessionStore(redisClient, storeOptions);
35
42
  }
36
43
  catch (error) {
37
44
  const errorMessage = error instanceof Error ? error.message : String(error);
38
45
  if (errorMessage.includes('Cannot find module')) {
39
- throw new Error('Redis session storage is configured but packages are not installed.\n' +
40
- ' Install them with: npm install ioredis @nestjs-modules/ioredis\n' +
41
- ' Or change session.storageType to SessionStorageType.DATABASE');
46
+ throw new Error('Redis session store selected but redis client dependency not installed. ' +
47
+ 'Install: npm install ioredis');
42
48
  }
43
- throw new Error(`❌ Failed to initialize Redis session storage: ${errorMessage}\n` +
49
+ throw new Error(`Failed to initialize Redis session storage: ${errorMessage}\n` +
44
50
  ' Make sure Redis server is running and accessible.');
45
51
  }
46
52
  }
53
+ static resolveStorageType(session) {
54
+ const store = session?.storageType ?? session_options_interface_1.SessionStorageType.DATABASE;
55
+ const normalized = String(store).toLowerCase();
56
+ if (normalized === session_options_interface_1.SessionStorageType.REDIS) {
57
+ return session_options_interface_1.SessionStorageType.REDIS;
58
+ }
59
+ if (normalized === session_options_interface_1.SessionStorageType.MEMORY) {
60
+ return session_options_interface_1.SessionStorageType.MEMORY;
61
+ }
62
+ return session_options_interface_1.SessionStorageType.DATABASE;
63
+ }
64
+ static resolveRedisOptions(session) {
65
+ const redis = {
66
+ ...(session?.redis || {}),
67
+ };
68
+ if (!redis.url && session?.redisUrl) {
69
+ redis.url = session.redisUrl;
70
+ }
71
+ return redis;
72
+ }
73
+ static resolveDefaultTtlSeconds(session) {
74
+ const expiry = session?.sessionExpiry;
75
+ if (typeof expiry === 'string') {
76
+ const msValue = (0, ms_1.default)(expiry);
77
+ if (typeof msValue === 'number' && msValue > 0) {
78
+ return Math.floor(msValue / 1000);
79
+ }
80
+ }
81
+ if (typeof expiry === 'number' && expiry > 0) {
82
+ return Math.floor(expiry);
83
+ }
84
+ return 7 * 24 * 60 * 60;
85
+ }
86
+ static buildRedisClientOptions(redis) {
87
+ const options = {
88
+ enableOfflineQueue: redis.enableOfflineQueue ?? true,
89
+ maxRetriesPerRequest: redis.maxRetriesPerRequest ?? null,
90
+ retryStrategy: redis.retryStrategy ||
91
+ ((times) => Math.min(times * 50, 2000)),
92
+ reconnectOnError: redis.reconnectOnError ||
93
+ ((error) => error?.message?.includes('READONLY') ? 2 : false),
94
+ };
95
+ if (redis.host)
96
+ options.host = redis.host;
97
+ if (redis.port !== undefined)
98
+ options.port = redis.port;
99
+ if (redis.password)
100
+ options.password = redis.password;
101
+ if (redis.db !== undefined)
102
+ options.db = redis.db;
103
+ if (redis.tls)
104
+ options.tls = redis.tls;
105
+ return options;
106
+ }
47
107
  };
48
108
  exports.SessionModule = SessionModule;
49
- exports.SessionModule = SessionModule = __decorate([
109
+ exports.SessionModule = SessionModule = SessionModule_1 = __decorate([
50
110
  (0, common_1.Module)({
51
111
  imports: [
52
112
  typeorm_1.TypeOrmModule.forFeature([session_entity_1.NestAuthSession]),
@@ -55,28 +115,35 @@ exports.SessionModule = SessionModule = __decorate([
55
115
  providers: [
56
116
  typeorm_session_repository_1.TypeORMSessionRepository,
57
117
  memory_session_repository_1.MemorySessionRepository,
118
+ database_session_store_1.DatabaseSessionStore,
58
119
  {
59
- provide: session_manager_service_1.SESSION_REPOSITORY,
60
- useFactory: (typeormRepo) => {
120
+ provide: session_manager_service_1.SESSION_STORE,
121
+ useFactory: (databaseStore, memoryStore) => {
61
122
  const config = auth_config_service_1.AuthConfigService.getOptions();
62
- const storageType = config.session?.storageType || session_options_interface_1.SessionStorageType.DATABASE;
123
+ const storageType = SessionModule.resolveStorageType(config.session);
63
124
  if (storageType === session_options_interface_1.SessionStorageType.REDIS) {
64
- return SessionModule.createRedisRepository(config.session?.redisUrl);
125
+ return SessionModule.createRedisStore(config.session);
65
126
  }
66
127
  if (storageType === session_options_interface_1.SessionStorageType.MEMORY) {
67
- return new memory_session_repository_1.MemorySessionRepository();
128
+ return memoryStore;
68
129
  }
69
- return typeormRepo;
130
+ return databaseStore;
70
131
  },
71
- inject: [typeorm_session_repository_1.TypeORMSessionRepository],
132
+ inject: [database_session_store_1.DatabaseSessionStore, memory_session_repository_1.MemorySessionRepository],
133
+ },
134
+ {
135
+ provide: session_manager_service_1.SESSION_REPOSITORY,
136
+ useExisting: session_manager_service_1.SESSION_STORE,
72
137
  },
73
138
  session_manager_service_1.SessionManagerService,
74
139
  ],
75
140
  exports: [
141
+ session_manager_service_1.SESSION_STORE,
76
142
  session_manager_service_1.SESSION_REPOSITORY,
77
143
  session_manager_service_1.SessionManagerService,
78
144
  typeorm_session_repository_1.TypeORMSessionRepository,
79
145
  memory_session_repository_1.MemorySessionRepository,
146
+ database_session_store_1.DatabaseSessionStore,
80
147
  ],
81
148
  })
82
149
  ], SessionModule);
@@ -1 +1 @@
1
- {"version":3,"file":"session.module.js","sourceRoot":"","sources":["../../../src/lib/session/session.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,6CAAgD;AAChD,8DAA4D;AAC5D,gFAA+F;AAC/F,0FAAqF;AACrF,wFAAmF;AACnF,qDAAiD;AACjD,4FAAkF;AAClF,8EAAyE;AAkDlE,IAAM,aAAa,GAAnB,MAAM,aAAa;IAKd,MAAM,CAAC,qBAAqB,CAAC,QAAiB;QAClD,IAAI,sBAA2B,CAAC;QAChC,IAAI,aAAkB,CAAC;QACvB,IAAI,WAAgB,CAAC;QAGrB,IAAI,CAAC;YAED,sBAAsB,GAAG,OAAO,CAAC,yCAAyC,CAAC,CAAC,sBAAsB,CAAC;YACnG,aAAa,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;YAG/D,IAAI,QAAQ,EAAE,CAAC;gBACX,WAAW,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACJ,WAAW,GAAG,IAAI,KAAK,EAAE,CAAC;YAC9B,CAAC;YAGD,OAAO,IAAI,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAE5E,IAAI,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CACX,yEAAyE;oBACzE,qEAAqE;oBACrE,iEAAiE,CACpE,CAAC;YACN,CAAC;YAED,MAAM,IAAI,KAAK,CACX,iDAAiD,YAAY,IAAI;gBACjE,sDAAsD,CACzD,CAAC;QACN,CAAC;IACL,CAAC;CACJ,CAAA;AA3CY,sCAAa;wBAAb,aAAa;IA1CzB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE;YACL,uBAAa,CAAC,UAAU,CAAC,CAAC,gCAAe,CAAC,CAAC;YAC3C,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;SAC/B;QACD,SAAS,EAAE;YAEP,qDAAwB;YACxB,mDAAuB;YAGvB;gBACI,OAAO,EAAE,4CAAkB;gBAC3B,UAAU,EAAE,CAAC,WAAqC,EAAE,EAAE;oBAClD,MAAM,MAAM,GAAG,uCAAiB,CAAC,UAAU,EAAE,CAAC;oBAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,IAAI,8CAAkB,CAAC,QAAQ,CAAC;oBAG/E,IAAI,WAAW,KAAK,8CAAkB,CAAC,KAAK,EAAE,CAAC;wBAC3C,OAAO,aAAa,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACzE,CAAC;oBAED,IAAI,WAAW,KAAK,8CAAkB,CAAC,MAAM,EAAE,CAAC;wBAC5C,OAAO,IAAI,mDAAuB,EAAE,CAAC;oBACzC,CAAC;oBAGD,OAAO,WAAW,CAAC;gBACvB,CAAC;gBACD,MAAM,EAAE,CAAC,qDAAwB,CAAC;aACrC;YAGD,+CAAqB;SACxB;QACD,OAAO,EAAE;YACL,4CAAkB;YAClB,+CAAqB;YACrB,qDAAwB;YACxB,mDAAuB;SAC1B;KACJ,CAAC;GACW,aAAa,CA2CzB"}
1
+ {"version":3,"file":"session.module.js","sourceRoot":"","sources":["../../../src/lib/session/session.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { SessionStore } from '../interfaces/session-store.interface';
2
+ import { TypeORMSessionRepository } from '../repositories/typeorm-session.repository';
3
+ import { NestAuthSession } from '../entities/session.entity';
4
+ import { SessionPayload } from '../../core/interfaces/token-payload.interface';
5
+ export declare class DatabaseSessionStore implements SessionStore {
6
+ private readonly repository;
7
+ constructor(repository: TypeORMSessionRepository);
8
+ create(session: SessionPayload): Promise<NestAuthSession>;
9
+ findById(sessionId: string): Promise<NestAuthSession | null>;
10
+ findByUserId(userId: string): Promise<NestAuthSession[]>;
11
+ findActiveByUserId(userId: string): Promise<NestAuthSession[]>;
12
+ update(sessionId: string, updates: Partial<NestAuthSession>): Promise<NestAuthSession>;
13
+ delete(sessionId: string): Promise<void>;
14
+ deleteByUserId(userId: string): Promise<void>;
15
+ deleteExpired(): Promise<number>;
16
+ countActiveByUserId(userId: string): Promise<number>;
17
+ updateLastActive(sessionId: string): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=database-session.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-session.store.d.ts","sourceRoot":"","sources":["../../../../src/lib/session/stores/database-session.store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAK/E,qBACa,oBAAqB,YAAW,YAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,wBAAwB;IAEjE,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAIzD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAI5D,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIxD,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAI9D,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAItF,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAIhC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DatabaseSessionStore = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const typeorm_session_repository_1 = require("../repositories/typeorm-session.repository");
15
+ let DatabaseSessionStore = class DatabaseSessionStore {
16
+ repository;
17
+ constructor(repository) {
18
+ this.repository = repository;
19
+ }
20
+ create(session) {
21
+ return this.repository.create(session);
22
+ }
23
+ findById(sessionId) {
24
+ return this.repository.findById(sessionId);
25
+ }
26
+ findByUserId(userId) {
27
+ return this.repository.findByUserId(userId);
28
+ }
29
+ findActiveByUserId(userId) {
30
+ return this.repository.findActiveByUserId(userId);
31
+ }
32
+ update(sessionId, updates) {
33
+ return this.repository.update(sessionId, updates);
34
+ }
35
+ delete(sessionId) {
36
+ return this.repository.delete(sessionId);
37
+ }
38
+ deleteByUserId(userId) {
39
+ return this.repository.deleteByUserId(userId);
40
+ }
41
+ deleteExpired() {
42
+ return this.repository.deleteExpired();
43
+ }
44
+ countActiveByUserId(userId) {
45
+ return this.repository.countActiveByUserId(userId);
46
+ }
47
+ updateLastActive(sessionId) {
48
+ return this.repository.updateLastActive(sessionId);
49
+ }
50
+ };
51
+ exports.DatabaseSessionStore = DatabaseSessionStore;
52
+ exports.DatabaseSessionStore = DatabaseSessionStore = __decorate([
53
+ (0, common_1.Injectable)(),
54
+ __metadata("design:paramtypes", [typeorm_session_repository_1.TypeORMSessionRepository])
55
+ ], DatabaseSessionStore);
56
+ //# sourceMappingURL=database-session.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-session.store.js","sourceRoot":"","sources":["../../../../src/lib/session/stores/database-session.store.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,2FAAsF;AAQ/E,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACA;IAA7B,YAA6B,UAAoC;QAApC,eAAU,GAAV,UAAU,CAA0B;IAAG,CAAC;IAErE,MAAM,CAAC,OAAuB;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ,CAAC,SAAiB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,kBAAkB,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,OAAiC;QACvD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,SAAiB;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,cAAc,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC;IAED,mBAAmB,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,gBAAgB,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;CACJ,CAAA;AA1CY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAEgC,qDAAwB;GADxD,oBAAoB,CA0ChC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ackplus/nest-auth",
3
- "version": "1.1.45",
3
+ "version": "1.1.46",
4
4
  "description": "Powerful CRUD operations for NestJS with TypeORM - automatic REST endpoints, advanced filtering, relations, pagination, and more",
5
5
  "type": "commonjs",
6
6
  "main": "./dist/index.js",
@@ -39,7 +39,7 @@
39
39
  "qrcode": "^1.5.0",
40
40
  "qs": "^6.11.2",
41
41
  "speakeasy": "^2.0.0",
42
- "@ackplus/nest-auth-contracts": "1.1.45"
42
+ "@ackplus/nest-auth-contracts": "1.1.46"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "@nestjs/common": "^10 || ^11",
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-repository.interface.d.ts","sourceRoot":"","sources":["../../../../src/lib/session/interfaces/session-repository.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAM/E,MAAM,WAAW,kBAAkB;IAI/B,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAK1D,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAK7D,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAKzD,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAK/D,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAIvF,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAKzC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAK9C,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAKjC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAKrD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-repository.interface.js","sourceRoot":"","sources":["../../../../src/lib/session/interfaces/session-repository.interface.ts"],"names":[],"mappings":""}