@t4h.framework/dev 0.20.1 → 0.21.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 +125 -0
- package/dist/Server.js +2 -1
- package/dist/Server.js.map +1 -1
- package/dist/constants/server.d.ts +1 -0
- package/dist/constants/server.js +1 -0
- package/dist/constants/server.js.map +1 -1
- package/dist/integrations/fs.d.ts +7 -3
- package/dist/integrations/fs.js +3 -1
- package/dist/integrations/fs.js.map +1 -1
- package/dist/integrations/http.d.ts +1 -1
- package/dist/integrations/http.js +2 -1
- package/dist/integrations/http.js.map +1 -1
- package/dist/integrations/sftp.d.ts +1 -1
- package/dist/integrations/sftp.js +5 -3
- package/dist/integrations/sftp.js.map +1 -1
- package/dist/models/DevFileBinary.d.ts +1 -0
- package/dist/models/DevFileBinary.js +13 -0
- package/dist/models/DevFileBinary.js.map +1 -1
- package/dist/models/FrameworkConfig.d.ts +2 -7
- package/dist/models/FrameworkConfig.js +1 -1
- package/dist/models/FrameworkConfig.js.map +1 -1
- package/dist/models/claims/DevAssetClaim.d.ts +5 -0
- package/dist/models/claims/DevAssetClaim.js +21 -0
- package/dist/models/claims/DevAssetClaim.js.map +1 -0
- package/dist/models/claims/DevSftpClaim.js +18 -18
- package/dist/models/claims/DevSftpClaim.js.map +1 -1
- package/dist/models/claims/DevSmtpSendEmailClaim.js +2 -1
- package/dist/models/claims/DevSmtpSendEmailClaim.js.map +1 -1
- package/dist/repositories/WorkflowRunActivity.repository.d.ts +2 -1
- package/dist/repositories/WorkflowRunActivity.repository.js +5 -5
- package/dist/repositories/WorkflowRunActivity.repository.js.map +1 -1
- package/dist/repositories/WorkflowRunAsyncActivityPending.repository.d.ts +2 -1
- package/dist/repositories/WorkflowRunAsyncActivityPending.repository.js +7 -9
- package/dist/repositories/WorkflowRunAsyncActivityPending.repository.js.map +1 -1
- package/dist/services/Database.service.d.ts +2 -1
- package/dist/services/Database.service.js +3 -3
- package/dist/services/Database.service.js.map +1 -1
- package/dist/tools/build-tools.d.ts +1 -1
- package/dist/tools/build-tools.js +1 -1
- package/dist/tools/build-tools.js.map +1 -1
- package/dist/tools/copy-assets.d.ts +1 -0
- package/dist/tools/{copy-additional-files.js → copy-assets.js} +3 -3
- package/dist/tools/copy-assets.js.map +1 -0
- package/dist/tools/json-codec.d.ts +3 -0
- package/dist/tools/json-codec.js +8 -3
- package/dist/tools/json-codec.js.map +1 -1
- package/dist/tools/mkdir-out-dir-project-from-ts-config-path-and-json-package-path.d.ts +5 -1
- package/dist/tools/mkdir-out-dir-project-from-ts-config-path-and-json-package-path.js +7 -4
- package/dist/tools/mkdir-out-dir-project-from-ts-config-path-and-json-package-path.js.map +1 -1
- package/dist/tools/resolve-asset-path.d.ts +1 -0
- package/dist/tools/resolve-asset-path.js +12 -0
- package/dist/tools/resolve-asset-path.js.map +1 -0
- package/dist/use-cases/CreateWorkflowRunAsyncActivityPendingCallback.usecase.js +7 -1
- package/dist/use-cases/CreateWorkflowRunAsyncActivityPendingCallback.usecase.js.map +1 -1
- package/dist/use-cases/EnqueueWorkflowRunNextTick.usecase.d.ts +4 -0
- package/dist/use-cases/EnqueueWorkflowRunNextTick.usecase.js +29 -10
- package/dist/use-cases/EnqueueWorkflowRunNextTick.usecase.js.map +1 -1
- package/dist/use-cases/NextTickWorkflowRun.usecase.js +6 -3
- package/dist/use-cases/NextTickWorkflowRun.usecase.js.map +1 -1
- package/dist/workers/app-process.d.ts +2 -0
- package/dist/workers/app-process.js +25 -0
- package/dist/workers/app-process.js.map +1 -1
- package/package.json +23 -23
- package/dist/tools/copy-additional-files.d.ts +0 -1
- package/dist/tools/copy-additional-files.js.map +0 -1
|
@@ -25,11 +25,11 @@ let WorkflowRunActivityRepository = class WorkflowRunActivityRepository {
|
|
|
25
25
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
26
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
27
|
}
|
|
28
|
-
async findById(id) {
|
|
28
|
+
async findById(id, options = {}) {
|
|
29
29
|
const row = this.db
|
|
30
30
|
.prepare('SELECT * FROM workflow_run_activities WHERE id = ?')
|
|
31
31
|
.get(id);
|
|
32
|
-
return row && (await this.toModel(row));
|
|
32
|
+
return row && (await this.toModel(row, options));
|
|
33
33
|
}
|
|
34
34
|
async findByRunId(runId) {
|
|
35
35
|
const rows = this.db
|
|
@@ -67,12 +67,12 @@ let WorkflowRunActivityRepository = class WorkflowRunActivityRepository {
|
|
|
67
67
|
WHERE id = ?`)
|
|
68
68
|
.run(await this.database.encode(output), Date.now(), id);
|
|
69
69
|
}
|
|
70
|
-
async toModel(row) {
|
|
70
|
+
async toModel(row, options = {}) {
|
|
71
71
|
return new WorkflowRunActivity(row.run_id, row.position, row.type, row.kind, {
|
|
72
72
|
id: row.id,
|
|
73
73
|
status: row.status,
|
|
74
|
-
input: await this.database.decode(row.input),
|
|
75
|
-
output: await this.database.decode(row.output),
|
|
74
|
+
input: await this.database.decode(row.input, options),
|
|
75
|
+
output: await this.database.decode(row.output, options),
|
|
76
76
|
completedAt: row.completed_at === null ? undefined : new Date(row.completed_at),
|
|
77
77
|
createdAt: new Date(row.created_at),
|
|
78
78
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowRunActivity.repository.js","sourceRoot":"","sources":["../../src/repositories/WorkflowRunActivity.repository.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,EACL,mBAAmB,GAGpB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"WorkflowRunActivity.repository.js","sourceRoot":"","sources":["../../src/repositories/WorkflowRunActivity.repository.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,EACL,mBAAmB,GAGpB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAiB1D,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IAGrB;IAFnB,YAEmB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IACzC,CAAC;IAEJ,IAAY,EAAE;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;IACzB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,QAA6B;QAC/C,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;iDAEyC,CAC1C;aACA,GAAG,CACF,QAAQ,CAAC,EAAE,EACX,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,MAAM,EACf,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC1C,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC3C,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,IAAI,EACvC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,CAC7B,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,EAAU,EACV,UAAsC,EAAE;QAExC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,oDAAoD,CAAC;aAC7D,GAAG,CAAC,EAAE,CAAuC,CAAA;QAEhD,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,KAAa;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN,0EAA0E,CAC3E;aACA,GAAG,CAAC,KAAK,CAAwC,CAAA;QAEpD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC;IAEM,KAAK,CAAC,eAAe,CAC1B,KAAa,EACb,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,KAA0C,EAAE;QAEpE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN;iDACyC,CAC1C;aACA,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAwC,CAAA;QAEnE,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAC/B,UAAU,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;SAClE,CAAA;IACH,CAAC;IAEM,YAAY,CAAC,KAAa;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN,wEAAwE,CACzE;aACA,GAAG,CAAC,KAAK,CAAsB,CAAA;QAElC,OAAO,GAAG,CAAC,KAAK,CAAA;IAClB,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,MAAe;QAC/C,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;sBAEc,CACf;aACA,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAA;IAC5D,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,MAAgB;QAC5C,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;sBAEc,CACf;aACA,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAA;IAC5D,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,GAA2B,EAC3B,UAAsC,EAAE;QAExC,OAAO,IAAI,mBAAmB,CAC5B,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,IAAI,EACR;YACE,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,KAAK,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC;YACrD,MAAM,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;YACvD,WAAW,EACT,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;YACpE,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;SACpC,CACF,CAAA;IACH,CAAC;CACF,CAAA;AAvHY,6BAA6B;IADzC,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAA;GAFrB,6BAA6B,CAuHzC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type Type from 'typebox';
|
|
2
2
|
import { WorkflowRunAsyncActivityPending, type AsyncActivityPendingStatus } from '../models/WorkflowRunActivity.js';
|
|
3
3
|
import { DatabaseService } from '../services/Database.service.js';
|
|
4
|
+
import type { JSONCodecReadSecretOptions } from '../tools/json-codec.js';
|
|
4
5
|
export interface PageQuery {
|
|
5
6
|
limit?: number;
|
|
6
7
|
offset?: number;
|
|
@@ -23,7 +24,7 @@ export declare class WorkflowRunAsyncActivityPendingRepository {
|
|
|
23
24
|
constructor(database: DatabaseService);
|
|
24
25
|
private get db();
|
|
25
26
|
create(pending: WorkflowRunAsyncActivityPending): Promise<void>;
|
|
26
|
-
findById(id: string): Promise<WorkflowRunAsyncActivityPending | undefined>;
|
|
27
|
+
findById(id: string, options?: JSONCodecReadSecretOptions): Promise<WorkflowRunAsyncActivityPending | undefined>;
|
|
27
28
|
findByActivityId(activityId: string): Promise<WorkflowRunAsyncActivityPending[]>;
|
|
28
29
|
findPageByActivityId(activityId: string, { limit, offset }?: PageQuery): Promise<{
|
|
29
30
|
count: number;
|
|
@@ -38,13 +38,13 @@ let WorkflowRunAsyncActivityPendingRepository = class WorkflowRunAsyncActivityPe
|
|
|
38
38
|
id, activity_id, position, previous_id, status, schema, timeout_at,
|
|
39
39
|
result, payload, auth, correlation_key, last_callback_id, created_at, updated_at
|
|
40
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),
|
|
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), await this.database.encode(pending.auth), pending.correlationKey ?? null, pending.lastCallbackId ?? null, pending.createdAt.getTime(), pending.updatedAt.getTime());
|
|
42
42
|
}
|
|
43
|
-
async findById(id) {
|
|
43
|
+
async findById(id, options = {}) {
|
|
44
44
|
const row = this.db
|
|
45
45
|
.prepare('SELECT * FROM workflow_run_async_activity_pendings WHERE id = ?')
|
|
46
46
|
.get(id);
|
|
47
|
-
return row && (await this.toModel(row));
|
|
47
|
+
return row && (await this.toModel(row, options));
|
|
48
48
|
}
|
|
49
49
|
async findByActivityId(activityId) {
|
|
50
50
|
const rows = this.db
|
|
@@ -165,18 +165,16 @@ let WorkflowRunAsyncActivityPendingRepository = class WorkflowRunAsyncActivityPe
|
|
|
165
165
|
})),
|
|
166
166
|
};
|
|
167
167
|
}
|
|
168
|
-
async toModel(row) {
|
|
168
|
+
async toModel(row, options = {}) {
|
|
169
169
|
return new WorkflowRunAsyncActivityPending(row.activity_id, row.position, {
|
|
170
170
|
id: row.id,
|
|
171
171
|
previousId: row.previous_id ?? undefined,
|
|
172
172
|
status: row.status,
|
|
173
173
|
schema: row.schema ? JSON.parse(row.schema) : undefined,
|
|
174
174
|
timeoutAt: row.timeout_at === null ? undefined : new Date(row.timeout_at),
|
|
175
|
-
result: await this.database.decode(row.result),
|
|
176
|
-
payload: await this.database.decode(row.payload),
|
|
177
|
-
auth: row.auth
|
|
178
|
-
? JSON.parse(row.auth)
|
|
179
|
-
: undefined,
|
|
175
|
+
result: await this.database.decode(row.result, options),
|
|
176
|
+
payload: await this.database.decode(row.payload, options),
|
|
177
|
+
auth: (await this.database.decode(row.auth, options)),
|
|
180
178
|
correlationKey: row.correlation_key ?? undefined,
|
|
181
179
|
lastCallbackId: row.last_callback_id ?? undefined,
|
|
182
180
|
createdAt: new Date(row.created_at),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowRunAsyncActivityPending.repository.js","sourceRoot":"","sources":["../../src/repositories/WorkflowRunAsyncActivityPending.repository.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,EACL,+BAA+B,GAEhC,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"WorkflowRunAsyncActivityPending.repository.js","sourceRoot":"","sources":["../../src/repositories/WorkflowRunAsyncActivityPending.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { DatabaseSync } from 'node:sqlite';
|
|
2
|
+
import { type JSONCodecReadSecretOptions } from '../tools/json-codec.js';
|
|
2
3
|
export declare class DatabaseService {
|
|
3
4
|
readonly db: DatabaseSync;
|
|
4
5
|
constructor();
|
|
5
6
|
transaction<T>(fn: () => T): T;
|
|
6
7
|
encode(value: unknown): Promise<string | null>;
|
|
7
|
-
decode(text: string | null): Promise<unknown>;
|
|
8
|
+
decode(text: string | null, options?: JSONCodecReadSecretOptions): Promise<unknown>;
|
|
8
9
|
close(): void;
|
|
9
10
|
}
|
|
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { DatabaseSync } from 'node:sqlite';
|
|
8
8
|
import { Injectable } from 'pleroma';
|
|
9
|
-
import { getJsonCodec } from '../tools/json-codec.js';
|
|
9
|
+
import { getJsonCodec, } from '../tools/json-codec.js';
|
|
10
10
|
const SCHEMA = `
|
|
11
11
|
CREATE TABLE workflow_runs (
|
|
12
12
|
id TEXT PRIMARY KEY,
|
|
@@ -105,11 +105,11 @@ let DatabaseService = class DatabaseService {
|
|
|
105
105
|
const codec = await getJsonCodec();
|
|
106
106
|
return await codec.stringify(value, {});
|
|
107
107
|
}
|
|
108
|
-
async decode(text) {
|
|
108
|
+
async decode(text, options = {}) {
|
|
109
109
|
if (text === null)
|
|
110
110
|
return undefined;
|
|
111
111
|
const codec = await getJsonCodec();
|
|
112
|
-
return await codec.parse(text,
|
|
112
|
+
return await codec.parse(text, options);
|
|
113
113
|
}
|
|
114
114
|
close() {
|
|
115
115
|
this.db.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Database.service.js","sourceRoot":"","sources":["../../src/services/Database.service.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,
|
|
1
|
+
{"version":3,"file":"Database.service.js","sourceRoot":"","sources":["../../src/services/Database.service.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,EACL,YAAY,GAEb,MAAM,wBAAwB,CAAA;AAE/B,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEd,CAAA;AAGM,IAAM,eAAe,GAArB,MAAM,eAAe;IACV,EAAE,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAA;IAEjD;QACE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QAExC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC;IAEM,WAAW,CAAI,EAAW;QAC/B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAErB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,EAAE,CAAA;YAEnB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAEtB,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAExB,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAc;QAChC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAA;QAEpC,MAAM,KAAK,GAAG,MAAM,YAAY,EAAE,CAAA;QAElC,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACzC,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,IAAmB,EACnB,UAAsC,EAAE;QAExC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,SAAS,CAAA;QAEnC,MAAM,KAAK,GAAG,MAAM,YAAY,EAAE,CAAA;QAElC,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC;CACF,CAAA;AA/CY,eAAe;IAD3B,UAAU,EAAE;GACA,eAAe,CA+C3B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from '../models/FrameworkConfig.js';
|
|
2
|
-
export * from './copy-
|
|
2
|
+
export * from './copy-assets.js';
|
|
3
3
|
export * from './load-framework-config.js';
|
|
4
4
|
export * from './mkdir-out-dir-project-from-ts-config-path-and-json-package-path.js';
|
|
5
5
|
export * from './resolve-package-json-path.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from '../models/FrameworkConfig.js';
|
|
2
|
-
export * from './copy-
|
|
2
|
+
export * from './copy-assets.js';
|
|
3
3
|
export * from './load-framework-config.js';
|
|
4
4
|
export * from './mkdir-out-dir-project-from-ts-config-path-and-json-package-path.js';
|
|
5
5
|
export * from './resolve-package-json-path.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-tools.js","sourceRoot":"","sources":["../../src/tools/build-tools.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,
|
|
1
|
+
{"version":3,"file":"build-tools.js","sourceRoot":"","sources":["../../src/tools/build-tools.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,kBAAkB,CAAA;AAChC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,sEAAsE,CAAA;AACpF,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mDAAmD,CAAA;AACjE,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function copyAssets(projectDir: string, outDir: string, patterns: readonly string[]): Promise<string[]>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
export async function
|
|
3
|
+
export async function copyAssets(projectDir, outDir, patterns) {
|
|
4
4
|
const copied = [];
|
|
5
5
|
for await (const entry of fs.promises.glob([...patterns], {
|
|
6
6
|
cwd: projectDir,
|
|
@@ -11,7 +11,7 @@ export async function copyAdditionalFiles(projectDir, outDir, patterns) {
|
|
|
11
11
|
const absolute = path.join(entry.parentPath, entry.name);
|
|
12
12
|
const relative = path.relative(projectDir, absolute);
|
|
13
13
|
if (relative.startsWith('..') || path.isAbsolute(relative))
|
|
14
|
-
throw new Error(`
|
|
14
|
+
throw new Error(`Asset must not escape the package root: ${absolute}`);
|
|
15
15
|
const target = path.join(outDir, relative);
|
|
16
16
|
await fs.promises.mkdir(path.dirname(target), { recursive: true });
|
|
17
17
|
await fs.promises.copyFile(absolute, target);
|
|
@@ -19,4 +19,4 @@ export async function copyAdditionalFiles(projectDir, outDir, patterns) {
|
|
|
19
19
|
}
|
|
20
20
|
return copied;
|
|
21
21
|
}
|
|
22
|
-
//# sourceMappingURL=copy-
|
|
22
|
+
//# sourceMappingURL=copy-assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy-assets.js","sourceRoot":"","sources":["../../src/tools/copy-assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAkB,EAClB,MAAc,EACd,QAA2B;IAE3B,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE;QACxD,GAAG,EAAE,UAAU;QACf,aAAa,EAAE,IAAI;KACpB,CAAC,EAAE,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,SAAQ;QAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAExD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAEpD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,EAAE,CAAC,CAAA;QAExE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAE1C,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAElE,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAE5C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACvB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { JSONCodec, JSONCodecKind } from '../models/JSONCodec.js';
|
|
2
2
|
type Kinds = readonly JSONCodecKind<any, any, any, any, any>[];
|
|
3
|
+
export interface JSONCodecReadSecretOptions {
|
|
4
|
+
readSecret?: (name: string) => string | Promise<string>;
|
|
5
|
+
}
|
|
3
6
|
export declare const getJsonCodec: () => Promise<JSONCodec<Kinds>>;
|
|
4
7
|
export {};
|
package/dist/tools/json-codec.js
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
|
-
import { Binary } from '@t4h.framework/core';
|
|
1
|
+
import { Binary, Secret } from '@t4h.framework/core';
|
|
2
2
|
import { getIntegrations } from '../integrations/index.js';
|
|
3
3
|
import { DevFileBinary } from '../models/DevFileBinary.js';
|
|
4
4
|
import { JSONCodec, JSONCodecKind } from '../models/JSONCodec.js';
|
|
5
5
|
const jsonDateKind = new JSONCodecKind('date', value => value instanceof Date, (date) => date.toISOString(), (date) => new Date(date));
|
|
6
|
-
const
|
|
6
|
+
const jsonSecretKind = new JSONCodecKind('secret', value => value instanceof Secret, (secret) => ({ name: secret.name }), async (json, options) => {
|
|
7
|
+
if (!options.readSecret)
|
|
8
|
+
return new Secret(json.name);
|
|
9
|
+
return Secret.resolve(json.name, await options.readSecret(json.name));
|
|
10
|
+
});
|
|
11
|
+
const jsonBinaryKind = new JSONCodecKind('binary', value => value instanceof Binary, (binary) => {
|
|
7
12
|
if (!(binary instanceof DevFileBinary))
|
|
8
13
|
throw new TypeError('Unsupported binary instance');
|
|
9
14
|
return binary.toJSON();
|
|
10
15
|
}, json => DevFileBinary.from(json));
|
|
11
16
|
const load = async () => {
|
|
12
17
|
const integrations = await getIntegrations();
|
|
13
|
-
return new JSONCodec(jsonDateKind,
|
|
18
|
+
return new JSONCodec(jsonDateKind, jsonSecretKind, ...integrations.flatMap(({ kinds }) => kinds ?? []), jsonBinaryKind);
|
|
14
19
|
};
|
|
15
20
|
let codec;
|
|
16
21
|
export const getJsonCodec = () => (codec ??= load());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-codec.js","sourceRoot":"","sources":["../../src/tools/json-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"json-codec.js","sourceRoot":"","sources":["../../src/tools/json-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAIjE,MAAM,YAAY,GAAG,IAAI,aAAa,CACpC,MAAM,EACN,KAAK,CAAC,EAAE,CAAC,KAAK,YAAY,IAAI,EAC9B,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAClC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CACjC,CAAA;AAMD,MAAM,cAAc,GAAG,IAAI,aAAa,CACtC,QAAQ,EACR,KAAK,CAAC,EAAE,CAAC,KAAK,YAAY,MAAM,EAChC,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAC3C,KAAK,EAAE,IAAsB,EAAE,OAAmC,EAAE,EAAE;IACpE,IAAI,CAAC,OAAO,CAAC,UAAU;QAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAErD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACvE,CAAC,CACF,CAAA;AAED,MAAM,cAAc,GAAG,IAAI,aAAa,CACtC,QAAQ,EACR,KAAK,CAAC,EAAE,CAAC,KAAK,YAAY,MAAM,EAChC,CAAC,MAAc,EAAE,EAAE;IACjB,IAAI,CAAC,CAAC,MAAM,YAAY,aAAa,CAAC;QACpC,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAA;IAEpD,OAAO,MAAM,CAAC,MAAM,EAAE,CAAA;AACxB,CAAC,EACD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CACjC,CAAA;AAED,MAAM,IAAI,GAAG,KAAK,IAA+B,EAAE;IACjD,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAA;IAE5C,OAAO,IAAI,SAAS,CAClB,YAAY,EACZ,cAAc,EACd,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,EACnD,cAAc,CACf,CAAA;AACH,CAAC,CAAA;AAED,IAAI,KAA4C,CAAA;AAEhD,MAAM,CAAC,MAAM,YAAY,GAAG,GAA8B,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAA"}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface OutDirProject {
|
|
2
|
+
outDir: string;
|
|
3
|
+
assets: readonly string[];
|
|
4
|
+
}
|
|
5
|
+
export declare function mkdirOutDirProjectFromTsConfigPathAndJsonPackagePath(tsConfigPath: string, packageJsonPath: string): Promise<OutDirProject>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import crypto from 'node:crypto';
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
-
import {
|
|
4
|
+
import { copyAssets } from './copy-assets.js';
|
|
5
5
|
import { loadFrameworkConfig } from './load-framework-config.js';
|
|
6
6
|
export async function mkdirOutDirProjectFromTsConfigPathAndJsonPackagePath(tsConfigPath, packageJsonPath) {
|
|
7
7
|
const outDir = path.join(tsConfigPath, '..', '.temp', crypto.randomBytes(16).toString('base64url'));
|
|
@@ -10,8 +10,11 @@ export async function mkdirOutDirProjectFromTsConfigPathAndJsonPackagePath(tsCon
|
|
|
10
10
|
await fs.promises.copyFile(packageJsonPath, path.join(outDir, 'package.json'));
|
|
11
11
|
const projectDir = path.dirname(packageJsonPath);
|
|
12
12
|
const config = await loadFrameworkConfig(projectDir);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const patterns = config.build?.assets ?? [];
|
|
14
|
+
const assets = patterns.length
|
|
15
|
+
? await copyAssets(projectDir, outDir, patterns)
|
|
16
|
+
: [];
|
|
17
|
+
process.send?.(JSON.stringify({ type: 'assets', data: assets }));
|
|
18
|
+
return { outDir, assets };
|
|
16
19
|
}
|
|
17
20
|
//# sourceMappingURL=mkdir-out-dir-project-from-ts-config-path-and-json-package-path.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mkdir-out-dir-project-from-ts-config-path-and-json-package-path.js","sourceRoot":"","sources":["../../src/tools/mkdir-out-dir-project-from-ts-config-path-and-json-package-path.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mkdir-out-dir-project-from-ts-config-path-and-json-package-path.js","sourceRoot":"","sources":["../../src/tools/mkdir-out-dir-project-from-ts-config-path-and-json-package-path.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAOhE,MAAM,CAAC,KAAK,UAAU,oDAAoD,CACxE,YAAoB,EACpB,eAAuB;IAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CACtB,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC7C,CAAA;IAED,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IAEhE,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEpD,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;IAE9E,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;IAEhD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAEpD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAA;IAE3C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM;QAC5B,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC;QAChD,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAC3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function resolveAssetPath(root: string, assetPath: string): string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
export function resolveAssetPath(root, assetPath) {
|
|
3
|
+
if (path.isAbsolute(assetPath))
|
|
4
|
+
throw new TypeError(`Asset path must be relative: ${assetPath}`);
|
|
5
|
+
const resolvedRoot = path.resolve(root);
|
|
6
|
+
const resolved = path.resolve(resolvedRoot, assetPath);
|
|
7
|
+
const relative = path.relative(resolvedRoot, resolved);
|
|
8
|
+
if (relative.startsWith('..') || path.isAbsolute(relative))
|
|
9
|
+
throw new TypeError(`Asset path must not escape the bundle: ${assetPath}`);
|
|
10
|
+
return resolved;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=resolve-asset-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-asset-path.js","sourceRoot":"","sources":["../../src/tools/resolve-asset-path.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,SAAiB;IAC9D,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC5B,MAAM,IAAI,SAAS,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAA;IAElE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IAEtD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;IAEtD,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACxD,MAAM,IAAI,SAAS,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAA;IAE5E,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
|
@@ -17,6 +17,7 @@ import { WorkflowRunAsyncActivityPendingRepository } from '../repositories/Workf
|
|
|
17
17
|
import { WorkflowRunAsyncActivityPendingCallbackRepository } from '../repositories/WorkflowRunAsyncActivityPendingCallback.repository.js';
|
|
18
18
|
import { CALLBACK_AUTHORIZER_PACKAGES, CallbackAuthorizersService, } from '../services/CallbackAuthorizers.service.js';
|
|
19
19
|
import { CallbackTokenService } from '../services/CallbackToken.service.js';
|
|
20
|
+
import { readSecret } from '../workers/app-process.js';
|
|
20
21
|
export const CALLBACK_RETRY_AFTER_IN_SECONDS = 1;
|
|
21
22
|
let CreateWorkflowRunAsyncActivityPendingCallback = class CreateWorkflowRunAsyncActivityPendingCallback {
|
|
22
23
|
workflowRunActivityRepository;
|
|
@@ -55,7 +56,12 @@ let CreateWorkflowRunAsyncActivityPendingCallback = class CreateWorkflowRunAsync
|
|
|
55
56
|
return this.deliver(activity, pending, request);
|
|
56
57
|
}
|
|
57
58
|
async deliver(activity, pending, request) {
|
|
58
|
-
|
|
59
|
+
const stored = await this.workflowRunAsyncActivityPendingRepository.findById(pending.id, { readSecret });
|
|
60
|
+
if (!stored)
|
|
61
|
+
throw new JSONRPCError('Activity is no longer waiting for a callback', {
|
|
62
|
+
data: { status: 410 },
|
|
63
|
+
});
|
|
64
|
+
if (!(await this.authorize(stored.auth, request)))
|
|
59
65
|
throw new JSONRPCError('Callback authentication failed', {
|
|
60
66
|
data: { status: 401 },
|
|
61
67
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateWorkflowRunAsyncActivityPendingCallback.usecase.js","sourceRoot":"","sources":["../../src/use-cases/CreateWorkflowRunAsyncActivityPendingCallback.usecase.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,qBAAqB,EACrB,+CAA+C,GAEhD,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAA;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAKxD,OAAO,EAAE,uCAAuC,EAAE,MAAM,sDAAsD,CAAA;AAC9G,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAA;AACjG,OAAO,EAAE,yCAAyC,EAAE,MAAM,+DAA+D,CAAA;AACzH,OAAO,EAAE,iDAAiD,EAAE,MAAM,uEAAuE,CAAA;AACzI,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;
|
|
1
|
+
{"version":3,"file":"CreateWorkflowRunAsyncActivityPendingCallback.usecase.js","sourceRoot":"","sources":["../../src/use-cases/CreateWorkflowRunAsyncActivityPendingCallback.usecase.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,11 @@ import { WorkflowRunLockService } from '../services/WorkflowRunLock.service.js';
|
|
|
3
3
|
export declare class EnqueueWorkflowRunNextTick {
|
|
4
4
|
private readonly workflowRun;
|
|
5
5
|
private readonly lock;
|
|
6
|
+
private readonly pending;
|
|
7
|
+
private running;
|
|
6
8
|
constructor(workflowRun: WorkflowRunFacade, lock: WorkflowRunLockService);
|
|
7
9
|
enqueue(runId: string): void;
|
|
8
10
|
enqueueMany(runIds: readonly string[]): void;
|
|
11
|
+
private drain;
|
|
12
|
+
private run;
|
|
9
13
|
}
|
|
@@ -9,29 +9,48 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
9
9
|
};
|
|
10
10
|
import { styleText } from 'node:util';
|
|
11
11
|
import { Inject, Injectable } from 'pleroma';
|
|
12
|
+
import { WORKFLOW_RUN_NEXT_TICK_CONCURRENCY } from '../constants/server.js';
|
|
12
13
|
import { WorkflowRunFacade } from '../services/WorkflowRunFacade.service.js';
|
|
13
14
|
import { WorkflowRunLockService } from '../services/WorkflowRunLock.service.js';
|
|
14
15
|
let EnqueueWorkflowRunNextTick = class EnqueueWorkflowRunNextTick {
|
|
15
16
|
workflowRun;
|
|
16
17
|
lock;
|
|
18
|
+
pending = [];
|
|
19
|
+
running = 0;
|
|
17
20
|
constructor(workflowRun, lock) {
|
|
18
21
|
this.workflowRun = workflowRun;
|
|
19
22
|
this.lock = lock;
|
|
20
23
|
}
|
|
21
24
|
enqueue(runId) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
.detach(() => this.workflowRun.nextTick(runId))
|
|
25
|
-
.catch(error => {
|
|
26
|
-
console.error(styleText('red', `[Runtime] next tick failed for run ${runId}:`, {
|
|
27
|
-
stream: process.stderr,
|
|
28
|
-
}), error);
|
|
29
|
-
});
|
|
30
|
-
});
|
|
25
|
+
this.pending.push(runId);
|
|
26
|
+
this.drain();
|
|
31
27
|
}
|
|
32
28
|
enqueueMany(runIds) {
|
|
33
29
|
for (const runId of runIds)
|
|
34
|
-
this.
|
|
30
|
+
this.pending.push(runId);
|
|
31
|
+
this.drain();
|
|
32
|
+
}
|
|
33
|
+
drain() {
|
|
34
|
+
while (this.running < WORKFLOW_RUN_NEXT_TICK_CONCURRENCY &&
|
|
35
|
+
this.pending.length > 0) {
|
|
36
|
+
const runId = this.pending.shift();
|
|
37
|
+
this.running += 1;
|
|
38
|
+
setImmediate(() => void this.run(runId));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async run(runId) {
|
|
42
|
+
try {
|
|
43
|
+
await this.lock.detach(() => this.workflowRun.nextTick(runId));
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
console.error(styleText('red', `[Runtime] next tick failed for run ${runId}:`, {
|
|
47
|
+
stream: process.stderr,
|
|
48
|
+
}), error);
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
this.running -= 1;
|
|
52
|
+
this.drain();
|
|
53
|
+
}
|
|
35
54
|
}
|
|
36
55
|
};
|
|
37
56
|
EnqueueWorkflowRunNextTick = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnqueueWorkflowRunNextTick.usecase.js","sourceRoot":"","sources":["../../src/use-cases/EnqueueWorkflowRunNextTick.usecase.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAGxE,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;
|
|
1
|
+
{"version":3,"file":"EnqueueWorkflowRunNextTick.usecase.js","sourceRoot":"","sources":["../../src/use-cases/EnqueueWorkflowRunNextTick.usecase.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAGxE,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAOlB;IAGA;IATF,OAAO,GAAa,EAAE,CAAA;IAE/B,OAAO,GAAG,CAAC,CAAA;IAEnB,YAEmB,WAA8B,EAG9B,IAA4B;QAH5B,gBAAW,GAAX,WAAW,CAAmB;QAG9B,SAAI,GAAJ,IAAI,CAAwB;IAC5C,CAAC;IAEG,OAAO,CAAC,KAAa;QAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAExB,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAEM,WAAW,CAAC,MAAyB;QAC1C,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEpD,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAEO,KAAK;QACX,OACE,IAAI,CAAC,OAAO,GAAG,kCAAkC;YACjD,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EACvB,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAA;YAEnC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YAEjB,YAAY,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,GAAG,CAAC,KAAa;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,SAAS,CAAC,KAAK,EAAE,sCAAsC,KAAK,GAAG,EAAE;gBAC/D,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,EACF,KAAK,CACN,CAAA;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YAEjB,IAAI,CAAC,KAAK,EAAE,CAAA;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAtDY,0BAA0B;IADtC,UAAU,EAAE;IAOR,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAA;IAG/B,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,CAAA;GAT5B,0BAA0B,CAsDtC"}
|
|
@@ -27,7 +27,7 @@ import { WorkflowRunSyncActivityFacade } from '../services/WorkflowRunSyncActivi
|
|
|
27
27
|
import { findWorkflowById } from '../tools/find-workflow-by-id.js';
|
|
28
28
|
import { hydrateInput } from '../tools/hydrate-input.js';
|
|
29
29
|
import { toRejectedReason, } from '../tools/to-rejected-reason.js';
|
|
30
|
-
import { app, env } from '../workers/app-process.js';
|
|
30
|
+
import { app, env, readSecret } from '../workers/app-process.js';
|
|
31
31
|
let NextTickWorkflowRun = class NextTickWorkflowRun {
|
|
32
32
|
workflowRunRepository;
|
|
33
33
|
workflowRunActivityRepository;
|
|
@@ -145,15 +145,18 @@ let NextTickWorkflowRun = class NextTickWorkflowRun {
|
|
|
145
145
|
this.activityRegistry.add(Activity);
|
|
146
146
|
const activity = WorkflowRunActivity.fromConstructor(run.id, position, Activity, { id: activityId, input: push.input });
|
|
147
147
|
await this.workflowRunActivityRepository.create(activity);
|
|
148
|
+
const stored = await this.workflowRunActivityRepository.findById(activity.id, { readSecret });
|
|
149
|
+
if (!stored)
|
|
150
|
+
throw new Error(`Activity ${activity.id} was not stored`);
|
|
148
151
|
this.events.runUpdated(run.id);
|
|
149
152
|
try {
|
|
150
153
|
if (push.activity instanceof SyncActivity) {
|
|
151
|
-
await this.workflowRunSyncActivity.execute(
|
|
154
|
+
await this.workflowRunSyncActivity.execute(stored, stored.input);
|
|
152
155
|
this.enqueueChildWorkflowRuns(activity.id);
|
|
153
156
|
return 'continue';
|
|
154
157
|
}
|
|
155
158
|
if (push.activity instanceof AsyncActivity) {
|
|
156
|
-
const pending = await this.workflowRunAsyncActivity.create(
|
|
159
|
+
const pending = await this.workflowRunAsyncActivity.create(stored, stored.input);
|
|
157
160
|
this.enqueueChildWorkflowRuns(activity.id);
|
|
158
161
|
return pending.status === 'pending' ? 'stop' : 'continue';
|
|
159
162
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NextTickWorkflowRun.usecase.js","sourceRoot":"","sources":["../../src/use-cases/NextTickWorkflowRun.usecase.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EACL,aAAa,EACb,KAAK,EACL,SAAS,EACT,YAAY,EACZ,qBAAqB,EACrB,YAAY,GAIb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAA;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAA;AACjG,OAAO,EAAE,yCAAyC,EAAE,MAAM,+DAA+D,CAAA;AACzH,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,uDAAuD,CAAA;AACtG,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,sDAAsD,CAAA;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EACL,gBAAgB,GAEjB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"NextTickWorkflowRun.usecase.js","sourceRoot":"","sources":["../../src/use-cases/NextTickWorkflowRun.usecase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { type App } from '@t4h.framework/core';
|
|
2
2
|
export declare let app: App | null;
|
|
3
3
|
export declare const env: Map<string, string>;
|
|
4
|
+
export declare function readSecret(name: string): string;
|
|
4
5
|
/** Public origin of the dev HTTP server, when the parent started one. */
|
|
5
6
|
export declare const serverAddress: {
|
|
6
7
|
url: string | null;
|
|
7
8
|
};
|
|
9
|
+
export declare function bundleRoot(): string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
1
2
|
import path from 'node:path';
|
|
2
3
|
import { fileURLToPath } from 'node:url';
|
|
3
4
|
import { Env } from '@t4h.framework/core';
|
|
@@ -10,8 +11,31 @@ import { upApp } from '../tools/up-app.js';
|
|
|
10
11
|
import { handlers } from '../transport/AppProcessJsonRpc.js';
|
|
11
12
|
export let app = null;
|
|
12
13
|
export const env = new Map();
|
|
14
|
+
export function readSecret(name) {
|
|
15
|
+
const value = env.get(name);
|
|
16
|
+
if (value === undefined)
|
|
17
|
+
throw new Error(`Secret ${name} is not set in the environment`);
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
13
20
|
/** Public origin of the dev HTTP server, when the parent started one. */
|
|
14
21
|
export const serverAddress = { url: null };
|
|
22
|
+
let root = null;
|
|
23
|
+
export function bundleRoot() {
|
|
24
|
+
if (!root)
|
|
25
|
+
throw new Error('App is not up yet');
|
|
26
|
+
return root;
|
|
27
|
+
}
|
|
28
|
+
function findBundleRoot(entrypoint) {
|
|
29
|
+
let dir = path.dirname(path.resolve(entrypoint));
|
|
30
|
+
while (true) {
|
|
31
|
+
if (fs.existsSync(path.join(dir, 'package.json')))
|
|
32
|
+
return dir;
|
|
33
|
+
const parent = path.dirname(dir);
|
|
34
|
+
if (parent === dir)
|
|
35
|
+
throw new Error(`Could not find the bundle root from ${entrypoint}`);
|
|
36
|
+
dir = parent;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
15
39
|
const isForkedEntry = !!process.argv[1] &&
|
|
16
40
|
path.resolve(process.argv[1]) === fileURLToPath(import.meta.url);
|
|
17
41
|
if (isForkedEntry) {
|
|
@@ -29,6 +53,7 @@ if (isForkedEntry) {
|
|
|
29
53
|
const [name, value] = [arg.slice(0, index), arg.slice(index + 1)];
|
|
30
54
|
env.set(name, value);
|
|
31
55
|
}
|
|
56
|
+
root = findBundleRoot(entrypoint);
|
|
32
57
|
await Env.run(env, async () => {
|
|
33
58
|
app = await upApp(entrypoint);
|
|
34
59
|
});
|