@social.dev/server-sdk 0.0.0-PLACEHOLDER-ci-test.35b8eea
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 +15 -0
- package/dist/app.module.d.ts +10 -0
- package/dist/app.module.js +89 -0
- package/dist/app.module.js.map +1 -0
- package/dist/auth/auth.controller.d.ts +8 -0
- package/dist/auth/auth.controller.js +69 -0
- package/dist/auth/auth.controller.js.map +1 -0
- package/dist/auth/auth.guard.d.ts +7 -0
- package/dist/auth/auth.guard.js +33 -0
- package/dist/auth/auth.guard.js.map +1 -0
- package/dist/auth/auth.middleware.d.ts +14 -0
- package/dist/auth/auth.middleware.js +60 -0
- package/dist/auth/auth.middleware.js.map +1 -0
- package/dist/auth/auth.module.d.ts +2 -0
- package/dist/auth/auth.module.js +37 -0
- package/dist/auth/auth.module.js.map +1 -0
- package/dist/auth/auth.service.d.ts +7 -0
- package/dist/auth/auth.service.js +29 -0
- package/dist/auth/auth.service.js.map +1 -0
- package/dist/auth/constants.d.ts +3 -0
- package/dist/auth/constants.js +7 -0
- package/dist/auth/constants.js.map +1 -0
- package/dist/auth/dto/login-success.dto.d.ts +5 -0
- package/dist/auth/dto/login-success.dto.js +40 -0
- package/dist/auth/dto/login-success.dto.js.map +1 -0
- package/dist/auth/dto/login.dto.d.ts +4 -0
- package/dist/auth/dto/login.dto.js +31 -0
- package/dist/auth/dto/login.dto.js.map +1 -0
- package/dist/auth/enums/auth-method.enum.d.ts +4 -0
- package/dist/auth/enums/auth-method.enum.js +9 -0
- package/dist/auth/enums/auth-method.enum.js.map +1 -0
- package/dist/auth/oidc/dto/requests.d.ts +6 -0
- package/dist/auth/oidc/dto/requests.js +47 -0
- package/dist/auth/oidc/dto/requests.js.map +1 -0
- package/dist/auth/oidc/dto/responses.d.ts +5 -0
- package/dist/auth/oidc/dto/responses.js +45 -0
- package/dist/auth/oidc/dto/responses.js.map +1 -0
- package/dist/auth/oidc/entities/oidc-user.entity.d.ts +8 -0
- package/dist/auth/oidc/entities/oidc-user.entity.js +47 -0
- package/dist/auth/oidc/entities/oidc-user.entity.js.map +1 -0
- package/dist/auth/oidc/oidc.controller.d.ts +16 -0
- package/dist/auth/oidc/oidc.controller.js +99 -0
- package/dist/auth/oidc/oidc.controller.js.map +1 -0
- package/dist/auth/oidc/oidc.module.d.ts +2 -0
- package/dist/auth/oidc/oidc.module.js +35 -0
- package/dist/auth/oidc/oidc.module.js.map +1 -0
- package/dist/auth/oidc/oidc.service.d.ts +38 -0
- package/dist/auth/oidc/oidc.service.js +189 -0
- package/dist/auth/oidc/oidc.service.js.map +1 -0
- package/dist/auth/session/session.controller.d.ts +9 -0
- package/dist/auth/session/session.controller.js +84 -0
- package/dist/auth/session/session.controller.js.map +1 -0
- package/dist/auth/session/session.module.d.ts +2 -0
- package/dist/auth/session/session.module.js +25 -0
- package/dist/auth/session/session.module.js.map +1 -0
- package/dist/auth/session/session.service.d.ts +18 -0
- package/dist/auth/session/session.service.js +62 -0
- package/dist/auth/session/session.service.js.map +1 -0
- package/dist/bootstrap.d.ts +2 -0
- package/dist/bootstrap.js +34 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/chat/chat.controller.d.ts +17 -0
- package/dist/chat/chat.controller.js +137 -0
- package/dist/chat/chat.controller.js.map +1 -0
- package/dist/chat/chat.module.d.ts +2 -0
- package/dist/chat/chat.module.js +36 -0
- package/dist/chat/chat.module.js.map +1 -0
- package/dist/chat/chat.service.d.ts +34 -0
- package/dist/chat/chat.service.js +141 -0
- package/dist/chat/chat.service.js.map +1 -0
- package/dist/chat/dto/create-conversation.dto.d.ts +10 -0
- package/dist/chat/dto/create-conversation.dto.js +43 -0
- package/dist/chat/dto/create-conversation.dto.js.map +1 -0
- package/dist/chat/dto/create-message.dto.d.ts +5 -0
- package/dist/chat/dto/create-message.dto.js +31 -0
- package/dist/chat/dto/create-message.dto.js.map +1 -0
- package/dist/chat/dto/index.d.ts +4 -0
- package/dist/chat/dto/index.js +24 -0
- package/dist/chat/dto/index.js.map +1 -0
- package/dist/chat/dto/responses.dto.d.ts +14 -0
- package/dist/chat/dto/responses.dto.js +64 -0
- package/dist/chat/dto/responses.dto.js.map +1 -0
- package/dist/chat/entities/conversation-member.entity.d.ts +9 -0
- package/dist/chat/entities/conversation-member.entity.js +59 -0
- package/dist/chat/entities/conversation-member.entity.js.map +1 -0
- package/dist/chat/entities/conversation.entity.d.ts +9 -0
- package/dist/chat/entities/conversation.entity.js +56 -0
- package/dist/chat/entities/conversation.entity.js.map +1 -0
- package/dist/chat/entities/message.entity.d.ts +9 -0
- package/dist/chat/entities/message.entity.js +51 -0
- package/dist/chat/entities/message.entity.js.map +1 -0
- package/dist/chat/enums/conversation-type.enum.d.ts +3 -0
- package/dist/chat/enums/conversation-type.enum.js +8 -0
- package/dist/chat/enums/conversation-type.enum.js.map +1 -0
- package/dist/common/decorators/api-paginated-response.d.ts +2 -0
- package/dist/common/decorators/api-paginated-response.js +26 -0
- package/dist/common/decorators/api-paginated-response.js.map +1 -0
- package/dist/common/dto/paginated-response.dto.d.ts +6 -0
- package/dist/common/dto/paginated-response.dto.js +45 -0
- package/dist/common/dto/paginated-response.dto.js.map +1 -0
- package/dist/common/injection-tokens.d.ts +2 -0
- package/dist/common/injection-tokens.js +6 -0
- package/dist/common/injection-tokens.js.map +1 -0
- package/dist/common/utils/ffmpeg.d.ts +1 -0
- package/dist/common/utils/ffmpeg.js +32 -0
- package/dist/common/utils/ffmpeg.js.map +1 -0
- package/dist/common/utils/ffprobe.d.ts +1 -0
- package/dist/common/utils/ffprobe.js +34 -0
- package/dist/common/utils/ffprobe.js.map +1 -0
- package/dist/common/utils/fs.d.ts +1 -0
- package/dist/common/utils/fs.js +12 -0
- package/dist/common/utils/fs.js.map +1 -0
- package/dist/common/utils/math.d.ts +1 -0
- package/dist/common/utils/math.js +8 -0
- package/dist/common/utils/math.js.map +1 -0
- package/dist/community/community.acl.d.ts +3 -0
- package/dist/community/community.acl.js +49 -0
- package/dist/community/community.acl.js.map +1 -0
- package/dist/community/community.controller.d.ts +24 -0
- package/dist/community/community.controller.js +277 -0
- package/dist/community/community.controller.js.map +1 -0
- package/dist/community/community.module.d.ts +2 -0
- package/dist/community/community.module.js +40 -0
- package/dist/community/community.module.js.map +1 -0
- package/dist/community/community.service.d.ts +44 -0
- package/dist/community/community.service.js +218 -0
- package/dist/community/community.service.js.map +1 -0
- package/dist/community/dto/community-members-response.dto.d.ts +5 -0
- package/dist/community/dto/community-members-response.dto.js +29 -0
- package/dist/community/dto/community-members-response.dto.js.map +1 -0
- package/dist/community/dto/community-response.dto.d.ts +14 -0
- package/dist/community/dto/community-response.dto.js +88 -0
- package/dist/community/dto/community-response.dto.js.map +1 -0
- package/dist/community/dto/create-community.dto.d.ts +3 -0
- package/dist/community/dto/create-community.dto.js +26 -0
- package/dist/community/dto/create-community.dto.js.map +1 -0
- package/dist/community/dto/index.d.ts +10 -0
- package/dist/community/dto/index.js +33 -0
- package/dist/community/dto/index.js.map +1 -0
- package/dist/community/dto/update-community.dto.d.ts +5 -0
- package/dist/community/dto/update-community.dto.js +13 -0
- package/dist/community/dto/update-community.dto.js.map +1 -0
- package/dist/community/entities/community-member.entity.d.ts +13 -0
- package/dist/community/entities/community-member.entity.js +74 -0
- package/dist/community/entities/community-member.entity.js.map +1 -0
- package/dist/community/entities/community.entity.d.ts +10 -0
- package/dist/community/entities/community.entity.js +61 -0
- package/dist/community/entities/community.entity.js.map +1 -0
- package/dist/community/enums/community-privacy.enum.d.ts +6 -0
- package/dist/community/enums/community-privacy.enum.js +11 -0
- package/dist/community/enums/community-privacy.enum.js.map +1 -0
- package/dist/community/enums/community-role.enum.d.ts +7 -0
- package/dist/community/enums/community-role.enum.js +12 -0
- package/dist/community/enums/community-role.enum.js.map +1 -0
- package/dist/community/enums/community-status.enum.d.ts +7 -0
- package/dist/community/enums/community-status.enum.js +12 -0
- package/dist/community/enums/community-status.enum.js.map +1 -0
- package/dist/configs/configs.controller.d.ts +4 -0
- package/dist/configs/configs.controller.js +40 -0
- package/dist/configs/configs.controller.js.map +1 -0
- package/dist/configs/configs.module.d.ts +2 -0
- package/dist/configs/configs.module.js +23 -0
- package/dist/configs/configs.module.js.map +1 -0
- package/dist/configs/configs.service.d.ts +22 -0
- package/dist/configs/configs.service.js +30 -0
- package/dist/configs/configs.service.js.map +1 -0
- package/dist/configs/dto/public-config.dto.d.ts +6 -0
- package/dist/configs/dto/public-config.dto.js +43 -0
- package/dist/configs/dto/public-config.dto.js.map +1 -0
- package/dist/core/acl/acl.factory.d.ts +23 -0
- package/dist/core/acl/acl.factory.js +42 -0
- package/dist/core/acl/acl.factory.js.map +1 -0
- package/dist/core/acl/acl.module.d.ts +6 -0
- package/dist/core/acl/acl.module.js +36 -0
- package/dist/core/acl/acl.module.js.map +1 -0
- package/dist/core/context/context.d.ts +11 -0
- package/dist/core/context/context.js +23 -0
- package/dist/core/context/context.js.map +1 -0
- package/dist/core/context/context.module.d.ts +2 -0
- package/dist/core/context/context.module.js +33 -0
- package/dist/core/context/context.module.js.map +1 -0
- package/dist/core/context/context.service.d.ts +4 -0
- package/dist/core/context/context.service.js +8 -0
- package/dist/core/context/context.service.js.map +1 -0
- package/dist/core/context/context.store.d.ts +8 -0
- package/dist/core/context/context.store.js +3 -0
- package/dist/core/context/context.store.js.map +1 -0
- package/dist/core/core.module.d.ts +2 -0
- package/dist/core/core.module.js +21 -0
- package/dist/core/core.module.js.map +1 -0
- package/dist/core/hook/hook.module.d.ts +4 -0
- package/dist/core/hook/hook.module.js +30 -0
- package/dist/core/hook/hook.module.js.map +1 -0
- package/dist/core/hook/hook.service.d.ts +7 -0
- package/dist/core/hook/hook.service.js +43 -0
- package/dist/core/hook/hook.service.js.map +1 -0
- package/dist/core/plugin/plugin.factory.d.ts +5 -0
- package/dist/core/plugin/plugin.factory.js +14 -0
- package/dist/core/plugin/plugin.factory.js.map +1 -0
- package/dist/core/plugin/plugin.module.d.ts +4 -0
- package/dist/core/plugin/plugin.module.js +35 -0
- package/dist/core/plugin/plugin.module.js.map +1 -0
- package/dist/db.d.ts +3 -0
- package/dist/db.js +22 -0
- package/dist/db.js.map +1 -0
- package/dist/file-storage/file-storage.module.d.ts +2 -0
- package/dist/file-storage/file-storage.module.js +21 -0
- package/dist/file-storage/file-storage.module.js.map +1 -0
- package/dist/file-storage/file-storage.service.d.ts +8 -0
- package/dist/file-storage/file-storage.service.js +50 -0
- package/dist/file-storage/file-storage.service.js.map +1 -0
- package/dist/file-storage/utils.d.ts +2 -0
- package/dist/file-storage/utils.js +8 -0
- package/dist/file-storage/utils.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/media/dto/media-response.dto.d.ts +7 -0
- package/dist/media/dto/media-response.dto.js +57 -0
- package/dist/media/dto/media-response.dto.js.map +1 -0
- package/dist/media/entities/audio.entity.d.ts +4 -0
- package/dist/media/entities/audio.entity.js +30 -0
- package/dist/media/entities/audio.entity.js.map +1 -0
- package/dist/media/entities/media.entity.d.ts +10 -0
- package/dist/media/entities/media.entity.js +57 -0
- package/dist/media/entities/media.entity.js.map +1 -0
- package/dist/media/entities/post-media.entity.d.ts +5 -0
- package/dist/media/entities/post-media.entity.js +31 -0
- package/dist/media/entities/post-media.entity.js.map +1 -0
- package/dist/media/media.acl.d.ts +3 -0
- package/dist/media/media.acl.js +14 -0
- package/dist/media/media.acl.js.map +1 -0
- package/dist/media/media.controller.d.ts +9 -0
- package/dist/media/media.controller.js +95 -0
- package/dist/media/media.controller.js.map +1 -0
- package/dist/media/media.module.d.ts +2 -0
- package/dist/media/media.module.js +39 -0
- package/dist/media/media.module.js.map +1 -0
- package/dist/media/media.service.d.ts +18 -0
- package/dist/media/media.service.js +134 -0
- package/dist/media/media.service.js.map +1 -0
- package/dist/migrations/1756201406330-Initial.d.ts +6 -0
- package/dist/migrations/1756201406330-Initial.js +85 -0
- package/dist/migrations/1756201406330-Initial.js.map +1 -0
- package/dist/migrations/1757061785934-PushNotificationTokens.d.ts +6 -0
- package/dist/migrations/1757061785934-PushNotificationTokens.js +20 -0
- package/dist/migrations/1757061785934-PushNotificationTokens.js.map +1 -0
- package/dist/network/dto/create-network.dto.d.ts +2 -0
- package/dist/network/dto/create-network.dto.js +11 -0
- package/dist/network/dto/create-network.dto.js.map +1 -0
- package/dist/network/dto/update-network.dto.d.ts +5 -0
- package/dist/network/dto/update-network.dto.js +13 -0
- package/dist/network/dto/update-network.dto.js.map +1 -0
- package/dist/network/entities/network.entity.d.ts +6 -0
- package/dist/network/entities/network.entity.js +42 -0
- package/dist/network/entities/network.entity.js.map +1 -0
- package/dist/network/network.middleware.d.ts +10 -0
- package/dist/network/network.middleware.js +43 -0
- package/dist/network/network.middleware.js.map +1 -0
- package/dist/network/network.module.d.ts +2 -0
- package/dist/network/network.module.js +25 -0
- package/dist/network/network.module.js.map +1 -0
- package/dist/network/network.service.d.ts +17 -0
- package/dist/network/network.service.js +67 -0
- package/dist/network/network.service.js.map +1 -0
- package/dist/notification/dto/delete-push-token.dto.d.ts +3 -0
- package/dist/notification/dto/delete-push-token.dto.js +26 -0
- package/dist/notification/dto/delete-push-token.dto.js.map +1 -0
- package/dist/notification/dto/register-push-token.dto.d.ts +5 -0
- package/dist/notification/dto/register-push-token.dto.js +38 -0
- package/dist/notification/dto/register-push-token.dto.js.map +1 -0
- package/dist/notification/entities/push-token.entity.d.ts +11 -0
- package/dist/notification/entities/push-token.entity.js +60 -0
- package/dist/notification/entities/push-token.entity.js.map +1 -0
- package/dist/notification/enums/push-service.enum.d.ts +6 -0
- package/dist/notification/enums/push-service.enum.js +11 -0
- package/dist/notification/enums/push-service.enum.js.map +1 -0
- package/dist/notification/hook-listener.service.d.ts +13 -0
- package/dist/notification/hook-listener.service.js +58 -0
- package/dist/notification/hook-listener.service.js.map +1 -0
- package/dist/notification/notification.module.d.ts +2 -0
- package/dist/notification/notification.module.js +34 -0
- package/dist/notification/notification.module.js.map +1 -0
- package/dist/notification/push-notification.controller.d.ts +9 -0
- package/dist/notification/push-notification.controller.js +69 -0
- package/dist/notification/push-notification.controller.js.map +1 -0
- package/dist/notification/push-notification.service.d.ts +22 -0
- package/dist/notification/push-notification.service.js +84 -0
- package/dist/notification/push-notification.service.js.map +1 -0
- package/dist/post/dto/create-post.dto.d.ts +7 -0
- package/dist/post/dto/create-post.dto.js +49 -0
- package/dist/post/dto/create-post.dto.js.map +1 -0
- package/dist/post/dto/post-response.dto.d.ts +14 -0
- package/dist/post/dto/post-response.dto.js +85 -0
- package/dist/post/dto/post-response.dto.js.map +1 -0
- package/dist/post/dto/update-post.dto.d.ts +5 -0
- package/dist/post/dto/update-post.dto.js +13 -0
- package/dist/post/dto/update-post.dto.js.map +1 -0
- package/dist/post/entities/post.entity.d.ts +18 -0
- package/dist/post/entities/post.entity.js +86 -0
- package/dist/post/entities/post.entity.js.map +1 -0
- package/dist/post/post.acl.d.ts +3 -0
- package/dist/post/post.acl.js +20 -0
- package/dist/post/post.acl.js.map +1 -0
- package/dist/post/post.controller.d.ts +15 -0
- package/dist/post/post.controller.js +154 -0
- package/dist/post/post.controller.js.map +1 -0
- package/dist/post/post.module.d.ts +2 -0
- package/dist/post/post.module.js +42 -0
- package/dist/post/post.module.js.map +1 -0
- package/dist/post/post.service.d.ts +27 -0
- package/dist/post/post.service.js +182 -0
- package/dist/post/post.service.js.map +1 -0
- package/dist/post/reaction/dto/index.d.ts +3 -0
- package/dist/post/reaction/dto/index.js +22 -0
- package/dist/post/reaction/dto/index.js.map +1 -0
- package/dist/post/reaction/entities/reaction.entity.d.ts +9 -0
- package/dist/post/reaction/entities/reaction.entity.js +51 -0
- package/dist/post/reaction/entities/reaction.entity.js.map +1 -0
- package/dist/post/reaction/reaction.controller.d.ts +8 -0
- package/dist/post/reaction/reaction.controller.js +63 -0
- package/dist/post/reaction/reaction.controller.js.map +1 -0
- package/dist/post/reaction/reaction.module.d.ts +2 -0
- package/dist/post/reaction/reaction.module.js +25 -0
- package/dist/post/reaction/reaction.module.js.map +1 -0
- package/dist/post/reaction/reaction.service.d.ts +13 -0
- package/dist/post/reaction/reaction.service.js +48 -0
- package/dist/post/reaction/reaction.service.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/user/constants.d.ts +1 -0
- package/dist/user/constants.js +5 -0
- package/dist/user/constants.js.map +1 -0
- package/dist/user/dto/create-user.dto.d.ts +2 -0
- package/dist/user/dto/create-user.dto.js +11 -0
- package/dist/user/dto/create-user.dto.js.map +1 -0
- package/dist/user/dto/update-user.dto.d.ts +5 -0
- package/dist/user/dto/update-user.dto.js +13 -0
- package/dist/user/dto/update-user.dto.js.map +1 -0
- package/dist/user/dto/user-response.dto.d.ts +5 -0
- package/dist/user/dto/user-response.dto.js +40 -0
- package/dist/user/dto/user-response.dto.js.map +1 -0
- package/dist/user/entities/user.entity.d.ts +11 -0
- package/dist/user/entities/user.entity.js +65 -0
- package/dist/user/entities/user.entity.js.map +1 -0
- package/dist/user/user.acl.d.ts +3 -0
- package/dist/user/user.acl.js +9 -0
- package/dist/user/user.acl.js.map +1 -0
- package/dist/user/user.controller.d.ts +9 -0
- package/dist/user/user.controller.js +73 -0
- package/dist/user/user.controller.js.map +1 -0
- package/dist/user/user.exceptions.d.ts +5 -0
- package/dist/user/user.exceptions.js +11 -0
- package/dist/user/user.exceptions.js.map +1 -0
- package/dist/user/user.module.d.ts +2 -0
- package/dist/user/user.module.js +38 -0
- package/dist/user/user.module.js.map +1 -0
- package/dist/user/user.service.d.ts +24 -0
- package/dist/user/user.service.js +99 -0
- package/dist/user/user.service.js.map +1 -0
- package/package.json +110 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { StreamableFile } from '@nestjs/common';
|
|
2
|
+
import { MediaService } from './media.service';
|
|
3
|
+
import { MediaResponseDto } from './dto/media-response.dto';
|
|
4
|
+
export declare class MediaController {
|
|
5
|
+
private readonly mediaService;
|
|
6
|
+
constructor(mediaService: MediaService);
|
|
7
|
+
uploadAudio(file: Express.Multer.File): Promise<MediaResponseDto>;
|
|
8
|
+
downloadMedia(id: string): Promise<StreamableFile>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.MediaController = void 0;
|
|
16
|
+
const openapi = require("@nestjs/swagger");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const auth_guard_1 = require("../auth/auth.guard");
|
|
19
|
+
const media_service_1 = require("./media.service");
|
|
20
|
+
const platform_express_1 = require("@nestjs/platform-express");
|
|
21
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
22
|
+
const media_response_dto_1 = require("./dto/media-response.dto");
|
|
23
|
+
const class_transformer_1 = require("class-transformer");
|
|
24
|
+
const context_1 = require("../core/context/context");
|
|
25
|
+
const audio_entity_1 = require("./entities/audio.entity");
|
|
26
|
+
let MediaController = class MediaController {
|
|
27
|
+
mediaService;
|
|
28
|
+
constructor(mediaService) {
|
|
29
|
+
this.mediaService = mediaService;
|
|
30
|
+
}
|
|
31
|
+
async uploadAudio(file) {
|
|
32
|
+
const audio = await this.mediaService.uploadAudioFile(file, context_1.Context.getUser());
|
|
33
|
+
return (0, class_transformer_1.plainToInstance)(media_response_dto_1.MediaResponseDto, audio);
|
|
34
|
+
}
|
|
35
|
+
async downloadMedia(id) {
|
|
36
|
+
const audio = await this.mediaService.findOne(+id, audio_entity_1.Audio);
|
|
37
|
+
if (!audio) {
|
|
38
|
+
throw new common_1.NotFoundException('Audio file not found');
|
|
39
|
+
}
|
|
40
|
+
const stream = await this.mediaService.downloadFile(audio);
|
|
41
|
+
if (!stream) {
|
|
42
|
+
throw new common_1.NotFoundException('Audio file stream not found');
|
|
43
|
+
}
|
|
44
|
+
const { Readable } = await import('stream');
|
|
45
|
+
const nodeStream = Readable.fromWeb(stream);
|
|
46
|
+
return new common_1.StreamableFile(nodeStream, {
|
|
47
|
+
type: 'audio/mpeg',
|
|
48
|
+
disposition: `attachment; filename="${audio.id}.mp3"`,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.MediaController = MediaController;
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, swagger_1.ApiOperation)({
|
|
55
|
+
summary: 'Upload & create an audio file ',
|
|
56
|
+
description: 'This Media API method creates and stores an audio file. If successful, a media entity is returned.',
|
|
57
|
+
}),
|
|
58
|
+
(0, common_1.UseGuards)(auth_guard_1.AuthGuard),
|
|
59
|
+
(0, common_1.Post)('media.audio.upload'),
|
|
60
|
+
(0, swagger_1.ApiConsumes)('multipart/form-data'),
|
|
61
|
+
(0, swagger_1.ApiBody)({
|
|
62
|
+
schema: {
|
|
63
|
+
type: 'object',
|
|
64
|
+
properties: {
|
|
65
|
+
file: {
|
|
66
|
+
type: 'string',
|
|
67
|
+
format: 'binary',
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
}),
|
|
72
|
+
(0, common_1.UseInterceptors)((0, platform_express_1.FileInterceptor)('file')),
|
|
73
|
+
openapi.ApiResponse({ status: 201, type: require("./dto/media-response.dto").MediaResponseDto }),
|
|
74
|
+
__param(0, (0, common_1.UploadedFile)()),
|
|
75
|
+
__metadata("design:type", Function),
|
|
76
|
+
__metadata("design:paramtypes", [Object]),
|
|
77
|
+
__metadata("design:returntype", Promise)
|
|
78
|
+
], MediaController.prototype, "uploadAudio", null);
|
|
79
|
+
__decorate([
|
|
80
|
+
(0, swagger_1.ApiOperation)({
|
|
81
|
+
summary: 'Downloads an audio file',
|
|
82
|
+
description: 'This Media API method will download an audio file',
|
|
83
|
+
}),
|
|
84
|
+
(0, common_1.Get)('media.audio.download'),
|
|
85
|
+
openapi.ApiResponse({ status: 200 }),
|
|
86
|
+
__param(0, (0, common_1.Query)('audio')),
|
|
87
|
+
__metadata("design:type", Function),
|
|
88
|
+
__metadata("design:paramtypes", [String]),
|
|
89
|
+
__metadata("design:returntype", Promise)
|
|
90
|
+
], MediaController.prototype, "downloadMedia", null);
|
|
91
|
+
exports.MediaController = MediaController = __decorate([
|
|
92
|
+
(0, common_1.Controller)(),
|
|
93
|
+
__metadata("design:paramtypes", [media_service_1.MediaService])
|
|
94
|
+
], MediaController);
|
|
95
|
+
//# sourceMappingURL=media.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.controller.js","sourceRoot":"","sources":["../../src/media/media.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAawB;AACxB,mDAA8C;AAC9C,mDAA+C;AAC/C,+DAA2D;AAE3D,6CAAqE;AACrE,iEAA4D;AAC5D,yDAAoD;AACpD,qDAAiD;AACjD,0DAAgD;AAGzC,IAAM,eAAe,GAArB,MAAM,eAAe;IACG;IAA7B,YAA6B,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAsBrD,AAAN,KAAK,CAAC,WAAW,CACC,IAAyB;QAEzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CACnD,IAAI,EACJ,iBAAO,CAAC,OAAO,EAAU,CAC1B,CAAC;QAEF,OAAO,IAAA,mCAAe,EAAC,qCAAgB,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAOK,AAAN,KAAK,CAAC,aAAa,CAAiB,EAAU;QAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,oBAAK,CAAC,CAAC;QAE1D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,0BAAiB,CAAC,sBAAsB,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE3D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,0BAAiB,CAAC,6BAA6B,CAAC,CAAC;QAC7D,CAAC;QAGD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAa,CAAC,CAAC;QAEnD,OAAO,IAAI,uBAAc,CAAC,UAAU,EAAE;YACpC,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,yBAAyB,KAAK,CAAC,EAAE,OAAO;SACtD,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA7DY,0CAAe;AAuBpB;IApBL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,gCAAgC;QACzC,WAAW,EACT,oGAAoG;KACvG,CAAC;IACD,IAAA,kBAAS,EAAC,sBAAS,CAAC;IACpB,IAAA,aAAI,EAAC,oBAAoB,CAAC;IAC1B,IAAA,qBAAW,EAAC,qBAAqB,CAAC;IAClC,IAAA,iBAAO,EAAC;QACP,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,QAAQ;iBACjB;aACF;SACF;KACF,CAAC;IACD,IAAA,wBAAe,EAAC,IAAA,kCAAe,EAAC,MAAM,CAAC,CAAC;;IAEtC,WAAA,IAAA,qBAAY,GAAE,CAAA;;;;kDAQhB;AAOK;IALL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,yBAAyB;QAClC,WAAW,EAAE,mDAAmD;KACjE,CAAC;IACD,IAAA,YAAG,EAAC,sBAAsB,CAAC;;IACP,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;;;;oDAqBlC;0BA5DU,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAEgC,4BAAY;GAD5C,eAAe,CA6D3B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MediaModule = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
15
|
+
const audio_entity_1 = require("./entities/audio.entity");
|
|
16
|
+
const media_entity_1 = require("./entities/media.entity");
|
|
17
|
+
const media_service_1 = require("./media.service");
|
|
18
|
+
const media_controller_1 = require("./media.controller");
|
|
19
|
+
const file_storage_module_1 = require("../file-storage/file-storage.module");
|
|
20
|
+
const network_module_1 = require("../network/network.module");
|
|
21
|
+
const acl_module_1 = require("../core/acl/acl.module");
|
|
22
|
+
const media_acl_1 = __importDefault(require("./media.acl"));
|
|
23
|
+
let MediaModule = class MediaModule {
|
|
24
|
+
};
|
|
25
|
+
exports.MediaModule = MediaModule;
|
|
26
|
+
exports.MediaModule = MediaModule = __decorate([
|
|
27
|
+
(0, common_1.Module)({
|
|
28
|
+
imports: [
|
|
29
|
+
typeorm_1.TypeOrmModule.forFeature([audio_entity_1.Audio, media_entity_1.Media]),
|
|
30
|
+
file_storage_module_1.FileStorageModule,
|
|
31
|
+
network_module_1.NetworkModule,
|
|
32
|
+
acl_module_1.AclModule.forChild(media_acl_1.default),
|
|
33
|
+
],
|
|
34
|
+
controllers: [media_controller_1.MediaController],
|
|
35
|
+
providers: [media_service_1.MediaService],
|
|
36
|
+
exports: [media_service_1.MediaService],
|
|
37
|
+
})
|
|
38
|
+
], MediaModule);
|
|
39
|
+
//# sourceMappingURL=media.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.module.js","sourceRoot":"","sources":["../../src/media/media.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,0DAAgD;AAChD,0DAAgD;AAChD,mDAA+C;AAC/C,yDAAqD;AACrD,6EAAwE;AACxE,8DAAyD;AACzD,uDAAkD;AAClD,4DAAmC;AAa5B,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IAXvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,CAAC,oBAAK,EAAE,oBAAK,CAAC,CAAC;YACxC,uCAAiB;YACjB,8BAAa;YACb,sBAAS,CAAC,QAAQ,CAAC,mBAAQ,CAAC;SAC7B;QACD,WAAW,EAAE,CAAC,kCAAe,CAAC;QAC9B,SAAS,EAAE,CAAC,4BAAY,CAAC;QACzB,OAAO,EAAE,CAAC,4BAAY,CAAC;KACxB,CAAC;GACW,WAAW,CAAG"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Repository } from 'typeorm';
|
|
2
|
+
import { Media } from './entities/media.entity';
|
|
3
|
+
import { Audio } from './entities/audio.entity';
|
|
4
|
+
import { FileStorageService } from '../file-storage/file-storage.service';
|
|
5
|
+
import { User } from '~/user/entities/user.entity';
|
|
6
|
+
import { AclFactory } from '~/core/acl/acl.factory';
|
|
7
|
+
export declare class MediaService {
|
|
8
|
+
private readonly audioRepository;
|
|
9
|
+
private readonly fileStorage;
|
|
10
|
+
private readonly aclFactory;
|
|
11
|
+
constructor(audioRepository: Repository<Audio>, fileStorage: FileStorageService, aclFactory: AclFactory);
|
|
12
|
+
uploadAudioFile(file: Express.Multer.File, owner: User): Promise<Audio>;
|
|
13
|
+
downloadFile(media: Media | Audio): Promise<ReadableStream<any> | undefined>;
|
|
14
|
+
findAll(postId: number): Promise<Media[]>;
|
|
15
|
+
findOne(id: number, type: typeof Audio): Promise<Audio | null | undefined>;
|
|
16
|
+
update(id: number): string;
|
|
17
|
+
remove(id: number): string;
|
|
18
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.MediaService = void 0;
|
|
19
|
+
const common_1 = require("@nestjs/common");
|
|
20
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
21
|
+
const typeorm_2 = require("typeorm");
|
|
22
|
+
const audio_entity_1 = require("./entities/audio.entity");
|
|
23
|
+
const file_storage_service_1 = require("../file-storage/file-storage.service");
|
|
24
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
25
|
+
const ffprobe_1 = require("../common/utils/ffprobe");
|
|
26
|
+
const fs_1 = require("../common/utils/fs");
|
|
27
|
+
const ffmpeg_1 = require("../common/utils/ffmpeg");
|
|
28
|
+
const utils_1 = require("../file-storage/utils");
|
|
29
|
+
const context_1 = require("../core/context/context");
|
|
30
|
+
const acl_factory_1 = require("../core/acl/acl.factory");
|
|
31
|
+
let MediaService = class MediaService {
|
|
32
|
+
audioRepository;
|
|
33
|
+
fileStorage;
|
|
34
|
+
aclFactory;
|
|
35
|
+
constructor(audioRepository, fileStorage, aclFactory) {
|
|
36
|
+
this.audioRepository = audioRepository;
|
|
37
|
+
this.fileStorage = fileStorage;
|
|
38
|
+
this.aclFactory = aclFactory;
|
|
39
|
+
}
|
|
40
|
+
async uploadAudioFile(file, owner) {
|
|
41
|
+
const ownerDir = (0, utils_1.getUserDir)(owner) + 'audio';
|
|
42
|
+
const entity = this.audioRepository.create({
|
|
43
|
+
network: owner.network,
|
|
44
|
+
owner: owner,
|
|
45
|
+
durationSecs: 0,
|
|
46
|
+
sizeBytes: 0,
|
|
47
|
+
});
|
|
48
|
+
const { id } = await this.audioRepository.save(entity);
|
|
49
|
+
await this.fileStorage.putFile(file.buffer, ownerDir + `/${id}/input.mp3`, 'audio/mp3');
|
|
50
|
+
const input = (0, fs_1.tmpFile)() + '.webm';
|
|
51
|
+
const output = (0, fs_1.tmpFile)() + '.mp3';
|
|
52
|
+
try {
|
|
53
|
+
await node_fs_1.default.promises.writeFile(input, file.buffer);
|
|
54
|
+
let durationSecs, sizeBytes = file.size;
|
|
55
|
+
try {
|
|
56
|
+
const info = await (0, ffprobe_1.ffprobe)(input);
|
|
57
|
+
console.log(info);
|
|
58
|
+
durationSecs = Math.round(info['streams'][0]['duration'] || 0);
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
console.error(err);
|
|
62
|
+
throw new common_1.InternalServerErrorException(500, 'Unable to get information about the uploaded file');
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
await (0, ffmpeg_1.ffmpeg)(input, output, '-map 0:a');
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
console.error(err);
|
|
69
|
+
throw new common_1.InternalServerErrorException(500, 'Unable to convert the uploaded file');
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
await this.fileStorage.putFile(await node_fs_1.default.promises.readFile(output), ownerDir + `/${id}/output.mp3`, 'audio/mp3');
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
console.error(err);
|
|
76
|
+
throw new common_1.InternalServerErrorException(500, 'Unable to upload the converted file to the file storage service');
|
|
77
|
+
}
|
|
78
|
+
await this.audioRepository.update(id, {
|
|
79
|
+
pathname: ownerDir + `/${id}/output.mp3`,
|
|
80
|
+
durationSecs,
|
|
81
|
+
sizeBytes,
|
|
82
|
+
});
|
|
83
|
+
return { ...entity, id };
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
throw err;
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
await node_fs_1.default.promises.unlink(input);
|
|
90
|
+
await node_fs_1.default.promises.unlink(output);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
downloadFile(media) {
|
|
94
|
+
return this.fileStorage.getFile(media.pathname);
|
|
95
|
+
}
|
|
96
|
+
async findAll(postId) {
|
|
97
|
+
const acl = this.aclFactory.withUser(context_1.Context.getUser());
|
|
98
|
+
const media = await this.audioRepository.findBy({
|
|
99
|
+
post: { id: postId },
|
|
100
|
+
network: { id: context_1.Context.getNetwork().id },
|
|
101
|
+
});
|
|
102
|
+
return media.filter((media) => acl.can(acl_factory_1.Action.Read, media));
|
|
103
|
+
}
|
|
104
|
+
async findOne(id, type) {
|
|
105
|
+
switch (type) {
|
|
106
|
+
case audio_entity_1.Audio:
|
|
107
|
+
const audio = await this.audioRepository.findOneBy({
|
|
108
|
+
id: id,
|
|
109
|
+
network: { id: context_1.Context.getNetwork().id },
|
|
110
|
+
});
|
|
111
|
+
if (this.aclFactory
|
|
112
|
+
.withUser(context_1.Context.getUser())
|
|
113
|
+
.can(acl_factory_1.Action.Read, audio)) {
|
|
114
|
+
return audio;
|
|
115
|
+
}
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
update(id) {
|
|
120
|
+
return `This action updates a #${id} media`;
|
|
121
|
+
}
|
|
122
|
+
remove(id) {
|
|
123
|
+
return `This action removes a #${id} media`;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
exports.MediaService = MediaService;
|
|
127
|
+
exports.MediaService = MediaService = __decorate([
|
|
128
|
+
(0, common_1.Injectable)(),
|
|
129
|
+
__param(0, (0, typeorm_1.InjectRepository)(audio_entity_1.Audio)),
|
|
130
|
+
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
131
|
+
file_storage_service_1.FileStorageService,
|
|
132
|
+
acl_factory_1.AclFactory])
|
|
133
|
+
], MediaService);
|
|
134
|
+
//# sourceMappingURL=media.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.service.js","sourceRoot":"","sources":["../../src/media/media.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Initial1756201406330 = void 0;
|
|
4
|
+
class Initial1756201406330 {
|
|
5
|
+
name = 'Initial1756201406330';
|
|
6
|
+
async up(queryRunner) {
|
|
7
|
+
await queryRunner.query(`CREATE TABLE "network" ("id" SERIAL NOT NULL, "name" character varying NOT NULL, "fqdn" character varying NOT NULL, CONSTRAINT "PK_8f8264c2d37cbbd8282ee9a3c97" PRIMARY KEY ("id"))`);
|
|
8
|
+
await queryRunner.query(`CREATE TYPE "public"."community_privacy_enum" AS ENUM('PUBLIC', 'PRIVATE', 'HIDDEN')`);
|
|
9
|
+
await queryRunner.query(`CREATE TABLE "community" ("id" SERIAL NOT NULL, "name" character varying NOT NULL, "privacy" "public"."community_privacy_enum" NOT NULL DEFAULT 'PUBLIC', "networkId" integer NOT NULL, CONSTRAINT "PK_cae794115a383328e8923de4193" PRIMARY KEY ("id"))`);
|
|
10
|
+
await queryRunner.query(`CREATE TYPE "public"."community_member_role_enum" AS ENUM('MEMBER', 'MODERATOR', 'ADMIN', 'OWNER')`);
|
|
11
|
+
await queryRunner.query(`CREATE TYPE "public"."community_member_status_enum" AS ENUM('ACTIVE', 'REQUESTED', 'INVITED', 'BANNED')`);
|
|
12
|
+
await queryRunner.query(`CREATE TABLE "community_member" ("communityId" integer NOT NULL, "userId" integer NOT NULL, "role" "public"."community_member_role_enum" NOT NULL, "status" "public"."community_member_status_enum" NOT NULL, "invitedById" integer, CONSTRAINT "PK_48777696f39fa15d444ab3bb435" PRIMARY KEY ("communityId", "userId"))`);
|
|
13
|
+
await queryRunner.query(`CREATE TABLE "user" ("id" SERIAL NOT NULL, "name" character varying(30) NOT NULL, "username" character varying(15) NOT NULL, "email" character varying(40) NOT NULL, "password" character varying, "networkId" integer, CONSTRAINT "username_unique" UNIQUE ("username"), CONSTRAINT "PK_cace4a159ff9f2512dd42373760" PRIMARY KEY ("id"))`);
|
|
14
|
+
await queryRunner.query(`CREATE TABLE "media" ("id" SERIAL NOT NULL, "pathname" character varying, "sizeBytes" integer NOT NULL, "deleted" boolean NOT NULL, "durationSecs" integer, "type" character varying NOT NULL, "networkId" integer NOT NULL, "ownerId" integer NOT NULL, "postId" integer, CONSTRAINT "PK_f4e0fcac36e050de337b670d8bd" PRIMARY KEY ("id"))`);
|
|
15
|
+
await queryRunner.query(`CREATE INDEX "IDX_637a0dd7f9068a9ca80decee00" ON "media" ("type") `);
|
|
16
|
+
await queryRunner.query(`CREATE TABLE "post_reaction" ("userId" integer NOT NULL, "postId" integer NOT NULL, "emoji" character varying, CONSTRAINT "PK_8f0e895fae24ab37d0f5eb53c2f" PRIMARY KEY ("userId", "postId"))`);
|
|
17
|
+
await queryRunner.query(`CREATE TABLE "post" ("id" SERIAL NOT NULL, "message" text, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "networkId" integer NOT NULL, "communityId" integer, "replyToId" integer, "ownerId" integer NOT NULL, CONSTRAINT "PK_be5fda3aac270b134ff9c21cdee" PRIMARY KEY ("id"))`);
|
|
18
|
+
await queryRunner.query(`CREATE TABLE "chat_conversation_member" ("conversationId" integer NOT NULL, "userId" integer NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "PK_f105c5e3b4e656950c6e72ef434" PRIMARY KEY ("conversationId", "userId"))`);
|
|
19
|
+
await queryRunner.query(`CREATE TYPE "public"."chat_conversation_type_enum" AS ENUM('ONE_ON_ONE')`);
|
|
20
|
+
await queryRunner.query(`CREATE TABLE "chat_conversation" ("id" SERIAL NOT NULL, "type" "public"."chat_conversation_type_enum" NOT NULL DEFAULT 'ONE_ON_ONE', "name" character varying, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "PK_0c5b7697e69f674eb983b1e83cc" PRIMARY KEY ("id"))`);
|
|
21
|
+
await queryRunner.query(`CREATE TABLE "chat_message" ("id" SERIAL NOT NULL, "text" character varying NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "conversationId" integer, "senderId" integer NOT NULL, CONSTRAINT "PK_3cc0d85193aade457d3077dd06b" PRIMARY KEY ("id"))`);
|
|
22
|
+
await queryRunner.query(`CREATE TABLE "oidc_user" ("providerId" character varying NOT NULL, "sub" character varying NOT NULL, "networkId" integer NOT NULL, "userId" integer, CONSTRAINT "REL_28242cc8b902f234841dc9d5e5" UNIQUE ("userId"), CONSTRAINT "PK_f1d744a99f9a8dc6566e11b1490" PRIMARY KEY ("providerId", "sub"))`);
|
|
23
|
+
await queryRunner.query(`ALTER TABLE "community" ADD CONSTRAINT "FK_dd53c7e12f12655271aef28717b" FOREIGN KEY ("networkId") REFERENCES "network"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
24
|
+
await queryRunner.query(`ALTER TABLE "community_member" ADD CONSTRAINT "FK_2951a66589069ef105a6784b494" FOREIGN KEY ("communityId") REFERENCES "community"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
25
|
+
await queryRunner.query(`ALTER TABLE "community_member" ADD CONSTRAINT "FK_b63d16b2a505c9f6376107acc2c" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
26
|
+
await queryRunner.query(`ALTER TABLE "community_member" ADD CONSTRAINT "FK_99327f5cec6d5d0423c7373b125" FOREIGN KEY ("invitedById") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
27
|
+
await queryRunner.query(`ALTER TABLE "user" ADD CONSTRAINT "FK_67c127a235009d85d73bedeea72" FOREIGN KEY ("networkId") REFERENCES "network"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
28
|
+
await queryRunner.query(`ALTER TABLE "media" ADD CONSTRAINT "FK_34b56128ffce9202f2b80ceb54e" FOREIGN KEY ("networkId") REFERENCES "network"("id") ON DELETE RESTRICT ON UPDATE NO ACTION`);
|
|
29
|
+
await queryRunner.query(`ALTER TABLE "media" ADD CONSTRAINT "FK_138d7762e76b7fee9de6db0f8eb" FOREIGN KEY ("ownerId") REFERENCES "user"("id") ON DELETE RESTRICT ON UPDATE NO ACTION`);
|
|
30
|
+
await queryRunner.query(`ALTER TABLE "media" ADD CONSTRAINT "FK_9dcde1b1308b5f22f34b8454e28" FOREIGN KEY ("postId") REFERENCES "post"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
31
|
+
await queryRunner.query(`ALTER TABLE "post_reaction" ADD CONSTRAINT "FK_5019c594c963270ac7a6bfafbec" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
32
|
+
await queryRunner.query(`ALTER TABLE "post_reaction" ADD CONSTRAINT "FK_5e7b98f3cea583c73a0bbbe0de1" FOREIGN KEY ("postId") REFERENCES "post"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
33
|
+
await queryRunner.query(`ALTER TABLE "post" ADD CONSTRAINT "FK_f03bf599ee6be89cb1551d4c749" FOREIGN KEY ("networkId") REFERENCES "network"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
34
|
+
await queryRunner.query(`ALTER TABLE "post" ADD CONSTRAINT "FK_eff802f635e95c8aef1998b4843" FOREIGN KEY ("communityId") REFERENCES "community"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
35
|
+
await queryRunner.query(`ALTER TABLE "post" ADD CONSTRAINT "FK_343ffc7266f858cc02c8397035e" FOREIGN KEY ("replyToId") REFERENCES "post"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
36
|
+
await queryRunner.query(`ALTER TABLE "post" ADD CONSTRAINT "FK_4490d00e1925ca046a1f52ddf04" FOREIGN KEY ("ownerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
37
|
+
await queryRunner.query(`ALTER TABLE "chat_conversation_member" ADD CONSTRAINT "FK_39828751da8c4d3e3c1845757cb" FOREIGN KEY ("conversationId") REFERENCES "chat_conversation"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
38
|
+
await queryRunner.query(`ALTER TABLE "chat_conversation_member" ADD CONSTRAINT "FK_500b5c2b79a7abbf504693e1071" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
39
|
+
await queryRunner.query(`ALTER TABLE "chat_message" ADD CONSTRAINT "FK_71d77a16df3f16e830d645f31f6" FOREIGN KEY ("conversationId") REFERENCES "chat_conversation"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
40
|
+
await queryRunner.query(`ALTER TABLE "chat_message" ADD CONSTRAINT "FK_a2be22c99b34156574f4e02d0a0" FOREIGN KEY ("senderId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
41
|
+
await queryRunner.query(`ALTER TABLE "oidc_user" ADD CONSTRAINT "FK_b1833282b002faf5ec48d9d1678" FOREIGN KEY ("networkId") REFERENCES "network"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
42
|
+
await queryRunner.query(`ALTER TABLE "oidc_user" ADD CONSTRAINT "FK_28242cc8b902f234841dc9d5e59" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
|
43
|
+
await queryRunner.query(`INSERT INTO "network" (name, fqdn) VALUES ('Social.Dev', '*')`);
|
|
44
|
+
}
|
|
45
|
+
async down(queryRunner) {
|
|
46
|
+
await queryRunner.query(`ALTER TABLE "oidc_user" DROP CONSTRAINT "FK_28242cc8b902f234841dc9d5e59"`);
|
|
47
|
+
await queryRunner.query(`ALTER TABLE "oidc_user" DROP CONSTRAINT "FK_b1833282b002faf5ec48d9d1678"`);
|
|
48
|
+
await queryRunner.query(`ALTER TABLE "chat_message" DROP CONSTRAINT "FK_a2be22c99b34156574f4e02d0a0"`);
|
|
49
|
+
await queryRunner.query(`ALTER TABLE "chat_message" DROP CONSTRAINT "FK_71d77a16df3f16e830d645f31f6"`);
|
|
50
|
+
await queryRunner.query(`ALTER TABLE "chat_conversation_member" DROP CONSTRAINT "FK_500b5c2b79a7abbf504693e1071"`);
|
|
51
|
+
await queryRunner.query(`ALTER TABLE "chat_conversation_member" DROP CONSTRAINT "FK_39828751da8c4d3e3c1845757cb"`);
|
|
52
|
+
await queryRunner.query(`ALTER TABLE "post" DROP CONSTRAINT "FK_4490d00e1925ca046a1f52ddf04"`);
|
|
53
|
+
await queryRunner.query(`ALTER TABLE "post" DROP CONSTRAINT "FK_343ffc7266f858cc02c8397035e"`);
|
|
54
|
+
await queryRunner.query(`ALTER TABLE "post" DROP CONSTRAINT "FK_eff802f635e95c8aef1998b4843"`);
|
|
55
|
+
await queryRunner.query(`ALTER TABLE "post" DROP CONSTRAINT "FK_f03bf599ee6be89cb1551d4c749"`);
|
|
56
|
+
await queryRunner.query(`ALTER TABLE "post_reaction" DROP CONSTRAINT "FK_5e7b98f3cea583c73a0bbbe0de1"`);
|
|
57
|
+
await queryRunner.query(`ALTER TABLE "post_reaction" DROP CONSTRAINT "FK_5019c594c963270ac7a6bfafbec"`);
|
|
58
|
+
await queryRunner.query(`ALTER TABLE "media" DROP CONSTRAINT "FK_9dcde1b1308b5f22f34b8454e28"`);
|
|
59
|
+
await queryRunner.query(`ALTER TABLE "media" DROP CONSTRAINT "FK_138d7762e76b7fee9de6db0f8eb"`);
|
|
60
|
+
await queryRunner.query(`ALTER TABLE "media" DROP CONSTRAINT "FK_34b56128ffce9202f2b80ceb54e"`);
|
|
61
|
+
await queryRunner.query(`ALTER TABLE "user" DROP CONSTRAINT "FK_67c127a235009d85d73bedeea72"`);
|
|
62
|
+
await queryRunner.query(`ALTER TABLE "community_member" DROP CONSTRAINT "FK_99327f5cec6d5d0423c7373b125"`);
|
|
63
|
+
await queryRunner.query(`ALTER TABLE "community_member" DROP CONSTRAINT "FK_b63d16b2a505c9f6376107acc2c"`);
|
|
64
|
+
await queryRunner.query(`ALTER TABLE "community_member" DROP CONSTRAINT "FK_2951a66589069ef105a6784b494"`);
|
|
65
|
+
await queryRunner.query(`ALTER TABLE "community" DROP CONSTRAINT "FK_dd53c7e12f12655271aef28717b"`);
|
|
66
|
+
await queryRunner.query(`DROP TABLE "oidc_user"`);
|
|
67
|
+
await queryRunner.query(`DROP TABLE "chat_message"`);
|
|
68
|
+
await queryRunner.query(`DROP TABLE "chat_conversation"`);
|
|
69
|
+
await queryRunner.query(`DROP TYPE "public"."chat_conversation_type_enum"`);
|
|
70
|
+
await queryRunner.query(`DROP TABLE "chat_conversation_member"`);
|
|
71
|
+
await queryRunner.query(`DROP TABLE "post"`);
|
|
72
|
+
await queryRunner.query(`DROP TABLE "post_reaction"`);
|
|
73
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_637a0dd7f9068a9ca80decee00"`);
|
|
74
|
+
await queryRunner.query(`DROP TABLE "media"`);
|
|
75
|
+
await queryRunner.query(`DROP TABLE "user"`);
|
|
76
|
+
await queryRunner.query(`DROP TABLE "community_member"`);
|
|
77
|
+
await queryRunner.query(`DROP TYPE "public"."community_member_status_enum"`);
|
|
78
|
+
await queryRunner.query(`DROP TYPE "public"."community_member_role_enum"`);
|
|
79
|
+
await queryRunner.query(`DROP TABLE "community"`);
|
|
80
|
+
await queryRunner.query(`DROP TYPE "public"."community_privacy_enum"`);
|
|
81
|
+
await queryRunner.query(`DROP TABLE "network"`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.Initial1756201406330 = Initial1756201406330;
|
|
85
|
+
//# sourceMappingURL=1756201406330-Initial.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1756201406330-Initial.js","sourceRoot":"","sources":["../../src/migrations/1756201406330-Initial.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PushNotificationTokens1757061785934 = void 0;
|
|
4
|
+
class PushNotificationTokens1757061785934 {
|
|
5
|
+
name = 'PushNotificationTokens1757061785934';
|
|
6
|
+
async up(queryRunner) {
|
|
7
|
+
await queryRunner.query(`CREATE TYPE "public"."push_notification_token_service_enum" AS ENUM('EXPO', 'FCM', 'APNS')`);
|
|
8
|
+
await queryRunner.query(`CREATE TABLE "push_notification_token" ("service" "public"."push_notification_token_service_enum" NOT NULL, "token" character varying NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), "networkId" integer NOT NULL, "userId" integer NOT NULL, CONSTRAINT "PK_0ea253e8437482d1858c6bdc4d0" PRIMARY KEY ("token"))`);
|
|
9
|
+
await queryRunner.query(`ALTER TABLE "push_notification_token" ADD CONSTRAINT "FK_93311d0f1b246e7d6aa7a35623f" FOREIGN KEY ("networkId") REFERENCES "network"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
10
|
+
await queryRunner.query(`ALTER TABLE "push_notification_token" ADD CONSTRAINT "FK_6ff0b307da861bb462b7f9843ce" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
11
|
+
}
|
|
12
|
+
async down(queryRunner) {
|
|
13
|
+
await queryRunner.query(`ALTER TABLE "push_notification_token" DROP CONSTRAINT "FK_6ff0b307da861bb462b7f9843ce"`);
|
|
14
|
+
await queryRunner.query(`ALTER TABLE "push_notification_token" DROP CONSTRAINT "FK_93311d0f1b246e7d6aa7a35623f"`);
|
|
15
|
+
await queryRunner.query(`DROP TABLE "push_notification_token"`);
|
|
16
|
+
await queryRunner.query(`DROP TYPE "public"."push_notification_token_service_enum"`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.PushNotificationTokens1757061785934 = PushNotificationTokens1757061785934;
|
|
20
|
+
//# sourceMappingURL=1757061785934-PushNotificationTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1757061785934-PushNotificationTokens.js","sourceRoot":"","sources":["../../src/migrations/1757061785934-PushNotificationTokens.ts"],"names":[],"mappings":";;;AAEA,MAAa,mCAAmC;IAC5C,IAAI,GAAG,qCAAqC,CAAA;IAErC,KAAK,CAAC,EAAE,CAAC,WAAwB;QACpC,MAAM,WAAW,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;QACtH,MAAM,WAAW,CAAC,KAAK,CAAC,yWAAyW,CAAC,CAAC;QACnY,MAAM,WAAW,CAAC,KAAK,CAAC,kLAAkL,CAAC,CAAC;QAC5M,MAAM,WAAW,CAAC,KAAK,CAAC,4KAA4K,CAAC,CAAC;IAC1M,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;QAClH,MAAM,WAAW,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;QAClH,MAAM,WAAW,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAChE,MAAM,WAAW,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;IACzF,CAAC;CAEJ;AAjBD,kFAiBC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateNetworkDto = void 0;
|
|
4
|
+
const openapi = require("@nestjs/swagger");
|
|
5
|
+
class CreateNetworkDto {
|
|
6
|
+
static _OPENAPI_METADATA_FACTORY() {
|
|
7
|
+
return {};
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.CreateNetworkDto = CreateNetworkDto;
|
|
11
|
+
//# sourceMappingURL=create-network.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-network.dto.js","sourceRoot":"","sources":["../../../src/network/dto/create-network.dto.ts"],"names":[],"mappings":";;;;AAAA,MAAa,gBAAgB;;;;CAAG;AAAhC,4CAAgC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateNetworkDto = void 0;
|
|
4
|
+
const openapi = require("@nestjs/swagger");
|
|
5
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
6
|
+
const create_network_dto_1 = require("./create-network.dto");
|
|
7
|
+
class UpdateNetworkDto extends (0, swagger_1.PartialType)(create_network_dto_1.CreateNetworkDto) {
|
|
8
|
+
static _OPENAPI_METADATA_FACTORY() {
|
|
9
|
+
return {};
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.UpdateNetworkDto = UpdateNetworkDto;
|
|
13
|
+
//# sourceMappingURL=update-network.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-network.dto.js","sourceRoot":"","sources":["../../../src/network/dto/update-network.dto.ts"],"names":[],"mappings":";;;;AAAA,6CAA8C;AAC9C,6DAAwD;AAExD,MAAa,gBAAiB,SAAQ,IAAA,qBAAW,EAAC,qCAAgB,CAAC;;;;CAAG;AAAtE,4CAAsE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
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.Network = void 0;
|
|
13
|
+
const openapi = require("@nestjs/swagger");
|
|
14
|
+
const typeorm_1 = require("typeorm");
|
|
15
|
+
let Network = class Network {
|
|
16
|
+
id;
|
|
17
|
+
name;
|
|
18
|
+
fqdn;
|
|
19
|
+
getBaseUrl() {
|
|
20
|
+
return `https://${this.fqdn}/`;
|
|
21
|
+
}
|
|
22
|
+
static _OPENAPI_METADATA_FACTORY() {
|
|
23
|
+
return { id: { required: true, type: () => Number }, name: { required: true, type: () => String }, fqdn: { required: true, type: () => String } };
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
exports.Network = Network;
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, typeorm_1.PrimaryGeneratedColumn)(),
|
|
29
|
+
__metadata("design:type", Number)
|
|
30
|
+
], Network.prototype, "id", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, typeorm_1.Column)(),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], Network.prototype, "name", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, typeorm_1.Column)(),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], Network.prototype, "fqdn", void 0);
|
|
39
|
+
exports.Network = Network = __decorate([
|
|
40
|
+
(0, typeorm_1.Entity)()
|
|
41
|
+
], Network);
|
|
42
|
+
//# sourceMappingURL=network.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network.entity.js","sourceRoot":"","sources":["../../../src/network/entities/network.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCAA6E;AAGtE,IAAM,OAAO,GAAb,MAAM,OAAO;IAElB,EAAE,CAAS;IAMX,IAAI,CAAS;IAMb,IAAI,CAAS;IAKb,UAAU;QACR,OAAO,WAAW,IAAI,CAAC,IAAI,GAAG,CAAC;IACjC,CAAC;;;;CACF,CAAA;AAtBY,0BAAO;AAElB;IADC,IAAA,gCAAsB,GAAE;;mCACd;AAMX;IADC,IAAA,gBAAM,GAAE;;qCACI;AAMb;IADC,IAAA,gBAAM,GAAE;;qCACI;kBAdF,OAAO;IADnB,IAAA,gBAAM,GAAE;GACI,OAAO,CAsBnB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { NestMiddleware } from '@nestjs/common';
|
|
2
|
+
import { Request, Response, NextFunction } from 'express';
|
|
3
|
+
import { NetworkService } from './network.service';
|
|
4
|
+
import { ContextService } from '~/core/context/context.service';
|
|
5
|
+
export declare class NetworkContextMiddleware implements NestMiddleware {
|
|
6
|
+
private service;
|
|
7
|
+
private contextService;
|
|
8
|
+
constructor(service: NetworkService, contextService: ContextService);
|
|
9
|
+
use(req: Request, res: Response, next: NextFunction): Promise<void>;
|
|
10
|
+
}
|