@social.dev/server-sdk 0.0.1-alpha.3 → 0.0.1-alpha.30

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 (161) hide show
  1. package/README.md +7 -65
  2. package/dist/app.module.js +2 -0
  3. package/dist/app.module.js.map +1 -1
  4. package/dist/auth/auth.controller.d.ts +2 -0
  5. package/dist/auth/auth.controller.js +26 -0
  6. package/dist/auth/auth.controller.js.map +1 -1
  7. package/dist/auth/auth.module.js +2 -0
  8. package/dist/auth/auth.module.js.map +1 -1
  9. package/dist/auth/auth.service.d.ts +4 -8
  10. package/dist/auth/auth.service.js +6 -18
  11. package/dist/auth/auth.service.js.map +1 -1
  12. package/dist/auth/dto/login-success.dto.d.ts +1 -1
  13. package/dist/auth/dto/login-success.dto.js +3 -3
  14. package/dist/auth/dto/login-success.dto.js.map +1 -1
  15. package/dist/auth/enums/auth-method.enum.d.ts +2 -2
  16. package/dist/auth/enums/auth-method.enum.js +2 -2
  17. package/dist/auth/enums/auth-method.enum.js.map +1 -1
  18. package/dist/auth/oidc/dto/requests.d.ts +6 -0
  19. package/dist/auth/oidc/dto/requests.js +47 -0
  20. package/dist/auth/oidc/dto/requests.js.map +1 -0
  21. package/dist/auth/oidc/dto/responses.js +1 -1
  22. package/dist/auth/oidc/dto/responses.js.map +1 -1
  23. package/dist/auth/oidc/oidc.controller.d.ts +6 -2
  24. package/dist/auth/oidc/oidc.controller.js +25 -17
  25. package/dist/auth/oidc/oidc.controller.js.map +1 -1
  26. package/dist/auth/oidc/oidc.module.js +2 -0
  27. package/dist/auth/oidc/oidc.module.js.map +1 -1
  28. package/dist/auth/oidc/oidc.service.d.ts +13 -7
  29. package/dist/auth/oidc/oidc.service.js +38 -30
  30. package/dist/auth/oidc/oidc.service.js.map +1 -1
  31. package/dist/auth/session/session.controller.js +3 -3
  32. package/dist/auth/session/session.controller.js.map +1 -1
  33. package/dist/auth/session/session.service.d.ts +2 -2
  34. package/dist/auth/session/session.service.js +4 -4
  35. package/dist/auth/session/session.service.js.map +1 -1
  36. package/dist/bootstrap.d.ts +2 -1
  37. package/dist/bootstrap.js +3 -1
  38. package/dist/bootstrap.js.map +1 -1
  39. package/dist/chat/chat.controller.d.ts +1 -2
  40. package/dist/chat/chat.controller.js +8 -4
  41. package/dist/chat/chat.controller.js.map +1 -1
  42. package/dist/chat/chat.module.js +2 -0
  43. package/dist/chat/chat.module.js.map +1 -1
  44. package/dist/chat/chat.service.d.ts +6 -2
  45. package/dist/chat/chat.service.js +38 -7
  46. package/dist/chat/chat.service.js.map +1 -1
  47. package/dist/common/dto/paginated-response.dto.d.ts +2 -0
  48. package/dist/common/dto/paginated-response.dto.js +14 -3
  49. package/dist/common/dto/paginated-response.dto.js.map +1 -1
  50. package/dist/common/injection-tokens.d.ts +2 -0
  51. package/dist/common/injection-tokens.js +6 -0
  52. package/dist/common/injection-tokens.js.map +1 -0
  53. package/dist/community/community.controller.d.ts +1 -2
  54. package/dist/community/community.controller.js +9 -5
  55. package/dist/community/community.controller.js.map +1 -1
  56. package/dist/community/community.module.js +1 -0
  57. package/dist/community/community.module.js.map +1 -1
  58. package/dist/community/community.service.d.ts +10 -3
  59. package/dist/community/community.service.js +30 -12
  60. package/dist/community/community.service.js.map +1 -1
  61. package/dist/configs/configs.module.js +3 -0
  62. package/dist/configs/configs.module.js.map +1 -1
  63. package/dist/configs/configs.service.d.ts +20 -0
  64. package/dist/configs/configs.service.js +14 -1
  65. package/dist/configs/configs.service.js.map +1 -1
  66. package/dist/core/context/context.store.d.ts +1 -0
  67. package/dist/core/hook/hook.module.d.ts +4 -0
  68. package/dist/core/hook/hook.module.js +30 -0
  69. package/dist/core/hook/hook.module.js.map +1 -0
  70. package/dist/core/hook/hook.service.d.ts +7 -0
  71. package/dist/core/{plugin/plugin-hook.service.js → hook/hook.service.js} +10 -10
  72. package/dist/core/hook/hook.service.js.map +1 -0
  73. package/dist/core/plugin/plugin.module.js +7 -5
  74. package/dist/core/plugin/plugin.module.js.map +1 -1
  75. package/dist/db.js +1 -1
  76. package/dist/db.js.map +1 -1
  77. package/dist/file-storage/file-storage.service.d.ts +1 -1
  78. package/dist/file-storage/file-storage.service.js +6 -6
  79. package/dist/file-storage/file-storage.service.js.map +1 -1
  80. package/dist/file-storage/utils.js +1 -1
  81. package/dist/file-storage/utils.js.map +1 -1
  82. package/dist/index.d.ts +0 -1
  83. package/dist/index.js +1 -3
  84. package/dist/index.js.map +1 -1
  85. package/dist/media/entities/media.entity.js +1 -1
  86. package/dist/media/entities/media.entity.js.map +1 -1
  87. package/dist/media/media.acl.d.ts +2 -4
  88. package/dist/media/media.acl.js +3 -0
  89. package/dist/media/media.acl.js.map +1 -1
  90. package/dist/media/media.service.js +15 -12
  91. package/dist/media/media.service.js.map +1 -1
  92. package/dist/{1756201302119-migrations.d.ts → migrations/1757061785934-PushNotificationTokens.d.ts} +1 -1
  93. package/dist/migrations/1757061785934-PushNotificationTokens.js +20 -0
  94. package/dist/migrations/1757061785934-PushNotificationTokens.js.map +1 -0
  95. package/dist/network/network.middleware.js +6 -2
  96. package/dist/network/network.middleware.js.map +1 -1
  97. package/dist/network/network.module.js +2 -1
  98. package/dist/network/network.module.js.map +1 -1
  99. package/dist/network/network.service.d.ts +5 -2
  100. package/dist/network/network.service.js +23 -6
  101. package/dist/network/network.service.js.map +1 -1
  102. package/dist/notification/dto/delete-push-token.dto.d.ts +3 -0
  103. package/dist/{common/entities/base.repository.js → notification/dto/delete-push-token.dto.js} +14 -20
  104. package/dist/notification/dto/delete-push-token.dto.js.map +1 -0
  105. package/dist/notification/dto/register-push-token.dto.d.ts +5 -0
  106. package/dist/notification/dto/register-push-token.dto.js +38 -0
  107. package/dist/notification/dto/register-push-token.dto.js.map +1 -0
  108. package/dist/notification/entities/push-token.entity.d.ts +11 -0
  109. package/dist/notification/entities/push-token.entity.js +60 -0
  110. package/dist/notification/entities/push-token.entity.js.map +1 -0
  111. package/dist/notification/enums/push-service.enum.d.ts +6 -0
  112. package/dist/notification/enums/push-service.enum.js +11 -0
  113. package/dist/notification/enums/push-service.enum.js.map +1 -0
  114. package/dist/notification/hook-listener.service.d.ts +13 -0
  115. package/dist/notification/hook-listener.service.js +58 -0
  116. package/dist/notification/hook-listener.service.js.map +1 -0
  117. package/dist/notification/notification.module.d.ts +2 -0
  118. package/dist/notification/notification.module.js +34 -0
  119. package/dist/notification/notification.module.js.map +1 -0
  120. package/dist/notification/push-notification.controller.d.ts +9 -0
  121. package/dist/notification/push-notification.controller.js +69 -0
  122. package/dist/notification/push-notification.controller.js.map +1 -0
  123. package/dist/notification/push-notification.service.d.ts +22 -0
  124. package/dist/notification/push-notification.service.js +84 -0
  125. package/dist/notification/push-notification.service.js.map +1 -0
  126. package/dist/post/post.controller.d.ts +3 -2
  127. package/dist/post/post.controller.js +28 -8
  128. package/dist/post/post.controller.js.map +1 -1
  129. package/dist/post/post.module.js +2 -0
  130. package/dist/post/post.module.js.map +1 -1
  131. package/dist/post/post.service.d.ts +7 -3
  132. package/dist/post/post.service.js +18 -8
  133. package/dist/post/post.service.js.map +1 -1
  134. package/dist/tsconfig.build.tsbuildinfo +1 -1
  135. package/dist/user/constants.d.ts +1 -0
  136. package/dist/user/constants.js +5 -0
  137. package/dist/user/constants.js.map +1 -0
  138. package/dist/user/user.controller.d.ts +2 -1
  139. package/dist/user/user.controller.js +9 -4
  140. package/dist/user/user.controller.js.map +1 -1
  141. package/dist/user/user.module.js +2 -0
  142. package/dist/user/user.module.js.map +1 -1
  143. package/dist/user/user.service.d.ts +3 -1
  144. package/dist/user/user.service.js +12 -3
  145. package/dist/user/user.service.js.map +1 -1
  146. package/package.json +1 -1
  147. package/dist/1756201302119-migrations.js +0 -84
  148. package/dist/1756201302119-migrations.js.map +0 -1
  149. package/dist/auth/enums/auth-methods.enum.d.ts +0 -2
  150. package/dist/auth/enums/auth-methods.enum.js +0 -7
  151. package/dist/auth/enums/auth-methods.enum.js.map +0 -1
  152. package/dist/auth/session/auth.controller.d.ts +0 -10
  153. package/dist/auth/session/auth.controller.js +0 -92
  154. package/dist/auth/session/auth.controller.js.map +0 -1
  155. package/dist/auth/session/auth.service.d.ts +0 -12
  156. package/dist/auth/session/auth.service.js +0 -46
  157. package/dist/auth/session/auth.service.js.map +0 -1
  158. package/dist/common/entities/base.repository.d.ts +0 -7
  159. package/dist/common/entities/base.repository.js.map +0 -1
  160. package/dist/core/plugin/plugin-hook.service.d.ts +0 -7
  161. package/dist/core/plugin/plugin-hook.service.js.map +0 -1
