@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.
Files changed (367) hide show
  1. package/README.md +2 -0
  2. package/dist/aws/aws-s3.service.js +158 -1
  3. package/dist/aws/aws.module.js +25 -1
  4. package/dist/aws/aws.service.js +21 -1
  5. package/dist/aws/constants/storage.constant.js +25 -1
  6. package/dist/aws/dto/create-s3-presigned.dto.js +78 -1
  7. package/dist/aws/dto/index.js +18 -1
  8. package/dist/aws/dto/response-s3-presigned.dto.js +110 -1
  9. package/dist/aws/index.js +20 -1
  10. package/dist/aws/types/s3.interface.js +2 -1
  11. package/dist/aws/types/storage.interface.js +2 -1
  12. package/dist/category/category.module.js +23 -1
  13. package/dist/category/category.service.js +124 -1
  14. package/dist/category/dto/create-category.dto.js +34 -1
  15. package/dist/category/dto/delete-category.dto.js +6 -1
  16. package/dist/category/dto/index.js +21 -1
  17. package/dist/category/dto/response-categories.dto.js +52 -1
  18. package/dist/category/dto/update-category-sort.dto.js +33 -1
  19. package/dist/category/dto/update-category.dto.js +9 -1
  20. package/dist/category/index.js +19 -1
  21. package/dist/comment/comment.module.js +23 -1
  22. package/dist/comment/comment.service.js +240 -1
  23. package/dist/comment/dto/create-comment.dto.js +41 -1
  24. package/dist/comment/dto/index.js +19 -1
  25. package/dist/comment/dto/response-comment.dto.js +97 -1
  26. package/dist/comment/dto/update-comment.dto.js +22 -1
  27. package/dist/comment/index.js +19 -1
  28. package/dist/database/entities/category.entity.js +70 -1
  29. package/dist/database/entities/comment.entity.js +77 -1
  30. package/dist/database/entities/config.entity.js +44 -1
  31. package/dist/database/entities/file.entity.js +91 -1
  32. package/dist/database/entities/index.js +26 -1
  33. package/dist/database/entities/like.entity.js +49 -1
  34. package/dist/database/entities/logs-audit.entity.js +72 -1
  35. package/dist/database/entities/logs-event.entity.js +72 -1
  36. package/dist/database/entities/notification-recipient.entity.js +74 -1
  37. package/dist/database/entities/notification.entity.js +69 -1
  38. package/dist/database/entities/role.entity.js +54 -1
  39. package/dist/decorators/api-custom-params.decorator.js +35 -1
  40. package/dist/decorators/auth.decorator.factory.js +33 -1
  41. package/dist/decorators/cookies.decorator.js +9 -1
  42. package/dist/decorators/custom-params.decorator.js +16 -1
  43. package/dist/decorators/index.js +24 -1
  44. package/dist/decorators/patch-body.decorator.js +38 -1
  45. package/dist/decorators/soft-delete.decorator.js +10 -1
  46. package/dist/decorators/timestamps.decorator.js +23 -1
  47. package/dist/decorators/user.decorator.js +8 -1
  48. package/dist/dto/auth-user-local.dto.js +26 -1
  49. package/dist/dto/auth-user-sso.dto.js +21 -1
  50. package/dist/dto/custom-params.dto.js +46 -1
  51. package/dist/dto/file.dto.js +70 -1
  52. package/dist/dto/index.js +26 -1
  53. package/dist/dto/jwt-user.dto.js +6 -1
  54. package/dist/dto/pagination.dto.js +36 -1
  55. package/dist/dto/remove-ids.dto.js +23 -1
  56. package/dist/dto/response-access-token.dto.js +24 -1
  57. package/dist/dto/response-id.dto.js +35 -1
  58. package/dist/dto/response-uid.dto.js +35 -1
  59. package/dist/dto/update-ids.dto.js +45 -1
  60. package/dist/dto/update-sort.dto.js +50 -1
  61. package/dist/enums.common.js +62 -1
  62. package/dist/events/event-bus.module.js +44 -1
  63. package/dist/events/index.js +20 -1
  64. package/dist/events/listeners/audit-event.listener.js +58 -1
  65. package/dist/events/listeners/index.js +17 -1
  66. package/dist/events/listeners/system-event.listener.js +58 -1
  67. package/dist/events/services/event-logger.service.js +34 -1
  68. package/dist/events/services/event-notification.service.js +104 -1
  69. package/dist/events/services/event-storage.service.js +79 -1
  70. package/dist/events/services/index.js +20 -1
  71. package/dist/events/services/token.service.js +88 -1
  72. package/dist/events/types/audit-events.type.js +2 -1
  73. package/dist/events/types/index.js +17 -1
  74. package/dist/filters/http-exception.filter.js +75 -1
  75. package/dist/filters/index.js +17 -1
  76. package/dist/guards/auth.guard.js +60 -1
  77. package/dist/guards/jwt.guard.js +17 -1
  78. package/dist/index.js +36 -1
  79. package/dist/interceptors/error.interceptor.js +26 -1
  80. package/dist/interceptors/index.js +18 -1
  81. package/dist/interceptors/success.interceptor.js +30 -1
  82. package/dist/library.module.js +20 -1
  83. package/dist/like/dto/create-like.dto.js +47 -1
  84. package/dist/like/dto/index.js +18 -1
  85. package/dist/like/dto/response-like.dto.js +79 -1
  86. package/dist/like/index.js +19 -1
  87. package/dist/like/like.module.js +23 -1
  88. package/dist/like/like.service.js +155 -1
  89. package/dist/logger/index.js +18 -1
  90. package/dist/logger/pino-options.js +77 -1
  91. package/dist/logger/pino-pretty-transport.js +164 -1
  92. package/dist/notifications/index.js +18 -1
  93. package/dist/notifications/notification.module.js +32 -1
  94. package/dist/notifications/services/email.service.js +69 -1
  95. package/dist/notifications/services/index.js +23 -1
  96. package/dist/notifications/services/kakao.service.js +94 -1
  97. package/dist/notifications/services/message-template.service.js +74 -1
  98. package/dist/notifications/services/notification-send.service.js +146 -1
  99. package/dist/notifications/services/notification.service.js +125 -1
  100. package/dist/notifications/services/slack.service.js +53 -1
  101. package/dist/notifications/services/sms.service.js +62 -1
  102. package/dist/passport/jwt.strategy.js +55 -1
  103. package/dist/passport/kakao.strategy.js +36 -1
  104. package/dist/passport/local.strategy.js +41 -1
  105. package/dist/redis/index.js +18 -1
  106. package/dist/redis/redis-constraint.js +4 -1
  107. package/dist/redis/redis.module.js +62 -1
  108. package/dist/redis/redis.service.js +76 -1
  109. package/dist/role/dto/create-role.dto.js +41 -1
  110. package/dist/role/dto/index.js +19 -1
  111. package/dist/role/dto/response-roles.dto.js +62 -1
  112. package/dist/role/dto/update-role.dto.js +9 -1
  113. package/dist/role/index.js +19 -1
  114. package/dist/role/role.module.js +23 -1
  115. package/dist/role/role.service.js +144 -1
  116. package/dist/services/file.service.js +82 -1
  117. package/dist/services/index.js +18 -1
  118. package/dist/services/permission-checker.service.js +65 -1
  119. package/dist/setup-swagger.js +32 -1
  120. package/dist/shared/error-codes.js +9 -1
  121. package/dist/utils/common.utils.js +42 -1
  122. package/dist/utils/enum.utils.js +8 -1
  123. package/dist/utils/index.js +21 -1
  124. package/dist/utils/object-diff.js +33 -1
  125. package/dist/utils/pagination-qb.utils.js +154 -1
  126. package/dist/utils/pagination.utils.js +32 -1
  127. package/package.json +1 -1
  128. package/eslint.config.js +0 -31
  129. package/jest.config.js +0 -11
  130. package/package/dist/aws/dto/index.d.ts +0 -2
  131. package/package/dist/aws/dto/index.js +0 -18
  132. package/package/dist/aws/index.d.ts +0 -4
  133. package/package/dist/aws/index.js +0 -20
  134. package/package/dist/database/entities/index.d.ts +0 -7
  135. package/package/dist/database/entities/index.js +0 -23
  136. package/package/dist/decorators/index.d.ts +0 -8
  137. package/package/dist/decorators/index.js +0 -24
  138. package/package/dist/dto/index.d.ts +0 -10
  139. package/package/dist/dto/index.js +0 -26
  140. package/package/dist/events/index.d.ts +0 -4
  141. package/package/dist/events/index.js +0 -20
  142. package/package/dist/events/listeners/index.d.ts +0 -1
  143. package/package/dist/events/listeners/index.js +0 -17
  144. package/package/dist/events/services/index.d.ts +0 -3
  145. package/package/dist/events/services/index.js +0 -19
  146. package/package/dist/events/types/index.d.ts +0 -18
  147. package/package/dist/events/types/index.js +0 -17
  148. package/package/dist/filters/index.d.ts +0 -1
  149. package/package/dist/filters/index.js +0 -17
  150. package/package/dist/index.d.ts +0 -16
  151. package/package/dist/index.js +0 -32
  152. package/package/dist/interceptors/index.d.ts +0 -2
  153. package/package/dist/interceptors/index.js +0 -18
  154. package/package/dist/logger/index.d.ts +0 -2
  155. package/package/dist/logger/index.js +0 -18
  156. package/package/dist/modules/index.d.ts +0 -1
  157. package/package/dist/modules/index.js +0 -17
  158. package/package/dist/notifications/index.d.ts +0 -53
  159. package/package/dist/notifications/index.js +0 -18
  160. package/package/dist/notifications/services/index.d.ts +0 -5
  161. package/package/dist/notifications/services/index.js +0 -21
  162. package/package/dist/redis/index.d.ts +0 -2
  163. package/package/dist/redis/index.js +0 -18
  164. package/package/dist/services/index.d.ts +0 -2
  165. package/package/dist/services/index.js +0 -18
  166. package/package/dist/utils/index.d.ts +0 -5
  167. package/package/dist/utils/index.js +0 -21
  168. package/package/index.d.ts +0 -1
  169. package/package/index.js +0 -17
  170. package/tsconfig.build.json +0 -19
  171. package/tsconfig.json +0 -18
  172. package/untitled folder/package/README.md +0 -29
  173. package/untitled folder/package/dist/aws/aws-s3.service.d.ts +0 -17
  174. package/untitled folder/package/dist/aws/aws-s3.service.js +0 -158
  175. package/untitled folder/package/dist/aws/aws.module.d.ts +0 -2
  176. package/untitled folder/package/dist/aws/aws.module.js +0 -25
  177. package/untitled folder/package/dist/aws/aws.service.d.ts +0 -3
  178. package/untitled folder/package/dist/aws/aws.service.js +0 -21
  179. package/untitled folder/package/dist/aws/constants/storage.constant.d.ts +0 -4
  180. package/untitled folder/package/dist/aws/constants/storage.constant.js +0 -25
  181. package/untitled folder/package/dist/aws/dto/create-s3-presigned.dto.d.ts +0 -12
  182. package/untitled folder/package/dist/aws/dto/create-s3-presigned.dto.js +0 -78
  183. package/untitled folder/package/dist/aws/dto/index.d.ts +0 -2
  184. package/untitled folder/package/dist/aws/dto/index.js +0 -18
  185. package/untitled folder/package/dist/aws/dto/response-s3-presigned.dto.d.ts +0 -30
  186. package/untitled folder/package/dist/aws/dto/response-s3-presigned.dto.js +0 -110
  187. package/untitled folder/package/dist/aws/index.d.ts +0 -4
  188. package/untitled folder/package/dist/aws/index.js +0 -20
  189. package/untitled folder/package/dist/aws/types/s3.interface.d.ts +0 -14
  190. package/untitled folder/package/dist/aws/types/s3.interface.js +0 -2
  191. package/untitled folder/package/dist/aws/types/storage.interface.d.ts +0 -19
  192. package/untitled folder/package/dist/aws/types/storage.interface.js +0 -2
  193. package/untitled folder/package/dist/database/entities/category.entity.d.ts +0 -13
  194. package/untitled folder/package/dist/database/entities/category.entity.js +0 -66
  195. package/untitled folder/package/dist/database/entities/config.entity.d.ts +0 -8
  196. package/untitled folder/package/dist/database/entities/config.entity.js +0 -44
  197. package/untitled folder/package/dist/database/entities/file.entity.d.ts +0 -20
  198. package/untitled folder/package/dist/database/entities/file.entity.js +0 -91
  199. package/untitled folder/package/dist/database/entities/index.d.ts +0 -7
  200. package/untitled folder/package/dist/database/entities/index.js +0 -23
  201. package/untitled folder/package/dist/database/entities/like.entity.d.ts +0 -10
  202. package/untitled folder/package/dist/database/entities/like.entity.js +0 -49
  203. package/untitled folder/package/dist/database/entities/logs-audit.entity.d.ts +0 -16
  204. package/untitled folder/package/dist/database/entities/logs-audit.entity.js +0 -72
  205. package/untitled folder/package/dist/database/entities/logs-event.entity.d.ts +0 -16
  206. package/untitled folder/package/dist/database/entities/logs-event.entity.js +0 -72
  207. package/untitled folder/package/dist/database/entities/notification.entity.d.ts +0 -16
  208. package/untitled folder/package/dist/database/entities/notification.entity.js +0 -75
  209. package/untitled folder/package/dist/database/entities/roles.entity.d.ts +0 -12
  210. package/untitled folder/package/dist/database/entities/roles.entity.js +0 -50
  211. package/untitled folder/package/dist/decorators/api-custom-params.decorator.d.ts +0 -7
  212. package/untitled folder/package/dist/decorators/api-custom-params.decorator.js +0 -35
  213. package/untitled folder/package/dist/decorators/auth.decorator.factory.d.ts +0 -1
  214. package/untitled folder/package/dist/decorators/auth.decorator.factory.js +0 -33
  215. package/untitled folder/package/dist/decorators/cookies.decorator.d.ts +0 -1
  216. package/untitled folder/package/dist/decorators/cookies.decorator.js +0 -9
  217. package/untitled folder/package/dist/decorators/custom-params.decorator.d.ts +0 -1
  218. package/untitled folder/package/dist/decorators/custom-params.decorator.js +0 -16
  219. package/untitled folder/package/dist/decorators/delete-columns.decorator.d.ts +0 -1
  220. package/untitled folder/package/dist/decorators/delete-columns.decorator.js +0 -33
  221. package/untitled folder/package/dist/decorators/index.d.ts +0 -8
  222. package/untitled folder/package/dist/decorators/index.js +0 -24
  223. package/untitled folder/package/dist/decorators/patch-body.decorator.d.ts +0 -1
  224. package/untitled folder/package/dist/decorators/patch-body.decorator.js +0 -38
  225. package/untitled folder/package/dist/decorators/soft-delete.decorator.d.ts +0 -1
  226. package/untitled folder/package/dist/decorators/soft-delete.decorator.js +0 -10
  227. package/untitled folder/package/dist/decorators/timestamps.decorator.d.ts +0 -6
  228. package/untitled folder/package/dist/decorators/timestamps.decorator.js +0 -23
  229. package/untitled folder/package/dist/decorators/user.decorator.d.ts +0 -1
  230. package/untitled folder/package/dist/decorators/user.decorator.js +0 -8
  231. package/untitled folder/package/dist/dto/auth-user-local.dto.d.ts +0 -4
  232. package/untitled folder/package/dist/dto/auth-user-local.dto.js +0 -26
  233. package/untitled folder/package/dist/dto/auth-user-sso.dto.d.ts +0 -3
  234. package/untitled folder/package/dist/dto/auth-user-sso.dto.js +0 -21
  235. package/untitled folder/package/dist/dto/custom-params.dto.d.ts +0 -7
  236. package/untitled folder/package/dist/dto/custom-params.dto.js +0 -46
  237. package/untitled folder/package/dist/dto/file.dto.d.ts +0 -18
  238. package/untitled folder/package/dist/dto/file.dto.js +0 -67
  239. package/untitled folder/package/dist/dto/index.d.ts +0 -10
  240. package/untitled folder/package/dist/dto/index.js +0 -26
  241. package/untitled folder/package/dist/dto/jwt-user.dto.d.ts +0 -6
  242. package/untitled folder/package/dist/dto/jwt-user.dto.js +0 -6
  243. package/untitled folder/package/dist/dto/pagination.dto.d.ts +0 -8
  244. package/untitled folder/package/dist/dto/pagination.dto.js +0 -36
  245. package/untitled folder/package/dist/dto/remove-ids.dto.d.ts +0 -3
  246. package/untitled folder/package/dist/dto/remove-ids.dto.js +0 -23
  247. package/untitled folder/package/dist/dto/response-access-token.dto.d.ts +0 -3
  248. package/untitled folder/package/dist/dto/response-access-token.dto.js +0 -24
  249. package/untitled folder/package/dist/dto/response-id.dto.d.ts +0 -8
  250. package/untitled folder/package/dist/dto/response-id.dto.js +0 -35
  251. package/untitled folder/package/dist/dto/response-uid.dto.d.ts +0 -6
  252. package/untitled folder/package/dist/dto/response-uid.dto.js +0 -27
  253. package/untitled folder/package/dist/dto/update-ids.dto.d.ts +0 -5
  254. package/untitled folder/package/dist/dto/update-ids.dto.js +0 -31
  255. package/untitled folder/package/dist/dto/update-sort.dto.d.ts +0 -9
  256. package/untitled folder/package/dist/dto/update-sort.dto.js +0 -50
  257. package/untitled folder/package/dist/enums.common.d.ts +0 -52
  258. package/untitled folder/package/dist/enums.common.js +0 -62
  259. package/untitled folder/package/dist/events/event-bus.module.d.ts +0 -2
  260. package/untitled folder/package/dist/events/event-bus.module.js +0 -44
  261. package/untitled folder/package/dist/events/index.d.ts +0 -4
  262. package/untitled folder/package/dist/events/index.js +0 -20
  263. package/untitled folder/package/dist/events/listeners/audit-event.listener.d.ts +0 -9
  264. package/untitled folder/package/dist/events/listeners/audit-event.listener.js +0 -58
  265. package/untitled folder/package/dist/events/listeners/index.d.ts +0 -1
  266. package/untitled folder/package/dist/events/listeners/index.js +0 -17
  267. package/untitled folder/package/dist/events/listeners/system-event.listener.d.ts +0 -9
  268. package/untitled folder/package/dist/events/listeners/system-event.listener.js +0 -58
  269. package/untitled folder/package/dist/events/services/event-logger.service.d.ts +0 -5
  270. package/untitled folder/package/dist/events/services/event-logger.service.js +0 -34
  271. package/untitled folder/package/dist/events/services/event-notification.service.d.ts +0 -6
  272. package/untitled folder/package/dist/events/services/event-notification.service.js +0 -74
  273. package/untitled folder/package/dist/events/services/event-storage.service.d.ts +0 -11
  274. package/untitled folder/package/dist/events/services/event-storage.service.js +0 -79
  275. package/untitled folder/package/dist/events/services/index.d.ts +0 -3
  276. package/untitled folder/package/dist/events/services/index.js +0 -19
  277. package/untitled folder/package/dist/events/types/audit-events.type.d.ts +0 -12
  278. package/untitled folder/package/dist/events/types/audit-events.type.js +0 -2
  279. package/untitled folder/package/dist/events/types/index.d.ts +0 -18
  280. package/untitled folder/package/dist/events/types/index.js +0 -17
  281. package/untitled folder/package/dist/filters/http-exception.filter.d.ts +0 -8
  282. package/untitled folder/package/dist/filters/http-exception.filter.js +0 -71
  283. package/untitled folder/package/dist/filters/index.d.ts +0 -1
  284. package/untitled folder/package/dist/filters/index.js +0 -17
  285. package/untitled folder/package/dist/guards/auth.guard.d.ts +0 -10
  286. package/untitled folder/package/dist/guards/auth.guard.js +0 -63
  287. package/untitled folder/package/dist/guards/jwt.guard.d.ts +0 -4
  288. package/untitled folder/package/dist/guards/jwt.guard.js +0 -17
  289. package/untitled folder/package/dist/index.d.ts +0 -16
  290. package/untitled folder/package/dist/index.js +0 -32
  291. package/untitled folder/package/dist/interceptors/error.interceptor.d.ts +0 -5
  292. package/untitled folder/package/dist/interceptors/error.interceptor.js +0 -26
  293. package/untitled folder/package/dist/interceptors/index.d.ts +0 -2
  294. package/untitled folder/package/dist/interceptors/index.js +0 -18
  295. package/untitled folder/package/dist/interceptors/success.interceptor.d.ts +0 -5
  296. package/untitled folder/package/dist/interceptors/success.interceptor.js +0 -30
  297. package/untitled folder/package/dist/library.module.d.ts +0 -2
  298. package/untitled folder/package/dist/library.module.js +0 -20
  299. package/untitled folder/package/dist/logger/index.d.ts +0 -2
  300. package/untitled folder/package/dist/logger/index.js +0 -18
  301. package/untitled folder/package/dist/logger/pino-options.d.ts +0 -31
  302. package/untitled folder/package/dist/logger/pino-options.js +0 -77
  303. package/untitled folder/package/dist/logger/pino-pretty-transport.d.ts +0 -1
  304. package/untitled folder/package/dist/logger/pino-pretty-transport.js +0 -155
  305. package/untitled folder/package/dist/modules/index.d.ts +0 -1
  306. package/untitled folder/package/dist/modules/index.js +0 -17
  307. package/untitled folder/package/dist/modules/redis.module.d.ts +0 -9
  308. package/untitled folder/package/dist/modules/redis.module.js +0 -60
  309. package/untitled folder/package/dist/notifications/index.d.ts +0 -53
  310. package/untitled folder/package/dist/notifications/index.js +0 -18
  311. package/untitled folder/package/dist/notifications/notification.module.d.ts +0 -2
  312. package/untitled folder/package/dist/notifications/notification.module.js +0 -36
  313. package/untitled folder/package/dist/notifications/services/email.service.d.ts +0 -7
  314. package/untitled folder/package/dist/notifications/services/email.service.js +0 -49
  315. package/untitled folder/package/dist/notifications/services/index.d.ts +0 -5
  316. package/untitled folder/package/dist/notifications/services/index.js +0 -21
  317. package/untitled folder/package/dist/notifications/services/kakao.service.d.ts +0 -8
  318. package/untitled folder/package/dist/notifications/services/kakao.service.js +0 -57
  319. package/untitled folder/package/dist/notifications/services/notification.service.d.ts +0 -15
  320. package/untitled folder/package/dist/notifications/services/notification.service.js +0 -83
  321. package/untitled folder/package/dist/notifications/services/slack.service.d.ts +0 -6
  322. package/untitled folder/package/dist/notifications/services/slack.service.js +0 -41
  323. package/untitled folder/package/dist/notifications/services/sms.service.d.ts +0 -6
  324. package/untitled folder/package/dist/notifications/services/sms.service.js +0 -41
  325. package/untitled folder/package/dist/passport/jwt.strategy.d.ts +0 -6
  326. package/untitled folder/package/dist/passport/jwt.strategy.js +0 -55
  327. package/untitled folder/package/dist/passport/kakao.strategy.d.ts +0 -12
  328. package/untitled folder/package/dist/passport/kakao.strategy.js +0 -36
  329. package/untitled folder/package/dist/passport/local.strategy.d.ts +0 -6
  330. package/untitled folder/package/dist/passport/local.strategy.js +0 -41
  331. package/untitled folder/package/dist/redis/index.d.ts +0 -2
  332. package/untitled folder/package/dist/redis/index.js +0 -18
  333. package/untitled folder/package/dist/redis/redis-constraint.d.ts +0 -1
  334. package/untitled folder/package/dist/redis/redis-constraint.js +0 -4
  335. package/untitled folder/package/dist/redis/redis.module.d.ts +0 -8
  336. package/untitled folder/package/dist/redis/redis.module.js +0 -62
  337. package/untitled folder/package/dist/redis/redis.service.d.ts +0 -12
  338. package/untitled folder/package/dist/redis/redis.service.js +0 -76
  339. package/untitled folder/package/dist/services/file.service.d.ts +0 -55
  340. package/untitled folder/package/dist/services/file.service.js +0 -76
  341. package/untitled folder/package/dist/services/index.d.ts +0 -2
  342. package/untitled folder/package/dist/services/index.js +0 -18
  343. package/untitled folder/package/dist/services/message-template.service.d.ts +0 -15
  344. package/untitled folder/package/dist/services/message-template.service.js +0 -74
  345. package/untitled folder/package/dist/services/permission-checker.service.d.ts +0 -38
  346. package/untitled folder/package/dist/services/permission-checker.service.js +0 -64
  347. package/untitled folder/package/dist/setup-swagger.d.ts +0 -9
  348. package/untitled folder/package/dist/setup-swagger.js +0 -32
  349. package/untitled folder/package/dist/utils/common.utils.d.ts +0 -5
  350. package/untitled folder/package/dist/utils/common.utils.js +0 -42
  351. package/untitled folder/package/dist/utils/enum.utils.d.ts +0 -1
  352. package/untitled folder/package/dist/utils/enum.utils.js +0 -8
  353. package/untitled folder/package/dist/utils/index.d.ts +0 -5
  354. package/untitled folder/package/dist/utils/index.js +0 -21
  355. package/untitled folder/package/dist/utils/object-diff.d.ts +0 -1
  356. package/untitled folder/package/dist/utils/object-diff.js +0 -30
  357. package/untitled folder/package/dist/utils/pagination-qb.utils.d.ts +0 -9
  358. package/untitled folder/package/dist/utils/pagination-qb.utils.js +0 -150
  359. package/untitled folder/package/dist/utils/pagination.utils.d.ts +0 -21
  360. package/untitled folder/package/dist/utils/pagination.utils.js +0 -32
  361. package/untitled folder/package/eslint.config.js +0 -31
  362. package/untitled folder/package/index.d.ts +0 -1
  363. package/untitled folder/package/index.js +0 -17
  364. package/untitled folder/package/jest.config.js +0 -11
  365. package/untitled folder/package/package.json +0 -86
  366. package/untitled folder/package/tsconfig.build.json +0 -19
  367. package/untitled folder/package/tsconfig.json +0 -18
