create-entity-app-server 0.0.3 โ†’ 0.0.4

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 (731) hide show
  1. package/bin/create.js +47 -13
  2. package/dist/.env.example +68 -0
  3. package/dist/app/plugins/ocr/cache.ts +1 -0
  4. package/dist/app/plugins/ocr/config.ts +1 -0
  5. package/dist/app/plugins/ocr/direction.ts +1 -0
  6. package/dist/app/plugins/ocr/dispatch.ts +1 -0
  7. package/dist/app/plugins/ocr/entity-adapter.ts +1 -0
  8. package/dist/app/plugins/ocr/errors.ts +1 -0
  9. package/dist/app/plugins/ocr/handlers.ts +1 -0
  10. package/dist/app/plugins/ocr/index.ts +1 -0
  11. package/dist/app/plugins/ocr/llm-parser.ts +1 -0
  12. package/dist/app/plugins/ocr/parsing-pipeline.ts +1 -0
  13. package/dist/app/plugins/ocr/pdf-converter.ts +1 -0
  14. package/dist/app/plugins/ocr/preprocessor.ts +1 -0
  15. package/dist/app/plugins/ocr/providers/aws.ts +1 -0
  16. package/dist/app/plugins/ocr/providers/azure.ts +1 -0
  17. package/dist/app/plugins/ocr/providers/google.ts +1 -0
  18. package/dist/app/plugins/ocr/providers/index.ts +1 -0
  19. package/dist/app/plugins/ocr/providers/naver.ts +1 -0
  20. package/dist/app/plugins/ocr/providers/tesseract.ts +1 -0
  21. package/dist/app/plugins/ocr/providers/upstage.ts +1 -0
  22. package/dist/app/plugins/ocr/quota.ts +1 -0
  23. package/dist/app/plugins/ocr/refiner.ts +1 -0
  24. package/dist/app/plugins/ocr/routes.ts +1 -0
  25. package/dist/app/plugins/ocr/service.ts +1 -0
  26. package/dist/app/plugins/ocr/template-loader.ts +1 -0
  27. package/dist/app/plugins/ocr/template-matcher.ts +1 -0
  28. package/dist/app/plugins/ocr/types/config.ts +1 -0
  29. package/dist/app/plugins/ocr/types/driver.ts +1 -0
  30. package/dist/app/plugins/ocr/types/index.ts +1 -0
  31. package/dist/app/plugins/ocr/types/parsed.ts +1 -0
  32. package/dist/app/plugins/ocr/types/store.ts +1 -0
  33. package/dist/app/plugins/ocr/types/template.ts +1 -0
  34. package/dist/app/plugins/ocr/utils.ts +1 -0
  35. package/dist/app/plugins/sms/config.ts +1 -0
  36. package/dist/app/plugins/sms/entity-adapter.ts +1 -0
  37. package/dist/app/plugins/sms/handlers.ts +1 -0
  38. package/dist/app/plugins/sms/index.ts +1 -0
  39. package/dist/app/plugins/sms/providers/aligo.ts +1 -0
  40. package/dist/app/plugins/sms/providers/aws-sns.ts +1 -0
  41. package/dist/app/plugins/sms/providers/index.ts +1 -0
  42. package/dist/app/plugins/sms/providers/nhn.ts +1 -0
  43. package/dist/app/plugins/sms/providers/ppurio.ts +1 -0
  44. package/dist/app/plugins/sms/providers/solapi.ts +1 -0
  45. package/dist/app/plugins/sms/routes.ts +1 -0
  46. package/dist/app/plugins/sms/service.ts +1 -0
  47. package/dist/app/plugins/sms/types/client.ts +1 -0
  48. package/dist/app/plugins/sms/types/config.ts +1 -0
  49. package/dist/app/plugins/sms/types/index.ts +1 -0
  50. package/dist/app/plugins/sms/types/job.ts +1 -0
  51. package/dist/app/plugins/sms/verification.ts +1 -0
  52. package/dist/app/plugins/smtp/config.ts +1 -0
  53. package/dist/app/plugins/smtp/handlers.ts +1 -0
  54. package/dist/app/plugins/smtp/index.ts +1 -0
  55. package/dist/app/plugins/smtp/routes.ts +1 -0
  56. package/dist/app/plugins/smtp/types/config.ts +1 -0
  57. package/dist/app/plugins/smtp/types/index.ts +1 -0
  58. package/dist/logs/access.1.log +0 -0
  59. package/dist/system-api.js +1 -0
  60. package/dist/system.js +1 -0
  61. package/package.json +3 -8
  62. package/docs/design/board-api-design.md +0 -2342
  63. package/scripts/_gen-table-type.ts +0 -605
  64. package/scripts/build-minify-plugins.mjs +0 -124
  65. package/scripts/build-obfuscate-system.mjs +0 -38
  66. package/scripts/build.sh +0 -140
  67. package/scripts/gen-table-type.sh +0 -169
  68. package/scripts/push.sh +0 -102
  69. package/scripts/release.sh +0 -51
  70. package/src/app/plugins/2fa/config.json +0 -17
  71. package/src/app/plugins/ais/config.json +0 -7
  72. package/src/app/plugins/ais/config.ts +0 -32
  73. package/src/app/plugins/ais/docs/README.md +0 -142
  74. package/src/app/plugins/ais/docs/api.md +0 -138
  75. package/src/app/plugins/ais/entities/ais_vessel.json +0 -64
  76. package/src/app/plugins/ais/handlers.ts +0 -88
  77. package/src/app/plugins/ais/index.ts +0 -21
  78. package/src/app/plugins/ais/routes.ts +0 -13
  79. package/src/app/plugins/ais/service.ts +0 -242
  80. package/src/app/plugins/ais/types/index.ts +0 -78
  81. package/src/app/plugins/alimtalk/config.json +0 -26
  82. package/src/app/plugins/distance-server/config.json +0 -6
  83. package/src/app/plugins/distance-server/config.ts +0 -50
  84. package/src/app/plugins/distance-server/docs/README.md +0 -114
  85. package/src/app/plugins/distance-server/handlers.ts +0 -104
  86. package/src/app/plugins/distance-server/index.ts +0 -23
  87. package/src/app/plugins/distance-server/routes.ts +0 -36
  88. package/src/app/plugins/distance-server/service.ts +0 -187
  89. package/src/app/plugins/distance-server/types/index.ts +0 -8
  90. package/src/app/plugins/friendtalk/config.json +0 -11
  91. package/src/app/plugins/holidays/config.json +0 -10
  92. package/src/app/plugins/identity/config.json +0 -30
  93. package/src/app/plugins/kobc_freight/config.json +0 -6
  94. package/src/app/plugins/kobc_freight/config.ts +0 -28
  95. package/src/app/plugins/kobc_freight/docs/README.md +0 -316
  96. package/src/app/plugins/kobc_freight/entities/kobc_freight_entry.json +0 -31
  97. package/src/app/plugins/kobc_freight/entities/kobc_kcci_entry.json +0 -67
  98. package/src/app/plugins/kobc_freight/entities/kobc_kpli_entry.json +0 -27
  99. package/src/app/plugins/kobc_freight/entities/kobc_ncfi_entry.json +0 -99
  100. package/src/app/plugins/kobc_freight/handlers.ts +0 -283
  101. package/src/app/plugins/kobc_freight/index.ts +0 -21
  102. package/src/app/plugins/kobc_freight/routes.ts +0 -39
  103. package/src/app/plugins/kobc_freight/service.ts +0 -604
  104. package/src/app/plugins/kobc_freight/types/index.ts +0 -99
  105. package/src/app/plugins/llm/config.json +0 -71
  106. package/src/app/plugins/oauth/config.json +0 -72
  107. package/src/app/plugins/ocr/cache.ts +0 -50
  108. package/src/app/plugins/ocr/config.json +0 -110
  109. package/src/app/plugins/ocr/config.ts +0 -126
  110. package/src/app/plugins/ocr/direction.ts +0 -48
  111. package/src/app/plugins/ocr/dispatch.ts +0 -130
  112. package/src/app/plugins/ocr/entity-adapter.ts +0 -198
  113. package/src/app/plugins/ocr/errors.ts +0 -42
  114. package/src/app/plugins/ocr/handlers.ts +0 -250
  115. package/src/app/plugins/ocr/index.ts +0 -68
  116. package/src/app/plugins/ocr/llm-parser.ts +0 -164
  117. package/src/app/plugins/ocr/parsing-pipeline.ts +0 -87
  118. package/src/app/plugins/ocr/pdf-converter.ts +0 -136
  119. package/src/app/plugins/ocr/preprocessor.ts +0 -313
  120. package/src/app/plugins/ocr/providers/aws.ts +0 -200
  121. package/src/app/plugins/ocr/providers/azure.ts +0 -183
  122. package/src/app/plugins/ocr/providers/google.ts +0 -155
  123. package/src/app/plugins/ocr/providers/index.ts +0 -80
  124. package/src/app/plugins/ocr/providers/naver.ts +0 -186
  125. package/src/app/plugins/ocr/providers/tesseract.ts +0 -198
  126. package/src/app/plugins/ocr/providers/upstage.ts +0 -156
  127. package/src/app/plugins/ocr/quota.ts +0 -108
  128. package/src/app/plugins/ocr/refiner.ts +0 -112
  129. package/src/app/plugins/ocr/routes.ts +0 -19
  130. package/src/app/plugins/ocr/service.ts +0 -333
  131. package/src/app/plugins/ocr/template-loader.ts +0 -72
  132. package/src/app/plugins/ocr/template-matcher.ts +0 -422
  133. package/src/app/plugins/ocr/types/config.ts +0 -60
  134. package/src/app/plugins/ocr/types/driver.ts +0 -71
  135. package/src/app/plugins/ocr/types/index.ts +0 -5
  136. package/src/app/plugins/ocr/types/parsed.ts +0 -101
  137. package/src/app/plugins/ocr/types/store.ts +0 -70
  138. package/src/app/plugins/ocr/types/template.ts +0 -89
  139. package/src/app/plugins/ocr/utils.ts +0 -18
  140. package/src/app/plugins/pg/config.json +0 -35
  141. package/src/app/plugins/push/config.json +0 -18
  142. package/src/app/plugins/sms/config.json +0 -33
  143. package/src/app/plugins/sms/config.ts +0 -158
  144. package/src/app/plugins/sms/entity-adapter.ts +0 -213
  145. package/src/app/plugins/sms/handlers.ts +0 -149
  146. package/src/app/plugins/sms/index.ts +0 -93
  147. package/src/app/plugins/sms/providers/aligo.ts +0 -73
  148. package/src/app/plugins/sms/providers/aws-sns.ts +0 -182
  149. package/src/app/plugins/sms/providers/index.ts +0 -47
  150. package/src/app/plugins/sms/providers/nhn.ts +0 -82
  151. package/src/app/plugins/sms/providers/ppurio.ts +0 -76
  152. package/src/app/plugins/sms/providers/solapi.ts +0 -83
  153. package/src/app/plugins/sms/routes.ts +0 -23
  154. package/src/app/plugins/sms/service.ts +0 -239
  155. package/src/app/plugins/sms/types/client.ts +0 -41
  156. package/src/app/plugins/sms/types/config.ts +0 -46
  157. package/src/app/plugins/sms/types/index.ts +0 -3
  158. package/src/app/plugins/sms/types/job.ts +0 -51
  159. package/src/app/plugins/sms/verification.ts +0 -162
  160. package/src/app/plugins/smtp/config.ts +0 -41
  161. package/src/app/plugins/smtp/handlers.ts +0 -52
  162. package/src/app/plugins/smtp/index.ts +0 -33
  163. package/src/app/plugins/smtp/routes.ts +0 -19
  164. package/src/app/plugins/smtp/types/config.ts +0 -8
  165. package/src/app/plugins/smtp/types/index.ts +0 -1
  166. package/src/app/plugins/taxinvoice/config.json +0 -35
  167. package/src/app/routes/calendar/config.json +0 -5
  168. package/src/app/routes/calendar/entities/calendar_attendees.json +0 -23
  169. package/src/app/routes/calendar/entities/calendar_comments.json +0 -17
  170. package/src/app/routes/calendar/entities/calendar_events.json +0 -48
  171. package/src/app/routes/calendar/entities/calendar_kind.json +0 -11
  172. package/src/app/routes/calendar/entities/calendar_method.json +0 -11
  173. package/src/app/routes/calendar/routes.ts +0 -32
  174. package/src/app/routes/email-verify/config-loader.ts +0 -47
  175. package/src/app/routes/email-verify/config.example.json +0 -13
  176. package/src/app/routes/email-verify/config.json +0 -16
  177. package/src/app/routes/email-verify/entities/account.json +0 -23
  178. package/src/app/routes/email-verify/handlers/activate.ts +0 -103
  179. package/src/app/routes/email-verify/handlers/change.ts +0 -106
  180. package/src/app/routes/email-verify/handlers/confirm.ts +0 -87
  181. package/src/app/routes/email-verify/handlers/index.ts +0 -20
  182. package/src/app/routes/email-verify/handlers/send.ts +0 -157
  183. package/src/app/routes/email-verify/handlers/status.ts +0 -53
  184. package/src/app/routes/email-verify/handlers/utils.ts +0 -85
  185. package/src/app/routes/email-verify/routes.ts +0 -54
  186. package/src/app/routes/email-verify/templates/verification.html +0 -15
  187. package/src/app/routes/email-verify/templates/verification_link.html +0 -19
  188. package/src/app/routes/email-verify/types/index.ts +0 -77
  189. package/src/app/routes/email-verify/verification-utils.ts +0 -57
  190. package/src/app/routes/example-db/config.json +0 -5
  191. package/src/app/routes/example-db/handlers.ts +0 -220
  192. package/src/app/routes/example-db/models/account-ext.ts +0 -33
  193. package/src/app/routes/example-db/models/users.ts +0 -30
  194. package/src/app/routes/example-db/routes.ts +0 -23
  195. package/src/app/routes/example-db/types/defaults.ts +0 -21
  196. package/src/app/routes/example-db/types/index.ts +0 -4
  197. package/src/app/routes/example-db/types/params.ts +0 -3
  198. package/src/app/routes/example-db/types/query.ts +0 -6
  199. package/src/app/routes/example-db/types/user.ts +0 -11
  200. package/src/app/routes/example-es/config.json +0 -5
  201. package/src/app/routes/example-es/handlers.ts +0 -216
  202. package/src/app/routes/example-es/routes.ts +0 -24
  203. package/src/app/routes/example-es/types/defaults.ts +0 -30
  204. package/src/app/routes/example-es/types/index.ts +0 -4
  205. package/src/app/routes/example-es/types/params.ts +0 -3
  206. package/src/app/routes/example-es/types/post.ts +0 -12
  207. package/src/app/routes/example-es/types/query.ts +0 -14
  208. package/src/app/routes/funeral/config.json +0 -5
  209. package/src/app/routes/funeral/entities/funeral.json +0 -77
  210. package/src/app/routes/funeral/entities/funeral_docs.json +0 -36
  211. package/src/app/routes/funeral/entities/funeral_mourner.json +0 -31
  212. package/src/app/routes/funeral/entities/funeral_order.json +0 -48
  213. package/src/app/routes/funeral/entities/funeral_room.json +0 -61
  214. package/src/app/routes/funeral/entities/funeral_schedule.json +0 -39
  215. package/src/app/routes/funeral/routes.ts +0 -32
  216. package/src/app/routes/health/config.json +0 -5
  217. package/src/app/routes/health/handlers.ts +0 -69
  218. package/src/app/routes/health/routes.ts +0 -14
  219. package/src/app/routes/hr/career/config.json +0 -5
  220. package/src/app/routes/hr/career/entities/employee_career.json +0 -15
  221. package/src/app/routes/hr/career/routes.ts +0 -25
  222. package/src/app/routes/hr/config.json +0 -5
  223. package/src/app/routes/hr/education/config.json +0 -5
  224. package/src/app/routes/hr/education/entities/employee_education.json +0 -29
  225. package/src/app/routes/hr/education/entities/employee_education_mans.json +0 -25
  226. package/src/app/routes/hr/education/entities/employee_school.json +0 -19
  227. package/src/app/routes/hr/education/routes.ts +0 -28
  228. package/src/app/routes/hr/employee/config.json +0 -5
  229. package/src/app/routes/hr/employee/entities/employee.json +0 -59
  230. package/src/app/routes/hr/employee/entities/employee_cert.json +0 -19
  231. package/src/app/routes/hr/employee/entities/employee_reward.json +0 -21
  232. package/src/app/routes/hr/employee/routes.ts +0 -27
  233. package/src/app/routes/hr/entities/hr_group.json +0 -47
  234. package/src/app/routes/hr/entities/hr_group_pv.json +0 -20
  235. package/src/app/routes/hr/entities/hr_role.json +0 -43
  236. package/src/app/routes/hr/entities/hr_role_pv.json +0 -20
  237. package/src/app/routes/hr/routes.ts +0 -29
  238. package/src/app/routes/messages/chat/config.json +0 -5
  239. package/src/app/routes/messages/chat/entities/user_chat.json +0 -47
  240. package/src/app/routes/messages/chat/entities/user_chat_room.json +0 -38
  241. package/src/app/routes/messages/chat/entities/user_chat_room_member.json +0 -49
  242. package/src/app/routes/messages/chat/routes.ts +0 -28
  243. package/src/app/routes/messages/msgbox/config.json +0 -5
  244. package/src/app/routes/messages/msgbox/entities/user_msgbox.json +0 -73
  245. package/src/app/routes/messages/msgbox/routes.ts +0 -28
  246. package/src/app/routes/vessel-tracking/config.json +0 -3
  247. package/src/app/routes/vessel-tracking/entities/tracked_vessel.json +0 -261
  248. package/src/app/routes/vessel-tracking/handlers.ts +0 -134
  249. package/src/app/routes/vessel-tracking/routes.ts +0 -25
  250. package/src/app/routes/vessel-tracking/types/index.ts +0 -5
  251. package/src/app/routes/vessel-tracking/types/vessel.ts +0 -59
  252. package/src/app/schedules/ais_sync/config.json +0 -4
  253. package/src/app/schedules/ais_sync/index.ts +0 -69
  254. package/src/app/schedules/kobc_freight_sync/config.json +0 -4
  255. package/src/app/schedules/kobc_freight_sync/index.ts +0 -94
  256. package/src/app/schedules/vessel_kr_sync/config.json +0 -4
  257. package/src/app/schedules/vessel_kr_sync/index.ts +0 -72
  258. package/src/system/app.ts +0 -129
  259. package/src/system/cache/_store-ref.ts +0 -15
  260. package/src/system/cache/config.ts +0 -61
  261. package/src/system/cache/drivers/memcached.ts +0 -135
  262. package/src/system/cache/drivers/memory.ts +0 -92
  263. package/src/system/cache/drivers/redis.ts +0 -109
  264. package/src/system/cache/index.ts +0 -43
  265. package/src/system/cache/namespaced.ts +0 -79
  266. package/src/system/cache/plugin.ts +0 -59
  267. package/src/system/cache/types.ts +0 -81
  268. package/src/system/config/config-path.ts +0 -20
  269. package/src/system/config/cors.ts +0 -49
  270. package/src/system/config/database.ts +0 -190
  271. package/src/system/config/entity-server.ts +0 -8
  272. package/src/system/config/env-substitution.ts +0 -4
  273. package/src/system/config/env.ts +0 -30
  274. package/src/system/config/json-config.ts +0 -13
  275. package/src/system/config/module-path.ts +0 -16
  276. package/src/system/config/packet-encrypt.ts +0 -80
  277. package/src/system/config/rate-limit.ts +0 -4
  278. package/src/system/config/security-loader.ts +0 -25
  279. package/src/system/config/security.ts +0 -16
  280. package/src/system/config/server.ts +0 -81
  281. package/src/system/crypto/cipher.ts +0 -117
  282. package/src/system/crypto/data-encrypt.ts +0 -174
  283. package/src/system/crypto/hash.ts +0 -24
  284. package/src/system/crypto/packet.test.ts +0 -23
  285. package/src/system/crypto/packet.ts +0 -97
  286. package/src/system/crypto/random.ts +0 -19
  287. package/src/system/email/sender.ts +0 -85
  288. package/src/system/email/template-engine.ts +0 -147
  289. package/src/system/entity-server/bootstrap.ts +0 -270
  290. package/src/system/entity-server/client.ts +0 -64
  291. package/src/system/hooks/loader.ts +0 -32
  292. package/src/system/hooks/runner.ts +0 -159
  293. package/src/system/hooks/types.ts +0 -75
  294. package/src/system/hooks/withdraw-hooks.ts +0 -42
  295. package/src/system/http/cookie.ts +0 -62
  296. package/src/system/http/response.ts +0 -16
  297. package/src/system/index.ts +0 -48
  298. package/src/system/logging/log-format.ts +0 -50
  299. package/src/system/logging/logger.ts +0 -104
  300. package/src/system/middleware/_db-ref.ts +0 -26
  301. package/src/system/middleware/_push-ref.ts +0 -28
  302. package/src/system/middleware/access-log.ts +0 -34
  303. package/src/system/middleware/auth.ts +0 -67
  304. package/src/system/middleware/csrf.ts +0 -172
  305. package/src/system/middleware/database.ts +0 -44
  306. package/src/system/middleware/error-handler.ts +0 -51
  307. package/src/system/middleware/extension-loader.ts +0 -111
  308. package/src/system/middleware/packet-encrypt.ts +0 -281
  309. package/src/system/middleware/request-id.ts +0 -18
  310. package/src/system/plugins/access-log.ts +0 -34
  311. package/src/system/plugins/packet-encrypt.ts +0 -281
  312. package/src/system/proxy/register.ts +0 -37
  313. package/src/system/public-api.ts +0 -140
  314. package/src/system/push/sender.ts +0 -131
  315. package/src/system/routes/entity-interceptor.ts +0 -327
  316. package/src/system/routes/loader.ts +0 -215
  317. package/src/system/scheduler/cron-utils.ts +0 -150
  318. package/src/system/scheduler/distributed-lock.ts +0 -141
  319. package/src/system/scheduler/schedule-loader.ts +0 -105
  320. package/src/system/security/anonymous-device-id.ts +0 -41
  321. package/src/system/security/anonymous-device.ts +0 -98
  322. package/src/system/security/anonymous-packet-token.ts +0 -23
  323. package/src/system/security/packet-bootstrap.ts +0 -16
  324. package/src/system/security/password-policy.ts +0 -191
  325. package/src/system/startup-banner.ts +0 -191
  326. package/src/system/types/fastify.d.ts +0 -53
  327. package/src/system/utils/app-path.ts +0 -31
  328. package/src/system/utils/coerce.ts +0 -28
  329. package/src/system/utils/date-prefixed-log-stream.ts +0 -176
  330. package/src/system/utils/errors.ts +0 -66
  331. package/src/system/utils/format.ts +0 -45
  332. package/src/system/utils/http-client.ts +0 -79
  333. package/src/system/utils/user-agent.ts +0 -82
  334. package/tsconfig.app.json +0 -17
  335. package/tsconfig.json +0 -39
  336. /package/{.env.example โ†’ dist/.env} +0 -0
  337. /package/{src โ†’ dist}/app/hooks/README.md +0 -0
  338. /package/{src โ†’ dist}/app/hooks/account.ts +0 -0
  339. /package/{src โ†’ dist}/app/hooks/index.ts +0 -0
  340. /package/{src โ†’ dist}/app/hooks/order.ts +0 -0
  341. /package/{src โ†’ dist}/app/hooks/post.ts +0 -0
  342. /package/{src/app/plugins/2fa/config.example.json โ†’ dist/app/plugins/2fa/config.json} +0 -0
  343. /package/{src โ†’ dist}/app/plugins/2fa/config.ts +0 -0
  344. /package/{src โ†’ dist}/app/plugins/2fa/docs/README.md +0 -0
  345. /package/{src โ†’ dist}/app/plugins/2fa/entities/account.json +0 -0
  346. /package/{src โ†’ dist}/app/plugins/2fa/handlers/disable.ts +0 -0
  347. /package/{src โ†’ dist}/app/plugins/2fa/handlers/index.ts +0 -0
  348. /package/{src โ†’ dist}/app/plugins/2fa/handlers/recovery.ts +0 -0
  349. /package/{src โ†’ dist}/app/plugins/2fa/handlers/regenerate.ts +0 -0
  350. /package/{src โ†’ dist}/app/plugins/2fa/handlers/setup-verify.ts +0 -0
  351. /package/{src โ†’ dist}/app/plugins/2fa/handlers/setup.ts +0 -0
  352. /package/{src โ†’ dist}/app/plugins/2fa/handlers/status.ts +0 -0
  353. /package/{src โ†’ dist}/app/plugins/2fa/handlers/utils.ts +0 -0
  354. /package/{src โ†’ dist}/app/plugins/2fa/handlers/verify.ts +0 -0
  355. /package/{src โ†’ dist}/app/plugins/2fa/index.ts +0 -0
  356. /package/{src โ†’ dist}/app/plugins/2fa/routes.ts +0 -0
  357. /package/{src โ†’ dist}/app/plugins/2fa/templates/auth/2fa_disabled.html +0 -0
  358. /package/{src โ†’ dist}/app/plugins/2fa/templates/auth/2fa_recovery_regenerated.html +0 -0
  359. /package/{src โ†’ dist}/app/plugins/2fa/templates/auth/2fa_setup_complete.html +0 -0
  360. /package/{src โ†’ dist}/app/plugins/2fa/totp-utils.ts +0 -0
  361. /package/{src โ†’ dist}/app/plugins/2fa/types.ts +0 -0
  362. /package/{src โ†’ dist}/app/plugins/README.md +0 -0
  363. /package/{src/app/plugins/alimtalk/config.example.json โ†’ dist/app/plugins/alimtalk/config.json} +0 -0
  364. /package/{src โ†’ dist}/app/plugins/alimtalk/config.ts +0 -0
  365. /package/{src โ†’ dist}/app/plugins/alimtalk/docs/README.md +0 -0
  366. /package/{src โ†’ dist}/app/plugins/alimtalk/entities/alimtalk_log.json +0 -0
  367. /package/{src โ†’ dist}/app/plugins/alimtalk/entities/alimtalk_msg.json +0 -0
  368. /package/{src โ†’ dist}/app/plugins/alimtalk/entity-adapter.ts +0 -0
  369. /package/{src โ†’ dist}/app/plugins/alimtalk/handlers.ts +0 -0
  370. /package/{src โ†’ dist}/app/plugins/alimtalk/index.ts +0 -0
  371. /package/{src โ†’ dist}/app/plugins/alimtalk/providers/aligo.ts +0 -0
  372. /package/{src โ†’ dist}/app/plugins/alimtalk/providers/index.ts +0 -0
  373. /package/{src โ†’ dist}/app/plugins/alimtalk/providers/nhn.ts +0 -0
  374. /package/{src โ†’ dist}/app/plugins/alimtalk/providers/ppurio.ts +0 -0
  375. /package/{src โ†’ dist}/app/plugins/alimtalk/providers/solapi.ts +0 -0
  376. /package/{src โ†’ dist}/app/plugins/alimtalk/routes.ts +0 -0
  377. /package/{src โ†’ dist}/app/plugins/alimtalk/service.ts +0 -0
  378. /package/{src โ†’ dist}/app/plugins/alimtalk/template-cache.ts +0 -0
  379. /package/{src โ†’ dist}/app/plugins/alimtalk/templates/alimtalk.json +0 -0
  380. /package/{src โ†’ dist}/app/plugins/alimtalk/types/client.ts +0 -0
  381. /package/{src โ†’ dist}/app/plugins/alimtalk/types/config.ts +0 -0
  382. /package/{src โ†’ dist}/app/plugins/alimtalk/types/friendtalk.ts +0 -0
  383. /package/{src โ†’ dist}/app/plugins/alimtalk/types/index.ts +0 -0
  384. /package/{src โ†’ dist}/app/plugins/alimtalk/types/job.ts +0 -0
  385. /package/{src โ†’ dist}/app/plugins/alimtalk/webhook.ts +0 -0
  386. /package/{src โ†’ dist}/app/plugins/example/config.json +0 -0
  387. /package/{src โ†’ dist}/app/plugins/example/config.ts +0 -0
  388. /package/{src โ†’ dist}/app/plugins/example/docs/README.md +0 -0
  389. /package/{src โ†’ dist}/app/plugins/example/entity-adapter.ts +0 -0
  390. /package/{src โ†’ dist}/app/plugins/example/handlers.ts +0 -0
  391. /package/{src โ†’ dist}/app/plugins/example/index.ts +0 -0
  392. /package/{src โ†’ dist}/app/plugins/example/routes.ts +0 -0
  393. /package/{src โ†’ dist}/app/plugins/example/service.ts +0 -0
  394. /package/{src โ†’ dist}/app/plugins/example/types/config.ts +0 -0
  395. /package/{src โ†’ dist}/app/plugins/example/types/index.ts +0 -0
  396. /package/{src/app/plugins/friendtalk/config.example.json โ†’ dist/app/plugins/friendtalk/config.json} +0 -0
  397. /package/{src โ†’ dist}/app/plugins/friendtalk/config.ts +0 -0
  398. /package/{src โ†’ dist}/app/plugins/friendtalk/docs/README.md +0 -0
  399. /package/{src โ†’ dist}/app/plugins/friendtalk/entities/friendtalk_log.json +0 -0
  400. /package/{src โ†’ dist}/app/plugins/friendtalk/entities/friendtalk_msg.json +0 -0
  401. /package/{src โ†’ dist}/app/plugins/friendtalk/entity-adapter.ts +0 -0
  402. /package/{src โ†’ dist}/app/plugins/friendtalk/handlers.ts +0 -0
  403. /package/{src โ†’ dist}/app/plugins/friendtalk/routes.ts +0 -0
  404. /package/{src โ†’ dist}/app/plugins/friendtalk/templates/friendtalk.json +0 -0
  405. /package/{src/app/plugins/holidays/config.example.json โ†’ dist/app/plugins/holidays/config.json} +0 -0
  406. /package/{src โ†’ dist}/app/plugins/holidays/config.ts +0 -0
  407. /package/{src โ†’ dist}/app/plugins/holidays/docs/README.md +0 -0
  408. /package/{src โ†’ dist}/app/plugins/holidays/entities/holiday.json +0 -0
  409. /package/{src โ†’ dist}/app/plugins/holidays/handlers.ts +0 -0
  410. /package/{src โ†’ dist}/app/plugins/holidays/index.ts +0 -0
  411. /package/{src โ†’ dist}/app/plugins/holidays/routes.ts +0 -0
  412. /package/{src โ†’ dist}/app/plugins/holidays/service.ts +0 -0
  413. /package/{src โ†’ dist}/app/plugins/holidays/types/api.ts +0 -0
  414. /package/{src โ†’ dist}/app/plugins/holidays/types/config.ts +0 -0
  415. /package/{src โ†’ dist}/app/plugins/holidays/types/index.ts +0 -0
  416. /package/{src/app/plugins/identity/config.example.json โ†’ dist/app/plugins/identity/config.json} +0 -0
  417. /package/{src โ†’ dist}/app/plugins/identity/config.ts +0 -0
  418. /package/{src โ†’ dist}/app/plugins/identity/crypto.ts +0 -0
  419. /package/{src โ†’ dist}/app/plugins/identity/docs/README.md +0 -0
  420. /package/{src โ†’ dist}/app/plugins/identity/entities/account.json +0 -0
  421. /package/{src โ†’ dist}/app/plugins/identity/entities/identity_verification.json +0 -0
  422. /package/{src โ†’ dist}/app/plugins/identity/entity-adapter.ts +0 -0
  423. /package/{src โ†’ dist}/app/plugins/identity/handlers.ts +0 -0
  424. /package/{src โ†’ dist}/app/plugins/identity/index.ts +0 -0
  425. /package/{src โ†’ dist}/app/plugins/identity/providers/danal.ts +0 -0
  426. /package/{src โ†’ dist}/app/plugins/identity/providers/index.ts +0 -0
  427. /package/{src โ†’ dist}/app/plugins/identity/providers/kmc.ts +0 -0
  428. /package/{src โ†’ dist}/app/plugins/identity/providers/nice.ts +0 -0
  429. /package/{src โ†’ dist}/app/plugins/identity/routes.ts +0 -0
  430. /package/{src โ†’ dist}/app/plugins/identity/service.ts +0 -0
  431. /package/{src โ†’ dist}/app/plugins/identity/types/config.ts +0 -0
  432. /package/{src โ†’ dist}/app/plugins/identity/types/index.ts +0 -0
  433. /package/{src โ†’ dist}/app/plugins/identity/types/verification.ts +0 -0
  434. /package/{src โ†’ dist}/app/plugins/llm/cache.ts +0 -0
  435. /package/{src โ†’ dist}/app/plugins/llm/chatbot-store.ts +0 -0
  436. /package/{src โ†’ dist}/app/plugins/llm/chunker.ts +0 -0
  437. /package/{src/app/plugins/llm/config.example.json โ†’ dist/app/plugins/llm/config.json} +0 -0
  438. /package/{src โ†’ dist}/app/plugins/llm/config.ts +0 -0
  439. /package/{src โ†’ dist}/app/plugins/llm/conversation-store.ts +0 -0
  440. /package/{src โ†’ dist}/app/plugins/llm/docs/README.md +0 -0
  441. /package/{src โ†’ dist}/app/plugins/llm/docs/api.md +0 -0
  442. /package/{src โ†’ dist}/app/plugins/llm/document-store.ts +0 -0
  443. /package/{src โ†’ dist}/app/plugins/llm/entities/llm_chatbot.json +0 -0
  444. /package/{src โ†’ dist}/app/plugins/llm/entities/llm_conversation.json +0 -0
  445. /package/{src โ†’ dist}/app/plugins/llm/entities/llm_document.json +0 -0
  446. /package/{src โ†’ dist}/app/plugins/llm/entities/llm_usage.json +0 -0
  447. /package/{src โ†’ dist}/app/plugins/llm/entities/llm_user_profile.json +0 -0
  448. /package/{src โ†’ dist}/app/plugins/llm/handlers.ts +0 -0
  449. /package/{src โ†’ dist}/app/plugins/llm/index.ts +0 -0
  450. /package/{src โ†’ dist}/app/plugins/llm/profile-store.ts +0 -0
  451. /package/{src โ†’ dist}/app/plugins/llm/providers/anthropic.ts +0 -0
  452. /package/{src โ†’ dist}/app/plugins/llm/providers/azure.ts +0 -0
  453. /package/{src โ†’ dist}/app/plugins/llm/providers/gemini.ts +0 -0
  454. /package/{src โ†’ dist}/app/plugins/llm/providers/index.ts +0 -0
  455. /package/{src โ†’ dist}/app/plugins/llm/providers/ollama.ts +0 -0
  456. /package/{src โ†’ dist}/app/plugins/llm/providers/openai.ts +0 -0
  457. /package/{src โ†’ dist}/app/plugins/llm/routes.ts +0 -0
  458. /package/{src โ†’ dist}/app/plugins/llm/service.ts +0 -0
  459. /package/{src โ†’ dist}/app/plugins/llm/template-loader.ts +0 -0
  460. /package/{src โ†’ dist}/app/plugins/llm/templates/prompts/extract_json.json +0 -0
  461. /package/{src โ†’ dist}/app/plugins/llm/templates/prompts/summarize.json +0 -0
  462. /package/{src โ†’ dist}/app/plugins/llm/templates/prompts/translate.json +0 -0
  463. /package/{src โ†’ dist}/app/plugins/llm/types/chat.ts +0 -0
  464. /package/{src โ†’ dist}/app/plugins/llm/types/chatbot.ts +0 -0
  465. /package/{src โ†’ dist}/app/plugins/llm/types/config.ts +0 -0
  466. /package/{src โ†’ dist}/app/plugins/llm/types/conversation.ts +0 -0
  467. /package/{src โ†’ dist}/app/plugins/llm/types/index.ts +0 -0
  468. /package/{src โ†’ dist}/app/plugins/llm/types/profile.ts +0 -0
  469. /package/{src โ†’ dist}/app/plugins/llm/types/store.ts +0 -0
  470. /package/{src โ†’ dist}/app/plugins/llm/types/usage.ts +0 -0
  471. /package/{src โ†’ dist}/app/plugins/llm/usage-store.ts +0 -0
  472. /package/{src โ†’ dist}/app/plugins/oauth/account/handlers/index.ts +0 -0
  473. /package/{src โ†’ dist}/app/plugins/oauth/account/handlers/link.ts +0 -0
  474. /package/{src โ†’ dist}/app/plugins/oauth/account/handlers/providers-list.ts +0 -0
  475. /package/{src โ†’ dist}/app/plugins/oauth/account/handlers/refresh.ts +0 -0
  476. /package/{src โ†’ dist}/app/plugins/oauth/account/handlers/unlink.ts +0 -0
  477. /package/{src/app/plugins/oauth/config.example.json โ†’ dist/app/plugins/oauth/config.json} +0 -0
  478. /package/{src โ†’ dist}/app/plugins/oauth/config.ts +0 -0
  479. /package/{src โ†’ dist}/app/plugins/oauth/docs/README.md +0 -0
  480. /package/{src โ†’ dist}/app/plugins/oauth/entities/account_oauth.json +0 -0
  481. /package/{src โ†’ dist}/app/plugins/oauth/handlers/callback.ts +0 -0
  482. /package/{src โ†’ dist}/app/plugins/oauth/handlers/index.ts +0 -0
  483. /package/{src โ†’ dist}/app/plugins/oauth/handlers/redirect.ts +0 -0
  484. /package/{src โ†’ dist}/app/plugins/oauth/index.ts +0 -0
  485. /package/{src โ†’ dist}/app/plugins/oauth/providers/index.ts +0 -0
  486. /package/{src โ†’ dist}/app/plugins/oauth/routes.ts +0 -0
  487. /package/{src โ†’ dist}/app/plugins/oauth/service.ts +0 -0
  488. /package/{src โ†’ dist}/app/plugins/oauth/state.ts +0 -0
  489. /package/{src โ†’ dist}/app/plugins/oauth/types/index.ts +0 -0
  490. /package/{src โ†’ dist}/app/plugins/oauth/upsert.ts +0 -0
  491. /package/{src/app/plugins/ocr/config.example.json โ†’ dist/app/plugins/ocr/config.json} +0 -0
  492. /package/{src โ†’ dist}/app/plugins/ocr/docs/README.md +0 -0
  493. /package/{src โ†’ dist}/app/plugins/ocr/docs/api.md +0 -0
  494. /package/{src โ†’ dist}/app/plugins/ocr/entities/ocr_result.json +0 -0
  495. /package/{src โ†’ dist}/app/plugins/ocr/entities/ocr_usage.json +0 -0
  496. /package/{src โ†’ dist}/app/plugins/ocr/templates/business_reg.json +0 -0
  497. /package/{src โ†’ dist}/app/plugins/ocr/templates/career_cert.json +0 -0
  498. /package/{src โ†’ dist}/app/plugins/ocr/templates/driver_license.json +0 -0
  499. /package/{src โ†’ dist}/app/plugins/ocr/templates/facility_card.json +0 -0
  500. /package/{src โ†’ dist}/app/plugins/ocr/templates/id_card.json +0 -0
  501. /package/{src โ†’ dist}/app/plugins/ocr/templates/invoice.json +0 -0
  502. /package/{src โ†’ dist}/app/plugins/ocr/templates/namecard.json +0 -0
  503. /package/{src โ†’ dist}/app/plugins/ocr/templates/prompts/business_reg.json +0 -0
  504. /package/{src โ†’ dist}/app/plugins/ocr/templates/prompts/career_cert.json +0 -0
  505. /package/{src โ†’ dist}/app/plugins/ocr/templates/prompts/driver_license.json +0 -0
  506. /package/{src โ†’ dist}/app/plugins/ocr/templates/prompts/facility_card.json +0 -0
  507. /package/{src โ†’ dist}/app/plugins/ocr/templates/prompts/general.json +0 -0
  508. /package/{src โ†’ dist}/app/plugins/ocr/templates/prompts/id_card.json +0 -0
  509. /package/{src โ†’ dist}/app/plugins/ocr/templates/prompts/invoice.json +0 -0
  510. /package/{src โ†’ dist}/app/plugins/ocr/templates/prompts/namecard.json +0 -0
  511. /package/{src โ†’ dist}/app/plugins/ocr/templates/prompts/receipt.json +0 -0
  512. /package/{src โ†’ dist}/app/plugins/ocr/templates/receipt.json +0 -0
  513. /package/{src/app/plugins/pg/config.example.json โ†’ dist/app/plugins/pg/config.json} +0 -0
  514. /package/{src โ†’ dist}/app/plugins/pg/config.ts +0 -0
  515. /package/{src โ†’ dist}/app/plugins/pg/docs/README.md +0 -0
  516. /package/{src โ†’ dist}/app/plugins/pg/entities/pg_cancel.json +0 -0
  517. /package/{src โ†’ dist}/app/plugins/pg/entities/pg_order.json +0 -0
  518. /package/{src โ†’ dist}/app/plugins/pg/entities/pg_webhook_log.json +0 -0
  519. /package/{src โ†’ dist}/app/plugins/pg/entity-adapter.ts +0 -0
  520. /package/{src โ†’ dist}/app/plugins/pg/handlers.ts +0 -0
  521. /package/{src โ†’ dist}/app/plugins/pg/index.ts +0 -0
  522. /package/{src โ†’ dist}/app/plugins/pg/providers/danal.ts +0 -0
  523. /package/{src โ†’ dist}/app/plugins/pg/providers/hecto.ts +0 -0
  524. /package/{src โ†’ dist}/app/plugins/pg/providers/index.ts +0 -0
  525. /package/{src โ†’ dist}/app/plugins/pg/providers/inicis.ts +0 -0
  526. /package/{src โ†’ dist}/app/plugins/pg/providers/kakaopay.ts +0 -0
  527. /package/{src โ†’ dist}/app/plugins/pg/providers/kcp.ts +0 -0
  528. /package/{src โ†’ dist}/app/plugins/pg/providers/naverpay.ts +0 -0
  529. /package/{src โ†’ dist}/app/plugins/pg/providers/payco.ts +0 -0
  530. /package/{src โ†’ dist}/app/plugins/pg/providers/payletter.ts +0 -0
  531. /package/{src โ†’ dist}/app/plugins/pg/providers/paypal.ts +0 -0
  532. /package/{src โ†’ dist}/app/plugins/pg/providers/toss.ts +0 -0
  533. /package/{src โ†’ dist}/app/plugins/pg/providers/wanna.ts +0 -0
  534. /package/{src โ†’ dist}/app/plugins/pg/routes.ts +0 -0
  535. /package/{src โ†’ dist}/app/plugins/pg/service.ts +0 -0
  536. /package/{src โ†’ dist}/app/plugins/pg/types/client.ts +0 -0
  537. /package/{src โ†’ dist}/app/plugins/pg/types/config.ts +0 -0
  538. /package/{src โ†’ dist}/app/plugins/pg/types/error.ts +0 -0
  539. /package/{src โ†’ dist}/app/plugins/pg/types/index.ts +0 -0
  540. /package/{src โ†’ dist}/app/plugins/pg/types/payment.ts +0 -0
  541. /package/{src โ†’ dist}/app/plugins/providers/docs/README.md +0 -0
  542. /package/{src โ†’ dist}/app/plugins/providers/solapi-auth.ts +0 -0
  543. /package/{src/app/plugins/push/config.example.json โ†’ dist/app/plugins/push/config.json} +0 -0
  544. /package/{src โ†’ dist}/app/plugins/push/config.ts +0 -0
  545. /package/{src โ†’ dist}/app/plugins/push/docs/README.md +0 -0
  546. /package/{src โ†’ dist}/app/plugins/push/entities/push_log.json +0 -0
  547. /package/{src โ†’ dist}/app/plugins/push/entities/push_msg.json +0 -0
  548. /package/{src โ†’ dist}/app/plugins/push/entity-adapter.ts +0 -0
  549. /package/{src โ†’ dist}/app/plugins/push/handlers.ts +0 -0
  550. /package/{src โ†’ dist}/app/plugins/push/index.ts +0 -0
  551. /package/{src โ†’ dist}/app/plugins/push/providers/apns.ts +0 -0
  552. /package/{src โ†’ dist}/app/plugins/push/providers/fcm.ts +0 -0
  553. /package/{src โ†’ dist}/app/plugins/push/providers/index.ts +0 -0
  554. /package/{src โ†’ dist}/app/plugins/push/providers/utils.ts +0 -0
  555. /package/{src โ†’ dist}/app/plugins/push/routes.ts +0 -0
  556. /package/{src โ†’ dist}/app/plugins/push/service.ts +0 -0
  557. /package/{src โ†’ dist}/app/plugins/push/types/config.ts +0 -0
  558. /package/{src โ†’ dist}/app/plugins/push/types/index.ts +0 -0
  559. /package/{src โ†’ dist}/app/plugins/push/types/job.ts +0 -0
  560. /package/{src โ†’ dist}/app/plugins/shared/docs/README.md +0 -0
  561. /package/{src/app/plugins/sms/config.example.json โ†’ dist/app/plugins/sms/config.json} +0 -0
  562. /package/{src โ†’ dist}/app/plugins/sms/docs/README.md +0 -0
  563. /package/{src โ†’ dist}/app/plugins/sms/entities/sms_log.json +0 -0
  564. /package/{src โ†’ dist}/app/plugins/sms/entities/sms_msg.json +0 -0
  565. /package/{src โ†’ dist}/app/plugins/sms/entities/sms_verification.json +0 -0
  566. /package/{src โ†’ dist}/app/plugins/smtp/config.json +0 -0
  567. /package/{src โ†’ dist}/app/plugins/smtp/docs/README.md +0 -0
  568. /package/{src โ†’ dist}/app/plugins/smtp/templates/layout.html +0 -0
  569. /package/{src/app/plugins/taxinvoice/config.example.json โ†’ dist/app/plugins/taxinvoice/config.json} +0 -0
  570. /package/{src โ†’ dist}/app/plugins/taxinvoice/config.ts +0 -0
  571. /package/{src โ†’ dist}/app/plugins/taxinvoice/docs/README.md +0 -0
  572. /package/{src โ†’ dist}/app/plugins/taxinvoice/entities/tax_invoice.json +0 -0
  573. /package/{src โ†’ dist}/app/plugins/taxinvoice/entities/tax_invoice_item.json +0 -0
  574. /package/{src โ†’ dist}/app/plugins/taxinvoice/entities/tax_invoice_log.json +0 -0
  575. /package/{src โ†’ dist}/app/plugins/taxinvoice/entities/tax_invoice_party.json +0 -0
  576. /package/{src โ†’ dist}/app/plugins/taxinvoice/entity-adapter.ts +0 -0
  577. /package/{src โ†’ dist}/app/plugins/taxinvoice/handlers.ts +0 -0
  578. /package/{src โ†’ dist}/app/plugins/taxinvoice/index.ts +0 -0
  579. /package/{src โ†’ dist}/app/plugins/taxinvoice/providers/barobill.ts +0 -0
  580. /package/{src โ†’ dist}/app/plugins/taxinvoice/providers/bolta.ts +0 -0
  581. /package/{src โ†’ dist}/app/plugins/taxinvoice/providers/esero.ts +0 -0
  582. /package/{src โ†’ dist}/app/plugins/taxinvoice/providers/index.ts +0 -0
  583. /package/{src โ†’ dist}/app/plugins/taxinvoice/providers/popbill.ts +0 -0
  584. /package/{src โ†’ dist}/app/plugins/taxinvoice/providers/sendbill.ts +0 -0
  585. /package/{src โ†’ dist}/app/plugins/taxinvoice/providers/smartbill.ts +0 -0
  586. /package/{src โ†’ dist}/app/plugins/taxinvoice/routes.ts +0 -0
  587. /package/{src โ†’ dist}/app/plugins/taxinvoice/service.ts +0 -0
  588. /package/{src โ†’ dist}/app/plugins/taxinvoice/types/client.ts +0 -0
  589. /package/{src โ†’ dist}/app/plugins/taxinvoice/types/config.ts +0 -0
  590. /package/{src โ†’ dist}/app/plugins/taxinvoice/types/index.ts +0 -0
  591. /package/{src โ†’ dist}/app/plugins/taxinvoice/types/invoice.ts +0 -0
  592. /package/{src โ†’ dist}/app/plugins/taxinvoice/types/queue.ts +0 -0
  593. /package/{src โ†’ dist}/app/plugins/vessel_kr/config.json +0 -0
  594. /package/{src โ†’ dist}/app/plugins/vessel_kr/config.ts +0 -0
  595. /package/{src โ†’ dist}/app/plugins/vessel_kr/docs/README.md +0 -0
  596. /package/{src โ†’ dist}/app/plugins/vessel_kr/entities/vessel_kr_entry.json +0 -0
  597. /package/{src โ†’ dist}/app/plugins/vessel_kr/handlers.ts +0 -0
  598. /package/{src โ†’ dist}/app/plugins/vessel_kr/index.ts +0 -0
  599. /package/{src โ†’ dist}/app/plugins/vessel_kr/routes.ts +0 -0
  600. /package/{src โ†’ dist}/app/plugins/vessel_kr/service.ts +0 -0
  601. /package/{src โ†’ dist}/app/plugins/vessel_kr/types/index.ts +0 -0
  602. /package/{src โ†’ dist}/app/routes/README.md +0 -0
  603. /package/{src โ†’ dist}/app/routes/account/change-password/config.json +0 -0
  604. /package/{src โ†’ dist}/app/routes/account/change-password/entities/password_history.json +0 -0
  605. /package/{src โ†’ dist}/app/routes/account/change-password/handlers.ts +0 -0
  606. /package/{src โ†’ dist}/app/routes/account/change-password/routes.ts +0 -0
  607. /package/{src โ†’ dist}/app/routes/account/config.json +0 -0
  608. /package/{src โ†’ dist}/app/routes/account/reactivate/config.json +0 -0
  609. /package/{src โ†’ dist}/app/routes/account/reactivate/handlers.ts +0 -0
  610. /package/{src โ†’ dist}/app/routes/account/reactivate/routes.ts +0 -0
  611. /package/{src โ†’ dist}/app/routes/account/register/config-loader.ts +0 -0
  612. /package/{src โ†’ dist}/app/routes/account/register/config.json +0 -0
  613. /package/{src โ†’ dist}/app/routes/account/register/handlers.ts +0 -0
  614. /package/{src โ†’ dist}/app/routes/account/register/routes.ts +0 -0
  615. /package/{src โ†’ dist}/app/routes/account/register/types/index.ts +0 -0
  616. /package/{src โ†’ dist}/app/routes/account/routes.ts +0 -0
  617. /package/{src โ†’ dist}/app/routes/account/templates/force_reset.html +0 -0
  618. /package/{src โ†’ dist}/app/routes/account/templates/welcome.html +0 -0
  619. /package/{src โ†’ dist}/app/routes/account/withdraw/handlers.ts +0 -0
  620. /package/{src โ†’ dist}/app/routes/account/withdraw/routes.ts +0 -0
  621. /package/{src โ†’ dist}/app/routes/approval/config.json +0 -0
  622. /package/{src โ†’ dist}/app/routes/approval/entities/approval.json +0 -0
  623. /package/{src โ†’ dist}/app/routes/approval/entities/comments.json +0 -0
  624. /package/{src โ†’ dist}/app/routes/approval/entities/reference.json +0 -0
  625. /package/{src โ†’ dist}/app/routes/approval/routes.ts +0 -0
  626. /package/{src โ†’ dist}/app/routes/auth/config.json +0 -0
  627. /package/{src โ†’ dist}/app/routes/auth/handlers.ts +0 -0
  628. /package/{src โ†’ dist}/app/routes/auth/routes.ts +0 -0
  629. /package/{src โ†’ dist}/app/routes/board/config.json +0 -0
  630. /package/{src โ†’ dist}/app/routes/board/entities/board_category.json +0 -0
  631. /package/{src โ†’ dist}/app/routes/board/entities/board_comment.json +0 -0
  632. /package/{src โ†’ dist}/app/routes/board/entities/board_like.json +0 -0
  633. /package/{src โ†’ dist}/app/routes/board/entities/board_mention.json +0 -0
  634. /package/{src โ†’ dist}/app/routes/board/entities/board_post.json +0 -0
  635. /package/{src โ†’ dist}/app/routes/board/entities/board_post_tag.json +0 -0
  636. /package/{src โ†’ dist}/app/routes/board/entities/board_rating.json +0 -0
  637. /package/{src โ†’ dist}/app/routes/board/entities/board_read_log.json +0 -0
  638. /package/{src โ†’ dist}/app/routes/board/entities/board_report.json +0 -0
  639. /package/{src โ†’ dist}/app/routes/board/entities/board_tag.json +0 -0
  640. /package/{src โ†’ dist}/app/routes/board/handlers/categories.ts +0 -0
  641. /package/{src โ†’ dist}/app/routes/board/handlers/comments.ts +0 -0
  642. /package/{src โ†’ dist}/app/routes/board/handlers/files.ts +0 -0
  643. /package/{src โ†’ dist}/app/routes/board/handlers/likes.ts +0 -0
  644. /package/{src โ†’ dist}/app/routes/board/handlers/mentions.ts +0 -0
  645. /package/{src โ†’ dist}/app/routes/board/handlers/posts.ts +0 -0
  646. /package/{src โ†’ dist}/app/routes/board/handlers/ratings.ts +0 -0
  647. /package/{src โ†’ dist}/app/routes/board/handlers/reports.ts +0 -0
  648. /package/{src โ†’ dist}/app/routes/board/handlers/tags.ts +0 -0
  649. /package/{src โ†’ dist}/app/routes/board/routes.ts +0 -0
  650. /package/{src โ†’ dist}/app/routes/password-reset/config.example.json +0 -0
  651. /package/{src โ†’ dist}/app/routes/password-reset/config.json +0 -0
  652. /package/{src โ†’ dist}/app/routes/password-reset/entities/account.json +0 -0
  653. /package/{src โ†’ dist}/app/routes/password-reset/handlers.ts +0 -0
  654. /package/{src โ†’ dist}/app/routes/password-reset/password-utils.ts +0 -0
  655. /package/{src โ†’ dist}/app/routes/password-reset/routes.ts +0 -0
  656. /package/{src โ†’ dist}/app/routes/password-reset/templates/password_reset.html +0 -0
  657. /package/{src โ†’ dist}/app/routes/password-reset/templates/password_reset_link.html +0 -0
  658. /package/{src โ†’ dist}/app/routes/password-reset/types/index.ts +0 -0
  659. /package/{src โ†’ dist}/app/routes/privilege/config.json +0 -0
  660. /package/{src โ†’ dist}/app/routes/privilege/entities/pv_group.json +0 -0
  661. /package/{src โ†’ dist}/app/routes/privilege/entities/pv_group_item.json +0 -0
  662. /package/{src โ†’ dist}/app/routes/privilege/entities/pv_item.json +0 -0
  663. /package/{src โ†’ dist}/app/routes/privilege/entities/user_pv_group.json +0 -0
  664. /package/{src โ†’ dist}/app/routes/privilege/entities/user_pv_item.json +0 -0
  665. /package/{src โ†’ dist}/app/routes/privilege/routes.ts +0 -0
  666. /package/{src โ†’ dist}/app/routes/user/config.json +0 -0
  667. /package/{src โ†’ dist}/app/routes/user/entities/user.json +0 -0
  668. /package/{src โ†’ dist}/app/routes/user/entities/user_biometric.json +0 -0
  669. /package/{src โ†’ dist}/app/routes/user/routes.ts +0 -0
  670. /package/{src โ†’ dist}/app/schedules/README.md +0 -0
  671. /package/{src โ†’ dist}/app/schedules/data-retention/config.json +0 -0
  672. /package/{src โ†’ dist}/app/schedules/data-retention/index.ts +0 -0
  673. /package/{src โ†’ dist}/app/schedules/dormancy/config.json +0 -0
  674. /package/{src โ†’ dist}/app/schedules/dormancy/entities/account.json +0 -0
  675. /package/{src โ†’ dist}/app/schedules/dormancy/entities/privacy_cron_lock.json +0 -0
  676. /package/{src โ†’ dist}/app/schedules/dormancy/index.ts +0 -0
  677. /package/{src โ†’ dist}/app/schedules/dormancy/templates/dormancy_completed.html +0 -0
  678. /package/{src โ†’ dist}/app/schedules/dormancy/templates/dormancy_warning.html +0 -0
  679. /package/{configs โ†’ dist/configs}/cache.json +0 -0
  680. /package/{configs โ†’ dist/configs}/cors.json +0 -0
  681. /package/{configs โ†’ dist/configs}/database.json +0 -0
  682. /package/{configs โ†’ dist/configs}/security.json +0 -0
  683. /package/{configs โ†’ dist/configs}/server.json +0 -0
  684. /package/{docs โ†’ dist/docs}/README.md +0 -0
  685. /package/{docs โ†’ dist/docs}/architecture.md +0 -0
  686. /package/{docs โ†’ dist/docs}/cache.md +0 -0
  687. /package/{docs โ†’ dist/docs}/configs.md +0 -0
  688. /package/{docs โ†’ dist/docs}/database.md +0 -0
  689. /package/{docs โ†’ dist/docs}/flows.md +0 -0
  690. /package/{docs โ†’ dist/docs}/getting-started.md +0 -0
  691. /package/{docs โ†’ dist/docs}/hooks.md +0 -0
  692. /package/{docs โ†’ dist/docs}/internals.md +0 -0
  693. /package/{docs โ†’ dist/docs}/plugins/2fa.md +0 -0
  694. /package/{docs โ†’ dist/docs}/plugins/alimtalk.md +0 -0
  695. /package/{docs โ†’ dist/docs}/plugins/friendtalk.md +0 -0
  696. /package/{docs โ†’ dist/docs}/plugins/holidays.md +0 -0
  697. /package/{docs โ†’ dist/docs}/plugins/how-to-create.md +0 -0
  698. /package/{docs โ†’ dist/docs}/plugins/identity.md +0 -0
  699. /package/{docs โ†’ dist/docs}/plugins/llm.md +0 -0
  700. /package/{docs โ†’ dist/docs}/plugins/oauth.md +0 -0
  701. /package/{docs โ†’ dist/docs}/plugins/ocr.md +0 -0
  702. /package/{docs โ†’ dist/docs}/plugins/pg.md +0 -0
  703. /package/{docs โ†’ dist/docs}/plugins/push.md +0 -0
  704. /package/{docs โ†’ dist/docs}/plugins/sms.md +0 -0
  705. /package/{docs โ†’ dist/docs}/plugins/taxinvoice.md +0 -0
  706. /package/{docs โ†’ dist/docs}/routes/README.md +0 -0
  707. /package/{docs โ†’ dist/docs}/routes/account-routes.md +0 -0
  708. /package/{docs โ†’ dist/docs}/routes/alimtalk-routes.md +0 -0
  709. /package/{docs โ†’ dist/docs}/routes/board-routes.md +0 -0
  710. /package/{docs โ†’ dist/docs}/routes/email-verification.md +0 -0
  711. /package/{docs โ†’ dist/docs}/routes/friendtalk-routes.md +0 -0
  712. /package/{docs โ†’ dist/docs}/routes/holidays-routes.md +0 -0
  713. /package/{docs โ†’ dist/docs}/routes/how-to-create.md +0 -0
  714. /package/{docs โ†’ dist/docs}/routes/identity-routes.md +0 -0
  715. /package/{docs โ†’ dist/docs}/routes/llm-routes.md +0 -0
  716. /package/{docs โ†’ dist/docs}/routes/ocr-routes.md +0 -0
  717. /package/{docs โ†’ dist/docs}/routes/password-reset.md +0 -0
  718. /package/{docs โ†’ dist/docs}/routes/pg-routes.md +0 -0
  719. /package/{docs โ†’ dist/docs}/routes/push-routes.md +0 -0
  720. /package/{docs โ†’ dist/docs}/routes/sms-routes.md +0 -0
  721. /package/{docs โ†’ dist/docs}/routes/smtp-routes.md +0 -0
  722. /package/{docs โ†’ dist/docs}/routes/tax-invoice-routes.md +0 -0
  723. /package/{docs โ†’ dist/docs}/schedules/dormancy-and-retention.md +0 -0
  724. /package/{docs โ†’ dist/docs}/schedules/how-to-create.md +0 -0
  725. /package/{docs โ†’ dist/docs}/scripts-guide.md +0 -0
  726. /package/{docs โ†’ dist/docs}/security.md +0 -0
  727. /package/{docs โ†’ dist/docs}/system.md +0 -0
  728. /package/{scripts โ†’ dist/scripts}/entity.sh +0 -0
  729. /package/{scripts โ†’ dist/scripts}/reset-all.sh +0 -0
  730. /package/{scripts โ†’ dist/scripts}/run.sh +0 -0
  731. /package/{scripts/dist-tsconfig.json โ†’ dist/tsconfig.json} +0 -0