package/README.md CHANGED
@@ -1,73 +1,15 @@
1
1
  ## Social.Dev server
2
2
 
3
- ## Project setup
3
+ ## Generating migrations
4
4
 
5
- ```bash
6
- $ npm install
5
+ ```sh
6
+ typeorm migration:generate -d ./dist/db.js src/migrations --dryrun
7
7
  ```
8
8
 
9
- ## Compile and run the project
9
+ ## Running migrations
10
10
 
11
- ```bash
12
- # development
13
- $ npm run start
11
+ From your server implementation
14
12
 
15
- # watch mode
16
- $ npm run start:dev
17
-
18
- # production mode
19
- $ npm run start:prod
20
- ```
21
-
22
- ## Run tests
23
-
24
- ```bash
25
- # unit tests
26
- $ npm run test
27
-
28
- # e2e tests
29
- $ npm run test:e2e
30
-
31
- # test coverage
32
- $ npm run test:cov
33
- ```
34
-
35
- ## Deployment
36
-
37
- When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information.
38
-
39
- If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps:
40
-
41
- ```bash
42
- $ npm install -g @nestjs/mau
43
- $ mau deploy
13
+ ```sh
14
+ typeorm migration:run -d node_modules/@social.dev/server-sdk/dist/db.js
44
15
  ```
