@comasoft/nestjs 0.1.0 → 0.1.2
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 +2 -0
- package/dist/aws/aws-s3.service.js +158 -1
- package/dist/aws/aws.module.js +25 -1
- package/dist/aws/aws.service.js +21 -1
- package/dist/aws/constants/storage.constant.js +25 -1
- package/dist/aws/dto/create-s3-presigned.dto.js +78 -1
- package/dist/aws/dto/index.js +18 -1
- package/dist/aws/dto/response-s3-presigned.dto.js +110 -1
- package/dist/aws/index.js +20 -1
- package/dist/aws/types/s3.interface.js +2 -1
- package/dist/aws/types/storage.interface.js +2 -1
- package/dist/category/category.module.js +23 -1
- package/dist/category/category.service.js +124 -1
- package/dist/category/dto/create-category.dto.js +34 -1
- package/dist/category/dto/delete-category.dto.js +6 -1
- package/dist/category/dto/index.js +21 -1
- package/dist/category/dto/response-categories.dto.js +52 -1
- package/dist/category/dto/update-category-sort.dto.js +33 -1
- package/dist/category/dto/update-category.dto.js +9 -1
- package/dist/category/index.js +19 -1
- package/dist/comment/comment.module.js +23 -1
- package/dist/comment/comment.service.js +240 -1
- package/dist/comment/dto/create-comment.dto.js +41 -1
- package/dist/comment/dto/index.js +19 -1
- package/dist/comment/dto/response-comment.dto.js +97 -1
- package/dist/comment/dto/update-comment.dto.js +22 -1
- package/dist/comment/index.js +19 -1
- package/dist/database/entities/category.entity.js +70 -1
- package/dist/database/entities/comment.entity.js +77 -1
- package/dist/database/entities/config.entity.js +44 -1
- package/dist/database/entities/file.entity.js +91 -1
- package/dist/database/entities/index.js +26 -1
- package/dist/database/entities/like.entity.js +49 -1
- package/dist/database/entities/logs-audit.entity.js +72 -1
- package/dist/database/entities/logs-event.entity.js +72 -1
- package/dist/database/entities/notification-recipient.entity.js +74 -1
- package/dist/database/entities/notification.entity.js +69 -1
- package/dist/database/entities/role.entity.js +54 -1
- package/dist/decorators/api-custom-params.decorator.js +35 -1
- package/dist/decorators/auth.decorator.factory.js +33 -1
- package/dist/decorators/cookies.decorator.js +9 -1
- package/dist/decorators/custom-params.decorator.js +16 -1
- package/dist/decorators/index.js +24 -1
- package/dist/decorators/patch-body.decorator.js +38 -1
- package/dist/decorators/soft-delete.decorator.js +10 -1
- package/dist/decorators/timestamps.decorator.js +23 -1
- package/dist/decorators/user.decorator.js +8 -1
- package/dist/dto/auth-user-local.dto.js +26 -1
- package/dist/dto/auth-user-sso.dto.js +21 -1
- package/dist/dto/custom-params.dto.js +46 -1
- package/dist/dto/file.dto.js +70 -1
- package/dist/dto/index.js +26 -1
- package/dist/dto/jwt-user.dto.js +6 -1
- package/dist/dto/pagination.dto.js +36 -1
- package/dist/dto/remove-ids.dto.js +23 -1
- package/dist/dto/response-access-token.dto.js +24 -1
- package/dist/dto/response-id.dto.js +35 -1
- package/dist/dto/response-uid.dto.js +35 -1
- package/dist/dto/update-ids.dto.js +45 -1
- package/dist/dto/update-sort.dto.js +50 -1
- package/dist/enums.common.js +62 -1
- package/dist/events/event-bus.module.js +44 -1
- package/dist/events/index.js +20 -1
- package/dist/events/listeners/audit-event.listener.js +58 -1
- package/dist/events/listeners/index.js +17 -1
- package/dist/events/listeners/system-event.listener.js +58 -1
- package/dist/events/services/event-logger.service.js +34 -1
- package/dist/events/services/event-notification.service.js +104 -1
- package/dist/events/services/event-storage.service.js +79 -1
- package/dist/events/services/index.js +20 -1
- package/dist/events/services/token.service.js +88 -1
- package/dist/events/types/audit-events.type.js +2 -1
- package/dist/events/types/index.js +17 -1
- package/dist/filters/http-exception.filter.js +75 -1
- package/dist/filters/index.js +17 -1
- package/dist/guards/auth.guard.js +60 -1
- package/dist/guards/jwt.guard.js +17 -1
- package/dist/index.js +36 -1
- package/dist/interceptors/error.interceptor.js +26 -1
- package/dist/interceptors/index.js +18 -1
- package/dist/interceptors/success.interceptor.js +30 -1
- package/dist/library.module.js +20 -1
- package/dist/like/dto/create-like.dto.js +47 -1
- package/dist/like/dto/index.js +18 -1
- package/dist/like/dto/response-like.dto.js +79 -1
- package/dist/like/index.js +19 -1
- package/dist/like/like.module.js +23 -1
- package/dist/like/like.service.js +155 -1
- package/dist/logger/index.js +18 -1
- package/dist/logger/pino-options.js +77 -1
- package/dist/logger/pino-pretty-transport.js +164 -1
- package/dist/notifications/index.js +18 -1
- package/dist/notifications/notification.module.js +32 -1
- package/dist/notifications/services/email.service.js +69 -1
- package/dist/notifications/services/index.js +23 -1
- package/dist/notifications/services/kakao.service.js +94 -1
- package/dist/notifications/services/message-template.service.js +74 -1
- package/dist/notifications/services/notification-send.service.js +146 -1
- package/dist/notifications/services/notification.service.js +125 -1
- package/dist/notifications/services/slack.service.js +53 -1
- package/dist/notifications/services/sms.service.js +62 -1
- package/dist/passport/jwt.strategy.js +55 -1
- package/dist/passport/kakao.strategy.js +36 -1
- package/dist/passport/local.strategy.js +41 -1
- package/dist/redis/index.js +18 -1
- package/dist/redis/redis-constraint.js +4 -1
- package/dist/redis/redis.module.js +62 -1
- package/dist/redis/redis.service.js +76 -1
- package/dist/role/dto/create-role.dto.js +41 -1
- package/dist/role/dto/index.js +19 -1
- package/dist/role/dto/response-roles.dto.js +62 -1
- package/dist/role/dto/update-role.dto.js +9 -1
- package/dist/role/index.js +19 -1
- package/dist/role/role.module.js +23 -1
- package/dist/role/role.service.js +144 -1
- package/dist/services/file.service.js +82 -1
- package/dist/services/index.js +18 -1
- package/dist/services/permission-checker.service.js +65 -1
- package/dist/setup-swagger.js +32 -1
- package/dist/shared/error-codes.js +9 -1
- package/dist/utils/common.utils.js +42 -1
- package/dist/utils/enum.utils.js +8 -1
- package/dist/utils/index.js +21 -1
- package/dist/utils/object-diff.js +33 -1
- package/dist/utils/pagination-qb.utils.js +154 -1
- package/dist/utils/pagination.utils.js +32 -1
- package/package.json +1 -1
- package/eslint.config.js +0 -31
- package/jest.config.js +0 -11
- package/package/dist/aws/dto/index.d.ts +0 -2
- package/package/dist/aws/dto/index.js +0 -18
- package/package/dist/aws/index.d.ts +0 -4
- package/package/dist/aws/index.js +0 -20
- package/package/dist/database/entities/index.d.ts +0 -7
- package/package/dist/database/entities/index.js +0 -23
- package/package/dist/decorators/index.d.ts +0 -8
- package/package/dist/decorators/index.js +0 -24
- package/package/dist/dto/index.d.ts +0 -10
- package/package/dist/dto/index.js +0 -26
- package/package/dist/events/index.d.ts +0 -4
- package/package/dist/events/index.js +0 -20
- package/package/dist/events/listeners/index.d.ts +0 -1
- package/package/dist/events/listeners/index.js +0 -17
- package/package/dist/events/services/index.d.ts +0 -3
- package/package/dist/events/services/index.js +0 -19
- package/package/dist/events/types/index.d.ts +0 -18
- package/package/dist/events/types/index.js +0 -17
- package/package/dist/filters/index.d.ts +0 -1
- package/package/dist/filters/index.js +0 -17
- package/package/dist/index.d.ts +0 -16
- package/package/dist/index.js +0 -32
- package/package/dist/interceptors/index.d.ts +0 -2
- package/package/dist/interceptors/index.js +0 -18
- package/package/dist/logger/index.d.ts +0 -2
- package/package/dist/logger/index.js +0 -18
- package/package/dist/modules/index.d.ts +0 -1
- package/package/dist/modules/index.js +0 -17
- package/package/dist/notifications/index.d.ts +0 -53
- package/package/dist/notifications/index.js +0 -18
- package/package/dist/notifications/services/index.d.ts +0 -5
- package/package/dist/notifications/services/index.js +0 -21
- package/package/dist/redis/index.d.ts +0 -2
- package/package/dist/redis/index.js +0 -18
- package/package/dist/services/index.d.ts +0 -2
- package/package/dist/services/index.js +0 -18
- package/package/dist/utils/index.d.ts +0 -5
- package/package/dist/utils/index.js +0 -21
- package/package/index.d.ts +0 -1
- package/package/index.js +0 -17
- package/tsconfig.build.json +0 -19
- package/tsconfig.json +0 -18
- package/untitled folder/package/README.md +0 -29
- package/untitled folder/package/dist/aws/aws-s3.service.d.ts +0 -17
- package/untitled folder/package/dist/aws/aws-s3.service.js +0 -158
- package/untitled folder/package/dist/aws/aws.module.d.ts +0 -2
- package/untitled folder/package/dist/aws/aws.module.js +0 -25
- package/untitled folder/package/dist/aws/aws.service.d.ts +0 -3
- package/untitled folder/package/dist/aws/aws.service.js +0 -21
- package/untitled folder/package/dist/aws/constants/storage.constant.d.ts +0 -4
- package/untitled folder/package/dist/aws/constants/storage.constant.js +0 -25
- package/untitled folder/package/dist/aws/dto/create-s3-presigned.dto.d.ts +0 -12
- package/untitled folder/package/dist/aws/dto/create-s3-presigned.dto.js +0 -78
- package/untitled folder/package/dist/aws/dto/index.d.ts +0 -2
- package/untitled folder/package/dist/aws/dto/index.js +0 -18
- package/untitled folder/package/dist/aws/dto/response-s3-presigned.dto.d.ts +0 -30
- package/untitled folder/package/dist/aws/dto/response-s3-presigned.dto.js +0 -110
- package/untitled folder/package/dist/aws/index.d.ts +0 -4
- package/untitled folder/package/dist/aws/index.js +0 -20
- package/untitled folder/package/dist/aws/types/s3.interface.d.ts +0 -14
- package/untitled folder/package/dist/aws/types/s3.interface.js +0 -2
- package/untitled folder/package/dist/aws/types/storage.interface.d.ts +0 -19
- package/untitled folder/package/dist/aws/types/storage.interface.js +0 -2
- package/untitled folder/package/dist/database/entities/category.entity.d.ts +0 -13
- package/untitled folder/package/dist/database/entities/category.entity.js +0 -66
- package/untitled folder/package/dist/database/entities/config.entity.d.ts +0 -8
- package/untitled folder/package/dist/database/entities/config.entity.js +0 -44
- package/untitled folder/package/dist/database/entities/file.entity.d.ts +0 -20
- package/untitled folder/package/dist/database/entities/file.entity.js +0 -91
- package/untitled folder/package/dist/database/entities/index.d.ts +0 -7
- package/untitled folder/package/dist/database/entities/index.js +0 -23
- package/untitled folder/package/dist/database/entities/like.entity.d.ts +0 -10
- package/untitled folder/package/dist/database/entities/like.entity.js +0 -49
- package/untitled folder/package/dist/database/entities/logs-audit.entity.d.ts +0 -16
- package/untitled folder/package/dist/database/entities/logs-audit.entity.js +0 -72
- package/untitled folder/package/dist/database/entities/logs-event.entity.d.ts +0 -16
- package/untitled folder/package/dist/database/entities/logs-event.entity.js +0 -72
- package/untitled folder/package/dist/database/entities/notification.entity.d.ts +0 -16
- package/untitled folder/package/dist/database/entities/notification.entity.js +0 -75
- package/untitled folder/package/dist/database/entities/roles.entity.d.ts +0 -12
- package/untitled folder/package/dist/database/entities/roles.entity.js +0 -50
- package/untitled folder/package/dist/decorators/api-custom-params.decorator.d.ts +0 -7
- package/untitled folder/package/dist/decorators/api-custom-params.decorator.js +0 -35
- package/untitled folder/package/dist/decorators/auth.decorator.factory.d.ts +0 -1
- package/untitled folder/package/dist/decorators/auth.decorator.factory.js +0 -33
- package/untitled folder/package/dist/decorators/cookies.decorator.d.ts +0 -1
- package/untitled folder/package/dist/decorators/cookies.decorator.js +0 -9
- package/untitled folder/package/dist/decorators/custom-params.decorator.d.ts +0 -1
- package/untitled folder/package/dist/decorators/custom-params.decorator.js +0 -16
- package/untitled folder/package/dist/decorators/delete-columns.decorator.d.ts +0 -1
- package/untitled folder/package/dist/decorators/delete-columns.decorator.js +0 -33
- package/untitled folder/package/dist/decorators/index.d.ts +0 -8
- package/untitled folder/package/dist/decorators/index.js +0 -24
- package/untitled folder/package/dist/decorators/patch-body.decorator.d.ts +0 -1
- package/untitled folder/package/dist/decorators/patch-body.decorator.js +0 -38
- package/untitled folder/package/dist/decorators/soft-delete.decorator.d.ts +0 -1
- package/untitled folder/package/dist/decorators/soft-delete.decorator.js +0 -10
- package/untitled folder/package/dist/decorators/timestamps.decorator.d.ts +0 -6
- package/untitled folder/package/dist/decorators/timestamps.decorator.js +0 -23
- package/untitled folder/package/dist/decorators/user.decorator.d.ts +0 -1
- package/untitled folder/package/dist/decorators/user.decorator.js +0 -8
- package/untitled folder/package/dist/dto/auth-user-local.dto.d.ts +0 -4
- package/untitled folder/package/dist/dto/auth-user-local.dto.js +0 -26
- package/untitled folder/package/dist/dto/auth-user-sso.dto.d.ts +0 -3
- package/untitled folder/package/dist/dto/auth-user-sso.dto.js +0 -21
- package/untitled folder/package/dist/dto/custom-params.dto.d.ts +0 -7
- package/untitled folder/package/dist/dto/custom-params.dto.js +0 -46
- package/untitled folder/package/dist/dto/file.dto.d.ts +0 -18
- package/untitled folder/package/dist/dto/file.dto.js +0 -67
- package/untitled folder/package/dist/dto/index.d.ts +0 -10
- package/untitled folder/package/dist/dto/index.js +0 -26
- package/untitled folder/package/dist/dto/jwt-user.dto.d.ts +0 -6
- package/untitled folder/package/dist/dto/jwt-user.dto.js +0 -6
- package/untitled folder/package/dist/dto/pagination.dto.d.ts +0 -8
- package/untitled folder/package/dist/dto/pagination.dto.js +0 -36
- package/untitled folder/package/dist/dto/remove-ids.dto.d.ts +0 -3
- package/untitled folder/package/dist/dto/remove-ids.dto.js +0 -23
- package/untitled folder/package/dist/dto/response-access-token.dto.d.ts +0 -3
- package/untitled folder/package/dist/dto/response-access-token.dto.js +0 -24
- package/untitled folder/package/dist/dto/response-id.dto.d.ts +0 -8
- package/untitled folder/package/dist/dto/response-id.dto.js +0 -35
- package/untitled folder/package/dist/dto/response-uid.dto.d.ts +0 -6
- package/untitled folder/package/dist/dto/response-uid.dto.js +0 -27
- package/untitled folder/package/dist/dto/update-ids.dto.d.ts +0 -5
- package/untitled folder/package/dist/dto/update-ids.dto.js +0 -31
- package/untitled folder/package/dist/dto/update-sort.dto.d.ts +0 -9
- package/untitled folder/package/dist/dto/update-sort.dto.js +0 -50
- package/untitled folder/package/dist/enums.common.d.ts +0 -52
- package/untitled folder/package/dist/enums.common.js +0 -62
- package/untitled folder/package/dist/events/event-bus.module.d.ts +0 -2
- package/untitled folder/package/dist/events/event-bus.module.js +0 -44
- package/untitled folder/package/dist/events/index.d.ts +0 -4
- package/untitled folder/package/dist/events/index.js +0 -20
- package/untitled folder/package/dist/events/listeners/audit-event.listener.d.ts +0 -9
- package/untitled folder/package/dist/events/listeners/audit-event.listener.js +0 -58
- package/untitled folder/package/dist/events/listeners/index.d.ts +0 -1
- package/untitled folder/package/dist/events/listeners/index.js +0 -17
- package/untitled folder/package/dist/events/listeners/system-event.listener.d.ts +0 -9
- package/untitled folder/package/dist/events/listeners/system-event.listener.js +0 -58
- package/untitled folder/package/dist/events/services/event-logger.service.d.ts +0 -5
- package/untitled folder/package/dist/events/services/event-logger.service.js +0 -34
- package/untitled folder/package/dist/events/services/event-notification.service.d.ts +0 -6
- package/untitled folder/package/dist/events/services/event-notification.service.js +0 -74
- package/untitled folder/package/dist/events/services/event-storage.service.d.ts +0 -11
- package/untitled folder/package/dist/events/services/event-storage.service.js +0 -79
- package/untitled folder/package/dist/events/services/index.d.ts +0 -3
- package/untitled folder/package/dist/events/services/index.js +0 -19
- package/untitled folder/package/dist/events/types/audit-events.type.d.ts +0 -12
- package/untitled folder/package/dist/events/types/audit-events.type.js +0 -2
- package/untitled folder/package/dist/events/types/index.d.ts +0 -18
- package/untitled folder/package/dist/events/types/index.js +0 -17
- package/untitled folder/package/dist/filters/http-exception.filter.d.ts +0 -8
- package/untitled folder/package/dist/filters/http-exception.filter.js +0 -71
- package/untitled folder/package/dist/filters/index.d.ts +0 -1
- package/untitled folder/package/dist/filters/index.js +0 -17
- package/untitled folder/package/dist/guards/auth.guard.d.ts +0 -10
- package/untitled folder/package/dist/guards/auth.guard.js +0 -63
- package/untitled folder/package/dist/guards/jwt.guard.d.ts +0 -4
- package/untitled folder/package/dist/guards/jwt.guard.js +0 -17
- package/untitled folder/package/dist/index.d.ts +0 -16
- package/untitled folder/package/dist/index.js +0 -32
- package/untitled folder/package/dist/interceptors/error.interceptor.d.ts +0 -5
- package/untitled folder/package/dist/interceptors/error.interceptor.js +0 -26
- package/untitled folder/package/dist/interceptors/index.d.ts +0 -2
- package/untitled folder/package/dist/interceptors/index.js +0 -18
- package/untitled folder/package/dist/interceptors/success.interceptor.d.ts +0 -5
- package/untitled folder/package/dist/interceptors/success.interceptor.js +0 -30
- package/untitled folder/package/dist/library.module.d.ts +0 -2
- package/untitled folder/package/dist/library.module.js +0 -20
- package/untitled folder/package/dist/logger/index.d.ts +0 -2
- package/untitled folder/package/dist/logger/index.js +0 -18
- package/untitled folder/package/dist/logger/pino-options.d.ts +0 -31
- package/untitled folder/package/dist/logger/pino-options.js +0 -77
- package/untitled folder/package/dist/logger/pino-pretty-transport.d.ts +0 -1
- package/untitled folder/package/dist/logger/pino-pretty-transport.js +0 -155
- package/untitled folder/package/dist/modules/index.d.ts +0 -1
- package/untitled folder/package/dist/modules/index.js +0 -17
- package/untitled folder/package/dist/modules/redis.module.d.ts +0 -9
- package/untitled folder/package/dist/modules/redis.module.js +0 -60
- package/untitled folder/package/dist/notifications/index.d.ts +0 -53
- package/untitled folder/package/dist/notifications/index.js +0 -18
- package/untitled folder/package/dist/notifications/notification.module.d.ts +0 -2
- package/untitled folder/package/dist/notifications/notification.module.js +0 -36
- package/untitled folder/package/dist/notifications/services/email.service.d.ts +0 -7
- package/untitled folder/package/dist/notifications/services/email.service.js +0 -49
- package/untitled folder/package/dist/notifications/services/index.d.ts +0 -5
- package/untitled folder/package/dist/notifications/services/index.js +0 -21
- package/untitled folder/package/dist/notifications/services/kakao.service.d.ts +0 -8
- package/untitled folder/package/dist/notifications/services/kakao.service.js +0 -57
- package/untitled folder/package/dist/notifications/services/notification.service.d.ts +0 -15
- package/untitled folder/package/dist/notifications/services/notification.service.js +0 -83
- package/untitled folder/package/dist/notifications/services/slack.service.d.ts +0 -6
- package/untitled folder/package/dist/notifications/services/slack.service.js +0 -41
- package/untitled folder/package/dist/notifications/services/sms.service.d.ts +0 -6
- package/untitled folder/package/dist/notifications/services/sms.service.js +0 -41
- package/untitled folder/package/dist/passport/jwt.strategy.d.ts +0 -6
- package/untitled folder/package/dist/passport/jwt.strategy.js +0 -55
- package/untitled folder/package/dist/passport/kakao.strategy.d.ts +0 -12
- package/untitled folder/package/dist/passport/kakao.strategy.js +0 -36
- package/untitled folder/package/dist/passport/local.strategy.d.ts +0 -6
- package/untitled folder/package/dist/passport/local.strategy.js +0 -41
- package/untitled folder/package/dist/redis/index.d.ts +0 -2
- package/untitled folder/package/dist/redis/index.js +0 -18
- package/untitled folder/package/dist/redis/redis-constraint.d.ts +0 -1
- package/untitled folder/package/dist/redis/redis-constraint.js +0 -4
- package/untitled folder/package/dist/redis/redis.module.d.ts +0 -8
- package/untitled folder/package/dist/redis/redis.module.js +0 -62
- package/untitled folder/package/dist/redis/redis.service.d.ts +0 -12
- package/untitled folder/package/dist/redis/redis.service.js +0 -76
- package/untitled folder/package/dist/services/file.service.d.ts +0 -55
- package/untitled folder/package/dist/services/file.service.js +0 -76
- package/untitled folder/package/dist/services/index.d.ts +0 -2
- package/untitled folder/package/dist/services/index.js +0 -18
- package/untitled folder/package/dist/services/message-template.service.d.ts +0 -15
- package/untitled folder/package/dist/services/message-template.service.js +0 -74
- package/untitled folder/package/dist/services/permission-checker.service.d.ts +0 -38
- package/untitled folder/package/dist/services/permission-checker.service.js +0 -64
- package/untitled folder/package/dist/setup-swagger.d.ts +0 -9
- package/untitled folder/package/dist/setup-swagger.js +0 -32
- package/untitled folder/package/dist/utils/common.utils.d.ts +0 -5
- package/untitled folder/package/dist/utils/common.utils.js +0 -42
- package/untitled folder/package/dist/utils/enum.utils.d.ts +0 -1
- package/untitled folder/package/dist/utils/enum.utils.js +0 -8
- package/untitled folder/package/dist/utils/index.d.ts +0 -5
- package/untitled folder/package/dist/utils/index.js +0 -21
- package/untitled folder/package/dist/utils/object-diff.d.ts +0 -1
- package/untitled folder/package/dist/utils/object-diff.js +0 -30
- package/untitled folder/package/dist/utils/pagination-qb.utils.d.ts +0 -9
- package/untitled folder/package/dist/utils/pagination-qb.utils.js +0 -150
- package/untitled folder/package/dist/utils/pagination.utils.d.ts +0 -21
- package/untitled folder/package/dist/utils/pagination.utils.js +0 -32
- package/untitled folder/package/eslint.config.js +0 -31
- package/untitled folder/package/index.d.ts +0 -1
- package/untitled folder/package/index.js +0 -17
- package/untitled folder/package/jest.config.js +0 -11
- package/untitled folder/package/package.json +0 -86
- package/untitled folder/package/tsconfig.build.json +0 -19
- package/untitled folder/package/tsconfig.json +0 -18
|
@@ -1 +1,77 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.COMMON_LOGGER_OPTIONS = void 0;
|
|
4
|
+
const ua_parser_js_1 = require("ua-parser-js");
|
|
5
|
+
exports.COMMON_LOGGER_OPTIONS = {
|
|
6
|
+
customLogLevel: (req, res, err) => {
|
|
7
|
+
if (res.statusCode >= 400 && res.statusCode < 500)
|
|
8
|
+
return 'warn';
|
|
9
|
+
if (res.statusCode >= 500 || err)
|
|
10
|
+
return 'error';
|
|
11
|
+
return 'info';
|
|
12
|
+
},
|
|
13
|
+
customProps: (req, res) => {
|
|
14
|
+
const uaParser = new ua_parser_js_1.UAParser(req.headers['user-agent']);
|
|
15
|
+
const browser = uaParser.getBrowser();
|
|
16
|
+
const os = uaParser.getOS();
|
|
17
|
+
const deviceType = uaParser.getDevice().type || 'desktop';
|
|
18
|
+
return {
|
|
19
|
+
method: req.method,
|
|
20
|
+
url: req.url,
|
|
21
|
+
ip: req.headers['x-forwarded-for'] || req.connection.remoteAddress,
|
|
22
|
+
statusCode: res.statusCode,
|
|
23
|
+
browser: browser.name || 'unknown',
|
|
24
|
+
os: os.name || 'unknown',
|
|
25
|
+
deviceType: deviceType || 'unknown',
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
serializers: {
|
|
29
|
+
req: () => undefined,
|
|
30
|
+
res: () => undefined,
|
|
31
|
+
err(err) {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
34
|
+
return {
|
|
35
|
+
type: err === null || err === void 0 ? void 0 : err.name,
|
|
36
|
+
message: err === null || err === void 0 ? void 0 : err.message,
|
|
37
|
+
code: (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.code,
|
|
38
|
+
stack: err === null || err === void 0 ? void 0 : err.stack,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return {
|
|
43
|
+
type: err === null || err === void 0 ? void 0 : err.name,
|
|
44
|
+
message: err === null || err === void 0 ? void 0 : err.message,
|
|
45
|
+
code: (_b = err === null || err === void 0 ? void 0 : err.response) === null || _b === void 0 ? void 0 : _b.code,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
redact: {
|
|
51
|
+
remove: true,
|
|
52
|
+
paths: [
|
|
53
|
+
'email',
|
|
54
|
+
'password',
|
|
55
|
+
'req.query',
|
|
56
|
+
'req.params',
|
|
57
|
+
'req.query',
|
|
58
|
+
'res.headers',
|
|
59
|
+
'req.headers.host',
|
|
60
|
+
'req.headers.connection',
|
|
61
|
+
'req.headers.accept',
|
|
62
|
+
'req.headers.origin',
|
|
63
|
+
'req.headers.referer',
|
|
64
|
+
'req.headers["content-type"]',
|
|
65
|
+
'req.headers["sec-ch-ua"]',
|
|
66
|
+
'req.headers["sec-ch-ua-mobile"]',
|
|
67
|
+
'req.headers["user-agent"]',
|
|
68
|
+
'req.headers["sec-ch-ua-platform"]',
|
|
69
|
+
'req.headers["sec-fetch-site"]',
|
|
70
|
+
'req.headers["sec-fetch-mode"]',
|
|
71
|
+
'req.headers["sec-fetch-dest"]',
|
|
72
|
+
'req.headers["accept-encoding"]',
|
|
73
|
+
'req.headers["accept-language"]',
|
|
74
|
+
'req.headers["if-none-match"]',
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
};
|
|
@@ -1 +1,164 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const pinoPretty = require("pino-pretty");
|
|
4
|
+
const date_fns_tz_1 = require("date-fns-tz");
|
|
5
|
+
function getLevel(level, extras) {
|
|
6
|
+
let levelStr, levelColor;
|
|
7
|
+
switch (level) {
|
|
8
|
+
case 10:
|
|
9
|
+
levelStr = 'TRACE';
|
|
10
|
+
levelColor = extras.colors.gray;
|
|
11
|
+
break;
|
|
12
|
+
case 20:
|
|
13
|
+
levelStr = 'DEBUG';
|
|
14
|
+
levelColor = extras.colors.blue;
|
|
15
|
+
break;
|
|
16
|
+
case 30:
|
|
17
|
+
levelStr = 'INFO';
|
|
18
|
+
levelColor = extras.colors.green;
|
|
19
|
+
break;
|
|
20
|
+
case 40:
|
|
21
|
+
levelStr = 'WARN';
|
|
22
|
+
levelColor = extras.colors.yellow;
|
|
23
|
+
break;
|
|
24
|
+
case 50:
|
|
25
|
+
levelStr = 'ERROR';
|
|
26
|
+
levelColor = extras.colors.red;
|
|
27
|
+
break;
|
|
28
|
+
case 60:
|
|
29
|
+
levelStr = 'FATAL';
|
|
30
|
+
levelColor = extras.colors.magenta;
|
|
31
|
+
break;
|
|
32
|
+
default:
|
|
33
|
+
levelStr = `LEVEL:${level}`;
|
|
34
|
+
levelColor = extras.colors.white;
|
|
35
|
+
}
|
|
36
|
+
return { levelStr, levelColor };
|
|
37
|
+
}
|
|
38
|
+
function getMethodInfo(method, colors) {
|
|
39
|
+
let methodColor;
|
|
40
|
+
switch (method.toUpperCase()) {
|
|
41
|
+
case 'GET':
|
|
42
|
+
methodColor = colors.blue;
|
|
43
|
+
break;
|
|
44
|
+
case 'POST':
|
|
45
|
+
methodColor = colors.green;
|
|
46
|
+
break;
|
|
47
|
+
case 'PUT':
|
|
48
|
+
methodColor = colors.yellow;
|
|
49
|
+
break;
|
|
50
|
+
case 'PATCH':
|
|
51
|
+
methodColor = colors.blueBright;
|
|
52
|
+
break;
|
|
53
|
+
case 'DELETE':
|
|
54
|
+
methodColor = colors.redBright;
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
methodColor = colors.white;
|
|
58
|
+
}
|
|
59
|
+
return { methodColor, methodStr: method.toUpperCase() };
|
|
60
|
+
}
|
|
61
|
+
function getResponseTimeInfo(_responseTime, colors) {
|
|
62
|
+
let responseTimeColor = colors.white;
|
|
63
|
+
if (_responseTime) {
|
|
64
|
+
if (_responseTime < 50)
|
|
65
|
+
responseTimeColor = colors.gray;
|
|
66
|
+
else if (_responseTime < 100)
|
|
67
|
+
responseTimeColor = colors.yellow;
|
|
68
|
+
else
|
|
69
|
+
responseTimeColor = colors.red;
|
|
70
|
+
}
|
|
71
|
+
return { responseTimeColor, responseTimeStr: _responseTime + 'ms' };
|
|
72
|
+
}
|
|
73
|
+
function getStatusCodeInfo(statusCode, colors) {
|
|
74
|
+
let statusCodeColor = colors.white;
|
|
75
|
+
if (statusCode) {
|
|
76
|
+
if (statusCode < 300)
|
|
77
|
+
statusCodeColor = colors.green;
|
|
78
|
+
else if (statusCode < 400)
|
|
79
|
+
statusCodeColor = colors.cyan;
|
|
80
|
+
else if (statusCode < 500)
|
|
81
|
+
statusCodeColor = colors.red;
|
|
82
|
+
else
|
|
83
|
+
statusCodeColor = colors.redBright;
|
|
84
|
+
}
|
|
85
|
+
return { statusCodeColor, statusCodeStr: statusCode.toString() };
|
|
86
|
+
}
|
|
87
|
+
function pinoPrettyTransport(opts) {
|
|
88
|
+
const timezone = opts.timezone || 'Asia/Seoul';
|
|
89
|
+
const ignoreContext = opts.ignoreContext || [
|
|
90
|
+
'InstanceLoader',
|
|
91
|
+
'RouterExplorer',
|
|
92
|
+
];
|
|
93
|
+
return pinoPretty(Object.assign(Object.assign({ singleLine: true, colorize: true, colorizeObjects: false, hideObject: true, ignore: 'time,pid,hostname,context,level' }, opts), { levelFirst: true, messageFormat(log, messageKey, levelLabel, extras) {
|
|
94
|
+
if (ignoreContext.includes(log.context)) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const timestamp = log.time
|
|
98
|
+
? (0, date_fns_tz_1.formatInTimeZone)(new Date(log.time), timezone, 'HH:mm:ss')
|
|
99
|
+
: '';
|
|
100
|
+
const tz = log.time
|
|
101
|
+
? (0, date_fns_tz_1.formatInTimeZone)(new Date(log.time), timezone, 'zzz')
|
|
102
|
+
: '';
|
|
103
|
+
if (log.method) {
|
|
104
|
+
const { methodColor, methodStr } = getMethodInfo(log.method, extras.colors);
|
|
105
|
+
const { responseTimeColor, responseTimeStr } = getResponseTimeInfo(log.responseTime, extras.colors);
|
|
106
|
+
const { statusCodeColor, statusCodeStr } = getStatusCodeInfo(log.statusCode, extras.colors);
|
|
107
|
+
if (log.err) {
|
|
108
|
+
const arr = [
|
|
109
|
+
extras.colors.dim(extras.colors.white(timestamp)),
|
|
110
|
+
extras.colors.gray(tz),
|
|
111
|
+
'',
|
|
112
|
+
extras.colors.underline(statusCodeColor(statusCodeStr)),
|
|
113
|
+
extras.colors.bold(methodColor(methodStr.padEnd(6))),
|
|
114
|
+
methodColor(log.url),
|
|
115
|
+
responseTimeColor(responseTimeStr),
|
|
116
|
+
];
|
|
117
|
+
const err_arr = [];
|
|
118
|
+
if (log.err.code)
|
|
119
|
+
err_arr.push(extras.colors.italic(extras.colors.red(log.err.code)));
|
|
120
|
+
if (log.err.stack)
|
|
121
|
+
err_arr.push(extras.colors.red(log.err.stack));
|
|
122
|
+
return arr.join(' ') + '\n' + err_arr.join('\n') + '\n';
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
const arr = [
|
|
126
|
+
extras.colors.dim(extras.colors.white(timestamp)),
|
|
127
|
+
extras.colors.gray(tz),
|
|
128
|
+
'',
|
|
129
|
+
statusCodeColor(statusCodeStr),
|
|
130
|
+
extras.colors.bold(methodColor(methodStr.padEnd(6))),
|
|
131
|
+
methodColor(log.url),
|
|
132
|
+
responseTimeColor(responseTimeStr),
|
|
133
|
+
];
|
|
134
|
+
return arr.join(' ') + '\n';
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const { levelStr, levelColor } = getLevel(log.level, extras);
|
|
138
|
+
const context = log.context
|
|
139
|
+
? extras.colors.yellow(`[${log.context}]`)
|
|
140
|
+
: '';
|
|
141
|
+
const arr = [
|
|
142
|
+
extras.colors.dim(extras.colors.white(timestamp)),
|
|
143
|
+
extras.colors.gray(tz),
|
|
144
|
+
'',
|
|
145
|
+
levelColor(levelStr),
|
|
146
|
+
context,
|
|
147
|
+
levelColor(log[messageKey]),
|
|
148
|
+
];
|
|
149
|
+
return arr.join(' ') + '\n';
|
|
150
|
+
}, customPrettifiers: {
|
|
151
|
+
time: (timestamp, key, log, extras) => {
|
|
152
|
+
return `⏰ ${timestamp}`;
|
|
153
|
+
},
|
|
154
|
+
level: (logLevel, key, log, extras) => {
|
|
155
|
+
return `LEVEL: ${logLevel} LABEL: ${extras.label} COLORIZED LABEL: ${extras.labelColorized}x`;
|
|
156
|
+
},
|
|
157
|
+
hostname: (hostname) => `MY HOST: ${hostname}`,
|
|
158
|
+
pid: (pid) => pid,
|
|
159
|
+
name: (name, key, log, { colors }) => `${colors.blue(name)}`,
|
|
160
|
+
caller: (caller, key, log, { colors }) => `${colors.greenBright(caller)}`,
|
|
161
|
+
myCustomLogProp: (value, key, log, { colors }) => `My Prop -> ${colors.bold(value)} <--`,
|
|
162
|
+
} }));
|
|
163
|
+
}
|
|
164
|
+
module.exports = pinoPrettyTransport;
|
|
@@ -1 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./notification.module"), exports);
|
|
18
|
+
__exportStar(require("./services"), exports);
|
|
@@ -1 +1,32 @@
|
|
|
1
|
-
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.NotificationModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
12
|
+
const entities_1 = require("../database/entities");
|
|
13
|
+
const services_1 = require("./services");
|
|
14
|
+
let NotificationModule = class NotificationModule {
|
|
15
|
+
};
|
|
16
|
+
exports.NotificationModule = NotificationModule;
|
|
17
|
+
exports.NotificationModule = NotificationModule = __decorate([
|
|
18
|
+
(0, common_1.Global)(),
|
|
19
|
+
(0, common_1.Module)({
|
|
20
|
+
imports: [typeorm_1.TypeOrmModule.forFeature([entities_1.Config, entities_1.Notification, entities_1.NotificationRecipient])],
|
|
21
|
+
providers: [
|
|
22
|
+
services_1.NotificationService,
|
|
23
|
+
services_1.NotificationSendService,
|
|
24
|
+
services_1.MessageTemplateService,
|
|
25
|
+
services_1.EmailService,
|
|
26
|
+
services_1.KakaoService,
|
|
27
|
+
services_1.SmsService,
|
|
28
|
+
services_1.SlackService,
|
|
29
|
+
],
|
|
30
|
+
exports: [services_1.NotificationSendService, services_1.NotificationService],
|
|
31
|
+
})
|
|
32
|
+
], NotificationModule);
|
|
@@ -1 +1,69 @@
|
|
|
1
|
-
|
|
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.EmailService = void 0;
|
|
22
|
+
const common_1 = require("@nestjs/common");
|
|
23
|
+
const config_1 = require("@nestjs/config");
|
|
24
|
+
let EmailService = class EmailService {
|
|
25
|
+
constructor(configService) {
|
|
26
|
+
this.configService = configService;
|
|
27
|
+
}
|
|
28
|
+
send(recipients) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
const provider = this.configService.get('EMAIL_PROVIDER');
|
|
31
|
+
if (!provider || !this.configService.get('EMAIL_FROM')) {
|
|
32
|
+
throw new Error('EMAIL_PROVIDER or EMAIL_FROM is not set');
|
|
33
|
+
}
|
|
34
|
+
if (provider === 'aws') {
|
|
35
|
+
return this.sendAws(recipients);
|
|
36
|
+
}
|
|
37
|
+
return [];
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
sendAws(recipients) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
console.log('📧 [EMAIL] AWS SES 배열 발송:', {
|
|
43
|
+
count: recipients.length,
|
|
44
|
+
from: this.configService.get('EMAIL_FROM'),
|
|
45
|
+
provider: this.configService.get('EMAIL_PROVIDER'),
|
|
46
|
+
recipients: recipients.map(r => ({
|
|
47
|
+
user_id: r.user_id,
|
|
48
|
+
recipient: r.recipient,
|
|
49
|
+
subject: r.subject,
|
|
50
|
+
text: r.text.substring(0, 50) + (r.text.length > 50 ? '...' : ''),
|
|
51
|
+
variables: r.variables
|
|
52
|
+
})),
|
|
53
|
+
timestamp: new Date().toISOString()
|
|
54
|
+
});
|
|
55
|
+
return recipients.map(r => ({
|
|
56
|
+
user_id: r.user_id,
|
|
57
|
+
recipient: r.recipient,
|
|
58
|
+
success: true,
|
|
59
|
+
messageId: `aws-${Date.now()}-${r.user_id}`,
|
|
60
|
+
status: 'sent'
|
|
61
|
+
}));
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
exports.EmailService = EmailService;
|
|
66
|
+
exports.EmailService = EmailService = __decorate([
|
|
67
|
+
(0, common_1.Injectable)(),
|
|
68
|
+
__metadata("design:paramtypes", [config_1.ConfigService])
|
|
69
|
+
], EmailService);
|
|
@@ -1 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./notification.service"), exports);
|
|
18
|
+
__exportStar(require("./notification-send.service"), exports);
|
|
19
|
+
__exportStar(require("./message-template.service"), exports);
|
|
20
|
+
__exportStar(require("./email.service"), exports);
|
|
21
|
+
__exportStar(require("./kakao.service"), exports);
|
|
22
|
+
__exportStar(require("./sms.service"), exports);
|
|
23
|
+
__exportStar(require("./slack.service"), exports);
|
|
@@ -1 +1,94 @@
|
|
|
1
|
-
|
|
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.KakaoService = void 0;
|
|
22
|
+
const common_1 = require("@nestjs/common");
|
|
23
|
+
const config_1 = require("@nestjs/config");
|
|
24
|
+
let KakaoService = class KakaoService {
|
|
25
|
+
constructor(configService) {
|
|
26
|
+
this.configService = configService;
|
|
27
|
+
}
|
|
28
|
+
send(recipients) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
const provider = this.configService.get('KAKAO_PROVIDER');
|
|
31
|
+
if (!provider || !this.configService.get('KAKAO_FROM')) {
|
|
32
|
+
throw new Error('KAKAO_PROVIDER or KAKAO_FROM is not set');
|
|
33
|
+
}
|
|
34
|
+
if (provider === 'aligo') {
|
|
35
|
+
return this.sendAligo(recipients);
|
|
36
|
+
}
|
|
37
|
+
else if (provider === 'ppurio') {
|
|
38
|
+
return this.sendPpurio(recipients);
|
|
39
|
+
}
|
|
40
|
+
return [];
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
sendAligo(recipients) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
console.log('📱 [KAKAO] Aligo 배열 발송:', {
|
|
46
|
+
count: recipients.length,
|
|
47
|
+
from: this.configService.get('KAKAO_FROM'),
|
|
48
|
+
provider: 'aligo',
|
|
49
|
+
recipients: recipients.map(r => ({
|
|
50
|
+
user_id: r.user_id,
|
|
51
|
+
recipient: r.recipient,
|
|
52
|
+
template_code: r.template_code,
|
|
53
|
+
variables: r.variables
|
|
54
|
+
})),
|
|
55
|
+
timestamp: new Date().toISOString()
|
|
56
|
+
});
|
|
57
|
+
return recipients.map(r => ({
|
|
58
|
+
user_id: r.user_id,
|
|
59
|
+
recipient: r.recipient,
|
|
60
|
+
success: true,
|
|
61
|
+
messageId: `aligo-${Date.now()}-${r.user_id}`,
|
|
62
|
+
status: 'sent'
|
|
63
|
+
}));
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
sendPpurio(recipients) {
|
|
67
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
console.log('📱 [KAKAO] Ppurio 배열 발송:', {
|
|
69
|
+
count: recipients.length,
|
|
70
|
+
from: this.configService.get('KAKAO_FROM'),
|
|
71
|
+
provider: 'ppurio',
|
|
72
|
+
recipients: recipients.map(r => ({
|
|
73
|
+
user_id: r.user_id,
|
|
74
|
+
recipient: r.recipient,
|
|
75
|
+
template_code: r.template_code,
|
|
76
|
+
variables: r.variables
|
|
77
|
+
})),
|
|
78
|
+
timestamp: new Date().toISOString()
|
|
79
|
+
});
|
|
80
|
+
return recipients.map(r => ({
|
|
81
|
+
user_id: r.user_id,
|
|
82
|
+
recipient: r.recipient,
|
|
83
|
+
success: true,
|
|
84
|
+
messageId: `ppurio-${Date.now()}-${r.user_id}`,
|
|
85
|
+
status: 'sent'
|
|
86
|
+
}));
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
exports.KakaoService = KakaoService;
|
|
91
|
+
exports.KakaoService = KakaoService = __decorate([
|
|
92
|
+
(0, common_1.Injectable)(),
|
|
93
|
+
__metadata("design:paramtypes", [config_1.ConfigService])
|
|
94
|
+
], KakaoService);
|
|
@@ -1 +1,74 @@
|
|
|
1
|
-
|
|
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.MessageTemplateService = void 0;
|
|
25
|
+
const common_1 = require("@nestjs/common");
|
|
26
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
27
|
+
const typeorm_2 = require("typeorm");
|
|
28
|
+
const entities_1 = require("../../database/entities");
|
|
29
|
+
let MessageTemplateService = class MessageTemplateService {
|
|
30
|
+
constructor(configRepository) {
|
|
31
|
+
this.configRepository = configRepository;
|
|
32
|
+
}
|
|
33
|
+
getTemplate(type, templateKey) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
var _a;
|
|
36
|
+
const templates = yield this.getTemplates();
|
|
37
|
+
return (_a = templates[type]) === null || _a === void 0 ? void 0 : _a[templateKey];
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
getTemplates() {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
const config = yield this.configRepository.findOne({
|
|
43
|
+
where: { key: 'message_templates', is_active: true },
|
|
44
|
+
});
|
|
45
|
+
return (config === null || config === void 0 ? void 0 : config.value) || {};
|
|
46
|
+
return {};
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
updateTemplates(templates) {
|
|
50
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
yield this.configRepository.update({ key: 'message_templates' }, { value: templates, updated_at: new Date() });
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
renderTemplate(template, variables) {
|
|
55
|
+
const missing = template.required_vars.filter((v) => { var _a; return variables[v] === undefined && ((_a = template.default_vars) === null || _a === void 0 ? void 0 : _a[v]) === undefined; });
|
|
56
|
+
if (missing.length > 0) {
|
|
57
|
+
throw new Error(`Missing required variables: ${missing.join(', ')}`);
|
|
58
|
+
}
|
|
59
|
+
return template.content.replace(/\{\{(\w+)\}\}/g, (match, key) => {
|
|
60
|
+
var _a;
|
|
61
|
+
if (variables[key] !== undefined)
|
|
62
|
+
return variables[key];
|
|
63
|
+
if (((_a = template.default_vars) === null || _a === void 0 ? void 0 : _a[key]) !== undefined)
|
|
64
|
+
return template.default_vars[key];
|
|
65
|
+
return '';
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
exports.MessageTemplateService = MessageTemplateService;
|
|
70
|
+
exports.MessageTemplateService = MessageTemplateService = __decorate([
|
|
71
|
+
(0, common_1.Injectable)(),
|
|
72
|
+
__param(0, (0, typeorm_1.InjectRepository)(entities_1.Config)),
|
|
73
|
+
__metadata("design:paramtypes", [typeorm_2.Repository])
|
|
74
|
+
], MessageTemplateService);
|