@lenne.tech/nest-server 11.6.2 → 11.7.1

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 (136) hide show
  1. package/dist/config.env.js +19 -12
  2. package/dist/config.env.js.map +1 -1
  3. package/dist/core/common/helpers/filter.helper.d.ts +9 -9
  4. package/dist/core/common/helpers/filter.helper.js +2 -4
  5. package/dist/core/common/helpers/filter.helper.js.map +1 -1
  6. package/dist/core/common/helpers/gridfs.helper.js +3 -3
  7. package/dist/core/common/helpers/gridfs.helper.js.map +1 -1
  8. package/dist/core/common/interfaces/server-options.interface.d.ts +21 -3
  9. package/dist/core/common/services/crud.service.d.ts +16 -16
  10. package/dist/core/common/services/crud.service.js +1 -1
  11. package/dist/core/common/services/crud.service.js.map +1 -1
  12. package/dist/core/modules/auth/core-auth.controller.d.ts +1 -0
  13. package/dist/core/modules/auth/core-auth.controller.js +28 -2
  14. package/dist/core/modules/auth/core-auth.controller.js.map +1 -1
  15. package/dist/core/modules/auth/core-auth.module.js +14 -1
  16. package/dist/core/modules/auth/core-auth.module.js.map +1 -1
  17. package/dist/core/modules/auth/core-auth.resolver.d.ts +1 -0
  18. package/dist/core/modules/auth/core-auth.resolver.js +20 -2
  19. package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
  20. package/dist/core/modules/auth/exceptions/legacy-auth-disabled.exception.d.ts +4 -0
  21. package/dist/core/modules/auth/exceptions/legacy-auth-disabled.exception.js +17 -0
  22. package/dist/core/modules/auth/exceptions/legacy-auth-disabled.exception.js.map +1 -0
  23. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.d.ts +9 -0
  24. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js +74 -0
  25. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js.map +1 -0
  26. package/dist/core/modules/auth/interfaces/auth-provider.interface.d.ts +7 -0
  27. package/dist/core/modules/auth/interfaces/auth-provider.interface.js +5 -0
  28. package/dist/core/modules/auth/interfaces/auth-provider.interface.js.map +1 -0
  29. package/dist/core/modules/auth/interfaces/core-auth-user.interface.d.ts +1 -0
  30. package/dist/core/modules/auth/services/core-auth.service.d.ts +10 -1
  31. package/dist/core/modules/auth/services/core-auth.service.js +141 -9
  32. package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
  33. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.d.ts +31 -0
  34. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js +153 -0
  35. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js.map +1 -0
  36. package/dist/core/modules/better-auth/better-auth-migration-status.model.d.ts +10 -0
  37. package/dist/core/modules/better-auth/better-auth-migration-status.model.js +57 -0
  38. package/dist/core/modules/better-auth/better-auth-migration-status.model.js.map +1 -0
  39. package/dist/core/modules/better-auth/better-auth-models.d.ts +0 -1
  40. package/dist/core/modules/better-auth/better-auth-models.js +0 -4
  41. package/dist/core/modules/better-auth/better-auth-models.js.map +1 -1
  42. package/dist/core/modules/better-auth/better-auth-user.mapper.d.ts +33 -0
  43. package/dist/core/modules/better-auth/better-auth-user.mapper.js +443 -0
  44. package/dist/core/modules/better-auth/better-auth-user.mapper.js.map +1 -1
  45. package/dist/core/modules/better-auth/better-auth.config.js +3 -0
  46. package/dist/core/modules/better-auth/better-auth.config.js.map +1 -1
  47. package/dist/core/modules/better-auth/better-auth.module.d.ts +10 -2
  48. package/dist/core/modules/better-auth/better-auth.module.js +40 -52
  49. package/dist/core/modules/better-auth/better-auth.module.js.map +1 -1
  50. package/dist/core/modules/better-auth/better-auth.resolver.d.ts +8 -12
  51. package/dist/core/modules/better-auth/better-auth.resolver.js +33 -351
  52. package/dist/core/modules/better-auth/better-auth.resolver.js.map +1 -1
  53. package/dist/core/modules/better-auth/better-auth.service.d.ts +0 -1
  54. package/dist/core/modules/better-auth/better-auth.service.js +0 -3
  55. package/dist/core/modules/better-auth/better-auth.service.js.map +1 -1
  56. package/dist/core/modules/better-auth/better-auth.types.d.ts +9 -8
  57. package/dist/core/modules/better-auth/better-auth.types.js +14 -3
  58. package/dist/core/modules/better-auth/better-auth.types.js.map +1 -1
  59. package/dist/core/modules/better-auth/core-better-auth.controller.d.ts +67 -0
  60. package/dist/core/modules/better-auth/core-better-auth.controller.js +504 -0
  61. package/dist/core/modules/better-auth/core-better-auth.controller.js.map +1 -0
  62. package/dist/core/modules/better-auth/core-better-auth.resolver.d.ts +61 -0
  63. package/dist/core/modules/better-auth/core-better-auth.resolver.js +552 -0
  64. package/dist/core/modules/better-auth/core-better-auth.resolver.js.map +1 -0
  65. package/dist/core/modules/better-auth/index.d.ts +3 -0
  66. package/dist/core/modules/better-auth/index.js +3 -0
  67. package/dist/core/modules/better-auth/index.js.map +1 -1
  68. package/dist/core/modules/user/core-user.service.d.ts +7 -1
  69. package/dist/core/modules/user/core-user.service.js +57 -3
  70. package/dist/core/modules/user/core-user.service.js.map +1 -1
  71. package/dist/core/modules/user/interfaces/core-user-service-options.interface.d.ts +4 -0
  72. package/dist/core/modules/user/interfaces/core-user-service-options.interface.js +3 -0
  73. package/dist/core/modules/user/interfaces/core-user-service-options.interface.js.map +1 -0
  74. package/dist/core.module.d.ts +3 -0
  75. package/dist/core.module.js +132 -54
  76. package/dist/core.module.js.map +1 -1
  77. package/dist/index.d.ts +5 -0
  78. package/dist/index.js +5 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/server/modules/auth/auth.resolver.js +2 -0
  81. package/dist/server/modules/auth/auth.resolver.js.map +1 -1
  82. package/dist/server/modules/better-auth/better-auth.controller.d.ts +10 -0
  83. package/dist/server/modules/better-auth/better-auth.controller.js +36 -0
  84. package/dist/server/modules/better-auth/better-auth.controller.js.map +1 -0
  85. package/dist/server/modules/better-auth/better-auth.module.d.ts +9 -0
  86. package/dist/server/modules/better-auth/better-auth.module.js +44 -0
  87. package/dist/server/modules/better-auth/better-auth.module.js.map +1 -0
  88. package/dist/server/modules/better-auth/better-auth.resolver.d.ts +47 -0
  89. package/dist/server/modules/better-auth/better-auth.resolver.js +234 -0
  90. package/dist/server/modules/better-auth/better-auth.resolver.js.map +1 -0
  91. package/dist/server/modules/file/file-info.model.d.ts +71 -3
  92. package/dist/server/modules/user/user.model.d.ts +169 -3
  93. package/dist/server/modules/user/user.service.d.ts +3 -1
  94. package/dist/server/modules/user/user.service.js +7 -3
  95. package/dist/server/modules/user/user.service.js.map +1 -1
  96. package/dist/server/server.module.js +6 -1
  97. package/dist/server/server.module.js.map +1 -1
  98. package/dist/tsconfig.build.tsbuildinfo +1 -1
  99. package/package.json +20 -29
  100. package/src/config.env.ts +34 -13
  101. package/src/core/common/helpers/filter.helper.ts +15 -17
  102. package/src/core/common/helpers/gridfs.helper.ts +5 -5
  103. package/src/core/common/interfaces/server-options.interface.ts +222 -14
  104. package/src/core/common/services/crud.service.ts +22 -22
  105. package/src/core/modules/auth/core-auth.controller.ts +93 -5
  106. package/src/core/modules/auth/core-auth.module.ts +15 -1
  107. package/src/core/modules/auth/core-auth.resolver.ts +70 -2
  108. package/src/core/modules/auth/exceptions/legacy-auth-disabled.exception.ts +35 -0
  109. package/src/core/modules/auth/guards/legacy-auth-rate-limit.guard.ts +109 -0
  110. package/src/core/modules/auth/interfaces/auth-provider.interface.ts +86 -0
  111. package/src/core/modules/auth/interfaces/core-auth-user.interface.ts +6 -0
  112. package/src/core/modules/auth/services/core-auth.service.ts +245 -6
  113. package/src/core/modules/auth/services/legacy-auth-rate-limiter.service.ts +283 -0
  114. package/src/core/modules/better-auth/INTEGRATION-CHECKLIST.md +254 -0
  115. package/src/core/modules/better-auth/README.md +698 -54
  116. package/src/core/modules/better-auth/better-auth-migration-status.model.ts +73 -0
  117. package/src/core/modules/better-auth/better-auth-models.ts +0 -3
  118. package/src/core/modules/better-auth/better-auth-user.mapper.ts +805 -0
  119. package/src/core/modules/better-auth/better-auth.config.ts +5 -0
  120. package/src/core/modules/better-auth/better-auth.module.ts +107 -66
  121. package/src/core/modules/better-auth/better-auth.resolver.ts +88 -553
  122. package/src/core/modules/better-auth/better-auth.service.ts +0 -9
  123. package/src/core/modules/better-auth/better-auth.types.ts +25 -10
  124. package/src/core/modules/better-auth/core-better-auth.controller.ts +646 -0
  125. package/src/core/modules/better-auth/core-better-auth.resolver.ts +730 -0
  126. package/src/core/modules/better-auth/index.ts +9 -1
  127. package/src/core/modules/user/core-user.service.ts +131 -4
  128. package/src/core/modules/user/interfaces/core-user-service-options.interface.ts +15 -0
  129. package/src/core.module.ts +257 -74
  130. package/src/index.ts +5 -0
  131. package/src/server/modules/auth/auth.resolver.ts +8 -0
  132. package/src/server/modules/better-auth/better-auth.controller.ts +41 -0
  133. package/src/server/modules/better-auth/better-auth.module.ts +88 -0
  134. package/src/server/modules/better-auth/better-auth.resolver.ts +210 -0
  135. package/src/server/modules/user/user.service.ts +4 -2
  136. package/src/server/server.module.ts +10 -1
