@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.
- package/README.md +33 -28
- package/dist/app.module.d.ts +3 -3
- package/dist/app.module.js +8 -5
- package/dist/app.module.js.map +1 -1
- package/dist/auth/auth.controller.d.ts +7 -1
- package/dist/auth/auth.controller.js +27 -2
- package/dist/auth/auth.controller.js.map +1 -1
- package/dist/auth/auth.module.js +2 -0
- package/dist/auth/auth.module.js.map +1 -1
- package/dist/auth/auth.service.d.ts +6 -1
- package/dist/auth/auth.service.js +17 -2
- package/dist/auth/auth.service.js.map +1 -1
- package/dist/auth/dto/login-success.dto.js +3 -0
- package/dist/auth/dto/login-success.dto.js.map +1 -1
- package/dist/auth/dto/register-success.dto.d.ts +3 -0
- package/dist/auth/dto/register-success.dto.js +12 -0
- package/dist/auth/dto/register-success.dto.js.map +1 -0
- package/dist/auth/dto/register.dto.d.ts +6 -0
- package/dist/auth/dto/register.dto.js +45 -0
- package/dist/auth/dto/register.dto.js.map +1 -0
- package/dist/bootstrap.js +3 -0
- package/dist/bootstrap.js.map +1 -1
- package/dist/chat/chat.module.js +2 -0
- package/dist/chat/chat.module.js.map +1 -1
- package/dist/chat/chat.service.d.ts +3 -1
- package/dist/chat/chat.service.js +14 -2
- package/dist/chat/chat.service.js.map +1 -1
- package/dist/community/avatar/avatar.controller.d.ts +11 -0
- package/dist/community/avatar/avatar.controller.js +90 -0
- package/dist/community/avatar/avatar.controller.js.map +1 -0
- package/dist/community/avatar/avatar.service.d.ts +13 -0
- package/dist/community/avatar/avatar.service.js +78 -0
- package/dist/community/avatar/avatar.service.js.map +1 -0
- package/dist/community/community.acl.js +4 -0
- package/dist/community/community.acl.js.map +1 -1
- package/dist/community/community.controller.d.ts +3 -1
- package/dist/community/community.controller.js +14 -1
- package/dist/community/community.controller.js.map +1 -1
- package/dist/community/community.module.js +6 -2
- package/dist/community/community.module.js.map +1 -1
- package/dist/community/community.service.d.ts +2 -2
- package/dist/community/community.service.js +34 -4
- package/dist/community/community.service.js.map +1 -1
- package/dist/community/dto/community-response.dto.d.ts +5 -1
- package/dist/community/dto/community-response.dto.js +32 -1
- package/dist/community/dto/community-response.dto.js.map +1 -1
- package/dist/community/dto/create-community.dto.d.ts +2 -0
- package/dist/community/dto/create-community.dto.js +14 -2
- package/dist/community/dto/create-community.dto.js.map +1 -1
- package/dist/community/dto/update-community.dto.d.ts +2 -0
- package/dist/community/dto/update-community.dto.js +15 -1
- package/dist/community/dto/update-community.dto.js.map +1 -1
- package/dist/community/entities/community-member.entity.js +1 -0
- package/dist/community/entities/community-member.entity.js.map +1 -1
- package/dist/community/entities/community.entity.d.ts +2 -0
- package/dist/community/entities/community.entity.js +11 -1
- package/dist/community/entities/community.entity.js.map +1 -1
- package/dist/configs/configs.service.d.ts +3 -0
- package/dist/configs/configs.service.js.map +1 -1
- package/dist/core/event-stream/event-stream-processor.interface.d.ts +8 -0
- package/dist/core/event-stream/event-stream-processor.interface.js +3 -0
- package/dist/core/event-stream/event-stream-processor.interface.js.map +1 -0
- package/dist/core/event-stream/event-stream-processor.service.d.ts +13 -0
- package/dist/core/event-stream/event-stream-processor.service.js +55 -0
- package/dist/core/event-stream/event-stream-processor.service.js.map +1 -0
- package/dist/core/event-stream/event-stream.module.d.ts +11 -0
- package/dist/core/event-stream/event-stream.module.js +49 -0
- package/dist/core/event-stream/event-stream.module.js.map +1 -0
- package/dist/core/event-stream/event-stream.service.d.ts +16 -0
- package/dist/core/event-stream/event-stream.service.js +100 -0
- package/dist/core/event-stream/event-stream.service.js.map +1 -0
- package/dist/core/event-stream/types.d.ts +2 -0
- package/dist/core/event-stream/types.js +3 -0
- package/dist/core/event-stream/types.js.map +1 -0
- package/dist/db.js +1 -0
- package/dist/db.js.map +1 -1
- package/dist/file-storage/file-storage.service.js.map +1 -1
- package/dist/file-storage/utils.d.ts +2 -0
- package/dist/file-storage/utils.js +9 -2
- package/dist/file-storage/utils.js.map +1 -1
- package/dist/migrations/1759757532702-UpdateCommunityCascades.d.ts +6 -0
- package/dist/migrations/1759757532702-UpdateCommunityCascades.js +20 -0
- package/dist/migrations/1759757532702-UpdateCommunityCascades.js.map +1 -0
- package/dist/migrations/1759766474808-UpdateCommunityTimestamps.d.ts +6 -0
- package/dist/migrations/1759766474808-UpdateCommunityTimestamps.js +16 -0
- package/dist/migrations/1759766474808-UpdateCommunityTimestamps.js.map +1 -0
- package/dist/post/entities/post.entity.js +1 -1
- package/dist/post/entities/post.entity.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/user/avatar/avatar.service.js +12 -1
- package/dist/user/avatar/avatar.service.js.map +1 -1
- package/dist/user/user.service.js +1 -1
- package/dist/user/user.service.js.map +1 -1
- 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
|
-
|
|
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;
|
|
197
|
-
name: string;
|
|
198
|
-
issuer: string;
|
|
199
|
-
clientId: string;
|
|
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;
|
|
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 ./
|
|
387
|
-
./migrations/
|
|
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
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
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)
|
package/dist/app.module.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { MiddlewareConsumer, NestModule } from '@nestjs/common';
|
|
2
2
|
import { ContextService } from './core/context/context.service';
|
|
3
|
-
import {
|
|
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
|
|
7
|
-
constructor(contextService: ContextService,
|
|
6
|
+
private readonly eventStream;
|
|
7
|
+
constructor(contextService: ContextService, eventStream: EventStreamService);
|
|
8
8
|
onModuleInit(): void;
|
|
9
9
|
configure(consumer: MiddlewareConsumer): void;
|
|
10
10
|
}
|
package/dist/app.module.js
CHANGED
|
@@ -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
|
-
|
|
40
|
-
constructor(contextService,
|
|
40
|
+
eventStream;
|
|
41
|
+
constructor(contextService, eventStream) {
|
|
41
42
|
this.contextService = contextService;
|
|
42
|
-
this.
|
|
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
|
-
|
|
90
|
+
event_stream_service_1.EventStreamService])
|
|
88
91
|
], AppModule);
|
|
89
92
|
//# sourceMappingURL=app.module.js.map
|
package/dist/app.module.js.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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"}
|
package/dist/auth/auth.module.js
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
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;
|
|
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,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,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
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";;;;;
|
|
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"}
|
package/dist/chat/chat.module.js
CHANGED
|
@@ -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;
|
|
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.
|
|
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;
|
|
1
|
+
{"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../src/chat/chat.service.ts"],"names":[],"mappings":"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"}
|