@@ -1,52 +0,0 @@
1
- /**
2
- * SMTP API ํ•ธ๋“ค๋Ÿฌ
3
- *
4
- * ์•ฑ ์„œ๋ฒ„๊ฐ€ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜๋Š” ์ด์œ :
5
- * - ๋กœ์ปฌ ํ…œํ”Œ๋ฆฟ(templates/*.html) ๋ Œ๋”๋ง ํ›„ body_html์„ ์™„์„ฑํ•˜์—ฌ Go ์„œ๋ฒ„๋กœ ์ „๋‹ฌ
6
- * - ํ”„๋ก์‹œ ํŒจ์Šค์Šค๋ฃจ๋กœ๋Š” ์•ฑ ์„œ๋ฒ„ ๋กœ์ปฌ ํŒŒ์ผ์— ์ ‘๊ทผ ๋ถˆ๊ฐ€
7
- *
8
- * ๋ผ์šฐํŠธ์— ์—†๋Š” /api/v1/smtp/* ๊ฒฝ๋กœ๋Š” proxy/register.ts๊ฐ€ Go ์„œ๋ฒ„๋กœ ํŒจ์Šค์Šค๋ฃจํ•œ๋‹ค.
9
- */
10
-
11
- import type { FastifyRequest, FastifyReply } from "fastify";
12
- import { ok, fail, sendEmail, entityServer } from "@gateway/api";
13
- import type { SendEmailParams } from "@gateway/api";
14
-
15
- // โ”€โ”€โ”€ ํ•ธ๋“ค๋Ÿฌ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
16
-
17
- /**
18
- * POST /api/v1/smtp/send
19
- *
20
- * templateName์ด ์ง€์ •๋˜๋ฉด ๋กœ์ปฌ templates/ ์—์„œ ๋ Œ๋”๋ง ํ›„ Go ์„œ๋ฒ„์— ์ „๋‹ฌ.
21
- * templateName ์—†์ด body_html/body_text๋งŒ ์ง€์ •ํ•˜๋ฉด ๊ทธ๋Œ€๋กœ ์ „๋‹ฌ.
22
- */
23
- export async function handleSend(request: FastifyRequest, reply: FastifyReply) {
24
- const params = (request.body ?? {}) as SendEmailParams;
25
-
26
- if (!params.to || params.to.length === 0) {
27
- return reply.status(400).send(fail("to is required"));
28
- }
29
-
30
- const seq = await sendEmail(params);
31
- return ok({ seq });
32
- }
33
-
34
- /**
35
- * GET /api/v1/smtp/status/:seq
36
- *
37
- * Go ์„œ๋ฒ„์— ๋ฐœ์†ก ์ƒํƒœ๋ฅผ ์กฐํšŒํ•œ๋‹ค.
38
- */
39
- export async function handleStatus(
40
- request: FastifyRequest,
41
- reply: FastifyReply,
42
- ) {
43
- const { seq } = request.params as { seq: string };
44
- const seqNum = Number(seq);
45
-
46
- if (!seqNum || seqNum <= 0) {
47
- return reply.status(400).send(fail("Invalid seq"));
48
- }
49
-
50
- const result = await entityServer.smtpStatus(seqNum);
51
- return ok(result);
52
- }
@@ -1,33 +0,0 @@
1
- /**
2
- * SMTP ํ”Œ๋Ÿฌ๊ทธ์ธ
3
- *
4
- * ์•ฑ ์„œ๋ฒ„ ๋‚ด ๋ชจ๋“  ์ด๋ฉ”์ผ ๋ฐœ์†ก์— ์‚ฌ์šฉํ•  ๊ณต์œ  ๋ ˆ์ด์•„์›ƒ์„ ๋“ฑ๋กํ•œ๋‹ค.
5
- * ์•ŒํŒŒ๋ฒณ ์ˆœ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋กœ๋“œ ์ค‘ ์ดˆ๊ธฐํ™”๋˜๋ฉฐ, ์ดํ›„์˜ ๋ชจ๋“  renderTemplate ํ˜ธ์ถœ์—์„œ
6
- * plugins/smtp/templates/layout.html ์„ ๊ณตํ†ต ๋ž˜ํผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
7
- *
8
- * HTTP ๋ผ์šฐํŠธ๋Š” routes.ts ์—์„œ ๋“ฑ๋กํ•˜๋ฉฐ, proxy/register.ts ์˜ ํŒจ์Šค์Šค๋ฃจ๋ณด๋‹ค
9
- * ๋จผ์ € ์ฒ˜๋ฆฌ๋œ๋‹ค (system/routes/loader.ts โ†’ system/proxy/register.ts ์ˆœ์„œ).
10
- *
11
- * - POST /api/v1/smtp/send โ†’ ๋กœ์ปฌ ํ…œํ”Œ๋ฆฟ ๋ Œ๋”๋ง ํ›„ Go ์„œ๋ฒ„๋กœ ๋ฐœ์†ก
12
- * - GET /api/v1/smtp/status/:seq โ†’ Go ์„œ๋ฒ„์— ๋ฐœ์†ก ์ƒํƒœ ์กฐํšŒ
13
- *
14
- * routes.ts์— ์—†๋Š” /api/v1/smtp/* ๊ฒฝ๋กœ๋Š” Go ์„œ๋ฒ„๋กœ ํŒจ์Šค์Šค๋ฃจ๋œ๋‹ค.
15
- */
16
-
17
- import fp from "fastify-plugin";
18
- import type { FastifyInstance } from "fastify";
19
- import { dirname, join } from "node:path";
20
- import { fileURLToPath } from "node:url";
21
- import { setSharedLayout } from "@gateway/api";
22
- import { logger } from "@gateway/api";
23
-
24
- const __dirname = dirname(fileURLToPath(import.meta.url));
25
-
26
- export default fp(
27
- async (_app: FastifyInstance) => {
28
- const layoutPath = join(__dirname, "templates", "layout.html");
29
- setSharedLayout(layoutPath);
30
- logger.debug({ layout: layoutPath }, "Email shared layout registered");
31
- },
32
- { name: "smtp" },
33
- );
@@ -1,19 +0,0 @@
1
- /**
2
- * SMTP ๋ผ์šฐํŠธ ํ…Œ์ด๋ธ”
3
- * ๋“ฑ๋ก ๊ฒฝ๋กœ: /api/v1/smtp/*
4
- *
5
- * ์—ฌ๊ธฐ์„œ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๋Š” /api/v1/smtp/* ๊ฒฝ๋กœ๋Š”
6
- * system/proxy/register.ts ์— ์˜ํ•ด Go ์„œ๋ฒ„๋กœ ํŒจ์Šค์Šค๋ฃจ๋œ๋‹ค.
7
- */
8
-
9
- import type { FastifyInstance } from "fastify";
10
- import * as h from "./handlers.ts";
11
-
12
- /** SMTP ๋ผ์šฐํŠธ๋ฅผ ๋“ฑ๋กํ•œ๋‹ค */
13
- export default async function smtpRoutes(app: FastifyInstance) {
14
- // POST /api/v1/smtp/send โ€” ๋กœ์ปฌ ํ…œํ”Œ๋ฆฟ ๋ Œ๋”๋ง ํ›„ Go ์„œ๋ฒ„๋กœ ๋ฐœ์†ก
15
- app.post("/send", h.handleSend);
16
-
17
- // GET /api/v1/smtp/status/:seq โ€” ๋ฐœ์†ก ์ƒํƒœ ์กฐํšŒ
18
- app.get("/status/:seq", h.handleStatus);
19
- }
@@ -1,8 +0,0 @@
1
- /** plugins/smtp/config.json ์Šคํ‚ค๋งˆ */
2
- export interface SmtpPluginConfig {
3
- enabled: boolean; // ๋ผ์šฐํŠธ ํ™œ์„ฑํ™” ์—ฌ๋ถ€ (false๋ฉด routes.ts ๋“ฑ๋ก ์•ˆ ๋จ)
4
-
5
- deploy?: boolean; // ๋นŒ๋“œ ์‹œ dist์—์„œ ์ œ์™ธ ์—ฌ๋ถ€
6
-
7
- minify?: boolean; // ๋นŒ๋“œ ์‹œ ๋‚œ๋…ํ™” ์—ฌ๋ถ€
8
- }
@@ -1 +0,0 @@
1
- export * from "./config.ts";
@@ -1,35 +0,0 @@
1
- {
2
- "_comment": "์ „์ž์„ธ๊ธˆ๊ณ„์‚ฐ์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ โ€” ๋ฐ”๋กœ๋นŒ ์—ฐ๋™, ๊ตญ์„ธ์ฒญ ์ž๋™ ์ „์†กยท์ƒํƒœ ๋™๊ธฐํ™”ยท๋ฐœํ–‰ ํ ์ฒ˜๋ฆฌ ์ง€์›",
3
- "enabled": false,
4
- "default": "barobill",
5
- "workers": 2,
6
- "queue_size": 100,
7
- "dispatch_interval_sec": 10,
8
- "max_retries": 3,
9
- "providers": {
10
- "barobill": {
11
- "driver": "barobill",
12
- "cert_key": "${TAXINVOICE_CERT_KEY}",
13
- "corp_num": "${TAXINVOICE_CORP_NUM}",
14
- "user_id": "${TAXINVOICE_USER_ID}",
15
- "api_endpoint": "https://barobill.co.kr/TAPI/TaxInvoiceService.asmx",
16
- "timeout_sec": 30
17
- }
18
- },
19
- "nts": {
20
- "auto_send": false,
21
- "taxation_option": 1,
22
- "taxation_add_tax_allow": 0,
23
- "tax_exemption_option": 1,
24
- "tax_exemption_add_tax_allow": 0
25
- },
26
- "notify": ["log"],
27
- "sync": {
28
- "enabled": false,
29
- "interval_sec": 600,
30
- "state_sync_interval_min": 10,
31
- "max_list_days": 200
32
- },
33
- "deploy": true,
34
- "minify": false
35
- }
@@ -1,5 +0,0 @@
1
- {
2
- "enabled": false,
3
- "deploy": false,
4
- "minify": false
5
- }
@@ -1,23 +0,0 @@
1
- {
2
- "name": "calendar_attendees",
3
- "description": "์ผ์ • ์ฐธ์„์ž ์ •๋ณด. ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— ๋งž๊ฒŒ fields๋ฅผ ์ž์œ ๋กญ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
4
- "fields": {
5
- "event_seq": {
6
- "index": true,
7
- "comment": "์ผ์ •seq"
8
- },
9
- "employee_seq": {
10
- "index": true,
11
- "comment": "์ง์›seq"
12
- }
13
- },
14
- "unique": [
15
- [
16
- "event_seq",
17
- "employee_seq"
18
- ]
19
- ],
20
- "fk": {
21
- "event_seq": "calendar_events.seq"
22
- }
23
- }
@@ -1,17 +0,0 @@
1
- {
2
- "name": "calendar_comments",
3
- "description": "์ผ์ • ๋Œ“๊ธ€ ์ •๋ณด. JWT ์ธ์ฆ ์‹œ account_seq โ†” account ๊ด€๊ณ„. ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— ๋งž๊ฒŒ fields๋ฅผ ์ž์œ ๋กญ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
4
- "fields": {
5
- "event_seq": {
6
- "index": true,
7
- "comment": "์ผ์ •seq"
8
- },
9
- "account_seq": {
10
- "index": true,
11
- "comment": "์‚ฌ์šฉ์žseq (JWT ์ธ์ฆ ์‹œ account.seq ์ฐธ์กฐ. HMAC์€ nullable)"
12
- }
13
- },
14
- "fk": {
15
- "event_seq": "calendar_events.seq"
16
- }
17
- }
@@ -1,48 +0,0 @@
1
- {
2
- "name": "calendar_events",
3
- "description": "๋‹ฌ๋ ฅ ์ด๋ฒคํŠธ ์ •๋ณด. JWT ์ธ์ฆ ์‹œ account_seq โ†” account ๊ด€๊ณ„. ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— ๋งž๊ฒŒ fields๋ฅผ ์ž์œ ๋กญ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
4
- "fields": {
5
- "account_seq": {
6
- "index": true,
7
- "comment": "์‚ฌ์šฉ์žseq (JWT ์ธ์ฆ ์‹œ account.seq ์ฐธ์กฐ. HMAC์€ nullable)"
8
- },
9
- "bgn_time": {
10
- "index": true,
11
- "comment": "์‹œ์ž‘์ผ์‹œ"
12
- },
13
- "category": {
14
- "index": true,
15
- "comment": "๋ถ„๋ฅ˜"
16
- },
17
- "end_time": {
18
- "index": true,
19
- "comment": "์ข…๋ฃŒ์ผ์‹œ"
20
- },
21
- "group_seq": {
22
- "index": true,
23
- "comment": "๊ทธ๋ฃนseq"
24
- },
25
- "method": {
26
- "index": true,
27
- "comment": "๋ฐฉ์‹"
28
- },
29
- "related_seq": {
30
- "index": true,
31
- "comment": "์—ฐ๊ด€seq"
32
- },
33
- "repeat": {
34
- "comment": "๋ฐ˜๋ณต์—ฌ๋ถ€"
35
- },
36
- "title": {
37
- "index": true,
38
- "comment": "์ œ๋ชฉ"
39
- },
40
- "visible": {
41
- "index": true,
42
- "comment": "๊ณต๊ฐœ์—ฌ๋ถ€"
43
- }
44
- },
45
- "fk": {
46
- "group_seq": "hr_group.seq"
47
- }
48
- }
@@ -1,11 +0,0 @@
1
- {
2
- "name": "calendar_kind",
3
- "description": "calendar_kind ์—”ํ‹ฐํ‹ฐ. ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— ๋งž๊ฒŒ fields๋ฅผ ์ž์œ ๋กญ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
4
- "fields": {
5
- "name": {
6
- "index": true,
7
- "comment": "์ด๋ฆ„",
8
- "unique": true
9
- }
10
- }
11
- }
@@ -1,11 +0,0 @@
1
- {
2
- "name": "calendar_method",
3
- "description": "calendar_method ์—”ํ‹ฐํ‹ฐ. ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์— ๋งž๊ฒŒ fields๋ฅผ ์ž์œ ๋กญ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
4
- "fields": {
5
- "name": {
6
- "index": true,
7
- "comment": "์ด๋ฆ„",
8
- "unique": true
9
- }
10
- }
11
- }
@@ -1,32 +0,0 @@
1
- /**
2
- * Calendar ๋ผ์šฐํŠธ ํ”Œ๋Ÿฌ๊ทธ์ธ
3
- *
4
- * ์ž๋™ ๋กœ๋”๊ฐ€ `app/routes/calendar/routes.ts`๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ
5
- * prefix `/api/v1/calendar` ์œผ๋กœ ๋“ฑ๋กํ•œ๋‹ค.
6
- *
7
- * ์—”ํ‹ฐํ‹ฐ:
8
- * - calendar_events โ€” ์ผ์ •/์ด๋ฒคํŠธ
9
- * - calendar_attendees โ€” ์ผ์ • ์ฐธ์„์ž
10
- * - calendar_comments โ€” ์ผ์ • ๋Œ“๊ธ€
11
- * - calendar_files โ€” ์ผ์ • ์ฒจ๋ถ€ํŒŒ์ผ
12
- * - calendar_kind โ€” ์ผ์ • ๋ถ„๋ฅ˜
13
- * - calendar_method โ€” ์ผ์ • ๋ฐฉ๋ฒ•(๋น„๋Œ€๋ฉด/๋Œ€๋ฉด ๋“ฑ)
14
- */
15
-
16
- import type { FastifyInstance } from "fastify";
17
- import { dirname } from "node:path";
18
- import { fileURLToPath } from "node:url";
19
- import { logger, ensurePluginEntities } from "@gateway/api";
20
-
21
- const __dirname = dirname(fileURLToPath(import.meta.url));
22
-
23
- export default async function calendarRoutes(
24
- app: FastifyInstance,
25
- ): Promise<void> {
26
- await ensurePluginEntities(__dirname).catch((err) =>
27
- logger.warn({ err }, "calendar: ensureEntities failed"),
28
- );
29
-
30
- // TODO: ์ผ์ • ๋ผ์šฐํŠธ ํ•ธ๋“ค๋Ÿฌ ์ถ”๊ฐ€
31
- void app;
32
- }
@@ -1,47 +0,0 @@
1
- /**
2
- * email-verify ์„ค์ • ๋กœ๋”
3
- *
4
- * `router.ts`์™€ ์™ธ๋ถ€ ๋ชจ๋“ˆ(register ๋“ฑ) ๋ชจ๋‘์—์„œ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด
5
- * ๋ณ„๋„ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌ.
6
- *
7
- * Usage:
8
- * import { loadEmailVerifyConfig } from "../../email-verify/config-loader.ts";
9
- * const cfg = loadEmailVerifyConfig();
10
- * if (cfg.enabled) { ... }
11
- */
12
-
13
- import { readFileSync, existsSync } from "node:fs";
14
- import { resolve, dirname } from "node:path";
15
- import { fileURLToPath } from "node:url";
16
- import type { EmailVerifyConfig } from "./types/index.ts";
17
-
18
- const __dirname = dirname(fileURLToPath(import.meta.url));
19
-
20
- /** email-verify/config.json ๋กœ๋“œ + ๊ธฐ๋ณธ๊ฐ’ ๋ณด์ • */
21
- export function loadEmailVerifyConfig(): EmailVerifyConfig {
22
- const configPath = resolve(__dirname, "config.json");
23
- let raw: Record<string, unknown> = {};
24
- if (existsSync(configPath)) {
25
- const text = readFileSync(configPath, "utf-8").replace(
26
- /\$\{([^}]+)\}/g,
27
- (_m, name) => process.env[name] ?? "",
28
- );
29
- raw = JSON.parse(text) as Record<string, unknown>;
30
- }
31
-
32
- const rl = (raw.rate_limit ?? {}) as Record<string, unknown>;
33
-
34
- return {
35
- enabled: raw.enabled !== false,
36
- required: raw.required === true,
37
- code_length: Number(raw.code_length) || 6,
38
- code_ttl_sec: Number(raw.code_ttl_sec) || 300,
39
- max_attempts: Number(raw.max_attempts) || 5,
40
- resend_cooldown_sec: Number(raw.resend_cooldown_sec) || 60,
41
- link_base_url: String(raw.link_base_url ?? ""),
42
- rate_limit: {
43
- per_email_per_hour: Number(rl.per_email_per_hour) || 5,
44
- },
45
- email_subject: String(raw.email_subject ?? "์ด๋ฉ”์ผ ์ธ์ฆ"),
46
- };
47
- }
@@ -1,13 +0,0 @@
1
- {
2
- "enabled": true,
3
- "required": false,
4
- "code_length": 6,
5
- "code_ttl_sec": 300,
6
- "max_attempts": 5,
7
- "resend_cooldown_sec": 60,
8
- "link_base_url": "https://example.com/verify-email",
9
- "rate_limit": {
10
- "per_email_per_hour": 5
11
- },
12
- "email_subject": "์ด๋ฉ”์ผ ์ธ์ฆ"
13
- }
@@ -1,16 +0,0 @@
1
- {
2
- "_comment": "์ด๋ฉ”์ผ ์ธ์ฆ ์„ค์ •. enabled๋ฅผ true๋กœ ์„ค์ •ํ•˜๋ฉด ์ด๋ฉ”์ผ ์ธ์ฆ ๊ธฐ๋Šฅ์ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. code_length๋Š” ์ธ์ฆ ์ฝ”๋“œ์˜ ๊ธธ์ด๋ฅผ, code_ttl_sec๋Š” ์ธ์ฆ ์ฝ”๋“œ์˜ ์œ ํšจ ๊ธฐ๊ฐ„(์ดˆ)์„, max_attempts๋Š” ์ตœ๋Œ€ ์‹œ๋„ ํšŸ์ˆ˜๋ฅผ, resend_cooldown_sec๋Š” ์žฌ์ „์†ก ์ฟจ๋‹ค์šด(์ดˆ)์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. link_base_url์€ ์ด๋ฉ”์ผ์— ํฌํ•จ๋œ ์ธ์ฆ ๋งํฌ์˜ ๊ธฐ๋ณธ URL์ž…๋‹ˆ๋‹ค.",
3
- "enabled": true,
4
- "required": false,
5
- "code_length": 6,
6
- "code_ttl_sec": 300,
7
- "max_attempts": 5,
8
- "resend_cooldown_sec": 60,
9
- "link_base_url": "",
10
- "rate_limit": {
11
- "per_email_per_hour": 5
12
- },
13
- "email_subject": "์ด๋ฉ”์ผ ์ธ์ฆ",
14
- "deploy": false,
15
- "minify": false
16
- }
@@ -1,23 +0,0 @@
1
- {
2
- "name": "account",
3
- "description": "์ด๋ฉ”์ผ ์ธ์ฆ(email-verify) ๋ผ์šฐํŠธ ์ „์šฉ ํ•„๋“œ. email_verified ์ƒํƒœ์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ(์ธ์ฆ ๋ฉ”์ผ ๋ฐœ์†ก/๊ฒ€์ฆ/์ฐจ๋‹จ)๋Š” ์•ฑ์„œ๋ฒ„ email-verify ๋ผ์šฐํŠธ๊ฐ€ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.",
4
- "fields": {
5
- "email_verified": {
6
- "type": "bool",
7
- "default": false,
8
- "comment": "์ด๋ฉ”์ผ ์ธ์ฆ ์™„๋ฃŒ ์—ฌ๋ถ€"
9
- },
10
- "email_verify_code": {
11
- "type": "varchar(64)",
12
- "comment": "์ธ์ฆ ์ฝ”๋“œ SHA-256 ํ•ด์‹œ"
13
- },
14
- "email_verify_expires_time": {
15
- "comment": "์ธ์ฆ ์ฝ”๋“œ ๋งŒ๋ฃŒ ์‹œ๊ฐ (RFC3339)"
16
- },
17
- "email_verify_attempts": {
18
- "type": "uint",
19
- "default": 0,
20
- "comment": "์ด๋ฉ”์ผ ์ธ์ฆ ์‹œ๋„ ํšŸ์ˆ˜"
21
- }
22
- }
23
- }
@@ -1,103 +0,0 @@
1
- /**
2
- * GET /activate โ€” ๋งํฌ ํด๋ฆญ ์ธ์ฆ
3
- */
4
-
5
- import type { FastifyRequest, FastifyReply } from "fastify";
6
- import { ok, fail, entityServer, logger } from "@gateway/api";
7
- import type {
8
- EmailVerifyConfig,
9
- VerificationActivateQuery,
10
- } from "../types/index.ts";
11
- import { verifyCode } from "../verification-utils.ts";
12
- import { findAccountByEmail } from "./utils.ts";
13
- import { loadRegisterConfig } from "../../account/register/config-loader.ts";
14
- import { sendWelcomeEmail } from "../../account/register/handlers.ts";
15
-
16
- export function createActivateHandler(cfg: EmailVerifyConfig) {
17
- return async function handleActivate(
18
- req: FastifyRequest<{ Querystring: VerificationActivateQuery }>,
19
- reply: FastifyReply,
20
- ): Promise<void> {
21
- const email = ((req.query as VerificationActivateQuery).email ?? "")
22
- .trim()
23
- .toLowerCase();
24
- const token = (
25
- (req.query as VerificationActivateQuery).token ?? ""
26
- ).trim();
27
- const redirect = (req.query as VerificationActivateQuery).redirect;
28
-
29
- if (!email || !token) {
30
- reply.code(400).send(fail("email๊ณผ token์€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค."));
31
- return;
32
- }
33
-
34
- const account = await findAccountByEmail(email);
35
- if (!account || !account.seq || !account.email_verify_code) {
36
- reply.code(400).send(fail("์œ ํšจํ•˜์ง€ ์•Š์€ ์ธ์ฆ ๋งํฌ์ž…๋‹ˆ๋‹ค."));
37
- return;
38
- }
39
-
40
- if (account.email_verified) {
41
- if (redirect === "1" && cfg.link_base_url) {
42
- reply.redirect(`${cfg.link_base_url}?verified=1`);
43
- return;
44
- }
45
- reply.send(ok({ message: "์ด๋ฏธ ์ธ์ฆ๋œ ์ด๋ฉ”์ผ์ž…๋‹ˆ๋‹ค." }));
46
- return;
47
- }
48
-
49
- // ๋งŒ๋ฃŒ ํ™•์ธ
50
- if (
51
- !account.email_verify_expires_time ||
52
- new Date(account.email_verify_expires_time).getTime() <= Date.now()
53
- ) {
54
- reply.code(401).send(fail("์ธ์ฆ ๋งํฌ๊ฐ€ ๋งŒ๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค."));
55
- return;
56
- }
57
-
58
- // ์‹œ๋„ ํšŸ์ˆ˜ ํ™•์ธ (๋งํฌ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๋ฐฉ์ง€)
59
- const attempts = Number(account.email_verify_attempts ?? 0);
60
- if (attempts >= cfg.max_attempts) {
61
- reply.code(429).send(fail("์ตœ๋Œ€ ์‹œ๋„ ํšŸ์ˆ˜๋ฅผ ์ดˆ๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค."));
62
- return;
63
- }
64
-
65
- // ํ† ํฐ ๊ฒ€์ฆ
66
- if (!verifyCode(token, account.email_verify_code)) {
67
- await entityServer.submit("account", {
68
- seq: account.seq,
69
- email_verify_attempts: attempts + 1,
70
- } as Record<string, unknown>);
71
- reply.code(401).send(fail("์œ ํšจํ•˜์ง€ ์•Š์€ ์ธ์ฆ ๋งํฌ์ž…๋‹ˆ๋‹ค."));
72
- return;
73
- }
74
-
75
- // ์ธ์ฆ ์„ฑ๊ณต
76
- await entityServer.submit("account", {
77
- seq: account.seq,
78
- email_verified: true,
79
- email_verify_code: null,
80
- email_verify_expires_time: null,
81
- email_verify_attempts: null,
82
- } as Record<string, unknown>);
83
-
84
- logger.info(
85
- { accountSeq: account.seq, email },
86
- "Email verified via link",
87
- );
88
-
89
- // ์ธ์ฆ ์™„๋ฃŒ โ†’ ํ™˜์˜ ๋ฉ”์ผ (register config์˜ send_welcome_email์ด true์ธ ๊ฒฝ์šฐ)
90
- const registerCfg = loadRegisterConfig();
91
- if (registerCfg.send_welcome_email) {
92
- sendWelcomeEmail(registerCfg, email).catch((err) =>
93
- logger.error({ err, email }, "Activate: welcome email failed"),
94
- );
95
- }
96
-
97
- if (redirect === "1" && cfg.link_base_url) {
98
- reply.redirect(`${cfg.link_base_url}?verified=1`);
99
- return;
100
- }
101
- reply.send(ok({ message: "์ด๋ฉ”์ผ ์ธ์ฆ์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค." }));
102
- };
103
- }
@@ -1,106 +0,0 @@
1
- /**
2
- * POST /change โ€” ์ด๋ฉ”์ผ ๋ณ€๊ฒฝ + ์žฌ์ธ์ฆ (JWT ํ•„์š”)
3
- */
4
-
5
- import type { FastifyRequest, FastifyReply } from "fastify";
6
- import { ok, fail, entityServer, logger } from "@gateway/api";
7
- import type { EmailVerifyConfig, EmailChangeBody } from "../types/index.ts";
8
- import { verifyPassword } from "../../password-reset/password-utils.ts";
9
- import {
10
- MAX_EMAIL_LEN,
11
- isRateLimited,
12
- getAccountSeqFromJwt,
13
- getAccountBySeq,
14
- findAccountByEmail,
15
- } from "./utils.ts";
16
- import { sendVerification } from "./send.ts";
17
-
18
- export function createChangeHandler(cfg: EmailVerifyConfig) {
19
- return async function handleChange(
20
- req: FastifyRequest<{ Body: EmailChangeBody }>,
21
- reply: FastifyReply,
22
- ): Promise<void> {
23
- const accountSeq = getAccountSeqFromJwt(req);
24
- if (!accountSeq) {
25
- reply.code(401).send(fail("์ธ์ฆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค."));
26
- return;
27
- }
28
-
29
- const newEmail = (req.body?.new_email ?? "").trim().toLowerCase();
30
- if (!newEmail) {
31
- reply.code(400).send(fail("new_email์€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค."));
32
- return;
33
- }
34
- if (newEmail.length > MAX_EMAIL_LEN) {
35
- reply.code(400).send(fail("new_email is too long"));
36
- return;
37
- }
38
-
39
- const account = await getAccountBySeq(accountSeq);
40
- if (!account) {
41
- reply.code(404).send(fail("๊ณ„์ •์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."));
42
- return;
43
- }
44
-
45
- // ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ (OAuth ์ „์šฉ ๊ณ„์ •์ด ์•„๋‹Œ ๊ฒฝ์šฐ)
46
- if (account.passwd) {
47
- const currentPwd = req.body?.current_password ?? "";
48
- if (!currentPwd) {
49
- reply.code(400).send(fail("ํ˜„์žฌ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค."));
50
- return;
51
- }
52
- if (!verifyPassword(currentPwd, account.passwd)) {
53
- reply.code(401).send(fail("๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค."));
54
- return;
55
- }
56
- }
57
-
58
- // ๋™์ผ ์ด๋ฉ”์ผ ์ฒดํฌ
59
- if (newEmail === String(account.email ?? "").toLowerCase()) {
60
- reply.code(400).send(fail("ํ˜„์žฌ์™€ ๋™์ผํ•œ ์ด๋ฉ”์ผ์ž…๋‹ˆ๋‹ค."));
61
- return;
62
- }
63
-
64
- // ์ค‘๋ณต ์ด๋ฉ”์ผ ์ฒดํฌ
65
- const existing = await findAccountByEmail(newEmail);
66
- if (existing) {
67
- reply.code(409).send(fail("์ด๋ฏธ ์‚ฌ์šฉ ์ค‘์ธ ์ด๋ฉ”์ผ์ž…๋‹ˆ๋‹ค."));
68
- return;
69
- }
70
-
71
- // Rate limit
72
- if (isRateLimited(newEmail, cfg.rate_limit.per_email_per_hour)) {
73
- reply.code(429).send(fail("๋ฐœ์†ก ์ œํ•œ ํšŸ์ˆ˜๋ฅผ ์ดˆ๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค."));
74
- return;
75
- }
76
-
77
- // ์ด๋ฉ”์ผ ๋ณ€๊ฒฝ + ์ธ์ฆ ํ•„๋“œ ์ดˆ๊ธฐํ™”
78
- await entityServer.submit("account", {
79
- seq: accountSeq,
80
- email: newEmail,
81
- email_verified: false,
82
- email_verify_code: null,
83
- email_verify_expires_time: null,
84
- email_verify_attempts: 0,
85
- } as Record<string, unknown>);
86
-
87
- // ์ƒˆ ์ด๋ฉ”์ผ๋กœ ์ธ์ฆ ์ฝ”๋“œ ๋ฐœ์†ก
88
- try {
89
- await sendVerification(cfg, accountSeq, newEmail, "code");
90
- } catch (err) {
91
- logger.error(
92
- { err, email: newEmail },
93
- "Email change: verification send failed",
94
- );
95
- }
96
-
97
- reply.send(
98
- ok({
99
- message:
100
- "์ด๋ฉ”์ผ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ์ด๋ฉ”์ผ๋กœ ์ธ์ฆ ์ฝ”๋“œ๋ฅผ ๋ฐœ์†กํ–ˆ์Šต๋‹ˆ๋‹ค.",
101
- email: newEmail,
102
- email_verified: false,
103
- }),
104
- );
105
- };
106
- }