@futdevpro/nts-dynamo 1.10.23 → 1.10.24

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 (71) hide show
  1. package/build/_modules/oauth2/_routes/oauth2.controller.d.ts +17 -0
  2. package/build/_modules/oauth2/_routes/oauth2.controller.d.ts.map +1 -0
  3. package/build/_modules/oauth2/_routes/oauth2.controller.js +97 -0
  4. package/build/_modules/oauth2/_routes/oauth2.controller.js.map +1 -0
  5. package/build/_modules/oauth2/_services/oauth2.auth-service.d.ts +31 -0
  6. package/build/_modules/oauth2/_services/oauth2.auth-service.d.ts.map +1 -0
  7. package/build/_modules/oauth2/_services/oauth2.auth-service.js +216 -0
  8. package/build/_modules/oauth2/_services/oauth2.auth-service.js.map +1 -0
  9. package/build/_modules/oauth2/_services/oauth2.control-service.d.ts +133 -0
  10. package/build/_modules/oauth2/_services/oauth2.control-service.d.ts.map +1 -0
  11. package/build/_modules/oauth2/_services/oauth2.control-service.js +574 -0
  12. package/build/_modules/oauth2/_services/oauth2.control-service.js.map +1 -0
  13. package/build/_modules/oauth2/index.d.ts +4 -0
  14. package/build/_modules/oauth2/index.d.ts.map +1 -0
  15. package/build/_modules/oauth2/index.js +7 -0
  16. package/build/_modules/oauth2/index.js.map +1 -0
  17. package/build/_modules/open-ai/_enums/open-ai-model.enum.d.ts +11 -0
  18. package/build/_modules/open-ai/_enums/open-ai-model.enum.d.ts.map +1 -0
  19. package/build/_modules/open-ai/_enums/open-ai-model.enum.js +110 -0
  20. package/build/_modules/open-ai/_enums/open-ai-model.enum.js.map +1 -0
  21. package/build/_modules/open-ai/_models/gpt-call-settings.interface.d.ts +54 -0
  22. package/build/_modules/open-ai/_models/gpt-call-settings.interface.d.ts.map +1 -0
  23. package/build/_modules/open-ai/_models/gpt-call-settings.interface.js +65 -0
  24. package/build/_modules/open-ai/_models/gpt-call-settings.interface.js.map +1 -0
  25. package/build/_modules/open-ai/_models/open-ai-api-env-settings.interface.d.ts +7 -0
  26. package/build/_modules/open-ai/_models/open-ai-api-env-settings.interface.d.ts.map +1 -0
  27. package/build/_modules/open-ai/_models/open-ai-api-env-settings.interface.js +3 -0
  28. package/build/_modules/open-ai/_models/open-ai-api-env-settings.interface.js.map +1 -0
  29. package/build/_modules/open-ai/_models/open-ai-settings.interface.d.ts +17 -0
  30. package/build/_modules/open-ai/_models/open-ai-settings.interface.d.ts.map +1 -0
  31. package/build/_modules/open-ai/_models/open-ai-settings.interface.js +25 -0
  32. package/build/_modules/open-ai/_models/open-ai-settings.interface.js.map +1 -0
  33. package/build/_modules/open-ai/_services/embedding.control-service.d.ts +26 -0
  34. package/build/_modules/open-ai/_services/embedding.control-service.d.ts.map +1 -0
  35. package/build/_modules/open-ai/_services/embedding.control-service.js +54 -0
  36. package/build/_modules/open-ai/_services/embedding.control-service.js.map +1 -0
  37. package/build/_modules/open-ai/_services/gpt.service-base.d.ts +98 -0
  38. package/build/_modules/open-ai/_services/gpt.service-base.d.ts.map +1 -0
  39. package/build/_modules/open-ai/_services/gpt.service-base.js +284 -0
  40. package/build/_modules/open-ai/_services/gpt.service-base.js.map +1 -0
  41. package/build/_modules/open-ai/_services/open-ai.service-base.d.ts +23 -0
  42. package/build/_modules/open-ai/_services/open-ai.service-base.d.ts.map +1 -0
  43. package/build/_modules/open-ai/_services/open-ai.service-base.js +50 -0
  44. package/build/_modules/open-ai/_services/open-ai.service-base.js.map +1 -0
  45. package/build/_modules/open-ai/index.d.ts +8 -0
  46. package/build/_modules/open-ai/index.d.ts.map +1 -0
  47. package/build/_modules/open-ai/index.js +11 -0
  48. package/build/_modules/open-ai/index.js.map +1 -0
  49. package/build/_services/base/db.service.d.ts +38 -0
  50. package/build/_services/base/db.service.d.ts.map +1 -1
  51. package/build/_services/base/db.service.js +40 -0
  52. package/build/_services/base/db.service.js.map +1 -1
  53. package/build/_services/server/app.server.d.ts +17 -0
  54. package/build/_services/server/app.server.d.ts.map +1 -1
  55. package/build/_services/server/app.server.js +17 -0
  56. package/build/_services/server/app.server.js.map +1 -1
  57. package/package.json +47 -17
  58. package/src/_modules/oauth2/_routes/oauth2.controller.ts +99 -0
  59. package/src/_modules/oauth2/_services/oauth2.auth-service.ts +232 -0
  60. package/src/_modules/oauth2/_services/oauth2.control-service.ts +651 -0
  61. package/src/_modules/oauth2/index.ts +9 -0
  62. package/src/_modules/open-ai/_enums/open-ai-model.enum.ts +137 -0
  63. package/src/_modules/open-ai/_models/gpt-call-settings.interface.ts +69 -0
  64. package/src/_modules/open-ai/_models/open-ai-api-env-settings.interface.ts +12 -0
  65. package/src/_modules/open-ai/_models/open-ai-settings.interface.ts +31 -0
  66. package/src/_modules/open-ai/_services/embedding.control-service.ts +61 -0
  67. package/src/_modules/open-ai/_services/gpt.service-base.ts +440 -0
  68. package/src/_modules/open-ai/_services/open-ai.service-base.ts +73 -0
  69. package/src/_modules/open-ai/index.ts +13 -0
  70. package/src/_services/base/db.service.ts +41 -0
  71. package/src/_services/server/app.server.ts +18 -0
