@t4h.framework/dev 0.14.2 → 0.15.0
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/CHANGELOG.md +13 -0
- package/README.md +96 -45
- package/dist/AppProcess.d.ts +36 -0
- package/dist/AppProcess.js +126 -0
- package/dist/AppProcess.js.map +1 -0
- package/dist/Server.d.ts +41 -0
- package/dist/Server.js +168 -0
- package/dist/Server.js.map +1 -0
- package/dist/constants/server.d.ts +9 -0
- package/dist/constants/server.js +10 -0
- package/dist/constants/server.js.map +1 -0
- package/dist/http/create-app.d.ts +16 -0
- package/dist/http/create-app.js +134 -0
- package/dist/http/create-app.js.map +1 -0
- package/dist/http/helpers/to-http-error.d.ts +8 -0
- package/dist/http/helpers/to-http-error.js +9 -0
- package/dist/http/helpers/to-http-error.js.map +1 -0
- package/dist/http/middlewares/error-handler.middleware.d.ts +2 -0
- package/dist/http/middlewares/error-handler.middleware.js +27 -0
- package/dist/http/middlewares/error-handler.middleware.js.map +1 -0
- package/dist/http/middlewares/project-manifest.middleware.d.ts +11 -0
- package/dist/http/middlewares/project-manifest.middleware.js +11 -0
- package/dist/http/middlewares/project-manifest.middleware.js.map +1 -0
- package/dist/http/middlewares/read-json-body.middleware.d.ts +6 -0
- package/dist/http/middlewares/read-json-body.middleware.js +22 -0
- package/dist/http/middlewares/read-json-body.middleware.js.map +1 -0
- package/dist/http/middlewares/workflow-authorization.middleware.d.ts +12 -0
- package/dist/http/middlewares/workflow-authorization.middleware.js +28 -0
- package/dist/http/middlewares/workflow-authorization.middleware.js.map +1 -0
- package/dist/index.d.ts +3 -15
- package/dist/index.js +2 -15
- package/dist/index.js.map +1 -1
- package/dist/models/JSONRPCClient.d.ts +2 -0
- package/dist/models/JSONRPCClient.js +21 -4
- package/dist/models/JSONRPCClient.js.map +1 -1
- package/dist/models/JSONRPCError.d.ts +13 -0
- package/dist/models/JSONRPCError.js +11 -0
- package/dist/models/JSONRPCError.js.map +1 -0
- package/dist/models/JSONRPCServer.d.ts +2 -0
- package/dist/models/JSONRPCServer.js +10 -2
- package/dist/models/JSONRPCServer.js.map +1 -1
- package/dist/models/WorkflowAuthorizationMissingError.d.ts +5 -0
- package/dist/models/WorkflowAuthorizationMissingError.js +9 -0
- package/dist/models/WorkflowAuthorizationMissingError.js.map +1 -0
- package/dist/models/WorkflowRun.d.ts +28 -15
- package/dist/models/WorkflowRun.js +17 -8
- package/dist/models/WorkflowRun.js.map +1 -1
- package/dist/models/WorkflowRunActivity.d.ts +40 -27
- package/dist/models/WorkflowRunActivity.js +46 -34
- package/dist/models/WorkflowRunActivity.js.map +1 -1
- package/dist/models/claims/DevHttpClientRequestClaim.js +4 -5
- package/dist/models/claims/DevHttpClientRequestClaim.js.map +1 -1
- package/dist/models/claims/DevORMClaim.d.ts +15 -4
- package/dist/models/claims/DevORMClaim.js +128 -29
- package/dist/models/claims/DevORMClaim.js.map +1 -1
- package/dist/models/claims/DevWorkflowBatchClaim.js +2 -3
- package/dist/models/claims/DevWorkflowBatchClaim.js.map +1 -1
- package/dist/models/claims/DevWorkflowClaim.d.ts +1 -1
- package/dist/models/claims/DevWorkflowClaim.js +6 -11
- package/dist/models/claims/DevWorkflowClaim.js.map +1 -1
- package/dist/repositories/WorkflowRun.repository.d.ts +41 -6
- package/dist/repositories/WorkflowRun.repository.js +204 -11
- package/dist/repositories/WorkflowRun.repository.js.map +1 -1
- package/dist/repositories/WorkflowRunActivity.repository.d.ts +19 -6
- package/dist/repositories/WorkflowRunActivity.repository.js +73 -23
- package/dist/repositories/WorkflowRunActivity.repository.js.map +1 -1
- package/dist/repositories/WorkflowRunAsyncActivityPending.repository.d.ts +39 -0
- package/dist/repositories/WorkflowRunAsyncActivityPending.repository.js +160 -0
- package/dist/repositories/WorkflowRunAsyncActivityPending.repository.js.map +1 -0
- package/dist/services/ActivityRegistry.service.d.ts +7 -0
- package/dist/services/ActivityRegistry.service.js +32 -0
- package/dist/services/ActivityRegistry.service.js.map +1 -0
- package/dist/services/Database.service.d.ts +14 -0
- package/dist/services/Database.service.js +108 -0
- package/dist/services/Database.service.js.map +1 -0
- package/dist/services/TimeoutScheduler.service.js +9 -3
- package/dist/services/TimeoutScheduler.service.js.map +1 -1
- package/dist/services/WorkflowAuthorization.service.d.ts +19 -0
- package/dist/services/WorkflowAuthorization.service.js +75 -0
- package/dist/services/WorkflowAuthorization.service.js.map +1 -0
- package/dist/services/WorkflowRunAsyncActivityFacade.service.d.ts +8 -15
- package/dist/services/WorkflowRunAsyncActivityFacade.service.js +12 -26
- package/dist/services/WorkflowRunAsyncActivityFacade.service.js.map +1 -1
- package/dist/services/WorkflowRunEvents.service.d.ts +11 -0
- package/dist/services/WorkflowRunEvents.service.js +42 -0
- package/dist/services/WorkflowRunEvents.service.js.map +1 -0
- package/dist/services/WorkflowRunFacade.service.d.ts +109 -7
- package/dist/services/WorkflowRunFacade.service.js +65 -10
- package/dist/services/WorkflowRunFacade.service.js.map +1 -1
- package/dist/services/WorkflowRunLock.service.d.ts +6 -0
- package/dist/services/WorkflowRunLock.service.js +34 -0
- package/dist/services/WorkflowRunLock.service.js.map +1 -0
- package/dist/services/WorkflowRunSyncActivityFacade.service.d.ts +4 -4
- package/dist/services/WorkflowRunSyncActivityFacade.service.js +7 -7
- package/dist/services/WorkflowRunSyncActivityFacade.service.js.map +1 -1
- package/dist/tools/find-workflow-by-id.d.ts +2 -0
- package/dist/tools/find-workflow-by-id.js +9 -0
- package/dist/tools/find-workflow-by-id.js.map +1 -0
- package/dist/tools/format-routes.d.ts +10 -0
- package/dist/tools/format-routes.js +40 -0
- package/dist/tools/format-routes.js.map +1 -0
- package/dist/tools/replace.d.ts +1 -0
- package/dist/tools/replace.js +14 -0
- package/dist/tools/replace.js.map +1 -0
- package/dist/tools/to-workflow-run-activity-output.d.ts +24 -0
- package/dist/tools/to-workflow-run-activity-output.js +18 -0
- package/dist/tools/to-workflow-run-activity-output.js.map +1 -0
- package/dist/tools/to-workflow-run-output.d.ts +12 -0
- package/dist/tools/to-workflow-run-output.js +13 -0
- package/dist/tools/to-workflow-run-output.js.map +1 -0
- package/dist/transport/AppProcessJsonRpc.js +59 -0
- package/dist/transport/AppProcessJsonRpc.js.map +1 -0
- package/dist/use-cases/BuildWorkflowRunActivityHistory.usecase.d.ts +9 -0
- package/dist/use-cases/{WorkflowRunBuildHistory.usecase.js → BuildWorkflowRunActivityHistory.usecase.js} +18 -16
- package/dist/use-cases/BuildWorkflowRunActivityHistory.usecase.js.map +1 -0
- package/dist/use-cases/CreateWorkflowRun.usecase.d.ts +6 -6
- package/dist/use-cases/CreateWorkflowRun.usecase.js +20 -21
- package/dist/use-cases/CreateWorkflowRun.usecase.js.map +1 -1
- package/dist/use-cases/CreateWorkflowRunAsyncActivity.usecase.d.ts +9 -3
- package/dist/use-cases/CreateWorkflowRunAsyncActivity.usecase.js +45 -39
- package/dist/use-cases/CreateWorkflowRunAsyncActivity.usecase.js.map +1 -1
- package/dist/use-cases/EnqueueWorkflowRunNextTick.usecase.d.ts +9 -0
- package/dist/use-cases/EnqueueWorkflowRunNextTick.usecase.js +43 -0
- package/dist/use-cases/EnqueueWorkflowRunNextTick.usecase.js.map +1 -0
- package/dist/use-cases/ExecuteWorkflowRunActivity.usecase.d.ts +9 -0
- package/dist/use-cases/ExecuteWorkflowRunActivity.usecase.js +46 -0
- package/dist/use-cases/ExecuteWorkflowRunActivity.usecase.js.map +1 -0
- package/dist/use-cases/ExecuteWorkflowRunAsyncActivity.usecase.d.ts +22 -0
- package/dist/use-cases/ExecuteWorkflowRunAsyncActivity.usecase.js +117 -0
- package/dist/use-cases/ExecuteWorkflowRunAsyncActivity.usecase.js.map +1 -0
- package/dist/use-cases/NextTickWorkflowRun.usecase.d.ts +18 -7
- package/dist/use-cases/NextTickWorkflowRun.usecase.js +152 -128
- package/dist/use-cases/NextTickWorkflowRun.usecase.js.map +1 -1
- package/dist/use-cases/RunWorkflow.usecase.d.ts +10 -0
- package/dist/use-cases/RunWorkflow.usecase.js +46 -0
- package/dist/use-cases/RunWorkflow.usecase.js.map +1 -0
- package/dist/use-cases/WorkflowRunActivityFind.usecase.d.ts +34 -0
- package/dist/use-cases/WorkflowRunActivityFind.usecase.js +49 -0
- package/dist/use-cases/WorkflowRunActivityFind.usecase.js.map +1 -0
- package/dist/use-cases/WorkflowRunActivityFindById.usecase.d.ts +34 -0
- package/dist/use-cases/WorkflowRunActivityFindById.usecase.js +60 -0
- package/dist/use-cases/WorkflowRunActivityFindById.usecase.js.map +1 -0
- package/dist/use-cases/WorkflowRunAsyncActivityAdvance.usecase.d.ts +12 -4
- package/dist/use-cases/WorkflowRunAsyncActivityAdvance.usecase.js +41 -27
- package/dist/use-cases/WorkflowRunAsyncActivityAdvance.usecase.js.map +1 -1
- package/dist/use-cases/WorkflowRunAsyncActivityPendingFind.usecase.d.ts +24 -0
- package/dist/use-cases/WorkflowRunAsyncActivityPendingFind.usecase.js +56 -0
- package/dist/use-cases/WorkflowRunAsyncActivityPendingFind.usecase.js.map +1 -0
- package/dist/use-cases/WorkflowRunFind.usecase.d.ts +18 -0
- package/dist/use-cases/WorkflowRunFind.usecase.js +28 -0
- package/dist/use-cases/WorkflowRunFind.usecase.js.map +1 -0
- package/dist/use-cases/WorkflowRunFindById.usecase.d.ts +21 -0
- package/dist/use-cases/WorkflowRunFindById.usecase.js +46 -0
- package/dist/use-cases/WorkflowRunFindById.usecase.js.map +1 -0
- package/dist/workers/app-process.js +10 -1
- package/dist/workers/app-process.js.map +1 -1
- package/package.json +14 -4
- package/.ai/skills/framework-dev/SKILL.md +0 -348
- package/dist/DevServer.d.ts +0 -24
- package/dist/DevServer.js +0 -87
- package/dist/DevServer.js.map +0 -1
- package/dist/models/InMemoryDatabase.d.ts +0 -20
- package/dist/models/InMemoryDatabase.js +0 -111
- package/dist/models/InMemoryDatabase.js.map +0 -1
- package/dist/services/BuildWorkflowRunResult.service.d.ts +0 -8
- package/dist/services/BuildWorkflowRunResult.service.js +0 -49
- package/dist/services/BuildWorkflowRunResult.service.js.map +0 -1
- package/dist/tools/is-workflow-waiting.d.ts +0 -4
- package/dist/tools/is-workflow-waiting.js +0 -12
- package/dist/tools/is-workflow-waiting.js.map +0 -1
- package/dist/transport/DevServerJsonRpc.js +0 -42
- package/dist/transport/DevServerJsonRpc.js.map +0 -1
- package/dist/use-cases/CallbackWorkflowRunAsyncActivity.usecase.d.ts +0 -14
- package/dist/use-cases/CallbackWorkflowRunAsyncActivity.usecase.js +0 -64
- package/dist/use-cases/CallbackWorkflowRunAsyncActivity.usecase.js.map +0 -1
- package/dist/use-cases/TimeoutWorkflowRunAsyncActivity.usecase.d.ts +0 -8
- package/dist/use-cases/TimeoutWorkflowRunAsyncActivity.usecase.js +0 -40
- package/dist/use-cases/TimeoutWorkflowRunAsyncActivity.usecase.js.map +0 -1
- package/dist/use-cases/WorkflowRunAsyncActivity.usecase.d.ts +0 -7
- package/dist/use-cases/WorkflowRunAsyncActivity.usecase.js +0 -46
- package/dist/use-cases/WorkflowRunAsyncActivity.usecase.js.map +0 -1
- package/dist/use-cases/WorkflowRunBuildHistory.usecase.d.ts +0 -8
- package/dist/use-cases/WorkflowRunBuildHistory.usecase.js.map +0 -1
- package/dist/use-cases/WorkflowRunSyncActivity.usecase.d.ts +0 -4
- package/dist/use-cases/WorkflowRunSyncActivity.usecase.js +0 -28
- package/dist/use-cases/WorkflowRunSyncActivity.usecase.js.map +0 -1
- /package/dist/transport/{DevServerJsonRpc.d.ts → AppProcessJsonRpc.d.ts} +0 -0
|
@@ -1,8 +1,43 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Log } from '@t4h.framework/core';
|
|
2
|
+
import { WorkflowRun, type WorkflowRunRejectedReason, type WorkflowRunStatus } from '../models/WorkflowRun.js';
|
|
3
|
+
import { DatabaseService } from '../services/Database.service.js';
|
|
4
|
+
export interface PageOptions {
|
|
5
|
+
limit?: number;
|
|
6
|
+
offset?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface WorkflowRunLogsPage {
|
|
9
|
+
count: number;
|
|
10
|
+
logs: Log[];
|
|
11
|
+
}
|
|
12
|
+
export interface WorkflowRunFindOptions {
|
|
13
|
+
status?: WorkflowRunStatus;
|
|
14
|
+
workflow?: string;
|
|
15
|
+
id?: string;
|
|
16
|
+
parentRunId?: string;
|
|
17
|
+
parentActivityId?: string;
|
|
18
|
+
rootOnly?: boolean;
|
|
19
|
+
createdAfter?: number;
|
|
20
|
+
createdBefore?: number;
|
|
21
|
+
limit?: number;
|
|
22
|
+
offset?: number;
|
|
23
|
+
}
|
|
2
24
|
export declare class WorkflowRunRepository {
|
|
3
|
-
private readonly
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
25
|
+
private readonly database;
|
|
26
|
+
constructor(database: DatabaseService);
|
|
27
|
+
private get db();
|
|
28
|
+
create(run: WorkflowRun): Promise<void>;
|
|
29
|
+
createMany(runs: readonly WorkflowRun[]): Promise<void>;
|
|
30
|
+
findById(id: string): Promise<WorkflowRun | undefined>;
|
|
31
|
+
findByParentActivityId(parentActivityId: string): Promise<WorkflowRun[]>;
|
|
32
|
+
findStartableIdsByParentActivityId(parentActivityId: string): string[];
|
|
33
|
+
findBatchSiblings(parentActivityId: string): Promise<WorkflowRun[]>;
|
|
34
|
+
countRunningByParentActivityId(parentActivityId: string): number;
|
|
35
|
+
find({ status, workflow, id, parentRunId, parentActivityId, rootOnly, createdAfter, createdBefore, limit, offset, }?: WorkflowRunFindOptions): Promise<[WorkflowRun[], number]>;
|
|
36
|
+
finish(id: string, output: unknown): Promise<void>;
|
|
37
|
+
reject(id: string, reason: WorkflowRunRejectedReason, activityId?: string): void;
|
|
38
|
+
createLogs(runId: string, logs: readonly Log[]): Promise<void>;
|
|
39
|
+
findLogs(runId: string, { limit, offset }?: PageOptions): Promise<WorkflowRunLogsPage>;
|
|
40
|
+
findParentActivityIdsWithRuns(parentActivityIds: readonly string[]): Set<string>;
|
|
41
|
+
private toRow;
|
|
42
|
+
private toModel;
|
|
8
43
|
}
|
|
@@ -4,24 +4,217 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { Inject, Injectable } from 'pleroma';
|
|
11
|
+
import { WorkflowRun, } from '../models/WorkflowRun.js';
|
|
12
|
+
import { DatabaseService } from '../services/Database.service.js';
|
|
13
|
+
const LOGS_PAGE_SIZE = 25;
|
|
14
|
+
const INSERT = `
|
|
15
|
+
INSERT INTO workflow_runs (
|
|
16
|
+
id, workflow_id, status, input, output, rejected_reason,
|
|
17
|
+
rejected_activity_id, parent_run_id, parent_activity_id,
|
|
18
|
+
batch_index, batch_size, created_at, updated_at
|
|
19
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
20
|
+
`;
|
|
8
21
|
let WorkflowRunRepository = class WorkflowRunRepository {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
22
|
+
database;
|
|
23
|
+
constructor(database) {
|
|
24
|
+
this.database = database;
|
|
25
|
+
}
|
|
26
|
+
get db() {
|
|
27
|
+
return this.database.db;
|
|
28
|
+
}
|
|
29
|
+
async create(run) {
|
|
30
|
+
this.db.prepare(INSERT).run(...(await this.toRow(run)));
|
|
31
|
+
}
|
|
32
|
+
async createMany(runs) {
|
|
33
|
+
const rows = await Promise.all(runs.map(run => this.toRow(run)));
|
|
34
|
+
this.database.transaction(() => {
|
|
35
|
+
const insert = this.db.prepare(INSERT);
|
|
36
|
+
for (const row of rows)
|
|
37
|
+
insert.run(...row);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
async findById(id) {
|
|
41
|
+
const row = this.db
|
|
42
|
+
.prepare('SELECT * FROM workflow_runs WHERE id = ?')
|
|
43
|
+
.get(id);
|
|
44
|
+
return row && (await this.toModel(row));
|
|
45
|
+
}
|
|
46
|
+
async findByParentActivityId(parentActivityId) {
|
|
47
|
+
const rows = this.db
|
|
48
|
+
.prepare(`SELECT * FROM workflow_runs
|
|
49
|
+
WHERE parent_activity_id = ?
|
|
50
|
+
ORDER BY batch_index, created_at, id`)
|
|
51
|
+
.all(parentActivityId);
|
|
52
|
+
return Promise.all(rows.map(row => this.toModel(row)));
|
|
53
|
+
}
|
|
54
|
+
findStartableIdsByParentActivityId(parentActivityId) {
|
|
55
|
+
const rows = this.db
|
|
56
|
+
.prepare(`SELECT workflow_runs.id FROM workflow_runs
|
|
57
|
+
WHERE workflow_runs.parent_activity_id = ?
|
|
58
|
+
AND workflow_runs.status = 'running'
|
|
59
|
+
AND NOT EXISTS (
|
|
60
|
+
SELECT 1 FROM workflow_run_activities
|
|
61
|
+
WHERE workflow_run_activities.run_id = workflow_runs.id
|
|
62
|
+
)
|
|
63
|
+
ORDER BY workflow_runs.batch_index, workflow_runs.created_at, workflow_runs.id`)
|
|
64
|
+
.all(parentActivityId);
|
|
65
|
+
return rows.map(row => row.id);
|
|
66
|
+
}
|
|
67
|
+
async findBatchSiblings(parentActivityId) {
|
|
68
|
+
const rows = this.db
|
|
69
|
+
.prepare(`SELECT * FROM workflow_runs
|
|
70
|
+
WHERE parent_activity_id = ? AND batch_size IS NOT NULL
|
|
71
|
+
ORDER BY batch_index`)
|
|
72
|
+
.all(parentActivityId);
|
|
73
|
+
return Promise.all(rows.map(row => this.toModel(row)));
|
|
74
|
+
}
|
|
75
|
+
countRunningByParentActivityId(parentActivityId) {
|
|
76
|
+
const row = this.db
|
|
77
|
+
.prepare(`SELECT COUNT(*) AS count FROM workflow_runs
|
|
78
|
+
WHERE parent_activity_id = ? AND status = 'running'`)
|
|
79
|
+
.get(parentActivityId);
|
|
80
|
+
return row.count;
|
|
81
|
+
}
|
|
82
|
+
async find({ status, workflow, id, parentRunId, parentActivityId, rootOnly, createdAfter, createdBefore, limit = 50, offset = 0, } = {}) {
|
|
83
|
+
const conditions = [];
|
|
84
|
+
const params = [];
|
|
85
|
+
if (status) {
|
|
86
|
+
conditions.push('status = ?');
|
|
87
|
+
params.push(status);
|
|
88
|
+
}
|
|
89
|
+
if (workflow) {
|
|
90
|
+
conditions.push('workflow_id = ?');
|
|
91
|
+
params.push(workflow);
|
|
92
|
+
}
|
|
93
|
+
if (id) {
|
|
94
|
+
conditions.push('instr(id, ?) = 1');
|
|
95
|
+
params.push(id);
|
|
96
|
+
}
|
|
97
|
+
if (parentRunId) {
|
|
98
|
+
conditions.push('parent_run_id = ?');
|
|
99
|
+
params.push(parentRunId);
|
|
100
|
+
}
|
|
101
|
+
if (parentActivityId) {
|
|
102
|
+
conditions.push('parent_activity_id = ?');
|
|
103
|
+
params.push(parentActivityId);
|
|
104
|
+
}
|
|
105
|
+
if (rootOnly)
|
|
106
|
+
conditions.push('parent_run_id IS NULL');
|
|
107
|
+
if (createdAfter !== undefined) {
|
|
108
|
+
conditions.push('created_at >= ?');
|
|
109
|
+
params.push(createdAfter);
|
|
110
|
+
}
|
|
111
|
+
if (createdBefore !== undefined) {
|
|
112
|
+
conditions.push('created_at <= ?');
|
|
113
|
+
params.push(createdBefore);
|
|
114
|
+
}
|
|
115
|
+
const where = conditions.length ? `WHERE ${conditions.join(' AND ')}` : '';
|
|
116
|
+
const { count } = this.db
|
|
117
|
+
.prepare(`SELECT COUNT(*) AS count FROM workflow_runs ${where}`)
|
|
118
|
+
.get(...params);
|
|
119
|
+
const rows = this.db
|
|
120
|
+
.prepare(`SELECT * FROM workflow_runs ${where}
|
|
121
|
+
ORDER BY created_at DESC, id DESC
|
|
122
|
+
LIMIT ? OFFSET ?`)
|
|
123
|
+
.all(...params, limit, offset);
|
|
124
|
+
return [await Promise.all(rows.map(row => this.toModel(row))), count];
|
|
125
|
+
}
|
|
126
|
+
async finish(id, output) {
|
|
127
|
+
this.db
|
|
128
|
+
.prepare(`UPDATE workflow_runs
|
|
129
|
+
SET status = 'fulfilled', output = ?, updated_at = ?
|
|
130
|
+
WHERE id = ?`)
|
|
131
|
+
.run(await this.database.encode(output), Date.now(), id);
|
|
132
|
+
}
|
|
133
|
+
reject(id, reason, activityId) {
|
|
134
|
+
this.db
|
|
135
|
+
.prepare(`UPDATE workflow_runs
|
|
136
|
+
SET status = 'rejected', rejected_reason = ?, rejected_activity_id = ?,
|
|
137
|
+
updated_at = ?
|
|
138
|
+
WHERE id = ?`)
|
|
139
|
+
.run(JSON.stringify(reason), activityId ?? null, Date.now(), id);
|
|
140
|
+
}
|
|
141
|
+
async createLogs(runId, logs) {
|
|
142
|
+
const rows = await Promise.all(logs.map(async (log) => [
|
|
143
|
+
runId,
|
|
144
|
+
log.level,
|
|
145
|
+
(await this.database.encode(log.args)) ?? '[]',
|
|
146
|
+
log.at,
|
|
147
|
+
]));
|
|
148
|
+
this.database.transaction(() => {
|
|
149
|
+
const insert = this.db.prepare('INSERT INTO workflow_run_logs (run_id, level, args, at) VALUES (?, ?, ?, ?)');
|
|
150
|
+
for (const row of rows)
|
|
151
|
+
insert.run(...row);
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
async findLogs(runId, { limit = LOGS_PAGE_SIZE, offset = 0 } = {}) {
|
|
155
|
+
const { count } = this.db
|
|
156
|
+
.prepare('SELECT COUNT(*) AS count FROM workflow_run_logs WHERE run_id = ?')
|
|
157
|
+
.get(runId);
|
|
158
|
+
const rows = this.db
|
|
159
|
+
.prepare(`SELECT level, args, at FROM workflow_run_logs
|
|
160
|
+
WHERE run_id = ? ORDER BY at DESC, id DESC LIMIT ? OFFSET ?`)
|
|
161
|
+
.all(runId, limit, offset);
|
|
162
|
+
return {
|
|
163
|
+
count,
|
|
164
|
+
logs: await Promise.all(rows.map(async (row) => ({
|
|
165
|
+
level: row.level,
|
|
166
|
+
args: (await this.database.decode(row.args)),
|
|
167
|
+
at: row.at,
|
|
168
|
+
}))),
|
|
169
|
+
};
|
|
12
170
|
}
|
|
13
|
-
|
|
14
|
-
|
|
171
|
+
findParentActivityIdsWithRuns(parentActivityIds) {
|
|
172
|
+
if (parentActivityIds.length === 0)
|
|
173
|
+
return new Set();
|
|
174
|
+
const rows = this.db
|
|
175
|
+
.prepare(`SELECT DISTINCT parent_activity_id FROM workflow_runs
|
|
176
|
+
WHERE parent_activity_id IN (${parentActivityIds.map(() => '?').join(', ')})`)
|
|
177
|
+
.all(...parentActivityIds);
|
|
178
|
+
return new Set(rows.map(row => row.parent_activity_id));
|
|
15
179
|
}
|
|
16
|
-
|
|
17
|
-
|
|
180
|
+
async toRow(run) {
|
|
181
|
+
return [
|
|
182
|
+
run.id,
|
|
183
|
+
run.workflow,
|
|
184
|
+
run.status,
|
|
185
|
+
await this.database.encode(run.input),
|
|
186
|
+
await this.database.encode(run.output),
|
|
187
|
+
run.rejectedReason ? JSON.stringify(run.rejectedReason) : null,
|
|
188
|
+
run.rejectedActivityId ?? null,
|
|
189
|
+
run.parentWorkflowRunId ?? null,
|
|
190
|
+
run.parentWorkflowRunActivityId ?? null,
|
|
191
|
+
run.batchIndex ?? null,
|
|
192
|
+
run.batchSize ?? null,
|
|
193
|
+
run.createdAt.getTime(),
|
|
194
|
+
run.updatedAt.getTime(),
|
|
195
|
+
];
|
|
18
196
|
}
|
|
19
|
-
|
|
20
|
-
return this.
|
|
197
|
+
async toModel(row) {
|
|
198
|
+
return new WorkflowRun(row.workflow_id, await this.database.decode(row.input), {
|
|
199
|
+
id: row.id,
|
|
200
|
+
status: row.status,
|
|
201
|
+
output: await this.database.decode(row.output),
|
|
202
|
+
rejectedReason: row.rejected_reason
|
|
203
|
+
? JSON.parse(row.rejected_reason)
|
|
204
|
+
: undefined,
|
|
205
|
+
rejectedActivityId: row.rejected_activity_id ?? undefined,
|
|
206
|
+
parentWorkflowRunId: row.parent_run_id ?? undefined,
|
|
207
|
+
parentWorkflowRunActivityId: row.parent_activity_id ?? undefined,
|
|
208
|
+
batchIndex: row.batch_index ?? undefined,
|
|
209
|
+
batchSize: row.batch_size ?? undefined,
|
|
210
|
+
createdAt: new Date(row.created_at),
|
|
211
|
+
updatedAt: new Date(row.updated_at),
|
|
212
|
+
});
|
|
21
213
|
}
|
|
22
214
|
};
|
|
23
215
|
WorkflowRunRepository = __decorate([
|
|
24
|
-
Injectable()
|
|
216
|
+
Injectable(),
|
|
217
|
+
__param(0, Inject(() => DatabaseService))
|
|
25
218
|
], WorkflowRunRepository);
|
|
26
219
|
export { WorkflowRunRepository };
|
|
27
220
|
//# sourceMappingURL=WorkflowRun.repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowRun.repository.js","sourceRoot":"","sources":["../../src/repositories/WorkflowRun.repository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WorkflowRun.repository.js","sourceRoot":"","sources":["../../src/repositories/WorkflowRun.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,21 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { WorkflowRunActivity } from '../models/WorkflowRunActivity.js';
|
|
2
|
+
import { DatabaseService } from '../services/Database.service.js';
|
|
2
3
|
export declare class WorkflowRunActivityRepository {
|
|
3
|
-
private
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
private readonly database;
|
|
5
|
+
constructor(database: DatabaseService);
|
|
6
|
+
private get db();
|
|
7
|
+
create(activity: WorkflowRunActivity): Promise<void>;
|
|
8
|
+
findById(id: string): Promise<WorkflowRunActivity | undefined>;
|
|
9
|
+
findByRunId(runId: string): Promise<WorkflowRunActivity[]>;
|
|
10
|
+
findPageByRunId(runId: string, { limit, offset }?: {
|
|
11
|
+
limit?: number;
|
|
12
|
+
offset?: number;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
count: number;
|
|
15
|
+
activities: WorkflowRunActivity[];
|
|
16
|
+
}>;
|
|
17
|
+
countByRunId(runId: string): number;
|
|
18
|
+
complete(id: string, output: unknown): Promise<void>;
|
|
19
|
+
fail(id: string, output?: unknown): Promise<void>;
|
|
20
|
+
private toModel;
|
|
8
21
|
}
|
|
@@ -4,33 +4,83 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { Inject, Injectable } from 'pleroma';
|
|
11
|
+
import { WorkflowRunActivity, } from '../models/WorkflowRunActivity.js';
|
|
12
|
+
import { DatabaseService } from '../services/Database.service.js';
|
|
8
13
|
let WorkflowRunActivityRepository = class WorkflowRunActivityRepository {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
14
|
+
database;
|
|
15
|
+
constructor(database) {
|
|
16
|
+
this.database = database;
|
|
17
|
+
}
|
|
18
|
+
get db() {
|
|
19
|
+
return this.database.db;
|
|
20
|
+
}
|
|
21
|
+
async create(activity) {
|
|
22
|
+
this.db
|
|
23
|
+
.prepare(`INSERT INTO workflow_run_activities (
|
|
24
|
+
id, run_id, position, type, kind, status, input, output, completed_at, created_at
|
|
25
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
26
|
+
.run(activity.id, activity.runId, activity.position, activity.type, activity.kind, activity.status, await this.database.encode(activity.input), await this.database.encode(activity.output), activity.completedAt?.getTime() ?? null, activity.createdAt.getTime());
|
|
27
|
+
}
|
|
28
|
+
async findById(id) {
|
|
29
|
+
const row = this.db
|
|
30
|
+
.prepare('SELECT * FROM workflow_run_activities WHERE id = ?')
|
|
31
|
+
.get(id);
|
|
32
|
+
return row && (await this.toModel(row));
|
|
33
|
+
}
|
|
34
|
+
async findByRunId(runId) {
|
|
35
|
+
const rows = this.db
|
|
36
|
+
.prepare('SELECT * FROM workflow_run_activities WHERE run_id = ? ORDER BY position')
|
|
37
|
+
.all(runId);
|
|
38
|
+
return Promise.all(rows.map(row => this.toModel(row)));
|
|
39
|
+
}
|
|
40
|
+
async findPageByRunId(runId, { limit = 25, offset = 0 } = {}) {
|
|
41
|
+
const rows = this.db
|
|
42
|
+
.prepare(`SELECT * FROM workflow_run_activities WHERE run_id = ?
|
|
43
|
+
ORDER BY position DESC LIMIT ? OFFSET ?`)
|
|
44
|
+
.all(runId, limit, offset);
|
|
45
|
+
return {
|
|
46
|
+
count: this.countByRunId(runId),
|
|
47
|
+
activities: await Promise.all(rows.map(row => this.toModel(row))),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
countByRunId(runId) {
|
|
51
|
+
const row = this.db
|
|
52
|
+
.prepare('SELECT COUNT(*) AS count FROM workflow_run_activities WHERE run_id = ?')
|
|
53
|
+
.get(runId);
|
|
54
|
+
return row.count;
|
|
55
|
+
}
|
|
56
|
+
async complete(id, output) {
|
|
57
|
+
this.db
|
|
58
|
+
.prepare(`UPDATE workflow_run_activities
|
|
59
|
+
SET output = ?, completed_at = ?, status = 'fulfilled'
|
|
60
|
+
WHERE id = ?`)
|
|
61
|
+
.run(await this.database.encode(output), Date.now(), id);
|
|
62
|
+
}
|
|
63
|
+
async fail(id, output) {
|
|
64
|
+
this.db
|
|
65
|
+
.prepare(`UPDATE workflow_run_activities
|
|
66
|
+
SET output = ?, completed_at = ?, status = 'rejected'
|
|
67
|
+
WHERE id = ?`)
|
|
68
|
+
.run(await this.database.encode(output), Date.now(), id);
|
|
69
|
+
}
|
|
70
|
+
async toModel(row) {
|
|
71
|
+
return new WorkflowRunActivity(row.run_id, row.position, row.type, row.kind, {
|
|
72
|
+
id: row.id,
|
|
73
|
+
status: row.status,
|
|
74
|
+
input: await this.database.decode(row.input),
|
|
75
|
+
output: await this.database.decode(row.output),
|
|
76
|
+
completedAt: row.completed_at === null ? undefined : new Date(row.completed_at),
|
|
77
|
+
createdAt: new Date(row.created_at),
|
|
78
|
+
});
|
|
30
79
|
}
|
|
31
80
|
};
|
|
32
81
|
WorkflowRunActivityRepository = __decorate([
|
|
33
|
-
Injectable()
|
|
82
|
+
Injectable(),
|
|
83
|
+
__param(0, Inject(() => DatabaseService))
|
|
34
84
|
], WorkflowRunActivityRepository);
|
|
35
85
|
export { WorkflowRunActivityRepository };
|
|
36
86
|
//# sourceMappingURL=WorkflowRunActivity.repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowRunActivity.repository.js","sourceRoot":"","sources":["../../src/repositories/WorkflowRunActivity.repository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WorkflowRunActivity.repository.js","sourceRoot":"","sources":["../../src/repositories/WorkflowRunActivity.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type Type from 'typebox';
|
|
2
|
+
import { WorkflowRunAsyncActivityPending, type AsyncActivityPendingStatus } from '../models/WorkflowRunActivity.js';
|
|
3
|
+
import { DatabaseService } from '../services/Database.service.js';
|
|
4
|
+
export interface PageQuery {
|
|
5
|
+
limit?: number;
|
|
6
|
+
offset?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface WaitingAsyncActivitiesPage {
|
|
9
|
+
count: number;
|
|
10
|
+
activities: WaitingAsyncActivity[];
|
|
11
|
+
}
|
|
12
|
+
export interface WaitingAsyncActivity {
|
|
13
|
+
id: string;
|
|
14
|
+
pendingId: string;
|
|
15
|
+
runId: string;
|
|
16
|
+
workflowId: string;
|
|
17
|
+
type: string;
|
|
18
|
+
schema: Type.TSchema | undefined;
|
|
19
|
+
timeoutAt: Date | undefined;
|
|
20
|
+
}
|
|
21
|
+
export declare class WorkflowRunAsyncActivityPendingRepository {
|
|
22
|
+
private readonly database;
|
|
23
|
+
constructor(database: DatabaseService);
|
|
24
|
+
private get db();
|
|
25
|
+
create(pending: WorkflowRunAsyncActivityPending): Promise<void>;
|
|
26
|
+
findById(id: string): Promise<WorkflowRunAsyncActivityPending | undefined>;
|
|
27
|
+
findByActivityId(activityId: string): Promise<WorkflowRunAsyncActivityPending[]>;
|
|
28
|
+
findPageByActivityId(activityId: string, { limit, offset }?: PageQuery): Promise<{
|
|
29
|
+
count: number;
|
|
30
|
+
pendings: WorkflowRunAsyncActivityPending[];
|
|
31
|
+
}>;
|
|
32
|
+
findLastByActivityId(activityId: string): Promise<WorkflowRunAsyncActivityPending | undefined>;
|
|
33
|
+
findLastStatusByActivityIds(activityIds: readonly string[]): Map<string, AsyncActivityPendingStatus>;
|
|
34
|
+
findRootByActivityId(activityId: string): Promise<WorkflowRunAsyncActivityPending | undefined>;
|
|
35
|
+
updateStatus(id: string, status: AsyncActivityPendingStatus): void;
|
|
36
|
+
setPayload(id: string, payload: unknown): Promise<void>;
|
|
37
|
+
findWaiting({ limit, offset, }?: PageQuery): WaitingAsyncActivitiesPage;
|
|
38
|
+
private toModel;
|
|
39
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
10
|
+
import { Inject, Injectable } from 'pleroma';
|
|
11
|
+
import { WorkflowRunAsyncActivityPending, } from '../models/WorkflowRunActivity.js';
|
|
12
|
+
import { DatabaseService } from '../services/Database.service.js';
|
|
13
|
+
const WAITING_PAGE_SIZE = 25;
|
|
14
|
+
const WAITING_FROM_WHERE = `
|
|
15
|
+
FROM workflow_run_async_activity_pendings
|
|
16
|
+
JOIN workflow_run_activities
|
|
17
|
+
ON workflow_run_activities.id = workflow_run_async_activity_pendings.activity_id
|
|
18
|
+
JOIN workflow_runs
|
|
19
|
+
ON workflow_runs.id = workflow_run_activities.run_id
|
|
20
|
+
WHERE workflow_run_async_activity_pendings.status = 'pending'
|
|
21
|
+
AND workflow_runs.status = 'running'
|
|
22
|
+
AND workflow_run_async_activity_pendings.position = (
|
|
23
|
+
SELECT MAX(last_pending.position)
|
|
24
|
+
FROM workflow_run_async_activity_pendings AS last_pending
|
|
25
|
+
WHERE last_pending.activity_id = workflow_run_async_activity_pendings.activity_id
|
|
26
|
+
)`;
|
|
27
|
+
let WorkflowRunAsyncActivityPendingRepository = class WorkflowRunAsyncActivityPendingRepository {
|
|
28
|
+
database;
|
|
29
|
+
constructor(database) {
|
|
30
|
+
this.database = database;
|
|
31
|
+
}
|
|
32
|
+
get db() {
|
|
33
|
+
return this.database.db;
|
|
34
|
+
}
|
|
35
|
+
async create(pending) {
|
|
36
|
+
this.db
|
|
37
|
+
.prepare(`INSERT INTO workflow_run_async_activity_pendings (
|
|
38
|
+
id, activity_id, position, previous_id, status, schema, timeout_at,
|
|
39
|
+
result, payload, created_at, updated_at
|
|
40
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
41
|
+
.run(pending.id, pending.activityId, pending.position, pending.previousId ?? null, pending.status, pending.schema ? JSON.stringify(pending.schema) : null, pending.timeoutAt?.getTime() ?? null, await this.database.encode(pending.result), await this.database.encode(pending.payload), pending.createdAt.getTime(), pending.updatedAt.getTime());
|
|
42
|
+
}
|
|
43
|
+
async findById(id) {
|
|
44
|
+
const row = this.db
|
|
45
|
+
.prepare('SELECT * FROM workflow_run_async_activity_pendings WHERE id = ?')
|
|
46
|
+
.get(id);
|
|
47
|
+
return row && (await this.toModel(row));
|
|
48
|
+
}
|
|
49
|
+
async findByActivityId(activityId) {
|
|
50
|
+
const rows = this.db
|
|
51
|
+
.prepare(`SELECT * FROM workflow_run_async_activity_pendings
|
|
52
|
+
WHERE activity_id = ? ORDER BY position`)
|
|
53
|
+
.all(activityId);
|
|
54
|
+
return Promise.all(rows.map(row => this.toModel(row)));
|
|
55
|
+
}
|
|
56
|
+
async findPageByActivityId(activityId, { limit = 25, offset = 0 } = {}) {
|
|
57
|
+
const { count } = this.db
|
|
58
|
+
.prepare(`SELECT COUNT(*) AS count FROM workflow_run_async_activity_pendings
|
|
59
|
+
WHERE activity_id = ?`)
|
|
60
|
+
.get(activityId);
|
|
61
|
+
const rows = this.db
|
|
62
|
+
.prepare(`SELECT * FROM workflow_run_async_activity_pendings
|
|
63
|
+
WHERE activity_id = ? ORDER BY position DESC LIMIT ? OFFSET ?`)
|
|
64
|
+
.all(activityId, limit, offset);
|
|
65
|
+
return {
|
|
66
|
+
count,
|
|
67
|
+
pendings: await Promise.all(rows.map(row => this.toModel(row))),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
async findLastByActivityId(activityId) {
|
|
71
|
+
const row = this.db
|
|
72
|
+
.prepare(`SELECT * FROM workflow_run_async_activity_pendings
|
|
73
|
+
WHERE activity_id = ? ORDER BY position DESC LIMIT 1`)
|
|
74
|
+
.get(activityId);
|
|
75
|
+
return row && (await this.toModel(row));
|
|
76
|
+
}
|
|
77
|
+
findLastStatusByActivityIds(activityIds) {
|
|
78
|
+
if (activityIds.length === 0)
|
|
79
|
+
return new Map();
|
|
80
|
+
const rows = this.db
|
|
81
|
+
.prepare(`SELECT activity_id, status FROM workflow_run_async_activity_pendings
|
|
82
|
+
WHERE activity_id IN (${activityIds.map(() => '?').join(', ')})
|
|
83
|
+
AND position = (
|
|
84
|
+
SELECT MAX(last_pending.position)
|
|
85
|
+
FROM workflow_run_async_activity_pendings AS last_pending
|
|
86
|
+
WHERE last_pending.activity_id = workflow_run_async_activity_pendings.activity_id
|
|
87
|
+
)`)
|
|
88
|
+
.all(...activityIds);
|
|
89
|
+
return new Map(rows.map(row => [row.activity_id, row.status]));
|
|
90
|
+
}
|
|
91
|
+
async findRootByActivityId(activityId) {
|
|
92
|
+
const row = this.db
|
|
93
|
+
.prepare(`SELECT * FROM workflow_run_async_activity_pendings
|
|
94
|
+
WHERE activity_id = ? AND position = 0`)
|
|
95
|
+
.get(activityId);
|
|
96
|
+
return row && (await this.toModel(row));
|
|
97
|
+
}
|
|
98
|
+
updateStatus(id, status) {
|
|
99
|
+
this.db
|
|
100
|
+
.prepare(`UPDATE workflow_run_async_activity_pendings
|
|
101
|
+
SET status = ?, updated_at = ? WHERE id = ?`)
|
|
102
|
+
.run(status, Date.now(), id);
|
|
103
|
+
}
|
|
104
|
+
async setPayload(id, payload) {
|
|
105
|
+
this.db
|
|
106
|
+
.prepare(`UPDATE workflow_run_async_activity_pendings
|
|
107
|
+
SET payload = ?, updated_at = ? WHERE id = ?`)
|
|
108
|
+
.run(await this.database.encode(payload), Date.now(), id);
|
|
109
|
+
}
|
|
110
|
+
findWaiting({ limit = WAITING_PAGE_SIZE, offset = 0, } = {}) {
|
|
111
|
+
const { count } = this.db
|
|
112
|
+
.prepare(`SELECT COUNT(*) AS count ${WAITING_FROM_WHERE}`)
|
|
113
|
+
.get();
|
|
114
|
+
const rows = this.db
|
|
115
|
+
.prepare(`SELECT workflow_run_activities.id AS activity_id,
|
|
116
|
+
workflow_run_async_activity_pendings.id AS pending_id,
|
|
117
|
+
workflow_run_activities.run_id,
|
|
118
|
+
workflow_runs.workflow_id,
|
|
119
|
+
workflow_run_activities.type,
|
|
120
|
+
workflow_run_async_activity_pendings.schema,
|
|
121
|
+
workflow_run_async_activity_pendings.timeout_at
|
|
122
|
+
${WAITING_FROM_WHERE}
|
|
123
|
+
ORDER BY workflow_runs.created_at DESC, workflow_runs.id DESC, workflow_run_activities.position
|
|
124
|
+
LIMIT ? OFFSET ?`)
|
|
125
|
+
.all(limit, offset);
|
|
126
|
+
return {
|
|
127
|
+
count,
|
|
128
|
+
activities: rows.map(row => ({
|
|
129
|
+
id: row.activity_id,
|
|
130
|
+
pendingId: row.pending_id,
|
|
131
|
+
runId: row.run_id,
|
|
132
|
+
workflowId: row.workflow_id,
|
|
133
|
+
type: row.type,
|
|
134
|
+
schema: row.schema
|
|
135
|
+
? JSON.parse(row.schema)
|
|
136
|
+
: undefined,
|
|
137
|
+
timeoutAt: row.timeout_at === null ? undefined : new Date(row.timeout_at),
|
|
138
|
+
})),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
async toModel(row) {
|
|
142
|
+
return new WorkflowRunAsyncActivityPending(row.activity_id, row.position, {
|
|
143
|
+
id: row.id,
|
|
144
|
+
previousId: row.previous_id ?? undefined,
|
|
145
|
+
status: row.status,
|
|
146
|
+
schema: row.schema ? JSON.parse(row.schema) : undefined,
|
|
147
|
+
timeoutAt: row.timeout_at === null ? undefined : new Date(row.timeout_at),
|
|
148
|
+
result: await this.database.decode(row.result),
|
|
149
|
+
payload: await this.database.decode(row.payload),
|
|
150
|
+
createdAt: new Date(row.created_at),
|
|
151
|
+
updatedAt: new Date(row.updated_at),
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
WorkflowRunAsyncActivityPendingRepository = __decorate([
|
|
156
|
+
Injectable(),
|
|
157
|
+
__param(0, Inject(() => DatabaseService))
|
|
158
|
+
], WorkflowRunAsyncActivityPendingRepository);
|
|
159
|
+
export { WorkflowRunAsyncActivityPendingRepository };
|
|
160
|
+
//# sourceMappingURL=WorkflowRunAsyncActivityPending.repository.js.map
|