@@ -0,0 +1,31 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { IAuthRateLimit } from '../../../common/interfaces/server-options.interface';
3
+ interface RateLimitResult {
4
+ allowed: boolean;
5
+ current: number;
6
+ limit: number;
7
+ remaining: number;
8
+ resetIn: number;
9
+ }
10
+ export declare class LegacyAuthRateLimiter implements OnModuleInit {
11
+ private readonly logger;
12
+ private readonly store;
13
+ private config;
14
+ private cleanupInterval;
15
+ constructor();
16
+ onModuleInit(): void;
17
+ configure(config: IAuthRateLimit | null | undefined): void;
18
+ check(ip: string, endpoint: string): RateLimitResult;
19
+ getMessage(): string;
20
+ isEnabled(): boolean;
21
+ reset(ip: string): void;
22
+ clear(): void;
23
+ getStats(): {
24
+ activeEntries: number;
25
+ enabled: boolean;
26
+ };
27
+ onModuleDestroy(): void;
28
+ private maskIp;
29
+ private startCleanup;
30
+ }
31
+ export {};
@@ -0,0 +1,153 @@
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
+ var LegacyAuthRateLimiter_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.LegacyAuthRateLimiter = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const config_service_1 = require("../../../common/services/config.service");
16
+ const DEFAULT_CONFIG = {
17
+ enabled: false,
18
+ max: 10,
19
+ message: 'Too many requests, please try again later.',
20
+ windowSeconds: 60,
21
+ };
22
+ let LegacyAuthRateLimiter = LegacyAuthRateLimiter_1 = class LegacyAuthRateLimiter {
23
+ constructor() {
24
+ this.logger = new common_1.Logger(LegacyAuthRateLimiter_1.name);
25
+ this.store = new Map();
26
+ this.config = DEFAULT_CONFIG;
27
+ this.cleanupInterval = null;
28
+ this.startCleanup();
29
+ }
30
+ onModuleInit() {
31
+ const rateLimitConfig = config_service_1.ConfigService.getFastButReadOnly('auth.rateLimit');
32
+ if (rateLimitConfig) {
33
+ this.configure(rateLimitConfig);
34
+ }
35
+ }
36
+ configure(config) {
37
+ if (config === undefined || config === null) {
38
+ return;
39
+ }
40
+ const enabled = config.enabled !== false;
41
+ this.config = {
42
+ ...DEFAULT_CONFIG,
43
+ ...config,
44
+ enabled,
45
+ };
46
+ if (this.config.enabled) {
47
+ this.logger.log(`Legacy Auth rate limiting enabled: ${this.config.max} requests per ${this.config.windowSeconds}s`);
48
+ }
49
+ }
50
+ check(ip, endpoint) {
51
+ if (!this.config.enabled) {
52
+ return {
53
+ allowed: true,
54
+ current: 0,
55
+ limit: Infinity,
56
+ remaining: Infinity,
57
+ resetIn: 0,
58
+ };
59
+ }
60
+ const limit = this.config.max;
61
+ const key = `${ip}:${endpoint}`;
62
+ const now = Date.now();
63
+ let entry = this.store.get(key);
64
+ if (!entry || now >= entry.resetTime) {
65
+ entry = {
66
+ count: 1,
67
+ resetTime: now + this.config.windowSeconds * 1000,
68
+ };
69
+ this.store.set(key, entry);
70
+ return {
71
+ allowed: true,
72
+ current: 1,
73
+ limit,
74
+ remaining: limit - 1,
75
+ resetIn: this.config.windowSeconds,
76
+ };
77
+ }
78
+ entry.count++;
79
+ const resetIn = Math.ceil((entry.resetTime - now) / 1000);
80
+ const allowed = entry.count <= limit;
81
+ const remaining = Math.max(0, limit - entry.count);
82
+ if (!allowed) {
83
+ this.logger.warn(`Rate limit exceeded for IP ${this.maskIp(ip)} on ${endpoint}: ${entry.count}/${limit}`);
84
+ }
85
+ return {
86
+ allowed,
87
+ current: entry.count,
88
+ limit,
89
+ remaining,
90
+ resetIn,
91
+ };
92
+ }
93
+ getMessage() {
94
+ return this.config.message;
95
+ }
96
+ isEnabled() {
97
+ return this.config.enabled;
98
+ }
99
+ reset(ip) {
100
+ for (const key of this.store.keys()) {
101
+ if (key.startsWith(`${ip}:`)) {
102
+ this.store.delete(key);
103
+ }
104
+ }
105
+ }
106
+ clear() {
107
+ this.store.clear();
108
+ }
109
+ getStats() {
110
+ return {
111
+ activeEntries: this.store.size,
112
+ enabled: this.config.enabled,
113
+ };
114
+ }
115
+ onModuleDestroy() {
116
+ if (this.cleanupInterval) {
117
+ clearInterval(this.cleanupInterval);
118
+ this.cleanupInterval = null;
119
+ }
120
+ }
121
+ maskIp(ip) {
122
+ if (ip.includes('.')) {
123
+ const parts = ip.split('.');
124
+ return `${parts[0]}.${parts[1]}.*.*`;
125
+ }
126
+ const parts = ip.split(':');
127
+ return `${parts[0]}:****`;
128
+ }
129
+ startCleanup() {
130
+ this.cleanupInterval = setInterval(() => {
131
+ const now = Date.now();
132
+ let cleaned = 0;
133
+ for (const [key, entry] of this.store.entries()) {
134
+ if (now >= entry.resetTime) {
135
+ this.store.delete(key);
136
+ cleaned++;
137
+ }
138
+ }
139
+ if (cleaned > 0) {
140
+ this.logger.debug(`Cleaned up ${cleaned} expired rate limit entries`);
141
+ }
142
+ }, 5 * 60 * 1000);
143
+ if (this.cleanupInterval.unref) {
144
+ this.cleanupInterval.unref();
145
+ }
146
+ }
147
+ };
148
+ exports.LegacyAuthRateLimiter = LegacyAuthRateLimiter;
149
+ exports.LegacyAuthRateLimiter = LegacyAuthRateLimiter = LegacyAuthRateLimiter_1 = __decorate([
150
+ (0, common_1.Injectable)(),
151
+ __metadata("design:paramtypes", [])
152
+ ], LegacyAuthRateLimiter);
153
+ //# sourceMappingURL=legacy-auth-rate-limiter.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-auth-rate-limiter.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/services/legacy-auth-rate-limiter.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare class BetterAuthMigrationStatusModel {
2
+ totalUsers: number;
3
+ usersWithIamId: number;
4
+ usersWithIamAccount: number;
5
+ fullyMigratedUsers: number;
6
+ pendingMigrationUsers: number;
7
+ migrationPercentage: number;
8
+ canDisableLegacyAuth: boolean;
9
+ pendingUserEmails?: string[];
10
+ }
@@ -0,0 +1,57 @@
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.BetterAuthMigrationStatusModel = void 0;
13
+ const graphql_1 = require("@nestjs/graphql");
14
+ let BetterAuthMigrationStatusModel = class BetterAuthMigrationStatusModel {
15
+ };
16
+ exports.BetterAuthMigrationStatusModel = BetterAuthMigrationStatusModel;
17
+ __decorate([
18
+ (0, graphql_1.Field)(() => graphql_1.Int, { description: 'Total number of users in the system' }),
19
+ __metadata("design:type", Number)
20
+ ], BetterAuthMigrationStatusModel.prototype, "totalUsers", void 0);
21
+ __decorate([
22
+ (0, graphql_1.Field)(() => graphql_1.Int, { description: 'Number of users with iamId (linked to IAM)' }),
23
+ __metadata("design:type", Number)
24
+ ], BetterAuthMigrationStatusModel.prototype, "usersWithIamId", void 0);
25
+ __decorate([
26
+ (0, graphql_1.Field)(() => graphql_1.Int, { description: 'Number of users with IAM credential account' }),
27
+ __metadata("design:type", Number)
28
+ ], BetterAuthMigrationStatusModel.prototype, "usersWithIamAccount", void 0);
29
+ __decorate([
30
+ (0, graphql_1.Field)(() => graphql_1.Int, { description: 'Number of users fully migrated (iamId + credential account)' }),
31
+ __metadata("design:type", Number)
32
+ ], BetterAuthMigrationStatusModel.prototype, "fullyMigratedUsers", void 0);
33
+ __decorate([
34
+ (0, graphql_1.Field)(() => graphql_1.Int, { description: 'Number of users not yet migrated' }),
35
+ __metadata("design:type", Number)
36
+ ], BetterAuthMigrationStatusModel.prototype, "pendingMigrationUsers", void 0);
37
+ __decorate([
38
+ (0, graphql_1.Field)(() => Number, { description: 'Percentage of users fully migrated (0-100)' }),
39
+ __metadata("design:type", Number)
40
+ ], BetterAuthMigrationStatusModel.prototype, "migrationPercentage", void 0);
41
+ __decorate([
42
+ (0, graphql_1.Field)(() => Boolean, {
43
+ description: 'Whether all users are migrated (Legacy Auth could be disabled if CoreModule supported it)',
44
+ }),
45
+ __metadata("design:type", Boolean)
46
+ ], BetterAuthMigrationStatusModel.prototype, "canDisableLegacyAuth", void 0);
47
+ __decorate([
48
+ (0, graphql_1.Field)(() => [String], {
49
+ description: 'Emails of users pending migration (max 100)',
50
+ nullable: true,
51
+ }),
52
+ __metadata("design:type", Array)
53
+ ], BetterAuthMigrationStatusModel.prototype, "pendingUserEmails", void 0);
54
+ exports.BetterAuthMigrationStatusModel = BetterAuthMigrationStatusModel = __decorate([
55
+ (0, graphql_1.ObjectType)({ description: 'Migration status from Legacy Auth to Better-Auth (IAM)' })
56
+ ], BetterAuthMigrationStatusModel);
57
+ //# sourceMappingURL=better-auth-migration-status.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"better-auth-migration-status.model.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth-migration-status.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAyD;AAUlD,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;CA8D1C,CAAA;AA9DY,wEAA8B;AAKzC;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE,EAAE,WAAW,EAAE,qCAAqC,EAAE,CAAC;;kEACtD;AAOnB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;;sEACzD;AAOvB;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE,EAAE,WAAW,EAAE,6CAA6C,EAAE,CAAC;;2EACrD;AAM5B;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE,EAAE,WAAW,EAAE,6DAA6D,EAAE,CAAC;;0EACtE;AAO3B;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;;6EACxC;AAM9B;IADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;;2EACvD;AAa5B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,OAAO,EAAE;QACpB,WAAW,EAAE,2FAA2F;KACzG,CAAC;;4EAC4B;AAU9B;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;QACrB,WAAW,EAAE,6CAA6C;QAC1D,QAAQ,EAAE,IAAI;KACf,CAAC;;yEAC2B;yCA7DlB,8BAA8B;IAD1C,IAAA,oBAAU,EAAC,EAAE,WAAW,EAAE,wDAAwD,EAAE,CAAC;GACzE,8BAA8B,CA8D1C"}
@@ -39,6 +39,5 @@ export declare class BetterAuthFeaturesModel {
39
39
  jwt: boolean;
40
40
  twoFactor: boolean;
41
41
  passkey: boolean;
42
- legacyPassword: boolean;
43
42
  socialProviders: string[];
44
43
  }