@@ -1 +1,77 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.COMMON_LOGGER_OPTIONS=void 0;const e=require("ua-parser-js");exports.COMMON_LOGGER_OPTIONS={customLogLevel:(e,r,s)=>r.statusCode>=400&&r.statusCode<500?"warn":r.statusCode>=500||s?"error":"info",customProps:(r,s)=>{const o=new e.UAParser(r.headers["user-agent"]),a=o.getBrowser(),d=o.getOS(),t=o.getDevice().type||"desktop";return{method:r.method,url:r.url,ip:r.headers["x-forwarded-for"]||r.connection.remoteAddress,statusCode:s.statusCode,browser:a.name||"unknown",os:d.name||"unknown",deviceType:t||"unknown"}},serializers:{req:()=>{},res:()=>{},err(e){var r,s;return"production"!==process.env.NODE_ENV?{type:null==e?void 0:e.name,message:null==e?void 0:e.message,code:null===(r=null==e?void 0:e.response)||void 0===r?void 0:r.code,stack:null==e?void 0:e.stack}:{type:null==e?void 0:e.name,message:null==e?void 0:e.message,code:null===(s=null==e?void 0:e.response)||void 0===s?void 0:s.code}}},redact:{remove:!0,paths:["email","password","req.query","req.params","req.query","res.headers","req.headers.host","req.headers.connection","req.headers.accept","req.headers.origin","req.headers.referer",'req.headers["content-type"]','req.headers["sec-ch-ua"]','req.headers["sec-ch-ua-mobile"]','req.headers["user-agent"]','req.headers["sec-ch-ua-platform"]','req.headers["sec-fetch-site"]','req.headers["sec-fetch-mode"]','req.headers["sec-fetch-dest"]','req.headers["accept-encoding"]','req.headers["accept-language"]','req.headers["if-none-match"]']}};
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
- Object.defineProperty(exports,"__esModule",{value:!0});const e=require("pino-pretty"),o=require("date-fns-tz");module.exports=function pinoPrettyTransport(r){const t=r.timezone||"Asia/Seoul",s=r.ignoreContext||["InstanceLoader","RouterExplorer"];return e(Object.assign(Object.assign({singleLine:!0,colorize:!0,colorizeObjects:!1,hideObject:!0,ignore:"time,pid,hostname,context,level"},r),{levelFirst:!0,messageFormat(e,r,l,n){if(s.includes(e.context))return;const c=e.time?(0,o.formatInTimeZone)(new Date(e.time),t,"HH:mm:ss"):"",i=e.time?(0,o.formatInTimeZone)(new Date(e.time),t,"zzz"):"";if(e.method){const{methodColor:o,methodStr:r}=function getMethodInfo(e,o){let r;switch(e.toUpperCase()){case"GET":r=o.blue;break;case"POST":r=o.green;break;case"PUT":r=o.yellow;break;case"PATCH":r=o.blueBright;break;case"DELETE":r=o.redBright;break;default:r=o.white}return{methodColor:r,methodStr:e.toUpperCase()}}(e.method,n.colors),{responseTimeColor:t,responseTimeStr:s}=function getResponseTimeInfo(e,o){let r=o.white;return e&&(r=e<50?o.gray:e<100?o.yellow:o.red),{responseTimeColor:r,responseTimeStr:e+"ms"}}(e.responseTime,n.colors),{statusCodeColor:l,statusCodeStr:a}=function getStatusCodeInfo(e,o){let r=o.white;return e&&(r=e<300?o.green:e<400?o.cyan:e<500?o.red:o.redBright),{statusCodeColor:r,statusCodeStr:e.toString()}}(e.statusCode,n.colors);if(e.err){const d=[n.colors.dim(n.colors.white(c)),n.colors.gray(i),"",n.colors.underline(l(a)),n.colors.bold(o(r.padEnd(6))),o(e.url),t(s)],u=[];return e.err.code&&u.push(n.colors.italic(n.colors.red(e.err.code))),e.err.stack&&u.push(n.colors.red(e.err.stack)),d.join(" ")+"\n"+u.join("\n")+"\n"}return[n.colors.dim(n.colors.white(c)),n.colors.gray(i),"",l(a),n.colors.bold(o(r.padEnd(6))),o(e.url),t(s)].join(" ")+"\n"}const{levelStr:a,levelColor:d}=function getLevel(e,o){let r,t;switch(e){case 10:r="TRACE",t=o.colors.gray;break;case 20:r="DEBUG",t=o.colors.blue;break;case 30:r="INFO",t=o.colors.green;break;case 40:r="WARN",t=o.colors.yellow;break;case 50:r="ERROR",t=o.colors.red;break;case 60:r="FATAL",t=o.colors.magenta;break;default:r=`LEVEL:${e}`,t=o.colors.white}return{levelStr:r,levelColor:t}}(e.level,n),u=e.context?n.colors.yellow(`[${e.context}]`):"";return[n.colors.dim(n.colors.white(c)),n.colors.gray(i),"",d(a),u,d(e[r])].join(" ")+"\n"},customPrettifiers:{time:(e,o,r,t)=>`⏰ ${e}`,level:(e,o,r,t)=>`LEVEL: ${e} LABEL: ${t.label} COLORIZED LABEL: ${t.labelColorized}x`,hostname:e=>`MY HOST: ${e}`,pid:e=>e,name:(e,o,r,{colors:t})=>`${t.blue(e)}`,caller:(e,o,r,{colors:t})=>`${t.greenBright(e)}`,myCustomLogProp:(e,o,r,{colors:t})=>`My Prop -> ${t.bold(e)} <--`}}))};
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
- var e=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,o)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),t=this&&this.__exportStar||function(t,r){for(var i in t)"default"===i||Object.prototype.hasOwnProperty.call(r,i)||e(r,t,i)};Object.defineProperty(exports,"__esModule",{value:!0}),t(require("./notification.module"),exports),t(require("./services"),exports);
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
- var e=this&&this.__decorate||function(e,i,t,o){var r,c=arguments.length,n=c<3?i:null===o?o=Object.getOwnPropertyDescriptor(i,t):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,i,t,o);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(n=(c<3?r(n):c>3?r(i,t,n):r(i,t))||n);return c>3&&n&&Object.defineProperty(i,t,n),n};Object.defineProperty(exports,"__esModule",{value:!0}),exports.NotificationModule=void 0;const i=require("@nestjs/common"),t=require("@nestjs/typeorm"),o=require("../database/entities"),r=require("./services");let c=class NotificationModule{};exports.NotificationModule=c,exports.NotificationModule=c=e([(0,i.Global)(),(0,i.Module)({imports:[t.TypeOrmModule.forFeature([o.Config,o.Notification,o.NotificationRecipient])],providers:[r.NotificationService,r.NotificationSendService,r.MessageTemplateService,r.EmailService,r.KakaoService,r.SmsService,r.SlackService],exports:[r.NotificationSendService,r.NotificationService]})],c);
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
- var e=this&&this.__decorate||function(e,t,i,n){var r,c=arguments.length,s=c<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,i,n);else for(var o=e.length-1;o>=0;o--)(r=e[o])&&(s=(c<3?r(s):c>3?r(t,i,s):r(t,i))||s);return c>3&&s&&Object.defineProperty(t,i,s),s},t=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))(function(r,c){function fulfilled(e){try{step(n.next(e))}catch(e){c(e)}}function rejected(e){try{step(n.throw(e))}catch(e){c(e)}}function step(e){e.done?r(e.value):function adopt(e){return e instanceof i?e:new i(function(t){t(e)})}(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.EmailService=void 0;const n=require("@nestjs/common"),r=require("@nestjs/config");let c=class EmailService{constructor(e){this.configService=e}send(e){return i(this,void 0,void 0,function*(){const t=this.configService.get("EMAIL_PROVIDER");if(!t||!this.configService.get("EMAIL_FROM"))throw new Error("EMAIL_PROVIDER or EMAIL_FROM is not set");return"aws"===t?this.sendAws(e):[]})}sendAws(e){return i(this,void 0,void 0,function*(){return console.log("📧 [EMAIL] AWS SES 배열 발송:",{count:e.length,from:this.configService.get("EMAIL_FROM"),provider:this.configService.get("EMAIL_PROVIDER"),recipients:e.map(e=>({user_id:e.user_id,recipient:e.recipient,subject:e.subject,text:e.text.substring(0,50)+(e.text.length>50?"...":""),variables:e.variables})),timestamp:(new Date).toISOString()}),e.map(e=>({user_id:e.user_id,recipient:e.recipient,success:!0,messageId:`aws-${Date.now()}-${e.user_id}`,status:"sent"}))})}};exports.EmailService=c,exports.EmailService=c=e([(0,n.Injectable)(),t("design:paramtypes",[r.ConfigService])],c);
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
- var e=this&&this.__createBinding||(Object.create?function(e,r,t,i){void 0===i&&(i=t);var o=Object.getOwnPropertyDescriptor(r,t);o&&!("get"in o?!r.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return r[t]}}),Object.defineProperty(e,i,o)}:function(e,r,t,i){void 0===i&&(i=t),e[i]=r[t]}),r=this&&this.__exportStar||function(r,t){for(var i in r)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||e(t,r,i)};Object.defineProperty(exports,"__esModule",{value:!0}),r(require("./notification.service"),exports),r(require("./notification-send.service"),exports),r(require("./message-template.service"),exports),r(require("./email.service"),exports),r(require("./kakao.service"),exports),r(require("./sms.service"),exports),r(require("./slack.service"),exports);
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
- var e=this&&this.__decorate||function(e,t,i,r){var n,o=arguments.length,s=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,i,r);else for(var c=e.length-1;c>=0;c--)(n=e[c])&&(s=(o<3?n(s):o>3?n(t,i,s):n(t,i))||s);return o>3&&s&&Object.defineProperty(t,i,s),s},t=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__awaiter||function(e,t,i,r){return new(i||(i=Promise))(function(n,o){function fulfilled(e){try{step(r.next(e))}catch(e){o(e)}}function rejected(e){try{step(r.throw(e))}catch(e){o(e)}}function step(e){e.done?n(e.value):function adopt(e){return e instanceof i?e:new i(function(t){t(e)})}(e.value).then(fulfilled,rejected)}step((r=r.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.KakaoService=void 0;const r=require("@nestjs/common"),n=require("@nestjs/config");let o=class KakaoService{constructor(e){this.configService=e}send(e){return i(this,void 0,void 0,function*(){const t=this.configService.get("KAKAO_PROVIDER");if(!t||!this.configService.get("KAKAO_FROM"))throw new Error("KAKAO_PROVIDER or KAKAO_FROM is not set");return"aligo"===t?this.sendAligo(e):"ppurio"===t?this.sendPpurio(e):[]})}sendAligo(e){return i(this,void 0,void 0,function*(){return console.log("📱 [KAKAO] Aligo 배열 발송:",{count:e.length,from:this.configService.get("KAKAO_FROM"),provider:"aligo",recipients:e.map(e=>({user_id:e.user_id,recipient:e.recipient,template_code:e.template_code,variables:e.variables})),timestamp:(new Date).toISOString()}),e.map(e=>({user_id:e.user_id,recipient:e.recipient,success:!0,messageId:`aligo-${Date.now()}-${e.user_id}`,status:"sent"}))})}sendPpurio(e){return i(this,void 0,void 0,function*(){return console.log("📱 [KAKAO] Ppurio 배열 발송:",{count:e.length,from:this.configService.get("KAKAO_FROM"),provider:"ppurio",recipients:e.map(e=>({user_id:e.user_id,recipient:e.recipient,template_code:e.template_code,variables:e.variables})),timestamp:(new Date).toISOString()}),e.map(e=>({user_id:e.user_id,recipient:e.recipient,success:!0,messageId:`ppurio-${Date.now()}-${e.user_id}`,status:"sent"}))})}};exports.KakaoService=o,exports.KakaoService=o=e([(0,r.Injectable)(),t("design:paramtypes",[n.ConfigService])],o);
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
- var e=this&&this.__decorate||function(e,t,r,i){var n,o=arguments.length,a=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,r):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,i);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(a=(o<3?n(a):o>3?n(t,r,a):n(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a},t=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},r=this&&this.__param||function(e,t){return function(r,i){t(r,i,e)}},i=this&&this.__awaiter||function(e,t,r,i){return new(r||(r=Promise))(function(n,o){function fulfilled(e){try{step(i.next(e))}catch(e){o(e)}}function rejected(e){try{step(i.throw(e))}catch(e){o(e)}}function step(e){e.done?n(e.value):function adopt(e){return e instanceof r?e:new r(function(t){t(e)})}(e.value).then(fulfilled,rejected)}step((i=i.apply(e,t||[])).next())})};Object.defineProperty(exports,"__esModule",{value:!0}),exports.MessageTemplateService=void 0;const n=require("@nestjs/common"),o=require("@nestjs/typeorm"),a=require("typeorm"),s=require("../../database/entities");let c=class MessageTemplateService{constructor(e){this.configRepository=e}getTemplate(e,t){return i(this,void 0,void 0,function*(){var r;return null===(r=(yield this.getTemplates())[e])||void 0===r?void 0:r[t]})}getTemplates(){return i(this,void 0,void 0,function*(){const e=yield this.configRepository.findOne({where:{key:"message_templates",is_active:!0}});return(null==e?void 0:e.value)||{}})}updateTemplates(e){return i(this,void 0,void 0,function*(){yield this.configRepository.update({key:"message_templates"},{value:e,updated_at:new Date})})}renderTemplate(e,t){const r=e.required_vars.filter(r=>{var i;return void 0===t[r]&&void 0===(null===(i=e.default_vars)||void 0===i?void 0:i[r])});if(r.length>0)throw new Error(`Missing required variables: ${r.join(", ")}`);return e.content.replace(/\{\{(\w+)\}\}/g,(r,i)=>{var n;return void 0!==t[i]?t[i]:void 0!==(null===(n=e.default_vars)||void 0===n?void 0:n[i])?e.default_vars[i]:""})}};exports.MessageTemplateService=c,exports.MessageTemplateService=c=e([(0,n.Injectable)(),r(0,(0,o.InjectRepository)(s.Config)),t("design:paramtypes",[a.Repository])],c);
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);