@t4h.framework/dev 0.3.1 → 0.9.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.
Files changed (61) hide show
  1. package/.ai/skills/framework-dev/SKILL.md +8 -6
  2. package/dist/models/claims/DevFileSystemClaim.js +1 -0
  3. package/dist/models/claims/DevFileSystemClaim.js.map +1 -1
  4. package/package.json +9 -9
  5. package/dist/AppManager.d.ts +0 -21
  6. package/dist/AppManager.js +0 -83
  7. package/dist/AppManager.js.map +0 -1
  8. package/dist/EventStore.d.ts +0 -57
  9. package/dist/EventStore.js +0 -15
  10. package/dist/EventStore.js.map +0 -1
  11. package/dist/Server.d.ts +0 -27
  12. package/dist/Server.js +0 -64
  13. package/dist/Server.js.map +0 -1
  14. package/dist/bootstrap.d.ts +0 -8
  15. package/dist/bootstrap.js +0 -12
  16. package/dist/bootstrap.js.map +0 -1
  17. package/dist/controllers/Environment.controller.d.ts +0 -4
  18. package/dist/controllers/Environment.controller.js +0 -31
  19. package/dist/controllers/Environment.controller.js.map +0 -1
  20. package/dist/controllers/Workflows.controller.d.ts +0 -27
  21. package/dist/controllers/Workflows.controller.js +0 -119
  22. package/dist/controllers/Workflows.controller.js.map +0 -1
  23. package/dist/decorators/JsonRpcMethod.d.ts +0 -12
  24. package/dist/decorators/JsonRpcMethod.js +0 -15
  25. package/dist/decorators/JsonRpcMethod.js.map +0 -1
  26. package/dist/events.d.ts +0 -16
  27. package/dist/events.js +0 -2
  28. package/dist/events.js.map +0 -1
  29. package/dist/helpers/get-json-rpc-server-methods.d.ts +0 -4
  30. package/dist/helpers/get-json-rpc-server-methods.js +0 -17
  31. package/dist/helpers/get-json-rpc-server-methods.js.map +0 -1
  32. package/dist/outputs/WorkflowRunActivityOutput.d.ts +0 -10
  33. package/dist/outputs/WorkflowRunActivityOutput.js +0 -2
  34. package/dist/outputs/WorkflowRunActivityOutput.js.map +0 -1
  35. package/dist/outputs/WorkflowRunAsyncActivityOutput.d.ts +0 -6
  36. package/dist/outputs/WorkflowRunAsyncActivityOutput.js +0 -2
  37. package/dist/outputs/WorkflowRunAsyncActivityOutput.js.map +0 -1
  38. package/dist/outputs/WorkflowRunOutput.d.ts +0 -18
  39. package/dist/outputs/WorkflowRunOutput.js +0 -2
  40. package/dist/outputs/WorkflowRunOutput.js.map +0 -1
  41. package/dist/services/DevEventNotifier.service.d.ts +0 -18
  42. package/dist/services/DevEventNotifier.service.js +0 -43
  43. package/dist/services/DevEventNotifier.service.js.map +0 -1
  44. package/dist/services/WorkflowRunEventEmitter.service.d.ts +0 -17
  45. package/dist/services/WorkflowRunEventEmitter.service.js +0 -74
  46. package/dist/services/WorkflowRunEventEmitter.service.js.map +0 -1
  47. package/dist/services/WorkflowRunEventProducer.service.d.ts +0 -11
  48. package/dist/services/WorkflowRunEventProducer.service.js +0 -26
  49. package/dist/services/WorkflowRunEventProducer.service.js.map +0 -1
  50. package/dist/socket/DevServerSocketBridge.d.ts +0 -16
  51. package/dist/socket/DevServerSocketBridge.js +0 -75
  52. package/dist/socket/DevServerSocketBridge.js.map +0 -1
  53. package/dist/socket/ServerSocket.d.ts +0 -18
  54. package/dist/socket/ServerSocket.js +0 -57
  55. package/dist/socket/ServerSocket.js.map +0 -1
  56. package/dist/tools/is-localhost.d.ts +0 -1
  57. package/dist/tools/is-localhost.js +0 -11
  58. package/dist/tools/is-localhost.js.map +0 -1
  59. package/dist/typings/events.d.ts +0 -43
  60. package/dist/typings/events.js +0 -10
  61. package/dist/typings/events.js.map +0 -1
@@ -228,7 +228,7 @@ Tests: `src/tools/__tests__/up-app.spec.ts`.
228
228
 
229
229
  ## Dev claims
230
230
 
