nmtjs 0.15.0-beta.2 → 0.15.0-beta.21

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 (254) hide show
  1. package/dist/cli.d.ts +2 -0
  2. package/dist/cli.js +3 -2
  3. package/dist/cli.js.map +1 -0
  4. package/dist/config.d.ts +51 -0
  5. package/dist/config.js +1 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/entrypoints/cli.d.ts +1 -0
  8. package/dist/entrypoints/cli.js +1 -0
  9. package/dist/entrypoints/cli.js.map +1 -0
  10. package/dist/entrypoints/main.d.ts +5 -0
  11. package/dist/entrypoints/main.js +83 -15
  12. package/dist/entrypoints/main.js.map +1 -0
  13. package/dist/entrypoints/thread.d.ts +14 -0
  14. package/dist/entrypoints/thread.js +130 -24
  15. package/dist/entrypoints/thread.js.map +1 -0
  16. package/dist/entrypoints/worker.d.ts +3 -0
  17. package/dist/entrypoints/worker.js +4 -3
  18. package/dist/entrypoints/worker.js.map +1 -0
  19. package/dist/index.d.ts +69 -0
  20. package/dist/{_exports/index.js → index.js} +9 -5
  21. package/dist/index.js.map +1 -0
  22. package/dist/resolver.d.ts +2 -0
  23. package/dist/resolver.js +1 -0
  24. package/dist/resolver.js.map +1 -0
  25. package/dist/runtime/application/api/api.d.ts +49 -0
  26. package/dist/runtime/application/api/api.js +193 -0
  27. package/dist/runtime/application/api/api.js.map +1 -0
  28. package/dist/runtime/application/api/constants.d.ts +14 -0
  29. package/dist/runtime/application/api/constants.js +8 -0
  30. package/dist/runtime/application/api/constants.js.map +1 -0
  31. package/dist/runtime/application/api/filters.d.ts +14 -0
  32. package/dist/runtime/application/api/filters.js +11 -0
  33. package/dist/runtime/application/api/filters.js.map +1 -0
  34. package/dist/runtime/application/api/guards.d.ts +13 -0
  35. package/dist/runtime/application/api/guards.js +8 -0
  36. package/dist/runtime/application/api/guards.js.map +1 -0
  37. package/dist/runtime/application/api/index.d.ts +8 -0
  38. package/dist/runtime/application/api/index.js +9 -0
  39. package/dist/runtime/application/api/index.js.map +1 -0
  40. package/dist/runtime/application/api/middlewares.d.ts +14 -0
  41. package/dist/runtime/application/api/middlewares.js +12 -0
  42. package/dist/runtime/application/api/middlewares.js.map +1 -0
  43. package/dist/runtime/application/api/procedure.d.ts +67 -0
  44. package/dist/runtime/application/api/procedure.js +50 -0
  45. package/dist/runtime/application/api/procedure.js.map +1 -0
  46. package/dist/runtime/application/api/router.d.ts +71 -0
  47. package/dist/runtime/application/api/router.js +51 -0
  48. package/dist/runtime/application/api/router.js.map +1 -0
  49. package/dist/runtime/application/api/types.d.ts +32 -0
  50. package/dist/runtime/application/api/types.js +2 -0
  51. package/dist/runtime/application/api/types.js.map +1 -0
  52. package/dist/runtime/application/config.d.ts +26 -0
  53. package/dist/runtime/application/config.js +21 -0
  54. package/dist/runtime/application/config.js.map +1 -0
  55. package/dist/runtime/application/constants.d.ts +2 -0
  56. package/dist/runtime/application/constants.js +2 -0
  57. package/dist/runtime/application/constants.js.map +1 -0
  58. package/dist/runtime/application/hook.d.ts +19 -0
  59. package/dist/runtime/application/hook.js +11 -0
  60. package/dist/runtime/application/hook.js.map +1 -0
  61. package/dist/runtime/application/hooks.d.ts +3 -0
  62. package/dist/runtime/application/hooks.js +4 -0
  63. package/dist/runtime/application/hooks.js.map +1 -0
  64. package/dist/runtime/application/index.d.ts +5 -0
  65. package/dist/runtime/application/index.js +6 -0
  66. package/dist/runtime/application/index.js.map +1 -0
  67. package/dist/runtime/constants.d.ts +8 -0
  68. package/dist/runtime/constants.js +5 -0
  69. package/dist/runtime/constants.js.map +1 -0
  70. package/dist/runtime/core/hooks.d.ts +4 -0
  71. package/dist/runtime/core/hooks.js +4 -0
  72. package/dist/runtime/core/hooks.js.map +1 -0
  73. package/dist/runtime/core/plugin.d.ts +8 -0
  74. package/dist/runtime/core/plugin.js +4 -0
  75. package/dist/runtime/core/plugin.js.map +1 -0
  76. package/dist/runtime/core/runtime.d.ts +27 -0
  77. package/dist/runtime/core/runtime.js +81 -0
  78. package/dist/runtime/core/runtime.js.map +1 -0
  79. package/dist/runtime/enums.d.ts +21 -0
  80. package/dist/runtime/enums.js +26 -0
  81. package/dist/runtime/enums.js.map +1 -0
  82. package/dist/runtime/index.d.ts +21 -0
  83. package/dist/runtime/index.js +22 -0
  84. package/dist/runtime/index.js.map +1 -0
  85. package/dist/runtime/injectables.d.ts +23 -0
  86. package/dist/runtime/injectables.js +20 -0
  87. package/dist/runtime/injectables.js.map +1 -0
  88. package/dist/runtime/jobs/job.d.ts +132 -0
  89. package/dist/runtime/jobs/job.js +68 -0
  90. package/dist/runtime/jobs/job.js.map +1 -0
  91. package/dist/runtime/jobs/manager.d.ts +113 -0
  92. package/dist/runtime/jobs/manager.js +210 -0
  93. package/dist/runtime/jobs/manager.js.map +1 -0
  94. package/dist/runtime/jobs/router.d.ts +266 -0
  95. package/dist/runtime/jobs/router.js +432 -0
  96. package/dist/runtime/jobs/router.js.map +1 -0
  97. package/dist/runtime/jobs/runner.d.ts +64 -0
  98. package/dist/runtime/jobs/runner.js +256 -0
  99. package/dist/runtime/jobs/runner.js.map +1 -0
  100. package/dist/runtime/jobs/step.d.ts +23 -0
  101. package/dist/runtime/jobs/step.js +18 -0
  102. package/dist/runtime/jobs/step.js.map +1 -0
  103. package/dist/runtime/jobs/ui.d.ts +3 -0
  104. package/dist/runtime/jobs/ui.js +17 -0
  105. package/dist/runtime/jobs/ui.js.map +1 -0
  106. package/dist/runtime/pubsub/manager.d.ts +48 -0
  107. package/dist/runtime/pubsub/manager.js +119 -0
  108. package/dist/runtime/pubsub/manager.js.map +1 -0
  109. package/dist/runtime/pubsub/redis.d.ts +16 -0
  110. package/dist/runtime/pubsub/redis.js +98 -0
  111. package/dist/runtime/pubsub/redis.js.map +1 -0
  112. package/dist/runtime/scheduler/index.d.ts +22 -0
  113. package/dist/runtime/scheduler/index.js +20 -0
  114. package/dist/runtime/scheduler/index.js.map +1 -0
  115. package/dist/runtime/server/applications.d.ts +52 -0
  116. package/dist/runtime/server/applications.js +133 -0
  117. package/dist/runtime/server/applications.js.map +1 -0
  118. package/dist/runtime/server/config.d.ts +121 -0
  119. package/dist/runtime/server/config.js +33 -0
  120. package/dist/runtime/server/config.js.map +1 -0
  121. package/dist/runtime/server/jobs.d.ts +41 -0
  122. package/dist/runtime/server/jobs.js +181 -0
  123. package/dist/runtime/server/jobs.js.map +1 -0
  124. package/dist/runtime/server/pool.d.ts +54 -0
  125. package/dist/runtime/server/pool.js +194 -0
  126. package/dist/runtime/server/pool.js.map +1 -0
  127. package/dist/runtime/server/proxy.d.ts +21 -0
  128. package/dist/runtime/server/proxy.js +79 -0
  129. package/dist/runtime/server/proxy.js.map +1 -0
  130. package/dist/runtime/server/server.d.ts +53 -0
  131. package/dist/runtime/server/server.js +90 -0
  132. package/dist/runtime/server/server.js.map +1 -0
  133. package/dist/runtime/store/index.d.ts +3 -0
  134. package/dist/runtime/store/index.js +23 -0
  135. package/dist/runtime/store/index.js.map +1 -0
  136. package/dist/runtime/types.d.ts +103 -0
  137. package/dist/runtime/types.js +2 -0
  138. package/dist/runtime/types.js.map +1 -0
  139. package/dist/runtime/workers/application.d.ts +47 -0
  140. package/dist/runtime/workers/application.js +162 -0
  141. package/dist/runtime/workers/application.js.map +1 -0
  142. package/dist/runtime/workers/base.d.ts +16 -0
  143. package/dist/runtime/workers/base.js +46 -0
  144. package/dist/runtime/workers/base.js.map +1 -0
  145. package/dist/runtime/workers/cli.d.ts +1 -0
  146. package/dist/runtime/workers/cli.js +2 -0
  147. package/dist/runtime/workers/cli.js.map +1 -0
  148. package/dist/runtime/workers/job.d.ts +20 -0
  149. package/dist/runtime/workers/job.js +172 -0
  150. package/dist/runtime/workers/job.js.map +1 -0
  151. package/dist/typings.d.ts +5 -0
  152. package/dist/typings.js +4 -3
  153. package/dist/typings.js.map +1 -0
  154. package/dist/vite/builder.d.ts +5 -0
  155. package/dist/vite/builder.js +5 -1
  156. package/dist/vite/builder.js.map +1 -0
  157. package/dist/vite/config.d.ts +28 -0
  158. package/dist/vite/config.js +1 -0
  159. package/dist/vite/config.js.map +1 -0
  160. package/dist/vite/plugins.d.ts +2 -0
  161. package/dist/vite/plugins.js +1 -0
  162. package/dist/vite/plugins.js.map +1 -0
  163. package/dist/vite/runners/worker.d.ts +4 -0
  164. package/dist/vite/runners/worker.js +1 -0
  165. package/dist/vite/runners/worker.js.map +1 -0
  166. package/dist/vite/server.d.ts +3 -0
  167. package/dist/vite/server.js +6 -1
  168. package/dist/vite/server.js.map +1 -0
  169. package/dist/vite/servers/main.d.ts +8 -0
  170. package/dist/vite/servers/main.js +1 -0
  171. package/dist/vite/servers/main.js.map +1 -0
  172. package/dist/vite/servers/worker.d.ts +11 -0
  173. package/dist/vite/servers/worker.js +28 -0
  174. package/dist/vite/servers/worker.js.map +1 -0
  175. package/package.json +31 -18
  176. package/src/cli.ts +144 -0
  177. package/src/config.ts +64 -0
  178. package/src/entrypoints/cli.ts +13 -0
  179. package/src/entrypoints/main.ts +200 -0
  180. package/src/entrypoints/thread.ts +184 -0
  181. package/src/entrypoints/worker.ts +48 -0
  182. package/src/index.ts +82 -0
  183. package/src/resolver.ts +16 -0
  184. package/src/runtime/application/api/api.ts +265 -0
  185. package/src/runtime/application/api/constants.ts +22 -0
  186. package/src/runtime/application/api/filters.ts +39 -0
  187. package/src/runtime/application/api/guards.ts +29 -0
  188. package/src/runtime/application/api/index.ts +8 -0
  189. package/src/runtime/application/api/middlewares.ts +37 -0
  190. package/src/runtime/application/api/procedure.ts +229 -0
  191. package/src/runtime/application/api/router.ts +193 -0
  192. package/src/runtime/application/api/types.ts +124 -0
  193. package/src/runtime/application/config.ts +69 -0
  194. package/src/runtime/application/constants.ts +4 -0
  195. package/src/runtime/application/hook.ts +51 -0
  196. package/src/runtime/application/hooks.ts +3 -0
  197. package/src/runtime/application/index.ts +5 -0
  198. package/src/runtime/constants.ts +13 -0
  199. package/src/runtime/core/hooks.ts +5 -0
  200. package/src/runtime/core/plugin.ts +13 -0
  201. package/src/runtime/core/runtime.ts +109 -0
  202. package/src/runtime/enums.ts +24 -0
  203. package/src/runtime/index.ts +21 -0
  204. package/src/runtime/injectables.ts +61 -0
  205. package/src/runtime/jobs/job.ts +370 -0
  206. package/src/runtime/jobs/manager.ts +348 -0
  207. package/src/runtime/jobs/router.ts +896 -0
  208. package/src/runtime/jobs/runner.ts +320 -0
  209. package/src/runtime/jobs/step.ts +66 -0
  210. package/src/runtime/jobs/ui.ts +21 -0
  211. package/src/runtime/pubsub/manager.ts +211 -0
  212. package/src/runtime/pubsub/redis.ts +108 -0
  213. package/src/runtime/scheduler/index.ts +39 -0
  214. package/src/runtime/server/applications.ts +210 -0
  215. package/src/runtime/server/config.ts +158 -0
  216. package/src/runtime/server/jobs.ts +250 -0
  217. package/src/runtime/server/pool.ts +260 -0
  218. package/src/runtime/server/proxy.ts +118 -0
  219. package/src/runtime/server/server.ts +155 -0
  220. package/src/runtime/store/index.ts +30 -0
  221. package/src/runtime/types.ts +93 -0
  222. package/src/runtime/workers/application.ts +209 -0
  223. package/src/runtime/workers/base.ts +68 -0
  224. package/src/runtime/workers/cli.ts +0 -0
  225. package/src/runtime/workers/job.ts +153 -0
  226. package/src/typings.ts +30 -0
  227. package/src/vite/builder.ts +122 -0
  228. package/src/vite/config.ts +45 -0
  229. package/src/vite/plugins.ts +26 -0
  230. package/src/vite/runners/worker.ts +57 -0
  231. package/src/vite/server.ts +39 -0
  232. package/src/vite/servers/main.ts +34 -0
  233. package/src/vite/servers/worker.ts +143 -0
  234. package/dist/_exports/application.js +0 -1
  235. package/dist/_exports/common.js +0 -1
  236. package/dist/_exports/contract.js +0 -2
  237. package/dist/_exports/core.js +0 -1
  238. package/dist/_exports/gateway.js +0 -1
  239. package/dist/_exports/http-transport/bun.js +0 -1
  240. package/dist/_exports/http-transport/deno.js +0 -1
  241. package/dist/_exports/http-transport/node.js +0 -1
  242. package/dist/_exports/http-transport.js +0 -1
  243. package/dist/_exports/json-format.js +0 -1
  244. package/dist/_exports/protocol/client.js +0 -1
  245. package/dist/_exports/protocol/server.js +0 -1
  246. package/dist/_exports/protocol.js +0 -1
  247. package/dist/_exports/runtime/types.js +0 -1
  248. package/dist/_exports/runtime.js +0 -1
  249. package/dist/_exports/type.js +0 -2
  250. package/dist/_exports/ws-transport/bun.js +0 -1
  251. package/dist/_exports/ws-transport/deno.js +0 -1
  252. package/dist/_exports/ws-transport/node.js +0 -1
  253. package/dist/_exports/ws-transport.js +0 -1
  254. package/dist/command.js +0 -30
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/runtime/jobs/router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { Container, Logger, LoggingOptions } from '@nmtjs/core';
2
+ import type { Job } from 'bullmq';
3
+ import type { LifecycleHooks } from '../core/hooks.ts';
4
+ import type { AnyJob } from './job.ts';
5
+ import type { AnyJobStep } from './step.ts';
6
+ export type JobRunnerOptions = {
7
+ logging?: LoggingOptions;
8
+ };
9
+ export interface StepResultEntry {
10
+ data: Record<string, unknown> | null;
11
+ duration: number;
12
+ }
13
+ export interface JobRunnerRunOptions {
14
+ signal: AbortSignal;
15
+ result: Record<string, unknown>;
16
+ stepResults: StepResultEntry[];
17
+ currentStepIndex: number;
18
+ progress: Record<string, unknown>;
19
+ }
20
+ export interface JobRunnerRunBeforeStepParams<Options extends JobRunnerRunOptions> {
21
+ job: AnyJob;
22
+ step: AnyJobStep;
23
+ stepIndex: number;
24
+ result: Record<string, unknown>;
25
+ stepResults: StepResultEntry[];
26
+ options: Options;
27
+ }
28
+ export interface JobRunnerRunAfterStepParams<Options extends JobRunnerRunOptions> extends JobRunnerRunBeforeStepParams<Options> {
29
+ stepResult: StepResultEntry;
30
+ }
31
+ export declare class JobRunner<RunOptions extends JobRunnerRunOptions = JobRunnerRunOptions> {
32
+ protected runtime: {
33
+ logger: Logger;
34
+ container: Container;
35
+ lifecycleHooks: LifecycleHooks;
36
+ };
37
+ logger: Logger;
38
+ constructor(runtime: {
39
+ logger: Logger;
40
+ container: Container;
41
+ lifecycleHooks: LifecycleHooks;
42
+ });
43
+ get container(): Container;
44
+ runJob<T extends AnyJob>(job: T, data: any, options?: Partial<RunOptions>): Promise<T['_']['output']>;
45
+ protected beforeStep(params: JobRunnerRunBeforeStepParams<RunOptions>): Promise<void>;
46
+ protected afterStep(params: JobRunnerRunAfterStepParams<RunOptions>): Promise<void>;
47
+ }
48
+ export declare class ApplicationWorkerJobRunner extends JobRunner<JobRunnerRunOptions & {
49
+ queueJob: Job;
50
+ }> {
51
+ protected runtime: {
52
+ logger: Logger;
53
+ container: Container;
54
+ lifecycleHooks: LifecycleHooks;
55
+ };
56
+ constructor(runtime: {
57
+ logger: Logger;
58
+ container: Container;
59
+ lifecycleHooks: LifecycleHooks;
60
+ });
61
+ protected afterStep(params: JobRunnerRunAfterStepParams<JobRunnerRunOptions & {
62
+ queueJob: Job;
63
+ }>): Promise<void>;
64
+ }
@@ -0,0 +1,256 @@
1
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
2
+ if (value !== null && value !== void 0) {
3
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
4
+ var dispose, inner;
5
+ if (async) {
6
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
7
+ dispose = value[Symbol.asyncDispose];
8
+ }
9
+ if (dispose === void 0) {
10
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
11
+ dispose = value[Symbol.dispose];
12
+ if (async) inner = dispose;
13
+ }
14
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
15
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
16
+ env.stack.push({ value: value, dispose: dispose, async: async });
17
+ }
18
+ else if (async) {
19
+ env.stack.push({ async: true });
20
+ }
21
+ return value;
22
+ };
23
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
24
+ return function (env) {
25
+ function fail(e) {
26
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
27
+ env.hasError = true;
28
+ }
29
+ var r, s = 0;
30
+ function next() {
31
+ while (r = env.stack.pop()) {
32
+ try {
33
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
34
+ if (r.dispose) {
35
+ var result = r.dispose.call(r.value);
36
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
37
+ }
38
+ else s |= 1;
39
+ }
40
+ catch (e) {
41
+ fail(e);
42
+ }
43
+ }
44
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
45
+ if (env.hasError) throw env.error;
46
+ }
47
+ return next();
48
+ };
49
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
50
+ var e = new Error(message);
51
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
+ });
53
+ import { anyAbortSignal } from '@nmtjs/common';
54
+ import { Scope } from '@nmtjs/core';
55
+ import { UnrecoverableError } from 'bullmq';
56
+ import { LifecycleHook } from "../enums.js";
57
+ import { jobAbortSignal } from "../injectables.js";
58
+ export class JobRunner {
59
+ runtime;
60
+ logger;
61
+ constructor(runtime) {
62
+ this.runtime = runtime;
63
+ this.logger = runtime.logger.child({ $group: JobRunner.name });
64
+ }
65
+ get container() {
66
+ return this.runtime.container;
67
+ }
68
+ async runJob(job, data, options = {}) {
69
+ const env_1 = { stack: [], error: void 0, hasError: false };
70
+ try {
71
+ const { signal: runSignal, result: runResult = {}, stepResults: runStepResults = [], progress: runProgress = {}, currentStepIndex = 0, ...rest } = options;
72
+ const { input, output, steps } = job;
73
+ const result = { ...runResult };
74
+ const decodedInput = input.decode(data);
75
+ // Initialize progress: decode from checkpoint or start fresh
76
+ const progress = job.progress
77
+ ? job.progress.decode(runProgress)
78
+ : { ...runProgress };
79
+ const stopListener = __addDisposableResource(env_1, this.runtime.lifecycleHooks.once(LifecycleHook.BeforeDispose), false);
80
+ const signal = anyAbortSignal(runSignal, stopListener.signal);
81
+ const container = __addDisposableResource(env_1, this.container.fork(Scope.Global), true);
82
+ await container.provide(jobAbortSignal, signal);
83
+ const jobDependencyContext = await container.createContext(job.dependencies);
84
+ const jobData = job.options.data
85
+ ? await job.options.data(jobDependencyContext, decodedInput, progress)
86
+ : undefined;
87
+ const stepResults = Array.from({ length: steps.length });
88
+ // Restore previous step results and reconstruct accumulated result
89
+ for (let stepIndex = 0; stepIndex < runStepResults.length; stepIndex++) {
90
+ const entry = runStepResults[stepIndex];
91
+ stepResults[stepIndex] = entry;
92
+ if (entry?.data)
93
+ Object.assign(result, entry.data);
94
+ }
95
+ // @ts-expect-error
96
+ const runOptions = {
97
+ signal,
98
+ result,
99
+ stepResults,
100
+ currentStepIndex: currentStepIndex,
101
+ progress,
102
+ ...rest,
103
+ };
104
+ for (let stepIndex = currentStepIndex; stepIndex < steps.length; stepIndex++) {
105
+ const step = steps[stepIndex];
106
+ const resultSnapshot = Object.freeze(Object.assign({}, decodedInput, result));
107
+ try {
108
+ if (signal.aborted) {
109
+ const { reason } = signal;
110
+ if (reason instanceof UnrecoverableError)
111
+ throw reason;
112
+ throw new UnrecoverableError('Job cancelled');
113
+ }
114
+ const condition = job.conditions.get(stepIndex);
115
+ if (condition) {
116
+ const shouldRun = await condition({
117
+ context: jobDependencyContext,
118
+ data: jobData,
119
+ input: decodedInput,
120
+ result: resultSnapshot,
121
+ progress,
122
+ });
123
+ if (!shouldRun) {
124
+ stepResults[stepIndex] = { data: null, duration: 0 };
125
+ continue;
126
+ }
127
+ }
128
+ const stepStartTime = Date.now();
129
+ await this.beforeStep({
130
+ job,
131
+ step,
132
+ stepIndex,
133
+ result,
134
+ options: runOptions,
135
+ stepResults,
136
+ });
137
+ const stepContext = await container.createContext(step.dependencies);
138
+ const stepInput = step.input.decode(resultSnapshot);
139
+ await job.beforeEachHandler?.({
140
+ context: jobDependencyContext,
141
+ data: jobData,
142
+ input: decodedInput,
143
+ result: resultSnapshot,
144
+ progress,
145
+ step,
146
+ stepIndex,
147
+ });
148
+ const handlerReturn = await step.handler(stepContext, stepInput, jobData);
149
+ const produced = step.output.encode(handlerReturn ?? {});
150
+ const duration = Date.now() - stepStartTime;
151
+ stepResults[stepIndex] = { data: produced, duration };
152
+ Object.assign(result, produced);
153
+ await job.afterEachHandler?.({
154
+ context: jobDependencyContext,
155
+ data: jobData,
156
+ input: decodedInput,
157
+ result,
158
+ progress,
159
+ step,
160
+ stepIndex,
161
+ });
162
+ await this.afterStep({
163
+ job,
164
+ step,
165
+ stepIndex,
166
+ result,
167
+ stepResult: stepResults[stepIndex],
168
+ stepResults,
169
+ options: runOptions,
170
+ });
171
+ }
172
+ catch (error) {
173
+ const wrapped = new Error(`Error during step [${stepIndex}]`, {
174
+ cause: error,
175
+ });
176
+ this.logger.error(wrapped);
177
+ const allowRetry = await job.onErrorHandler?.({
178
+ context: jobDependencyContext,
179
+ data: jobData,
180
+ input: decodedInput,
181
+ result: result,
182
+ progress,
183
+ step,
184
+ stepIndex,
185
+ error,
186
+ });
187
+ if (allowRetry === false) {
188
+ throw new UnrecoverableError('Job failed (unrecoverable)');
189
+ }
190
+ throw wrapped;
191
+ }
192
+ }
193
+ const finalPayload = await job.returnHandler({
194
+ context: jobDependencyContext,
195
+ data: jobData,
196
+ input: decodedInput,
197
+ result,
198
+ progress,
199
+ });
200
+ return output.encode(finalPayload);
201
+ }
202
+ catch (e_1) {
203
+ env_1.error = e_1;
204
+ env_1.hasError = true;
205
+ }
206
+ finally {
207
+ const result_1 = __disposeResources(env_1);
208
+ if (result_1)
209
+ await result_1;
210
+ }
211
+ }
212
+ async beforeStep(params) {
213
+ this.logger.debug({
214
+ job: params.job.name,
215
+ step: params.step.label || params.stepIndex + 1,
216
+ stepIndex: params.stepIndex,
217
+ }, 'Executing job step');
218
+ }
219
+ async afterStep(params) {
220
+ this.logger.debug({
221
+ job: params.job.name,
222
+ step: params.step.label || params.stepIndex + 1,
223
+ stepIndex: params.stepIndex,
224
+ }, 'Completed job step');
225
+ }
226
+ }
227
+ export class ApplicationWorkerJobRunner extends JobRunner {
228
+ runtime;
229
+ constructor(runtime) {
230
+ super(runtime);
231
+ this.runtime = runtime;
232
+ }
233
+ async afterStep(params) {
234
+ await super.afterStep(params);
235
+ const { job, step, result, stepResult, stepResults, stepIndex, options: { queueJob, progress }, } = params;
236
+ const nextStepIndex = stepIndex + 1;
237
+ const totalSteps = job.steps.length;
238
+ const percentage = Math.round((nextStepIndex / totalSteps) * 100);
239
+ // Encode progress before persisting if schema is defined
240
+ const encodedProgress = job.progress
241
+ ? job.progress.encode(progress)
242
+ : progress;
243
+ await Promise.all([
244
+ queueJob.log(`Step ${step.label || nextStepIndex} completed in ${(stepResult.duration / 1000).toFixed(3)}s`),
245
+ queueJob.updateProgress({
246
+ stepIndex: nextStepIndex,
247
+ stepLabel: step.label,
248
+ result,
249
+ stepResults,
250
+ progress: encodedProgress,
251
+ percentage,
252
+ }),
253
+ ]);
254
+ }
255
+ }
256
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/runtime/jobs/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { MaybePromise } from '@nmtjs/common';
2
+ import type { Dependant, Dependencies, DependencyContext } from '@nmtjs/core';
3
+ import type { AnyObjectLikeType, ObjectType } from '@nmtjs/type/object';
4
+ import { t } from '@nmtjs/type';
5
+ import { kJobStepKey } from '../constants.ts';
6
+ export type AnyJobStep = JobStep<any, any, any, any, any>;
7
+ export type JobStepHandler<Deps extends Dependencies, Input extends AnyObjectLikeType, Output extends AnyObjectLikeType, Return, Data = any> = (context: DependencyContext<Deps>, input: t.infer.decode.output<Input>, data: Data) => MaybePromise<null extends Return ? t.infer.encode.input<Output> : Return>;
8
+ export interface JobStep<Input extends AnyObjectLikeType = AnyObjectLikeType, Output extends AnyObjectLikeType = AnyObjectLikeType, Deps extends Dependencies = Dependencies, Return = unknown, Data = any> extends Dependant {
9
+ [kJobStepKey]: any;
10
+ label?: string;
11
+ input: Input;
12
+ output: Output;
13
+ dependencies: Deps;
14
+ handler: JobStepHandler<Deps, Input, Output, Return, Data>;
15
+ }
16
+ export declare function createStep<Input extends AnyObjectLikeType, Output extends AnyObjectLikeType = ObjectType<{}>, Deps extends Dependencies = {}, Return = unknown, Data = any>(step: {
17
+ label?: string;
18
+ input: Input;
19
+ output?: Output;
20
+ dependencies?: Deps;
21
+ handler: JobStepHandler<Deps, Input, Output, Return, Data>;
22
+ }): JobStep<Input, Output, Deps, Return, Data>;
23
+ export declare function isJobStep(value: unknown): value is AnyJobStep;
@@ -0,0 +1,18 @@
1
+ import { tryCaptureStackTrace } from '@nmtjs/common';
2
+ import { t } from '@nmtjs/type';
3
+ import { kJobStepKey } from "../constants.js";
4
+ export function createStep(step) {
5
+ return Object.freeze({
6
+ [kJobStepKey]: true,
7
+ output: t.object({}),
8
+ dependencies: {},
9
+ stack: tryCaptureStackTrace(),
10
+ ...step,
11
+ });
12
+ }
13
+ export function isJobStep(value) {
14
+ return (typeof value === 'object' &&
15
+ value !== null &&
16
+ value[kJobStepKey] === true);
17
+ }
18
+ //# sourceMappingURL=step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step.js","sourceRoot":"","sources":["../../../src/runtime/jobs/step.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAA;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AA+B7C,MAAM,UAAU,UAAU,CAMxB,IAMD;IACC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,CAAC,WAAW,CAAC,EAAE,IAAI;QACnB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAsB;QACzC,YAAY,EAAE,EAAU;QACxB,KAAK,EAAE,oBAAoB,EAAE;QAC7B,GAAG,IAAI;KACR,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAoB,CAAC,WAAW,CAAC,KAAK,IAAI,CAC5C,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Queue } from 'bullmq';
2
+ export declare function createJobsUI(queues: Queue[]): import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>;
3
+ export type JobsUI = ReturnType<typeof createJobsUI>;
@@ -0,0 +1,17 @@
1
+ import { createServer } from 'node:http';
2
+ import { createBullBoard } from '@bull-board/api';
3
+ import { BullMQAdapter } from '@bull-board/api/bullMQAdapter';
4
+ import { H3Adapter } from '@bull-board/h3';
5
+ import { createApp, toNodeListener } from 'h3';
6
+ export function createJobsUI(queues) {
7
+ const app = createApp();
8
+ const serverAdapter = new H3Adapter();
9
+ createBullBoard({
10
+ queues: queues.map((q) => new BullMQAdapter(q, { readOnlyMode: true })),
11
+ serverAdapter,
12
+ });
13
+ const router = serverAdapter.registerHandlers();
14
+ app.use(router);
15
+ return createServer(toNodeListener(app));
16
+ }
17
+ //# sourceMappingURL=ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/runtime/jobs/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,IAAI,CAAA;AAE9C,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,MAAM,GAAG,GAAG,SAAS,EAAE,CAAA;IACvB,MAAM,aAAa,GAAG,IAAI,SAAS,EAAE,CAAA;IACrC,eAAe,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,aAAa;KACd,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAA;IAC/C,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACf,OAAO,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;AAC1C,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { Readable } from 'node:stream';
2
+ import type { TAnyEventContract, TAnySubscriptionContract } from '@nmtjs/contract';
3
+ import type { Container, Logger } from '@nmtjs/core';
4
+ import type { t } from '@nmtjs/type';
5
+ export type PubSubAdapterEvent = {
6
+ channel: string;
7
+ payload: any;
8
+ };
9
+ export interface PubSubAdapterType {
10
+ publish(channel: string, payload: any): Promise<boolean>;
11
+ subscribe(channel: string, signal?: AbortSignal): AsyncGenerator<PubSubAdapterEvent>;
12
+ initialize(): Promise<void>;
13
+ dispose(): Promise<void>;
14
+ }
15
+ export type PubSubChannel = {
16
+ stream: Readable;
17
+ subscription: TAnySubscriptionContract;
18
+ event: TAnyEventContract;
19
+ };
20
+ export type PubSubSubscribe = <Contract extends TAnySubscriptionContract, Events extends {
21
+ [K in keyof Contract['events']]?: true;
22
+ }>(subscription: Contract, events: Events, options: Contract['options'], signal?: AbortSignal) => Omit<Readable, typeof Symbol.asyncIterator> & {
23
+ [Symbol.asyncIterator]: () => AsyncIterator<{} extends Events ? {
24
+ [K in keyof Contract['events']]: {
25
+ event: K;
26
+ data: t.infer.decode.output<Contract['events'][K]['payload']>;
27
+ };
28
+ }[keyof Contract['events']] : {
29
+ [K in keyof Events]: K extends keyof Contract['events'] ? {
30
+ event: K;
31
+ data: t.infer.decode.output<Contract['events'][K]['payload']>;
32
+ } : never;
33
+ }[keyof Events]>;
34
+ };
35
+ export type PubSubPublish = <S extends TAnySubscriptionContract, E extends S['events'][keyof S['events']]>(event: E, options: S['options'], data: t.infer.decode.input<E['payload']>) => Promise<boolean>;
36
+ export type PubSubManagerOptions = {
37
+ logger: Logger;
38
+ container: Container;
39
+ };
40
+ export declare class PubSubManager {
41
+ protected readonly options: PubSubManagerOptions;
42
+ readonly subscriptions: Map<string, PubSubChannel>;
43
+ constructor(options: PubSubManagerOptions);
44
+ protected get adapter(): PubSubAdapterType;
45
+ subscribe: PubSubSubscribe;
46
+ publish: PubSubPublish;
47
+ private createEventStream;
48
+ }
@@ -0,0 +1,119 @@
1
+ import assert from 'node:assert';
2
+ import { createHash } from 'node:crypto';
3
+ import { PassThrough, Readable } from 'node:stream';
4
+ import { isAbortError } from '@nmtjs/common';
5
+ import { pubSubAdapter } from "../injectables.js";
6
+ export class PubSubManager {
7
+ options;
8
+ subscriptions = new Map();
9
+ constructor(options) {
10
+ this.options = options;
11
+ }
12
+ get adapter() {
13
+ return this.options.container.get(pubSubAdapter);
14
+ }
15
+ subscribe = (subscription, events, options, signal) => {
16
+ assert(this.adapter, 'PubSub adapter is not configured');
17
+ const eventKeys = Object.keys(events).length === 0
18
+ ? Object.keys(subscription.events)
19
+ : Object.keys(events);
20
+ const streams = Array(eventKeys.length);
21
+ for (const index in eventKeys) {
22
+ const event = subscription.events[eventKeys[index]];
23
+ const channel = getChannelName(event, options);
24
+ if (this.subscriptions.has(channel)) {
25
+ streams[index] = this.subscriptions.get(channel).stream;
26
+ }
27
+ else {
28
+ const iterable = this.adapter.subscribe(channel, signal);
29
+ const stream = this.createEventStream(iterable);
30
+ stream.on('close', () => this.subscriptions.delete(channel));
31
+ streams[index] = stream;
32
+ this.subscriptions.set(channel, { subscription, event, stream });
33
+ }
34
+ }
35
+ return mergeEventStreams(streams, signal);
36
+ };
37
+ publish = async (event, options, data) => {
38
+ assert(this.adapter, 'PubSub adapter is not configured');
39
+ const channel = getChannelName(event, options);
40
+ try {
41
+ const payload = event.payload.encode(data);
42
+ return await this.adapter.publish(channel, payload);
43
+ }
44
+ catch (error) {
45
+ this.options.logger.error(`Failed to publish event "${event.name}" on channel "${channel}": ${error.message}`);
46
+ return Promise.reject(error);
47
+ }
48
+ };
49
+ createEventStream(iterable) {
50
+ const { subscriptions } = this;
51
+ return new Readable({
52
+ objectMode: true,
53
+ read() {
54
+ iterable.next().then(({ value, done }) => {
55
+ if (done) {
56
+ this.push(null);
57
+ }
58
+ else {
59
+ const subscription = subscriptions.get(value.channel);
60
+ if (subscription) {
61
+ const { event } = subscription;
62
+ try {
63
+ const data = event.payload.decode(value.payload);
64
+ this.push({ event: event.name, data });
65
+ }
66
+ catch (error) {
67
+ this.destroy(error);
68
+ }
69
+ }
70
+ }
71
+ }, (error) => {
72
+ if (isAbortError(error)) {
73
+ this.push(null);
74
+ }
75
+ else {
76
+ this.destroy(error);
77
+ }
78
+ });
79
+ },
80
+ });
81
+ }
82
+ }
83
+ function concat(...args) {
84
+ return args.filter(Boolean).join('/');
85
+ }
86
+ function getChannelName(contract, options) {
87
+ const key = options ? serializerOptions(options) : '';
88
+ assert(contract.name, 'Event contract must have a name');
89
+ return concat(contract.name, key);
90
+ }
91
+ function serializerOptions(options) {
92
+ const hash = createHash('sha1');
93
+ const serialized = Object.entries(options)
94
+ .sort((a, b) => a[0].localeCompare(b[0]))
95
+ .map(([key, value]) => `${key}=${value}`)
96
+ .join(';');
97
+ hash.update(serialized);
98
+ return hash.digest('base64url');
99
+ }
100
+ function mergeEventStreams(streams, signal) {
101
+ const destination = new PassThrough({
102
+ signal,
103
+ objectMode: true,
104
+ readableObjectMode: true,
105
+ writableObjectMode: true,
106
+ });
107
+ let ended = 0;
108
+ for (const source of streams) {
109
+ source.pipe(destination, { end: false });
110
+ source.once('end', () => {
111
+ ended++;
112
+ if (ended === streams.length) {
113
+ destination.end();
114
+ }
115
+ });
116
+ }
117
+ return destination;
118
+ }
119
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/runtime/pubsub/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import EventEmitter from 'node:events';
2
+ import type { RuntimePlugin } from '../core/plugin.ts';
3
+ import type { Store } from '../types.ts';
4
+ import type { PubSubAdapterEvent, PubSubAdapterType } from './manager.ts';
5
+ export declare class RedisPubSubAdapter implements PubSubAdapterType {
6
+ protected readonly client: Store;
7
+ protected readonly events: EventEmitter<[never]>;
8
+ protected readonly listeners: Map<string, number>;
9
+ protected subscriberClient?: Store;
10
+ constructor(client: Store);
11
+ initialize(): Promise<void>;
12
+ dispose(): Promise<void>;
13
+ publish(channel: string, payload: any): Promise<boolean>;
14
+ subscribe(channel: string, signal?: AbortSignal): AsyncGenerator<PubSubAdapterEvent>;
15
+ }
16
+ export declare const RedisPubSubAdapterPlugin: () => RuntimePlugin;