create-entity-app-server 0.0.3 → 0.1.13

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 (728) hide show
  1. package/.gitignore +1 -0
  2. package/README.md +11 -0
  3. package/bin/create.js +52 -13
  4. package/dist-create/template/.env +71 -0
  5. package/{.env.example → dist-create/template/.env.example} +3 -0
  6. package/dist-create/template/.gateway-version +1 -0
  7. package/{src/app/plugins/2fa/config.example.json → dist-create/template/app/plugins/2fa/config.json} +1 -2
  8. package/{src → dist-create/template}/app/plugins/alimtalk/entity-adapter.ts +1 -1
  9. package/{src → dist-create/template}/app/plugins/example/config.json +1 -3
  10. package/{src → dist-create/template}/app/plugins/friendtalk/entity-adapter.ts +1 -1
  11. package/{src → dist-create/template}/app/plugins/llm/chatbot-store.ts +2 -2
  12. package/{src/app/plugins/oauth/config.example.json → dist-create/template/app/plugins/oauth/config.json} +0 -2
  13. package/dist-create/template/app/plugins/ocr/cache.ts +1 -0
  14. package/dist-create/template/app/plugins/ocr/config.ts +1 -0
  15. package/dist-create/template/app/plugins/ocr/direction.ts +1 -0
  16. package/dist-create/template/app/plugins/ocr/dispatch.ts +1 -0
  17. package/dist-create/template/app/plugins/ocr/entity-adapter.ts +1 -0
  18. package/dist-create/template/app/plugins/ocr/errors.ts +1 -0
  19. package/dist-create/template/app/plugins/ocr/handlers.ts +1 -0
  20. package/dist-create/template/app/plugins/ocr/index.ts +1 -0
  21. package/dist-create/template/app/plugins/ocr/llm-parser.ts +1 -0
  22. package/dist-create/template/app/plugins/ocr/parsing-pipeline.ts +1 -0
  23. package/dist-create/template/app/plugins/ocr/pdf-converter.ts +1 -0
  24. package/dist-create/template/app/plugins/ocr/preprocessor.ts +1 -0
  25. package/dist-create/template/app/plugins/ocr/providers/aws.ts +1 -0
  26. package/dist-create/template/app/plugins/ocr/providers/azure.ts +1 -0
  27. package/dist-create/template/app/plugins/ocr/providers/google.ts +1 -0
  28. package/dist-create/template/app/plugins/ocr/providers/index.ts +1 -0
  29. package/dist-create/template/app/plugins/ocr/providers/naver.ts +1 -0
  30. package/dist-create/template/app/plugins/ocr/providers/tesseract.ts +1 -0
  31. package/dist-create/template/app/plugins/ocr/providers/upstage.ts +1 -0
  32. package/dist-create/template/app/plugins/ocr/quota.ts +1 -0
  33. package/dist-create/template/app/plugins/ocr/refiner.ts +1 -0
  34. package/dist-create/template/app/plugins/ocr/routes.ts +1 -0
  35. package/dist-create/template/app/plugins/ocr/service.ts +1 -0
  36. package/dist-create/template/app/plugins/ocr/template-loader.ts +1 -0
  37. package/dist-create/template/app/plugins/ocr/template-matcher.ts +1 -0
  38. package/dist-create/template/app/plugins/ocr/types/config.ts +1 -0
  39. package/dist-create/template/app/plugins/ocr/types/driver.ts +1 -0
  40. package/dist-create/template/app/plugins/ocr/types/index.ts +1 -0
  41. package/dist-create/template/app/plugins/ocr/types/parsed.ts +1 -0
  42. package/dist-create/template/app/plugins/ocr/types/store.ts +1 -0
  43. package/dist-create/template/app/plugins/ocr/types/template.ts +1 -0
  44. package/dist-create/template/app/plugins/ocr/utils.ts +1 -0
  45. package/dist-create/template/app/plugins/smtp/config.ts +1 -0
  46. package/dist-create/template/app/plugins/smtp/handlers.ts +1 -0
  47. package/dist-create/template/app/plugins/smtp/index.ts +1 -0
  48. package/dist-create/template/app/plugins/smtp/routes.ts +1 -0
  49. package/dist-create/template/app/plugins/smtp/types/config.ts +1 -0
  50. package/dist-create/template/app/plugins/smtp/types/index.ts +1 -0
  51. package/{src → dist-create/template}/app/plugins/vessel_kr/config.json +1 -3
  52. package/dist-create/template/app/routes/account/change-password/config.json +3 -0
  53. package/dist-create/template/app/routes/account/config.json +3 -0
  54. package/dist-create/template/app/routes/account/reactivate/config.json +3 -0
  55. package/{src → dist-create/template}/app/routes/account/register/config.json +1 -3
  56. package/dist-create/template/app/routes/approval/config.json +3 -0
  57. package/dist-create/template/app/routes/auth/config.json +3 -0
  58. package/dist-create/template/app/routes/board/config.json +3 -0
  59. package/dist-create/template/app/routes/example-db/config.json +3 -0
  60. package/dist-create/template/app/routes/example-es/config.json +3 -0
  61. package/dist-create/template/app/routes/health/config.json +3 -0
  62. package/dist-create/template/app/routes/privilege/config.json +3 -0
  63. package/dist-create/template/app/routes/user/config.json +3 -0
  64. package/{src → dist-create/template}/app/schedules/data-retention/config.json +1 -3
  65. package/{src → dist-create/template}/app/schedules/dormancy/config.json +1 -3
  66. package/{docs → dist-create/template/docs}/scripts-guide.md +101 -30
  67. package/dist-create/template/scripts/update-server.sh +391 -0
  68. package/dist-create/template/system-api.js +1 -0
  69. package/dist-create/template/system.js +1 -0
  70. package/package.json +105 -109
  71. package/docs/design/board-api-design.md +0 -2342
  72. package/scripts/_gen-table-type.ts +0 -605
  73. package/scripts/build-minify-plugins.mjs +0 -124
  74. package/scripts/build-obfuscate-system.mjs +0 -38
  75. package/scripts/build.sh +0 -140
  76. package/scripts/gen-table-type.sh +0 -169
  77. package/scripts/push.sh +0 -102
  78. package/scripts/release.sh +0 -51
  79. package/src/app/plugins/2fa/config.json +0 -17
  80. package/src/app/plugins/ais/config.json +0 -7
  81. package/src/app/plugins/ais/config.ts +0 -32
  82. package/src/app/plugins/ais/docs/README.md +0 -142
  83. package/src/app/plugins/ais/docs/api.md +0 -138
  84. package/src/app/plugins/ais/entities/ais_vessel.json +0 -64
  85. package/src/app/plugins/ais/handlers.ts +0 -88
  86. package/src/app/plugins/ais/index.ts +0 -21
  87. package/src/app/plugins/ais/routes.ts +0 -13
  88. package/src/app/plugins/ais/service.ts +0 -242
  89. package/src/app/plugins/ais/types/index.ts +0 -78
  90. package/src/app/plugins/alimtalk/config.json +0 -26
  91. package/src/app/plugins/distance-server/config.json +0 -6
  92. package/src/app/plugins/distance-server/config.ts +0 -50
  93. package/src/app/plugins/distance-server/docs/README.md +0 -114
  94. package/src/app/plugins/distance-server/handlers.ts +0 -104
  95. package/src/app/plugins/distance-server/index.ts +0 -23
  96. package/src/app/plugins/distance-server/routes.ts +0 -36
  97. package/src/app/plugins/distance-server/service.ts +0 -187
  98. package/src/app/plugins/distance-server/types/index.ts +0 -8
  99. package/src/app/plugins/friendtalk/config.json +0 -11
  100. package/src/app/plugins/holidays/config.json +0 -10
  101. package/src/app/plugins/identity/config.json +0 -30
  102. package/src/app/plugins/kobc_freight/config.json +0 -6
  103. package/src/app/plugins/kobc_freight/config.ts +0 -28
  104. package/src/app/plugins/kobc_freight/docs/README.md +0 -316
  105. package/src/app/plugins/kobc_freight/entities/kobc_freight_entry.json +0 -31
  106. package/src/app/plugins/kobc_freight/entities/kobc_kcci_entry.json +0 -67
  107. package/src/app/plugins/kobc_freight/entities/kobc_kpli_entry.json +0 -27
  108. package/src/app/plugins/kobc_freight/entities/kobc_ncfi_entry.json +0 -99
  109. package/src/app/plugins/kobc_freight/handlers.ts +0 -283
  110. package/src/app/plugins/kobc_freight/index.ts +0 -21
  111. package/src/app/plugins/kobc_freight/routes.ts +0 -39
  112. package/src/app/plugins/kobc_freight/service.ts +0 -604
  113. package/src/app/plugins/kobc_freight/types/index.ts +0 -99
  114. package/src/app/plugins/llm/config.json +0 -71
  115. package/src/app/plugins/oauth/config.json +0 -72
  116. package/src/app/plugins/ocr/cache.ts +0 -50
  117. package/src/app/plugins/ocr/config.json +0 -110
  118. package/src/app/plugins/ocr/config.ts +0 -126
  119. package/src/app/plugins/ocr/direction.ts +0 -48
  120. package/src/app/plugins/ocr/dispatch.ts +0 -130
  121. package/src/app/plugins/ocr/entity-adapter.ts +0 -198
  122. package/src/app/plugins/ocr/errors.ts +0 -42
  123. package/src/app/plugins/ocr/handlers.ts +0 -250
  124. package/src/app/plugins/ocr/index.ts +0 -68
  125. package/src/app/plugins/ocr/llm-parser.ts +0 -164
  126. package/src/app/plugins/ocr/parsing-pipeline.ts +0 -87
  127. package/src/app/plugins/ocr/pdf-converter.ts +0 -136
  128. package/src/app/plugins/ocr/preprocessor.ts +0 -313
  129. package/src/app/plugins/ocr/providers/aws.ts +0 -200
  130. package/src/app/plugins/ocr/providers/azure.ts +0 -183
  131. package/src/app/plugins/ocr/providers/google.ts +0 -155
  132. package/src/app/plugins/ocr/providers/index.ts +0 -80
  133. package/src/app/plugins/ocr/providers/naver.ts +0 -186
  134. package/src/app/plugins/ocr/providers/tesseract.ts +0 -198
  135. package/src/app/plugins/ocr/providers/upstage.ts +0 -156
  136. package/src/app/plugins/ocr/quota.ts +0 -108
  137. package/src/app/plugins/ocr/refiner.ts +0 -112
  138. package/src/app/plugins/ocr/routes.ts +0 -19
  139. package/src/app/plugins/ocr/service.ts +0 -333
  140. package/src/app/plugins/ocr/template-loader.ts +0 -72
  141. package/src/app/plugins/ocr/template-matcher.ts +0 -422
  142. package/src/app/plugins/ocr/types/config.ts +0 -60
  143. package/src/app/plugins/ocr/types/driver.ts +0 -71
  144. package/src/app/plugins/ocr/types/index.ts +0 -5
  145. package/src/app/plugins/ocr/types/parsed.ts +0 -101
  146. package/src/app/plugins/ocr/types/store.ts +0 -70
  147. package/src/app/plugins/ocr/types/template.ts +0 -89
  148. package/src/app/plugins/ocr/utils.ts +0 -18
  149. package/src/app/plugins/pg/config.json +0 -35
  150. package/src/app/plugins/push/config.json +0 -18
  151. package/src/app/plugins/sms/config.json +0 -33
  152. package/src/app/plugins/smtp/config.json +0 -5
  153. package/src/app/plugins/smtp/config.ts +0 -41
  154. package/src/app/plugins/smtp/handlers.ts +0 -52
  155. package/src/app/plugins/smtp/index.ts +0 -33
  156. package/src/app/plugins/smtp/routes.ts +0 -19
  157. package/src/app/plugins/smtp/types/config.ts +0 -8
  158. package/src/app/plugins/smtp/types/index.ts +0 -1
  159. package/src/app/plugins/taxinvoice/config.json +0 -35
  160. package/src/app/routes/account/change-password/config.json +0 -5
  161. package/src/app/routes/account/config.json +0 -5
  162. package/src/app/routes/account/reactivate/config.json +0 -5
  163. package/src/app/routes/approval/config.json +0 -5
  164. package/src/app/routes/auth/config.json +0 -5
  165. package/src/app/routes/board/config.json +0 -5
  166. package/src/app/routes/calendar/config.json +0 -5
  167. package/src/app/routes/calendar/entities/calendar_attendees.json +0 -23
  168. package/src/app/routes/calendar/entities/calendar_comments.json +0 -17
  169. package/src/app/routes/calendar/entities/calendar_events.json +0 -48
  170. package/src/app/routes/calendar/entities/calendar_kind.json +0 -11
  171. package/src/app/routes/calendar/entities/calendar_method.json +0 -11
  172. package/src/app/routes/calendar/routes.ts +0 -32
  173. package/src/app/routes/email-verify/config.json +0 -16
  174. package/src/app/routes/example-db/config.json +0 -5
  175. package/src/app/routes/example-es/config.json +0 -5
  176. package/src/app/routes/funeral/config.json +0 -5
  177. package/src/app/routes/funeral/entities/funeral.json +0 -77
  178. package/src/app/routes/funeral/entities/funeral_docs.json +0 -36
  179. package/src/app/routes/funeral/entities/funeral_mourner.json +0 -31
  180. package/src/app/routes/funeral/entities/funeral_order.json +0 -48
  181. package/src/app/routes/funeral/entities/funeral_room.json +0 -61
  182. package/src/app/routes/funeral/entities/funeral_schedule.json +0 -39
  183. package/src/app/routes/funeral/routes.ts +0 -32
  184. package/src/app/routes/health/config.json +0 -5
  185. package/src/app/routes/hr/career/config.json +0 -5
  186. package/src/app/routes/hr/career/entities/employee_career.json +0 -15
  187. package/src/app/routes/hr/career/routes.ts +0 -25
  188. package/src/app/routes/hr/config.json +0 -5
  189. package/src/app/routes/hr/education/config.json +0 -5
  190. package/src/app/routes/hr/education/entities/employee_education.json +0 -29
  191. package/src/app/routes/hr/education/entities/employee_education_mans.json +0 -25
  192. package/src/app/routes/hr/education/entities/employee_school.json +0 -19
  193. package/src/app/routes/hr/education/routes.ts +0 -28
  194. package/src/app/routes/hr/employee/config.json +0 -5
  195. package/src/app/routes/hr/employee/entities/employee.json +0 -59
  196. package/src/app/routes/hr/employee/entities/employee_cert.json +0 -19
  197. package/src/app/routes/hr/employee/entities/employee_reward.json +0 -21
  198. package/src/app/routes/hr/employee/routes.ts +0 -27
  199. package/src/app/routes/hr/entities/hr_group.json +0 -47
  200. package/src/app/routes/hr/entities/hr_group_pv.json +0 -20
  201. package/src/app/routes/hr/entities/hr_role.json +0 -43
  202. package/src/app/routes/hr/entities/hr_role_pv.json +0 -20
  203. package/src/app/routes/hr/routes.ts +0 -29
  204. package/src/app/routes/messages/chat/config.json +0 -5
  205. package/src/app/routes/messages/chat/entities/user_chat.json +0 -47
  206. package/src/app/routes/messages/chat/entities/user_chat_room.json +0 -38
  207. package/src/app/routes/messages/chat/entities/user_chat_room_member.json +0 -49
  208. package/src/app/routes/messages/chat/routes.ts +0 -28
  209. package/src/app/routes/messages/msgbox/config.json +0 -5
  210. package/src/app/routes/messages/msgbox/entities/user_msgbox.json +0 -73
  211. package/src/app/routes/messages/msgbox/routes.ts +0 -28
  212. package/src/app/routes/password-reset/config.json +0 -15
  213. package/src/app/routes/privilege/config.json +0 -5
  214. package/src/app/routes/user/config.json +0 -5
  215. package/src/app/routes/vessel-tracking/entities/tracked_vessel.json +0 -261
  216. package/src/app/routes/vessel-tracking/handlers.ts +0 -134
  217. package/src/app/routes/vessel-tracking/routes.ts +0 -25
  218. package/src/app/routes/vessel-tracking/types/index.ts +0 -5
  219. package/src/app/routes/vessel-tracking/types/vessel.ts +0 -59
  220. package/src/app/schedules/ais_sync/config.json +0 -4
  221. package/src/app/schedules/ais_sync/index.ts +0 -69
  222. package/src/app/schedules/kobc_freight_sync/config.json +0 -4
  223. package/src/app/schedules/kobc_freight_sync/index.ts +0 -94
  224. package/src/app/schedules/vessel_kr_sync/config.json +0 -4
  225. package/src/app/schedules/vessel_kr_sync/index.ts +0 -72
  226. package/src/system/app.ts +0 -129
  227. package/src/system/cache/_store-ref.ts +0 -15
  228. package/src/system/cache/config.ts +0 -61
  229. package/src/system/cache/drivers/memcached.ts +0 -135
  230. package/src/system/cache/drivers/memory.ts +0 -92
  231. package/src/system/cache/drivers/redis.ts +0 -109
  232. package/src/system/cache/index.ts +0 -43
  233. package/src/system/cache/namespaced.ts +0 -79
  234. package/src/system/cache/plugin.ts +0 -59
  235. package/src/system/cache/types.ts +0 -81
  236. package/src/system/config/config-path.ts +0 -20
  237. package/src/system/config/cors.ts +0 -49
  238. package/src/system/config/database.ts +0 -190
  239. package/src/system/config/entity-server.ts +0 -8
  240. package/src/system/config/env-substitution.ts +0 -4
  241. package/src/system/config/env.ts +0 -30
  242. package/src/system/config/json-config.ts +0 -13
  243. package/src/system/config/module-path.ts +0 -16
  244. package/src/system/config/packet-encrypt.ts +0 -80
  245. package/src/system/config/rate-limit.ts +0 -4
  246. package/src/system/config/security-loader.ts +0 -25
  247. package/src/system/config/security.ts +0 -16
  248. package/src/system/config/server.ts +0 -81
  249. package/src/system/crypto/cipher.ts +0 -117
  250. package/src/system/crypto/data-encrypt.ts +0 -174
  251. package/src/system/crypto/hash.ts +0 -24
  252. package/src/system/crypto/packet.test.ts +0 -23
  253. package/src/system/crypto/packet.ts +0 -97
  254. package/src/system/crypto/random.ts +0 -19
  255. package/src/system/email/sender.ts +0 -85
  256. package/src/system/email/template-engine.ts +0 -147
  257. package/src/system/entity-server/bootstrap.ts +0 -270
  258. package/src/system/entity-server/client.ts +0 -64
  259. package/src/system/hooks/loader.ts +0 -32
  260. package/src/system/hooks/runner.ts +0 -159
  261. package/src/system/hooks/types.ts +0 -75
  262. package/src/system/hooks/withdraw-hooks.ts +0 -42
  263. package/src/system/http/cookie.ts +0 -62
  264. package/src/system/http/response.ts +0 -16
  265. package/src/system/index.ts +0 -48
  266. package/src/system/logging/log-format.ts +0 -50
  267. package/src/system/logging/logger.ts +0 -104
  268. package/src/system/middleware/_db-ref.ts +0 -26
  269. package/src/system/middleware/_push-ref.ts +0 -28
  270. package/src/system/middleware/access-log.ts +0 -34
  271. package/src/system/middleware/auth.ts +0 -67
  272. package/src/system/middleware/csrf.ts +0 -172
  273. package/src/system/middleware/database.ts +0 -44
  274. package/src/system/middleware/error-handler.ts +0 -51
  275. package/src/system/middleware/extension-loader.ts +0 -111
  276. package/src/system/middleware/packet-encrypt.ts +0 -281
  277. package/src/system/middleware/request-id.ts +0 -18
  278. package/src/system/plugins/access-log.ts +0 -34
  279. package/src/system/plugins/packet-encrypt.ts +0 -281
  280. package/src/system/proxy/register.ts +0 -37
  281. package/src/system/public-api.ts +0 -140
  282. package/src/system/push/sender.ts +0 -131
  283. package/src/system/routes/entity-interceptor.ts +0 -327
  284. package/src/system/routes/loader.ts +0 -215
  285. package/src/system/scheduler/cron-utils.ts +0 -150
  286. package/src/system/scheduler/distributed-lock.ts +0 -141
  287. package/src/system/scheduler/schedule-loader.ts +0 -105
  288. package/src/system/security/anonymous-device-id.ts +0 -41
  289. package/src/system/security/anonymous-device.ts +0 -98
  290. package/src/system/security/anonymous-packet-token.ts +0 -23
  291. package/src/system/security/packet-bootstrap.ts +0 -16
  292. package/src/system/security/password-policy.ts +0 -191
  293. package/src/system/startup-banner.ts +0 -191
  294. package/src/system/types/fastify.d.ts +0 -53
  295. package/src/system/utils/app-path.ts +0 -31
  296. package/src/system/utils/coerce.ts +0 -28
  297. package/src/system/utils/date-prefixed-log-stream.ts +0 -176
  298. package/src/system/utils/errors.ts +0 -66
  299. package/src/system/utils/format.ts +0 -45
  300. package/src/system/utils/http-client.ts +0 -79
  301. package/src/system/utils/user-agent.ts +0 -82
  302. package/tsconfig.app.json +0 -17
  303. package/tsconfig.json +0 -39
  304. /package/{src → dist-create/template}/app/hooks/README.md +0 -0
  305. /package/{src → dist-create/template}/app/hooks/account.ts +0 -0
  306. /package/{src → dist-create/template}/app/hooks/index.ts +0 -0
  307. /package/{src → dist-create/template}/app/hooks/order.ts +0 -0
  308. /package/{src → dist-create/template}/app/hooks/post.ts +0 -0
  309. /package/{src → dist-create/template}/app/plugins/2fa/config.ts +0 -0
  310. /package/{src → dist-create/template}/app/plugins/2fa/docs/README.md +0 -0
  311. /package/{src → dist-create/template}/app/plugins/2fa/entities/account.json +0 -0
  312. /package/{src → dist-create/template}/app/plugins/2fa/handlers/disable.ts +0 -0
  313. /package/{src → dist-create/template}/app/plugins/2fa/handlers/index.ts +0 -0
  314. /package/{src → dist-create/template}/app/plugins/2fa/handlers/recovery.ts +0 -0
  315. /package/{src → dist-create/template}/app/plugins/2fa/handlers/regenerate.ts +0 -0
  316. /package/{src → dist-create/template}/app/plugins/2fa/handlers/setup-verify.ts +0 -0
  317. /package/{src → dist-create/template}/app/plugins/2fa/handlers/setup.ts +0 -0
  318. /package/{src → dist-create/template}/app/plugins/2fa/handlers/status.ts +0 -0
  319. /package/{src → dist-create/template}/app/plugins/2fa/handlers/utils.ts +0 -0
  320. /package/{src → dist-create/template}/app/plugins/2fa/handlers/verify.ts +0 -0
  321. /package/{src → dist-create/template}/app/plugins/2fa/index.ts +0 -0
  322. /package/{src → dist-create/template}/app/plugins/2fa/routes.ts +0 -0
  323. /package/{src → dist-create/template}/app/plugins/2fa/templates/auth/2fa_disabled.html +0 -0
  324. /package/{src → dist-create/template}/app/plugins/2fa/templates/auth/2fa_recovery_regenerated.html +0 -0
  325. /package/{src → dist-create/template}/app/plugins/2fa/templates/auth/2fa_setup_complete.html +0 -0
  326. /package/{src → dist-create/template}/app/plugins/2fa/totp-utils.ts +0 -0
  327. /package/{src → dist-create/template}/app/plugins/2fa/types.ts +0 -0
  328. /package/{src → dist-create/template}/app/plugins/README.md +0 -0
  329. /package/{src/app/plugins/alimtalk/config.example.json → dist-create/template/app/plugins/alimtalk/config.json} +0 -0
  330. /package/{src → dist-create/template}/app/plugins/alimtalk/config.ts +0 -0
  331. /package/{src → dist-create/template}/app/plugins/alimtalk/docs/README.md +0 -0
  332. /package/{src → dist-create/template}/app/plugins/alimtalk/entities/alimtalk_log.json +0 -0
  333. /package/{src → dist-create/template}/app/plugins/alimtalk/entities/alimtalk_msg.json +0 -0
  334. /package/{src → dist-create/template}/app/plugins/alimtalk/handlers.ts +0 -0
  335. /package/{src → dist-create/template}/app/plugins/alimtalk/index.ts +0 -0
  336. /package/{src → dist-create/template}/app/plugins/alimtalk/providers/aligo.ts +0 -0
  337. /package/{src → dist-create/template}/app/plugins/alimtalk/providers/index.ts +0 -0
  338. /package/{src → dist-create/template}/app/plugins/alimtalk/providers/nhn.ts +0 -0
  339. /package/{src → dist-create/template}/app/plugins/alimtalk/providers/ppurio.ts +0 -0
  340. /package/{src → dist-create/template}/app/plugins/alimtalk/providers/solapi.ts +0 -0
  341. /package/{src → dist-create/template}/app/plugins/alimtalk/routes.ts +0 -0
  342. /package/{src → dist-create/template}/app/plugins/alimtalk/service.ts +0 -0
  343. /package/{src → dist-create/template}/app/plugins/alimtalk/template-cache.ts +0 -0
  344. /package/{src → dist-create/template}/app/plugins/alimtalk/templates/alimtalk.json +0 -0
  345. /package/{src → dist-create/template}/app/plugins/alimtalk/types/client.ts +0 -0
  346. /package/{src → dist-create/template}/app/plugins/alimtalk/types/config.ts +0 -0
  347. /package/{src → dist-create/template}/app/plugins/alimtalk/types/friendtalk.ts +0 -0
  348. /package/{src → dist-create/template}/app/plugins/alimtalk/types/index.ts +0 -0
  349. /package/{src → dist-create/template}/app/plugins/alimtalk/types/job.ts +0 -0
  350. /package/{src → dist-create/template}/app/plugins/alimtalk/webhook.ts +0 -0
  351. /package/{src → dist-create/template}/app/plugins/example/config.ts +0 -0
  352. /package/{src → dist-create/template}/app/plugins/example/docs/README.md +0 -0
  353. /package/{src → dist-create/template}/app/plugins/example/entity-adapter.ts +0 -0
  354. /package/{src → dist-create/template}/app/plugins/example/handlers.ts +0 -0
  355. /package/{src → dist-create/template}/app/plugins/example/index.ts +0 -0
  356. /package/{src → dist-create/template}/app/plugins/example/routes.ts +0 -0
  357. /package/{src → dist-create/template}/app/plugins/example/service.ts +0 -0
  358. /package/{src → dist-create/template}/app/plugins/example/types/config.ts +0 -0
  359. /package/{src → dist-create/template}/app/plugins/example/types/index.ts +0 -0
  360. /package/{src/app/plugins/friendtalk/config.example.json → dist-create/template/app/plugins/friendtalk/config.json} +0 -0
  361. /package/{src → dist-create/template}/app/plugins/friendtalk/config.ts +0 -0
  362. /package/{src → dist-create/template}/app/plugins/friendtalk/docs/README.md +0 -0
  363. /package/{src → dist-create/template}/app/plugins/friendtalk/entities/friendtalk_log.json +0 -0
  364. /package/{src → dist-create/template}/app/plugins/friendtalk/entities/friendtalk_msg.json +0 -0
  365. /package/{src → dist-create/template}/app/plugins/friendtalk/handlers.ts +0 -0
  366. /package/{src → dist-create/template}/app/plugins/friendtalk/routes.ts +0 -0
  367. /package/{src → dist-create/template}/app/plugins/friendtalk/templates/friendtalk.json +0 -0
  368. /package/{src/app/plugins/holidays/config.example.json → dist-create/template/app/plugins/holidays/config.json} +0 -0
  369. /package/{src → dist-create/template}/app/plugins/holidays/config.ts +0 -0
  370. /package/{src → dist-create/template}/app/plugins/holidays/docs/README.md +0 -0
  371. /package/{src → dist-create/template}/app/plugins/holidays/entities/holiday.json +0 -0
  372. /package/{src → dist-create/template}/app/plugins/holidays/handlers.ts +0 -0
  373. /package/{src → dist-create/template}/app/plugins/holidays/index.ts +0 -0
  374. /package/{src → dist-create/template}/app/plugins/holidays/routes.ts +0 -0
  375. /package/{src → dist-create/template}/app/plugins/holidays/service.ts +0 -0
  376. /package/{src → dist-create/template}/app/plugins/holidays/types/api.ts +0 -0
  377. /package/{src → dist-create/template}/app/plugins/holidays/types/config.ts +0 -0
  378. /package/{src → dist-create/template}/app/plugins/holidays/types/index.ts +0 -0
  379. /package/{src/app/plugins/identity/config.example.json → dist-create/template/app/plugins/identity/config.json} +0 -0
  380. /package/{src → dist-create/template}/app/plugins/identity/config.ts +0 -0
  381. /package/{src → dist-create/template}/app/plugins/identity/crypto.ts +0 -0
  382. /package/{src → dist-create/template}/app/plugins/identity/docs/README.md +0 -0
  383. /package/{src → dist-create/template}/app/plugins/identity/entities/account.json +0 -0
  384. /package/{src → dist-create/template}/app/plugins/identity/entities/identity_verification.json +0 -0
  385. /package/{src → dist-create/template}/app/plugins/identity/entity-adapter.ts +0 -0
  386. /package/{src → dist-create/template}/app/plugins/identity/handlers.ts +0 -0
  387. /package/{src → dist-create/template}/app/plugins/identity/index.ts +0 -0
  388. /package/{src → dist-create/template}/app/plugins/identity/providers/danal.ts +0 -0
  389. /package/{src → dist-create/template}/app/plugins/identity/providers/index.ts +0 -0
  390. /package/{src → dist-create/template}/app/plugins/identity/providers/kmc.ts +0 -0
  391. /package/{src → dist-create/template}/app/plugins/identity/providers/nice.ts +0 -0
  392. /package/{src → dist-create/template}/app/plugins/identity/routes.ts +0 -0
  393. /package/{src → dist-create/template}/app/plugins/identity/service.ts +0 -0
  394. /package/{src → dist-create/template}/app/plugins/identity/types/config.ts +0 -0
  395. /package/{src → dist-create/template}/app/plugins/identity/types/index.ts +0 -0
  396. /package/{src → dist-create/template}/app/plugins/identity/types/verification.ts +0 -0
  397. /package/{src → dist-create/template}/app/plugins/llm/cache.ts +0 -0
  398. /package/{src → dist-create/template}/app/plugins/llm/chunker.ts +0 -0
  399. /package/{src/app/plugins/llm/config.example.json → dist-create/template/app/plugins/llm/config.json} +0 -0
  400. /package/{src → dist-create/template}/app/plugins/llm/config.ts +0 -0
  401. /package/{src → dist-create/template}/app/plugins/llm/conversation-store.ts +0 -0
  402. /package/{src → dist-create/template}/app/plugins/llm/docs/README.md +0 -0
  403. /package/{src → dist-create/template}/app/plugins/llm/docs/api.md +0 -0
  404. /package/{src → dist-create/template}/app/plugins/llm/document-store.ts +0 -0
  405. /package/{src → dist-create/template}/app/plugins/llm/entities/llm_chatbot.json +0 -0
  406. /package/{src → dist-create/template}/app/plugins/llm/entities/llm_conversation.json +0 -0
  407. /package/{src → dist-create/template}/app/plugins/llm/entities/llm_document.json +0 -0
  408. /package/{src → dist-create/template}/app/plugins/llm/entities/llm_usage.json +0 -0
  409. /package/{src → dist-create/template}/app/plugins/llm/entities/llm_user_profile.json +0 -0
  410. /package/{src → dist-create/template}/app/plugins/llm/handlers.ts +0 -0
  411. /package/{src → dist-create/template}/app/plugins/llm/index.ts +0 -0
  412. /package/{src → dist-create/template}/app/plugins/llm/profile-store.ts +0 -0
  413. /package/{src → dist-create/template}/app/plugins/llm/providers/anthropic.ts +0 -0
  414. /package/{src → dist-create/template}/app/plugins/llm/providers/azure.ts +0 -0
  415. /package/{src → dist-create/template}/app/plugins/llm/providers/gemini.ts +0 -0
  416. /package/{src → dist-create/template}/app/plugins/llm/providers/index.ts +0 -0
  417. /package/{src → dist-create/template}/app/plugins/llm/providers/ollama.ts +0 -0
  418. /package/{src → dist-create/template}/app/plugins/llm/providers/openai.ts +0 -0
  419. /package/{src → dist-create/template}/app/plugins/llm/routes.ts +0 -0
  420. /package/{src → dist-create/template}/app/plugins/llm/service.ts +0 -0
  421. /package/{src → dist-create/template}/app/plugins/llm/template-loader.ts +0 -0
  422. /package/{src → dist-create/template}/app/plugins/llm/templates/prompts/extract_json.json +0 -0
  423. /package/{src → dist-create/template}/app/plugins/llm/templates/prompts/summarize.json +0 -0
  424. /package/{src → dist-create/template}/app/plugins/llm/templates/prompts/translate.json +0 -0
  425. /package/{src → dist-create/template}/app/plugins/llm/types/chat.ts +0 -0
  426. /package/{src → dist-create/template}/app/plugins/llm/types/chatbot.ts +0 -0
  427. /package/{src → dist-create/template}/app/plugins/llm/types/config.ts +0 -0
  428. /package/{src → dist-create/template}/app/plugins/llm/types/conversation.ts +0 -0
  429. /package/{src → dist-create/template}/app/plugins/llm/types/index.ts +0 -0
  430. /package/{src → dist-create/template}/app/plugins/llm/types/profile.ts +0 -0
  431. /package/{src → dist-create/template}/app/plugins/llm/types/store.ts +0 -0
  432. /package/{src → dist-create/template}/app/plugins/llm/types/usage.ts +0 -0
  433. /package/{src → dist-create/template}/app/plugins/llm/usage-store.ts +0 -0
  434. /package/{src → dist-create/template}/app/plugins/oauth/account/handlers/index.ts +0 -0
  435. /package/{src → dist-create/template}/app/plugins/oauth/account/handlers/link.ts +0 -0
  436. /package/{src → dist-create/template}/app/plugins/oauth/account/handlers/providers-list.ts +0 -0
  437. /package/{src → dist-create/template}/app/plugins/oauth/account/handlers/refresh.ts +0 -0
  438. /package/{src → dist-create/template}/app/plugins/oauth/account/handlers/unlink.ts +0 -0
  439. /package/{src → dist-create/template}/app/plugins/oauth/config.ts +0 -0
  440. /package/{src → dist-create/template}/app/plugins/oauth/docs/README.md +0 -0
  441. /package/{src → dist-create/template}/app/plugins/oauth/entities/account_oauth.json +0 -0
  442. /package/{src → dist-create/template}/app/plugins/oauth/handlers/callback.ts +0 -0
  443. /package/{src → dist-create/template}/app/plugins/oauth/handlers/index.ts +0 -0
  444. /package/{src → dist-create/template}/app/plugins/oauth/handlers/redirect.ts +0 -0
  445. /package/{src → dist-create/template}/app/plugins/oauth/index.ts +0 -0
  446. /package/{src → dist-create/template}/app/plugins/oauth/providers/index.ts +0 -0
  447. /package/{src → dist-create/template}/app/plugins/oauth/routes.ts +0 -0
  448. /package/{src → dist-create/template}/app/plugins/oauth/service.ts +0 -0
  449. /package/{src → dist-create/template}/app/plugins/oauth/state.ts +0 -0
  450. /package/{src → dist-create/template}/app/plugins/oauth/types/index.ts +0 -0
  451. /package/{src → dist-create/template}/app/plugins/oauth/upsert.ts +0 -0
  452. /package/{src/app/plugins/ocr/config.example.json → dist-create/template/app/plugins/ocr/config.json} +0 -0
  453. /package/{src → dist-create/template}/app/plugins/ocr/docs/README.md +0 -0
  454. /package/{src → dist-create/template}/app/plugins/ocr/docs/api.md +0 -0
  455. /package/{src → dist-create/template}/app/plugins/ocr/entities/ocr_result.json +0 -0
  456. /package/{src → dist-create/template}/app/plugins/ocr/entities/ocr_usage.json +0 -0
  457. /package/{src → dist-create/template}/app/plugins/ocr/templates/business_reg.json +0 -0
  458. /package/{src → dist-create/template}/app/plugins/ocr/templates/career_cert.json +0 -0
  459. /package/{src → dist-create/template}/app/plugins/ocr/templates/driver_license.json +0 -0
  460. /package/{src → dist-create/template}/app/plugins/ocr/templates/facility_card.json +0 -0
  461. /package/{src → dist-create/template}/app/plugins/ocr/templates/id_card.json +0 -0
  462. /package/{src → dist-create/template}/app/plugins/ocr/templates/invoice.json +0 -0
  463. /package/{src → dist-create/template}/app/plugins/ocr/templates/namecard.json +0 -0
  464. /package/{src → dist-create/template}/app/plugins/ocr/templates/prompts/business_reg.json +0 -0
  465. /package/{src → dist-create/template}/app/plugins/ocr/templates/prompts/career_cert.json +0 -0
  466. /package/{src → dist-create/template}/app/plugins/ocr/templates/prompts/driver_license.json +0 -0
  467. /package/{src → dist-create/template}/app/plugins/ocr/templates/prompts/facility_card.json +0 -0
  468. /package/{src → dist-create/template}/app/plugins/ocr/templates/prompts/general.json +0 -0
  469. /package/{src → dist-create/template}/app/plugins/ocr/templates/prompts/id_card.json +0 -0
  470. /package/{src → dist-create/template}/app/plugins/ocr/templates/prompts/invoice.json +0 -0
  471. /package/{src → dist-create/template}/app/plugins/ocr/templates/prompts/namecard.json +0 -0
  472. /package/{src → dist-create/template}/app/plugins/ocr/templates/prompts/receipt.json +0 -0
  473. /package/{src → dist-create/template}/app/plugins/ocr/templates/receipt.json +0 -0
  474. /package/{src/app/plugins/pg/config.example.json → dist-create/template/app/plugins/pg/config.json} +0 -0
  475. /package/{src → dist-create/template}/app/plugins/pg/config.ts +0 -0
  476. /package/{src → dist-create/template}/app/plugins/pg/docs/README.md +0 -0
  477. /package/{src → dist-create/template}/app/plugins/pg/entities/pg_cancel.json +0 -0
  478. /package/{src → dist-create/template}/app/plugins/pg/entities/pg_order.json +0 -0
  479. /package/{src → dist-create/template}/app/plugins/pg/entities/pg_webhook_log.json +0 -0
  480. /package/{src → dist-create/template}/app/plugins/pg/entity-adapter.ts +0 -0
  481. /package/{src → dist-create/template}/app/plugins/pg/handlers.ts +0 -0
  482. /package/{src → dist-create/template}/app/plugins/pg/index.ts +0 -0
  483. /package/{src → dist-create/template}/app/plugins/pg/providers/danal.ts +0 -0
  484. /package/{src → dist-create/template}/app/plugins/pg/providers/hecto.ts +0 -0
  485. /package/{src → dist-create/template}/app/plugins/pg/providers/index.ts +0 -0
  486. /package/{src → dist-create/template}/app/plugins/pg/providers/inicis.ts +0 -0
  487. /package/{src → dist-create/template}/app/plugins/pg/providers/kakaopay.ts +0 -0
  488. /package/{src → dist-create/template}/app/plugins/pg/providers/kcp.ts +0 -0
  489. /package/{src → dist-create/template}/app/plugins/pg/providers/naverpay.ts +0 -0
  490. /package/{src → dist-create/template}/app/plugins/pg/providers/payco.ts +0 -0
  491. /package/{src → dist-create/template}/app/plugins/pg/providers/payletter.ts +0 -0
  492. /package/{src → dist-create/template}/app/plugins/pg/providers/paypal.ts +0 -0
  493. /package/{src → dist-create/template}/app/plugins/pg/providers/toss.ts +0 -0
  494. /package/{src → dist-create/template}/app/plugins/pg/providers/wanna.ts +0 -0
  495. /package/{src → dist-create/template}/app/plugins/pg/routes.ts +0 -0
  496. /package/{src → dist-create/template}/app/plugins/pg/service.ts +0 -0
  497. /package/{src → dist-create/template}/app/plugins/pg/types/client.ts +0 -0
  498. /package/{src → dist-create/template}/app/plugins/pg/types/config.ts +0 -0
  499. /package/{src → dist-create/template}/app/plugins/pg/types/error.ts +0 -0
  500. /package/{src → dist-create/template}/app/plugins/pg/types/index.ts +0 -0
  501. /package/{src → dist-create/template}/app/plugins/pg/types/payment.ts +0 -0
  502. /package/{src → dist-create/template}/app/plugins/providers/docs/README.md +0 -0
  503. /package/{src → dist-create/template}/app/plugins/providers/solapi-auth.ts +0 -0
  504. /package/{src/app/plugins/push/config.example.json → dist-create/template/app/plugins/push/config.json} +0 -0
  505. /package/{src → dist-create/template}/app/plugins/push/config.ts +0 -0
  506. /package/{src → dist-create/template}/app/plugins/push/docs/README.md +0 -0
  507. /package/{src → dist-create/template}/app/plugins/push/entities/push_log.json +0 -0
  508. /package/{src → dist-create/template}/app/plugins/push/entities/push_msg.json +0 -0
  509. /package/{src → dist-create/template}/app/plugins/push/entity-adapter.ts +0 -0
  510. /package/{src → dist-create/template}/app/plugins/push/handlers.ts +0 -0
  511. /package/{src → dist-create/template}/app/plugins/push/index.ts +0 -0
  512. /package/{src → dist-create/template}/app/plugins/push/providers/apns.ts +0 -0
  513. /package/{src → dist-create/template}/app/plugins/push/providers/fcm.ts +0 -0
  514. /package/{src → dist-create/template}/app/plugins/push/providers/index.ts +0 -0
  515. /package/{src → dist-create/template}/app/plugins/push/providers/utils.ts +0 -0
  516. /package/{src → dist-create/template}/app/plugins/push/routes.ts +0 -0
  517. /package/{src → dist-create/template}/app/plugins/push/service.ts +0 -0
  518. /package/{src → dist-create/template}/app/plugins/push/types/config.ts +0 -0
  519. /package/{src → dist-create/template}/app/plugins/push/types/index.ts +0 -0
  520. /package/{src → dist-create/template}/app/plugins/push/types/job.ts +0 -0
  521. /package/{src → dist-create/template}/app/plugins/shared/docs/README.md +0 -0
  522. /package/{src/app/plugins/sms/config.example.json → dist-create/template/app/plugins/sms/config.json} +0 -0
  523. /package/{src → dist-create/template}/app/plugins/sms/config.ts +0 -0
  524. /package/{src → dist-create/template}/app/plugins/sms/docs/README.md +0 -0
  525. /package/{src → dist-create/template}/app/plugins/sms/entities/sms_log.json +0 -0
  526. /package/{src → dist-create/template}/app/plugins/sms/entities/sms_msg.json +0 -0
  527. /package/{src → dist-create/template}/app/plugins/sms/entities/sms_verification.json +0 -0
  528. /package/{src → dist-create/template}/app/plugins/sms/entity-adapter.ts +0 -0
  529. /package/{src → dist-create/template}/app/plugins/sms/handlers.ts +0 -0
  530. /package/{src → dist-create/template}/app/plugins/sms/index.ts +0 -0
  531. /package/{src → dist-create/template}/app/plugins/sms/providers/aligo.ts +0 -0
  532. /package/{src → dist-create/template}/app/plugins/sms/providers/aws-sns.ts +0 -0
  533. /package/{src → dist-create/template}/app/plugins/sms/providers/index.ts +0 -0
  534. /package/{src → dist-create/template}/app/plugins/sms/providers/nhn.ts +0 -0
  535. /package/{src → dist-create/template}/app/plugins/sms/providers/ppurio.ts +0 -0
  536. /package/{src → dist-create/template}/app/plugins/sms/providers/solapi.ts +0 -0
  537. /package/{src → dist-create/template}/app/plugins/sms/routes.ts +0 -0
  538. /package/{src → dist-create/template}/app/plugins/sms/service.ts +0 -0
  539. /package/{src → dist-create/template}/app/plugins/sms/types/client.ts +0 -0
  540. /package/{src → dist-create/template}/app/plugins/sms/types/config.ts +0 -0
  541. /package/{src → dist-create/template}/app/plugins/sms/types/index.ts +0 -0
  542. /package/{src → dist-create/template}/app/plugins/sms/types/job.ts +0 -0
  543. /package/{src → dist-create/template}/app/plugins/sms/verification.ts +0 -0
  544. /package/{src/app/routes/vessel-tracking → dist-create/template/app/plugins/smtp}/config.json +0 -0
  545. /package/{src → dist-create/template}/app/plugins/smtp/docs/README.md +0 -0
  546. /package/{src → dist-create/template}/app/plugins/smtp/templates/layout.html +0 -0
  547. /package/{src/app/plugins/taxinvoice/config.example.json → dist-create/template/app/plugins/taxinvoice/config.json} +0 -0
  548. /package/{src → dist-create/template}/app/plugins/taxinvoice/config.ts +0 -0
  549. /package/{src → dist-create/template}/app/plugins/taxinvoice/docs/README.md +0 -0
  550. /package/{src → dist-create/template}/app/plugins/taxinvoice/entities/tax_invoice.json +0 -0
  551. /package/{src → dist-create/template}/app/plugins/taxinvoice/entities/tax_invoice_item.json +0 -0
  552. /package/{src → dist-create/template}/app/plugins/taxinvoice/entities/tax_invoice_log.json +0 -0
  553. /package/{src → dist-create/template}/app/plugins/taxinvoice/entities/tax_invoice_party.json +0 -0
  554. /package/{src → dist-create/template}/app/plugins/taxinvoice/entity-adapter.ts +0 -0
  555. /package/{src → dist-create/template}/app/plugins/taxinvoice/handlers.ts +0 -0
  556. /package/{src → dist-create/template}/app/plugins/taxinvoice/index.ts +0 -0
  557. /package/{src → dist-create/template}/app/plugins/taxinvoice/providers/barobill.ts +0 -0
  558. /package/{src → dist-create/template}/app/plugins/taxinvoice/providers/bolta.ts +0 -0
  559. /package/{src → dist-create/template}/app/plugins/taxinvoice/providers/esero.ts +0 -0
  560. /package/{src → dist-create/template}/app/plugins/taxinvoice/providers/index.ts +0 -0
  561. /package/{src → dist-create/template}/app/plugins/taxinvoice/providers/popbill.ts +0 -0
  562. /package/{src → dist-create/template}/app/plugins/taxinvoice/providers/sendbill.ts +0 -0
  563. /package/{src → dist-create/template}/app/plugins/taxinvoice/providers/smartbill.ts +0 -0
  564. /package/{src → dist-create/template}/app/plugins/taxinvoice/routes.ts +0 -0
  565. /package/{src → dist-create/template}/app/plugins/taxinvoice/service.ts +0 -0
  566. /package/{src → dist-create/template}/app/plugins/taxinvoice/types/client.ts +0 -0
  567. /package/{src → dist-create/template}/app/plugins/taxinvoice/types/config.ts +0 -0
  568. /package/{src → dist-create/template}/app/plugins/taxinvoice/types/index.ts +0 -0
  569. /package/{src → dist-create/template}/app/plugins/taxinvoice/types/invoice.ts +0 -0
  570. /package/{src → dist-create/template}/app/plugins/taxinvoice/types/queue.ts +0 -0
  571. /package/{src → dist-create/template}/app/plugins/vessel_kr/config.ts +0 -0
  572. /package/{src → dist-create/template}/app/plugins/vessel_kr/docs/README.md +0 -0
  573. /package/{src → dist-create/template}/app/plugins/vessel_kr/entities/vessel_kr_entry.json +0 -0
  574. /package/{src → dist-create/template}/app/plugins/vessel_kr/handlers.ts +0 -0
  575. /package/{src → dist-create/template}/app/plugins/vessel_kr/index.ts +0 -0
  576. /package/{src → dist-create/template}/app/plugins/vessel_kr/routes.ts +0 -0
  577. /package/{src → dist-create/template}/app/plugins/vessel_kr/service.ts +0 -0
  578. /package/{src → dist-create/template}/app/plugins/vessel_kr/types/index.ts +0 -0
  579. /package/{src → dist-create/template}/app/routes/README.md +0 -0
  580. /package/{src → dist-create/template}/app/routes/account/change-password/entities/password_history.json +0 -0
  581. /package/{src → dist-create/template}/app/routes/account/change-password/handlers.ts +0 -0
  582. /package/{src → dist-create/template}/app/routes/account/change-password/routes.ts +0 -0
  583. /package/{src → dist-create/template}/app/routes/account/reactivate/handlers.ts +0 -0
  584. /package/{src → dist-create/template}/app/routes/account/reactivate/routes.ts +0 -0
  585. /package/{src → dist-create/template}/app/routes/account/register/config-loader.ts +0 -0
  586. /package/{src → dist-create/template}/app/routes/account/register/handlers.ts +0 -0
  587. /package/{src → dist-create/template}/app/routes/account/register/routes.ts +0 -0
  588. /package/{src → dist-create/template}/app/routes/account/register/types/index.ts +0 -0
  589. /package/{src → dist-create/template}/app/routes/account/routes.ts +0 -0
  590. /package/{src → dist-create/template}/app/routes/account/templates/force_reset.html +0 -0
  591. /package/{src → dist-create/template}/app/routes/account/templates/welcome.html +0 -0
  592. /package/{src → dist-create/template}/app/routes/account/withdraw/handlers.ts +0 -0
  593. /package/{src → dist-create/template}/app/routes/account/withdraw/routes.ts +0 -0
  594. /package/{src → dist-create/template}/app/routes/approval/entities/approval.json +0 -0
  595. /package/{src → dist-create/template}/app/routes/approval/entities/comments.json +0 -0
  596. /package/{src → dist-create/template}/app/routes/approval/entities/reference.json +0 -0
  597. /package/{src → dist-create/template}/app/routes/approval/routes.ts +0 -0
  598. /package/{src → dist-create/template}/app/routes/auth/handlers.ts +0 -0
  599. /package/{src → dist-create/template}/app/routes/auth/routes.ts +0 -0
  600. /package/{src → dist-create/template}/app/routes/board/entities/board_category.json +0 -0
  601. /package/{src → dist-create/template}/app/routes/board/entities/board_comment.json +0 -0
  602. /package/{src → dist-create/template}/app/routes/board/entities/board_like.json +0 -0
  603. /package/{src → dist-create/template}/app/routes/board/entities/board_mention.json +0 -0
  604. /package/{src → dist-create/template}/app/routes/board/entities/board_post.json +0 -0
  605. /package/{src → dist-create/template}/app/routes/board/entities/board_post_tag.json +0 -0
  606. /package/{src → dist-create/template}/app/routes/board/entities/board_rating.json +0 -0
  607. /package/{src → dist-create/template}/app/routes/board/entities/board_read_log.json +0 -0
  608. /package/{src → dist-create/template}/app/routes/board/entities/board_report.json +0 -0
  609. /package/{src → dist-create/template}/app/routes/board/entities/board_tag.json +0 -0
  610. /package/{src → dist-create/template}/app/routes/board/handlers/categories.ts +0 -0
  611. /package/{src → dist-create/template}/app/routes/board/handlers/comments.ts +0 -0
  612. /package/{src → dist-create/template}/app/routes/board/handlers/files.ts +0 -0
  613. /package/{src → dist-create/template}/app/routes/board/handlers/likes.ts +0 -0
  614. /package/{src → dist-create/template}/app/routes/board/handlers/mentions.ts +0 -0
  615. /package/{src → dist-create/template}/app/routes/board/handlers/posts.ts +0 -0
  616. /package/{src → dist-create/template}/app/routes/board/handlers/ratings.ts +0 -0
  617. /package/{src → dist-create/template}/app/routes/board/handlers/reports.ts +0 -0
  618. /package/{src → dist-create/template}/app/routes/board/handlers/tags.ts +0 -0
  619. /package/{src → dist-create/template}/app/routes/board/routes.ts +0 -0
  620. /package/{src → dist-create/template}/app/routes/email-verify/config-loader.ts +0 -0
  621. /package/{src/app/routes/email-verify/config.example.json → dist-create/template/app/routes/email-verify/config.json} +0 -0
  622. /package/{src → dist-create/template}/app/routes/email-verify/entities/account.json +0 -0
  623. /package/{src → dist-create/template}/app/routes/email-verify/handlers/activate.ts +0 -0
  624. /package/{src → dist-create/template}/app/routes/email-verify/handlers/change.ts +0 -0
  625. /package/{src → dist-create/template}/app/routes/email-verify/handlers/confirm.ts +0 -0
  626. /package/{src → dist-create/template}/app/routes/email-verify/handlers/index.ts +0 -0
  627. /package/{src → dist-create/template}/app/routes/email-verify/handlers/send.ts +0 -0
  628. /package/{src → dist-create/template}/app/routes/email-verify/handlers/status.ts +0 -0
  629. /package/{src → dist-create/template}/app/routes/email-verify/handlers/utils.ts +0 -0
  630. /package/{src → dist-create/template}/app/routes/email-verify/routes.ts +0 -0
  631. /package/{src → dist-create/template}/app/routes/email-verify/templates/verification.html +0 -0
  632. /package/{src → dist-create/template}/app/routes/email-verify/templates/verification_link.html +0 -0
  633. /package/{src → dist-create/template}/app/routes/email-verify/types/index.ts +0 -0
  634. /package/{src → dist-create/template}/app/routes/email-verify/verification-utils.ts +0 -0
  635. /package/{src → dist-create/template}/app/routes/example-db/handlers.ts +0 -0
  636. /package/{src → dist-create/template}/app/routes/example-db/models/account-ext.ts +0 -0
  637. /package/{src → dist-create/template}/app/routes/example-db/models/users.ts +0 -0
  638. /package/{src → dist-create/template}/app/routes/example-db/routes.ts +0 -0
  639. /package/{src → dist-create/template}/app/routes/example-db/types/defaults.ts +0 -0
  640. /package/{src → dist-create/template}/app/routes/example-db/types/index.ts +0 -0
  641. /package/{src → dist-create/template}/app/routes/example-db/types/params.ts +0 -0
  642. /package/{src → dist-create/template}/app/routes/example-db/types/query.ts +0 -0
  643. /package/{src → dist-create/template}/app/routes/example-db/types/user.ts +0 -0
  644. /package/{src → dist-create/template}/app/routes/example-es/handlers.ts +0 -0
  645. /package/{src → dist-create/template}/app/routes/example-es/routes.ts +0 -0
  646. /package/{src → dist-create/template}/app/routes/example-es/types/defaults.ts +0 -0
  647. /package/{src → dist-create/template}/app/routes/example-es/types/index.ts +0 -0
  648. /package/{src → dist-create/template}/app/routes/example-es/types/params.ts +0 -0
  649. /package/{src → dist-create/template}/app/routes/example-es/types/post.ts +0 -0
  650. /package/{src → dist-create/template}/app/routes/example-es/types/query.ts +0 -0
  651. /package/{src → dist-create/template}/app/routes/health/handlers.ts +0 -0
  652. /package/{src → dist-create/template}/app/routes/health/routes.ts +0 -0
  653. /package/{src/app/routes/password-reset/config.example.json → dist-create/template/app/routes/password-reset/config.json} +0 -0
  654. /package/{src → dist-create/template}/app/routes/password-reset/entities/account.json +0 -0
  655. /package/{src → dist-create/template}/app/routes/password-reset/handlers.ts +0 -0
  656. /package/{src → dist-create/template}/app/routes/password-reset/password-utils.ts +0 -0
  657. /package/{src → dist-create/template}/app/routes/password-reset/routes.ts +0 -0
  658. /package/{src → dist-create/template}/app/routes/password-reset/templates/password_reset.html +0 -0
  659. /package/{src → dist-create/template}/app/routes/password-reset/templates/password_reset_link.html +0 -0
  660. /package/{src → dist-create/template}/app/routes/password-reset/types/index.ts +0 -0
  661. /package/{src → dist-create/template}/app/routes/privilege/entities/pv_group.json +0 -0
  662. /package/{src → dist-create/template}/app/routes/privilege/entities/pv_group_item.json +0 -0
  663. /package/{src → dist-create/template}/app/routes/privilege/entities/pv_item.json +0 -0
  664. /package/{src → dist-create/template}/app/routes/privilege/entities/user_pv_group.json +0 -0
  665. /package/{src → dist-create/template}/app/routes/privilege/entities/user_pv_item.json +0 -0
  666. /package/{src → dist-create/template}/app/routes/privilege/routes.ts +0 -0
  667. /package/{src → dist-create/template}/app/routes/user/entities/user.json +0 -0
  668. /package/{src → dist-create/template}/app/routes/user/entities/user_biometric.json +0 -0
  669. /package/{src → dist-create/template}/app/routes/user/routes.ts +0 -0
  670. /package/{src → dist-create/template}/app/schedules/README.md +0 -0
  671. /package/{src → dist-create/template}/app/schedules/data-retention/index.ts +0 -0
  672. /package/{src → dist-create/template}/app/schedules/dormancy/entities/account.json +0 -0
  673. /package/{src → dist-create/template}/app/schedules/dormancy/entities/privacy_cron_lock.json +0 -0
  674. /package/{src → dist-create/template}/app/schedules/dormancy/index.ts +0 -0
  675. /package/{src → dist-create/template}/app/schedules/dormancy/templates/dormancy_completed.html +0 -0
  676. /package/{src → dist-create/template}/app/schedules/dormancy/templates/dormancy_warning.html +0 -0
  677. /package/{configs → dist-create/template/configs}/cache.json +0 -0
  678. /package/{configs → dist-create/template/configs}/cors.json +0 -0
  679. /package/{configs → dist-create/template/configs}/database.json +0 -0
  680. /package/{configs → dist-create/template/configs}/security.json +0 -0
  681. /package/{configs → dist-create/template/configs}/server.json +0 -0
  682. /package/{docs → dist-create/template/docs}/README.md +0 -0
  683. /package/{docs → dist-create/template/docs}/architecture.md +0 -0
  684. /package/{docs → dist-create/template/docs}/cache.md +0 -0
  685. /package/{docs → dist-create/template/docs}/configs.md +0 -0
  686. /package/{docs → dist-create/template/docs}/database.md +0 -0
  687. /package/{docs → dist-create/template/docs}/flows.md +0 -0
  688. /package/{docs → dist-create/template/docs}/getting-started.md +0 -0
  689. /package/{docs → dist-create/template/docs}/hooks.md +0 -0
  690. /package/{docs → dist-create/template/docs}/internals.md +0 -0
  691. /package/{docs → dist-create/template/docs}/plugins/2fa.md +0 -0
  692. /package/{docs → dist-create/template/docs}/plugins/alimtalk.md +0 -0
  693. /package/{docs → dist-create/template/docs}/plugins/friendtalk.md +0 -0
  694. /package/{docs → dist-create/template/docs}/plugins/holidays.md +0 -0
  695. /package/{docs → dist-create/template/docs}/plugins/how-to-create.md +0 -0
  696. /package/{docs → dist-create/template/docs}/plugins/identity.md +0 -0
  697. /package/{docs → dist-create/template/docs}/plugins/llm.md +0 -0
  698. /package/{docs → dist-create/template/docs}/plugins/oauth.md +0 -0
  699. /package/{docs → dist-create/template/docs}/plugins/ocr.md +0 -0
  700. /package/{docs → dist-create/template/docs}/plugins/pg.md +0 -0
  701. /package/{docs → dist-create/template/docs}/plugins/push.md +0 -0
  702. /package/{docs → dist-create/template/docs}/plugins/sms.md +0 -0
  703. /package/{docs → dist-create/template/docs}/plugins/taxinvoice.md +0 -0
  704. /package/{docs → dist-create/template/docs}/routes/README.md +0 -0
  705. /package/{docs → dist-create/template/docs}/routes/account-routes.md +0 -0
  706. /package/{docs → dist-create/template/docs}/routes/alimtalk-routes.md +0 -0
  707. /package/{docs → dist-create/template/docs}/routes/board-routes.md +0 -0
  708. /package/{docs → dist-create/template/docs}/routes/email-verification.md +0 -0
  709. /package/{docs → dist-create/template/docs}/routes/friendtalk-routes.md +0 -0
  710. /package/{docs → dist-create/template/docs}/routes/holidays-routes.md +0 -0
  711. /package/{docs → dist-create/template/docs}/routes/how-to-create.md +0 -0
  712. /package/{docs → dist-create/template/docs}/routes/identity-routes.md +0 -0
  713. /package/{docs → dist-create/template/docs}/routes/llm-routes.md +0 -0
  714. /package/{docs → dist-create/template/docs}/routes/ocr-routes.md +0 -0
  715. /package/{docs → dist-create/template/docs}/routes/password-reset.md +0 -0
  716. /package/{docs → dist-create/template/docs}/routes/pg-routes.md +0 -0
  717. /package/{docs → dist-create/template/docs}/routes/push-routes.md +0 -0
  718. /package/{docs → dist-create/template/docs}/routes/sms-routes.md +0 -0
  719. /package/{docs → dist-create/template/docs}/routes/smtp-routes.md +0 -0
  720. /package/{docs → dist-create/template/docs}/routes/tax-invoice-routes.md +0 -0
  721. /package/{docs → dist-create/template/docs}/schedules/dormancy-and-retention.md +0 -0
  722. /package/{docs → dist-create/template/docs}/schedules/how-to-create.md +0 -0
  723. /package/{docs → dist-create/template/docs}/security.md +0 -0
  724. /package/{docs → dist-create/template/docs}/system.md +0 -0
  725. /package/{scripts → dist-create/template/scripts}/entity.sh +0 -0
  726. /package/{scripts → dist-create/template/scripts}/reset-all.sh +0 -0
  727. /package/{scripts → dist-create/template/scripts}/run.sh +0 -0
  728. /package/{scripts/dist-tsconfig.json → dist-create/template/tsconfig.json} +0 -0