231
- Registry: `export const claims` in `src/claims.ts` (`ClaimProvider[]` for `App` / `WorkflowTesting`).
231
+ Registry: `export const claims` in `src/claims.ts` (`ClaimProvider[]` for `App` / `TestWorkflowEnvironment`).
232
232
 
233
233
  ```typescript
234
234
  import { claims, findClaimByConstructor } from '@t4h.framework/dev'
@@ -260,20 +260,22 @@ Exported claim classes (main entry): see `src/index.ts` — not every registry e
260
260
 
261
261
  ## Testing with dev claims
262
262
 
263
- Prefer `@t4h.framework/core/testing` (`WorkflowTesting`) for unit tests. For integration-style tests that need real dev claim behavior:
263
+ Prefer `@t4h.framework/core/testing` (`TestWorkflowEnvironment`) with `mockClaim`
264
+ for unit tests (see **framework-workflow-testing**). For integration-style tests
265
+ that need real dev claim behavior, pass the dev `claims` registry and spy on a
266
+ concrete claim:
264
267
 
265
268
  ```typescript
266
269
  import { claims, DevHttpClientRequestClaim, findClaimByConstructor } from '@t4h.framework/dev'
267
- import { WorkflowTesting } from '@t4h.framework/core/testing'
270
+ import { TestWorkflowEnvironment } from '@t4h.framework/core/testing'
268
271
 
269
272
  const httpClaim = findClaimByConstructor(DevHttpClientRequestClaim)
270
273
  vi.spyOn(httpClaim, 'request')
271
274
 
