@social.dev/server-sdk 0.0.1-alpha.40 → 0.0.1-alpha.42

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 (94) hide show
  1. package/README.md +33 -28
  2. package/dist/app.module.d.ts +3 -3
  3. package/dist/app.module.js +8 -5
  4. package/dist/app.module.js.map +1 -1
  5. package/dist/auth/auth.controller.d.ts +7 -1
  6. package/dist/auth/auth.controller.js +27 -2
  7. package/dist/auth/auth.controller.js.map +1 -1
  8. package/dist/auth/auth.module.js +2 -0
  9. package/dist/auth/auth.module.js.map +1 -1
  10. package/dist/auth/auth.service.d.ts +6 -1
  11. package/dist/auth/auth.service.js +17 -2
  12. package/dist/auth/auth.service.js.map +1 -1
  13. package/dist/auth/dto/login-success.dto.js +3 -0
  14. package/dist/auth/dto/login-success.dto.js.map +1 -1
  15. package/dist/auth/dto/register-success.dto.d.ts +3 -0
  16. package/dist/auth/dto/register-success.dto.js +12 -0
  17. package/dist/auth/dto/register-success.dto.js.map +1 -0
  18. package/dist/auth/dto/register.dto.d.ts +6 -0
  19. package/dist/auth/dto/register.dto.js +45 -0
  20. package/dist/auth/dto/register.dto.js.map +1 -0
  21. package/dist/bootstrap.js +3 -0
  22. package/dist/bootstrap.js.map +1 -1
  23. package/dist/chat/chat.module.js +2 -0
  24. package/dist/chat/chat.module.js.map +1 -1
  25. package/dist/chat/chat.service.d.ts +3 -1
  26. package/dist/chat/chat.service.js +14 -2
  27. package/dist/chat/chat.service.js.map +1 -1
  28. package/dist/community/avatar/avatar.controller.d.ts +11 -0
  29. package/dist/community/avatar/avatar.controller.js +90 -0
  30. package/dist/community/avatar/avatar.controller.js.map +1 -0
  31. package/dist/community/avatar/avatar.service.d.ts +13 -0
  32. package/dist/community/avatar/avatar.service.js +78 -0
  33. package/dist/community/avatar/avatar.service.js.map +1 -0
  34. package/dist/community/community.acl.js +4 -0
  35. package/dist/community/community.acl.js.map +1 -1
  36. package/dist/community/community.controller.d.ts +3 -1
  37. package/dist/community/community.controller.js +14 -1
  38. package/dist/community/community.controller.js.map +1 -1
  39. package/dist/community/community.module.js +6 -2
  40. package/dist/community/community.module.js.map +1 -1
  41. package/dist/community/community.service.d.ts +2 -2
  42. package/dist/community/community.service.js +34 -4
  43. package/dist/community/community.service.js.map +1 -1
  44. package/dist/community/dto/community-response.dto.d.ts +5 -1
  45. package/dist/community/dto/community-response.dto.js +32 -1
  46. package/dist/community/dto/community-response.dto.js.map +1 -1
  47. package/dist/community/dto/create-community.dto.d.ts +2 -0
  48. package/dist/community/dto/create-community.dto.js +14 -2
  49. package/dist/community/dto/create-community.dto.js.map +1 -1
  50. package/dist/community/dto/update-community.dto.d.ts +2 -0
  51. package/dist/community/dto/update-community.dto.js +15 -1
  52. package/dist/community/dto/update-community.dto.js.map +1 -1
  53. package/dist/community/entities/community-member.entity.js +1 -0
  54. package/dist/community/entities/community-member.entity.js.map +1 -1
  55. package/dist/community/entities/community.entity.d.ts +2 -0
  56. package/dist/community/entities/community.entity.js +11 -1
  57. package/dist/community/entities/community.entity.js.map +1 -1
  58. package/dist/configs/configs.service.d.ts +3 -0
  59. package/dist/configs/configs.service.js.map +1 -1
  60. package/dist/core/event-stream/event-stream-processor.interface.d.ts +8 -0
  61. package/dist/core/event-stream/event-stream-processor.interface.js +3 -0
  62. package/dist/core/event-stream/event-stream-processor.interface.js.map +1 -0
  63. package/dist/core/event-stream/event-stream-processor.service.d.ts +13 -0
  64. package/dist/core/event-stream/event-stream-processor.service.js +55 -0
  65. package/dist/core/event-stream/event-stream-processor.service.js.map +1 -0
  66. package/dist/core/event-stream/event-stream.module.d.ts +11 -0
  67. package/dist/core/event-stream/event-stream.module.js +49 -0
  68. package/dist/core/event-stream/event-stream.module.js.map +1 -0
  69. package/dist/core/event-stream/event-stream.service.d.ts +16 -0
  70. package/dist/core/event-stream/event-stream.service.js +100 -0
  71. package/dist/core/event-stream/event-stream.service.js.map +1 -0
  72. package/dist/core/event-stream/types.d.ts +2 -0
  73. package/dist/core/event-stream/types.js +3 -0
  74. package/dist/core/event-stream/types.js.map +1 -0
  75. package/dist/db.js +1 -0
  76. package/dist/db.js.map +1 -1
  77. package/dist/file-storage/file-storage.service.js.map +1 -1
  78. package/dist/file-storage/utils.d.ts +2 -0
  79. package/dist/file-storage/utils.js +9 -2
  80. package/dist/file-storage/utils.js.map +1 -1
  81. package/dist/migrations/1759757532702-UpdateCommunityCascades.d.ts +6 -0
  82. package/dist/migrations/1759757532702-UpdateCommunityCascades.js +20 -0
  83. package/dist/migrations/1759757532702-UpdateCommunityCascades.js.map +1 -0
  84. package/dist/migrations/1759766474808-UpdateCommunityTimestamps.d.ts +6 -0
  85. package/dist/migrations/1759766474808-UpdateCommunityTimestamps.js +16 -0
  86. package/dist/migrations/1759766474808-UpdateCommunityTimestamps.js.map +1 -0
  87. package/dist/post/entities/post.entity.js +1 -1
  88. package/dist/post/entities/post.entity.js.map +1 -1
  89. package/dist/tsconfig.build.tsbuildinfo +1 -1
  90. package/dist/user/avatar/avatar.service.js +12 -1
  91. package/dist/user/avatar/avatar.service.js.map +1 -1
  92. package/dist/user/user.service.js +1 -1
  93. package/dist/user/user.service.js.map +1 -1
  94. package/package.json +4 -2