@@ -3,7 +3,5 @@
3
3
  "enabled": false,
4
4
  "retention_days": 1095,
5
5
  "action": "anonymize",
6
- "cron": "30 2 * * *",
7
- "deploy": true,
8
- "minify": false
6
+ "cron": "30 2 * * *"
9
7
  }
@@ -9,7 +9,5 @@
9
9
  "login_url": "",
10
10
  "send_completed_email": false,
11
11
  "completed_email_subject": "계정이 휴면 처리되었습니다",
12
- "completed_email_template": "dormancy_completed",
13
- "deploy": true,
14
- "minify": false
12
+ "completed_email_template": "dormancy_completed"
15
13
  }
@@ -12,9 +12,10 @@
12
12
  | [build.sh](#2-buildsh) | TypeScript 빌드 + dist/ 패키징 |
13
13
  | [push.sh](#3-pushsh) | 버전 관리 + Git push |
14
14
  | [release.sh](#4-releasesh) | 빌드 + 버전업 + push (원스텝) |
15
- | [entity.sh](#5-entitysh) | Gateway 전용 엔티티 테이블 생성 |
16
- | [reset-all.sh](#6-reset-allsh) | Gateway 전용 엔티티 테이블 초기화 |
17
- | [gen-table-type.sh](#7-gen-table-typesh) | 엔티티 Kysely 테이블 타입 자동 생성 |
15
+ | [update-server.sh](#5-update-serversh) | 최신 gateway 코어 업데이트 |
16
+ | [entity.sh](#6-entitysh) | Gateway 전용 엔티티 테이블 생성 |
17
+ | [reset-all.sh](#7-reset-allsh) | Gateway 전용 엔티티 테이블 초기화 |
18
+ | [gen-table-type.sh](#8-gen-table-typesh) | 엔티티 → Kysely 테이블 타입 자동 생성 |
18
19
 
19
20
  ---
20
21
 
@@ -61,16 +62,24 @@ TypeScript를 컴파일하고 배포용 `dist/`를 패키징합니다.
61
62
  ```bash
62
63
  ./scripts/build.sh # 프로덕션 빌드 + dist/ 패키징 + dist.tar.gz 생성
63
64
  ./scripts/build.sh --no-tar # tar.gz 없이 빌드만
65
+ npm run pack:npm # npm 패키지(.cache/npm-pack/*.tgz) 생성
64
66
  ```
65
67
 
68
+ `dist.tar.gz`는 서버 배포용 아카이브이고, `npm run pack:npm`으로 만드는 `.tgz`는 `create-entity-app-server` npm 패키지 아카이브입니다.
69
+
66
70
  ### 단계별 동작
67
71
 
68
72
  | 단계 | 내용 |
69
73
  | --------------- | ------------------------------------------------------------------------- |
70
- | [1/4] Build | `npm run build` → TypeScript 컴파일 → `dist/system.js`, `system-api.js` |
71
- | [2/4] Package | `src/app/` 복사, 플러그인 `config.json` ← `config.example.json` 으로 교체 |
72
- | [3/4] Resources | `configs/`, `entities/`, `templates/`, `scripts/`, `docs/`, `.env` 복사 |
73
- | [4/4] Archive | `dist.tar.gz` 생성 (`--no-tar` 시 생략) |
74
+ | [1/5] Build | `npm run build` → TypeScript 컴파일 → `dist/system.js`, `system-api.js` |
75
+ | [2/5] Package | `src/app/` 복사, 플러그인 `config.json` ← `config.example.json` 으로 교체 |
76
+ | [3/5] Resources | `configs/`, `entities/`, `templates/`, `scripts/`, `docs/`, `.env` 복사 |
77
+ | [4/5] Template | `dist-create/template/` 생성 |
78
+ | [5/5] Archive | `dist.tar.gz` 생성 (`--no-tar` 시 생략) |
79
+
80
+ - 플러그인 배포용 `config.example.json` 에는 `deploy`, `minify` 를 넣지 않습니다.
81
+ - build 시 플러그인은 `config.example.json` 내용이 그대로 `dist/app/plugins/*/config.json` 으로 복사됩니다.
82
+ - `routes/`, `schedules/` 는 source `config.json` 을 그대로 사용하므로, 배포 산출물에서는 이들만 `deploy`, `minify` 필드를 제거합니다.
74
83
 
75
84
  ### dist/ 포함 항목
76
85
 
@@ -80,8 +89,8 @@ dist/
80
89
  ├── system-api.js — 공개 API 번들 (ok/fail/logger/entityServer 등)
81
90
  ├── tsconfig.json — @gateway/api, @app/* 경로 별칭
82
91
  ├── app/ — 사용자 편집 가능한 TypeScript 소스
83
- │ ├── plugins/ — 플러그인 (config.json = config.example.json 내용)
84
- │ └── routes/ — 비즈니스 라우트 (config.json 원본 유지)
92
+ │ ├── plugins/ — 플러그인 (config.json = config.example.json 내용, deploy/minify 없음)
93
+ │ └── routes/ — 비즈니스 라우트 (config.json 원본 유지, 배포 시 deploy/minify 제거)
85
94
  ├── configs/ — 서버·DB·CORS 설정 파일
86
95
  ├── entities/ — 엔티티 스키마 JSON
87
96
  ├── templates/ — 확장 템플릿
@@ -94,49 +103,101 @@ dist/
94
103
 
95
104
  ## 3) push.sh
96
105
 
97
- 버전 번호를 올리고 Git push합니다. `package.json`의 `version` 필드를 기준으로 동작합니다.
106
+ 버전 번호를 올리고 현재 작업 트리 변경을 함께 commit/push합니다. `package.json`의 `version` 필드를 기준으로 태그를 만듭니다.
98
107
 
99
108
  ```bash
100
109
  ./scripts/push.sh # 현재 버전 확인 + 사용법 출력
101
- ./scripts/push.sh version patch # x.y.Z+1 버그 수정
102
- ./scripts/push.sh version minor # x.Y+1.0 기능 추가
103
- ./scripts/push.sh version major # X+1.0.0호환성 변경
110
+ ./scripts/push.sh bump patch # 로컬 버전만 증가
111
+ ./scripts/push.sh version # 현재 버전 확인
112
+ ./scripts/push.sh patch # x.y.Z+1 — 버그 수정
113
+ ./scripts/push.sh minor # x.Y+1.0 — 기능 추가
114
+ ./scripts/push.sh major # X+1.0.0 — 호환성 변경
115
+ ./scripts/push.sh push-current # 현재 버전 commit + tag + push
104
116
  ./scripts/push.sh tag # 현재 버전으로 git tag만 생성 + push
105
117
  ```
106
118
 
107
- ### 동작 순서 (version)
119
+ ### 동작 순서
108
120
 
109
- 1. `package.json` 버전
110
- 2. `git add package.json && git commit -m "chore: bump version to vX.Y.Z"`
111
- 3. `git tag gateway-vX.Y.Z`
112
- 4. `git push origin <현재 브랜치>`
113
- 5. `git push origin gateway-vX.Y.Z`
121
+ 1. `./scripts/push.sh bump <type>`: `package.json` 버전만 로컬에서 증가
122
+ 2. `./scripts/push.sh patch|minor|major`: 버전 증가 + 현재 작업 트리 전체 commit + tag + push + upstream 연결
123
+ 3. `./scripts/push.sh push-current`: 현재 버전 기준으로 작업 트리 전체 commit + tag + push
124
+ 4. `./scripts/push.sh tag`: 현재 버전으로 태그만 push
114
125
 
115
- > 태그는 `gateway-v` 접두어를 사용합니다 (부모 서버 태그와 구분).
126
+ > 태그는 `v` 접두어를 사용합니다. 예: `v0.1.8`
116
127
 
117
128
  ---
118
129
 
119
130
  ## 4) release.sh
120
131
 
121
- 빌드 + 버전업 + push를 번에 실행합니다.
132
+ GitHub PR 기반으로 `현재 브랜치 -> main -> release` 승격을 진행합니다.
122
133
 
123
134
  ```bash
124
- ./scripts/release.sh # patch 릴리즈 (기본값)
125
- ./scripts/release.sh patch # 버그 수정 릴리즈
126
- ./scripts/release.sh minor # 기능 추가 릴리즈
127
- ./scripts/release.sh major # 호환 변경 릴리즈
135
+ ./scripts/release.sh # 사용법 출력
136
+ ./scripts/release.sh start # 현재 브랜치 -> main -> release PR 생성/머지
128
137
  ```
129
138
 
130
139
  ### 동작 순서
131
140
 
132
- 1. `build.sh` 실행 (빌드 + 패키징)
133
- 2. `push.sh version <type>` 실행 (버전업 + push)
141
+ 1. 현재 브랜치에 커밋 된 변경과 push 안 된 커밋이 없는지 검사
142
+ 2. 현재 브랜치가 `main` 아니면 `현재 브랜치 -> main` PR 생성/머지
143
+ 3. `main -> release` PR 생성/머지
144
+ 4. `release` 브랜치 push 이벤트에서 GitHub Actions 가 `v<version>` 태그 생성
145
+ 5. 태그 push 이벤트에서 GitHub Actions 가 GitHub Release 생성
146
+ 6. 같은 태그 이벤트에서 `build.sh` 실행 후 npm publish 수행
147
+
148
+ > 실제 릴리즈는 `./scripts/release.sh start` 로 실행합니다. `./scripts/release.sh` 는 사용법만 출력합니다.
149
+
150
+ ### 사전 조건
151
+
152
+ - `./scripts/build.sh` 로 빌드 검증이 끝나 있어야 합니다.
153
+ - `./scripts/push.sh` 로 현재 브랜치 변경 사항이 원격에 push 되어 있어야 합니다. 이 스크립트는 origin/<현재브랜치> upstream 도 함께 연결합니다.
154
+ - `gh auth status` 가 정상이어야 합니다.
155
+ - GitHub 저장소에 `release` 브랜치가 있어야 합니다.
156
+ - GitHub Secrets 에 `NPM_TOKEN` 이 설정되어 있어야 태그 생성 후 npm publish 가 성공합니다.
157
+
158
+ > GitHub Releases 페이지에 버전이 보이려면 태그만으로는 부족하고, 태그 push 시 GitHub Release 객체도 생성되어야 합니다. 현재 워크플로는 이 단계까지 자동 처리합니다.
159
+
160
+ > `release.sh` 는 로컬 커밋, Git push, npm publish 를 직접 하지 않습니다. 릴리즈 승격만 담당합니다.
161
+
162
+ ---
163
+
164
+ ## 5) update-server.sh
165
+
166
+ 생성된 Gateway 프로젝트의 코어 파일을 최신 npm 패키지 버전으로 업데이트합니다.
167
+
168
+ ```bash
169
+ ./scripts/update-server.sh version # 현재 코어 버전 + 최신 버전 확인
170
+ ./scripts/update-server.sh latest # 최신 버전으로 업데이트
171
+ ./scripts/update-server.sh 0.0.8 # 특정 버전으로 업데이트
172
+ ```
173
+
174
+ ### 동작
175
+
176
+ 1. npm registry 에서 `create-entity-app-server` 최신 버전을 조회
177
+ 2. 해당 패키지 tarball 을 내려받아 `dist-create/template/` 기준으로 코어 파일 추출
178
+ 3. 아래 항목만 업데이트
179
+
180
+ - `system.js`
181
+ - `system-api.js`
182
+ - `scripts/run.sh`, `scripts/entity.sh`, `scripts/reset-all.sh`, `scripts/update-server.sh`
183
+ - `docs/`
184
+ - `tsconfig.json`
185
+ - `.env.example`
186
+ - `.gateway-version`
187
+ - `package.json`의 `scripts`, `dependencies`, `optionalDependencies`, `devDependencies`, `engines`, `os`, `cpu`
188
+
189
+ ### 보존 대상
190
+
191
+ - `app/`
192
+ - `configs/`
193
+ - `.env`
194
+ - `package.json`의 `name`, `version`, `private` 등 앱 고유 메타데이터
134
195
 
135
- > 빠른 배포 사이클에서 사용합니다. 빌드와 push를 개별적으로 제어하려면 `build.sh` `push.sh`를 따로 실행하세요.
196
+ > 업데이트 후에는 `npm install` 자동 실행됩니다.
136
197
 
137
198
  ---
138
199
 
139
- ## 5) entity.sh
200
+ ## 6) entity.sh
140
201
 
141
202
  `entities/` 폴더의 JSON 스키마를 entity-server에 등록(테이블 생성)합니다.
142
203
 
@@ -175,7 +236,7 @@ dist/
175
236
 
176
237
  ---
177
238
 
178
- ## 6) reset-all.sh
239
+ ## 7) reset-all.sh
179
240
 
180
241
  Gateway 전용 엔티티 테이블을 **드롭 후 재생성**합니다.
181
242
 
@@ -205,6 +266,16 @@ Gateway 전용 엔티티 테이블을 **드롭 후 재생성**합니다.
205
266
 
206
267
  ---
207
268
 
269
+ ## 8) gen-table-type.sh
270
+
271
+ 엔티티 JSON을 기준으로 Kysely 타입 정의를 생성합니다.
272
+
273
+ ```bash
274
+ ./scripts/gen-table-type.sh
275
+ ```
276
+
277
+ ---
278
+
208
279
  ## 자주 쓰는 워크플로
209
280
 
210
281
  ### 첫 설치 후 초기화
@@ -0,0 +1,391 @@
1
+ #!/bin/bash
2
+ # update-server.sh — Entity App Server 코어 업데이트
3
+ #
4
+ # 사용법:
5
+ # ./scripts/update-server.sh # 도움말
6
+ # ./scripts/update-server.sh version # 현재 코어 버전 + 최신 태그 확인
7
+ # ./scripts/update-server.sh latest # 최신 태그로 업데이트
8
+ # ./scripts/update-server.sh 0.0.8 # 특정 버전으로 업데이트
9
+ # ./scripts/update-server.sh v0.0.8
10
+
11
+ set -euo pipefail
12
+
13
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
14
+ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
15
+ PACKAGE_NAME="create-entity-app-server"
16
+ VERSION_FILE="$PROJECT_ROOT/.gateway-version"
17
+ PID_FILE="$PROJECT_ROOT/.gateway.pid"
18
+ MANAGED_SCRIPTS=("run.sh" "entity.sh" "reset-all.sh" "update-server.sh")
19
+ MANAGED_FILES=("system.js" "system-api.js" "tsconfig.json" ".env.example" ".gateway-version")
20
+
21
+ cd "$PROJECT_ROOT"
22
+
23
+ if [ ! -f "$PROJECT_ROOT/system.js" ]; then
24
+ echo "❌ 이 스크립트는 create-entity-app-server 로 생성된 프로젝트 루트에서 실행해야 합니다."
25
+ echo " 현재 위치: $PROJECT_ROOT"
26
+ exit 1
27
+ fi
28
+
29
+ trim() {
30
+ echo "$1" | tr -d '[:space:]'
31
+ }
32
+
33
+ normalize_version() {
34
+ local raw="$1"
35
+ raw="${raw#gateway-v}"
36
+ raw="${raw#v}"
37
+ echo "$raw"
38
+ }
39
+
40
+ is_semver() {
41
+ [[ "$1" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]
42
+ }
43
+
44
+ compare_versions() {
45
+ local left="$1"
46
+ local right="$2"
47
+
48
+ if [ "$left" = "$right" ]; then
49
+ echo 0
50
+ return
51
+ fi
52
+
53
+ local smallest
54
+ smallest=$(printf '%s\n%s\n' "$left" "$right" | sort -V | head -n 1)
55
+ if [ "$smallest" = "$left" ]; then
56
+ echo -1
57
+ else
58
+ echo 1
59
+ fi
60
+ }
61
+
62
+ current_gateway_version() {
63
+ if [ -f "$VERSION_FILE" ]; then
64
+ local value
65
+ value=$(trim "$(cat "$VERSION_FILE" 2>/dev/null || true)")
66
+ value=$(normalize_version "$value")
67
+ if [[ "$value" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
68
+ echo "$value"
69
+ return
70
+ fi
71
+ fi
72
+ echo "(알 수 없음)"
73
+ }
74
+
75
+ fetch_text() {
76
+ local url="$1"
77
+ if command -v curl >/dev/null 2>&1; then
78
+ curl -fsSL "$url"
79
+ elif command -v wget >/dev/null 2>&1; then
80
+ wget -qO- "$url"
81
+ else
82
+ echo "❌ curl 또는 wget 이 필요합니다." >&2
83
+ exit 1
84
+ fi
85
+ }
86
+
87
+ download_file() {
88
+ local url="$1"
89
+ local dest="$2"
90
+ local tmp="${dest}.tmp"
91
+
92
+ if command -v curl >/dev/null 2>&1; then
93
+ curl -fsSL --retry 3 -o "$tmp" "$url"
94
+ elif command -v wget >/dev/null 2>&1; then
95
+ wget -q -O "$tmp" "$url"
96
+ else
97
+ echo "❌ curl 또는 wget 이 필요합니다." >&2
98
+ exit 1
99
+ fi
100
+
101
+ mv "$tmp" "$dest"
102
+ }
103
+
104
+ latest_gateway_version() {
105
+ local latest
106
+ latest=$(fetch_text "https://registry.npmjs.org/${PACKAGE_NAME}/latest" | node -e 'const fs = require("fs"); const data = JSON.parse(fs.readFileSync(0, "utf8")); process.stdout.write(data.version || "");')
107
+
108
+ if [ -z "$latest" ]; then
109
+ echo "❌ 최신 패키지 버전을 가져오지 못했습니다." >&2
110
+ exit 1
111
+ fi
112
+
113
+ echo "$latest"
114
+ }
115
+
116
+ package_tarball_url() {
117
+ local version="$1"
118
+ local tarball
119
+ tarball=$(fetch_text "https://registry.npmjs.org/${PACKAGE_NAME}/${version}" | node -e 'const fs = require("fs"); const data = JSON.parse(fs.readFileSync(0, "utf8")); process.stdout.write(data.dist?.tarball || "");')
120
+
121
+ if [ -z "$tarball" ]; then
122
+ echo "❌ ${PACKAGE_NAME}@${version} 패키지 tarball URL을 찾지 못했습니다." >&2
123
+ exit 1
124
+ fi
125
+
126
+ echo "$tarball"
127
+ }
128
+
129
+ get_gateway_port() {
130
+ local config_port
131
+ local env_port=""
132
+
133
+ if [ -f ".env" ]; then
134
+ env_port=$(grep '^SERVER_PORT=' .env | tail -n 1 | cut -d '=' -f2-)
135
+ if [ -z "$env_port" ]; then
136
+ env_port=$(grep '^PORT=' .env | tail -n 1 | cut -d '=' -f2-)
137
+ fi
138
+ fi
139
+
140
+ env_port=$(trim "$env_port")
141
+ if [[ "$env_port" =~ ^[0-9]+$ ]] && [ "$env_port" -gt 0 ]; then
142
+ echo "$env_port"
143
+ return
144
+ fi
145
+
146
+ if [ -f "$PROJECT_ROOT/configs/server.json" ]; then
147
+ config_port=$(grep -E '"port"[[:space:]]*:' "$PROJECT_ROOT/configs/server.json" | head -n 1 | sed -E 's/.*:[[:space:]]*([0-9]+).*/\1/')
148
+ config_port=$(trim "$config_port")
149
+ if [[ "$config_port" =~ ^[0-9]+$ ]] && [ "$config_port" -gt 0 ]; then
150
+ echo "$config_port"
151
+ return
152
+ fi
153
+ fi
154
+
155
+ echo "3000"
156
+ }
157
+
158
+ find_running_pids() {
159
+ local pid_list=()
160
+
161
+ if [ -f "$PID_FILE" ]; then
162
+ local pid
163
+ pid=$(trim "$(cat "$PID_FILE" 2>/dev/null || true)")
164
+ if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
165
+ pid_list+=("$pid")
166
+ fi
167
+ fi
168
+
169
+ local port
170
+ port=$(get_gateway_port)
171
+ while IFS= read -r pid; do
172
+ [ -n "$pid" ] && pid_list+=("$pid")
173
+ done < <(ss -ltnp 2>/dev/null | sed -n "s/.*:${port} .*pid=\([0-9]\+\).*/\1/p" | sort -u)
174
+
175
+ printf '%s\n' "${pid_list[@]}" | awk 'NF && !seen[$0]++'
176
+ }
177
+
178
+ ensure_gateway_stopped() {
179
+ mapfile -t running_pids < <(find_running_pids)
180
+ if [ "${#running_pids[@]}" -eq 0 ]; then
181
+ return 0
182
+ fi
183
+
184
+ echo ""
185
+ echo "⚠️ 현재 Entity App Server가 실행 중입니다."
186
+ ps -p "${running_pids[0]}" -o pid,etime,cmd --no-headers 2>/dev/null || true
187
+ echo ""
188
+ read -r -p "업데이트를 위해 서버를 중지할까요? [y/N]: " input
189
+ input=$(echo "$input" | tr '[:upper:]' '[:lower:]')
190
+
191
+ if [ "$input" != "y" ] && [ "$input" != "yes" ]; then
192
+ echo "❌ 업데이트를 취소했습니다."
193
+ exit 1
194
+ fi
195
+
196
+ if [ -x "$PROJECT_ROOT/scripts/run.sh" ]; then
197
+ "$PROJECT_ROOT/scripts/run.sh" stop || true
198
+ else
199
+ for pid in "${running_pids[@]}"; do
200
+ kill "$pid" 2>/dev/null || true
201
+ done
202
+ fi
203
+
204
+ sleep 0.2
205
+ mapfile -t running_pids < <(find_running_pids)
206
+ if [ "${#running_pids[@]}" -gt 0 ]; then
207
+ echo "❌ 서버 중지에 실패했습니다. 업데이트를 중단합니다."
208
+ exit 1
209
+ fi
210
+
211
+ rm -f "$PID_FILE"
212
+ echo "✅ 서버 중지 완료"
213
+ }
214
+
215
+ sync_package_json() {
216
+ local upstream_pkg="$1"
217
+ local target_pkg="$PROJECT_ROOT/package.json"
218
+
219
+ [ -f "$target_pkg" ] || return 0
220
+ [ -f "$upstream_pkg" ] || return 0
221
+
222
+ node - "$target_pkg" "$upstream_pkg" <<'NODE'
223
+ const fs = require("fs");
224
+
225
+ const [targetPath, upstreamPath] = process.argv.slice(2);
226
+ const target = JSON.parse(fs.readFileSync(targetPath, "utf8"));
227
+ const upstream = JSON.parse(fs.readFileSync(upstreamPath, "utf8"));
228
+
229
+ const preserved = [
230
+ "name",
231
+ "version",
232
+ "private",
233
+ "description",
234
+ "keywords",
235
+ "author",
236
+ "license",
237
+ "repository",
238
+ "bugs",
239
+ "homepage"
240
+ ];
241
+
242
+ const synced = [
243
+ "type",
244
+ "scripts",
245
+ "dependencies",
246
+ "optionalDependencies",
247
+ "devDependencies",
248
+ "engines",
249
+ "os",
250
+ "cpu"
251
+ ];
252
+
253
+ const next = { ...target };
254
+
255
+ for (const key of synced) {
256
+ if (Object.prototype.hasOwnProperty.call(upstream, key)) {
257
+ next[key] = upstream[key];
258
+ }
259
+ }
260
+
261
+ for (const key of preserved) {
262
+ if (Object.prototype.hasOwnProperty.call(target, key)) {
263
+ next[key] = target[key];
264
+ }
265
+ }
266
+
267
+ fs.writeFileSync(targetPath, `${JSON.stringify(next, null, 2)}\n`);
268
+ NODE
269
+ }
270
+
271
+ install_version() {
272
+ local target_ver
273
+ target_ver=$(normalize_version "$1")
274
+ local current_ver
275
+ current_ver=$(current_gateway_version)
276
+
277
+ ensure_gateway_stopped
278
+
279
+ local url
280
+ url=$(package_tarball_url "$target_ver")
281
+ local tmp_tar="/tmp/entity-app-server-${target_ver}.tar.gz"
282
+ local tmp_dir="/tmp/entity-app-server-${target_ver}"
283
+
284
+ echo ""
285
+ echo "📦 ${PACKAGE_NAME}@${target_ver} 다운로드 중..."
286
+ download_file "$url" "$tmp_tar"
287
+
288
+ rm -rf "$tmp_dir"
289
+ mkdir -p "$tmp_dir"
290
+ tar -xzf "$tmp_tar" -C "$tmp_dir"
291
+
292
+ local src_root
293
+ src_root=$(find "$tmp_dir" -mindepth 1 -maxdepth 1 -type d | head -n 1)
294
+ if [ -z "$src_root" ]; then
295
+ echo "❌ 다운로드한 아카이브를 해제하지 못했습니다."
296
+ rm -rf "$tmp_dir" "$tmp_tar"
297
+ exit 1
298
+ fi
299
+
300
+ local template_root="$src_root/dist-create/template"
301
+ if [ ! -d "$template_root" ]; then
302
+ echo "❌ ${PACKAGE_NAME}@${target_ver} 패키지에 dist-create/template 이 없습니다."
303
+ rm -rf "$tmp_dir" "$tmp_tar"
304
+ exit 1
305
+ fi
306
+
307
+ echo ""
308
+ echo " 코어 파일 동기화:"
309
+ for file in "${MANAGED_FILES[@]}"; do
310
+ if [ -e "$template_root/$file" ]; then
311
+ cp -R "$template_root/$file" "$PROJECT_ROOT/$file"
312
+ printf ' ✔ %s\n' "$file"
313
+ fi
314
+ done
315
+
316
+ mkdir -p "$PROJECT_ROOT/scripts"
317
+ for script in "${MANAGED_SCRIPTS[@]}"; do
318
+ if [ -f "$template_root/scripts/$script" ]; then
319
+ cp "$template_root/scripts/$script" "$PROJECT_ROOT/scripts/$script"
320
+ chmod +x "$PROJECT_ROOT/scripts/$script"
321
+ printf ' ✔ scripts/%s\n' "$script"
322
+ fi
323
+ done
324
+
325
+ if [ -d "$template_root/docs" ]; then
326
+ mkdir -p "$PROJECT_ROOT/docs"
327
+ cp -R "$template_root/docs/." "$PROJECT_ROOT/docs/"
328
+ echo " ✔ docs/"
329
+ fi
330
+
331
+ sync_package_json "$src_root/package.json"
332
+ if [ -f "$PROJECT_ROOT/package.json" ]; then
333
+ echo ""
334
+ echo " npm install 실행 중..."
335
+ npm install
336
+ fi
337
+
338
+ rm -rf "$tmp_dir" "$tmp_tar"
339
+
340
+ echo ""
341
+ echo "✅ 업데이트 완료: v${current_ver} → v${target_ver}"
342
+ echo " 필요하면 다시 실행: ./scripts/run.sh dev"
343
+ }
344
+
345
+ ARG="${1:-}"
346
+
347
+ case "$ARG" in
348
+ "")
349
+ echo "update-server.sh — Entity App Server 코어 업데이트"
350
+ echo ""
351
+ echo "사용법:"
352
+ echo " ./scripts/update-server.sh version"
353
+ echo " ./scripts/update-server.sh latest"
354
+ echo " ./scripts/update-server.sh <버전>"
355
+ echo ""
356
+ echo "업데이트 대상: system.js / system-api.js / scripts / docs / tsconfig.json / .env.example / package.json(deps)"
357
+ echo "보존 대상: app/ / configs/ / .env / package.json의 name/version/private"
358
+ ;;
359
+
360
+ "version")
361
+ echo "🔍 버전 확인 중..."
362
+ CURRENT="$(current_gateway_version)"
363
+ LATEST="$(latest_gateway_version)"
364
+ echo ""
365
+ echo " 현재 코어 버전: v${CURRENT}"
366
+ echo " 최신 패키지 버전: v${LATEST}"
367
+ echo ""
368
+ if [ "$CURRENT" = "$LATEST" ]; then
369
+ echo "✅ 최신 버전입니다."
370
+ elif is_semver "$CURRENT" && [ "$(compare_versions "$CURRENT" "$LATEST")" = "1" ]; then
371
+ echo "ℹ️ 현재 코어가 npm 최신 버전보다 더 새롭습니다."
372
+ else
373
+ echo "💡 업데이트 가능: ./scripts/update-server.sh latest"
374
+ fi
375
+ ;;
376
+
377
+ "latest")
378
+ echo "🔍 최신 버전 확인 중..."
379
+ CURRENT="$(current_gateway_version)"
380
+ LATEST="$(latest_gateway_version)"
381
+ if is_semver "$CURRENT" && [ "$(compare_versions "$CURRENT" "$LATEST")" = "1" ]; then
382
+ echo "ℹ️ 현재 코어(v${CURRENT})가 npm 최신 버전(v${LATEST})보다 더 새롭습니다. 다운그레이드하지 않습니다."
383
+ exit 0
384
+ fi
385
+ install_version "$LATEST"
386
+ ;;
387
+
388
+ *)
389
+ install_version "$ARG"
390
+ ;;
391
+ esac