272
- await WorkflowTesting.run(MyWorkflow, input, { claims })
275
+ const env = TestWorkflowEnvironment.create({ now: 0 })
276
+ await env.execute(MyWorkflow, input, { claims })
273
277
  ```
274
278
 
275
- Pattern referenced in commented `examples/basic/src/workflows/__tests__/simple.spec.ts`.
276
-
277
279
  RPC handler tests: `src/transport/__tests__/DevServerJsonRpc.spec.ts`. Result shaping: `src/services/__tests__/BuildWorkflowRunResult.service.spec.ts`. Async fixtures: `src/__tests__/fixtures.ts` (`TestAsyncActivity` with `pending` / `advance`).
278
280
 
279
281
  ---
@@ -10,6 +10,7 @@ export class DevFileSystemClaim extends FileSystemClaim {
10
10
  const { base } = path.parse(filepath);
11
11
  const tempDir = await fs.promises.mkdtemp(path.join(os.tmpdir(), 'fs-'));
12
12
  const _filepath = path.join(tempDir, filepath);
13
+ await fs.promises.mkdir(path.dirname(_filepath), { recursive: true });
13
14
  await fs.promises.writeFile(_filepath, readable);
14
15
  const stat = await fs.promises.stat(_filepath);
15
16
  return DevFileBinary.from({
@@ -1 +1 @@
1
- {"version":3,"file":"DevFileSystemClaim.js","sourceRoot":"","sources":["../../../src/models/claims/DevFileSystemClaim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,IAAI,MAAM,YAAY,CAAA;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IAC9C,KAAK,CAAC,KAAK,CAChB,QAAgB,EAChB,QAAkB;QAElB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAErC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;QAExE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAE9C,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAEhD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAE9C,OAAO,aAAa,CAAC,IAAI,CAAC;YACxB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,0BAA0B;YAC5D,aAAa,EAAE,IAAI,CAAC,IAAI;SACzB,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,QAAgB;QAChC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE7C,OAAO,aAAa,CAAC,IAAI,CAAC;YACxB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,0BAA0B;YACnE,aAAa,EAAE,IAAI,CAAC,IAAI;SACzB,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"DevFileSystemClaim.js","sourceRoot":"","sources":["../../../src/models/claims/DevFileSystemClaim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,IAAI,MAAM,YAAY,CAAA;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IAC9C,KAAK,CAAC,KAAK,CAChB,QAAgB,EAChB,QAAkB;QAElB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAErC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;QAExE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAE9C,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAErE,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAEhD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAE9C,OAAO,aAAa,CAAC,IAAI,CAAC;YACxB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,0BAA0B;YAC5D,aAAa,EAAE,IAAI,CAAC,IAAI;SACzB,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,QAAgB;QAChC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAE7C,OAAO,aAAa,CAAC,IAAI,CAAC;YACxB,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,0BAA0B;YACnE,aAAa,EAAE,IAAI,CAAC,IAAI;SACzB,CAAC,CAAA;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@t4h.framework/dev",
3
- "version": "0.3.1",
3
+ "version": "0.9.0",
4
4
  "description": "Dev server for the T4H Framework",
5
5
  "homepage": "https://github.com/tech4humans-brasil/framework/tree/main/packages/dev",
6
6
  "bugs": "https://github.com/tech4humans-brasil/framework/issues",
@@ -37,13 +37,13 @@
37
37
  "prepublishOnly": "yarn build"
38
38
  },
39
39
  "dependencies": {
40
- "@t4h.framework/cache": "^0.4.0",
41
- "@t4h.framework/fs": "^0.4.0",
42
- "@t4h.framework/http": "^0.3.1",
43
- "@t4h.framework/orm": "^0.4.0",
40
+ "@t4h.framework/cache": "^0.5.0",
41
+ "@t4h.framework/fs": "^0.5.0",
42
+ "@t4h.framework/http": "^0.4.0",
43
+ "@t4h.framework/orm": "^0.5.0",
44
44
  "@t4h.framework/runtime-claims": "^0.1.0",
45
- "@t4h.framework/sftp": "^0.5.0",
46
- "@t4h.framework/smtp": "^0.4.0",
45
+ "@t4h.framework/sftp": "^0.6.0",
46
+ "@t4h.framework/smtp": "^0.5.0",
47
47
  "mime-types": "^3.0.2",
48
48
  "nodemailer": "^8.0.1",
49
49
  "pleroma": "^1.0.0",
@@ -53,7 +53,7 @@
53
53
  "undici": "^7.22.0"
54
54
  },
55
55
  "devDependencies": {
56
- "@t4h.framework/core": "^0.7.0",
56
+ "@t4h.framework/core": "^0.8.0",
57
57
  "@types/json-schema": "^7.0.15",
58
58
  "@types/mime-types": "^3",
59
59
  "@types/node": "^25.3.5",
@@ -63,7 +63,7 @@
63
63
  "vitest": "^4.0.18"
64
64
  },
65
65
  "peerDependencies": {
66
- "@t4h.framework/core": "^0.7.0"
66
+ "@t4h.framework/core": "^0.8.0"
67
67
  },
68
68
  "packageManager": "yarn@4.12.0",
69
69
  "engines": {
@@ -1,21 +0,0 @@
1
- import { ChildProcess } from 'node:child_process';
2
- export interface AppManagerEvents {
3
- onBuildStatus?(status: string): void;
4
- onBuildSuccess?(): void;
5
- onBuildFail?(diagnostics: string): void;
6
- }
7
- export interface AppManagerOptions {
8
- events?: AppManagerEvents;
9
- onAppRestart?: (app: ChildProcess) => void;
10
- }
11
- export declare class AppManager {
12
- private readonly entrypoint;
13
- private readonly env;
14
- private readonly options;
15
- private tsBuildWatcher;
16
- private app;
17
- constructor(entrypoint: string, env: Record<string, string>, options?: AppManagerOptions);
18
- start(): Promise<ChildProcess>;
19
- stop(): void;
20
- protected onTsBuildSuccess(packageJsonPath: string, outDir: string): Promise<ChildProcess>;
21
- }
@@ -1,83 +0,0 @@
1
- import { ChildProcess, fork } from 'node:child_process';
2
- import path from 'node:path';
3
- import { pathToFileURL } from 'node:url';
4
- import { mkdirOutDirProjectFromTsConfigPathAndJsonPackagePath } from './tools/mkdir-out-dir-project-from-ts-config-path-and-json-package-path.js';
5
- import { resolvePackageJsonPath } from './tools/resolve-package-json-path.js';
6
- import { resolveTsconfigFromPackageJsonPath } from './tools/resolve-tsconfig-path-from-package-json-path.js';
7
- import { tsBuildWatch } from './tools/ts-build-watch.js';
8
- export class AppManager {
9
- entrypoint;
10
- env;
11
- options;
12
- tsBuildWatcher;
13
- app;
14
- constructor(entrypoint, env, options = {}) {
15
- this.entrypoint = entrypoint;
16
- this.env = env;
17
- this.options = options;
18
- }
19
- async start() {
20
- const packageJsonPath = await resolvePackageJsonPath(this.entrypoint);
21
- const tsConfigPath = await resolveTsconfigFromPackageJsonPath(packageJsonPath);
22
- const outDir = await mkdirOutDirProjectFromTsConfigPathAndJsonPackagePath(tsConfigPath, packageJsonPath);
23
- return new Promise((resolve, reject) => {
24
- let isSettled = false;
25
- this.tsBuildWatcher = tsBuildWatch(tsConfigPath, {
26
- outDir: path.join(outDir, 'dist'),
27
- sourceMap: true,
28
- declaration: false,
29
- declarationMap: false,
30
- }, {
31
- onSuccess: async () => {
32
- if (this.app)
33
- this.app.kill();
34
- this.options.events?.onBuildSuccess?.();
35
- this.app = await this.onTsBuildSuccess(packageJsonPath, outDir);
36
- if (isSettled) {
37
- this.options.onAppRestart?.(this.app);
38
- return;
39
- }
40
- isSettled = true;
41
- resolve(this.app);
42
- },
43
- onFail: diagnostics => {
44
- const onBuildFail = this.options.events?.onBuildFail;
45
- if (!onBuildFail)
46
- console.error('ts build failed:', diagnostics);
47
- onBuildFail?.(diagnostics);
48
- if (isSettled)
49
- return;
50
- isSettled = true;
51
- reject(new Error(diagnostics));
52
- },
53
- onStatus: status => {
54
- const onBuildStatus = this.options.events?.onBuildStatus;
55
- if (!onBuildStatus)
56
- console.log('ts build status:', status);
57
- onBuildStatus?.(status);
58
- },
59
- });
60
- });
61
- }
62
- stop() {
63
- if (!this.tsBuildWatcher)
64
- throw new Error('tsBuildWatcher is not initialized, did you call start()?');
65
- this.tsBuildWatcher.close();
66
- if (!this.app)
67
- return;
68
- this.app.kill();
69
- }
70
- async onTsBuildSuccess(packageJsonPath, outDir) {
71
- const { default: packageJson } = await import(packageJsonPath, {
72
- with: { type: 'json' },
73
- });
74
- if (typeof packageJson.main !== 'string')
75
- throw new Error('main in package.json is not a string');
76
- const entrypoint = pathToFileURL(path.join(outDir, 'dist', packageJson.main)).href;
77
- return fork(path.join(import.meta.dirname, 'workers', 'app-process.js'), [
78
- entrypoint,
79
- ...Object.entries(this.env).map(([name, value]) => `${name}=${value}`),
80
- ], { stdio: ['ignore', 'inherit', 'inherit', 'ipc'] });
81
- }
82
- }
83
- //# sourceMappingURL=AppManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppManager.js","sourceRoot":"","sources":["../src/AppManager.ts"],"names":[],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- import { EventEmitter } from 'node:events';
2
- import type { App, Log } from '@t4h.framework/core';
3
- import type { WorkflowRunStatus } from './models/WorkflowRun.js';
4
- import type { AsyncActivityPendingStatus, WorkflowRunActivityStatus } from './models/WorkflowRunActivity.js';
5
- export declare enum Events {
6
- Manifest = "manifest",
7
- WorkflowRun = "workflow-run",
8
- WorkflowRunActivity = "workflow-run:activity",
9
- WorkflowRunAsyncActivity = "workflow-run:async-activity",
10
- WorkflowRunLog = "workflow-run:log"
11
- }
12
- interface IEvent<T extends string> {
13
- event: T;
14
- }
15
- export interface IManifestEvent extends IEvent<Events.Manifest>, ReturnType<App['toManifest']> {
16
- }
17
- export interface IWorkflowRunEvent extends IEvent<Events.WorkflowRun> {
18
- id: string;
19
- workflow: string;
20
- status: WorkflowRunStatus;
21
- createdAt: number;
22
- finishedAt?: number;
23
- input?: Record<string, unknown>;
24
- output?: unknown;
25
- error?: {
26
- message: string;
27
- stack?: string;
28
- };
29
- }
30
- export interface IWorkflowRunActivityEvent extends IEvent<Events.WorkflowRunActivity> {
31
- id: string;
32
- workflowRun: string;
33
- name: string;
34
- type: 'sync' | 'async';
35
- status: WorkflowRunActivityStatus;
36
- output?: unknown;
37
- createdAt: number;
38
- finishedAt?: number;
39
- }
40
- export interface IWorkflowRunAsyncActivityEvent extends IEvent<Events.WorkflowRunAsyncActivity> {
41
- id: string;
42
- workflowRun: string;
43
- activity: string;
44
- status: AsyncActivityPendingStatus;
45
- timeoutAt?: number;
46
- }
47
- export interface IWorkflowRunLogEvent extends IEvent<Events.WorkflowRunLog> {
48
- workflowRun: string;
49
- log: Log;
50
- }
51
- export type Event = IWorkflowRunEvent | IWorkflowRunActivityEvent | IWorkflowRunAsyncActivityEvent | IWorkflowRunLogEvent | IManifestEvent;
52
- export declare class EventStore extends EventEmitter {
53
- push<T extends Event['event']>(event: T, data: Omit<Extract<Event, {
54
- event: T;
55
- }>, 'event'>): void;
56
- }
57
- export {};
@@ -1,15 +0,0 @@
1
- import { EventEmitter } from 'node:events';
2
- export var Events;
3
- (function (Events) {
4
- Events["Manifest"] = "manifest";
5
- Events["WorkflowRun"] = "workflow-run";
6
- Events["WorkflowRunActivity"] = "workflow-run:activity";
7
- Events["WorkflowRunAsyncActivity"] = "workflow-run:async-activity";
8
- Events["WorkflowRunLog"] = "workflow-run:log";
9
- })(Events || (Events = {}));
10
- export class EventStore extends EventEmitter {
11
- push(event, data) {
12
- this.emit(event, { event, ...data });
13
- }
14
- }
15
- //# sourceMappingURL=EventStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventStore.js","sourceRoot":"","sources":["../src/EventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAU1C,MAAM,CAAN,IAAY,MAMX;AAND,WAAY,MAAM;IAChB,+BAAqB,CAAA;IACrB,sCAA4B,CAAA;IAC5B,uDAA6C,CAAA;IAC7C,kEAAwD,CAAA;IACxD,6CAAmC,CAAA;AACrC,CAAC,EANW,MAAM,KAAN,MAAM,QAMjB;AAmDD,MAAM,OAAO,UAAW,SAAQ,YAAY;IACnC,IAAI,CACT,KAAQ,EACR,IAAiD;QAEjD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IACtC,CAAC;CACF"}
package/dist/Server.d.ts DELETED
@@ -1,27 +0,0 @@
1
- import { ChildProcess } from 'node:child_process';
2
- import { EventStore } from './EventStore.js';
3
- export interface ServerEvents {
4
- onStop?(): Promise<void> | void;
5
- }
6
- export interface ServerConfig {
7
- events?: ServerEvents;
8
- }
9
- export declare class Server {
10
- private readonly config;
11
- readonly events: EventStore;
12
- private app;
13
- private server;
14
- private worker;
15
- constructor(config?: ServerConfig);
16
- start(app: ChildProcess): Promise<this>;
17
- updateApp(app: ChildProcess): void;
18
- stop(): Promise<void>;
19
- private readonly onAppMessage;
20
- runWorkflow(workflowId: string, input: unknown): Promise<any>;
21
- setEnv(name: string, value: string): Promise<any>;
22
- listEnv(): Promise<any>;
23
- listWaitingAsyncActivities(): Promise<any>;
24
- listWorkflowRuns(): Promise<any>;
25
- getWorkflowRun(id: string): Promise<any>;
26
- advanceAsyncActivity(id: string, payload: unknown): Promise<any>;
27
- }
package/dist/Server.js DELETED
@@ -1,64 +0,0 @@
1
- import { ChildProcess } from 'node:child_process';
2
- import Type from 'typebox';
3
- import { EventStore, Events } from './EventStore.js';
4
- import { JSONRPCClient } from './models/JSONRPCClient.js';
5
- import { JSONRPCServer, JSONRPCServerMethod } from './models/JSONRPCServer.js';
6
- export class Server {
7
- config;
8
- events = new EventStore();
9
- app;
10
- server;
11
- worker;
12
- constructor(config = {}) {
13
- this.config = config;
14
- }
15
- async start(app) {
16
- this.app = app;
17
- this.server = new JSONRPCServer([
18
- new JSONRPCServerMethod(Events.Manifest, { schema: [Type.Any()] }, manifest => this.events.push(Events.Manifest, manifest)),
19
- new JSONRPCServerMethod(Events.WorkflowRunLog, { schema: [Type.Any()] }, event => this.events.push(Events.WorkflowRunLog, event)),
20
- new JSONRPCServerMethod(Events.WorkflowRun, { schema: [Type.Any()] }, event => this.events.push(Events.WorkflowRun, event)),
21
- new JSONRPCServerMethod(Events.WorkflowRunActivity, { schema: [Type.Any()] }, event => this.events.push(Events.WorkflowRunActivity, event)),
22
- new JSONRPCServerMethod(Events.WorkflowRunAsyncActivity, { schema: [Type.Any()] }, event => this.events.push(Events.WorkflowRunAsyncActivity, event)),
23
- ], message => {
24
- this.app.send(message);
25
- });
26
- this.worker = new JSONRPCClient(message => {
27
- this.app.send(message);
28
- });
29
- app.on('message', this.onAppMessage);
30
- return this;
31
- }
32
- updateApp(app) {
33
- this.app.off('message', this.onAppMessage);
34
- this.app = app;
35
- this.app.on('message', this.onAppMessage);
36
- }
37
- async stop() {
38
- this.app.kill();
39
- await this.config.events?.onStop?.();
40
- }
41
- onAppMessage = (message) => Promise.all([this.server.handle(message), this.worker.handle(message)]);
42
- async runWorkflow(workflowId, input) {
43
- return await this.worker.call('workflow.run', workflowId, input);
44
- }
45
- async setEnv(name, value) {
46
- return await this.worker.call('env.set', name, value);
47
- }
48
- async listEnv() {
49
- return await this.worker.call('env.list');
50
- }
51
- async listWaitingAsyncActivities() {
52
- return await this.worker.call('workflow.async-activities.waiting.list');
53
- }
54
- async listWorkflowRuns() {
55
- return await this.worker.call('workflow.runs.list');
56
- }
57
- async getWorkflowRun(id) {
58
- return await this.worker.call('workflow.runs.get', id);
59
- }
60
- async advanceAsyncActivity(id, payload) {
61
- return await this.worker.call('workflow.async-activities.advance', id, payload);
62
- }
63
- }
64
- //# sourceMappingURL=Server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Server.js","sourceRoot":"","sources":["../src/Server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,OAAO,IAAI,MAAM,SAAS,CAAA;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAU9E,MAAM,OAAO,MAAM;IAOY;IANb,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;IAEjC,GAAG,CAAe;IAClB,MAAM,CAAgB;IACtB,MAAM,CAAgB;IAE9B,YAA6B,SAAuB,EAAE;QAAzB,WAAM,GAAN,MAAM,CAAmB;IAAG,CAAC;IAEnD,KAAK,CAAC,KAAK,CAAC,GAAiB;QAClC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAEd,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAC7B;YACE,IAAI,mBAAmB,CACrB,MAAM,CAAC,QAAQ,EACf,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAU,EAAE,EACjC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACxD;YACD,IAAI,mBAAmB,CACrB,MAAM,CAAC,cAAc,EACrB,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAU,EAAE,EACjC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CACxD;YACD,IAAI,mBAAmB,CACrB,MAAM,CAAC,WAAW,EAClB,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAU,EAAE,EACjC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CACrD;YACD,IAAI,mBAAmB,CACrB,MAAM,CAAC,mBAAmB,EAC1B,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAU,EAAE,EACjC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAC7D;YACD,IAAI,mBAAmB,CACrB,MAAM,CAAC,wBAAwB,EAC/B,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAU,EAAE,EACjC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAClE;SACF,EACD,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC,CACF,CAAA;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QAEpC,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,SAAS,CAAC,GAAiB;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QAE1C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAEd,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IAC3C,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAEf,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAA;IACtC,CAAC;IAEgB,YAAY,GAAG,CAAC,OAAgB,EAAE,EAAE,CACnD,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAElE,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,KAAc;QACzD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;IAClE,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,KAAa;QAC7C,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACvD,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC3C,CAAC;IAEM,KAAK,CAAC,0BAA0B;QACrC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACzE,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IACrD,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,EAAU;QACpC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAA;IACxD,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,EAAU,EAAE,OAAgB;QAC5D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAC3B,mCAAmC,EACnC,EAAE,EACF,OAAO,CACR,CAAA;IACH,CAAC;CACF"}
@@ -1,8 +0,0 @@
1
- import { type AppManagerEvents } from './AppManager.js';
2
- import { Server } from './Server.js';
3
- interface BootstrapOptions {
4
- env?: Record<string, string>;
5
- events?: AppManagerEvents;
6
- }
7
- export declare function bootstrap(entrypoint: string, options?: BootstrapOptions): Promise<Server>;
8
- export {};
package/dist/bootstrap.js DELETED
@@ -1,12 +0,0 @@
1
- import { AppManager } from './AppManager.js';
2
- import { Server } from './Server.js';
3
- export async function bootstrap(entrypoint, options = {}) {
4
- const server = new Server();
5
- const manager = new AppManager(entrypoint, options.env ?? {}, {
6
- events: options.events,
7
- onAppRestart: app => server.updateApp(app),
8
- });
9
- const app = await manager.start();
10
- return server.start(app);
11
- }
12
- //# sourceMappingURL=bootstrap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyB,MAAM,iBAAiB,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAOpC,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,UAAkB,EAClB,UAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;IAE3B,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QAC5D,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;KAC3C,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;IAEjC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare class EnvironmentController {
2
- set(name: string, value: string): Promise<void>;
3
- list(): Promise<string[]>;
4
- }
@@ -1,31 +0,0 @@
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
- import { Injectable } from 'pleroma';
8
- import Type from 'typebox';
9
- import { JsonRpcMethod } from '../decorators/JsonRpcMethod.js';
10
- import { env } from '../workers/app-process.js';
11
- let EnvironmentController = class EnvironmentController {
12
- async set(name, value) {
13
- env.set(name, value);
14
- }
15
- async list() {
16
- return env.values().toArray();
17
- }
18
- };
19
- __decorate([
20
- JsonRpcMethod('env.set', {
21
- schema: [Type.String(), Type.String()],
22
- })
23
- ], EnvironmentController.prototype, "set", null);
24
- __decorate([
25
- JsonRpcMethod('env.list')
26
- ], EnvironmentController.prototype, "list", null);
27
- EnvironmentController = __decorate([
28
- Injectable()
29
- ], EnvironmentController);
30
- export { EnvironmentController };
31
- //# sourceMappingURL=Environment.controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Environment.controller.js","sourceRoot":"","sources":["../../src/controllers/Environment.controller.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,IAAI,MAAM,SAAS,CAAA;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAA;AAGxC,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAInB,AAAN,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,KAAa;QAC1C,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACtB,CAAC;IAGY,AAAN,KAAK,CAAC,IAAI;QACf,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;IAC/B,CAAC;CACF,CAAA;AARc;IAHZ,aAAa,CAAC,SAAS,EAAE;QACxB,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;KACvC,CAAC;gDAGD;AAGY;IADZ,aAAa,CAAC,UAAU,CAAC;iDAGzB;AAXU,qBAAqB;IADjC,UAAU,EAAE;GACA,qBAAqB,CAYjC"}
@@ -1,27 +0,0 @@
1
- import type { WorkflowRunAsyncActivityOutput } from '../outputs/WorkflowRunAsyncActivityOutput.js';
2
- import type { WorkflowRunOutput } from '../outputs/WorkflowRunOutput.js';
3
- import { WorkflowRunRepository } from '../repositories/WorkflowRun.repository.js';
4
- import { WorkflowRunActivityRepository } from '../repositories/WorkflowRunActivity.repository.js';
5
- import { BuildWorkflowRunResultService } from '../services/BuildWorkflowRunResult.service.js';
6
- import { WorkflowRunAsyncActivityFacade } from '../services/WorkflowRunAsyncActivityFacade.service.js';
7
- import { WorkflowRunFacade } from '../services/WorkflowRunFacade.service.js';
8
- export declare class WorkflowsController {
9
- private readonly workflowRun;
10
- private readonly buildWorkflowRunResultService;
11
- private readonly workflowRunAsyncActivity;
12
- private readonly workflowRunActivityRepository;
13
- private readonly workflowRunRepository;
14
- constructor(workflowRun: WorkflowRunFacade, buildWorkflowRunResultService: BuildWorkflowRunResultService, workflowRunAsyncActivity: WorkflowRunAsyncActivityFacade, workflowRunActivityRepository: WorkflowRunActivityRepository, workflowRunRepository: WorkflowRunRepository);
15
- run(workflowId: string, input: unknown): Promise<unknown>;
16
- findRuns(): Promise<{
17
- id: string;
18
- workflow: string;
19
- status: import("../models/WorkflowRun.js").WorkflowRunStatus;
20
- createdAt: number;
21
- finishedAt: number | undefined;
22
- logs: import("@t4h.framework/core").Log[];
23
- }[]>;
24
- findRun(id: string): WorkflowRunOutput | null;
25
- asyncAdvance(id: string, payload: unknown): Promise<unknown>;
26
- asyncWaitingList(): WorkflowRunAsyncActivityOutput[];
27
- }
@@ -1,119 +0,0 @@
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 Type from 'typebox';
12
- import { JsonRpcMethod } from '../decorators/JsonRpcMethod.js';
13
- import { WorkflowRunRepository } from '../repositories/WorkflowRun.repository.js';
14
- import { WorkflowRunActivityRepository } from '../repositories/WorkflowRunActivity.repository.js';
15
- import { BuildWorkflowRunResultService } from '../services/BuildWorkflowRunResult.service.js';
16
- import { WorkflowRunAsyncActivityFacade } from '../services/WorkflowRunAsyncActivityFacade.service.js';
17
- import { WorkflowRunFacade } from '../services/WorkflowRunFacade.service.js';
18
- let WorkflowsController = class WorkflowsController {
19
- workflowRun;
20
- buildWorkflowRunResultService;
21
- workflowRunAsyncActivity;
22
- workflowRunActivityRepository;
23
- workflowRunRepository;
24
- constructor(workflowRun, buildWorkflowRunResultService, workflowRunAsyncActivity, workflowRunActivityRepository, workflowRunRepository) {
25
- this.workflowRun = workflowRun;
26
- this.buildWorkflowRunResultService = buildWorkflowRunResultService;
27
- this.workflowRunAsyncActivity = workflowRunAsyncActivity;
28
- this.workflowRunActivityRepository = workflowRunActivityRepository;
29
- this.workflowRunRepository = workflowRunRepository;
30
- }
31
- async run(workflowId, input) {
32
- const run = this.workflowRun.create(workflowId, input);
33
- await this.workflowRun.nextTick(run.id);
34
- return this.buildWorkflowRunResultService.build(run);
35
- }
36
- async findRuns() {
37
- return this.workflowRunRepository.findAll().map(run => ({
38
- id: run.id,
39
- workflow: run.workflow,
40
- status: run.status,
41
- createdAt: run.createdAt,
42
- finishedAt: run.finishedAt,
43
- logs: run.logs,
44
- }));
45
- }
46
- findRun(id) {
47
- const run = this.workflowRunRepository.findById(id);
48
- if (!run)
49
- return null;
50
- const activities = this.workflowRunActivityRepository
51
- .findByRunId(run.id)
52
- .map(activity => ({
53
- id: activity.id,
54
- name: activity.constructable.name,
55
- type: activity.type,
56
- status: activity.status,
57
- output: activity.output,
58
- createdAt: activity.createdAt.getTime(),
59
- finishedAt: activity.finishedAt?.getTime(),
60
- }));
61
- return {
62
- id: run.id,
63
- workflow: run.workflow,
64
- status: run.status,
65
- createdAt: run.createdAt,
66
- finishedAt: run.finishedAt,
67
- logs: run.logs,
68
- input: run.input,
69
- output: run.output,
70
- error: run.rejectedReason,
71
- activities,
72
- };
73
- }
74
- async asyncAdvance(id, payload) {
75
- return this.workflowRunAsyncActivity.advance(id, payload);
76
- }
77
- asyncWaitingList() {
78
- const pendingActivities = this.workflowRunActivityRepository.findBy(activity => activity.asyncActivity?.status === 'pending');
79
- return pendingActivities.map(pending => {
80
- const run = pending.run;
81
- return {
82
- id: pending.id,
83
- workflow: run.workflow,
84
- schema: pending.asyncActivity?.lastPendingAsyncActivity?.schema,
85
- };
86
- });
87
- }
88
- };
89
- __decorate([
90
- JsonRpcMethod('workflow.run', {
91
- schema: [Type.String(), Type.Any()],
92
- })
93
- ], WorkflowsController.prototype, "run", null);
94
- __decorate([
95
- JsonRpcMethod('workflow.runs.list')
96
- ], WorkflowsController.prototype, "findRuns", null);
97
- __decorate([
98
- JsonRpcMethod('workflow.runs.get', {
99
- schema: [Type.String()],
100
- })
101
- ], WorkflowsController.prototype, "findRun", null);
102
- __decorate([
103
- JsonRpcMethod('workflow.async-activities.advance', {
104
- schema: [Type.String(), Type.Any()],
105
- })
106
- ], WorkflowsController.prototype, "asyncAdvance", null);
107
- __decorate([
108
- JsonRpcMethod('workflow.async-activities.waiting.list')
109
- ], WorkflowsController.prototype, "asyncWaitingList", null);
110
- WorkflowsController = __decorate([
111
- Injectable(),
112
- __param(0, Inject(() => WorkflowRunFacade)),
113
- __param(1, Inject(() => BuildWorkflowRunResultService)),
114
- __param(2, Inject(() => WorkflowRunAsyncActivityFacade)),
115
- __param(3, Inject(() => WorkflowRunActivityRepository)),
116
- __param(4, Inject(() => WorkflowRunRepository))
117
- ], WorkflowsController);
118
- export { WorkflowsController };
119
- //# sourceMappingURL=Workflows.controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Workflows.controller.js","sourceRoot":"","sources":["../../src/controllers/Workflows.controller.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import 'reflect-metadata';
2
- import Type from 'typebox';
3
- export interface JsonRpcMethodOptions {
4
- schema?: readonly Type.TSchema[];
5
- }
6
- export interface MethodMetadata {
7
- name: string;
8
- propertyKey: string | symbol;
9
- options?: JsonRpcMethodOptions;
10
- }
11
- export declare const METHOD_METADATA: unique symbol;
12
- export declare function JsonRpcMethod(name: string, options?: JsonRpcMethodOptions): MethodDecorator;