@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.
- package/README.md +151 -0
- package/dist/app.d.mts +44779 -0
- package/dist/app.d.mts.map +1 -0
- package/dist/app.mjs +37 -0
- package/dist/app.mjs.map +1 -0
- package/dist/client.d.mts +22428 -0
- package/dist/client.d.mts.map +1 -0
- package/dist/client.mjs +15 -0
- package/dist/client.mjs.map +1 -0
- package/dist/dev.d.mts +11 -0
- package/dist/dev.d.mts.map +1 -0
- package/dist/dev.mjs +16 -0
- package/dist/dev.mjs.map +1 -0
- package/dist/index.d.mts +3 -0
- package/dist/index.mjs +10 -0
- package/dist/index.mjs.map +1 -0
- package/dist/modules/doc/chat.route.d.mts +18 -0
- package/dist/modules/doc/chat.route.d.mts.map +1 -0
- package/dist/modules/doc/chat.route.mjs +20 -0
- package/dist/modules/doc/chat.route.mjs.map +1 -0
- package/dist/modules/doc/chat.service.d.mts +10 -0
- package/dist/modules/doc/chat.service.d.mts.map +1 -0
- package/dist/modules/doc/chat.service.mjs +29 -0
- package/dist/modules/doc/chat.service.mjs.map +1 -0
- package/dist/modules/doc/doc.dto.d.mts +67 -0
- package/dist/modules/doc/doc.dto.d.mts.map +1 -0
- package/dist/modules/doc/doc.dto.mjs +43 -0
- package/dist/modules/doc/doc.dto.mjs.map +1 -0
- package/dist/modules/doc/doc.entity.d.mts +19 -0
- package/dist/modules/doc/doc.entity.d.mts.map +1 -0
- package/dist/modules/doc/doc.entity.mjs +1 -0
- package/dist/modules/doc/doc.repo.interface.d.mts +28 -0
- package/dist/modules/doc/doc.repo.interface.d.mts.map +1 -0
- package/dist/modules/doc/doc.repo.interface.mjs +1 -0
- package/dist/modules/doc/doc.route.d.mts +14193 -0
- package/dist/modules/doc/doc.route.d.mts.map +1 -0
- package/dist/modules/doc/doc.route.mjs +100 -0
- package/dist/modules/doc/doc.route.mjs.map +1 -0
- package/dist/modules/doc/doc.service.d.mts +38 -0
- package/dist/modules/doc/doc.service.d.mts.map +1 -0
- package/dist/modules/doc/doc.service.mjs +134 -0
- package/dist/modules/doc/doc.service.mjs.map +1 -0
- package/dist/modules/doc/doc.vo.d.mts +17 -0
- package/dist/modules/doc/doc.vo.d.mts.map +1 -0
- package/dist/modules/doc/doc.vo.mjs +1 -0
- package/dist/modules/doc/infrastructure/agent/engine/chat.d.mts +21 -0
- package/dist/modules/doc/infrastructure/agent/engine/chat.d.mts.map +1 -0
- package/dist/modules/doc/infrastructure/agent/engine/chat.mjs +36 -0
- package/dist/modules/doc/infrastructure/agent/engine/chat.mjs.map +1 -0
- package/dist/modules/doc/infrastructure/agent/engine/generate.d.mts +28 -0
- package/dist/modules/doc/infrastructure/agent/engine/generate.d.mts.map +1 -0
- package/dist/modules/doc/infrastructure/agent/engine/generate.mjs +135 -0
- package/dist/modules/doc/infrastructure/agent/engine/generate.mjs.map +1 -0
- package/dist/modules/doc/infrastructure/agent/engine/query-filter.d.mts +7 -0
- package/dist/modules/doc/infrastructure/agent/engine/query-filter.d.mts.map +1 -0
- package/dist/modules/doc/infrastructure/agent/engine/query-filter.mjs +12 -0
- package/dist/modules/doc/infrastructure/agent/engine/query-filter.mjs.map +1 -0
- package/dist/modules/doc/infrastructure/agent/loaders/git-repository-reader.d.mts +54 -0
- package/dist/modules/doc/infrastructure/agent/loaders/git-repository-reader.d.mts.map +1 -0
- package/dist/modules/doc/infrastructure/agent/loaders/git-repository-reader.mjs +142 -0
- package/dist/modules/doc/infrastructure/agent/loaders/git-repository-reader.mjs.map +1 -0
- package/dist/modules/doc/infrastructure/agent/loaders/index.d.mts +3 -0
- package/dist/modules/doc/infrastructure/agent/loaders/index.mjs +4 -0
- package/dist/modules/doc/infrastructure/agent/loaders/website-crawl-reader.d.mts +42 -0
- package/dist/modules/doc/infrastructure/agent/loaders/website-crawl-reader.d.mts.map +1 -0
- package/dist/modules/doc/infrastructure/agent/loaders/website-crawl-reader.mjs +104 -0
- package/dist/modules/doc/infrastructure/agent/loaders/website-crawl-reader.mjs.map +1 -0
- package/dist/modules/doc/infrastructure/agent/settings.d.mts +5 -0
- package/dist/modules/doc/infrastructure/agent/settings.d.mts.map +1 -0
- package/dist/modules/doc/infrastructure/agent/settings.mjs +72 -0
- package/dist/modules/doc/infrastructure/agent/settings.mjs.map +1 -0
- package/dist/modules/doc/infrastructure/agent/storage/index.d.mts +7 -0
- package/dist/modules/doc/infrastructure/agent/storage/index.d.mts.map +1 -0
- package/dist/modules/doc/infrastructure/agent/storage/index.mjs +12 -0
- package/dist/modules/doc/infrastructure/agent/storage/index.mjs.map +1 -0
- package/dist/modules/doc/infrastructure/agent/storage/vector-store.d.mts +14 -0
- package/dist/modules/doc/infrastructure/agent/storage/vector-store.d.mts.map +1 -0
- package/dist/modules/doc/infrastructure/agent/storage/vector-store.mjs +35 -0
- package/dist/modules/doc/infrastructure/agent/storage/vector-store.mjs.map +1 -0
- package/dist/modules/doc/infrastructure/doc.po.d.mts +570 -0
- package/dist/modules/doc/infrastructure/doc.po.d.mts.map +1 -0
- package/dist/modules/doc/infrastructure/doc.po.mjs +54 -0
- package/dist/modules/doc/infrastructure/doc.po.mjs.map +1 -0
- package/dist/modules/doc/infrastructure/doc.repo.pg.d.mts +32 -0
- package/dist/modules/doc/infrastructure/doc.repo.pg.d.mts.map +1 -0
- package/dist/modules/doc/infrastructure/doc.repo.pg.mjs +157 -0
- package/dist/modules/doc/infrastructure/doc.repo.pg.mjs.map +1 -0
- package/dist/modules/doc/infrastructure/doc.repo.sqlite.d.mts +32 -0
- package/dist/modules/doc/infrastructure/doc.repo.sqlite.d.mts.map +1 -0
- package/dist/modules/doc/infrastructure/doc.repo.sqlite.mjs +153 -0
- package/dist/modules/doc/infrastructure/doc.repo.sqlite.mjs.map +1 -0
- package/dist/modules/doc/mcp.route.d.mts +18 -0
- package/dist/modules/doc/mcp.route.d.mts.map +1 -0
- package/dist/modules/doc/mcp.route.mjs +39 -0
- package/dist/modules/doc/mcp.route.mjs.map +1 -0
- package/dist/modules/doc/mcp.service.d.mts +22 -0
- package/dist/modules/doc/mcp.service.d.mts.map +1 -0
- package/dist/modules/doc/mcp.service.mjs +119 -0
- package/dist/modules/doc/mcp.service.mjs.map +1 -0
- package/dist/modules/rank/rank.dto.d.mts +10 -0
- package/dist/modules/rank/rank.dto.d.mts.map +1 -0
- package/dist/modules/rank/rank.dto.mjs +8 -0
- package/dist/modules/rank/rank.dto.mjs.map +1 -0
- package/dist/modules/rank/rank.route.d.mts +2033 -0
- package/dist/modules/rank/rank.route.d.mts.map +1 -0
- package/dist/modules/rank/rank.route.mjs +20 -0
- package/dist/modules/rank/rank.route.mjs.map +1 -0
- package/dist/modules/rank/rank.service.d.mts +32 -0
- package/dist/modules/rank/rank.service.d.mts.map +1 -0
- package/dist/modules/rank/rank.service.mjs +3 -0
- package/dist/modules/rank/rank.vo.d.mts +9 -0
- package/dist/modules/rank/rank.vo.d.mts.map +1 -0
- package/dist/modules/rank/rank.vo.mjs +1 -0
- package/dist/modules/task/infrastructure/mq/task-context.d.mts +29 -0
- package/dist/modules/task/infrastructure/mq/task-context.d.mts.map +1 -0
- package/dist/modules/task/infrastructure/mq/task-context.mjs +70 -0
- package/dist/modules/task/infrastructure/mq/task-context.mjs.map +1 -0
- package/dist/modules/task/infrastructure/mq/task-queue.d.mts +10 -0
- package/dist/modules/task/infrastructure/mq/task-queue.d.mts.map +1 -0
- package/dist/modules/task/infrastructure/mq/task-queue.mjs +12 -0
- package/dist/modules/task/infrastructure/mq/task-queue.mjs.map +1 -0
- package/dist/modules/task/infrastructure/mq/task-worker.d.mts +13 -0
- package/dist/modules/task/infrastructure/mq/task-worker.d.mts.map +1 -0
- package/dist/modules/task/infrastructure/mq/task-worker.mjs +35 -0
- package/dist/modules/task/infrastructure/mq/task-worker.mjs.map +1 -0
- package/dist/modules/task/infrastructure/task.po.d.mts +1147 -0
- package/dist/modules/task/infrastructure/task.po.d.mts.map +1 -0
- package/dist/modules/task/infrastructure/task.po.mjs +55 -0
- package/dist/modules/task/infrastructure/task.po.mjs.map +1 -0
- package/dist/modules/task/infrastructure/task.repo.pg.d.mts +21 -0
- package/dist/modules/task/infrastructure/task.repo.pg.d.mts.map +1 -0
- package/dist/modules/task/infrastructure/task.repo.pg.mjs +86 -0
- package/dist/modules/task/infrastructure/task.repo.pg.mjs.map +1 -0
- package/dist/modules/task/infrastructure/task.repo.sqlite.d.mts +21 -0
- package/dist/modules/task/infrastructure/task.repo.sqlite.d.mts.map +1 -0
- package/dist/modules/task/infrastructure/task.repo.sqlite.mjs +89 -0
- package/dist/modules/task/infrastructure/task.repo.sqlite.mjs.map +1 -0
- package/dist/modules/task/task.dto.d.mts +26 -0
- package/dist/modules/task/task.dto.d.mts.map +1 -0
- package/dist/modules/task/task.dto.mjs +25 -0
- package/dist/modules/task/task.dto.mjs.map +1 -0
- package/dist/modules/task/task.entity.d.mts +43 -0
- package/dist/modules/task/task.entity.d.mts.map +1 -0
- package/dist/modules/task/task.entity.mjs +1 -0
- package/dist/modules/task/task.repo.interface.d.mts +17 -0
- package/dist/modules/task/task.repo.interface.d.mts.map +1 -0
- package/dist/modules/task/task.repo.interface.mjs +1 -0
- package/dist/modules/task/task.route.d.mts +4087 -0
- package/dist/modules/task/task.route.d.mts.map +1 -0
- package/dist/modules/task/task.route.mjs +63 -0
- package/dist/modules/task/task.route.mjs.map +1 -0
- package/dist/modules/task/task.service.d.mts +28 -0
- package/dist/modules/task/task.service.d.mts.map +1 -0
- package/dist/modules/task/task.service.mjs +202 -0
- package/dist/modules/task/task.service.mjs.map +1 -0
- package/dist/modules/task/task.vo.d.mts +18 -0
- package/dist/modules/task/task.vo.d.mts.map +1 -0
- package/dist/modules/task/task.vo.mjs +1 -0
- package/dist/modules/user/application/user.service.d.mts +24 -0
- package/dist/modules/user/application/user.service.d.mts.map +1 -0
- package/dist/modules/user/application/user.service.mjs +153 -0
- package/dist/modules/user/application/user.service.mjs.map +1 -0
- package/dist/modules/user/domain/user.entity.d.mts +24 -0
- package/dist/modules/user/domain/user.entity.d.mts.map +1 -0
- package/dist/modules/user/domain/user.entity.mjs +35 -0
- package/dist/modules/user/domain/user.entity.mjs.map +1 -0
- package/dist/modules/user/domain/user.repo.interface.d.mts +27 -0
- package/dist/modules/user/domain/user.repo.interface.d.mts.map +1 -0
- package/dist/modules/user/domain/user.repo.interface.mjs +1 -0
- package/dist/modules/user/infrastructure/casbin/adapter.d.mts +7 -0
- package/dist/modules/user/infrastructure/casbin/adapter.d.mts.map +1 -0
- package/dist/modules/user/infrastructure/casbin/adapter.mjs +13 -0
- package/dist/modules/user/infrastructure/casbin/adapter.mjs.map +1 -0
- package/dist/modules/user/infrastructure/casbin/adapter.pg.d.mts +19 -0
- package/dist/modules/user/infrastructure/casbin/adapter.pg.d.mts.map +1 -0
- package/dist/modules/user/infrastructure/casbin/adapter.pg.mjs +129 -0
- package/dist/modules/user/infrastructure/casbin/adapter.pg.mjs.map +1 -0
- package/dist/modules/user/infrastructure/casbin/adapter.sqlite.d.mts +19 -0
- package/dist/modules/user/infrastructure/casbin/adapter.sqlite.d.mts.map +1 -0
- package/dist/modules/user/infrastructure/casbin/adapter.sqlite.mjs +129 -0
- package/dist/modules/user/infrastructure/casbin/adapter.sqlite.mjs.map +1 -0
- package/dist/modules/user/infrastructure/casbin/enforcer.d.mts +9 -0
- package/dist/modules/user/infrastructure/casbin/enforcer.d.mts.map +1 -0
- package/dist/modules/user/infrastructure/casbin/enforcer.mjs +150 -0
- package/dist/modules/user/infrastructure/casbin/enforcer.mjs.map +1 -0
- package/dist/modules/user/infrastructure/casbin-rule.po.d.mts +643 -0
- package/dist/modules/user/infrastructure/casbin-rule.po.d.mts.map +1 -0
- package/dist/modules/user/infrastructure/casbin-rule.po.mjs +30 -0
- package/dist/modules/user/infrastructure/casbin-rule.po.mjs.map +1 -0
- package/dist/modules/user/infrastructure/user.po.d.mts +392 -0
- package/dist/modules/user/infrastructure/user.po.d.mts.map +1 -0
- package/dist/modules/user/infrastructure/user.po.mjs +34 -0
- package/dist/modules/user/infrastructure/user.po.mjs.map +1 -0
- package/dist/modules/user/infrastructure/user.repo.pg.d.mts +24 -0
- package/dist/modules/user/infrastructure/user.repo.pg.d.mts.map +1 -0
- package/dist/modules/user/infrastructure/user.repo.pg.mjs +90 -0
- package/dist/modules/user/infrastructure/user.repo.pg.mjs.map +1 -0
- package/dist/modules/user/infrastructure/user.repo.sqlite.d.mts +24 -0
- package/dist/modules/user/infrastructure/user.repo.sqlite.d.mts.map +1 -0
- package/dist/modules/user/infrastructure/user.repo.sqlite.mjs +88 -0
- package/dist/modules/user/infrastructure/user.repo.sqlite.mjs.map +1 -0
- package/dist/modules/user/interfaces/admin.route.d.mts +8270 -0
- package/dist/modules/user/interfaces/admin.route.d.mts.map +1 -0
- package/dist/modules/user/interfaces/admin.route.mjs +74 -0
- package/dist/modules/user/interfaces/admin.route.mjs.map +1 -0
- package/dist/modules/user/interfaces/role.route.d.mts +102 -0
- package/dist/modules/user/interfaces/role.route.d.mts.map +1 -0
- package/dist/modules/user/interfaces/role.route.mjs +60 -0
- package/dist/modules/user/interfaces/role.route.mjs.map +1 -0
- package/dist/modules/user/interfaces/user.dto.d.mts +106 -0
- package/dist/modules/user/interfaces/user.dto.d.mts.map +1 -0
- package/dist/modules/user/interfaces/user.dto.mjs +32 -0
- package/dist/modules/user/interfaces/user.dto.mjs.map +1 -0
- package/dist/modules/user/interfaces/user.route.d.mts +2093 -0
- package/dist/modules/user/interfaces/user.route.d.mts.map +1 -0
- package/dist/modules/user/interfaces/user.route.mjs +69 -0
- package/dist/modules/user/interfaces/user.route.mjs.map +1 -0
- package/dist/modules/user/interfaces/user.vo.d.mts +28 -0
- package/dist/modules/user/interfaces/user.vo.d.mts.map +1 -0
- package/dist/modules/user/interfaces/user.vo.mjs +18 -0
- package/dist/modules/user/interfaces/user.vo.mjs.map +1 -0
- package/dist/rank.service-D2h-2iJA.mjs +109 -0
- package/dist/rank.service-D2h-2iJA.mjs.map +1 -0
- package/dist/settings.d.mts +12 -0
- package/dist/settings.d.mts.map +1 -0
- package/dist/settings.mjs +27 -0
- package/dist/settings.mjs.map +1 -0
- package/dist/shared/create-app.d.mts +13 -0
- package/dist/shared/create-app.d.mts.map +1 -0
- package/dist/shared/create-app.mjs +45 -0
- package/dist/shared/create-app.mjs.map +1 -0
- package/dist/shared/db/bootstrap.d.mts +5 -0
- package/dist/shared/db/bootstrap.d.mts.map +1 -0
- package/dist/shared/db/bootstrap.mjs +51 -0
- package/dist/shared/db/bootstrap.mjs.map +1 -0
- package/dist/shared/db/connection.d.mts +1567 -0
- package/dist/shared/db/connection.d.mts.map +1 -0
- package/dist/shared/db/connection.mjs +59 -0
- package/dist/shared/db/connection.mjs.map +1 -0
- package/dist/shared/db/migrations/pg/0000_init.sql +74 -0
- package/dist/shared/db/migrations/pg/0001_snippets & tokens.sql +6 -0
- package/dist/shared/db/migrations/pg/0002_change_task_id_to_uuid_v7.sql +3 -0
- package/dist/shared/db/migrations/pg/meta/0000_snapshot.json +498 -0
- package/dist/shared/db/migrations/pg/meta/0001_snapshot.json +513 -0
- package/dist/shared/db/migrations/pg/meta/0002_snapshot.json +514 -0
- package/dist/shared/db/migrations/pg/meta/_journal.json +27 -0
- package/dist/shared/db/migrations/sqlite/0000_init.sql +72 -0
- package/dist/shared/db/migrations/sqlite/0001_snippets & tokens.sql +2 -0
- package/dist/shared/db/migrations/sqlite/0002_change_task_id_to_uuid_v7.sql +35 -0
- package/dist/shared/db/migrations/sqlite/meta/0000_snapshot.json +493 -0
- package/dist/shared/db/migrations/sqlite/meta/0001_snapshot.json +509 -0
- package/dist/shared/db/migrations/sqlite/meta/0002_snapshot.json +509 -0
- package/dist/shared/db/migrations/sqlite/meta/_journal.json +27 -0
- package/dist/shared/db/seed.d.mts +5 -0
- package/dist/shared/db/seed.d.mts.map +1 -0
- package/dist/shared/db/seed.mjs +42 -0
- package/dist/shared/db/seed.mjs.map +1 -0
- package/dist/shared/deps.d.mts +28 -0
- package/dist/shared/deps.d.mts.map +1 -0
- package/dist/shared/deps.mjs +69 -0
- package/dist/shared/deps.mjs.map +1 -0
- package/dist/shared/dto/index.d.mts +11 -0
- package/dist/shared/dto/index.d.mts.map +1 -0
- package/dist/shared/dto/index.mjs +11 -0
- package/dist/shared/dto/index.mjs.map +1 -0
- package/dist/shared/logger.d.mts +14 -0
- package/dist/shared/logger.d.mts.map +1 -0
- package/dist/shared/logger.mjs +37 -0
- package/dist/shared/logger.mjs.map +1 -0
- package/dist/shared/mcp/createTool.d.mts +15 -0
- package/dist/shared/mcp/createTool.d.mts.map +1 -0
- package/dist/shared/mcp/createTool.mjs +8 -0
- package/dist/shared/mcp/createTool.mjs.map +1 -0
- package/dist/shared/middleware/authorization.d.mts +15 -0
- package/dist/shared/middleware/authorization.d.mts.map +1 -0
- package/dist/shared/middleware/authorization.mjs +46 -0
- package/dist/shared/middleware/authorization.mjs.map +1 -0
- package/dist/shared/middleware/http-logger.d.mts +7 -0
- package/dist/shared/middleware/http-logger.d.mts.map +1 -0
- package/dist/shared/middleware/http-logger.mjs +40 -0
- package/dist/shared/middleware/http-logger.mjs.map +1 -0
- package/dist/shared/middleware/jwt.d.mts +7 -0
- package/dist/shared/middleware/jwt.d.mts.map +1 -0
- package/dist/shared/middleware/jwt.mjs +34 -0
- package/dist/shared/middleware/jwt.mjs.map +1 -0
- package/dist/shared/middleware/limiter.d.mts +7 -0
- package/dist/shared/middleware/limiter.d.mts.map +1 -0
- package/dist/shared/middleware/limiter.mjs +10 -0
- package/dist/shared/middleware/limiter.mjs.map +1 -0
- package/dist/shared/middleware/services.d.mts +8 -0
- package/dist/shared/middleware/services.d.mts.map +1 -0
- package/dist/shared/middleware/services.mjs +19 -0
- package/dist/shared/middleware/services.mjs.map +1 -0
- package/dist/shared/redis/decorator.d.mts +113 -0
- package/dist/shared/redis/decorator.d.mts.map +1 -0
- package/dist/shared/redis/decorator.mjs +203 -0
- package/dist/shared/redis/decorator.mjs.map +1 -0
- package/dist/shared/redis/factory.d.mts +18 -0
- package/dist/shared/redis/factory.d.mts.map +1 -0
- package/dist/shared/redis/factory.mjs +41 -0
- package/dist/shared/redis/factory.mjs.map +1 -0
- package/dist/shared/redis/index.d.mts +12 -0
- package/dist/shared/redis/index.d.mts.map +1 -0
- package/dist/shared/redis/index.mjs +14 -0
- package/dist/shared/redis/index.mjs.map +1 -0
- package/dist/shared/types.d.mts +36 -0
- package/dist/shared/types.d.mts.map +1 -0
- package/dist/shared/types.mjs +1 -0
- package/dist/shared/utils/date.d.mts +1 -0
- package/dist/shared/utils/date.mjs +1 -0
- package/dist/shared/utils/error-handler.d.mts +7 -0
- package/dist/shared/utils/error-handler.d.mts.map +1 -0
- package/dist/shared/utils/error-handler.mjs +22 -0
- package/dist/shared/utils/error-handler.mjs.map +1 -0
- package/dist/shared/utils/format.d.mts +8 -0
- package/dist/shared/utils/format.d.mts.map +1 -0
- package/dist/shared/utils/format.mjs +24 -0
- package/dist/shared/utils/format.mjs.map +1 -0
- package/dist/shared/utils/pagination.d.mts +9 -0
- package/dist/shared/utils/pagination.d.mts.map +1 -0
- package/dist/shared/utils/pagination.mjs +12 -0
- package/dist/shared/utils/pagination.mjs.map +1 -0
- package/dist/shared/utils/response-template.d.mts +69 -0
- package/dist/shared/utils/response-template.d.mts.map +1 -0
- package/dist/shared/utils/response-template.mjs +96 -0
- package/dist/shared/utils/response-template.mjs.map +1 -0
- package/dist/shared/utils/url.d.mts +18 -0
- package/dist/shared/utils/url.d.mts.map +1 -0
- package/dist/shared/utils/url.mjs +39 -0
- package/dist/shared/utils/url.mjs.map +1 -0
- package/dist/shared/utils/user.d.mts +8 -0
- package/dist/shared/utils/user.d.mts.map +1 -0
- package/dist/shared/utils/user.mjs +11 -0
- package/dist/shared/utils/user.mjs.map +1 -0
- package/dist/shared/utils/validator.d.mts +5984 -0
- package/dist/shared/utils/validator.d.mts.map +1 -0
- package/dist/shared/utils/validator.mjs +34 -0
- package/dist/shared/utils/validator.mjs.map +1 -0
- package/dist/shared/vo/index.d.mts +11 -0
- package/dist/shared/vo/index.d.mts.map +1 -0
- package/dist/shared/vo/index.mjs +1 -0
- 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 { };
|