@@ -0,0 +1,574 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_OAuth2_ControlService = void 0;
4
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
+ const singleton_service_1 = require("../../../_services/base/singleton.service");
6
+ const global_settings_const_1 = require("../../../_collections/global-settings.const");
7
+ const oauth2_auth_service_1 = require("./oauth2.auth-service");
8
+ const crypto_1 = require("crypto");
9
+ /**
10
+ * OAuth2 Control Service implementation
11
+ *
12
+ * This service handles OAuth2 specific business logic and token management
13
+ *
14
+ * @example
15
+ * const oauth2Service = DyNTS_OAuth2_ControlService.getInstance();
16
+ * await oauth2Service.handleAuthorizationRequest(req, res);
17
+ */
18
+ class DyNTS_OAuth2_ControlService extends singleton_service_1.DyNTS_SingletonService {
19
+ static getInstance() {
20
+ return DyNTS_OAuth2_ControlService.getSingletonInstance();
21
+ }
22
+ serviceName = 'OAuth2ControlService';
23
+ authService = oauth2_auth_service_1.DyNTS_OAuth2_AuthService.getInstance();
24
+ authorizationCodes = new Map();
25
+ accessTokens = new Map();
26
+ refreshTokens = new Map();
27
+ clients = new Map();
28
+ users = new Map();
29
+ /**
30
+ * Handles the OAuth2 authorization request
31
+ * @param req Express Request object
32
+ * @param res Express Response object
33
+ */
34
+ async handleAuthorizationRequest(req, res) {
35
+ try {
36
+ const { response_type, client_id, redirect_uri, scope, state } = req.query;
37
+ // Validate required parameters
38
+ if (!response_type || !client_id || !redirect_uri) {
39
+ throw new fsm_dynamo_1.DyFM_Error({
40
+ status: 400,
41
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HA0`,
42
+ addECToUserMsg: true,
43
+ message: 'Missing required OAuth2 parameters',
44
+ userMessage: 'Invalid authorization request',
45
+ issuerService: this.serviceName,
46
+ });
47
+ }
48
+ // Validate client_id against registered clients
49
+ if (!this.isValidClient(client_id)) {
50
+ throw new fsm_dynamo_1.DyFM_Error({
51
+ status: 400,
52
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HA2`,
53
+ addECToUserMsg: true,
54
+ message: 'Invalid client_id',
55
+ userMessage: 'Invalid authorization request',
56
+ issuerService: this.serviceName,
57
+ });
58
+ }
59
+ // Validate redirect_uri against registered redirect URIs
60
+ if (!this.isValidRedirectUri(client_id, redirect_uri)) {
61
+ throw new fsm_dynamo_1.DyFM_Error({
62
+ status: 400,
63
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HA3`,
64
+ addECToUserMsg: true,
65
+ message: 'Invalid redirect_uri',
66
+ userMessage: 'Invalid authorization request',
67
+ issuerService: this.serviceName,
68
+ });
69
+ }
70
+ // Validate scope against allowed scopes
71
+ if (!this.isValidScope(client_id, scope)) {
72
+ throw new fsm_dynamo_1.DyFM_Error({
73
+ status: 400,
74
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HA4`,
75
+ addECToUserMsg: true,
76
+ message: 'Invalid scope',
77
+ userMessage: 'Invalid authorization request',
78
+ issuerService: this.serviceName,
79
+ });
80
+ }
81
+ // For authorization code flow
82
+ if (response_type === 'code') {
83
+ const authorizationCode = await this.generateAuthorizationCode(client_id, scope);
84
+ // Redirect with authorization code
85
+ const redirectUrl = new URL(redirect_uri);
86
+ redirectUrl.searchParams.append('code', authorizationCode);
87
+ if (state)
88
+ redirectUrl.searchParams.append('state', state);
89
+ res.redirect(redirectUrl.toString());
90
+ return;
91
+ }
92
+ // For implicit flow
93
+ if (response_type === 'token') {
94
+ const accessToken = await this.generateAccessToken(client_id, scope);
95
+ // Redirect with access token
96
+ const redirectUrl = new URL(redirect_uri);
97
+ redirectUrl.hash = `access_token=${accessToken}`;
98
+ if (state)
99
+ redirectUrl.hash += `&state=${state}`;
100
+ res.redirect(redirectUrl.toString());
101
+ return;
102
+ }
103
+ throw new fsm_dynamo_1.DyFM_Error({
104
+ status: 400,
105
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HA1`,
106
+ addECToUserMsg: true,
107
+ message: 'Unsupported response_type',
108
+ userMessage: 'Invalid authorization request',
109
+ issuerService: this.serviceName,
110
+ });
111
+ }
112
+ catch (error) {
113
+ fsm_dynamo_1.DyFM_Log.error('Authorization request failed', error);
114
+ throw error;
115
+ }
116
+ }
117
+ /**
118
+ * Validates if the client is registered and active
119
+ * @param clientId The client ID to validate
120
+ * @returns true if the client is valid
121
+ */
122
+ isValidClient(clientId) {
123
+ const client = this.clients.get(clientId);
124
+ return client?.isActive ?? false;
125
+ }
126
+ /**
127
+ * Validates if the redirect URI is registered for the client
128
+ * @param clientId The client ID
129
+ * @param redirectUri The redirect URI to validate
130
+ * @returns true if the redirect URI is valid
131
+ */
132
+ isValidRedirectUri(clientId, redirectUri) {
133
+ const client = this.clients.get(clientId);
134
+ if (!client)
135
+ return false;
136
+ // Check if the redirect URI matches any of the registered URIs
137
+ return client.redirectUris.some(uri => {
138
+ // Simple exact match for now
139
+ // TODO: Implement more sophisticated URI matching (e.g., wildcards, regex)
140
+ return uri === redirectUri;
141
+ });
142
+ }
143
+ /**
144
+ * Validates if the scope is allowed for the client
145
+ * @param clientId The client ID
146
+ * @param scope The scope to validate
147
+ * @returns true if the scope is valid
148
+ */
149
+ isValidScope(clientId, scope) {
150
+ const client = this.clients.get(clientId);
151
+ if (!client)
152
+ return false;
153
+ // If no scope is requested, it's valid
154
+ if (!scope)
155
+ return true;
156
+ // Split scope string into individual scopes
157
+ const requestedScopes = scope.split(' ');
158
+ // Check if all requested scopes are allowed
159
+ return requestedScopes.every(s => client.allowedScopes.includes(s));
160
+ }
161
+ /**
162
+ * Handles the OAuth2 token request
163
+ * @param req Express Request object
164
+ * @param res Express Response object
165
+ */
166
+ async handleTokenRequest(req, res) {
167
+ try {
168
+ const { grant_type, code, refresh_token, client_id, client_secret, username, password } = req.body;
169
+ // Validate required parameters
170
+ if (!grant_type || !client_id || !client_secret) {
171
+ throw new fsm_dynamo_1.DyFM_Error({
172
+ status: 400,
173
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT0`,
174
+ addECToUserMsg: true,
175
+ message: 'Missing required OAuth2 parameters',
176
+ userMessage: 'Invalid token request',
177
+ issuerService: this.serviceName,
178
+ });
179
+ }
180
+ // Validate client credentials
181
+ if (!this.validateClientCredentials(client_id, client_secret)) {
182
+ throw new fsm_dynamo_1.DyFM_Error({
183
+ status: 401,
184
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT4`,
185
+ addECToUserMsg: true,
186
+ message: 'Invalid client credentials',
187
+ userMessage: 'Invalid token request',
188
+ issuerService: this.serviceName,
189
+ });
190
+ }
191
+ switch (grant_type) {
192
+ case 'authorization_code':
193
+ if (!code) {
194
+ throw new fsm_dynamo_1.DyFM_Error({
195
+ status: 400,
196
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT1`,
197
+ addECToUserMsg: true,
198
+ message: 'Missing authorization code',
199
+ userMessage: 'Invalid token request',
200
+ issuerService: this.serviceName,
201
+ });
202
+ }
203
+ // Validate authorization code
204
+ const authCodeData = this.authorizationCodes.get(code);
205
+ if (!authCodeData || authCodeData.expiresAt < Date.now()) {
206
+ throw new fsm_dynamo_1.DyFM_Error({
207
+ status: 400,
208
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT5`,
209
+ addECToUserMsg: true,
210
+ message: 'Invalid or expired authorization code',
211
+ userMessage: 'Invalid token request',
212
+ issuerService: this.serviceName,
213
+ });
214
+ }
215
+ // Remove used authorization code
216
+ this.authorizationCodes.delete(code);
217
+ const accessToken = await this.generateAccessToken(client_id, authCodeData.scope);
218
+ const refreshToken = await this.generateRefreshToken(client_id);
219
+ // Store refresh token with access token reference
220
+ this.refreshTokens.set(refreshToken, {
221
+ clientId: client_id,
222
+ scope: authCodeData.scope,
223
+ accessToken
224
+ });
225
+ res.json({
226
+ access_token: accessToken,
227
+ token_type: 'Bearer',
228
+ expires_in: 3600,
229
+ refresh_token: refreshToken,
230
+ scope: authCodeData.scope
231
+ });
232
+ break;
233
+ case 'refresh_token':
234
+ if (!refresh_token) {
235
+ throw new fsm_dynamo_1.DyFM_Error({
236
+ status: 400,
237
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT2`,
238
+ addECToUserMsg: true,
239
+ message: 'Missing refresh token',
240
+ userMessage: 'Invalid token request',
241
+ issuerService: this.serviceName,
242
+ });
243
+ }
244
+ // Validate refresh token
245
+ const refreshTokenData = this.refreshTokens.get(refresh_token);
246
+ if (!refreshTokenData) {
247
+ throw new fsm_dynamo_1.DyFM_Error({
248
+ status: 400,
249
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT6`,
250
+ addECToUserMsg: true,
251
+ message: 'Invalid refresh token',
252
+ userMessage: 'Invalid token request',
253
+ issuerService: this.serviceName,
254
+ });
255
+ }
256
+ // Revoke old access token
257
+ this.accessTokens.delete(refreshTokenData.accessToken);
258
+ // Generate new access token
259
+ const newAccessToken = await this.generateAccessToken(client_id, refreshTokenData.scope);
260
+ const newRefreshToken = await this.generateRefreshToken(client_id);
261
+ // Store new refresh token
262
+ this.refreshTokens.set(newRefreshToken, {
263
+ clientId: client_id,
264
+ scope: refreshTokenData.scope,
265
+ accessToken: newAccessToken
266
+ });
267
+ res.json({
268
+ access_token: newAccessToken,
269
+ token_type: 'Bearer',
270
+ expires_in: 3600,
271
+ refresh_token: newRefreshToken,
272
+ scope: refreshTokenData.scope
273
+ });
274
+ break;
275
+ case 'client_credentials':
276
+ const clientAccessToken = await this.generateAccessToken(client_id, '');
277
+ res.json({
278
+ access_token: clientAccessToken,
279
+ token_type: 'Bearer',
280
+ expires_in: 3600
281
+ });
282
+ break;
283
+ case 'password':
284
+ if (!username || !password) {
285
+ throw new fsm_dynamo_1.DyFM_Error({
286
+ status: 400,
287
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT7`,
288
+ addECToUserMsg: true,
289
+ message: 'Missing username or password',
290
+ userMessage: 'Invalid token request',
291
+ issuerService: this.serviceName,
292
+ });
293
+ }
294
+ // Authenticate user
295
+ const userScopes = this.authenticateUser(username, password);
296
+ if (!userScopes) {
297
+ throw new fsm_dynamo_1.DyFM_Error({
298
+ status: 401,
299
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT8`,
300
+ addECToUserMsg: true,
301
+ message: 'Invalid username or password',
302
+ userMessage: 'Invalid token request',
303
+ issuerService: this.serviceName,
304
+ });
305
+ }
306
+ // Generate access token
307
+ const userAccessToken = await this.generateAccessToken(client_id, userScopes.join(' '));
308
+ const userRefreshToken = await this.generateRefreshToken(client_id);
309
+ // Store refresh token with access token reference
310
+ this.refreshTokens.set(userRefreshToken, {
311
+ clientId: client_id,
312
+ scope: userScopes.join(' '),
313
+ accessToken: userAccessToken
314
+ });
315
+ res.json({
316
+ access_token: userAccessToken,
317
+ token_type: 'Bearer',
318
+ expires_in: 3600,
319
+ refresh_token: userRefreshToken,
320
+ scope: userScopes.join(' ')
321
+ });
322
+ break;
323
+ default:
324
+ throw new fsm_dynamo_1.DyFM_Error({
325
+ status: 400,
326
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT3`,
327
+ addECToUserMsg: true,
328
+ message: 'Unsupported grant_type',
329
+ userMessage: 'Invalid token request',
330
+ issuerService: this.serviceName,
331
+ });
332
+ }
333
+ }
334
+ catch (error) {
335
+ fsm_dynamo_1.DyFM_Log.error('Token request failed', error);
336
+ throw error;
337
+ }
338
+ }
339
+ /**
340
+ * Validates client credentials
341
+ * @param clientId The client ID
342
+ * @param clientSecret The client secret
343
+ * @returns true if the credentials are valid
344
+ */
345
+ validateClientCredentials(clientId, clientSecret) {
346
+ const client = this.clients.get(clientId);
347
+ return (client?.clientSecret === clientSecret) && (client?.isActive ?? false);
348
+ }
349
+ /**
350
+ * Handles the OAuth2 userinfo request
351
+ * @param req Express Request object
352
+ * @param res Express Response object
353
+ */
354
+ async handleUserInfoRequest(req, res) {
355
+ try {
356
+ const token = this.authService.getTokenFromRequest(req);
357
+ // Validate token
358
+ const tokenData = this.accessTokens.get(token);
359
+ if (!tokenData || tokenData.expiresAt < Date.now()) {
360
+ throw new fsm_dynamo_1.DyFM_Error({
361
+ status: 401,
362
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HU0`,
363
+ addECToUserMsg: true,
364
+ message: 'Invalid or expired access token',
365
+ userMessage: 'Invalid token',
366
+ issuerService: this.serviceName,
367
+ });
368
+ }
369
+ // Extract user information based on token scope
370
+ const userInfo = await this.getUserInfoFromToken(token);
371
+ res.json(userInfo);
372
+ }
373
+ catch (error) {
374
+ fsm_dynamo_1.DyFM_Log.error('Userinfo request failed', error);
375
+ throw error;
376
+ }
377
+ }
378
+ /**
379
+ * Gets user information from the token
380
+ * @param token The access token
381
+ * @returns The user information object
382
+ */
383
+ async getUserInfoFromToken(token) {
384
+ const tokenData = this.accessTokens.get(token);
385
+ if (!tokenData) {
386
+ throw new fsm_dynamo_1.DyFM_Error({
387
+ status: 401,
388
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HU1`,
389
+ addECToUserMsg: true,
390
+ message: 'Invalid access token',
391
+ userMessage: 'Invalid token',
392
+ issuerService: this.serviceName,
393
+ });
394
+ }
395
+ // TODO: Implement user information retrieval from database/storage
396
+ // For now, return mock user information
397
+ return {
398
+ sub: 'user123',
399
+ name: 'John Doe',
400
+ email: 'john.doe@example.com',
401
+ // Add other user information based on scope
402
+ ...(tokenData.scope.includes('profile') && {
403
+ given_name: 'John',
404
+ family_name: 'Doe',
405
+ picture: 'https://example.com/john.jpg'
406
+ }),
407
+ ...(tokenData.scope.includes('email') && {
408
+ email_verified: true
409
+ })
410
+ };
411
+ }
412
+ /**
413
+ * Handles the OAuth2 token revocation request
414
+ * @param req Express Request object
415
+ * @param res Express Response object
416
+ */
417
+ async handleTokenRevocation(req, res) {
418
+ try {
419
+ const { token, token_type_hint } = req.body;
420
+ if (!token) {
421
+ throw new fsm_dynamo_1.DyFM_Error({
422
+ status: 400,
423
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HR0`,
424
+ addECToUserMsg: true,
425
+ message: 'Missing token',
426
+ userMessage: 'Invalid revocation request',
427
+ issuerService: this.serviceName,
428
+ });
429
+ }
430
+ // Try to revoke the token based on token_type_hint
431
+ let revoked = false;
432
+ if (!token_type_hint || token_type_hint === 'access_token') {
433
+ // Try to revoke as access token
434
+ if (this.accessTokens.delete(token)) {
435
+ revoked = true;
436
+ }
437
+ }
438
+ if (!revoked && (!token_type_hint || token_type_hint === 'refresh_token')) {
439
+ // Try to revoke as refresh token
440
+ const refreshTokenData = this.refreshTokens.get(token);
441
+ if (refreshTokenData) {
442
+ // Also revoke the associated access token
443
+ this.accessTokens.delete(refreshTokenData.accessToken);
444
+ this.refreshTokens.delete(token);
445
+ revoked = true;
446
+ }
447
+ }
448
+ if (!revoked) {
449
+ // Token not found or already revoked
450
+ throw new fsm_dynamo_1.DyFM_Error({
451
+ status: 400,
452
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HR1`,
453
+ addECToUserMsg: true,
454
+ message: 'Token not found or already revoked',
455
+ userMessage: 'Invalid revocation request',
456
+ issuerService: this.serviceName,
457
+ });
458
+ }
459
+ res.status(200).send();
460
+ }
461
+ catch (error) {
462
+ fsm_dynamo_1.DyFM_Log.error('Token revocation failed', error);
463
+ throw error;
464
+ }
465
+ }
466
+ /**
467
+ * Generates an authorization code
468
+ * @param clientId The client ID
469
+ * @param scope The requested scope
470
+ * @returns The generated authorization code
471
+ */
472
+ async generateAuthorizationCode(clientId, scope) {
473
+ const code = (0, crypto_1.randomBytes)(32).toString('hex');
474
+ const expiresAt = Date.now() + 600000; // 10 minutes expiration
475
+ this.authorizationCodes.set(code, {
476
+ clientId,
477
+ scope,
478
+ expiresAt
479
+ });
480
+ return code;
481
+ }
482
+ /**
483
+ * Generates an access token
484
+ * @param clientId The client ID
485
+ * @param scope The requested scope
486
+ * @returns The generated access token
487
+ */
488
+ async generateAccessToken(clientId, scope) {
489
+ const token = (0, crypto_1.randomBytes)(32).toString('hex');
490
+ const expiresAt = Date.now() + 3600000; // 1 hour expiration
491
+ this.accessTokens.set(token, {
492
+ clientId,
493
+ scope,
494
+ expiresAt
495
+ });
496
+ return token;
497
+ }
498
+ /**
499
+ * Generates a refresh token
500
+ * @param clientId The client ID
501
+ * @returns The generated refresh token
502
+ */
503
+ async generateRefreshToken(clientId) {
504
+ const token = (0, crypto_1.randomBytes)(32).toString('hex');
505
+ this.refreshTokens.set(token, {
506
+ clientId,
507
+ scope: '',
508
+ accessToken: ''
509
+ });
510
+ return token;
511
+ }
512
+ /**
513
+ * Gets the access token data
514
+ * @param token The access token
515
+ * @returns The access token data or undefined if not found
516
+ */
517
+ getAccessTokenData(token) {
518
+ return this.accessTokens.get(token);
519
+ }
520
+ /**
521
+ * Registers a new OAuth2 client
522
+ * @param clientId The client ID
523
+ * @param clientSecret The client secret
524
+ * @param redirectUris The allowed redirect URIs
525
+ * @param allowedScopes The allowed scopes
526
+ * @returns true if the client was registered successfully
527
+ */
528
+ registerClient(clientId, clientSecret, redirectUris, allowedScopes) {
529
+ if (this.clients.has(clientId)) {
530
+ return false;
531
+ }
532
+ this.clients.set(clientId, {
533
+ clientId,
534
+ clientSecret,
535
+ redirectUris,
536
+ allowedScopes,
537
+ isActive: true
538
+ });
539
+ return true;
540
+ }
541
+ /**
542
+ * Authenticates a user with username and password
543
+ * @param username The username
544
+ * @param password The password
545
+ * @returns The user's scopes if authentication is successful, undefined otherwise
546
+ */
547
+ authenticateUser(username, password) {
548
+ const user = this.users.get(username);
549
+ if (!user || user.password !== password) { // In a real implementation, compare hashed passwords
550
+ return undefined;
551
+ }
552
+ return user.scopes;
553
+ }
554
+ /**
555
+ * Registers a new user
556
+ * @param username The username
557
+ * @param password The password
558
+ * @param scopes The user's scopes
559
+ * @returns true if the user was registered successfully
560
+ */
561
+ registerUser(username, password, scopes) {
562
+ if (this.users.has(username)) {
563
+ return false;
564
+ }
565
+ this.users.set(username, {
566
+ username,
567
+ password, // In a real implementation, hash the password
568
+ scopes
569
+ });
570
+ return true;
571
+ }
572
+ }
573
+ exports.DyNTS_OAuth2_ControlService = DyNTS_OAuth2_ControlService;
574
+ //# sourceMappingURL=oauth2.control-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2.control-service.js","sourceRoot":"","sources":["../../../../src/_modules/oauth2/_services/oauth2.control-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './_routes/oauth2.controller';
2
+ export * from './_services/oauth2.auth-service';
3
+ export * from './_services/oauth2.control-service';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/oauth2/index.ts"],"names":[],"mappings":"AAGA,cAAc,6BAA6B,CAAC;AAE5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./_routes/oauth2.controller"), exports);
5
+ tslib_1.__exportStar(require("./_services/oauth2.auth-service"), exports);
6
+ tslib_1.__exportStar(require("./_services/oauth2.control-service"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/oauth2/index.ts"],"names":[],"mappings":";;;AAGA,sEAA4C;AAE5C,0EAAgD;AAChD,6EAAmD"}
@@ -0,0 +1,11 @@
1
+ export declare enum DyNTS_OpenAIModel {
2
+ gpt4o = "gpt-4o",
3
+ gpt4o_20240806 = "gpt-4o-2024-08-06",
4
+ gpt4o_20240513 = "gpt-4o-2024-05-13",
5
+ gpt4o_mini = "gpt-4o-mini",
6
+ gpt4o_mini20240718 = "gpt-4o-mini-2024-07-18",
7
+ textEmbedding_3Small = "text-embedding-3-small",
8
+ textEmbedding_3Large = "text-embedding-3-large",
9
+ textEmbedding_ada002 = "text-embedding-ada-002"
10
+ }
11
+ //# sourceMappingURL=open-ai-model.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-ai-model.enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/open-ai/_enums/open-ai-model.enum.ts"],"names":[],"mappings":"AAKA,oBAAY,iBAAiB;IAW3B,KAAK,WAAW;IAEhB,cAAc,sBAAsB;IAEpC,cAAc,sBAAsB;IAYpC,UAAU,gBAAgB;IAE1B,kBAAkB,2BAA2B;IAwB7C,oBAAoB,2BAA2B;IAE/C,oBAAoB,2BAA2B;IAE/C,oBAAoB,2BAA2B;CAsEhD"}