package/README.md CHANGED
@@ -5,6 +5,7 @@ Server SDK for Social.dev - A comprehensive NestJS-based framework for building
5
5
  ## Overview
6
6
 
7
7
  The `@social.dev/server-sdk` package provides:
8
+
8
9
  - 🏗️ **NestJS Framework** - Built on top of NestJS 11 for enterprise-grade applications
9
10
  - 🔐 **Authentication System** - Multiple auth methods including OIDC, JWT, and cookie-based sessions
10
11
  - 💾 **Database Integration** - TypeORM with PostgreSQL support and migration tools
@@ -66,7 +67,7 @@ import SocialDevAiPlugin from '@social.dev/plugin-ai';
66
67
  PluginFactory.addPlugin(
67
68
  SocialDevAiPlugin.forRoot({
68
69
  userIds: [3], // User IDs that can access AI features
69
- })
70
+ }),
70
71
  );
71
72
 
72
73
  // Bootstrap the server with comprehensive configuration
@@ -87,7 +88,7 @@ bootstrap({
87
88
  },
88
89
  network: {
89
90
  domainAliasMap: {
90
- 'localhost': 1,
91
+ localhost: 1,
91
92
  'dev.example.com': 2,
92
93
  'staging.example.com': 3,
93
94
  },
@@ -139,24 +140,24 @@ interface BootstrapConfig {
139
140
  auth?: {
140
141
  // Available authentication methods
141
142
  methods: AuthMethodEnum[];
142
-
143
+
143
144
  // OIDC provider configuration
144
145
  oidc?: {
145
146
  providers: OidcProvider[];
146
147
  };
147
-
148
+
148
149
  // JWT configuration
149
150
  jwt?: {
150
151
  secret?: string;
151
152
  expiresIn?: string;
152
153
  };
153
154
  };
154
-
155
+
155
156
  network?: {
156
157
  // Map domains to network IDs for multi-tenant support
157
158
  domainAliasMap: { [domain: string]: number };
158
159
  };
159
-
160
+
160
161
  database?: {
161
162
  // Override default database configuration
162
163
  host?: string;
@@ -166,7 +167,7 @@ interface BootstrapConfig {
166
167
  database?: string;
167
168
  synchronize?: boolean; // Auto-sync schema (dev only!)
168
169
  };
169
-
170
+
170
171
  storage?: {
171
172
  // S3 configuration
172
173
  accessKeyId?: string;
@@ -193,12 +194,12 @@ enum AuthMethodEnum {
193
194
 
194
195
  // OIDC Provider configuration
195
196
  interface OidcProvider {
196
- id: string; // Unique identifier
197
- name: string; // Display name
198
- issuer: string; // OIDC issuer URL
199
- clientId: string; // OAuth client ID
197
+ id: string; // Unique identifier
198
+ name: string; // Display name
199
+ issuer: string; // OIDC issuer URL
200
+ clientId: string; // OAuth client ID
200
201
  clientSecret: string; // OAuth client secret
201
- scope?: string; // OAuth scopes (default: 'openid profile email')
202
+ scope?: string; // OAuth scopes (default: 'openid profile email')
202
203
  }
203
204
  ```
204
205
 
@@ -366,11 +367,13 @@ import { MyPlugin } from './plugins/my-plugin';
366
367
  PluginFactory.addPlugin(
367
368
  MyPlugin.forRoot({
368
369
  enabled: true,
369
- })
370
+ }),
370
371
  );
371
372
 
372
373
  // Then bootstrap the server
373
- bootstrap({ /* ... */ });
374
+ bootstrap({
375
+ /* ... */
376
+ });
374
377
  ```
375
378
 
376
379
  ## Database Migrations
@@ -383,8 +386,8 @@ pnpm build
383
386
 
384
387
  # Generate a new migration based on entity changes
385
388
  npx typeorm migration:generate \
386
- -d ./node_modules/@social.dev/server-sdk/dist/db.js \
387
- ./migrations/AddUserBio
389
+ -d ./dist/db.js \
390
+ ./src/migrations/NewMigration
388
391
  ```
389
392
 
390
393
  ### Running Migrations
@@ -424,7 +427,7 @@ export class CustomMigration1234567890 implements MigrationInterface {
424
427
  },
425
428
  ],
426
429
  }),
427
- true
430
+ true,
428
431
  );
429
432
  }
430
433
 
@@ -514,16 +517,18 @@ pnpm format
514
517
  ```javascript
515
518
  // ecosystem.config.js
516
519
  module.exports = {
517
- apps: [{
518
- name: 'social-dev-server',
519
- script: './dist/index.js',
520
- instances: 'max',
521
- exec_mode: 'cluster',
522
- env: {
523
- NODE_ENV: 'production',
524
- SOCIAL_DEV_SERVER_PORT: 3000,
520
+ apps: [
521
+ {
522
+ name: 'social-dev-server',
523
+ script: './dist/index.js',
524
+ instances: 'max',
525
+ exec_mode: 'cluster',
526
+ env: {
527
+ NODE_ENV: 'production',
528
+ SOCIAL_DEV_SERVER_PORT: 3000,
529
+ },
525
530
  },
526
- }],
531
+ ],
527
532
  };
528
533
  ```
529
534
 
@@ -657,7 +662,7 @@ import { PluginFactory } from '@social.dev/server-sdk/core/plugin/plugin.factory
657
662
  PluginFactory.addPlugin(
658
663
  SocialDevAiPlugin.forRoot({
659
664
  userIds: [3],
660
- })
665
+ }),
661
666
  );
662
667
 
663
668
  // Initialize the server
@@ -721,4 +726,4 @@ MIT
721
726
 
722
727
  - [Documentation](https://docs.social.dev)
723
728
  - [GitHub Issues](https://github.com/socialdotdev/social.dev/issues)
724
- - [Discord Community](https://discord.gg/socialdev)
729
+ - [Discord Community](https://discord.gg/socialdev)
@@ -1,10 +1,10 @@
1
1
  import { MiddlewareConsumer, NestModule } from '@nestjs/common';
2
2
  import { ContextService } from './core/context/context.service';
3
- import { DataSource } from 'typeorm';
3
+ import { EventStreamService } from './core/event-stream/event-stream.service';
4
4
  export declare class AppModule implements NestModule {
5
5
  private readonly contextService;
6
- private readonly dataSource;
7
- constructor(contextService: ContextService, dataSource: DataSource);
6
+ private readonly eventStream;
7
+ constructor(contextService: ContextService, eventStream: EventStreamService);
8
8
  onModuleInit(): void;
9
9
  configure(consumer: MiddlewareConsumer): void;
10
10
  }
@@ -31,18 +31,20 @@ const context_service_1 = require("./core/context/context.service");
31
31
  const chat_module_1 = require("./chat/chat.module");
32
32
  const core_module_1 = require("./core/core.module");
33
33
  const context_module_1 = require("./core/context/context.module");
34
- const typeorm_2 = require("typeorm");
35
34
  const db_1 = __importDefault(require("./db"));
36
35
  const notification_module_1 = require("./notification/notification.module");
36
+ const event_stream_module_1 = require("./core/event-stream/event-stream.module");
37
+ const event_stream_service_1 = require("./core/event-stream/event-stream.service");
37
38
  let AppModule = class AppModule {
38
39
  contextService;
39
- dataSource;
40
- constructor(contextService, dataSource) {
40
+ eventStream;
41
+ constructor(contextService, eventStream) {
41
42
  this.contextService = contextService;
42
- this.dataSource = dataSource;
43
+ this.eventStream = eventStream;
43
44
  }
44
45
  onModuleInit() {
45
46
  context_1.Context.setService(this.contextService);
47
+ this.eventStream.createTopics();
46
48
  }
47
49
  configure(consumer) {
48
50
  consumer.apply(network_middleware_1.NetworkContextMiddleware).forRoutes('*');
@@ -69,6 +71,7 @@ exports.AppModule = AppModule = __decorate([
69
71
  media_module_1.MediaModule,
70
72
  chat_module_1.ChatModule,
71
73
  notification_module_1.NotificationModule,
74
+ event_stream_module_1.EventStreamModule.forRoot(),
72
75
  ],
73
76
  providers: [
74
77
  {
@@ -84,6 +87,6 @@ exports.AppModule = AppModule = __decorate([
84
87
  ],
85
88
  }),
86
89
  __metadata("design:paramtypes", [context_service_1.ContextService,
87
- typeorm_2.DataSource])
90
+ event_stream_service_1.EventStreamService])
88
91
  ], AppModule);
89
92
  //# sourceMappingURL=app.module.js.map
@@ -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;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
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAKwB;AACxB,6CAAgD;AAChD,2CAA8C;AAC9C,oDAAgD;AAChD,6DAAyD;AACzD,mEAA+D;AAC/D,oDAAgD;AAChD,uCAA0D;AAC1D,oDAAgD;AAChD,4DAAwD;AACxD,6DAAyD;AACzD,qEAAwE;AACxE,uDAAmD;AACnD,oDAAiD;AACjD,oEAAgE;AAChE,oDAAgD;AAChD,oDAAgD;AAChD,kEAA8D;AAE9D,8CAAmC;AACnC,4EAAwE;AACxE,iFAA4E;AAC5E,mFAA8E;AAmCvE,IAAM,SAAS,GAAf,MAAM,SAAS;IAED;IACA;IAFnB,YACmB,cAA8B,EAC9B,WAA+B;QAD/B,mBAAc,GAAd,cAAc,CAAgB;QAC9B,gBAAW,GAAX,WAAW,CAAoB;IAC/C,CAAC;IAEJ,YAAY;QAEV,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAExC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IAClC,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;AAjBY,8BAAS;oBAAT,SAAS;IAjCrB,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;YAClB,uCAAiB,CAAC,OAAO,EAAE;SAC5B;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;QACjB,yCAAkB;GAHvC,SAAS,CAiBrB"}
@@ -1,8 +1,14 @@
1
+ import { Response as ExpressResponse } from 'express';
1
2
  import { AuthService } from './auth.service';
2
3
  import { AuthMethodEnum } from './enums/auth-method.enum';
4
+ import { RegisterDto } from './dto/register.dto';
5
+ import { RegisterSuccessResponseDto } from './dto/register-success.dto';
6
+ import { SessionService } from './session/session.service';
3
7
  export declare class AuthController {
4
8
  private authService;
5
- constructor(authService: AuthService);
9
+ private sessionService;
10
+ constructor(authService: AuthService, sessionService: SessionService);
6
11
  listAuthMethod(): AuthMethodEnum[];
7
12
  getProfile(req: any): any;
13
+ register(dto: RegisterDto, res: ExpressResponse): Promise<RegisterSuccessResponseDto>;
8
14
  }
@@ -19,10 +19,16 @@ const auth_service_1 = require("./auth.service");
19
19
  const auth_guard_1 = require("./auth.guard");
20
20
  const auth_method_enum_1 = require("./enums/auth-method.enum");
21
21
  const swagger_1 = require("@nestjs/swagger");
22
+ const register_dto_1 = require("./dto/register.dto");
23
+ const user_response_dto_1 = require("../user/dto/user-response.dto");
24
+ const class_transformer_1 = require("class-transformer");
25
+ const session_service_1 = require("./session/session.service");
22
26
  let AuthController = class AuthController {
23
27
  authService;
24
- constructor(authService) {
28
+ sessionService;
29
+ constructor(authService, sessionService) {
25
30
  this.authService = authService;
31
+ this.sessionService = sessionService;
26
32
  }
27
33
  listAuthMethod() {
28
34
  return this.authService.getAuthMethods();
@@ -30,6 +36,15 @@ let AuthController = class AuthController {
30
36
  getProfile(req) {
31
37
  return req.user;
32
38
  }
39
+ async register(dto, res) {
40
+ const user = await this.authService.register(dto);
41
+ const { authToken } = await this.sessionService.create(user);
42
+ this.sessionService.setSessionCookie(authToken, res);
43
+ return {
44
+ authToken,
45
+ user: (0, class_transformer_1.plainToInstance)(user_response_dto_1.UserResponseDto, user),
46
+ };
47
+ }
33
48
  };
34
49
  exports.AuthController = AuthController;
35
50
  __decorate([
@@ -61,9 +76,19 @@ __decorate([
61
76
  __metadata("design:paramtypes", [Object]),
62
77
  __metadata("design:returntype", void 0)
63
78
  ], AuthController.prototype, "getProfile", null);
79
+ __decorate([
80
+ (0, common_1.Post)('auth.register'),
81
+ openapi.ApiResponse({ status: 201, type: require("./dto/register-success.dto").RegisterSuccessResponseDto }),
82
+ __param(0, (0, common_1.Body)()),
83
+ __param(1, (0, common_1.Response)({ passthrough: true })),
84
+ __metadata("design:type", Function),
85
+ __metadata("design:paramtypes", [register_dto_1.RegisterDto, Object]),
86
+ __metadata("design:returntype", Promise)
87
+ ], AuthController.prototype, "register", null);
64
88
  exports.AuthController = AuthController = __decorate([
65
89
  (0, swagger_1.ApiTags)('Auth'),
66
90
  (0, common_1.Controller)(),
67
- __metadata("design:paramtypes", [auth_service_1.AuthService])
91
+ __metadata("design:paramtypes", [auth_service_1.AuthService,
92
+ session_service_1.SessionService])
68
93
  ], AuthController);
69
94
  //# sourceMappingURL=auth.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/auth/auth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA2E;AAC3E,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"}
1
+ {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/auth/auth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAQwB;AAExB,iDAA6C;AAC7C,6CAAyC;AACzC,+DAA0D;AAC1D,6CAAqE;AACrE,qDAAiD;AACjD,qEAA+D;AAC/D,yDAAoD;AAEpD,+DAA2D;AAIpD,IAAM,cAAc,GAApB,MAAM,cAAc;IAEf;IACA;IAFV,YACU,WAAwB,EACxB,cAA8B;QAD9B,gBAAW,GAAX,WAAW,CAAa;QACxB,mBAAc,GAAd,cAAc,CAAgB;IACrC,CAAC;IAgBJ,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;IAC3C,CAAC;IAID,UAAU,CAAY,GAAG;QACvB,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IAGK,AAAN,KAAK,CAAC,QAAQ,CACJ,GAAgB,EACS,GAAoB;QAErD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE7D,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAErD,OAAO;YACL,SAAS;YACT,IAAI,EAAE,IAAA,mCAAe,EAAC,mCAAe,EAAE,IAAI,CAAC;SAC7C,CAAC;IACJ,CAAC;CACF,CAAA;AA9CY,wCAAc;AAoBzB;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;AAGK;IADL,IAAA,aAAI,EAAC,eAAe,CAAC;;IAEnB,WAAA,IAAA,aAAI,GAAE,CAAA;IACN,WAAA,IAAA,iBAAQ,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;;qCADnB,0BAAW;;8CAazB;yBA7CU,cAAc;IAF1B,IAAA,iBAAO,EAAC,MAAM,CAAC;IACf,IAAA,mBAAU,GAAE;qCAGY,0BAAW;QACR,gCAAc;GAH7B,cAAc,CA8C1B"}
@@ -15,6 +15,7 @@ const jwt_1 = require("@nestjs/jwt");
15
15
  const constants_1 = require("./constants");
16
16
  const oidc_module_1 = require("./oidc/oidc.module");
17
17
  const configs_module_1 = require("../configs/configs.module");
18
+ const session_module_1 = require("./session/session.module");
18
19
  let AuthModule = class AuthModule {
19
20
  };
20
21
  exports.AuthModule = AuthModule;
@@ -29,6 +30,7 @@ exports.AuthModule = AuthModule = __decorate([
29
30
  }),
30
31
  configs_module_1.ConfigsModule,
31
32
  oidc_module_1.OidcModule,
33
+ session_module_1.SessionModule,
32
34
  ],
33
35
  controllers: [auth_controller_1.AuthController],
34
36
  providers: [auth_service_1.AuthService],
@@ -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;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
+ {"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;AACzD,6DAAyD;AAiBlD,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAftB,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;YACV,8BAAa;SACd;QACD,WAAW,EAAE,CAAC,gCAAc,CAAC;QAC7B,SAAS,EAAE,CAAC,0BAAW,CAAC;KACzB,CAAC;GACW,UAAU,CAAG"}
@@ -1,7 +1,12 @@
1
+ import { UserService } from '../user/user.service';
2
+ import { User } from '~/user/entities/user.entity';
1
3
  import { AuthMethodEnum } from './enums/auth-method.enum';
2
4
  import { ConfigsService } from '~/configs/configs.service';
5
+ import { RegisterDto } from './dto/register.dto';
3
6
  export declare class AuthService {
4
7
  private configs;
5
- constructor(configs: ConfigsService);
8
+ private userService;
9
+ constructor(configs: ConfigsService, userService: UserService);
6
10
  getAuthMethods(): AuthMethodEnum[];
11
+ register({ username, name, password, email, }: RegisterDto): Promise<User>;
7
12
  }
@@ -11,19 +11,34 @@ 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");
14
15
  const configs_service_1 = require("../configs/configs.service");
16
+ const argon2_1 = require("@node-rs/argon2");
15
17
  let AuthService = class AuthService {
16
18
  configs;
17
- constructor(configs) {
19
+ userService;
20
+ constructor(configs, userService) {
18
21
  this.configs = configs;
22
+ this.userService = userService;
19
23
  }
20
24
  getAuthMethods() {
21
25
  return this.configs.get('auth')?.methods || [];
22
26
  }
27
+ async register({ username, name, password, email, }) {
28
+ const passwordHash = await (0, argon2_1.hash)(password, { memoryCost: 20480 });
29
+ return this.userService.create({
30
+ username,
31
+ email,
32
+ name,
33
+ password: passwordHash,
34
+ verified: true,
35
+ });
36
+ }
23
37
  };
24
38
  exports.AuthService = AuthService;
25
39
  exports.AuthService = AuthService = __decorate([
26
40
  (0, common_1.Injectable)(),
27
- __metadata("design:paramtypes", [configs_service_1.ConfigsService])
41
+ __metadata("design:paramtypes", [configs_service_1.ConfigsService,
42
+ user_service_1.UserService])
28
43
  ], AuthService);
29
44
  //# 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;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
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmE;AACnE,uDAAmD;AAInD,gEAA2D;AAE3D,4CAAuC;AAGhC,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEZ;IACA;IAFV,YACU,OAAuB,EACvB,WAAwB;QADxB,YAAO,GAAP,OAAO,CAAgB;QACvB,gBAAW,GAAX,WAAW,CAAa;IAC/B,CAAC;IAEJ,cAAc;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC;IACjD,CAAC;IAKD,KAAK,CAAC,QAAQ,CAAC,EACb,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,KAAK,GACO;QACZ,MAAM,YAAY,GAAG,MAAM,IAAA,aAAI,EAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC7B,QAAQ;YACR,KAAK;YACL,IAAI;YACJ,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA7BY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAGQ,gCAAc;QACV,0BAAW;GAHvB,WAAW,CA6BvB"}
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.LoginSuccessResponseDto = void 0;
13
13
  const openapi = require("@nestjs/swagger");
14
14
  const swagger_1 = require("@nestjs/swagger");
15
+ const class_transformer_1 = require("class-transformer");
15
16
  const user_response_dto_1 = require("../../user/dto/user-response.dto");
16
17
  class LoginSuccessResponseDto {
17
18
  authToken;
@@ -23,9 +24,11 @@ class LoginSuccessResponseDto {
23
24
  exports.LoginSuccessResponseDto = LoginSuccessResponseDto;
24
25
  __decorate([
25
26
  (0, swagger_1.ApiProperty)({ description: 'The session token' }),
27
+ (0, class_transformer_1.Expose)(),
26
28
  __metadata("design:type", String)
27
29
  ], LoginSuccessResponseDto.prototype, "authToken", void 0);
28
30
  __decorate([
31
+ (0, class_transformer_1.Expose)(),
29
32
  (0, swagger_1.ApiProperty)({
30
33
  description: 'User information',
31
34
  example: {
@@ -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,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
+ {"version":3,"file":"login-success.dto.js","sourceRoot":"","sources":["../../../src/auth/dto/login-success.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAA2C;AAC3C,wEAA+D;AAG/D,MAAa,uBAAuB;IAGlC,SAAS,CAAS;IAYlB,IAAI,CAAkB;;;;CACvB;AAhBD,0DAgBC;AAbC;IAFC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACjD,IAAA,0BAAM,GAAE;;0DACS;AAYlB;IAVC,IAAA,0BAAM,GAAE;IACR,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"}
@@ -0,0 +1,3 @@
1
+ import { LoginSuccessResponseDto } from './login-success.dto';
2
+ export declare class RegisterSuccessResponseDto extends LoginSuccessResponseDto {
3
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegisterSuccessResponseDto = void 0;
4
+ const openapi = require("@nestjs/swagger");
5
+ const login_success_dto_1 = require("./login-success.dto");
6
+ class RegisterSuccessResponseDto extends login_success_dto_1.LoginSuccessResponseDto {
7
+ static _OPENAPI_METADATA_FACTORY() {
8
+ return {};
9
+ }
10
+ }
11
+ exports.RegisterSuccessResponseDto = RegisterSuccessResponseDto;
12
+ //# sourceMappingURL=register-success.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-success.dto.js","sourceRoot":"","sources":["../../../src/auth/dto/register-success.dto.ts"],"names":[],"mappings":";;;;AAAA,2DAA8D;AAE9D,MAAa,0BAA2B,SAAQ,2CAAuB;;;;CAAG;AAA1E,gEAA0E"}
@@ -0,0 +1,6 @@
1
+ export declare class RegisterDto {
2
+ username: string;
3
+ name: string;
4
+ password: string;
5
+ email: string;
6
+ }
@@ -0,0 +1,45 @@
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.RegisterDto = void 0;
13
+ const openapi = require("@nestjs/swagger");
14
+ const swagger_1 = require("@nestjs/swagger");
15
+ class RegisterDto {
16
+ username;
17
+ name;
18
+ password;
19
+ email;
20
+ static _OPENAPI_METADATA_FACTORY() {
21
+ return { username: { required: true, type: () => String }, name: { required: true, type: () => String }, password: { required: true, type: () => String }, email: { required: true, type: () => String } };
22
+ }
23
+ }
24
+ exports.RegisterDto = RegisterDto;
25
+ __decorate([
26
+ (0, swagger_1.ApiProperty)({
27
+ description: 'Username (unique) to be assigned to the new user that will be created',
28
+ }),
29
+ __metadata("design:type", String)
30
+ ], RegisterDto.prototype, "username", void 0);
31
+ __decorate([
32
+ (0, swagger_1.ApiProperty)({
33
+ description: 'Display name that will show on the profile',
34
+ }),
35
+ __metadata("design:type", String)
36
+ ], RegisterDto.prototype, "name", void 0);
37
+ __decorate([
38
+ (0, swagger_1.ApiProperty)({ description: 'Secure phrase that will protect the account' }),
39
+ __metadata("design:type", String)
40
+ ], RegisterDto.prototype, "password", void 0);
41
+ __decorate([
42
+ (0, swagger_1.ApiProperty)({ description: 'Email associated with the account' }),
43
+ __metadata("design:type", String)
44
+ ], RegisterDto.prototype, "email", void 0);
45
+ //# sourceMappingURL=register.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.dto.js","sourceRoot":"","sources":["../../../src/auth/dto/register.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA8C;AAE9C,MAAa,WAAW;IAKtB,QAAQ,CAAS;IAKjB,IAAI,CAAS;IAGb,QAAQ,CAAS;IAGjB,KAAK,CAAS;;;;CACf;AAjBD,kCAiBC;AAZC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EACT,uEAAuE;KAC1E,CAAC;;6CACe;AAKjB;IAHC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,4CAA4C;KAC1D,CAAC;;yCACW;AAGb;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,6CAA6C,EAAE,CAAC;;6CAC3D;AAGjB;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC;;0CACpD"}
package/dist/bootstrap.js CHANGED
@@ -9,6 +9,7 @@ const swagger_1 = require("@nestjs/swagger");
9
9
  const app_module_1 = require("./app.module");
10
10
  const cookie_parser_1 = __importDefault(require("cookie-parser"));
11
11
  const configs_service_1 = require("./configs/configs.service");
12
+ const event_stream_processor_service_1 = require("./core/event-stream/event-stream-processor.service");
12
13
  async function bootstrap(configs) {
13
14
  configs_service_1.ConfigsService.init(configs);
14
15
  console.log('Environment check - SOCIAL_DEV_SERVER_PORT:', process.env.SOCIAL_DEV_SERVER_PORT);
@@ -30,5 +31,7 @@ async function bootstrap(configs) {
30
31
  await app.listen(port, '0.0.0.0');
31
32
  console.log(`🚀 Server is running on http://localhost:${port}`);
32
33
  console.log(`📚 Swagger documentation available at http://localhost:${port}/schema`);
34
+ const eventStreamProcessors = app.get(event_stream_processor_service_1.EventStreamProcessorService);
35
+ eventStreamProcessors.setAppRef(app).processAll();
33
36
  }
34
37
  //# sourceMappingURL=bootstrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";;;;;AAMA,8BAgCC;AAtCD,uCAA2C;AAC3C,6CAAiE;AACjE,6CAAyC;AACzC,kEAAyC;AACzC,+DAAoE;AAE7D,KAAK,UAAU,SAAS,CAAC,OAAgB;IAE9C,gCAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE7B,OAAO,CAAC,GAAG,CACT,6CAA6C,EAC7C,OAAO,CAAC,GAAG,CAAC,sBAAsB,CACnC,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,CAAC;IAEhD,GAAG,CAAC,UAAU,EAAE,CAAC;IAEjB,MAAM,MAAM,GAAG,IAAI,yBAAe,EAAE;SACjC,QAAQ,CAAC,YAAY,CAAC;SACtB,cAAc,CAAC,oBAAoB,CAAC;SACpC,UAAU,CAAC,KAAK,CAAC;SACjB,MAAM,CAAC,QAAQ,CAAC;SAChB,aAAa,EAAE;SACf,KAAK,EAAE,CAAC;IACX,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,uBAAa,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxE,uBAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE;QAClD,SAAS,EAAE,uCAAuC;KACnD,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,IAAA,uBAAY,GAAE,CAAC,CAAC;IAExB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,CAAC;IACpE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,4CAA4C,IAAI,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CACT,0DAA0D,IAAI,SAAS,CACxE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";;;;;AAOA,8BAsCC;AA7CD,uCAA2C;AAC3C,6CAAiE;AACjE,6CAAyC;AACzC,kEAAyC;AACzC,+DAAoE;AACpE,uGAAiG;AAE1F,KAAK,UAAU,SAAS,CAAC,OAAgB;IAE9C,gCAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE7B,OAAO,CAAC,GAAG,CACT,6CAA6C,EAC7C,OAAO,CAAC,GAAG,CAAC,sBAAsB,CACnC,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,CAAC,CAAC;IAEhD,GAAG,CAAC,UAAU,EAAE,CAAC;IAEjB,MAAM,MAAM,GAAG,IAAI,yBAAe,EAAE;SACjC,QAAQ,CAAC,YAAY,CAAC;SACtB,cAAc,CAAC,oBAAoB,CAAC;SACpC,UAAU,CAAC,KAAK,CAAC;SACjB,MAAM,CAAC,QAAQ,CAAC;SAChB,aAAa,EAAE;SACf,KAAK,EAAE,CAAC;IACX,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,uBAAa,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxE,uBAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE;QAClD,SAAS,EAAE,uCAAuC;KACnD,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,IAAA,uBAAY,GAAE,CAAC,CAAC;IAExB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,CAAC;IACpE,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,4CAA4C,IAAI,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CACT,0DAA0D,IAAI,SAAS,CACxE,CAAC;IAKF,MAAM,qBAAqB,GAAG,GAAG,CAAC,GAAG,CAAC,4DAA2B,CAAC,CAAC;IACnE,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;AACpD,CAAC"}
@@ -16,6 +16,7 @@ const message_entity_1 = require("./entities/message.entity");
16
16
  const conversation_member_entity_1 = require("./entities/conversation-member.entity");
17
17
  const hook_module_1 = require("../core/hook/hook.module");
18
18
  const push_notification_module_1 = require("../notification/push-notification.module");
19
+ const event_stream_module_1 = require("../core/event-stream/event-stream.module");
19
20
  let ChatModule = class ChatModule {
20
21
  };
21
22
  exports.ChatModule = ChatModule;
@@ -29,6 +30,7 @@ exports.ChatModule = ChatModule = __decorate([
29
30
  ]),
30
31
  hook_module_1.HookModule,
31
32
  push_notification_module_1.PushNotificationModule,
33
+ event_stream_module_1.EventStreamModule.forFeature({ topics: ['chat'] }),
32
34
  ],
33
35
  controllers: [chat_controller_1.ChatController],
34
36
  providers: [chat_service_1.ChatService],
@@ -1 +1 @@
1
- {"version":3,"file":"chat.module.js","sourceRoot":"","sources":["../../src/chat/chat.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,uDAAmD;AACnD,iDAA6C;AAC7C,6CAAgD;AAChD,wEAAkE;AAClE,8DAAwD;AACxD,sFAA+E;AAC/E,0DAAqD;AACrD,uFAAiF;AAgB1E,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAdtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC;gBACvB,sCAAgB;gBAChB,mDAAsB;gBACtB,4BAAW;aACZ,CAAC;YACF,wBAAU;YACV,iDAAsB;SACvB;QACD,WAAW,EAAE,CAAC,gCAAc,CAAC;QAC7B,SAAS,EAAE,CAAC,0BAAW,CAAC;QACxB,OAAO,EAAE,CAAC,0BAAW,CAAC;KACvB,CAAC;GACW,UAAU,CAAG"}
1
+ {"version":3,"file":"chat.module.js","sourceRoot":"","sources":["../../src/chat/chat.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,uDAAmD;AACnD,iDAA6C;AAC7C,6CAAgD;AAChD,wEAAkE;AAClE,8DAAwD;AACxD,sFAA+E;AAC/E,0DAAqD;AACrD,uFAAiF;AACjF,kFAA4E;AAiBrE,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAftB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC;gBACvB,sCAAgB;gBAChB,mDAAsB;gBACtB,4BAAW;aACZ,CAAC;YACF,wBAAU;YACV,iDAAsB;YACtB,uCAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;SACnD;QACD,WAAW,EAAE,CAAC,gCAAc,CAAC;QAC7B,SAAS,EAAE,CAAC,0BAAW,CAAC;QACxB,OAAO,EAAE,CAAC,0BAAW,CAAC;KACvB,CAAC;GACW,UAAU,CAAG"}
@@ -5,14 +5,16 @@ import { CreateConversationDto } from './dto/create-conversation.dto';
5
5
  import { ChatConversationMember } from './entities/conversation-member.entity';
6
6
  import { HookService } from '~/core/hook/hook.service';
7
7
  import { PushNotificationService } from '~/notification/push-notification.service';
8
+ import { EventStreamService } from '~/core/event-stream/event-stream.service';
8
9
  export declare class ChatService {
9
10
  private conversationRepositoy;
10
11
  private memberRepositoy;
11
12
  private messageRepositoy;
12
13
  private dataSource;
13
14
  private hookService;
15
+ private eventStream;
14
16
  private pushService;
15
- constructor(conversationRepositoy: Repository<ChatConversation>, memberRepositoy: Repository<ChatConversationMember>, messageRepositoy: Repository<ChatMessage>, dataSource: DataSource, hookService: HookService, pushService: PushNotificationService);
17
+ constructor(conversationRepositoy: Repository<ChatConversation>, memberRepositoy: Repository<ChatConversationMember>, messageRepositoy: Repository<ChatMessage>, dataSource: DataSource, hookService: HookService, eventStream: EventStreamService, pushService: PushNotificationService);
16
18
  private findExistingOneOnOneConversation;
17
19
  createConversation(dto: CreateConversationDto): Promise<ChatConversation>;
18
20
  getConversation(id: number): Promise<ChatConversation | null>;
@@ -24,19 +24,22 @@ const user_entity_1 = require("../user/entities/user.entity");
24
24
  const hook_service_1 = require("../core/hook/hook.service");
25
25
  const conversation_type_enum_1 = require("./enums/conversation-type.enum");
26
26
  const push_notification_service_1 = require("../notification/push-notification.service");
27
+ const event_stream_service_1 = require("../core/event-stream/event-stream.service");
27
28
  let ChatService = class ChatService {
28
29
  conversationRepositoy;
29
30
  memberRepositoy;
30
31
  messageRepositoy;
31
32
  dataSource;
32
33
  hookService;
34
+ eventStream;
33
35
  pushService;
34
- constructor(conversationRepositoy, memberRepositoy, messageRepositoy, dataSource, hookService, pushService) {
36
+ constructor(conversationRepositoy, memberRepositoy, messageRepositoy, dataSource, hookService, eventStream, pushService) {
35
37
  this.conversationRepositoy = conversationRepositoy;
36
38
  this.memberRepositoy = memberRepositoy;
37
39
  this.messageRepositoy = messageRepositoy;
38
40
  this.dataSource = dataSource;
39
41
  this.hookService = hookService;
42
+ this.eventStream = eventStream;
40
43
  this.pushService = pushService;
41
44
  }
42
45
  async findExistingOneOnOneConversation(otherUserId) {
@@ -104,7 +107,15 @@ let ChatService = class ChatService {
104
107
  sender: context_1.Context.getUser(),
105
108
  });
106
109
  message = await this.messageRepositoy.save(message);
107
- this.hookService.emit('MESSAGE_SEND', { message });
110
+ this.eventStream.send({
111
+ messages: [
112
+ {
113
+ topic: 'chat',
114
+ key: `message-${message.id}`,
115
+ value: JSON.stringify({ message }),
116
+ },
117
+ ],
118
+ });
108
119
  const [members] = await this.listMembers({ conversationId });
109
120
  for (let member of members) {
110
121
  if (member.userId === message.sender.id) {
@@ -158,6 +169,7 @@ exports.ChatService = ChatService = __decorate([
158
169
  typeorm_2.Repository,
159
170
  typeorm_2.DataSource,
160
171
  hook_service_1.HookService,
172
+ event_stream_service_1.EventStreamService,
161
173
  push_notification_service_1.PushNotificationService])
162
174
  ], ChatService);
163
175
  //# sourceMappingURL=chat.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../src/chat/chat.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,wEAAkE;AAClE,qCAAgE;AAChE,8DAAwD;AAGxD,sFAA+E;AAC/E,qDAAiD;AACjD,8DAAmD;AACnD,4DAAuD;AACvD,2EAAkE;AAClE,yFAAmF;AAG5E,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGZ;IAEA;IAEA;IACA;IACA;IACA;IATV,YAEU,qBAAmD,EAEnD,eAAmD,EAEnD,gBAAyC,EACzC,UAAsB,EACtB,WAAwB,EACxB,WAAoC;QAPpC,0BAAqB,GAArB,qBAAqB,CAA8B;QAEnD,oBAAe,GAAf,eAAe,CAAoC;QAEnD,qBAAgB,GAAhB,gBAAgB,CAAyB;QACzC,eAAU,GAAV,UAAU,CAAY;QACtB,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAyB;IAC3C,CAAC;IAKI,KAAK,CAAC,gCAAgC,CAC5C,WAAmB;QAEnB,MAAM,aAAa,GAAG,iBAAO,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC;QAE5C,OAAO,MAAM,IAAI,CAAC,qBAAqB;aACpC,kBAAkB,CAAC,cAAc,CAAC;aAClC,SAAS,CAAC,sBAAsB,EAAE,IAAI,CAAC;aACvC,SAAS,CAAC,sBAAsB,EAAE,IAAI,CAAC;aACvC,KAAK,CAAC,4BAA4B,EAAE,EAAE,aAAa,EAAE,CAAC;aACtD,QAAQ,CAAC,0BAA0B,EAAE,EAAE,WAAW,EAAE,CAAC;aACrD,QAAQ,CAAC,2BAA2B,EAAE;YACrC,IAAI,EAAE,yCAAgB,CAAC,QAAQ;SAChC,CAAC;aACD,MAAM,EAAE,CAAC;IACd,CAAC;IAKD,KAAK,CAAC,kBAAkB,CACtB,GAA0B;QAE1B,MAAM,aAAa,GAAG,iBAAO,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC;QAG5C,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,gCAAgC,CACtE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CACf,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAElC,IAAI,oBAAoB,EAAE,CAAC;gBACzB,OAAO,oBAAoB,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CACtC,cAAc,EACd,KAAK,EAAE,OAAO,EAAE,EAAE;YAEhB,IAAI,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,sCAAgB,EAAE;gBAClD,IAAI,EACF,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;oBACtB,CAAC,CAAC,yCAAgB,CAAC,QAAQ;oBAC3B,CAAC,CAAC,yCAAgB,CAAC,QAAQ;aAChC,CAAC,CAAC;YACH,YAAY,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,sCAAgB,EAAE,YAAY,CAAC,CAAC;YAGlE,MAAM,aAAa,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACnE,OAAO,CAAC,MAAM,CAAC,mDAAsB,EAAE;gBACrC,cAAc,EAAE,YAAY,CAAC,EAAE;gBAC/B,MAAM,EAAE,MAAM;aACf,CAAC,CACH,CAAC;YACF,MAAM,OAAO,CAAC,IAAI,CAAC,mDAAsB,EAAE,aAAa,CAAC,CAAC;YAG1D,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,WAAW,CAAC;oBACrB,cAAc,EAAE,YAAY,CAAC,EAAE;oBAC/B,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;iBACvB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC,CACF,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,eAAe,CAAC,EAAU;QAC9B,OAAO,IAAI,CAAC,sBAAsB,EAAE;aACjC,QAAQ,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC;aAC9B,MAAM,EAAE,CAAC;IACd,CAAC;IAKD,KAAK,CAAC,iBAAiB,CAAC,EACtB,KAAK,GAAG,GAAG,EACX,MAAM,GAAG,CAAC,GAIX;QACC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE5E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC;QAE7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAKD,KAAK,CAAC,WAAW,CAAC,EAChB,cAAc,GAGf;QACC,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;YACzC,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAChB,cAAc,EACd,IAAI,GAIL;QACC,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YACzC,YAAY,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE;YACpC,IAAI;YACJ,MAAM,EAAE,iBAAO,CAAC,OAAO,EAAE;SAC1B,CAAC,CAAC;QAEH,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAGnD,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;QAC7D,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACxC,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrE,IAAI,CAAC,WAAW,CAAC,QAAQ,CACvB;gBACE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;gBAC1B,IAAI,EAAE,IAAI;aACX,EACD,MAAM,CACP,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EACjB,cAAc,EACd,KAAK,GAAG,GAAG,EACX,MAAM,GAAG,CAAC,GAKX;QACC,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;YAC9C,KAAK,EAAE;gBACL,YAAY,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE;aACrC;YACD,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;SAC7B,CAAC,CAAC;IACL,CAAC;IAKO,sBAAsB;QAC5B,MAAM,MAAM,GAAG,iBAAO,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC;QAErC,OAAO,CACL,IAAI,CAAC,qBAAqB;aACvB,kBAAkB,CAAC,GAAG,CAAC;aAEvB,SAAS,CACR,mDAAsB,EACtB,YAAY,EACZ,kEAAkE,EAClE,EAAE,MAAM,EAAE,CACX;aACA,iBAAiB,CAChB,WAAW,EACX,SAAS,EACT,2BAA2B,EAC3B;YACE,MAAM;SACP,CACF;aACA,iBAAiB,CAAC,cAAc,EAAE,YAAY,CAAC;aAC/C,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC;aAEnC,SAAS,CACR,CAAC,QAAoD,EAAE,EAAE,CACvD,QAAQ;aACL,MAAM,CAAC,gDAAgD,CAAC;aACxD,IAAI,CAAC,mDAAsB,EAAE,iBAAiB,CAAC;aAC/C,SAAS,CAAC,kBAAI,EAAE,MAAM,EAAE,kCAAkC,CAAC;aAC3D,KAAK,CAAC,uCAAuC,CAAC;aAC9C,QAAQ,CAAC,mCAAmC,EAAE,EAAE,MAAM,EAAE,CAAC;aACzD,KAAK,CAAC,CAAC,CAAC,EACb,QAAQ,CACT,CACJ,CAAC;IACJ,CAAC;CACF,CAAA;AA7NY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,sCAAgB,CAAC,CAAA;IAElC,WAAA,IAAA,0BAAgB,EAAC,mDAAsB,CAAC,CAAA;IAExC,WAAA,IAAA,0BAAgB,EAAC,4BAAW,CAAC,CAAA;qCAHC,oBAAU;QAEhB,oBAAU;QAET,oBAAU;QAChB,oBAAU;QACT,0BAAW;QACX,mDAAuB;GAVnC,WAAW,CA6NvB"}
1
+ {"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../src/chat/chat.service.ts"],"names":[],"mappings":"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"}