45
-
46
- With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.
47
-
48
- ## Resources
49
-
50
- Check out a few resources that may come in handy when working with NestJS:
51
-
52
- - Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
53
- - For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
54
- - To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
55
- - Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks.
56
- - Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
57
- - Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
58
- - To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
59
- - Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).
60
-
61
- ## Support
62
-
63
- Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
64
-
65
- ## Stay in touch
66
-
67
- - Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
68
- - Website - [https://nestjs.com](https://nestjs.com/)
69
- - Twitter - [@nestframework](https://twitter.com/nestframework)
70
-
71
- ## License
72
-
73
- Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).
@@ -33,6 +33,7 @@ const core_module_1 = require("./core/core.module");
33
33
  const context_module_1 = require("./core/context/context.module");
34
34
  const typeorm_2 = require("typeorm");
35
35
  const db_1 = __importDefault(require("./db"));
36
+ const notification_module_1 = require("./notification/notification.module");
36
37
  let AppModule = class AppModule {
37
38
  contextService;
38
39
  dataSource;
@@ -67,6 +68,7 @@ exports.AppModule = AppModule = __decorate([
67
68
  post_module_1.PostModule,
68
69
  media_module_1.MediaModule,
69
70
  chat_module_1.ChatModule,
71
+ notification_module_1.NotificationModule,
70
72
  ],
71
73
  providers: [
72
74
  {
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAKwB;AACxB,6CAAgD;AAChD,2CAA8C;AAC9C,oDAAgD;AAEhD,6DAAyD;AAEzD,mEAA+D;AAC/D,oDAAgD;AAEhD,uCAA0D;AAC1D,oDAAgD;AAChD,4DAAwD;AACxD,6DAAyD;AACzD,qEAAwE;AACxE,uDAAmD;AACnD,oDAAiD;AACjD,oEAAgE;AAChE,oDAAgD;AAChD,oDAAgD;AAChD,kEAA8D;AAC9D,qCAAqC;AACrC,8CAAmC;AAiC5B,IAAM,SAAS,GAAf,MAAM,SAAS;IAED;IACA;IAFnB,YACmB,cAA8B,EAC9B,UAAsB;QADtB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,eAAU,GAAV,UAAU,CAAY;IACtC,CAAC;IAEJ,YAAY;QAEV,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED,SAAS,CAAC,QAA4B;QACpC,QAAQ,CAAC,KAAK,CAAC,6CAAwB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACxD,QAAQ,CAAC,KAAK,CAAC,gCAAc,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;CACF,CAAA;AAfY,8BAAS;oBAAT,SAAS;IA/BrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,8BAAa;YACb,qBAAY,CAAC,OAAO,CAAC;gBACnB,WAAW,EAAE,YAAY;gBACzB,QAAQ,EAAE,IAAI;aACf,CAAC;YACF,uBAAa,CAAC,OAAO,CAAC,YAAe,CAAC,OAAO,CAAC;YAC9C,wBAAU;YACV,wBAAU;YACV,8BAAa;YACb,kCAAe;YACf,wBAAU;YACV,8BAAa;YACb,wBAAU;YACV,0BAAW;YACX,wBAAU;SACX;QACD,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,sBAAe;gBACxB,MAAM,EAAE,CAAC,gBAAS,CAAC;gBACnB,UAAU,EAAE,CAAC,SAAoB,EAAE,EAAE;oBACnC,OAAO,IAAI,mCAA0B,CAAC,SAAS,EAAE;wBAC/C,wBAAwB,EAAE,IAAI;wBAC9B,uBAAuB,EAAE,IAAI;qBAC9B,CAAC,CAAC;gBACL,CAAC;aACF;SACF;KACF,CAAC;qCAGmC,gCAAc;QAClB,oBAAU;GAH9B,SAAS,CAerB"}
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAKwB;AACxB,6CAAgD;AAChD,2CAA8C;AAC9C,oDAAgD;AAEhD,6DAAyD;AAEzD,mEAA+D;AAC/D,oDAAgD;AAEhD,uCAA0D;AAC1D,oDAAgD;AAChD,4DAAwD;AACxD,6DAAyD;AACzD,qEAAwE;AACxE,uDAAmD;AACnD,oDAAiD;AACjD,oEAAgE;AAChE,oDAAgD;AAChD,oDAAgD;AAChD,kEAA8D;AAC9D,qCAAqC;AACrC,8CAAmC;AACnC,4EAAwE;AAkCjE,IAAM,SAAS,GAAf,MAAM,SAAS;IAED;IACA;IAFnB,YACmB,cAA8B,EAC9B,UAAsB;QADtB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,eAAU,GAAV,UAAU,CAAY;IACtC,CAAC;IAEJ,YAAY;QAEV,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED,SAAS,CAAC,QAA4B;QACpC,QAAQ,CAAC,KAAK,CAAC,6CAAwB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACxD,QAAQ,CAAC,KAAK,CAAC,gCAAc,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;CACF,CAAA;AAfY,8BAAS;oBAAT,SAAS;IAhCrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,8BAAa;YACb,qBAAY,CAAC,OAAO,CAAC;gBACnB,WAAW,EAAE,YAAY;gBACzB,QAAQ,EAAE,IAAI;aACf,CAAC;YACF,uBAAa,CAAC,OAAO,CAAC,YAAe,CAAC,OAAO,CAAC;YAC9C,wBAAU;YACV,wBAAU;YACV,8BAAa;YACb,kCAAe;YACf,wBAAU;YACV,8BAAa;YACb,wBAAU;YACV,0BAAW;YACX,wBAAU;YACV,wCAAkB;SACnB;QACD,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,sBAAe;gBACxB,MAAM,EAAE,CAAC,gBAAS,CAAC;gBACnB,UAAU,EAAE,CAAC,SAAoB,EAAE,EAAE;oBACnC,OAAO,IAAI,mCAA0B,CAAC,SAAS,EAAE;wBAC/C,wBAAwB,EAAE,IAAI;wBAC9B,uBAAuB,EAAE,IAAI;qBAC9B,CAAC,CAAC;gBACL,CAAC;aACF;SACF;KACF,CAAC;qCAGmC,gCAAc;QAClB,oBAAU;GAH9B,SAAS,CAerB"}
@@ -1,6 +1,8 @@
1
1
  import { AuthService } from './auth.service';
2
+ import { AuthMethodEnum } from './enums/auth-method.enum';
2
3
  export declare class AuthController {
3
4
  private authService;
4
5
  constructor(authService: AuthService);
6
+ listAuthMethod(): AuthMethodEnum[];
5
7
  getProfile(req: any): any;
6
8
  }
@@ -17,16 +17,41 @@ const openapi = require("@nestjs/swagger");
17
17
  const common_1 = require("@nestjs/common");
18
18
  const auth_service_1 = require("./auth.service");
19
19
  const auth_guard_1 = require("./auth.guard");
20
+ const auth_method_enum_1 = require("./enums/auth-method.enum");
21
+ const swagger_1 = require("@nestjs/swagger");
20
22
  let AuthController = class AuthController {
21
23
  authService;
22
24
  constructor(authService) {
23
25
  this.authService = authService;
24
26
  }
27
+ listAuthMethod() {
28
+ return this.authService.getAuthMethods();
29
+ }
25
30
  getProfile(req) {
26
31
  return req.user;
27
32
  }
28
33
  };
29
34
  exports.AuthController = AuthController;
35
+ __decorate([
36
+ (0, common_1.Get)('auth.method.list'),
37
+ (0, swagger_1.ApiOperation)({ summary: 'List available authentication methods' }),
38
+ (0, swagger_1.ApiResponse)({
39
+ status: 200,
40
+ description: 'List of available authentication methods',
41
+ schema: {
42
+ type: 'array',
43
+ items: {
44
+ type: 'string',
45
+ enum: Object.values(auth_method_enum_1.AuthMethodEnum),
46
+ },
47
+ example: [auth_method_enum_1.AuthMethodEnum.Password, auth_method_enum_1.AuthMethodEnum.Oidc],
48
+ },
49
+ }),
50
+ openapi.ApiResponse({ status: 200 }),
51
+ __metadata("design:type", Function),
52
+ __metadata("design:paramtypes", []),
53
+ __metadata("design:returntype", Array)
54
+ ], AuthController.prototype, "listAuthMethod", null);
30
55
  __decorate([
31
56
  (0, common_1.UseGuards)(auth_guard_1.AuthGuard),
32
57
  (0, common_1.Get)('auth.profile.info'),
@@ -37,6 +62,7 @@ __decorate([
37
62
  __metadata("design:returntype", void 0)
38
63
  ], AuthController.prototype, "getProfile", null);
39
64
  exports.AuthController = AuthController = __decorate([
65
+ (0, swagger_1.ApiTags)('Auth'),
40
66
  (0, common_1.Controller)(),
41
67
  __metadata("design:paramtypes", [auth_service_1.AuthService])
42
68
  ], AuthController);
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/auth/auth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAqE;AACrE,iDAA6C;AAC7C,6CAAyC;AAGlC,IAAM,cAAc,GAApB,MAAM,cAAc;IACL;IAApB,YAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAIhD,UAAU,CAAY,GAAG;QACvB,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;CACF,CAAA;AARY,wCAAc;AAKzB;IAFC,IAAA,kBAAS,EAAC,sBAAS,CAAC;IACpB,IAAA,YAAG,EAAC,mBAAmB,CAAC;;IACb,WAAA,IAAA,gBAAO,GAAE,CAAA;;;;gDAEpB;yBAPU,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEsB,0BAAW;GADjC,cAAc,CAQ1B"}
1
+ {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/auth/auth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAqE;AACrE,iDAA6C;AAC7C,6CAAyC;AACzC,+DAA0D;AAC1D,6CAAqE;AAI9D,IAAM,cAAc,GAApB,MAAM,cAAc;IACL;IAApB,YAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAgBhD,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;IAC3C,CAAC;IAID,UAAU,CAAY,GAAG;QACvB,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;CACF,CAAA;AA1BY,wCAAc;AAiBzB;IAdC,IAAA,YAAG,EAAC,kBAAkB,CAAC;IACvB,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;IAClE,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,0CAA0C;QACvD,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,iCAAc,CAAC;aACpC;YACD,OAAO,EAAE,CAAC,iCAAc,CAAC,QAAQ,EAAE,iCAAc,CAAC,IAAI,CAAC;SACxD;KACF,CAAC;;;;;oDAGD;AAID;IAFC,IAAA,kBAAS,EAAC,sBAAS,CAAC;IACpB,IAAA,YAAG,EAAC,mBAAmB,CAAC;;IACb,WAAA,IAAA,gBAAO,GAAE,CAAA;;;;gDAEpB;yBAzBU,cAAc;IAF1B,IAAA,iBAAO,EAAC,MAAM,CAAC;IACf,IAAA,mBAAU,GAAE;qCAEsB,0BAAW;GADjC,cAAc,CA0B1B"}
@@ -14,6 +14,7 @@ const user_module_1 = require("../user/user.module");
14
14
  const jwt_1 = require("@nestjs/jwt");
15
15
  const constants_1 = require("./constants");
16
16
  const oidc_module_1 = require("./oidc/oidc.module");
17
+ const configs_module_1 = require("../configs/configs.module");
17
18
  let AuthModule = class AuthModule {
18
19
  };
19
20
  exports.AuthModule = AuthModule;
@@ -26,6 +27,7 @@ exports.AuthModule = AuthModule = __decorate([
26
27
  secret: constants_1.jwtConstants.secret,
27
28
  signOptions: { expiresIn: '30d' },
28
29
  }),
30
+ configs_module_1.ConfigsModule,
29
31
  oidc_module_1.OidcModule,
30
32
  ],
31
33
  controllers: [auth_controller_1.AuthController],
@@ -1 +1 @@
1
- {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../src/auth/auth.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,uDAAmD;AACnD,iDAA6C;AAC7C,qDAAgD;AAChD,qCAAwC;AACxC,2CAA2C;AAC3C,oDAAgD;AAezC,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAbtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,eAAS,CAAC,QAAQ,CAAC;gBACjB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,wBAAY,CAAC,MAAM;gBAC3B,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;aAClC,CAAC;YACF,wBAAU;SACX;QACD,WAAW,EAAE,CAAC,gCAAc,CAAC;QAC7B,SAAS,EAAE,CAAC,0BAAW,CAAC;KACzB,CAAC;GACW,UAAU,CAAG"}
1
+ {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../src/auth/auth.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,uDAAmD;AACnD,iDAA6C;AAC7C,qDAAgD;AAChD,qCAAwC;AACxC,2CAA2C;AAC3C,oDAAgD;AAChD,8DAAyD;AAgBlD,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAdtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,eAAS,CAAC,QAAQ,CAAC;gBACjB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,wBAAY,CAAC,MAAM;gBAC3B,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;aAClC,CAAC;YACF,8BAAa;YACb,wBAAU;SACX;QACD,WAAW,EAAE,CAAC,gCAAc,CAAC;QAC7B,SAAS,EAAE,CAAC,0BAAW,CAAC;KACzB,CAAC;GACW,UAAU,CAAG"}
@@ -1,11 +1,7 @@
1
- import { UserService } from '../user/user.service';
2
- import { JwtService } from '@nestjs/jwt';
3
1
  import { AuthMethodEnum } from './enums/auth-method.enum';
2
+ import { ConfigsService } from '~/configs/configs.service';
4
3
  export declare class AuthService {
5
- private userService;
6
- private jwtService;
7
- constructor(userService: UserService, jwtService: JwtService);
8
- getAuthMethods(): {
9
- method: AuthMethodEnum;
10
- }[];
4
+ private configs;
5
+ constructor(configs: ConfigsService);
6
+ getAuthMethods(): AuthMethodEnum[];
11
7
  }
@@ -11,31 +11,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.AuthService = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
- const user_service_1 = require("../user/user.service");
15
- const jwt_1 = require("@nestjs/jwt");
16
- const auth_method_enum_1 = require("./enums/auth-method.enum");
14
+ const configs_service_1 = require("../configs/configs.service");
17
15
  let AuthService = class AuthService {
18
- userService;
19
- jwtService;
20
- constructor(userService, jwtService) {
21
- this.userService = userService;
22
- this.jwtService = jwtService;
16
+ configs;
17
+ constructor(configs) {
18
+ this.configs = configs;
23
19
  }
24
20
  getAuthMethods() {
25
- return [
26
- {
27
- method: auth_method_enum_1.AuthMethodEnum.Password,
28
- },
29
- {
30
- method: auth_method_enum_1.AuthMethodEnum.Oidc,
31
- },
32
- ];
21
+ return this.configs.get('auth')?.methods || [];
33
22
  }
34
23
  };
35
24
  exports.AuthService = AuthService;
36
25
  exports.AuthService = AuthService = __decorate([
37
26
  (0, common_1.Injectable)(),
38
- __metadata("design:paramtypes", [user_service_1.UserService,
39
- jwt_1.JwtService])
27
+ __metadata("design:paramtypes", [configs_service_1.ConfigsService])
40
28
  ], AuthService);
41
29
  //# sourceMappingURL=auth.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmE;AACnE,uDAAmD;AACnD,qCAAyC;AAEzC,+DAA0D;AAGnD,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEZ;IACA;IAFV,YACU,WAAwB,EACxB,UAAsB;QADtB,gBAAW,GAAX,WAAW,CAAa;QACxB,eAAU,GAAV,UAAU,CAAY;IAC7B,CAAC;IAKJ,cAAc;QACZ,OAAO;YAEL;gBACE,MAAM,EAAE,iCAAc,CAAC,QAAQ;aAChC;YAED;gBACE,MAAM,EAAE,iCAAc,CAAC,IAAI;aAC5B;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AArBY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAGY,0BAAW;QACZ,gBAAU;GAHrB,WAAW,CAqBvB"}
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmE;AAKnE,gEAA2D;AAGpD,IAAM,WAAW,GAAjB,MAAM,WAAW;IACF;IAApB,YAAoB,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAK/C,cAAc;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC;IACjD,CAAC;CACF,CAAA;AATY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAEkB,gCAAc;GADhC,WAAW,CASvB"}
@@ -1,5 +1,5 @@
1
1
  import { UserResponseDto } from '~/user/dto/user-response.dto';
2
2
  export declare class LoginSuccessResponseDto {
3
- accessToken: string;
3
+ authToken: string;
4
4
  user: UserResponseDto;
5
5
  }
@@ -14,17 +14,17 @@ const openapi = require("@nestjs/swagger");
14
14
  const swagger_1 = require("@nestjs/swagger");
15
15
  const user_response_dto_1 = require("../../user/dto/user-response.dto");
16
16
  class LoginSuccessResponseDto {
17
- accessToken;
17
+ authToken;
18
18
  user;
19
19
  static _OPENAPI_METADATA_FACTORY() {
20
- return { accessToken: { required: true, type: () => String }, user: { required: true, type: () => require("../../user/dto/user-response.dto").UserResponseDto } };
20
+ return { authToken: { required: true, type: () => String }, user: { required: true, type: () => require("../../user/dto/user-response.dto").UserResponseDto } };
21
21
  }
22
22
  }
23
23
  exports.LoginSuccessResponseDto = LoginSuccessResponseDto;
24
24
  __decorate([
25
25
  (0, swagger_1.ApiProperty)({ description: 'The session token' }),
26
26
  __metadata("design:type", String)
27
- ], LoginSuccessResponseDto.prototype, "accessToken", void 0);
27
+ ], LoginSuccessResponseDto.prototype, "authToken", void 0);
28
28
  __decorate([
29
29
  (0, swagger_1.ApiProperty)({
30
30
  description: 'User information',
@@ -1 +1 @@
1
- {"version":3,"file":"login-success.dto.js","sourceRoot":"","sources":["../../../src/auth/dto/login-success.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA8C;AAC9C,wEAA+D;AAG/D,MAAa,uBAAuB;IAElC,WAAW,CAAS;IAWpB,IAAI,CAAkB;;;;CACvB;AAdD,0DAcC;AAZC;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;;4DAC9B;AAWpB;IATC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE;YACP,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,CAAC;SACX;KACF,CAAC;8BACI,mCAAe;qDAAC"}
1
+ {"version":3,"file":"login-success.dto.js","sourceRoot":"","sources":["../../../src/auth/dto/login-success.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA8C;AAC9C,wEAA+D;AAG/D,MAAa,uBAAuB;IAElC,SAAS,CAAS;IAWlB,IAAI,CAAkB;;;;CACvB;AAdD,0DAcC;AAZC;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;;0DAChC;AAWlB;IATC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE;YACP,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,CAAC;SACX;KACF,CAAC;8BACI,mCAAe;qDAAC"}
@@ -1,4 +1,4 @@
1
1
  export declare enum AuthMethodEnum {
2
- Password = 0,
3
- Oidc = 1
2
+ Password = "PASSWORD",
3
+ Oidc = "OIDC"
4
4
  }
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AuthMethodEnum = void 0;
4
4
  var AuthMethodEnum;
5
5
  (function (AuthMethodEnum) {
6
- AuthMethodEnum[AuthMethodEnum["Password"] = 0] = "Password";
7
- AuthMethodEnum[AuthMethodEnum["Oidc"] = 1] = "Oidc";
6
+ AuthMethodEnum["Password"] = "PASSWORD";
7
+ AuthMethodEnum["Oidc"] = "OIDC";
8
8
  })(AuthMethodEnum || (exports.AuthMethodEnum = AuthMethodEnum = {}));
9
9
  //# sourceMappingURL=auth-method.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-method.enum.js","sourceRoot":"","sources":["../../../src/auth/enums/auth-method.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAKX;AALD,WAAY,cAAc;IAExB,2DAAQ,CAAA;IAER,mDAAI,CAAA;AACN,CAAC,EALW,cAAc,8BAAd,cAAc,QAKzB"}
1
+ {"version":3,"file":"auth-method.enum.js","sourceRoot":"","sources":["../../../src/auth/enums/auth-method.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAKX;AALD,WAAY,cAAc;IAExB,uCAAqB,CAAA;IAErB,+BAAa,CAAA;AACf,CAAC,EALW,cAAc,8BAAd,cAAc,QAKzB"}
@@ -0,0 +1,6 @@
1
+ export declare class OidcExchangeCodeDto {
2
+ code: string;
3
+ provider: string;
4
+ redirectUri: string;
5
+ codeVerifier: string;
6
+ }
@@ -0,0 +1,47 @@
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.OidcExchangeCodeDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ class OidcExchangeCodeDto {
15
+ code;
16
+ provider;
17
+ redirectUri;
18
+ codeVerifier;
19
+ }
20
+ exports.OidcExchangeCodeDto = OidcExchangeCodeDto;
21
+ __decorate([
22
+ (0, swagger_1.ApiProperty)({
23
+ description: 'Authorization code, obtained from the authorization flow',
24
+ }),
25
+ __metadata("design:type", String)
26
+ ], OidcExchangeCodeDto.prototype, "code", void 0);
27
+ __decorate([
28
+ (0, swagger_1.ApiProperty)({
29
+ description: 'OIDC provider ID, relevant to the code that was obtained',
30
+ }),
31
+ __metadata("design:type", String)
32
+ ], OidcExchangeCodeDto.prototype, "provider", void 0);
33
+ __decorate([
34
+ (0, swagger_1.ApiProperty)({
35
+ description: 'Redirect Uri that was used to obtain the authorization code',
36
+ required: false,
37
+ }),
38
+ __metadata("design:type", String)
39
+ ], OidcExchangeCodeDto.prototype, "redirectUri", void 0);
40
+ __decorate([
41
+ (0, swagger_1.ApiProperty)({
42
+ description: 'The same code_verifier that was used to obtain the authorization code. Required if PKCE was used in the authorization code grant request',
43
+ required: false,
44
+ }),
45
+ __metadata("design:type", String)
46
+ ], OidcExchangeCodeDto.prototype, "codeVerifier", void 0);
47
+ //# sourceMappingURL=requests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requests.js","sourceRoot":"","sources":["../../../../src/auth/oidc/dto/requests.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAE9C,MAAa,mBAAmB;IAI9B,IAAI,CAAS;IAKb,QAAQ,CAAS;IAMjB,WAAW,CAAS;IAOpB,YAAY,CAAS;CACtB;AAvBD,kDAuBC;AAnBC;IAHC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,0DAA0D;KACxE,CAAC;;iDACW;AAKb;IAHC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,0DAA0D;KACxE,CAAC;;qDACe;AAMjB;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,6DAA6D;QAC1E,QAAQ,EAAE,KAAK;KAChB,CAAC;;wDACkB;AAOpB;IALC,IAAA,qBAAW,EAAC;QACX,WAAW,EACT,0IAA0I;QAC5I,QAAQ,EAAE,KAAK;KAChB,CAAC;;yDACmB"}
@@ -37,7 +37,7 @@ __decorate([
37
37
  description: 'Url to redirect the user to in order to start the OIDC flow',
38
38
  }),
39
39
  (0, class_transformer_1.Transform)(({ obj }) => {
40
- const baseUrl = context_1.Context.getNetwork().getBaseUrl() + 'api/auth.oidc.login';
40
+ const baseUrl = context_1.Context.getNetwork().getBaseUrl() + 'api/auth.oidc.authorize';
41
41
  return baseUrl + '?id=' + obj.id;
42
42
  }),
43
43
  __metadata("design:type", String)
@@ -1 +1 @@
1
- {"version":3,"file":"responses.js","sourceRoot":"","sources":["../../../../src/auth/oidc/dto/responses.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAsD;AACtD,2DAAiD;AAEjD,MAAa,uBAAuB;IAGlC,EAAE,CAAS;IAMX,IAAI,CAAS;IAWb,QAAQ,CAAS;CAClB;AArBD,0DAqBC;AAlBC;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;;mDAC3C;AAMX;IAJC,IAAA,0BAAM,GAAE;IACR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4DAA4D;KAC1E,CAAC;;qDACW;AAWb;IATC,IAAA,0BAAM,GAAE;IACR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,6DAA6D;KAC3E,CAAC;IACD,IAAA,6BAAS,EAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;QACrB,MAAM,OAAO,GAAG,iBAAO,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,GAAG,qBAAqB,CAAC;QAE1E,OAAO,OAAO,GAAG,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;IACnC,CAAC,CAAC;;yDACe"}
1
+ {"version":3,"file":"responses.js","sourceRoot":"","sources":["../../../../src/auth/oidc/dto/responses.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAsD;AACtD,2DAAiD;AAEjD,MAAa,uBAAuB;IAGlC,EAAE,CAAS;IAMX,IAAI,CAAS;IAYb,QAAQ,CAAS;CAClB;AAtBD,0DAsBC;AAnBC;IAFC,IAAA,0BAAM,GAAE;IACR,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;;mDAC3C;AAMX;IAJC,IAAA,0BAAM,GAAE;IACR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4DAA4D;KAC1E,CAAC;;qDACW;AAYb;IAVC,IAAA,0BAAM,GAAE;IACR,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,6DAA6D;KAC3E,CAAC;IACD,IAAA,6BAAS,EAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;QACrB,MAAM,OAAO,GACX,iBAAO,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,GAAG,yBAAyB,CAAC;QAEhE,OAAO,OAAO,GAAG,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;IACnC,CAAC,CAAC;;yDACe"}
@@ -2,11 +2,15 @@ import { Response } from 'express';
2
2
  import { OidcService } from './oidc.service';
3
3
  import { OidcProviderResponseDto } from './dto/responses';
4
4
  import { SessionService } from '../session/session.service';
5
+ import { OidcExchangeCodeDto } from './dto/requests';
5
6
  export declare class OidcController {
6
7
  private service;
7
8
  private sessions;
8
9
  constructor(service: OidcService, sessions: SessionService);
9
10
  listOidcProviders(): OidcProviderResponseDto[];
10
- login(id: string, res: Response): Promise<void>;
11
- callback(code: string, res: Response): Promise<string>;
11
+ login(id: string, params: Record<string, string>, res: Response): Promise<void>;
12
+ exchangeCode(dto: OidcExchangeCodeDto, res: Response): Promise<{
13
+ authToken: string;
14
+ user: import("../../user/entities/user.entity").User;
15
+ }>;
12
16
  }
@@ -20,6 +20,7 @@ const oidc_service_1 = require("./oidc.service");
20
20
  const class_transformer_1 = require("class-transformer");
21
21
  const responses_1 = require("./dto/responses");
22
22
  const session_service_1 = require("../session/session.service");
23
+ const requests_1 = require("./dto/requests");
23
24
  let OidcController = class OidcController {
24
25
  service;
25
26
  sessions;
@@ -32,16 +33,21 @@ let OidcController = class OidcController {
32
33
  .getProviders()
33
34
  .map((p) => (0, class_transformer_1.plainToInstance)(responses_1.OidcProviderResponseDto, p));
34
35
  }
35
- async login(id, res) {
36
+ async login(id, params, res) {
36
37
  const provider = this.service.getProviders()[0];
37
- const url = await this.service.getAuthorizationUrl(provider, 'todo');
38
+ const url = await this.service.getAuthorizationUrl(provider, 'todo', params);
38
39
  res.redirect(302, url);
39
40
  }
40
- async callback(code, res) {
41
+ async exchangeCode(dto, res) {
41
42
  const provider = this.service.getProviders()[0];
42
- const { accessToken } = await this.service.processAuthorizationCode(provider, code);
43
- this.sessions.setSessionCookie(accessToken, res);
44
- return 'Success. You can close this window';
43
+ const { authToken, user } = await this.service.processAuthorizationCode({
44
+ provider,
45
+ code: dto.code,
46
+ redirectUri: dto.redirectUri,
47
+ codeVerifier: dto.codeVerifier,
48
+ });
49
+ this.sessions.setSessionCookie(authToken, res);
50
+ return { authToken, user };
45
51
  }
46
52
  };
47
53
  exports.OidcController = OidcController;
@@ -58,30 +64,32 @@ __decorate([
58
64
  ], OidcController.prototype, "listOidcProviders", null);
59
65
  __decorate([
60
66
  (0, swagger_1.ApiOperation)({
61
- summary: 'Initiates an oidc login flow',
67
+ summary: 'Initiates an oidc authorization flow',
62
68
  description: `This OIDC API method kicks off the login flow for a given provider.`,
63
69
  }),
64
- (0, common_1.Get)('auth.oidc.login'),
70
+ (0, common_1.Get)('auth.oidc.authorize'),
65
71
  openapi.ApiResponse({ status: 200 }),
66
72
  __param(0, (0, common_1.Query)('id')),
67
- __param(1, (0, common_1.Res)()),
73
+ __param(1, (0, common_1.Query)()),
74
+ __param(2, (0, common_1.Res)()),
68
75
  __metadata("design:type", Function),
69
- __metadata("design:paramtypes", [String, Object]),
76
+ __metadata("design:paramtypes", [String, Object, Object]),
70
77
  __metadata("design:returntype", Promise)
71
78
  ], OidcController.prototype, "login", null);
72
79
  __decorate([
73
80
  (0, swagger_1.ApiOperation)({
74
- summary: 'Callback to respond to OIDC events',
75
- description: `This OIDC API method is to be used as the redirect_uri in the OIDC auth flow.`,
81
+ summary: 'Exchange an OIDC Authorization Code for a Social.Dev session',
82
+ description: `This OIDC API method is to be used to exchange and OAuth2 Authorization Code, obtained from the OIDC authorization flow,
83
+ for a Social.Dev session.`,
76
84
  }),
77
- (0, common_1.Get)('auth.oidc.callback'),
78
- openapi.ApiResponse({ status: 200, type: String }),
79
- __param(0, (0, common_1.Query)('code')),
85
+ (0, common_1.Post)('auth.oidc.exchangeCode'),
86
+ openapi.ApiResponse({ status: 201 }),
87
+ __param(0, (0, common_1.Body)()),
80
88
  __param(1, (0, common_1.Res)({ passthrough: true })),
81
89
  __metadata("design:type", Function),
82
- __metadata("design:paramtypes", [String, Object]),
90
+ __metadata("design:paramtypes", [requests_1.OidcExchangeCodeDto, Object]),
83
91
  __metadata("design:returntype", Promise)
84
- ], OidcController.prototype, "callback", null);
92
+ ], OidcController.prototype, "exchangeCode", null);
85
93
  exports.OidcController = OidcController = __decorate([
86
94
  (0, common_1.Controller)(),
87
95
  (0, swagger_1.ApiTags)('Auth'),
@@ -1 +1 @@
1
- {"version":3,"file":"oidc.controller.js","sourceRoot":"","sources":["../../../src/auth/oidc/oidc.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA6D;AAC7D,6CAAwD;AAExD,iDAA6C;AAC7C,yDAAqE;AACrE,+CAA0D;AAC1D,gEAA4D;AAIrD,IAAM,cAAc,GAApB,MAAM,cAAc;IAEf;IACA;IAFV,YACU,OAAoB,EACpB,QAAwB;QADxB,YAAO,GAAP,OAAO,CAAa;QACpB,aAAQ,GAAR,QAAQ,CAAgB;IAC/B,CAAC;IAOJ,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO;aAChB,YAAY,EAAE;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,mCAAe,EAAC,mCAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAOK,AAAN,KAAK,CAAC,KAAK,CAAc,EAAU,EAAS,GAAa;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAErE,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;IAOK,AAAN,KAAK,CAAC,QAAQ,CACG,IAAY,EACC,GAAa;QAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,CACjE,QAAQ,EACR,IAAI,CACL,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAEjD,OAAO,oCAAoC,CAAC;IAC9C,CAAC;CACF,CAAA;AAhDY,wCAAc;AAWzB;IALC,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,qCAAqC;QAC9C,WAAW,EAAE,kFAAkF;KAChG,CAAC;IACD,IAAA,YAAG,EAAC,0BAA0B,CAAC;;;;;uDAK/B;AAOK;IALL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,8BAA8B;QACvC,WAAW,EAAE,qEAAqE;KACnF,CAAC;IACD,IAAA,YAAG,EAAC,iBAAiB,CAAC;;IACV,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,YAAG,GAAE,CAAA;;;;2CAK1C;AAOK;IALL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,oCAAoC;QAC7C,WAAW,EAAE,+EAA+E;KAC7F,CAAC;IACD,IAAA,YAAG,EAAC,oBAAoB,CAAC;;IAEvB,WAAA,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;IACb,WAAA,IAAA,YAAG,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;;;;8CAW5B;yBA/CU,cAAc;IAF1B,IAAA,mBAAU,GAAE;IACZ,IAAA,iBAAO,EAAC,MAAM,CAAC;qCAGK,0BAAW;QACV,gCAAc;GAHvB,cAAc,CAgD1B"}
1
+ {"version":3,"file":"oidc.controller.js","sourceRoot":"","sources":["../../../src/auth/oidc/oidc.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyE;AACzE,6CAAwD;AAExD,iDAA6C;AAC7C,yDAAqE;AACrE,+CAA0D;AAC1D,gEAA4D;AAE5D,6CAAqD;AAI9C,IAAM,cAAc,GAApB,MAAM,cAAc;IAEf;IACA;IAFV,YACU,OAAoB,EACpB,QAAwB;QADxB,YAAO,GAAP,OAAO,CAAa;QACpB,aAAQ,GAAR,QAAQ,CAAgB;IAC/B,CAAC;IAOJ,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO;aAChB,YAAY,EAAE;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,mCAAe,EAAC,mCAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAOK,AAAN,KAAK,CAAC,KAAK,CACI,EAAU,EACd,MAA8B,EAChC,GAAa;QAGpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAChD,QAAQ,EACR,MAAM,EACN,MAAM,CACP,CAAC;QAEF,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;IAQK,AAAN,KAAK,CAAC,YAAY,CACR,GAAwB,EACJ,GAAa;QAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC;YACtE,QAAQ;YACR,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAE/C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;CACF,CAAA;AA5DY,wCAAc;AAWzB;IALC,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,qCAAqC;QAC9C,WAAW,EAAE,kFAAkF;KAChG,CAAC;IACD,IAAA,YAAG,EAAC,0BAA0B,CAAC;;;;;uDAK/B;AAOK;IALL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,sCAAsC;QAC/C,WAAW,EAAE,qEAAqE;KACnF,CAAC;IACD,IAAA,YAAG,EAAC,qBAAqB,CAAC;;IAExB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IACX,WAAA,IAAA,cAAK,GAAE,CAAA;IACP,WAAA,IAAA,YAAG,GAAE,CAAA;;;;2CAWP;AAQK;IANL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,8DAA8D;QACvE,WAAW,EAAE;8BACa;KAC3B,CAAC;IACD,IAAA,aAAI,EAAC,wBAAwB,CAAC;;IAE5B,WAAA,IAAA,aAAI,GAAE,CAAA;IACN,WAAA,IAAA,YAAG,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;;qCADd,8BAAmB;;kDAcjC;yBA3DU,cAAc;IAF1B,IAAA,mBAAU,GAAE;IACZ,IAAA,iBAAO,EAAC,MAAM,CAAC;qCAGK,0BAAW;QACV,gCAAc;GAHvB,cAAc,CA4D1B"}
@@ -15,6 +15,7 @@ const user_module_1 = require("../../user/user.module");
15
15
  const typeorm_1 = require("@nestjs/typeorm");
16
16
  const oidc_user_entity_1 = require("./entities/oidc-user.entity");
17
17
  const session_module_1 = require("../session/session.module");
18
+ const configs_module_1 = require("../../configs/configs.module");
18
19
  let OidcModule = class OidcModule {
19
20
  };
20
21
  exports.OidcModule = OidcModule;
@@ -25,6 +26,7 @@ exports.OidcModule = OidcModule = __decorate([
25
26
  axios_1.HttpModule,
26
27
  (0, common_1.forwardRef)(() => user_module_1.UserModule),
27
28
  session_module_1.SessionModule,
29
+ configs_module_1.ConfigsModule,
28
30
  ],
29
31
  providers: [oidc_service_1.OidcService],
30
32
  controllers: [oidc_controller_1.OidcController],
@@ -1 +1 @@
1
- {"version":3,"file":"oidc.module.js","sourceRoot":"","sources":["../../../src/auth/oidc/oidc.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,uDAAmD;AACnD,iDAA6C;AAC7C,yCAA2C;AAC3C,wDAAgD;AAChD,6CAAgD;AAChD,kEAAuD;AACvD,8DAA0D;AAYnD,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAVtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,CAAC,2BAAQ,CAAC,CAAC;YACpC,kBAAU;YACV,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,8BAAa;SACd;QACD,SAAS,EAAE,CAAC,0BAAW,CAAC;QACxB,WAAW,EAAE,CAAC,gCAAc,CAAC;KAC9B,CAAC;GACW,UAAU,CAAG"}
1
+ {"version":3,"file":"oidc.module.js","sourceRoot":"","sources":["../../../src/auth/oidc/oidc.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,uDAAmD;AACnD,iDAA6C;AAC7C,yCAA2C;AAC3C,wDAAgD;AAChD,6CAAgD;AAChD,kEAAuD;AACvD,8DAA0D;AAC1D,iEAAyD;AAalD,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAXtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,CAAC,2BAAQ,CAAC,CAAC;YACpC,kBAAU;YACV,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;YAC5B,8BAAa;YACb,8BAAa;SACd;QACD,SAAS,EAAE,CAAC,0BAAW,CAAC;QACxB,WAAW,EAAE,CAAC,gCAAc,CAAC;KAC9B,CAAC;GACW,UAAU,CAAG"}
@@ -4,7 +4,8 @@ import { User } from '~/user/entities/user.entity';
4
4
  import { DataSource, Repository } from 'typeorm';
5
5
  import { OidcUser } from './entities/oidc-user.entity';
6
6
  import { SessionService } from '../session/session.service';
7
- type OidcProvider = {
7
+ import { ConfigsService } from '~/configs/configs.service';
8
+ export type OidcProvider = {
8
9
  id: string;
9
10
  name: string;
10
11
  issuer: string;
@@ -17,16 +18,21 @@ export declare class OidcService {
17
18
  private http;
18
19
  private users;
19
20
  private sessions;
20
- constructor(oidcUserRepository: Repository<OidcUser>, dataSource: DataSource, http: HttpService, users: UserService, sessions: SessionService);
21
+ private configs;
22
+ constructor(oidcUserRepository: Repository<OidcUser>, dataSource: DataSource, http: HttpService, users: UserService, sessions: SessionService, configs: ConfigsService);
21
23
  getProviders(): OidcProvider[];
22
- getAuthorizationUrl(provider: OidcProvider, stateToken: string): Promise<string>;
23
- processAuthorizationCode(provider: OidcProvider, code: string): Promise<{
24
- accessToken: string;
24
+ getAuthorizationUrl(provider: OidcProvider, stateToken: string, extraParams?: Record<string, string>): Promise<string>;
25
+ processAuthorizationCode({ provider, code, redirectUri, codeVerifier, }: {
26
+ provider: OidcProvider;
27
+ code: string;
28
+ redirectUri?: string;
29
+ codeVerifier?: string;
30
+ }): Promise<{
31
+ authToken: string;
25
32
  user: User;
26
33
  }>;
27
- getUserInfo(endpoint: string, accessToken: string): Promise<Object>;
34
+ getUserInfo(endpoint: string, authToken: string): Promise<Object>;
28
35
  getUserFromSub(provider: OidcProvider, sub: string): Promise<User | null>;
29
36
  private getOpenIdConfiguration;
30
37
  private getJwk;
31
38
  }
32
- export {};