@@ -170,10 +170,6 @@ __decorate([
170
170
  (0, graphql_1.Field)(() => Boolean, { description: 'Whether Passkey is enabled' }),
171
171
  __metadata("design:type", Boolean)
172
172
  ], BetterAuthFeaturesModel.prototype, "passkey", void 0);
173
- __decorate([
174
- (0, graphql_1.Field)(() => Boolean, { description: 'Whether legacy password handling is enabled' }),
175
- __metadata("design:type", Boolean)
176
- ], BetterAuthFeaturesModel.prototype, "legacyPassword", void 0);
177
173
  __decorate([
178
174
  (0, graphql_1.Field)(() => [String], { description: 'List of enabled social providers' }),
179
175
  __metadata("design:type", Array)
@@ -1 +1 @@
1
- {"version":3,"file":"better-auth-models.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth-models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"better-auth-models.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth-models.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { ObjectId } from 'mongodb';
1
2
  import { Connection } from 'mongoose';
2
3
  export interface BetterAuthSessionUser {
3
4
  createdAt?: Date;
@@ -20,6 +21,16 @@ export interface MappedUser {
20
21
  roles: string[];
21
22
  verified?: boolean;
22
23
  }
24
+ export interface MigrationStatus {
25
+ canDisableLegacyAuth: boolean;
26
+ fullyMigratedUsers: number;
27
+ migrationPercentage: number;
28
+ pendingMigrationUsers: number;
29
+ pendingUserEmails: string[];
30
+ totalUsers: number;
31
+ usersWithIamAccount: number;
32
+ usersWithIamId: number;
33
+ }
23
34
  export interface SyncedUserDocument {
24
35
  _id: any;
25
36
  avatar?: string;
@@ -39,5 +50,27 @@ export declare class BetterAuthUserMapper {
39
50
  constructor(connection?: Connection);
40
51
  mapSessionUser(sessionUser: BetterAuthSessionUser): Promise<MappedUser | null>;
41
52
  private createMappedUser;
53
+ syncPasswordToLegacy(iamUserId: string, userEmail: string, plainPassword?: string): Promise<boolean>;
54
+ syncPasswordChangeToIam(userEmail: string, plainPassword: string): Promise<boolean>;
55
+ migrateAccountToIam(userEmail: string, plainPassword?: string): Promise<boolean>;
56
+ private generateId;
57
+ normalizePasswordForIam(password: string): string;
58
+ private hashPasswordForBetterAuth;
59
+ private bytesToHex;
42
60
  linkOrCreateUser(sessionUser: BetterAuthSessionUser, additionalData?: Record<string, any>): Promise<null | SyncedUserDocument>;
61
+ syncEmailChangeFromLegacy(oldEmail: string, newEmail: string): Promise<boolean>;
62
+ syncEmailChangeFromIam(userId: string, newEmail: string): Promise<boolean>;
63
+ deleteUserFromBothSystems(userIdentifier: string): Promise<{
64
+ accountsDeleted: number;
65
+ sessionsDeleted: number;
66
+ success: boolean;
67
+ userDeleted: boolean;
68
+ }>;
69
+ cleanupIamDataForDeletedUser(userId: ObjectId | string): Promise<{
70
+ accountsDeleted: number;
71
+ sessionsDeleted: number;
72
+ success: boolean;
73
+ }>;
74
+ cleanupLegacyDataForDeletedIamUser(iamUserId: string): Promise<boolean>;
75
+ getMigrationStatus(): Promise<MigrationStatus>;
43
76
  }