@minimaltech/node-infra 0.5.10-20 → 0.5.10-22

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 (193) hide show
  1. package/dist/components/authenticate/common/types.d.ts +33 -0
  2. package/dist/components/authenticate/common/types.d.ts.map +1 -1
  3. package/dist/components/authenticate/common/types.js +5 -0
  4. package/dist/components/authenticate/common/types.js.map +1 -1
  5. package/dist/components/authenticate/controllers/oauth2.controller.d.ts +41 -0
  6. package/dist/components/authenticate/controllers/oauth2.controller.d.ts.map +1 -1
  7. package/dist/components/authenticate/controllers/oauth2.controller.js +25 -3
  8. package/dist/components/authenticate/controllers/oauth2.controller.js.map +1 -1
  9. package/dist/components/authenticate/models/oauth2-scope.model.d.ts +6 -2
  10. package/dist/components/authenticate/models/oauth2-scope.model.d.ts.map +1 -1
  11. package/dist/components/authenticate/models/oauth2-scope.model.js +47 -0
  12. package/dist/components/authenticate/models/oauth2-scope.model.js.map +1 -1
  13. package/dist/components/authenticate/oauth2-handlers/authorization-code.handler.d.ts.map +1 -1
  14. package/dist/components/authenticate/oauth2-handlers/authorization-code.handler.js +20 -13
  15. package/dist/components/authenticate/oauth2-handlers/authorization-code.handler.js.map +1 -1
  16. package/dist/components/authenticate/oauth2-handlers/base.d.ts +22 -5
  17. package/dist/components/authenticate/oauth2-handlers/base.d.ts.map +1 -1
  18. package/dist/components/authenticate/oauth2-handlers/base.js +103 -28
  19. package/dist/components/authenticate/oauth2-handlers/base.js.map +1 -1
  20. package/dist/components/authenticate/oauth2-handlers/config/index.d.ts +2 -0
  21. package/dist/components/authenticate/oauth2-handlers/config/index.d.ts.map +1 -0
  22. package/dist/components/authenticate/oauth2-handlers/config/index.js +18 -0
  23. package/dist/components/authenticate/oauth2-handlers/config/index.js.map +1 -0
  24. package/dist/components/authenticate/oauth2-handlers/config/scope-config-validator.d.ts +46 -0
  25. package/dist/components/authenticate/oauth2-handlers/config/scope-config-validator.d.ts.map +1 -0
  26. package/dist/components/authenticate/oauth2-handlers/config/scope-config-validator.js +199 -0
  27. package/dist/components/authenticate/oauth2-handlers/config/scope-config-validator.js.map +1 -0
  28. package/dist/components/authenticate/oauth2-handlers/constants/index.d.ts +2 -0
  29. package/dist/components/authenticate/oauth2-handlers/constants/index.d.ts.map +1 -0
  30. package/dist/components/authenticate/oauth2-handlers/constants/index.js +18 -0
  31. package/dist/components/authenticate/oauth2-handlers/constants/index.js.map +1 -0
  32. package/dist/components/authenticate/oauth2-handlers/constants/scope-constants.d.ts +79 -0
  33. package/dist/components/authenticate/oauth2-handlers/constants/scope-constants.d.ts.map +1 -0
  34. package/dist/components/authenticate/oauth2-handlers/constants/scope-constants.js +117 -0
  35. package/dist/components/authenticate/oauth2-handlers/constants/scope-constants.js.map +1 -0
  36. package/dist/components/authenticate/oauth2-handlers/data/index.d.ts +2 -0
  37. package/dist/components/authenticate/oauth2-handlers/data/index.d.ts.map +1 -0
  38. package/dist/components/authenticate/oauth2-handlers/data/index.js +18 -0
  39. package/dist/components/authenticate/oauth2-handlers/data/index.js.map +1 -0
  40. package/dist/components/authenticate/oauth2-handlers/data/user-data-fetcher.d.ts +99 -0
  41. package/dist/components/authenticate/oauth2-handlers/data/user-data-fetcher.d.ts.map +1 -0
  42. package/dist/components/authenticate/oauth2-handlers/data/user-data-fetcher.js +371 -0
  43. package/dist/components/authenticate/oauth2-handlers/data/user-data-fetcher.js.map +1 -0
  44. package/dist/components/authenticate/oauth2-handlers/index.d.ts +4 -0
  45. package/dist/components/authenticate/oauth2-handlers/index.d.ts.map +1 -1
  46. package/dist/components/authenticate/oauth2-handlers/index.js +4 -0
  47. package/dist/components/authenticate/oauth2-handlers/index.js.map +1 -1
  48. package/dist/components/authenticate/oauth2-handlers/scope/index.d.ts +4 -0
  49. package/dist/components/authenticate/oauth2-handlers/scope/index.d.ts.map +1 -0
  50. package/dist/components/authenticate/oauth2-handlers/scope/index.js +20 -0
  51. package/dist/components/authenticate/oauth2-handlers/scope/index.js.map +1 -0
  52. package/dist/components/authenticate/oauth2-handlers/scope/scope-manager.d.ts +64 -0
  53. package/dist/components/authenticate/oauth2-handlers/scope/scope-manager.d.ts.map +1 -0
  54. package/dist/components/authenticate/oauth2-handlers/scope/scope-manager.js +100 -0
  55. package/dist/components/authenticate/oauth2-handlers/scope/scope-manager.js.map +1 -0
  56. package/dist/components/authenticate/oauth2-handlers/scope/scope-parser.d.ts +49 -0
  57. package/dist/components/authenticate/oauth2-handlers/scope/scope-parser.d.ts.map +1 -0
  58. package/dist/components/authenticate/oauth2-handlers/scope/scope-parser.js +89 -0
  59. package/dist/components/authenticate/oauth2-handlers/scope/scope-parser.js.map +1 -0
  60. package/dist/components/authenticate/oauth2-handlers/scope/scope-validator.d.ts +58 -0
  61. package/dist/components/authenticate/oauth2-handlers/scope/scope-validator.d.ts.map +1 -0
  62. package/dist/components/authenticate/oauth2-handlers/scope/scope-validator.js +165 -0
  63. package/dist/components/authenticate/oauth2-handlers/scope/scope-validator.js.map +1 -0
  64. package/dist/components/authenticate/services/index.d.ts +1 -0
  65. package/dist/components/authenticate/services/index.d.ts.map +1 -1
  66. package/dist/components/authenticate/services/index.js +1 -0
  67. package/dist/components/authenticate/services/index.js.map +1 -1
  68. package/dist/components/authenticate/services/oauth2-scope.service.d.ts +22 -0
  69. package/dist/components/authenticate/services/oauth2-scope.service.d.ts.map +1 -0
  70. package/dist/components/authenticate/services/oauth2-scope.service.js +63 -0
  71. package/dist/components/authenticate/services/oauth2-scope.service.js.map +1 -0
  72. package/dist/components/authenticate/services/oauth2.service.d.ts +2 -0
  73. package/dist/components/authenticate/services/oauth2.service.d.ts.map +1 -1
  74. package/dist/components/authenticate/services/oauth2.service.js +8 -3
  75. package/dist/components/authenticate/services/oauth2.service.js.map +1 -1
  76. package/dist/components/authenticate/views/pages/auth.ejs +6 -2
  77. package/dist/components/index.d.ts +1 -0
  78. package/dist/components/index.d.ts.map +1 -1
  79. package/dist/components/index.js +1 -0
  80. package/dist/components/index.js.map +1 -1
  81. package/dist/components/mail/common/constants.d.ts +26 -0
  82. package/dist/components/mail/common/constants.d.ts.map +1 -0
  83. package/dist/components/mail/common/constants.js +37 -0
  84. package/dist/components/mail/common/constants.js.map +1 -0
  85. package/dist/components/mail/common/index.d.ts +4 -0
  86. package/dist/components/mail/common/index.d.ts.map +1 -0
  87. package/dist/components/mail/common/index.js +20 -0
  88. package/dist/components/mail/common/index.js.map +1 -0
  89. package/dist/components/mail/common/keys.d.ts +17 -0
  90. package/dist/components/mail/common/keys.d.ts.map +1 -0
  91. package/dist/components/mail/common/keys.js +24 -0
  92. package/dist/components/mail/common/keys.js.map +1 -0
  93. package/dist/components/mail/common/types.d.ts +168 -0
  94. package/dist/components/mail/common/types.d.ts.map +1 -0
  95. package/dist/components/mail/common/types.js +10 -0
  96. package/dist/components/mail/common/types.js.map +1 -0
  97. package/dist/components/mail/component.d.ts +12 -0
  98. package/dist/components/mail/component.d.ts.map +1 -0
  99. package/dist/components/mail/component.js +90 -0
  100. package/dist/components/mail/component.js.map +1 -0
  101. package/dist/components/mail/controllers/index.d.ts +2 -0
  102. package/dist/components/mail/controllers/index.d.ts.map +1 -0
  103. package/dist/components/mail/controllers/index.js +18 -0
  104. package/dist/components/mail/controllers/index.js.map +1 -0
  105. package/dist/components/mail/controllers/mail.controller.d.ts +24 -0
  106. package/dist/components/mail/controllers/mail.controller.d.ts.map +1 -0
  107. package/dist/components/mail/controllers/mail.controller.js +330 -0
  108. package/dist/components/mail/controllers/mail.controller.js.map +1 -0
  109. package/dist/components/mail/helpers/executors/bullmq-executor.helper.d.ts +48 -0
  110. package/dist/components/mail/helpers/executors/bullmq-executor.helper.d.ts.map +1 -0
  111. package/dist/components/mail/helpers/executors/bullmq-executor.helper.js +159 -0
  112. package/dist/components/mail/helpers/executors/bullmq-executor.helper.js.map +1 -0
  113. package/dist/components/mail/helpers/executors/direct-executor.helper.d.ts +14 -0
  114. package/dist/components/mail/helpers/executors/direct-executor.helper.d.ts.map +1 -0
  115. package/dist/components/mail/helpers/executors/direct-executor.helper.js +27 -0
  116. package/dist/components/mail/helpers/executors/direct-executor.helper.js.map +1 -0
  117. package/dist/components/mail/helpers/executors/index.d.ts +4 -0
  118. package/dist/components/mail/helpers/executors/index.d.ts.map +1 -0
  119. package/dist/components/mail/helpers/executors/index.js +20 -0
  120. package/dist/components/mail/helpers/executors/index.js.map +1 -0
  121. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.d.ts +22 -0
  122. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.d.ts.map +1 -0
  123. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.js +103 -0
  124. package/dist/components/mail/helpers/executors/internal-queue-executor.helper.js.map +1 -0
  125. package/dist/components/mail/helpers/index.d.ts +3 -0
  126. package/dist/components/mail/helpers/index.d.ts.map +1 -0
  127. package/dist/components/mail/helpers/index.js +19 -0
  128. package/dist/components/mail/helpers/index.js.map +1 -0
  129. package/dist/components/mail/helpers/transports/index.d.ts +3 -0
  130. package/dist/components/mail/helpers/transports/index.d.ts.map +1 -0
  131. package/dist/components/mail/helpers/transports/index.js +19 -0
  132. package/dist/components/mail/helpers/transports/index.js.map +1 -0
  133. package/dist/components/mail/helpers/transports/mailgun-transport.helper.d.ts +11 -0
  134. package/dist/components/mail/helpers/transports/mailgun-transport.helper.d.ts.map +1 -0
  135. package/dist/components/mail/helpers/transports/mailgun-transport.helper.js +88 -0
  136. package/dist/components/mail/helpers/transports/mailgun-transport.helper.js.map +1 -0
  137. package/dist/components/mail/helpers/transports/nodemailer-transport.helper.d.ts +11 -0
  138. package/dist/components/mail/helpers/transports/nodemailer-transport.helper.d.ts.map +1 -0
  139. package/dist/components/mail/helpers/transports/nodemailer-transport.helper.js +67 -0
  140. package/dist/components/mail/helpers/transports/nodemailer-transport.helper.js.map +1 -0
  141. package/dist/components/mail/index.d.ts +8 -0
  142. package/dist/components/mail/index.d.ts.map +1 -0
  143. package/dist/components/mail/index.js +24 -0
  144. package/dist/components/mail/index.js.map +1 -0
  145. package/dist/components/mail/providers/index.d.ts +3 -0
  146. package/dist/components/mail/providers/index.d.ts.map +1 -0
  147. package/dist/components/mail/providers/index.js +19 -0
  148. package/dist/components/mail/providers/index.js.map +1 -0
  149. package/dist/components/mail/providers/mail-queue-executor.provider.d.ts +9 -0
  150. package/dist/components/mail/providers/mail-queue-executor.provider.d.ts.map +1 -0
  151. package/dist/components/mail/providers/mail-queue-executor.provider.js +41 -0
  152. package/dist/components/mail/providers/mail-queue-executor.provider.js.map +1 -0
  153. package/dist/components/mail/providers/mail-transport.provider.d.ts +15 -0
  154. package/dist/components/mail/providers/mail-transport.provider.d.ts.map +1 -0
  155. package/dist/components/mail/providers/mail-transport.provider.js +93 -0
  156. package/dist/components/mail/providers/mail-transport.provider.js.map +1 -0
  157. package/dist/components/mail/services/generator.service.d.ts +14 -0
  158. package/dist/components/mail/services/generator.service.d.ts.map +1 -0
  159. package/dist/components/mail/services/generator.service.js +70 -0
  160. package/dist/components/mail/services/generator.service.js.map +1 -0
  161. package/dist/components/mail/services/index.d.ts +4 -0
  162. package/dist/components/mail/services/index.d.ts.map +1 -0
  163. package/dist/components/mail/services/index.js +20 -0
  164. package/dist/components/mail/services/index.js.map +1 -0
  165. package/dist/components/mail/services/mail.service.d.ts +23 -0
  166. package/dist/components/mail/services/mail.service.d.ts.map +1 -0
  167. package/dist/components/mail/services/mail.service.js +178 -0
  168. package/dist/components/mail/services/mail.service.js.map +1 -0
  169. package/dist/components/mail/services/template-engine.service.d.ts +36 -0
  170. package/dist/components/mail/services/template-engine.service.d.ts.map +1 -0
  171. package/dist/components/mail/services/template-engine.service.js +126 -0
  172. package/dist/components/mail/services/template-engine.service.js.map +1 -0
  173. package/dist/components/mail/utilities/index.d.ts +3 -0
  174. package/dist/components/mail/utilities/index.d.ts.map +1 -0
  175. package/dist/components/mail/utilities/index.js +19 -0
  176. package/dist/components/mail/utilities/index.js.map +1 -0
  177. package/dist/components/mail/utilities/type.utility.d.ts +5 -0
  178. package/dist/components/mail/utilities/type.utility.d.ts.map +1 -0
  179. package/dist/components/mail/utilities/type.utility.js +34 -0
  180. package/dist/components/mail/utilities/type.utility.js.map +1 -0
  181. package/dist/components/mail/utilities/verification.utility.d.ts +3 -0
  182. package/dist/components/mail/utilities/verification.utility.d.ts.map +1 -0
  183. package/dist/components/mail/utilities/verification.utility.js +11 -0
  184. package/dist/components/mail/utilities/verification.utility.js.map +1 -0
  185. package/dist/utilities/index.d.ts +1 -0
  186. package/dist/utilities/index.d.ts.map +1 -1
  187. package/dist/utilities/index.js +1 -0
  188. package/dist/utilities/index.js.map +1 -1
  189. package/dist/utilities/module.utility.d.ts +5 -0
  190. package/dist/utilities/module.utility.d.ts.map +1 -0
  191. package/dist/utilities/module.utility.js +21 -0
  192. package/dist/utilities/module.utility.js.map +1 -0
  193. package/package.json +14 -1
