@pcontext/api 0.0.1

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 (342) hide show
  1. package/README.md +151 -0
  2. package/dist/app.d.mts +44779 -0
  3. package/dist/app.d.mts.map +1 -0
  4. package/dist/app.mjs +37 -0
  5. package/dist/app.mjs.map +1 -0
  6. package/dist/client.d.mts +22428 -0
  7. package/dist/client.d.mts.map +1 -0
  8. package/dist/client.mjs +15 -0
  9. package/dist/client.mjs.map +1 -0
  10. package/dist/dev.d.mts +11 -0
  11. package/dist/dev.d.mts.map +1 -0
  12. package/dist/dev.mjs +16 -0
  13. package/dist/dev.mjs.map +1 -0
  14. package/dist/index.d.mts +3 -0
  15. package/dist/index.mjs +10 -0
  16. package/dist/index.mjs.map +1 -0
  17. package/dist/modules/doc/chat.route.d.mts +18 -0
  18. package/dist/modules/doc/chat.route.d.mts.map +1 -0
  19. package/dist/modules/doc/chat.route.mjs +20 -0
  20. package/dist/modules/doc/chat.route.mjs.map +1 -0
  21. package/dist/modules/doc/chat.service.d.mts +10 -0
  22. package/dist/modules/doc/chat.service.d.mts.map +1 -0
  23. package/dist/modules/doc/chat.service.mjs +29 -0
  24. package/dist/modules/doc/chat.service.mjs.map +1 -0
  25. package/dist/modules/doc/doc.dto.d.mts +67 -0
  26. package/dist/modules/doc/doc.dto.d.mts.map +1 -0
  27. package/dist/modules/doc/doc.dto.mjs +43 -0
  28. package/dist/modules/doc/doc.dto.mjs.map +1 -0
  29. package/dist/modules/doc/doc.entity.d.mts +19 -0
  30. package/dist/modules/doc/doc.entity.d.mts.map +1 -0
  31. package/dist/modules/doc/doc.entity.mjs +1 -0
  32. package/dist/modules/doc/doc.repo.interface.d.mts +28 -0
  33. package/dist/modules/doc/doc.repo.interface.d.mts.map +1 -0
  34. package/dist/modules/doc/doc.repo.interface.mjs +1 -0
  35. package/dist/modules/doc/doc.route.d.mts +14193 -0
  36. package/dist/modules/doc/doc.route.d.mts.map +1 -0
  37. package/dist/modules/doc/doc.route.mjs +100 -0
  38. package/dist/modules/doc/doc.route.mjs.map +1 -0
  39. package/dist/modules/doc/doc.service.d.mts +38 -0
  40. package/dist/modules/doc/doc.service.d.mts.map +1 -0
  41. package/dist/modules/doc/doc.service.mjs +134 -0
  42. package/dist/modules/doc/doc.service.mjs.map +1 -0
  43. package/dist/modules/doc/doc.vo.d.mts +17 -0
  44. package/dist/modules/doc/doc.vo.d.mts.map +1 -0
  45. package/dist/modules/doc/doc.vo.mjs +1 -0
  46. package/dist/modules/doc/infrastructure/agent/engine/chat.d.mts +21 -0
  47. package/dist/modules/doc/infrastructure/agent/engine/chat.d.mts.map +1 -0
  48. package/dist/modules/doc/infrastructure/agent/engine/chat.mjs +36 -0
  49. package/dist/modules/doc/infrastructure/agent/engine/chat.mjs.map +1 -0
  50. package/dist/modules/doc/infrastructure/agent/engine/generate.d.mts +28 -0
  51. package/dist/modules/doc/infrastructure/agent/engine/generate.d.mts.map +1 -0
  52. package/dist/modules/doc/infrastructure/agent/engine/generate.mjs +135 -0
  53. package/dist/modules/doc/infrastructure/agent/engine/generate.mjs.map +1 -0
  54. package/dist/modules/doc/infrastructure/agent/engine/query-filter.d.mts +7 -0
  55. package/dist/modules/doc/infrastructure/agent/engine/query-filter.d.mts.map +1 -0
  56. package/dist/modules/doc/infrastructure/agent/engine/query-filter.mjs +12 -0
  57. package/dist/modules/doc/infrastructure/agent/engine/query-filter.mjs.map +1 -0
  58. package/dist/modules/doc/infrastructure/agent/loaders/git-repository-reader.d.mts +54 -0
  59. package/dist/modules/doc/infrastructure/agent/loaders/git-repository-reader.d.mts.map +1 -0
  60. package/dist/modules/doc/infrastructure/agent/loaders/git-repository-reader.mjs +142 -0
  61. package/dist/modules/doc/infrastructure/agent/loaders/git-repository-reader.mjs.map +1 -0
  62. package/dist/modules/doc/infrastructure/agent/loaders/index.d.mts +3 -0
  63. package/dist/modules/doc/infrastructure/agent/loaders/index.mjs +4 -0
  64. package/dist/modules/doc/infrastructure/agent/loaders/website-crawl-reader.d.mts +42 -0
  65. package/dist/modules/doc/infrastructure/agent/loaders/website-crawl-reader.d.mts.map +1 -0
  66. package/dist/modules/doc/infrastructure/agent/loaders/website-crawl-reader.mjs +104 -0
  67. package/dist/modules/doc/infrastructure/agent/loaders/website-crawl-reader.mjs.map +1 -0
  68. package/dist/modules/doc/infrastructure/agent/settings.d.mts +5 -0
  69. package/dist/modules/doc/infrastructure/agent/settings.d.mts.map +1 -0
  70. package/dist/modules/doc/infrastructure/agent/settings.mjs +72 -0
  71. package/dist/modules/doc/infrastructure/agent/settings.mjs.map +1 -0
  72. package/dist/modules/doc/infrastructure/agent/storage/index.d.mts +7 -0
  73. package/dist/modules/doc/infrastructure/agent/storage/index.d.mts.map +1 -0
  74. package/dist/modules/doc/infrastructure/agent/storage/index.mjs +12 -0
  75. package/dist/modules/doc/infrastructure/agent/storage/index.mjs.map +1 -0
  76. package/dist/modules/doc/infrastructure/agent/storage/vector-store.d.mts +14 -0
  77. package/dist/modules/doc/infrastructure/agent/storage/vector-store.d.mts.map +1 -0
  78. package/dist/modules/doc/infrastructure/agent/storage/vector-store.mjs +35 -0
  79. package/dist/modules/doc/infrastructure/agent/storage/vector-store.mjs.map +1 -0
  80. package/dist/modules/doc/infrastructure/doc.po.d.mts +570 -0
  81. package/dist/modules/doc/infrastructure/doc.po.d.mts.map +1 -0
  82. package/dist/modules/doc/infrastructure/doc.po.mjs +54 -0
  83. package/dist/modules/doc/infrastructure/doc.po.mjs.map +1 -0
  84. package/dist/modules/doc/infrastructure/doc.repo.pg.d.mts +32 -0
  85. package/dist/modules/doc/infrastructure/doc.repo.pg.d.mts.map +1 -0
  86. package/dist/modules/doc/infrastructure/doc.repo.pg.mjs +157 -0
  87. package/dist/modules/doc/infrastructure/doc.repo.pg.mjs.map +1 -0
  88. package/dist/modules/doc/infrastructure/doc.repo.sqlite.d.mts +32 -0
  89. package/dist/modules/doc/infrastructure/doc.repo.sqlite.d.mts.map +1 -0
  90. package/dist/modules/doc/infrastructure/doc.repo.sqlite.mjs +153 -0
  91. package/dist/modules/doc/infrastructure/doc.repo.sqlite.mjs.map +1 -0
  92. package/dist/modules/doc/mcp.route.d.mts +18 -0
  93. package/dist/modules/doc/mcp.route.d.mts.map +1 -0
  94. package/dist/modules/doc/mcp.route.mjs +39 -0
  95. package/dist/modules/doc/mcp.route.mjs.map +1 -0
  96. package/dist/modules/doc/mcp.service.d.mts +22 -0
  97. package/dist/modules/doc/mcp.service.d.mts.map +1 -0
  98. package/dist/modules/doc/mcp.service.mjs +119 -0
  99. package/dist/modules/doc/mcp.service.mjs.map +1 -0
  100. package/dist/modules/rank/rank.dto.d.mts +10 -0
  101. package/dist/modules/rank/rank.dto.d.mts.map +1 -0
  102. package/dist/modules/rank/rank.dto.mjs +8 -0
  103. package/dist/modules/rank/rank.dto.mjs.map +1 -0
  104. package/dist/modules/rank/rank.route.d.mts +2033 -0
  105. package/dist/modules/rank/rank.route.d.mts.map +1 -0
  106. package/dist/modules/rank/rank.route.mjs +20 -0
  107. package/dist/modules/rank/rank.route.mjs.map +1 -0
  108. package/dist/modules/rank/rank.service.d.mts +32 -0
  109. package/dist/modules/rank/rank.service.d.mts.map +1 -0
  110. package/dist/modules/rank/rank.service.mjs +3 -0
  111. package/dist/modules/rank/rank.vo.d.mts +9 -0
  112. package/dist/modules/rank/rank.vo.d.mts.map +1 -0
  113. package/dist/modules/rank/rank.vo.mjs +1 -0
  114. package/dist/modules/task/infrastructure/mq/task-context.d.mts +29 -0
  115. package/dist/modules/task/infrastructure/mq/task-context.d.mts.map +1 -0
  116. package/dist/modules/task/infrastructure/mq/task-context.mjs +70 -0
  117. package/dist/modules/task/infrastructure/mq/task-context.mjs.map +1 -0
  118. package/dist/modules/task/infrastructure/mq/task-queue.d.mts +10 -0
  119. package/dist/modules/task/infrastructure/mq/task-queue.d.mts.map +1 -0
  120. package/dist/modules/task/infrastructure/mq/task-queue.mjs +12 -0
  121. package/dist/modules/task/infrastructure/mq/task-queue.mjs.map +1 -0
  122. package/dist/modules/task/infrastructure/mq/task-worker.d.mts +13 -0
  123. package/dist/modules/task/infrastructure/mq/task-worker.d.mts.map +1 -0
  124. package/dist/modules/task/infrastructure/mq/task-worker.mjs +35 -0
  125. package/dist/modules/task/infrastructure/mq/task-worker.mjs.map +1 -0
  126. package/dist/modules/task/infrastructure/task.po.d.mts +1147 -0
  127. package/dist/modules/task/infrastructure/task.po.d.mts.map +1 -0
  128. package/dist/modules/task/infrastructure/task.po.mjs +55 -0
  129. package/dist/modules/task/infrastructure/task.po.mjs.map +1 -0
  130. package/dist/modules/task/infrastructure/task.repo.pg.d.mts +21 -0
  131. package/dist/modules/task/infrastructure/task.repo.pg.d.mts.map +1 -0
  132. package/dist/modules/task/infrastructure/task.repo.pg.mjs +86 -0
  133. package/dist/modules/task/infrastructure/task.repo.pg.mjs.map +1 -0
  134. package/dist/modules/task/infrastructure/task.repo.sqlite.d.mts +21 -0
  135. package/dist/modules/task/infrastructure/task.repo.sqlite.d.mts.map +1 -0
  136. package/dist/modules/task/infrastructure/task.repo.sqlite.mjs +89 -0
  137. package/dist/modules/task/infrastructure/task.repo.sqlite.mjs.map +1 -0
  138. package/dist/modules/task/task.dto.d.mts +26 -0
  139. package/dist/modules/task/task.dto.d.mts.map +1 -0
  140. package/dist/modules/task/task.dto.mjs +25 -0
  141. package/dist/modules/task/task.dto.mjs.map +1 -0
  142. package/dist/modules/task/task.entity.d.mts +43 -0
  143. package/dist/modules/task/task.entity.d.mts.map +1 -0
  144. package/dist/modules/task/task.entity.mjs +1 -0
  145. package/dist/modules/task/task.repo.interface.d.mts +17 -0
  146. package/dist/modules/task/task.repo.interface.d.mts.map +1 -0
  147. package/dist/modules/task/task.repo.interface.mjs +1 -0
  148. package/dist/modules/task/task.route.d.mts +4087 -0
  149. package/dist/modules/task/task.route.d.mts.map +1 -0
  150. package/dist/modules/task/task.route.mjs +63 -0
  151. package/dist/modules/task/task.route.mjs.map +1 -0
  152. package/dist/modules/task/task.service.d.mts +28 -0
  153. package/dist/modules/task/task.service.d.mts.map +1 -0
  154. package/dist/modules/task/task.service.mjs +202 -0
  155. package/dist/modules/task/task.service.mjs.map +1 -0
  156. package/dist/modules/task/task.vo.d.mts +18 -0
  157. package/dist/modules/task/task.vo.d.mts.map +1 -0
  158. package/dist/modules/task/task.vo.mjs +1 -0
  159. package/dist/modules/user/application/user.service.d.mts +24 -0
  160. package/dist/modules/user/application/user.service.d.mts.map +1 -0
  161. package/dist/modules/user/application/user.service.mjs +153 -0
  162. package/dist/modules/user/application/user.service.mjs.map +1 -0
  163. package/dist/modules/user/domain/user.entity.d.mts +24 -0
  164. package/dist/modules/user/domain/user.entity.d.mts.map +1 -0
  165. package/dist/modules/user/domain/user.entity.mjs +35 -0
  166. package/dist/modules/user/domain/user.entity.mjs.map +1 -0
  167. package/dist/modules/user/domain/user.repo.interface.d.mts +27 -0
  168. package/dist/modules/user/domain/user.repo.interface.d.mts.map +1 -0
  169. package/dist/modules/user/domain/user.repo.interface.mjs +1 -0
  170. package/dist/modules/user/infrastructure/casbin/adapter.d.mts +7 -0
  171. package/dist/modules/user/infrastructure/casbin/adapter.d.mts.map +1 -0
  172. package/dist/modules/user/infrastructure/casbin/adapter.mjs +13 -0
  173. package/dist/modules/user/infrastructure/casbin/adapter.mjs.map +1 -0
  174. package/dist/modules/user/infrastructure/casbin/adapter.pg.d.mts +19 -0
  175. package/dist/modules/user/infrastructure/casbin/adapter.pg.d.mts.map +1 -0
  176. package/dist/modules/user/infrastructure/casbin/adapter.pg.mjs +129 -0
  177. package/dist/modules/user/infrastructure/casbin/adapter.pg.mjs.map +1 -0
  178. package/dist/modules/user/infrastructure/casbin/adapter.sqlite.d.mts +19 -0
  179. package/dist/modules/user/infrastructure/casbin/adapter.sqlite.d.mts.map +1 -0
  180. package/dist/modules/user/infrastructure/casbin/adapter.sqlite.mjs +129 -0
  181. package/dist/modules/user/infrastructure/casbin/adapter.sqlite.mjs.map +1 -0
  182. package/dist/modules/user/infrastructure/casbin/enforcer.d.mts +9 -0
  183. package/dist/modules/user/infrastructure/casbin/enforcer.d.mts.map +1 -0
  184. package/dist/modules/user/infrastructure/casbin/enforcer.mjs +150 -0
  185. package/dist/modules/user/infrastructure/casbin/enforcer.mjs.map +1 -0
  186. package/dist/modules/user/infrastructure/casbin-rule.po.d.mts +643 -0
  187. package/dist/modules/user/infrastructure/casbin-rule.po.d.mts.map +1 -0
  188. package/dist/modules/user/infrastructure/casbin-rule.po.mjs +30 -0
  189. package/dist/modules/user/infrastructure/casbin-rule.po.mjs.map +1 -0
  190. package/dist/modules/user/infrastructure/user.po.d.mts +392 -0
  191. package/dist/modules/user/infrastructure/user.po.d.mts.map +1 -0
  192. package/dist/modules/user/infrastructure/user.po.mjs +34 -0
  193. package/dist/modules/user/infrastructure/user.po.mjs.map +1 -0
  194. package/dist/modules/user/infrastructure/user.repo.pg.d.mts +24 -0
  195. package/dist/modules/user/infrastructure/user.repo.pg.d.mts.map +1 -0
  196. package/dist/modules/user/infrastructure/user.repo.pg.mjs +90 -0
  197. package/dist/modules/user/infrastructure/user.repo.pg.mjs.map +1 -0
  198. package/dist/modules/user/infrastructure/user.repo.sqlite.d.mts +24 -0
  199. package/dist/modules/user/infrastructure/user.repo.sqlite.d.mts.map +1 -0
  200. package/dist/modules/user/infrastructure/user.repo.sqlite.mjs +88 -0
  201. package/dist/modules/user/infrastructure/user.repo.sqlite.mjs.map +1 -0
  202. package/dist/modules/user/interfaces/admin.route.d.mts +8270 -0
  203. package/dist/modules/user/interfaces/admin.route.d.mts.map +1 -0
  204. package/dist/modules/user/interfaces/admin.route.mjs +74 -0
  205. package/dist/modules/user/interfaces/admin.route.mjs.map +1 -0
  206. package/dist/modules/user/interfaces/role.route.d.mts +102 -0
  207. package/dist/modules/user/interfaces/role.route.d.mts.map +1 -0
  208. package/dist/modules/user/interfaces/role.route.mjs +60 -0
  209. package/dist/modules/user/interfaces/role.route.mjs.map +1 -0
  210. package/dist/modules/user/interfaces/user.dto.d.mts +106 -0
  211. package/dist/modules/user/interfaces/user.dto.d.mts.map +1 -0
  212. package/dist/modules/user/interfaces/user.dto.mjs +32 -0
  213. package/dist/modules/user/interfaces/user.dto.mjs.map +1 -0
  214. package/dist/modules/user/interfaces/user.route.d.mts +2093 -0
  215. package/dist/modules/user/interfaces/user.route.d.mts.map +1 -0
  216. package/dist/modules/user/interfaces/user.route.mjs +69 -0
  217. package/dist/modules/user/interfaces/user.route.mjs.map +1 -0
  218. package/dist/modules/user/interfaces/user.vo.d.mts +28 -0
  219. package/dist/modules/user/interfaces/user.vo.d.mts.map +1 -0
  220. package/dist/modules/user/interfaces/user.vo.mjs +18 -0
  221. package/dist/modules/user/interfaces/user.vo.mjs.map +1 -0
  222. package/dist/rank.service-D2h-2iJA.mjs +109 -0
  223. package/dist/rank.service-D2h-2iJA.mjs.map +1 -0
  224. package/dist/settings.d.mts +12 -0
  225. package/dist/settings.d.mts.map +1 -0
  226. package/dist/settings.mjs +27 -0
  227. package/dist/settings.mjs.map +1 -0
  228. package/dist/shared/create-app.d.mts +13 -0
  229. package/dist/shared/create-app.d.mts.map +1 -0
  230. package/dist/shared/create-app.mjs +45 -0
  231. package/dist/shared/create-app.mjs.map +1 -0
  232. package/dist/shared/db/bootstrap.d.mts +5 -0
  233. package/dist/shared/db/bootstrap.d.mts.map +1 -0
  234. package/dist/shared/db/bootstrap.mjs +51 -0
  235. package/dist/shared/db/bootstrap.mjs.map +1 -0
  236. package/dist/shared/db/connection.d.mts +1567 -0
  237. package/dist/shared/db/connection.d.mts.map +1 -0
  238. package/dist/shared/db/connection.mjs +59 -0
  239. package/dist/shared/db/connection.mjs.map +1 -0
  240. package/dist/shared/db/migrations/pg/0000_init.sql +74 -0
  241. package/dist/shared/db/migrations/pg/0001_snippets & tokens.sql +6 -0
  242. package/dist/shared/db/migrations/pg/0002_change_task_id_to_uuid_v7.sql +3 -0
  243. package/dist/shared/db/migrations/pg/meta/0000_snapshot.json +498 -0
  244. package/dist/shared/db/migrations/pg/meta/0001_snapshot.json +513 -0
  245. package/dist/shared/db/migrations/pg/meta/0002_snapshot.json +514 -0
  246. package/dist/shared/db/migrations/pg/meta/_journal.json +27 -0
  247. package/dist/shared/db/migrations/sqlite/0000_init.sql +72 -0
  248. package/dist/shared/db/migrations/sqlite/0001_snippets & tokens.sql +2 -0
  249. package/dist/shared/db/migrations/sqlite/0002_change_task_id_to_uuid_v7.sql +35 -0
  250. package/dist/shared/db/migrations/sqlite/meta/0000_snapshot.json +493 -0
  251. package/dist/shared/db/migrations/sqlite/meta/0001_snapshot.json +509 -0
  252. package/dist/shared/db/migrations/sqlite/meta/0002_snapshot.json +509 -0
  253. package/dist/shared/db/migrations/sqlite/meta/_journal.json +27 -0
  254. package/dist/shared/db/seed.d.mts +5 -0
  255. package/dist/shared/db/seed.d.mts.map +1 -0
  256. package/dist/shared/db/seed.mjs +42 -0
  257. package/dist/shared/db/seed.mjs.map +1 -0
  258. package/dist/shared/deps.d.mts +28 -0
  259. package/dist/shared/deps.d.mts.map +1 -0
  260. package/dist/shared/deps.mjs +69 -0
  261. package/dist/shared/deps.mjs.map +1 -0
  262. package/dist/shared/dto/index.d.mts +11 -0
  263. package/dist/shared/dto/index.d.mts.map +1 -0
  264. package/dist/shared/dto/index.mjs +11 -0
  265. package/dist/shared/dto/index.mjs.map +1 -0
  266. package/dist/shared/logger.d.mts +14 -0
  267. package/dist/shared/logger.d.mts.map +1 -0
  268. package/dist/shared/logger.mjs +37 -0
  269. package/dist/shared/logger.mjs.map +1 -0
  270. package/dist/shared/mcp/createTool.d.mts +15 -0
  271. package/dist/shared/mcp/createTool.d.mts.map +1 -0
  272. package/dist/shared/mcp/createTool.mjs +8 -0
  273. package/dist/shared/mcp/createTool.mjs.map +1 -0
  274. package/dist/shared/middleware/authorization.d.mts +15 -0
  275. package/dist/shared/middleware/authorization.d.mts.map +1 -0
  276. package/dist/shared/middleware/authorization.mjs +46 -0
  277. package/dist/shared/middleware/authorization.mjs.map +1 -0
  278. package/dist/shared/middleware/http-logger.d.mts +7 -0
  279. package/dist/shared/middleware/http-logger.d.mts.map +1 -0
  280. package/dist/shared/middleware/http-logger.mjs +40 -0
  281. package/dist/shared/middleware/http-logger.mjs.map +1 -0
  282. package/dist/shared/middleware/jwt.d.mts +7 -0
  283. package/dist/shared/middleware/jwt.d.mts.map +1 -0
  284. package/dist/shared/middleware/jwt.mjs +34 -0
  285. package/dist/shared/middleware/jwt.mjs.map +1 -0
  286. package/dist/shared/middleware/limiter.d.mts +7 -0
  287. package/dist/shared/middleware/limiter.d.mts.map +1 -0
  288. package/dist/shared/middleware/limiter.mjs +10 -0
  289. package/dist/shared/middleware/limiter.mjs.map +1 -0
  290. package/dist/shared/middleware/services.d.mts +8 -0
  291. package/dist/shared/middleware/services.d.mts.map +1 -0
  292. package/dist/shared/middleware/services.mjs +19 -0
  293. package/dist/shared/middleware/services.mjs.map +1 -0
  294. package/dist/shared/redis/decorator.d.mts +113 -0
  295. package/dist/shared/redis/decorator.d.mts.map +1 -0
  296. package/dist/shared/redis/decorator.mjs +203 -0
  297. package/dist/shared/redis/decorator.mjs.map +1 -0
  298. package/dist/shared/redis/factory.d.mts +18 -0
  299. package/dist/shared/redis/factory.d.mts.map +1 -0
  300. package/dist/shared/redis/factory.mjs +41 -0
  301. package/dist/shared/redis/factory.mjs.map +1 -0
  302. package/dist/shared/redis/index.d.mts +12 -0
  303. package/dist/shared/redis/index.d.mts.map +1 -0
  304. package/dist/shared/redis/index.mjs +14 -0
  305. package/dist/shared/redis/index.mjs.map +1 -0
  306. package/dist/shared/types.d.mts +36 -0
  307. package/dist/shared/types.d.mts.map +1 -0
  308. package/dist/shared/types.mjs +1 -0
  309. package/dist/shared/utils/date.d.mts +1 -0
  310. package/dist/shared/utils/date.mjs +1 -0
  311. package/dist/shared/utils/error-handler.d.mts +7 -0
  312. package/dist/shared/utils/error-handler.d.mts.map +1 -0
  313. package/dist/shared/utils/error-handler.mjs +22 -0
  314. package/dist/shared/utils/error-handler.mjs.map +1 -0
  315. package/dist/shared/utils/format.d.mts +8 -0
  316. package/dist/shared/utils/format.d.mts.map +1 -0
  317. package/dist/shared/utils/format.mjs +24 -0
  318. package/dist/shared/utils/format.mjs.map +1 -0
  319. package/dist/shared/utils/pagination.d.mts +9 -0
  320. package/dist/shared/utils/pagination.d.mts.map +1 -0
  321. package/dist/shared/utils/pagination.mjs +12 -0
  322. package/dist/shared/utils/pagination.mjs.map +1 -0
  323. package/dist/shared/utils/response-template.d.mts +69 -0
  324. package/dist/shared/utils/response-template.d.mts.map +1 -0
  325. package/dist/shared/utils/response-template.mjs +96 -0
  326. package/dist/shared/utils/response-template.mjs.map +1 -0
  327. package/dist/shared/utils/url.d.mts +18 -0
  328. package/dist/shared/utils/url.d.mts.map +1 -0
  329. package/dist/shared/utils/url.mjs +39 -0
  330. package/dist/shared/utils/url.mjs.map +1 -0
  331. package/dist/shared/utils/user.d.mts +8 -0
  332. package/dist/shared/utils/user.d.mts.map +1 -0
  333. package/dist/shared/utils/user.mjs +11 -0
  334. package/dist/shared/utils/user.mjs.map +1 -0
  335. package/dist/shared/utils/validator.d.mts +5984 -0
  336. package/dist/shared/utils/validator.d.mts.map +1 -0
  337. package/dist/shared/utils/validator.mjs +34 -0
  338. package/dist/shared/utils/validator.mjs.map +1 -0
  339. package/dist/shared/vo/index.d.mts +11 -0
  340. package/dist/shared/vo/index.d.mts.map +1 -0
  341. package/dist/shared/vo/index.mjs +1 -0
  342. package/package.json +86 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.po.d.mts","names":[],"sources":["../../../../src/modules/task/infrastructure/task.po.ts"],"mappings":";;;;cAIa,MAAA,uBAAM,kBAAA;;;;QAYhB,oBAAA,CAAA,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAES,QAAA,UAAkB,MAAA,CAAO,YAAA;AAAA,KACzB,cAAA,UAAwB,MAAA,CAAO,YAAA;AAAA,cAE9B,SAAA,uBAAS,kBAAA;;;;QAUnB,oBAAA,CAAA,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAES,WAAA,UAAqB,SAAA,CAAU,YAAA;AAAA,KAC/B,iBAAA,UAA2B,SAAA,CAAU,YAAA;AAAA,cAEpC,UAAA,2BAAU,sBAAA;;;;QAYpB,wBAAA,CAAA,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAES,YAAA,UAAsB,UAAA,CAAW,YAAA;AAAA,KACjC,kBAAA,UAA4B,UAAA,CAAW,YAAA;AAAA,cAEtC,aAAA,2BAAa,sBAAA;;;;QAUvB,wBAAA,CAAA,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAES,eAAA,UAAyB,aAAA,CAAc,YAAA;AAAA,KACvC,qBAAA,UAA+B,aAAA,CAAc,YAAA;AAAA,cAE5C,EAAA;;;;;UAGZ,oBAAA,CAAA,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAEY,MAAA;;;;;UAGZ,wBAAA,CAAA,YAAA"}