@@ -10,17 +10,74 @@ const utilities_1 = require("../../../utilities");
10
10
  const security_1 = require("@loopback/security");
11
11
  const get_1 = __importDefault(require("lodash/get"));
12
12
  const common_2 = require("../common");
13
+ const services_1 = require("../services");
14
+ const data_1 = require("./data");
15
+ const scope_1 = require("./scope");
13
16
  class AbstractOAuth2AuthenticationHandler {
14
17
  constructor(opts) {
18
+ this.scopeManager = null;
19
+ this.userDataFetcher = null;
20
+ this.initPromise = null;
15
21
  this.logger = helpers_1.LoggerFactory.getLogger([
16
22
  opts?.scope ?? AbstractOAuth2AuthenticationHandler.name,
17
23
  ]);
18
24
  this.injectionGetter = opts.injectionGetter;
19
25
  this.authServiceKey = opts.authServiceKey;
26
+ // Initialize scope service
27
+ this.scopeService = new services_1.OAuth2ScopeService({
28
+ options: { injectionGetter: this.injectionGetter },
29
+ scope: `${this.constructor.name}:OAuth2ScopeService`,
30
+ });
31
+ // Start async initialization but don't wait
32
+ this.initPromise = this.initializeServices();
33
+ }
34
+ async initializeServices() {
35
+ try {
36
+ const oauth2Options = this.injectionGetter(common_2.AuthenticateKeys.OAUTH2_OPTIONS);
37
+ // Try to load scopes from database first
38
+ let availableScopes = await this.scopeService.loadScopes(true);
39
+ // Fallback to config if database is empty
40
+ if (availableScopes.length === 0) {
41
+ this.logger.warn('[initializeServices] No scopes found in database, falling back to config');
42
+ availableScopes = oauth2Options?.restOptions?.availableScopes ?? [];
43
+ }
44
+ const defaultScopes = oauth2Options?.restOptions?.defaultScopes ?? [];
45
+ // Initialize scope manager
46
+ this.scopeManager = new scope_1.ScopeManager({
47
+ availableScopes,
48
+ defaultScopes,
49
+ scope: `${this.constructor.name}:ScopeManager`,
50
+ });
51
+ // Initialize user data fetcher
52
+ this.userDataFetcher = new data_1.UserDataFetcher({
53
+ options: {
54
+ injectionGetter: this.injectionGetter,
55
+ scopeManager: this.scopeManager,
56
+ },
57
+ scope: `${this.constructor.name}:UserDataFetcher`,
58
+ });
59
+ this.logger.info('[initializeServices] Services initialized successfully');
60
+ }
61
+ catch (error) {
62
+ this.logger.error('[initializeServices] Failed to initialize services: %s', (0, utilities_1.getError)(error).message);
63
+ throw error;
64
+ }
65
+ }
66
+ /**
67
+ * Ensure services are initialized before use
68
+ * Should be called at the start of async methods
69
+ */
70
+ async ensureInitialized() {
71
+ if (this.initPromise) {
72
+ await this.initPromise;
73
+ }
74
+ if (!this.scopeManager || !this.userDataFetcher) {
75
+ throw (0, utilities_1.getError)({ message: 'OAuth2 services not initialized' });
76
+ }
20
77
  }
21
78
  getClient(clientId, clientSecret) {
22
79
  return new Promise((resolve, reject) => {
23
- this.logger.debug('[getClient] Retreiving application client | client_id: %s | client_secret: %s', clientId, clientSecret);
80
+ this.logger.debug('[getClient] Retrieving application client | client_id: %s', clientId);
24
81
  const clientRepository = this.injectionGetter('repositories.OAuth2ClientRepository');
25
82
  clientRepository
26
83
  .findOne({
@@ -60,7 +117,7 @@ class AbstractOAuth2AuthenticationHandler {
60
117
  .catch(reject);
61
118
  });
62
119
  }
63
- async generateAccessToken(client, user, scopes) {
120
+ async generateAccessToken(client, user, _scope) {
64
121
  const service = this.injectionGetter('services.JWTTokenService');
65
122
  const userId = (0, get_1.default)(user, 'id');
66
123
  if (!userId) {
@@ -77,13 +134,12 @@ class AbstractOAuth2AuthenticationHandler {
77
134
  roles: userInformation?.roles ?? [],
78
135
  provider: client.provider,
79
136
  clientId: client.id,
80
- scopes,
81
137
  },
82
138
  });
83
139
  return Promise.resolve(tokenValue);
84
140
  }
85
141
  _saveToken(opts) {
86
- const { type, token, client, user, details } = opts;
142
+ const { type, token, client, user, details, scopes } = opts;
87
143
  const oauth2TokenRepository = this.injectionGetter('repositories.OAuth2TokenRepository');
88
144
  return oauth2TokenRepository.create({
89
145
  token,
@@ -91,26 +147,26 @@ class AbstractOAuth2AuthenticationHandler {
91
147
  status: common_1.OAuth2TokenStatuses.ACTIVATED,
92
148
  clientId: (0, utilities_1.int)(client.id),
93
149
  userId: (0, utilities_1.int)(user.id),
150
+ scopes: scopes ?? [],
94
151
  details,
95
152
  });
96
153
  }
97
- saveToken(token, client, user) {
98
- return new Promise((resolve, reject) => {
99
- this._saveToken({
100
- token: token.accessToken,
101
- type: common_2.AuthenticationTokenTypes.TYPE_ACCESS_TOKEN,
102
- client,
103
- user,
104
- details: token,
105
- })
106
- .then(() => {
107
- resolve({ ...token, client, user });
108
- })
109
- .catch(reject);
154
+ async saveToken(token, client, user) {
155
+ await this.ensureInitialized();
156
+ const scopes = this.scopeManager.normalizeScopes(token.scope);
157
+ await this._saveToken({
158
+ token: token.accessToken,
159
+ type: common_2.AuthenticationTokenTypes.TYPE_ACCESS_TOKEN,
160
+ client,
161
+ user,
162
+ scopes,
163
+ details: token,
110
164
  });
165
+ return { ...token, client, user };
111
166
  }
112
167
  async _getToken(opts) {
113
168
  const { type, token } = opts;
169
+ await this.ensureInitialized();
114
170
  const oauth2TokenRepository = this.injectionGetter('repositories.OAuth2TokenRepository');
115
171
  const oauth2Token = await oauth2TokenRepository.findOne({
116
172
  where: { type, token },
@@ -127,12 +183,11 @@ class AbstractOAuth2AuthenticationHandler {
127
183
  message: `[_getToken] Invalid OAuth2Token status: ${oauth2Token.status}`,
128
184
  });
129
185
  }
130
- const userRepository = this.injectionGetter('repositories.UserRepository');
131
- const user = await userRepository.findOne({
132
- where: { id: (0, utilities_1.int)(oauth2Token.userId) },
133
- fields: ['id'],
134
- });
135
- if (!user) {
186
+ // Fetch user data using UserDataFetcher
187
+ const userId = (0, utilities_1.int)(oauth2Token.userId);
188
+ const grantedScopes = oauth2Token.scopes ?? [];
189
+ const user = await this.userDataFetcher.fetchByScopes({ userId, grantedScopes });
190
+ if (!user?.id) {
136
191
  this.logger.error('[_getToken] Not found User | type: %s | token: %s | oauth2Token: %j', type, token, oauth2Token);
137
192
  throw (0, utilities_1.getError)({
138
193
  message: `[_getToken] Not found any User with type: ${type} | token: ${token}`,
@@ -187,11 +242,31 @@ class AbstractOAuth2AuthenticationHandler {
187
242
  user: { id: tokenPayload.userId },
188
243
  };
189
244
  }
190
- verifyScope(token, scopes) {
191
- return new Promise(resolve => {
192
- this.logger.info('[verifyScope] Token: %j | Scopes: %s', token, scopes);
193
- resolve(token !== null);
194
- });
245
+ async verifyScope(token, requiredScopes) {
246
+ await this.ensureInitialized();
247
+ this.logger.info('[verifyScope] Token: %j | Required scopes: %s', token, requiredScopes ?? []);
248
+ if (!token) {
249
+ return false;
250
+ }
251
+ // If no scopes required, allow access
252
+ if (!requiredScopes || requiredScopes.length === 0) {
253
+ return true;
254
+ }
255
+ const tokenScopes = this.scopeManager.normalizeScopes(token.scope);
256
+ // Check if token has all required scopes
257
+ const hasAllScopes = requiredScopes.every(scope => tokenScopes.includes(scope));
258
+ this.logger.info('[verifyScope] Token scopes: %s | Has all required scopes: %s', tokenScopes.join(', '), hasAllScopes);
259
+ return hasAllScopes;
260
+ }
261
+ async validateScopes(requestedScopes) {
262
+ await this.ensureInitialized();
263
+ return this.scopeManager.validateScopes(requestedScopes ?? []);
264
+ }
265
+ getScopeManager() {
266
+ return this.scopeManager;
267
+ }
268
+ getUserDataFetcher() {
269
+ return this.userDataFetcher;
195
270
  }
196
271
  }
197
272
  exports.AbstractOAuth2AuthenticationHandler = AbstractOAuth2AuthenticationHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/components/authenticate/oauth2-handlers/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/components/authenticate/oauth2-handlers/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './scope-config-validator';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/authenticate/oauth2-handlers/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,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("./scope-config-validator"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/authenticate/oauth2-handlers/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC"}
@@ -0,0 +1,46 @@
1
+ import { IAuthenticateOAuth2Options } from '../../common';
2
+ export interface IScopeConfigValidationError {
3
+ field: string;
4
+ message: string;
5
+ scopeIdentifier?: string;
6
+ }
7
+ export interface IScopeConfigValidationResult {
8
+ valid: boolean;
9
+ errors: IScopeConfigValidationError[];
10
+ warnings: string[];
11
+ }
12
+ /**
13
+ * ScopeConfigValidator validates OAuth2 scope configuration at startup
14
+ * Ensures configuration is well-formed and consistent
15
+ */
16
+ export declare class ScopeConfigValidator {
17
+ private logger;
18
+ constructor(opts: {
19
+ scope?: string;
20
+ });
21
+ /**
22
+ * Validate OAuth2 configuration
23
+ * @param config - OAuth2 options configuration
24
+ * @returns Validation result with errors and warnings
25
+ */
26
+ validate(config: IAuthenticateOAuth2Options): IScopeConfigValidationResult;
27
+ /**
28
+ * Validate available scopes configuration
29
+ */
30
+ private validateAvailableScopes;
31
+ /**
32
+ * Validate relations in a scope definition
33
+ */
34
+ private validateRelations;
35
+ /**
36
+ * Validate default scopes
37
+ */
38
+ private validateDefaultScopes;
39
+ /**
40
+ * Validate configuration and throw if invalid
41
+ * @param config - OAuth2 configuration
42
+ * @throws Error if configuration is invalid
43
+ */
44
+ validateOrThrow(config: IAuthenticateOAuth2Options): void;
45
+ }
46
+ //# sourceMappingURL=scope-config-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-config-validator.d.ts","sourceRoot":"","sources":["../../../../../src/components/authenticate/oauth2-handlers/config/scope-config-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAoB,MAAM,cAAc,CAAC;AAG5E,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,2BAA2B,EAAE,CAAC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAoB;gBAEtB,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAKpC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,0BAA0B,GAAG,4BAA4B;IA8D1E;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqD/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoCzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmE7B;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,0BAA0B,GAAG,IAAI;CAQ1D"}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScopeConfigValidator = void 0;
4
+ const helpers_1 = require("../../../../helpers");
5
+ const constants_1 = require("../constants");
6
+ /**
7
+ * ScopeConfigValidator validates OAuth2 scope configuration at startup
8
+ * Ensures configuration is well-formed and consistent
9
+ */
10
+ class ScopeConfigValidator {
11
+ constructor(opts) {
12
+ const { scope } = opts;
13
+ this.logger = helpers_1.LoggerFactory.getLogger([scope ?? ScopeConfigValidator.name]);
14
+ }
15
+ /**
16
+ * Validate OAuth2 configuration
17
+ * @param config - OAuth2 options configuration
18
+ * @returns Validation result with errors and warnings
19
+ */
20
+ validate(config) {
21
+ const errors = [];
22
+ const warnings = [];
23
+ if (!config.enable) {
24
+ this.logger.info('[validate] OAuth2 is disabled, skipping validation');
25
+ return { valid: true, errors: [], warnings: [] };
26
+ }
27
+ const restOptions = config.restOptions;
28
+ if (!restOptions) {
29
+ warnings.push('No restOptions configured for OAuth2');
30
+ return { valid: true, errors, warnings };
31
+ }
32
+ // Validate available scopes
33
+ if (restOptions.availableScopes) {
34
+ this.validateAvailableScopes(restOptions.availableScopes, errors, warnings);
35
+ }
36
+ else {
37
+ warnings.push('No availableScopes configured - all scopes will be allowed (backward compatibility mode)');
38
+ }
39
+ // Validate default scopes
40
+ if (restOptions.defaultScopes) {
41
+ this.validateDefaultScopes(restOptions.defaultScopes, restOptions.availableScopes, errors, warnings);
42
+ }
43
+ else {
44
+ warnings.push('No defaultScopes configured - empty scopes will result in no data access');
45
+ }
46
+ const isValid = errors.length === 0;
47
+ if (isValid) {
48
+ this.logger.info('[validate] Configuration valid | Warnings: %d | Available scopes: %d | Default scopes: %s', warnings.length, restOptions.availableScopes?.length ?? 0, restOptions.defaultScopes?.join(', ') ?? 'none');
49
+ }
50
+ else {
51
+ this.logger.error('[validate] Configuration invalid | Errors: %d', errors.length);
52
+ errors.forEach(error => {
53
+ this.logger.error('[validate] Error: %s - %s', error.field, error.message);
54
+ });
55
+ }
56
+ if (warnings.length > 0) {
57
+ warnings.forEach(warning => {
58
+ this.logger.warn('[validate] Warning: %s', warning);
59
+ });
60
+ }
61
+ return { valid: isValid, errors, warnings };
62
+ }
63
+ /**
64
+ * Validate available scopes configuration
65
+ */
66
+ validateAvailableScopes(scopes, errors, warnings) {
67
+ const identifiers = new Set();
68
+ for (const scope of scopes) {
69
+ // Check for duplicate identifiers
70
+ if (identifiers.has(scope.identifier)) {
71
+ errors.push({
72
+ field: 'availableScopes',
73
+ message: `Duplicate scope identifier: ${scope.identifier}`,
74
+ scopeIdentifier: scope.identifier,
75
+ });
76
+ }
77
+ identifiers.add(scope.identifier);
78
+ // Validate identifier format
79
+ if (!scope.identifier || scope.identifier.trim() === '') {
80
+ errors.push({
81
+ field: 'availableScopes',
82
+ message: 'Scope identifier cannot be empty',
83
+ scopeIdentifier: scope.identifier,
84
+ });
85
+ }
86
+ // Validate name
87
+ if (!scope.name || scope.name.trim() === '') {
88
+ errors.push({
89
+ field: 'availableScopes',
90
+ message: `Scope name cannot be empty for identifier: ${scope.identifier}`,
91
+ scopeIdentifier: scope.identifier,
92
+ });
93
+ }
94
+ // Check if scope has either fields or relations
95
+ if ((!scope.fields || scope.fields.length === 0) &&
96
+ (!scope.relations || scope.relations.length === 0)) {
97
+ warnings.push(`Scope '${scope.identifier}' has no fields or relations - it will not provide any data`);
98
+ }
99
+ // Validate relations
100
+ if (scope.relations) {
101
+ this.validateRelations(scope, errors, warnings);
102
+ }
103
+ }
104
+ }
105
+ /**
106
+ * Validate relations in a scope definition
107
+ */
108
+ validateRelations(scope, errors, warnings) {
109
+ const relationNames = new Set();
110
+ for (const relation of scope.relations) {
111
+ // Check for duplicate relation names
112
+ if (relationNames.has(relation.relation)) {
113
+ errors.push({
114
+ field: 'availableScopes.relations',
115
+ message: `Duplicate relation name '${relation.relation}' in scope: ${scope.identifier}`,
116
+ scopeIdentifier: scope.identifier,
117
+ });
118
+ }
119
+ relationNames.add(relation.relation);
120
+ // Validate relation name
121
+ if (!relation.relation || relation.relation.trim() === '') {
122
+ errors.push({
123
+ field: 'availableScopes.relations',
124
+ message: `Relation name cannot be empty in scope: ${scope.identifier}`,
125
+ scopeIdentifier: scope.identifier,
126
+ });
127
+ }
128
+ // Warn if relation has no fields
129
+ if (!relation.fields || relation.fields.length === 0) {
130
+ warnings.push(`Relation '${relation.relation}' in scope '${scope.identifier}' has no fields specified`);
131
+ }
132
+ }
133
+ }
134
+ /**
135
+ * Validate default scopes
136
+ */
137
+ validateDefaultScopes(defaultScopes, availableScopes, errors, warnings) {
138
+ if (defaultScopes.length === 0) {
139
+ warnings.push('Default scopes array is empty');
140
+ return;
141
+ }
142
+ // If no available scopes, can't validate default scopes
143
+ if (!availableScopes || availableScopes.length === 0) {
144
+ return;
145
+ }
146
+ // Check if default scopes are valid hierarchical scopes
147
+ for (const defaultScope of defaultScopes) {
148
+ const parts = defaultScope.split(':');
149
+ if (parts.length < 3) {
150
+ errors.push({
151
+ field: 'defaultScopes',
152
+ message: `Invalid scope format: ${defaultScope} (expected resource:action:path)`,
153
+ });
154
+ continue;
155
+ }
156
+ const [resource, action, ...path] = parts;
157
+ // Validate resource
158
+ if (resource !== constants_1.OAuth2Resources.USER) {
159
+ errors.push({
160
+ field: 'defaultScopes',
161
+ message: `Unsupported resource in default scope: ${defaultScope} (only 'user' is supported)`,
162
+ });
163
+ }
164
+ // Validate action
165
+ if (action !== constants_1.OAuth2Actions.READ) {
166
+ errors.push({
167
+ field: 'defaultScopes',
168
+ message: `Unsupported action in default scope: ${defaultScope} (only 'read' is supported)`,
169
+ });
170
+ }
171
+ // Check if path refers to an existing scope identifier
172
+ if (path.length > 0) {
173
+ const [firstPart] = path;
174
+ const isScopeFound = availableScopes.some(s => s.identifier === firstPart);
175
+ if (!isScopeFound && path.length > 1) {
176
+ // Check if it's a valid relation
177
+ const isRelationFound = availableScopes.some(s => s.relations?.some(r => r.relation === firstPart));
178
+ if (!isRelationFound) {
179
+ warnings.push(`Default scope '${defaultScope}' references unknown scope/relation: ${firstPart}`);
180
+ }
181
+ }
182
+ }
183
+ }
184
+ }
185
+ /**
186
+ * Validate configuration and throw if invalid
187
+ * @param config - OAuth2 configuration
188
+ * @throws Error if configuration is invalid
189
+ */
190
+ validateOrThrow(config) {
191
+ const result = this.validate(config);
192
+ if (!result.valid) {
193
+ const errorMessages = result.errors.map(e => `${e.field}: ${e.message}`).join('\n');
194
+ throw new Error(`Invalid OAuth2 configuration:\n${errorMessages}`);
195
+ }
196
+ }
197
+ }
198
+ exports.ScopeConfigValidator = ScopeConfigValidator;
199
+ //# sourceMappingURL=scope-config-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-config-validator.js","sourceRoot":"","sources":["../../../../../src/components/authenticate/oauth2-handlers/config/scope-config-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './scope-constants';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/authenticate/oauth2-handlers/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,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("./scope-constants"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/authenticate/oauth2-handlers/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC"}
@@ -0,0 +1,79 @@
1
+ export declare const OAuth2Resources: {
2
+ readonly USER: "user";
3
+ };
4
+ export declare const OAuth2Actions: {
5
+ readonly READ: "read";
6
+ };
7
+ export declare class ScopeBuilder {
8
+ private scopes;
9
+ /**
10
+ * Add a scope to the builder
11
+ * @param scope - Scope string (e.g., "user:read:basic")
12
+ * @returns This builder for chaining
13
+ */
14
+ add(scope: string): this;
15
+ /**
16
+ * Add multiple scopes at once
17
+ * @param scopes - Array of scope strings
18
+ * @returns This builder for chaining
19
+ */
20
+ addMultiple(scopes: string[]): this;
21
+ /**
22
+ * Build a scope string from resource, action, and path components
23
+ * @param resource - Resource name (e.g., 'user')
24
+ * @param action - Action name (e.g., 'read')
25
+ * @param path - Path components (e.g., ['basic'] or ['profile', 'firstName'])
26
+ * @returns This builder for chaining
27
+ */
28
+ buildScope(resource: string, action: string, ...path: string[]): this;
29
+ /**
30
+ * Build the final scope string (space-separated)
31
+ * @returns Space-separated scope string
32
+ */
33
+ build(): string;
34
+ /**
35
+ * Get scopes as array
36
+ * @returns Array of scope strings
37
+ */
38
+ toArray(): string[];
39
+ /**
40
+ * Clear all scopes
41
+ * @returns This builder for chaining
42
+ */
43
+ clear(): this;
44
+ /**
45
+ * Get number of scopes
46
+ * @returns Number of scopes
47
+ */
48
+ count(): number;
49
+ }
50
+ /**
51
+ * Helper function to create a new scope builder
52
+ * @returns New ScopeBuilder instance
53
+ */
54
+ export declare function createScopeBuilder(): ScopeBuilder;
55
+ /**
56
+ * Helper function to build scope string from array
57
+ * @param scopes - Array of scope strings
58
+ * @returns Space-separated scope string
59
+ */
60
+ export declare function buildScopeString(...scopes: string[]): string;
61
+ /**
62
+ * Helper function to build a single scope string
63
+ * @param resource - Resource name
64
+ * @param action - Action name
65
+ * @param path - Path components
66
+ * @returns Scope string in format "resource:action:path1:path2:..."
67
+ */
68
+ export declare function buildScope(resource: string, action: string, ...path: string[]): string;
69
+ /**
70
+ * Helper function to parse scope string into components
71
+ * @param scope - Scope string (e.g., "user:read:basic")
72
+ * @returns Object with resource, action, and path components or null if invalid
73
+ */
74
+ export declare function parseScopeString(scope: string): {
75
+ resource: string;
76
+ action: string;
77
+ path: string[];
78
+ } | null;
79
+ //# sourceMappingURL=scope-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-constants.d.ts","sourceRoot":"","sources":["../../../../../src/components/authenticate/oauth2-handlers/constants/scope-constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;CAElB,CAAC;AAEX,eAAO,MAAM,aAAa;;CAEhB,CAAC;AAEX,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA0B;IAExC;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKxB;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAKnC;;;;;;OAMG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAMrE;;;OAGG;IACH,KAAK,IAAI,MAAM;IAIf;;;OAGG;IACH,OAAO,IAAI,MAAM,EAAE;IAInB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAKb;;;OAGG;IACH,KAAK,IAAI,MAAM;CAGhB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAE5D;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAEtF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,GAAG,IAAI,CAOP"}