@@ -0,0 +1,55 @@
1
+ import { sql } from "drizzle-orm";
2
+ import { bigint, bigserial, index, integer, jsonb, pgTable, text, timestamp, uuid, varchar } from "drizzle-orm/pg-core";
3
+ import { index as index$1, integer as integer$1, sqliteTable, text as text$1 } from "drizzle-orm/sqlite-core";
4
+
5
+ //#region src/modules/task/infrastructure/task.po.ts
6
+ const taskPg = pgTable("task", {
7
+ id: uuid("id").primaryKey().default(sql`uuid_generate_v7()`),
8
+ type: varchar("type", { length: 64 }).notNull(),
9
+ status: varchar("status", { length: 16 }).notNull().default("running"),
10
+ message: varchar("message", { length: 1024 }),
11
+ extraData: jsonb("extra_data"),
12
+ logsLength: integer("logs_length").notNull().default(0),
13
+ createdAt: bigint("created_at", { mode: "number" }).notNull().default(sql`EXTRACT(EPOCH FROM NOW()) * 1000`),
14
+ updatedAt: bigint("updated_at", { mode: "number" }).notNull().default(sql`EXTRACT(EPOCH FROM NOW()) * 1000`)
15
+ }, (_t) => ({}));
16
+ const taskLogPg = pgTable("task_logs", {
17
+ id: bigserial("id", { mode: "number" }).primaryKey(),
18
+ taskId: uuid("task_id").notNull(),
19
+ logLevel: varchar("log_level", { length: 10 }),
20
+ content: text("content"),
21
+ createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(),
22
+ extraData: jsonb("extra_data"),
23
+ traceId: varchar("trace_id", { length: 64 })
24
+ }, (t) => ({ idxTaskIdTime: index("idx_task_id_time").on(t.taskId, t.createdAt) }));
25
+ const taskSqlite = sqliteTable("task", {
26
+ id: text$1("id").primaryKey(),
27
+ type: text$1("type").notNull(),
28
+ status: text$1("status").notNull().default("running"),
29
+ message: text$1("message"),
30
+ extraData: text$1("extra_data", { mode: "json" }),
31
+ logsLength: integer$1("logs_length").notNull().default(0),
32
+ createdAt: integer$1("created_at").notNull().default(sql`(strftime('%s','now') * 1000)`),
33
+ updatedAt: integer$1("updated_at").notNull().default(sql`(strftime('%s','now') * 1000)`)
34
+ }, (_t) => ({}));
35
+ const taskLogSqlite = sqliteTable("task_logs", {
36
+ id: integer$1("id").primaryKey({ autoIncrement: true }),
37
+ taskId: text$1("task_id").notNull(),
38
+ logLevel: text$1("log_level"),
39
+ content: text$1("content"),
40
+ createdAt: integer$1("created_at").notNull().default(sql`(strftime('%s','now') * 1000)`),
41
+ extraData: text$1("extra_data", { mode: "json" }),
42
+ traceId: text$1("trace_id")
43
+ }, (t) => ({ idxTaskIdTime: index$1("idx_task_id_time").on(t.taskId, t.createdAt) }));
44
+ const pg = {
45
+ task: taskPg,
46
+ taskLog: taskLogPg
47
+ };
48
+ const sqlite = {
49
+ task: taskSqlite,
50
+ taskLog: taskLogSqlite
51
+ };
52
+
53
+ //#endregion
54
+ export { pg, sqlite, taskLogPg, taskLogSqlite, taskPg, taskSqlite };
55
+ //# sourceMappingURL=task.po.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.po.mjs","names":["pgInteger","pgText","pgIndex","text","integer","sqliteIndex"],"sources":["../../../../src/modules/task/infrastructure/task.po.ts"],"sourcesContent":["import { sql } from 'drizzle-orm'\nimport { bigint, bigserial, jsonb, index as pgIndex, integer as pgInteger, pgTable, text as pgText, serial, timestamp, uuid, varchar } from 'drizzle-orm/pg-core'\nimport { integer, index as sqliteIndex, sqliteTable, text } from 'drizzle-orm/sqlite-core'\n\nexport const taskPg = pgTable('task', {\n id: uuid('id').primaryKey().default(sql`uuid_generate_v7()`),\n type: varchar('type', { length: 64 }).notNull(),\n status: varchar('status', { length: 16 }).notNull().default('running'),\n message: varchar('message', { length: 1024 }),\n extraData: jsonb('extra_data'),\n logsLength: pgInteger('logs_length').notNull().default(0),\n createdAt: bigint('created_at', { mode: 'number' }).notNull().default(sql`EXTRACT(EPOCH FROM NOW()) * 1000`),\n updatedAt: bigint('updated_at', { mode: 'number' }).notNull().default(sql`EXTRACT(EPOCH FROM NOW()) * 1000`),\n}, _t => ({\n // resourceIdIdx: pgIndex('task_resource_id_idx').on(_t.resourceId),\n // typeResourceIdIdx: pgIndex('task_type_resource_id_idx').on(_t.type, _t.resourceId),\n}))\n\nexport type TaskPgPO = typeof taskPg.$inferSelect\nexport type InsertTaskPgPO = typeof taskPg.$inferInsert\n\nexport const taskLogPg = pgTable('task_logs', {\n id: bigserial('id', { mode: 'number' }).primaryKey(),\n taskId: uuid('task_id').notNull(),\n logLevel: varchar('log_level', { length: 10 }),\n content: pgText('content'),\n createdAt: timestamp('created_at', { withTimezone: true }).defaultNow(),\n extraData: jsonb('extra_data'),\n traceId: varchar('trace_id', { length: 64 }),\n}, t => ({\n idxTaskIdTime: pgIndex('idx_task_id_time').on(t.taskId, t.createdAt),\n}))\n\nexport type TaskLogPgPO = typeof taskLogPg.$inferSelect\nexport type InsertTaskLogPgPO = typeof taskLogPg.$inferInsert\n\nexport const taskSqlite = sqliteTable('task', {\n id: text('id').primaryKey(),\n type: text('type').notNull(),\n status: text('status').notNull().default('running'),\n message: text('message'),\n extraData: text('extra_data', { mode: 'json' }),\n logsLength: integer('logs_length').notNull().default(0),\n createdAt: integer('created_at').notNull().default(sql`(strftime('%s','now') * 1000)`),\n updatedAt: integer('updated_at').notNull().default(sql`(strftime('%s','now') * 1000)`),\n}, _t => ({\n // resourceIdIdx: sqliteIndex('task_resource_id_idx').on(_t.resourceId),\n // typeResourceIdIdx: sqliteIndex('task_type_resource_id_idx').on(_t.type, _t.resourceId),\n}))\n\nexport type TaskSqlitePO = typeof taskSqlite.$inferSelect\nexport type InsertTaskSqlitePO = typeof taskSqlite.$inferInsert\n\nexport const taskLogSqlite = sqliteTable('task_logs', {\n id: integer('id').primaryKey({ autoIncrement: true }),\n taskId: text('task_id').notNull(),\n logLevel: text('log_level'),\n content: text('content'),\n createdAt: integer('created_at').notNull().default(sql`(strftime('%s','now') * 1000)`),\n extraData: text('extra_data', { mode: 'json' }),\n traceId: text('trace_id'),\n}, t => ({\n idxTaskIdTime: sqliteIndex('idx_task_id_time').on(t.taskId, t.createdAt),\n}))\n\nexport type TaskLogSqlitePO = typeof taskLogSqlite.$inferSelect\nexport type InsertTaskLogSqlitePO = typeof taskLogSqlite.$inferInsert\n\nexport const pg = {\n task: taskPg,\n taskLog: taskLogPg,\n}\n\nexport const sqlite = {\n task: taskSqlite,\n taskLog: taskLogSqlite,\n}\n"],"mappings":";;;;;AAIA,MAAa,SAAS,QAAQ,QAAQ;CACpC,IAAI,KAAK,KAAK,CAAC,YAAY,CAAC,QAAQ,GAAG,qBAAqB;CAC5D,MAAM,QAAQ,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC,SAAS;CAC/C,QAAQ,QAAQ,UAAU,EAAE,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,UAAU;CACtE,SAAS,QAAQ,WAAW,EAAE,QAAQ,MAAM,CAAC;CAC7C,WAAW,MAAM,aAAa;CAC9B,YAAYA,QAAU,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE;CACzD,WAAW,OAAO,cAAc,EAAE,MAAM,UAAU,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,mCAAmC;CAC5G,WAAW,OAAO,cAAc,EAAE,MAAM,UAAU,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,mCAAmC;CAC7G,GAAE,QAAO,EAGT,EAAE;AAKH,MAAa,YAAY,QAAQ,aAAa;CAC5C,IAAI,UAAU,MAAM,EAAE,MAAM,UAAU,CAAC,CAAC,YAAY;CACpD,QAAQ,KAAK,UAAU,CAAC,SAAS;CACjC,UAAU,QAAQ,aAAa,EAAE,QAAQ,IAAI,CAAC;CAC9C,SAASC,KAAO,UAAU;CAC1B,WAAW,UAAU,cAAc,EAAE,cAAc,MAAM,CAAC,CAAC,YAAY;CACvE,WAAW,MAAM,aAAa;CAC9B,SAAS,QAAQ,YAAY,EAAE,QAAQ,IAAI,CAAC;CAC7C,GAAE,OAAM,EACP,eAAeC,MAAQ,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EACrE,EAAE;AAKH,MAAa,aAAa,YAAY,QAAQ;CAC5C,IAAIC,OAAK,KAAK,CAAC,YAAY;CAC3B,MAAMA,OAAK,OAAO,CAAC,SAAS;CAC5B,QAAQA,OAAK,SAAS,CAAC,SAAS,CAAC,QAAQ,UAAU;CACnD,SAASA,OAAK,UAAU;CACxB,WAAWA,OAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;CAC/C,YAAYC,UAAQ,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE;CACvD,WAAWA,UAAQ,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAG,gCAAgC;CACtF,WAAWA,UAAQ,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAG,gCAAgC;CACvF,GAAE,QAAO,EAGT,EAAE;AAKH,MAAa,gBAAgB,YAAY,aAAa;CACpD,IAAIA,UAAQ,KAAK,CAAC,WAAW,EAAE,eAAe,MAAM,CAAC;CACrD,QAAQD,OAAK,UAAU,CAAC,SAAS;CACjC,UAAUA,OAAK,YAAY;CAC3B,SAASA,OAAK,UAAU;CACxB,WAAWC,UAAQ,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAG,gCAAgC;CACtF,WAAWD,OAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;CAC/C,SAASA,OAAK,WAAW;CAC1B,GAAE,OAAM,EACP,eAAeE,QAAY,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,EACzE,EAAE;AAKH,MAAa,KAAK;CAChB,MAAM;CACN,SAAS;CACV;AAED,MAAa,SAAS;CACpB,MAAM;CACN,SAAS;CACV"}
@@ -0,0 +1,21 @@
1
+ import { TaskEntity, TaskLogEntity, TaskStatus } from "../task.entity.mjs";
2
+ import { CreateTaskDTO, CreateTaskLogDTO } from "../task.dto.mjs";
3
+ import { PostgresqlDB } from "../../../shared/db/connection.mjs";
4
+ import { ITaskRepository } from "../task.repo.interface.mjs";
5
+
6
+ //#region src/modules/task/infrastructure/task.repo.pg.d.ts
7
+ declare class PgTaskRepository implements ITaskRepository {
8
+ private db;
9
+ constructor(db: PostgresqlDB);
10
+ create(input: CreateTaskDTO): Promise<TaskEntity>;
11
+ findById(id: string): Promise<TaskEntity | null>;
12
+ updateStatus(id: string, status: TaskStatus, message?: string | null): Promise<TaskEntity | null>;
13
+ createLog(input: CreateTaskLogDTO): Promise<TaskLogEntity>;
14
+ createLogs(inputs: CreateTaskLogDTO[]): Promise<void>;
15
+ findLogsByTaskId(taskId: string): Promise<TaskLogEntity[]>;
16
+ findRecentLogsByTaskId(taskId: string, limit: number): Promise<TaskLogEntity[]>;
17
+ findRecentTasks(limit: number): Promise<TaskEntity[]>;
18
+ }
19
+ //#endregion
20
+ export { PgTaskRepository };
21
+ //# sourceMappingURL=task.repo.pg.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.repo.pg.d.mts","names":[],"sources":["../../../../src/modules/task/infrastructure/task.repo.pg.ts"],"mappings":";;;;;;cAmCa,gBAAA,YAA4B,eAAA;EAAA,QACnB,EAAA;cAAA,EAAA,EAAI,YAAA;EAElB,MAAA,CAAO,KAAA,EAAO,aAAA,GAAgB,OAAA,CAAQ,UAAA;EAUtC,QAAA,CAAS,EAAA,WAAa,OAAA,CAAQ,UAAA;EAK9B,YAAA,CAAa,EAAA,UAAY,MAAA,EAAQ,UAAA,EAAY,OAAA,mBAA0B,OAAA,CAAQ,UAAA;EAS/E,SAAA,CAAU,KAAA,EAAO,gBAAA,GAAmB,OAAA,CAAQ,aAAA;EAY5C,UAAA,CAAW,MAAA,EAAQ,gBAAA,KAAqB,OAAA;EAaxC,gBAAA,CAAiB,MAAA,WAAiB,OAAA,CAAQ,aAAA;EAK1C,sBAAA,CAAuB,MAAA,UAAgB,KAAA,WAAgB,OAAA,CAAQ,aAAA;EAK/D,eAAA,CAAgB,KAAA,WAAgB,OAAA,CAAQ,UAAA;AAAA"}
@@ -0,0 +1,86 @@
1
+ import { taskLogPg, taskPg } from "./task.po.mjs";
2
+ import { asc, desc, eq } from "drizzle-orm";
3
+
4
+ //#region src/modules/task/infrastructure/task.repo.pg.ts
5
+ function mapper(row) {
6
+ if ("type" in row) return {
7
+ id: row.id,
8
+ type: row.type,
9
+ status: row.status,
10
+ message: row.message ?? null,
11
+ extraData: row.extraData ?? null,
12
+ logsLength: row.logsLength ?? 0,
13
+ createdAt: row.createdAt,
14
+ updatedAt: row.updatedAt
15
+ };
16
+ return {
17
+ id: row.id,
18
+ taskId: row.taskId,
19
+ logLevel: row.logLevel ?? null,
20
+ content: row.content ?? null,
21
+ createdAt: row.createdAt ? row.createdAt.getTime() : Date.now(),
22
+ extraData: row.extraData ?? null,
23
+ traceId: row.traceId ?? null
24
+ };
25
+ }
26
+ var PgTaskRepository = class {
27
+ constructor(db) {
28
+ this.db = db;
29
+ }
30
+ async create(input) {
31
+ const [row] = await this.db.insert(taskPg).values({
32
+ type: input.type,
33
+ status: input.status ?? "running",
34
+ message: input.message ?? null,
35
+ extraData: input.extraData ?? null
36
+ }).returning();
37
+ return mapper(row);
38
+ }
39
+ async findById(id) {
40
+ const row = await this.db.query.task.findFirst({ where: eq(taskPg.id, id) });
41
+ return row ? mapper(row) : null;
42
+ }
43
+ async updateStatus(id, status, message) {
44
+ const [row] = await this.db.update(taskPg).set({
45
+ status,
46
+ message: message ?? null,
47
+ updatedAt: Date.now()
48
+ }).where(eq(taskPg.id, id)).returning();
49
+ return row ? mapper(row) : null;
50
+ }
51
+ async createLog(input) {
52
+ const [row] = await this.db.insert(taskLogPg).values({
53
+ taskId: input.taskId,
54
+ logLevel: input.logLevel ?? null,
55
+ content: input.content ?? null,
56
+ createdAt: input.createdAt ? new Date(input.createdAt) : void 0,
57
+ extraData: input.extraData ?? null,
58
+ traceId: input.traceId ?? null
59
+ }).returning();
60
+ return mapper(row);
61
+ }
62
+ async createLogs(inputs) {
63
+ if (inputs.length === 0) return;
64
+ await this.db.insert(taskLogPg).values(inputs.map((input) => ({
65
+ taskId: input.taskId,
66
+ logLevel: input.logLevel ?? null,
67
+ content: input.content ?? null,
68
+ createdAt: input.createdAt ? new Date(input.createdAt) : void 0,
69
+ extraData: input.extraData ?? null,
70
+ traceId: input.traceId ?? null
71
+ }))).returning();
72
+ }
73
+ async findLogsByTaskId(taskId) {
74
+ return (await this.db.select().from(taskLogPg).where(eq(taskLogPg.taskId, taskId)).orderBy(taskLogPg.createdAt)).map((row) => mapper(row));
75
+ }
76
+ async findRecentLogsByTaskId(taskId, limit) {
77
+ return (await this.db.select().from(taskLogPg).where(eq(taskLogPg.taskId, taskId)).orderBy(asc(taskLogPg.createdAt)).limit(limit)).map((row) => mapper(row));
78
+ }
79
+ async findRecentTasks(limit) {
80
+ return (await this.db.select().from(taskPg).orderBy(desc(taskPg.createdAt)).limit(limit)).map((row) => mapper(row));
81
+ }
82
+ };
83
+
84
+ //#endregion
85
+ export { PgTaskRepository };
86
+ //# sourceMappingURL=task.repo.pg.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.repo.pg.mjs","names":[],"sources":["../../../../src/modules/task/infrastructure/task.repo.pg.ts"],"sourcesContent":["import type { TaskLogPgPO, TaskPgPO } from '@/modules/task/infrastructure/task.po'\nimport type { CreateTaskDTO, CreateTaskLogDTO } from '@/modules/task/task.dto'\nimport type { TaskEntity, TaskLogEntity, TaskStatus } from '@/modules/task/task.entity'\nimport type { ITaskRepository } from '@/modules/task/task.repo.interface'\nimport type { PostgresqlDB } from '@/shared/db/connection'\nimport { asc, desc, eq, sql } from 'drizzle-orm'\nimport { taskLogPg, taskPg } from '@/modules/task/infrastructure/task.po'\n\nfunction mapper(row: TaskPgPO): TaskEntity\nfunction mapper(row: TaskLogPgPO): TaskLogEntity\nfunction mapper(row: TaskPgPO | TaskLogPgPO): TaskEntity | TaskLogEntity {\n if ('type' in row) {\n return {\n id: row.id!,\n type: row.type!,\n status: row.status as TaskStatus,\n message: row.message ?? null,\n extraData: row.extraData ?? null,\n logsLength: row.logsLength ?? 0,\n createdAt: row.createdAt as number,\n updatedAt: row.updatedAt as number,\n }\n }\n\n return {\n id: row.id!,\n taskId: row.taskId!,\n logLevel: (row.logLevel as any) ?? null,\n content: row.content ?? null,\n createdAt: row.createdAt ? row.createdAt.getTime() : Date.now(),\n extraData: row.extraData ?? null,\n traceId: row.traceId ?? null,\n }\n}\n\nexport class PgTaskRepository implements ITaskRepository {\n constructor(private db: PostgresqlDB) {}\n\n async create(input: CreateTaskDTO): Promise<TaskEntity> {\n const [row] = await this.db.insert(taskPg).values({\n type: input.type,\n status: input.status ?? 'running',\n message: input.message ?? null,\n extraData: input.extraData ?? null,\n }).returning()\n return mapper(row)\n }\n\n async findById(id: string): Promise<TaskEntity | null> {\n const row = await this.db.query.task.findFirst({ where: eq(taskPg.id, id) })\n return row ? mapper(row) : null\n }\n\n async updateStatus(id: string, status: TaskStatus, message?: string | null): Promise<TaskEntity | null> {\n const [row] = await this.db.update(taskPg).set({\n status,\n message: message ?? null,\n updatedAt: Date.now(),\n }).where(eq(taskPg.id, id)).returning()\n return row ? mapper(row) : null\n }\n\n async createLog(input: CreateTaskLogDTO): Promise<TaskLogEntity> {\n const [row] = await this.db.insert(taskLogPg).values({\n taskId: input.taskId,\n logLevel: input.logLevel ?? null,\n content: input.content ?? null,\n createdAt: input.createdAt ? new Date(input.createdAt) : undefined,\n extraData: input.extraData ?? null,\n traceId: input.traceId ?? null,\n }).returning()\n return mapper(row)\n }\n\n async createLogs(inputs: CreateTaskLogDTO[]): Promise<void> {\n if (inputs.length === 0)\n return\n await this.db.insert(taskLogPg).values(inputs.map(input => ({\n taskId: input.taskId,\n logLevel: input.logLevel ?? null,\n content: input.content ?? null,\n createdAt: input.createdAt ? new Date(input.createdAt) : undefined,\n extraData: input.extraData ?? null,\n traceId: input.traceId ?? null,\n }))).returning()\n }\n\n async findLogsByTaskId(taskId: string): Promise<TaskLogEntity[]> {\n const rows = await this.db.select().from(taskLogPg).where(eq(taskLogPg.taskId, taskId)).orderBy(taskLogPg.createdAt)\n return rows.map(row => mapper(row))\n }\n\n async findRecentLogsByTaskId(taskId: string, limit: number): Promise<TaskLogEntity[]> {\n const rows = await this.db.select().from(taskLogPg).where(eq(taskLogPg.taskId, taskId)).orderBy(asc(taskLogPg.createdAt)).limit(limit)\n return rows.map(row => mapper(row))\n }\n\n async findRecentTasks(limit: number): Promise<TaskEntity[]> {\n const rows = await this.db.select().from(taskPg).orderBy(desc(taskPg.createdAt)).limit(limit)\n return rows.map(row => mapper(row))\n }\n}\n"],"mappings":";;;;AAUA,SAAS,OAAO,KAAyD;AACvE,KAAI,UAAU,IACZ,QAAO;EACL,IAAI,IAAI;EACR,MAAM,IAAI;EACV,QAAQ,IAAI;EACZ,SAAS,IAAI,WAAW;EACxB,WAAW,IAAI,aAAa;EAC5B,YAAY,IAAI,cAAc;EAC9B,WAAW,IAAI;EACf,WAAW,IAAI;EAChB;AAGH,QAAO;EACL,IAAI,IAAI;EACR,QAAQ,IAAI;EACZ,UAAW,IAAI,YAAoB;EACnC,SAAS,IAAI,WAAW;EACxB,WAAW,IAAI,YAAY,IAAI,UAAU,SAAS,GAAG,KAAK,KAAK;EAC/D,WAAW,IAAI,aAAa;EAC5B,SAAS,IAAI,WAAW;EACzB;;AAGH,IAAa,mBAAb,MAAyD;CACvD,YAAY,AAAQ,IAAkB;EAAlB;;CAEpB,MAAM,OAAO,OAA2C;EACtD,MAAM,CAAC,OAAO,MAAM,KAAK,GAAG,OAAO,OAAO,CAAC,OAAO;GAChD,MAAM,MAAM;GACZ,QAAQ,MAAM,UAAU;GACxB,SAAS,MAAM,WAAW;GAC1B,WAAW,MAAM,aAAa;GAC/B,CAAC,CAAC,WAAW;AACd,SAAO,OAAO,IAAI;;CAGpB,MAAM,SAAS,IAAwC;EACrD,MAAM,MAAM,MAAM,KAAK,GAAG,MAAM,KAAK,UAAU,EAAE,OAAO,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC;AAC5E,SAAO,MAAM,OAAO,IAAI,GAAG;;CAG7B,MAAM,aAAa,IAAY,QAAoB,SAAqD;EACtG,MAAM,CAAC,OAAO,MAAM,KAAK,GAAG,OAAO,OAAO,CAAC,IAAI;GAC7C;GACA,SAAS,WAAW;GACpB,WAAW,KAAK,KAAK;GACtB,CAAC,CAAC,MAAM,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,WAAW;AACvC,SAAO,MAAM,OAAO,IAAI,GAAG;;CAG7B,MAAM,UAAU,OAAiD;EAC/D,MAAM,CAAC,OAAO,MAAM,KAAK,GAAG,OAAO,UAAU,CAAC,OAAO;GACnD,QAAQ,MAAM;GACd,UAAU,MAAM,YAAY;GAC5B,SAAS,MAAM,WAAW;GAC1B,WAAW,MAAM,YAAY,IAAI,KAAK,MAAM,UAAU,GAAG;GACzD,WAAW,MAAM,aAAa;GAC9B,SAAS,MAAM,WAAW;GAC3B,CAAC,CAAC,WAAW;AACd,SAAO,OAAO,IAAI;;CAGpB,MAAM,WAAW,QAA2C;AAC1D,MAAI,OAAO,WAAW,EACpB;AACF,QAAM,KAAK,GAAG,OAAO,UAAU,CAAC,OAAO,OAAO,KAAI,WAAU;GAC1D,QAAQ,MAAM;GACd,UAAU,MAAM,YAAY;GAC5B,SAAS,MAAM,WAAW;GAC1B,WAAW,MAAM,YAAY,IAAI,KAAK,MAAM,UAAU,GAAG;GACzD,WAAW,MAAM,aAAa;GAC9B,SAAS,MAAM,WAAW;GAC3B,EAAE,CAAC,CAAC,WAAW;;CAGlB,MAAM,iBAAiB,QAA0C;AAE/D,UADa,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,UAAU,CAAC,MAAM,GAAG,UAAU,QAAQ,OAAO,CAAC,CAAC,QAAQ,UAAU,UAAU,EACxG,KAAI,QAAO,OAAO,IAAI,CAAC;;CAGrC,MAAM,uBAAuB,QAAgB,OAAyC;AAEpF,UADa,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,UAAU,CAAC,MAAM,GAAG,UAAU,QAAQ,OAAO,CAAC,CAAC,QAAQ,IAAI,UAAU,UAAU,CAAC,CAAC,MAAM,MAAM,EAC1H,KAAI,QAAO,OAAO,IAAI,CAAC;;CAGrC,MAAM,gBAAgB,OAAsC;AAE1D,UADa,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,OAAO,CAAC,QAAQ,KAAK,OAAO,UAAU,CAAC,CAAC,MAAM,MAAM,EACjF,KAAI,QAAO,OAAO,IAAI,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { TaskEntity, TaskLogEntity, TaskStatus } from "../task.entity.mjs";
2
+ import { CreateTaskDTO, CreateTaskLogDTO } from "../task.dto.mjs";
3
+ import { SqliteDB } from "../../../shared/db/connection.mjs";
4
+ import { ITaskRepository } from "../task.repo.interface.mjs";
5
+
6
+ //#region src/modules/task/infrastructure/task.repo.sqlite.d.ts
7
+ declare class SqliteTaskRepository implements ITaskRepository {
8
+ private db;
9
+ constructor(db: SqliteDB);
10
+ create(input: CreateTaskDTO): Promise<TaskEntity>;
11
+ findById(id: string): Promise<TaskEntity | null>;
12
+ updateStatus(id: string, status: TaskStatus, message?: string | null): Promise<TaskEntity | null>;
13
+ createLog(input: CreateTaskLogDTO): Promise<TaskLogEntity>;
14
+ createLogs(inputs: CreateTaskLogDTO[]): Promise<void>;
15
+ findLogsByTaskId(taskId: string): Promise<TaskLogEntity[]>;
16
+ findRecentLogsByTaskId(taskId: string, limit: number): Promise<TaskLogEntity[]>;
17
+ findRecentTasks(limit: number): Promise<TaskEntity[]>;
18
+ }
19
+ //#endregion
20
+ export { SqliteTaskRepository };
21
+ //# sourceMappingURL=task.repo.sqlite.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.repo.sqlite.d.mts","names":[],"sources":["../../../../src/modules/task/infrastructure/task.repo.sqlite.ts"],"mappings":";;;;;;cAsCa,oBAAA,YAAgC,eAAA;EAAA,QACvB,EAAA;cAAA,EAAA,EAAI,QAAA;EAElB,MAAA,CAAO,KAAA,EAAO,aAAA,GAAgB,OAAA,CAAQ,UAAA;EAYtC,QAAA,CAAS,EAAA,WAAa,OAAA,CAAQ,UAAA;EAK9B,YAAA,CAAa,EAAA,UAAY,MAAA,EAAQ,UAAA,EAAY,OAAA,mBAA0B,OAAA,CAAQ,UAAA;EAS/E,SAAA,CAAU,KAAA,EAAO,gBAAA,GAAmB,OAAA,CAAQ,aAAA;EAY5C,UAAA,CAAW,MAAA,EAAQ,gBAAA,KAAqB,OAAA;EAaxC,gBAAA,CAAiB,MAAA,WAAiB,OAAA,CAAQ,aAAA;EAK1C,sBAAA,CAAuB,MAAA,UAAgB,KAAA,WAAgB,OAAA,CAAQ,aAAA;EAK/D,eAAA,CAAgB,KAAA,WAAgB,OAAA,CAAQ,UAAA;AAAA"}
@@ -0,0 +1,89 @@
1
+ import { taskLogSqlite, taskSqlite } from "./task.po.mjs";
2
+ import { asc, desc, eq } from "drizzle-orm";
3
+ import { uuidv7 } from "uuidv7";
4
+
5
+ //#region src/modules/task/infrastructure/task.repo.sqlite.ts
6
+ function mapper(row) {
7
+ if ("type" in row) return {
8
+ id: row.id,
9
+ type: row.type,
10
+ status: row.status,
11
+ message: row.message ?? null,
12
+ extraData: row.extraData ?? null,
13
+ logsLength: row.logsLength ?? 0,
14
+ createdAt: row.createdAt,
15
+ updatedAt: row.updatedAt
16
+ };
17
+ return {
18
+ id: row.id,
19
+ taskId: row.taskId,
20
+ logLevel: row.logLevel ?? null,
21
+ content: row.content ?? null,
22
+ createdAt: row.createdAt,
23
+ extraData: row.extraData ?? null,
24
+ traceId: row.traceId ?? null
25
+ };
26
+ }
27
+ var SqliteTaskRepository = class {
28
+ constructor(db) {
29
+ this.db = db;
30
+ }
31
+ async create(input) {
32
+ const [row] = await this.db.insert(taskSqlite).values({
33
+ id: uuidv7(),
34
+ type: input.type,
35
+ status: input.status ?? "running",
36
+ message: input.message ?? null,
37
+ extraData: input.extraData ?? null,
38
+ updatedAt: Date.now()
39
+ }).returning();
40
+ return mapper(row);
41
+ }
42
+ async findById(id) {
43
+ const row = await this.db.query.task.findFirst({ where: eq(taskSqlite.id, id) });
44
+ return row ? mapper(row) : null;
45
+ }
46
+ async updateStatus(id, status, message) {
47
+ const [row] = await this.db.update(taskSqlite).set({
48
+ status,
49
+ message: message ?? null,
50
+ updatedAt: Date.now()
51
+ }).where(eq(taskSqlite.id, id)).returning();
52
+ return row ? mapper(row) : null;
53
+ }
54
+ async createLog(input) {
55
+ const [row] = await this.db.insert(taskLogSqlite).values({
56
+ taskId: input.taskId,
57
+ logLevel: input.logLevel ?? null,
58
+ content: input.content ?? null,
59
+ createdAt: input.createdAt ?? void 0,
60
+ extraData: input.extraData ?? null,
61
+ traceId: input.traceId ?? null
62
+ }).returning();
63
+ return mapper(row);
64
+ }
65
+ async createLogs(inputs) {
66
+ if (inputs.length === 0) return;
67
+ await this.db.insert(taskLogSqlite).values(inputs.map((input) => ({
68
+ taskId: input.taskId,
69
+ logLevel: input.logLevel ?? null,
70
+ content: input.content ?? null,
71
+ createdAt: input.createdAt ?? void 0,
72
+ extraData: input.extraData ?? null,
73
+ traceId: input.traceId ?? null
74
+ }))).returning();
75
+ }
76
+ async findLogsByTaskId(taskId) {
77
+ return (await this.db.select().from(taskLogSqlite).where(eq(taskLogSqlite.taskId, taskId)).orderBy(taskLogSqlite.createdAt)).map((row) => mapper(row));
78
+ }
79
+ async findRecentLogsByTaskId(taskId, limit) {
80
+ return (await this.db.select().from(taskLogSqlite).where(eq(taskLogSqlite.taskId, taskId)).orderBy(asc(taskLogSqlite.createdAt)).limit(limit)).map((row) => mapper(row));
81
+ }
82
+ async findRecentTasks(limit) {
83
+ return (await this.db.select().from(taskSqlite).orderBy(desc(taskSqlite.createdAt)).limit(limit)).map((row) => mapper(row));
84
+ }
85
+ };
86
+
87
+ //#endregion
88
+ export { SqliteTaskRepository };
89
+ //# sourceMappingURL=task.repo.sqlite.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.repo.sqlite.mjs","names":[],"sources":["../../../../src/modules/task/infrastructure/task.repo.sqlite.ts"],"sourcesContent":["import type { CreateTaskDTO, CreateTaskLogDTO } from '@/modules/task/task.dto'\nimport type { TaskEntity, TaskLogEntity, TaskStatus } from '@/modules/task/task.entity'\nimport type { ITaskRepository } from '@/modules/task/task.repo.interface'\nimport type { SqliteDB } from '@/shared/db/connection'\nimport { asc, desc, eq, sql } from 'drizzle-orm'\nimport { uuidv7 } from 'uuidv7'\nimport { taskLogSqlite, taskSqlite } from '@/modules/task/infrastructure/task.po'\n\ntype TaskSqlitePO = typeof taskSqlite.$inferSelect\ntype TaskLogSqlitePO = typeof taskLogSqlite.$inferSelect\n\nfunction mapper(row: TaskSqlitePO): TaskEntity\nfunction mapper(row: TaskLogSqlitePO): TaskLogEntity\nfunction mapper(row: TaskSqlitePO | TaskLogSqlitePO): TaskEntity | TaskLogEntity {\n if ('type' in row) {\n return {\n id: row.id!,\n type: row.type!,\n status: row.status as TaskStatus,\n message: row.message ?? null,\n extraData: row.extraData ?? null,\n logsLength: row.logsLength ?? 0,\n createdAt: row.createdAt as number,\n updatedAt: row.updatedAt as number,\n }\n }\n\n return {\n id: row.id!,\n taskId: row.taskId!,\n logLevel: (row.logLevel as any) ?? null,\n content: row.content ?? null,\n createdAt: row.createdAt as number,\n extraData: row.extraData ?? null,\n traceId: row.traceId ?? null,\n }\n}\n\nexport class SqliteTaskRepository implements ITaskRepository {\n constructor(private db: SqliteDB) {}\n\n async create(input: CreateTaskDTO): Promise<TaskEntity> {\n const [row] = await this.db.insert(taskSqlite).values({\n id: uuidv7(),\n type: input.type,\n status: input.status ?? 'running',\n message: input.message ?? null,\n extraData: input.extraData ?? null,\n updatedAt: Date.now(),\n }).returning()\n return mapper(row)\n }\n\n async findById(id: string): Promise<TaskEntity | null> {\n const row = await this.db.query.task.findFirst({ where: eq(taskSqlite.id, id) })\n return row ? mapper(row) : null\n }\n\n async updateStatus(id: string, status: TaskStatus, message?: string | null): Promise<TaskEntity | null> {\n const [row] = await this.db.update(taskSqlite).set({\n status,\n message: message ?? null,\n updatedAt: Date.now(),\n }).where(eq(taskSqlite.id, id)).returning()\n return row ? mapper(row) : null\n }\n\n async createLog(input: CreateTaskLogDTO): Promise<TaskLogEntity> {\n const [row] = await this.db.insert(taskLogSqlite).values({\n taskId: input.taskId,\n logLevel: input.logLevel ?? null,\n content: input.content ?? null,\n createdAt: input.createdAt ?? undefined,\n extraData: input.extraData ?? null,\n traceId: input.traceId ?? null,\n }).returning()\n return mapper(row)\n }\n\n async createLogs(inputs: CreateTaskLogDTO[]): Promise<void> {\n if (inputs.length === 0)\n return\n await this.db.insert(taskLogSqlite).values(inputs.map(input => ({\n taskId: input.taskId,\n logLevel: input.logLevel ?? null,\n content: input.content ?? null,\n createdAt: input.createdAt ?? undefined,\n extraData: input.extraData ?? null,\n traceId: input.traceId ?? null,\n }))).returning()\n }\n\n async findLogsByTaskId(taskId: string): Promise<TaskLogEntity[]> {\n const rows = await this.db.select().from(taskLogSqlite).where(eq(taskLogSqlite.taskId, taskId)).orderBy(taskLogSqlite.createdAt)\n return rows.map(row => mapper(row))\n }\n\n async findRecentLogsByTaskId(taskId: string, limit: number): Promise<TaskLogEntity[]> {\n const rows = await this.db.select().from(taskLogSqlite).where(eq(taskLogSqlite.taskId, taskId)).orderBy(asc(taskLogSqlite.createdAt)).limit(limit)\n return rows.map(row => mapper(row))\n }\n\n async findRecentTasks(limit: number): Promise<TaskEntity[]> {\n const rows = await this.db.select().from(taskSqlite).orderBy(desc(taskSqlite.createdAt)).limit(limit)\n return rows.map(row => mapper(row))\n }\n}\n"],"mappings":";;;;;AAaA,SAAS,OAAO,KAAiE;AAC/E,KAAI,UAAU,IACZ,QAAO;EACL,IAAI,IAAI;EACR,MAAM,IAAI;EACV,QAAQ,IAAI;EACZ,SAAS,IAAI,WAAW;EACxB,WAAW,IAAI,aAAa;EAC5B,YAAY,IAAI,cAAc;EAC9B,WAAW,IAAI;EACf,WAAW,IAAI;EAChB;AAGH,QAAO;EACL,IAAI,IAAI;EACR,QAAQ,IAAI;EACZ,UAAW,IAAI,YAAoB;EACnC,SAAS,IAAI,WAAW;EACxB,WAAW,IAAI;EACf,WAAW,IAAI,aAAa;EAC5B,SAAS,IAAI,WAAW;EACzB;;AAGH,IAAa,uBAAb,MAA6D;CAC3D,YAAY,AAAQ,IAAc;EAAd;;CAEpB,MAAM,OAAO,OAA2C;EACtD,MAAM,CAAC,OAAO,MAAM,KAAK,GAAG,OAAO,WAAW,CAAC,OAAO;GACpD,IAAI,QAAQ;GACZ,MAAM,MAAM;GACZ,QAAQ,MAAM,UAAU;GACxB,SAAS,MAAM,WAAW;GAC1B,WAAW,MAAM,aAAa;GAC9B,WAAW,KAAK,KAAK;GACtB,CAAC,CAAC,WAAW;AACd,SAAO,OAAO,IAAI;;CAGpB,MAAM,SAAS,IAAwC;EACrD,MAAM,MAAM,MAAM,KAAK,GAAG,MAAM,KAAK,UAAU,EAAE,OAAO,GAAG,WAAW,IAAI,GAAG,EAAE,CAAC;AAChF,SAAO,MAAM,OAAO,IAAI,GAAG;;CAG7B,MAAM,aAAa,IAAY,QAAoB,SAAqD;EACtG,MAAM,CAAC,OAAO,MAAM,KAAK,GAAG,OAAO,WAAW,CAAC,IAAI;GACjD;GACA,SAAS,WAAW;GACpB,WAAW,KAAK,KAAK;GACtB,CAAC,CAAC,MAAM,GAAG,WAAW,IAAI,GAAG,CAAC,CAAC,WAAW;AAC3C,SAAO,MAAM,OAAO,IAAI,GAAG;;CAG7B,MAAM,UAAU,OAAiD;EAC/D,MAAM,CAAC,OAAO,MAAM,KAAK,GAAG,OAAO,cAAc,CAAC,OAAO;GACvD,QAAQ,MAAM;GACd,UAAU,MAAM,YAAY;GAC5B,SAAS,MAAM,WAAW;GAC1B,WAAW,MAAM,aAAa;GAC9B,WAAW,MAAM,aAAa;GAC9B,SAAS,MAAM,WAAW;GAC3B,CAAC,CAAC,WAAW;AACd,SAAO,OAAO,IAAI;;CAGpB,MAAM,WAAW,QAA2C;AAC1D,MAAI,OAAO,WAAW,EACpB;AACF,QAAM,KAAK,GAAG,OAAO,cAAc,CAAC,OAAO,OAAO,KAAI,WAAU;GAC9D,QAAQ,MAAM;GACd,UAAU,MAAM,YAAY;GAC5B,SAAS,MAAM,WAAW;GAC1B,WAAW,MAAM,aAAa;GAC9B,WAAW,MAAM,aAAa;GAC9B,SAAS,MAAM,WAAW;GAC3B,EAAE,CAAC,CAAC,WAAW;;CAGlB,MAAM,iBAAiB,QAA0C;AAE/D,UADa,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,cAAc,CAAC,MAAM,GAAG,cAAc,QAAQ,OAAO,CAAC,CAAC,QAAQ,cAAc,UAAU,EACpH,KAAI,QAAO,OAAO,IAAI,CAAC;;CAGrC,MAAM,uBAAuB,QAAgB,OAAyC;AAEpF,UADa,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,cAAc,CAAC,MAAM,GAAG,cAAc,QAAQ,OAAO,CAAC,CAAC,QAAQ,IAAI,cAAc,UAAU,CAAC,CAAC,MAAM,MAAM,EACtI,KAAI,QAAO,OAAO,IAAI,CAAC;;CAGrC,MAAM,gBAAgB,OAAsC;AAE1D,UADa,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,WAAW,CAAC,QAAQ,KAAK,WAAW,UAAU,CAAC,CAAC,MAAM,MAAM,EACzF,KAAI,QAAO,OAAO,IAAI,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { z as z$1 } from "zod";
2
+
3
+ //#region src/modules/task/task.dto.d.ts
4
+ declare const CreateTaskSchema: z$1.ZodObject<{
5
+ type: z$1.ZodString;
6
+ status: z$1.ZodOptional<z$1.ZodEnum<{
7
+ running: "running";
8
+ completed: "completed";
9
+ failed: "failed";
10
+ }>>;
11
+ message: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
12
+ extraData: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodAny>>;
13
+ }, z$1.core.$strip>;
14
+ type CreateTaskDTO = z$1.infer<typeof CreateTaskSchema>;
15
+ declare const CreateTaskLogSchema: z$1.ZodObject<{
16
+ taskId: z$1.ZodString;
17
+ logLevel: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
18
+ content: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
19
+ createdAt: z$1.ZodOptional<z$1.ZodNumber>;
20
+ extraData: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodAny>>;
21
+ traceId: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
22
+ }, z$1.core.$strip>;
23
+ type CreateTaskLogDTO = z$1.infer<typeof CreateTaskLogSchema>;
24
+ //#endregion
25
+ export { CreateTaskDTO, CreateTaskLogDTO, CreateTaskLogSchema, CreateTaskSchema };
26
+ //# sourceMappingURL=task.dto.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.dto.d.mts","names":[],"sources":["../../../src/modules/task/task.dto.ts"],"mappings":";;;cAEa,gBAAA,EAAgB,GAAA,CAAA,SAAA;;;;;;;;;;KAOjB,aAAA,GAAgB,GAAA,CAAE,KAAA,QAAa,gBAAA;AAAA,cAE9B,mBAAA,EAAmB,GAAA,CAAA,SAAA;;;;;;;;KASpB,gBAAA,GAAmB,GAAA,CAAE,KAAA,QAAa,mBAAA"}
@@ -0,0 +1,25 @@
1
+ import { z as z$1 } from "zod";
2
+
3
+ //#region src/modules/task/task.dto.ts
4
+ const CreateTaskSchema = z$1.object({
5
+ type: z$1.string(),
6
+ status: z$1.enum([
7
+ "running",
8
+ "completed",
9
+ "failed"
10
+ ]).optional(),
11
+ message: z$1.string().nullable().optional(),
12
+ extraData: z$1.any().nullable().optional()
13
+ });
14
+ const CreateTaskLogSchema = z$1.object({
15
+ taskId: z$1.string(),
16
+ logLevel: z$1.string().nullable().optional(),
17
+ content: z$1.string().nullable().optional(),
18
+ createdAt: z$1.number().optional(),
19
+ extraData: z$1.any().nullable().optional(),
20
+ traceId: z$1.string().nullable().optional()
21
+ });
22
+
23
+ //#endregion
24
+ export { CreateTaskLogSchema, CreateTaskSchema };
25
+ //# sourceMappingURL=task.dto.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.dto.mjs","names":["z"],"sources":["../../../src/modules/task/task.dto.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const CreateTaskSchema = z.object({\n type: z.string(),\n status: z.enum(['running', 'completed', 'failed']).optional(),\n message: z.string().nullable().optional(),\n extraData: z.any().nullable().optional(),\n})\n\nexport type CreateTaskDTO = z.infer<typeof CreateTaskSchema>\n\nexport const CreateTaskLogSchema = z.object({\n taskId: z.string(),\n logLevel: z.string().nullable().optional(),\n content: z.string().nullable().optional(),\n createdAt: z.number().optional(),\n extraData: z.any().nullable().optional(),\n traceId: z.string().nullable().optional(),\n})\n\nexport type CreateTaskLogDTO = z.infer<typeof CreateTaskLogSchema>\n"],"mappings":";;;AAEA,MAAa,mBAAmBA,IAAE,OAAO;CACvC,MAAMA,IAAE,QAAQ;CAChB,QAAQA,IAAE,KAAK;EAAC;EAAW;EAAa;EAAS,CAAC,CAAC,UAAU;CAC7D,SAASA,IAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CACzC,WAAWA,IAAE,KAAK,CAAC,UAAU,CAAC,UAAU;CACzC,CAAC;AAIF,MAAa,sBAAsBA,IAAE,OAAO;CAC1C,QAAQA,IAAE,QAAQ;CAClB,UAAUA,IAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC1C,SAASA,IAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CACzC,WAAWA,IAAE,QAAQ,CAAC,UAAU;CAChC,WAAWA,IAAE,KAAK,CAAC,UAAU,CAAC,UAAU;CACxC,SAASA,IAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC1C,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { Level } from "pino";
2
+
3
+ //#region src/modules/task/task.entity.d.ts
4
+ type TaskStatus = 'running' | 'completed' | 'failed';
5
+ type TaskLogLevel = Level;
6
+ interface TaskLogMessage {
7
+ message: string;
8
+ data?: unknown;
9
+ }
10
+ type TaskLogEntry = TaskLogMessage & {
11
+ timestamp: number;
12
+ level: TaskLogLevel;
13
+ };
14
+ interface TaskLogEntity {
15
+ id: number;
16
+ taskId: string;
17
+ logLevel: TaskLogLevel | null;
18
+ content: string | null;
19
+ createdAt: number;
20
+ extraData?: unknown | null;
21
+ traceId?: string | null;
22
+ }
23
+ type TaskLogEvent = {
24
+ type: 'log';
25
+ entry: TaskLogEntry;
26
+ } | {
27
+ type: 'end';
28
+ status: Exclude<TaskStatus, 'running'>;
29
+ };
30
+ type TaskType = string;
31
+ interface TaskEntity<T extends Record<string, any> = any> {
32
+ id: string;
33
+ type: TaskType;
34
+ status: TaskStatus;
35
+ message: string | null;
36
+ extraData: T;
37
+ logsLength: number;
38
+ createdAt: number;
39
+ updatedAt: number;
40
+ }
41
+ //#endregion
42
+ export { TaskEntity, TaskLogEntity, TaskLogEntry, TaskLogEvent, TaskLogLevel, TaskLogMessage, TaskStatus, TaskType };
43
+ //# sourceMappingURL=task.entity.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.entity.d.mts","names":[],"sources":["../../../src/modules/task/task.entity.ts"],"mappings":";;;KAEY,UAAA;AAAA,KAEA,YAAA,GAAe,KAAA;AAAA,UAEV,cAAA;EACf,OAAA;EACA,IAAA;AAAA;AAAA,KAGU,YAAA,GAAe,cAAA;EACzB,SAAA;EACA,KAAA,EAAO,YAAA;AAAA;AAAA,UAGQ,aAAA;EACf,EAAA;EACA,MAAA;EACA,QAAA,EAAU,YAAA;EACV,OAAA;EACA,SAAA;EACA,SAAA;EACA,OAAA;AAAA;AAAA,KAGU,YAAA;EAER,IAAA;EACA,KAAA,EAAO,YAAA;AAAA;EAGP,IAAA;EACA,MAAA,EAAQ,OAAA,CAAQ,UAAA;AAAA;AAAA,KAGR,QAAA;AAAA,UAEK,UAAA,WAAqB,MAAA;EACpC,EAAA;EACA,IAAA,EAAM,QAAA;EACN,MAAA,EAAQ,UAAA;EACR,OAAA;EACA,SAAA,EAAW,CAAA;EACX,UAAA;EACA,SAAA;EACA,SAAA;AAAA"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,17 @@
1
+ import { TaskEntity, TaskLogEntity, TaskStatus } from "./task.entity.mjs";
2
+ import { CreateTaskDTO, CreateTaskLogDTO } from "./task.dto.mjs";
3
+
4
+ //#region src/modules/task/task.repo.interface.d.ts
5
+ interface ITaskRepository {
6
+ create: (input: CreateTaskDTO) => Promise<TaskEntity>;
7
+ findById: (id: string) => Promise<TaskEntity | null>;
8
+ updateStatus: (id: string, status: TaskStatus, message?: string | null) => Promise<TaskEntity | null>;
9
+ createLog: (input: CreateTaskLogDTO) => Promise<TaskLogEntity>;
10
+ createLogs: (inputs: CreateTaskLogDTO[]) => Promise<void>;
11
+ findLogsByTaskId: (taskId: string) => Promise<TaskLogEntity[]>;
12
+ findRecentLogsByTaskId: (taskId: string, limit: number) => Promise<TaskLogEntity[]>;
13
+ findRecentTasks: (limit: number) => Promise<TaskEntity[]>;
14
+ }
15
+ //#endregion
16
+ export { ITaskRepository };
17
+ //# sourceMappingURL=task.repo.interface.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.repo.interface.d.mts","names":[],"sources":["../../../src/modules/task/task.repo.interface.ts"],"mappings":";;;;UAIiB,eAAA;EACf,MAAA,GAAS,KAAA,EAAO,aAAA,KAAkB,OAAA,CAAQ,UAAA;EAC1C,QAAA,GAAW,EAAA,aAAe,OAAA,CAAQ,UAAA;EAClC,YAAA,GAAe,EAAA,UAAY,MAAA,EAAQ,UAAA,EAAY,OAAA,qBAA4B,OAAA,CAAQ,UAAA;EACnF,SAAA,GAAY,KAAA,EAAO,gBAAA,KAAqB,OAAA,CAAQ,aAAA;EAChD,UAAA,GAAa,MAAA,EAAQ,gBAAA,OAAuB,OAAA;EAC5C,gBAAA,GAAmB,MAAA,aAAmB,OAAA,CAAQ,aAAA;EAC9C,sBAAA,GAAyB,MAAA,UAAgB,KAAA,aAAkB,OAAA,CAAQ,aAAA;EACnE,eAAA,GAAkB,KAAA,aAAkB,OAAA,CAAQ,UAAA;AAAA"}
@@ -0,0 +1 @@
1
+ export { };