nmtjs 0.15.0 → 0.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,34 +6,4 @@
6
6
  - binary data streaming and event subscriptions
7
7
  - contract-based API
8
8
  - end-to-end type safety
9
- - CPU-intensive task execution on separate workers
10
-
11
- ## Jobs E2E (Local Docker)
12
-
13
- Prerequisites:
14
- - Docker Desktop (or Docker Engine) with `docker compose` available
15
-
16
- No host ports are exposed in this setup. Tests run fully inside Docker containers.
17
- The test image is optimized for Docker layer caching with `pnpm fetch` + offline install.
18
-
19
- Run both backends with one command:
20
-
21
- ```bash
22
- pnpm run test:e2e:jobs:docker
23
- ```
24
-
25
- This command rebuilds the test image on each run and executes Redis + Valkey suites in one pass.
26
-
27
- Run Jobs E2E directly in Docker:
28
-
29
- ```bash
30
- docker compose -f docker-compose.jobs-e2e.yml run --rm --build test-jobs
31
- ```
32
-
33
- Manual Docker control:
34
-
35
- ```bash
36
- docker compose -f docker-compose.jobs-e2e.yml up -d --wait redis valkey
37
- docker compose -f docker-compose.jobs-e2e.yml run --rm --build test-jobs
38
- docker compose -f docker-compose.jobs-e2e.yml down -v --remove-orphans
39
- ```
9
+ - CPU-intensive task execution on separate workers
@@ -8,6 +8,7 @@ import type { AnyMiddleware } from './middlewares.ts';
8
8
  import type { AnyProcedure } from './procedure.ts';
9
9
  import type { AnyRouter } from './router.ts';
10
10
  export type ApiCallOptions<T extends AnyProcedure = AnyProcedure> = Readonly<{
11
+ callId: string;
11
12
  connection: GatewayConnection;
12
13
  path: AnyRouter[];
13
14
  procedure: T;
@@ -1,5 +1,5 @@
1
1
  import assert from 'node:assert';
2
- import { AsyncLocalStorage } from 'node:async_hooks';
2
+ import { randomUUID } from 'node:crypto';
3
3
  import { inspect } from 'node:util';
4
4
  import { withTimeout } from '@nmtjs/common';
5
5
  import { IsStreamProcedureContract } from '@nmtjs/contract';
@@ -32,10 +32,12 @@ export class ApplicationApi {
32
32
  throw NotFound();
33
33
  }
34
34
  async call(options) {
35
+ const callId = randomUUID();
35
36
  const { payload, container, signal, connection } = options;
36
37
  const { procedure, path } = this.find(options.procedure);
37
38
  options.metadata?.(procedure.metadata);
38
39
  const callOptions = Object.freeze({
40
+ callId,
39
41
  payload,
40
42
  container,
41
43
  signal,
@@ -45,7 +47,6 @@ export class ApplicationApi {
45
47
  });
46
48
  assert(container.scope === Scope.Call, 'Invalid container scope, expected to be Scope.Call');
47
49
  const timeout = procedure.contract.timeout ?? this.options.timeout;
48
- const isIterableProcedure = IsStreamProcedureContract(procedure.contract);
49
50
  const streamTimeoutSignal = procedure.streamTimeout
50
51
  ? AbortSignal.timeout(procedure.streamTimeout)
51
52
  : undefined;
@@ -54,15 +55,9 @@ export class ApplicationApi {
54
55
  }
55
56
  try {
56
57
  const handle = await this.createProcedureHandler(callOptions);
57
- const result = timeout
58
+ return timeout
58
59
  ? await this.withTimeout(handle(payload), timeout)
59
60
  : await handle(payload);
60
- if (isIterableProcedure) {
61
- return this.handleIterableOutput(procedure, result);
62
- }
63
- else {
64
- return this.handleOutput(procedure, result);
65
- }
66
61
  }
67
62
  catch (error) {
68
63
  const handled = await this.handleFilters(callOptions, error);
@@ -75,16 +70,18 @@ export class ApplicationApi {
75
70
  }
76
71
  }
77
72
  async createProcedureHandler(callOptions) {
78
- const { connection, procedure, container, path } = callOptions;
73
+ const { callId, connection, procedure, container, path } = callOptions;
79
74
  const callCtx = Object.freeze({
75
+ callId,
80
76
  connection,
81
77
  container,
82
78
  path,
83
79
  procedure,
84
80
  });
85
- const middlewares = await this.resolveMiddlewares(callOptions);
81
+ const isIterableProcedure = IsStreamProcedureContract(procedure.contract);
82
+ const middlewares = this.resolveMiddlewares(callOptions);
86
83
  const handleProcedure = async (payload) => {
87
- const middleware = middlewares.next().value;
84
+ const middleware = (await middlewares).next().value;
88
85
  if (middleware) {
89
86
  const next = (...args) => handleProcedure(args.length === 0 ? payload : args[0]);
90
87
  return middleware.handle(middleware.ctx, callCtx, next, payload);
@@ -95,7 +92,12 @@ export class ApplicationApi {
95
92
  const { dependencies, handler } = procedure;
96
93
  const context = await container.createContext(dependencies);
97
94
  const result = await handler(context, input);
98
- return result;
95
+ if (isIterableProcedure) {
96
+ return this.handleIterableOutput(procedure, result);
97
+ }
98
+ else {
99
+ return this.handleOutput(procedure, result);
100
+ }
99
101
  }
100
102
  };
101
103
  return handleProcedure;
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/api.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,18 @@
1
1
  import type { MaybePromise } from '@nmtjs/common';
2
2
  export declare const LoggingCallContextMiddleware: (cb?: (options: Readonly<{
3
+ callId: string;
3
4
  connection: import("@nmtjs/gateway").GatewayConnection;
4
5
  container: import("@nmtjs/core").Container;
5
6
  path: import("./router.ts").AnyRouter[];
6
7
  procedure: import("./procedure.ts").Procedure<import("@nmtjs/contract").TProcedureContract<import("@nmtjs/type").AnyCompatibleType<any, unknown>, import("@nmtjs/type").BaseTypeAny, true | undefined, string | undefined>, any>;
7
8
  }>, payload: unknown) => MaybePromise<object>) => import("./middlewares.ts").Middleware<{}>;
8
9
  export declare const LoggingCallMiddleware: (options?: {
10
+ level?: "debug" | "info" | "trace" | undefined;
11
+ errorLevel?: "error" | "fatal" | "warn" | undefined;
9
12
  includePayload?: boolean | undefined;
10
- includeResult?: boolean | undefined;
11
- }) => import("./middlewares.ts").Middleware<{}>;
13
+ includeResponse?: boolean | undefined;
14
+ }) => import("./middlewares.ts").Middleware<{
15
+ logger: import("@nmtjs/core").FactoryInjectable<import("pino").Logger, {
16
+ logger: import("@nmtjs/core").LazyInjectable<import("pino").Logger, import("@nmtjs/core").Scope.Global>;
17
+ }, import("@nmtjs/core").Scope.Global, import("pino").Logger>;
18
+ }>;
@@ -1,8 +1,10 @@
1
+ import { IsStreamProcedureContract } from '@nmtjs/contract';
1
2
  import { CoreInjectables, loggerLocalStorage } from '@nmtjs/core';
2
3
  import { createMiddleware } from './middlewares.js';
3
4
  const defaultContext = (options, payload) => {
4
5
  return {
5
- $connection: {
6
+ callId: options.callId,
7
+ connection: {
6
8
  id: options.connection.id,
7
9
  type: options.connection.type,
8
10
  transport: options.connection.transport,
@@ -19,28 +21,38 @@ export const LoggingCallContextMiddleware = (cb = defaultContext) => createMiddl
19
21
  });
20
22
  },
21
23
  });
22
- export const LoggingCallMiddleware = (options = {
23
- includePayload: true,
24
- includeResult: true,
25
- }) => createMiddleware({
26
- handle: async (_, call, next, payload) => {
27
- const logger = await call.container.resolve(CoreInjectables.logger('CallLogger'));
28
- logger.info(options.includePayload
29
- ? {
30
- $rpc: {
31
- procedure: call.procedure.contract.name,
32
- payload: payload,
33
- },
34
- }
35
- : { $rpc: { procedure: call.procedure.contract.name } }, 'RPC call');
24
+ export const LoggingCallMiddleware = (options = { level: 'info', includePayload: true, includeResponse: true }) => createMiddleware({
25
+ dependencies: { logger: CoreInjectables.logger('RPC') },
26
+ handle: async ({ logger }, call, next, payload) => {
27
+ const logFn = logger[options.level || 'info'].bind(logger);
28
+ const errorLogFn = logger[options.errorLevel || 'error'].bind(logger);
29
+ logFn(options.includePayload
30
+ ? { procedure: call.procedure.contract.name, payload: payload }
31
+ : { procedure: call.procedure.contract.name }, 'RPC call');
32
+ const isIterableProcedure = IsStreamProcedureContract(call.procedure.contract);
36
33
  try {
37
- const result = await next();
38
- if (options.includeResult)
39
- logger.info({ $rpc: { procedure: call.procedure.contract.name, result } }, 'RPC call result');
40
- return result;
34
+ const response = await next();
35
+ if (options.includeResponse) {
36
+ if (isIterableProcedure) {
37
+ logFn({ result: 'success', response: 'Stream' }, 'RPC response');
38
+ return async function* (...args) {
39
+ for await (const chunk of response(...args)) {
40
+ logFn({ callId: call.callId, chunk }, 'RPC stream chunk');
41
+ yield chunk;
42
+ }
43
+ };
44
+ }
45
+ else {
46
+ logFn({ result: 'success', response }, 'RPC response');
47
+ }
48
+ }
49
+ else {
50
+ logFn({ result: 'success' }, 'RPC response');
51
+ }
52
+ return response;
41
53
  }
42
54
  catch (error) {
43
- logger.error({ $rpc: { procedure: call.procedure.contract.name, error } }, 'RPC call error');
55
+ errorLogFn({ error }, 'RPC error');
44
56
  throw error;
45
57
  }
46
58
  },
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/logging.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAGjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEnD,MAAM,cAAc,GAAG,CAAC,OAAuB,EAAE,OAAgB,EAAE,EAAE,CAAC;IACpE,OAAO;QACL,WAAW,EAAE;YACX,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE;YACzB,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;YAC7B,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS;YACvC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ;YACrC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ;SACtC;KACF,CAAA;AAAA,CACF,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,EAAE,GAG0B,cAAc,EAC1C,EAAE,CACF,gBAAgB,CAAC;IACf,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;QACxC,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC9C,OAAO,kBAAkB,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC;YACxD,OAAO,IAAI,EAAE,CAAA;QAAA,CACd,CAAC,CAAA;IAAA,CACH;CACF,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,OAAO,GAA0D;IAC/D,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;CACpB,EACD,EAAE,CACF,gBAAgB,CAAC;IACf,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CACzC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CACrC,CAAA;QACD,MAAM,CAAC,IAAI,CACT,OAAO,CAAC,cAAc;YACpB,CAAC,CAAC;gBACE,IAAI,EAAE;oBACJ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI;oBACvC,OAAO,EAAE,OAAO;iBACjB;aACF;YACH,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EACzD,UAAU,CACX,CAAA;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAA;YAC3B,IAAI,OAAO,CAAC,aAAa;gBACvB,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAC7D,iBAAiB,CAClB,CAAA;YACH,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAC5D,gBAAgB,CACjB,CAAA;YACD,MAAM,KAAK,CAAA;QACb,CAAC;IAAA,CACF;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../../src/runtime/application/api/logging.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import type { AnyCompatibleType, BaseTypeAny } from '@nmtjs/type';
5
5
  import type { Procedure } from './procedure.ts';
6
6
  import type { AnyRouter } from './router.ts';
7
7
  export type ApiCallContext<Payload = unknown> = Readonly<{
8
+ callId: string;
8
9
  connection: GatewayConnection;
9
10
  container: Container;
10
11
  path: AnyRouter[];
@@ -1,7 +1,6 @@
1
- import type { Job, JobState, JobType, QueueEventsListener } from 'bullmq';
1
+ import type { Job, JobState, JobType, QueueEventsListener, RedisClient } from 'bullmq';
2
2
  import { Queue, QueueEvents, QueueEventsProducer } from 'bullmq';
3
3
  import type { ServerStoreConfig } from '../server/config.ts';
4
- import type { Store } from '../types.ts';
5
4
  import type { AnyJob, JobBackoffOptions } from './job.ts';
6
5
  import type { JobDefinitionInfo } from './types.ts';
7
6
  /**
@@ -91,7 +90,7 @@ type JobQueueEntry = {
91
90
  export declare class JobManager {
92
91
  protected storeConfig: ServerStoreConfig;
93
92
  protected jobs: AnyJob[];
94
- protected store: Store;
93
+ protected store: RedisClient;
95
94
  /**
96
95
  * Per-job dedicated queues. Each job has its own queue for granular control.
97
96
  */
@@ -73,7 +73,7 @@ export class JobManager {
73
73
  };
74
74
  }
75
75
  async initialize() {
76
- this.store = await createStoreClient(this.storeConfig);
76
+ this.store = (await createStoreClient(this.storeConfig));
77
77
  await this.store.connect();
78
78
  // Create a dedicated queue for each job
79
79
  for (const job of this.jobs) {
@@ -84,9 +84,7 @@ export class JobManager {
84
84
  connection: this.store,
85
85
  autorun: true,
86
86
  }),
87
- custom: new QueueEventsProducer(queueName, {
88
- connection: this.store,
89
- }),
87
+ custom: new QueueEventsProducer(queueName, { connection: this.store }),
90
88
  };
91
89
  this.jobQueues.set(job.options.name, entry);
92
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/runtime/jobs/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/runtime/jobs/manager.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import type { Injection } from '@nmtjs/core';
1
+ import type { Provision } from '@nmtjs/core';
2
2
  import type { LifecycleHooks } from './hooks.ts';
3
3
  export interface RuntimePlugin {
4
4
  name: string;
5
5
  hooks?: LifecycleHooks['_']['config'];
6
- injections?: Injection[];
6
+ injections?: Provision[];
7
7
  }
8
8
  export declare function createPlugin<T extends RuntimePlugin>(plugin: T): T;
@@ -19,7 +19,7 @@ export type PubSubChannel = {
19
19
  };
20
20
  export type PubSubSubscribe = <Contract extends TAnySubscriptionContract, Events extends {
21
21
  [K in keyof Contract['events']]?: true;
22
- }>(subscription: Contract, events: Events, options: Contract['options'], signal?: AbortSignal) => Omit<Readable, typeof Symbol.asyncIterator> & {
22
+ }>(subscription: Contract, events: Events, options: Contract['options'], signal?: AbortSignal) => Promise<Omit<Readable, typeof Symbol.asyncIterator> & {
23
23
  [Symbol.asyncIterator]: () => AsyncIterator<{} extends Events ? {
24
24
  [K in keyof Contract['events']]: {
25
25
  event: K;
@@ -31,7 +31,7 @@ export type PubSubSubscribe = <Contract extends TAnySubscriptionContract, Events
31
31
  data: t.infer.decode.output<Contract['events'][K]['payload']>;
32
32
  } : never;
33
33
  }[keyof Events]>;
34
- };
34
+ }>;
35
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
36
  export type PubSubManagerOptions = {
37
37
  logger: Logger;
@@ -41,7 +41,7 @@ export declare class PubSubManager {
41
41
  protected readonly options: PubSubManagerOptions;
42
42
  readonly subscriptions: Map<string, PubSubChannel>;
43
43
  constructor(options: PubSubManagerOptions);
44
- protected get adapter(): PubSubAdapterType;
44
+ protected get adapter(): Promise<PubSubAdapterType>;
45
45
  subscribe: PubSubSubscribe;
46
46
  publish: PubSubPublish;
47
47
  private createEventStream;
@@ -10,10 +10,10 @@ export class PubSubManager {
10
10
  this.options = options;
11
11
  }
12
12
  get adapter() {
13
- return this.options.container.get(pubSubAdapter);
13
+ return this.options.container.resolve(pubSubAdapter);
14
14
  }
15
- subscribe = (subscription, events, options, signal) => {
16
- assert(this.adapter, 'PubSub adapter is not configured');
15
+ subscribe = async (subscription, events, options, signal) => {
16
+ const adapter = await this.adapter;
17
17
  const eventKeys = Object.keys(events).length === 0
18
18
  ? Object.keys(subscription.events)
19
19
  : Object.keys(events);
@@ -25,7 +25,7 @@ export class PubSubManager {
25
25
  streams[index] = this.subscriptions.get(channel).stream;
26
26
  }
27
27
  else {
28
- const iterable = this.adapter.subscribe(channel, signal);
28
+ const iterable = adapter.subscribe(channel, signal);
29
29
  const stream = this.createEventStream(iterable);
30
30
  stream.on('close', () => this.subscriptions.delete(channel));
31
31
  streams[index] = stream;
@@ -35,11 +35,11 @@ export class PubSubManager {
35
35
  return mergeEventStreams(streams, signal);
36
36
  };
37
37
  publish = async (event, options, data) => {
38
- assert(this.adapter, 'PubSub adapter is not configured');
38
+ const adapter = await this.adapter;
39
39
  const channel = getChannelName(event, options);
40
40
  try {
41
41
  const payload = event.payload.encode(data);
42
- return await this.adapter.publish(channel, payload);
42
+ return await adapter.publish(channel, payload);
43
43
  }
44
44
  catch (error) {
45
45
  this.options.logger.error(`Failed to publish event "${event.name}" on channel "${channel}": ${error.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/runtime/pubsub/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/runtime/pubsub/manager.ts"],"names":[],"mappings":"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"}
@@ -77,20 +77,19 @@ export const RedisPubSubAdapterPlugin = () => {
77
77
  return {
78
78
  name: 'pubsub-redis-adapter',
79
79
  hooks: {
80
- 'lifecycle:afterInitialize': async (ctx) => {
81
- ctx.container.provide([
82
- provision(pubSubAdapter, createFactoryInjectable({
83
- dependencies: { config: storeConfig },
84
- factory: async ({ config }) => {
85
- const connection = await createStoreClient(config);
86
- const adapter = new RedisPubSubAdapter(connection);
87
- await adapter.initialize();
88
- return { adapter, connection };
89
- },
90
- pick: ({ adapter }) => adapter,
91
- dispose: ({ connection }) => connection.quit(),
92
- })),
93
- ]);
80
+ 'lifecycle:beforeInitialize': async (ctx) => {
81
+ const adapter = await ctx.container.resolve(createFactoryInjectable({
82
+ dependencies: { config: storeConfig },
83
+ factory: async ({ config }) => {
84
+ const connection = await createStoreClient(config);
85
+ const adapter = new RedisPubSubAdapter(connection);
86
+ await adapter.initialize();
87
+ return { adapter, connection };
88
+ },
89
+ pick: ({ adapter }) => adapter,
90
+ dispose: ({ connection }) => connection.quit(),
91
+ }));
92
+ ctx.container.provide(pubSubAdapter, adapter);
94
93
  },
95
94
  },
96
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/runtime/pubsub/redis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/runtime/pubsub/redis.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -33,39 +33,39 @@
33
33
  }
34
34
  },
35
35
  "dependencies": {
36
- "@bull-board/api": "6.16.4",
37
- "@bull-board/h3": "6.16.4",
38
- "@bull-board/ui": "6.16.4",
39
- "bullmq": "5.67.2",
40
- "citty": "0.2.0",
41
- "dedent": "^1.7.0",
42
- "dotenv": "^17.2.3",
36
+ "@bull-board/api": "6.20.6",
37
+ "@bull-board/h3": "6.20.6",
38
+ "@bull-board/ui": "6.20.6",
39
+ "bullmq": "5.71.0",
40
+ "citty": "0.2.1",
41
+ "dedent": "^1.7.2",
42
+ "dotenv": "^17.3.1",
43
43
  "ejs": "3.1.10",
44
44
  "h3": "1.15.9",
45
- "ioredis": "^5.9.2",
45
+ "ioredis": "^5.10.1",
46
46
  "iovalkey": "^0.3.3",
47
- "oxc-resolver": "11.17.0",
47
+ "oxc-resolver": "11.19.1",
48
48
  "prom-client": "git@github.com:siimon/prom-client.git#d4d2dcb366384833951e0116caca707b5f62aa5e",
49
- "vite": "8.0.0",
50
- "@nmtjs/common": "0.15.0",
51
- "@nmtjs/contract": "0.15.0",
52
- "@nmtjs/gateway": "0.15.0",
53
- "@nmtjs/core": "0.15.0",
54
- "@nmtjs/http-transport": "0.15.0",
55
- "@nmtjs/msgpack-format": "0.15.0",
56
- "@nmtjs/type": "0.15.0",
57
- "@nmtjs/protocol": "0.15.0",
58
- "@nmtjs/ws-transport": "0.15.0",
59
- "@nmtjs/json-format": "0.15.0"
49
+ "vite": "8.0.1",
50
+ "@nmtjs/contract": "0.15.2",
51
+ "@nmtjs/gateway": "0.15.2",
52
+ "@nmtjs/http-transport": "0.15.2",
53
+ "@nmtjs/common": "0.15.2",
54
+ "@nmtjs/json-format": "0.15.2",
55
+ "@nmtjs/msgpack-format": "0.15.2",
56
+ "@nmtjs/protocol": "0.15.2",
57
+ "@nmtjs/type": "0.15.2",
58
+ "@nmtjs/core": "0.15.2",
59
+ "@nmtjs/ws-transport": "0.15.2"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@nmtjs/proxy": "1.0.0-beta.4",
63
63
  "pino": "10.3.0",
64
- "zod": "^4.3.5"
64
+ "zod": "^4.0.0"
65
65
  },
66
66
  "peerDependencies": {
67
67
  "@nmtjs/proxy": "1.0.0-beta.4",
68
- "zod": "^4.3.5"
68
+ "zod": "^4.0.0"
69
69
  },
70
70
  "peerDependenciesMeta": {
71
71
  "@nmtjs/proxy": {
@@ -79,7 +79,7 @@
79
79
  "LICENSE.md",
80
80
  "README.md"
81
81
  ],
82
- "version": "0.15.0",
82
+ "version": "0.15.2",
83
83
  "scripts": {
84
84
  "clean-build": "rm -rf ./dist"
85
85
  }
@@ -1,5 +1,5 @@
1
1
  import assert from 'node:assert'
2
- import { AsyncLocalStorage } from 'node:async_hooks'
2
+ import { randomUUID } from 'node:crypto'
3
3
  import { inspect } from 'node:util'
4
4
 
5
5
  import type { Container, Logger } from '@nmtjs/core'
@@ -30,6 +30,7 @@ import { kDefaultProcedure } from './constants.ts'
30
30
  registerDefaultLocale()
31
31
 
32
32
  export type ApiCallOptions<T extends AnyProcedure = AnyProcedure> = Readonly<{
33
+ callId: string
33
34
  connection: GatewayConnection
34
35
  path: AnyRouter[]
35
36
  procedure: T
@@ -73,13 +74,16 @@ export class ApplicationApi implements GatewayApi {
73
74
  }
74
75
 
75
76
  async call(options: GatewayApiCallOptions): Promise<GatewayApiCallResult> {
77
+ const callId = randomUUID()
78
+
76
79
  const { payload, container, signal, connection } = options
77
80
 
78
81
  const { procedure, path } = this.find(options.procedure)
79
82
 
80
83
  options.metadata?.(procedure.metadata)
81
84
 
82
- const callOptions = Object.freeze({
85
+ const callOptions: ApiCallOptions = Object.freeze({
86
+ callId,
83
87
  payload,
84
88
  container,
85
89
  signal,
@@ -94,7 +98,6 @@ export class ApplicationApi implements GatewayApi {
94
98
  )
95
99
 
96
100
  const timeout = procedure.contract.timeout ?? this.options.timeout
97
- const isIterableProcedure = IsStreamProcedureContract(procedure.contract)
98
101
  const streamTimeoutSignal = procedure.streamTimeout
99
102
  ? AbortSignal.timeout(procedure.streamTimeout)
100
103
  : undefined
@@ -105,14 +108,9 @@ export class ApplicationApi implements GatewayApi {
105
108
 
106
109
  try {
107
110
  const handle = await this.createProcedureHandler(callOptions)
108
- const result = timeout
111
+ return timeout
109
112
  ? await this.withTimeout(handle(payload), timeout)
110
113
  : await handle(payload)
111
- if (isIterableProcedure) {
112
- return this.handleIterableOutput(procedure, result)
113
- } else {
114
- return this.handleOutput(procedure, result)
115
- }
116
114
  } catch (error) {
117
115
  const handled = await this.handleFilters(callOptions, error)
118
116
  if (handled === error && error instanceof ProtocolError === false) {
@@ -128,19 +126,21 @@ export class ApplicationApi implements GatewayApi {
128
126
  }
129
127
 
130
128
  private async createProcedureHandler(callOptions: ApiCallOptions) {
131
- const { connection, procedure, container, path } = callOptions
129
+ const { callId, connection, procedure, container, path } = callOptions
132
130
 
133
131
  const callCtx: ApiCallContext = Object.freeze({
132
+ callId,
134
133
  connection,
135
134
  container,
136
135
  path,
137
136
  procedure,
138
137
  })
139
138
 
140
- const middlewares = await this.resolveMiddlewares(callOptions)
139
+ const isIterableProcedure = IsStreamProcedureContract(procedure.contract)
140
+ const middlewares = this.resolveMiddlewares(callOptions)
141
141
 
142
142
  const handleProcedure = async (payload: any) => {
143
- const middleware = middlewares.next().value
143
+ const middleware = (await middlewares).next().value
144
144
  if (middleware) {
145
145
  const next = (...args: any[]) =>
146
146
  handleProcedure(args.length === 0 ? payload : args[0])
@@ -151,7 +151,11 @@ export class ApplicationApi implements GatewayApi {
151
151
  const { dependencies, handler } = procedure
152
152
  const context = await container.createContext(dependencies)
153
153
  const result = await handler(context, input)
154
- return result
154
+ if (isIterableProcedure) {
155
+ return this.handleIterableOutput(procedure, result)
156
+ } else {
157
+ return this.handleOutput(procedure, result)
158
+ }
155
159
  }
156
160
  }
157
161
 
@@ -1,4 +1,5 @@
1
1
  import type { MaybePromise } from '@nmtjs/common'
2
+ import { IsStreamProcedureContract } from '@nmtjs/contract'
2
3
  import { CoreInjectables, loggerLocalStorage } from '@nmtjs/core'
3
4
 
4
5
  import type { ApiCallContext } from './types.ts'
@@ -6,7 +7,8 @@ import { createMiddleware } from './middlewares.ts'
6
7
 
7
8
  const defaultContext = (options: ApiCallContext, payload: unknown) => {
8
9
  return {
9
- $connection: {
10
+ callId: options.callId,
11
+ connection: {
10
12
  id: options.connection.id,
11
13
  type: options.connection.type,
12
14
  transport: options.connection.transport,
@@ -32,40 +34,50 @@ export const LoggingCallContextMiddleware = (
32
34
  })
33
35
 
34
36
  export const LoggingCallMiddleware = (
35
- options: { includePayload?: boolean; includeResult?: boolean } = {
36
- includePayload: true,
37
- includeResult: true,
38
- },
37
+ options: {
38
+ level?: 'info' | 'debug' | 'trace'
39
+ errorLevel?: 'warn' | 'error' | 'fatal'
40
+ includePayload?: boolean
41
+ includeResponse?: boolean
42
+ } = { level: 'info', includePayload: true, includeResponse: true },
39
43
  ) =>
40
44
  createMiddleware({
41
- handle: async (_, call, next, payload) => {
42
- const logger = await call.container.resolve(
43
- CoreInjectables.logger('CallLogger'),
44
- )
45
- logger.info(
45
+ dependencies: { logger: CoreInjectables.logger('RPC') },
46
+ handle: async ({ logger }, call, next, payload) => {
47
+ const logFn = logger[options.level || 'info'].bind(logger)
48
+ const errorLogFn = logger[options.errorLevel || 'error'].bind(logger)
49
+
50
+ logFn(
46
51
  options.includePayload
47
- ? {
48
- $rpc: {
49
- procedure: call.procedure.contract.name,
50
- payload: payload,
51
- },
52
- }
53
- : { $rpc: { procedure: call.procedure.contract.name } },
52
+ ? { procedure: call.procedure.contract.name, payload: payload }
53
+ : { procedure: call.procedure.contract.name },
54
54
  'RPC call',
55
55
  )
56
+
57
+ const isIterableProcedure = IsStreamProcedureContract(
58
+ call.procedure.contract,
59
+ )
60
+
56
61
  try {
57
- const result = await next()
58
- if (options.includeResult)
59
- logger.info(
60
- { $rpc: { procedure: call.procedure.contract.name, result } },
61
- 'RPC call result',
62
- )
63
- return result
62
+ const response = await next()
63
+ if (options.includeResponse) {
64
+ if (isIterableProcedure) {
65
+ logFn({ result: 'success', response: 'Stream' }, 'RPC response')
66
+ return async function* (...args: any[]) {
67
+ for await (const chunk of response(...args)) {
68
+ logFn({ callId: call.callId, chunk }, 'RPC stream chunk')
69
+ yield chunk
70
+ }
71
+ }
72
+ } else {
73
+ logFn({ result: 'success', response }, 'RPC response')
74
+ }
75
+ } else {
76
+ logFn({ result: 'success' }, 'RPC response')
77
+ }
78
+ return response
64
79
  } catch (error) {
65
- logger.error(
66
- { $rpc: { procedure: call.procedure.contract.name, error } },
67
- 'RPC call error',
68
- )
80
+ errorLogFn({ error }, 'RPC error')
69
81
  throw error
70
82
  }
71
83
  },
@@ -7,6 +7,7 @@ import type { Procedure } from './procedure.ts'
7
7
  import type { AnyRouter } from './router.ts'
8
8
 
9
9
  export type ApiCallContext<Payload = unknown> = Readonly<{
10
+ callId: string
10
11
  connection: GatewayConnection
11
12
  container: Container
12
13
  path: AnyRouter[]
@@ -16,7 +16,6 @@ import {
16
16
  } from 'bullmq'
17
17
 
18
18
  import type { ServerStoreConfig } from '../server/config.ts'
19
- import type { Store } from '../types.ts'
20
19
  import type { AnyJob, JobBackoffOptions } from './job.ts'
21
20
  import type { JobDefinitionInfo, JobProgressCheckpoint } from './types.ts'
22
21
  import { createStoreClient } from '../store/index.ts'
@@ -138,7 +137,7 @@ type JobQueueEntry = {
138
137
  * - Consider leader election for sync to reduce write contention
139
138
  */
140
139
  export class JobManager {
141
- protected store!: Store
140
+ protected store!: RedisClient
142
141
  /**
143
142
  * Per-job dedicated queues. Each job has its own queue for granular control.
144
143
  */
@@ -162,21 +161,22 @@ export class JobManager {
162
161
  }
163
162
 
164
163
  async initialize() {
165
- this.store = await createStoreClient(this.storeConfig)
164
+ this.store = (await createStoreClient(
165
+ this.storeConfig,
166
+ )) as unknown as RedisClient
167
+
166
168
  await this.store.connect()
167
169
 
168
170
  // Create a dedicated queue for each job
169
171
  for (const job of this.jobs) {
170
172
  const queueName = getJobQueueName(job)
171
173
  const entry: JobQueueEntry = {
172
- queue: new Queue(queueName, { connection: this.store as RedisClient }),
174
+ queue: new Queue(queueName, { connection: this.store }),
173
175
  events: new QueueEvents(queueName, {
174
- connection: this.store as RedisClient,
176
+ connection: this.store,
175
177
  autorun: true,
176
178
  }),
177
- custom: new QueueEventsProducer(queueName, {
178
- connection: this.store as RedisClient,
179
- }),
179
+ custom: new QueueEventsProducer(queueName, { connection: this.store }),
180
180
  }
181
181
  this.jobQueues.set(job.options.name, entry)
182
182
  }
@@ -1,11 +1,11 @@
1
- import type { Injection } from '@nmtjs/core'
1
+ import type { Provision } from '@nmtjs/core'
2
2
 
3
3
  import type { LifecycleHooks } from './hooks.ts'
4
4
 
5
5
  export interface RuntimePlugin {
6
6
  name: string
7
7
  hooks?: LifecycleHooks['_']['config']
8
- injections?: Injection[]
8
+ injections?: Provision[]
9
9
  }
10
10
 
11
11
  export function createPlugin<T extends RuntimePlugin>(plugin: T): T {
@@ -41,25 +41,27 @@ export type PubSubSubscribe = <
41
41
  events: Events,
42
42
  options: Contract['options'],
43
43
  signal?: AbortSignal,
44
- ) => Omit<Readable, typeof Symbol.asyncIterator> & {
45
- [Symbol.asyncIterator]: () => AsyncIterator<
46
- {} extends Events
47
- ? {
48
- [K in keyof Contract['events']]: {
49
- event: K
50
- data: t.infer.decode.output<Contract['events'][K]['payload']>
51
- }
52
- }[keyof Contract['events']]
53
- : {
54
- [K in keyof Events]: K extends keyof Contract['events']
55
- ? {
56
- event: K
57
- data: t.infer.decode.output<Contract['events'][K]['payload']>
58
- }
59
- : never
60
- }[keyof Events]
61
- >
62
- }
44
+ ) => Promise<
45
+ Omit<Readable, typeof Symbol.asyncIterator> & {
46
+ [Symbol.asyncIterator]: () => AsyncIterator<
47
+ {} extends Events
48
+ ? {
49
+ [K in keyof Contract['events']]: {
50
+ event: K
51
+ data: t.infer.decode.output<Contract['events'][K]['payload']>
52
+ }
53
+ }[keyof Contract['events']]
54
+ : {
55
+ [K in keyof Events]: K extends keyof Contract['events']
56
+ ? {
57
+ event: K
58
+ data: t.infer.decode.output<Contract['events'][K]['payload']>
59
+ }
60
+ : never
61
+ }[keyof Events]
62
+ >
63
+ }
64
+ >
63
65
 
64
66
  export type PubSubPublish = <
65
67
  S extends TAnySubscriptionContract,
@@ -78,11 +80,16 @@ export class PubSubManager {
78
80
  constructor(protected readonly options: PubSubManagerOptions) {}
79
81
 
80
82
  protected get adapter() {
81
- return this.options.container.get(pubSubAdapter)
83
+ return this.options.container.resolve(pubSubAdapter)
82
84
  }
83
85
 
84
- subscribe: PubSubSubscribe = (subscription, events, options, signal) => {
85
- assert(this.adapter, 'PubSub adapter is not configured')
86
+ subscribe: PubSubSubscribe = async (
87
+ subscription,
88
+ events,
89
+ options,
90
+ signal,
91
+ ) => {
92
+ const adapter = await this.adapter
86
93
 
87
94
  const eventKeys =
88
95
  Object.keys(events).length === 0
@@ -97,7 +104,7 @@ export class PubSubManager {
97
104
  if (this.subscriptions.has(channel)) {
98
105
  streams[index] = this.subscriptions.get(channel)!.stream
99
106
  } else {
100
- const iterable = this.adapter.subscribe(channel, signal)
107
+ const iterable = adapter.subscribe(channel, signal)
101
108
  const stream = this.createEventStream(iterable)
102
109
  stream.on('close', () => this.subscriptions.delete(channel))
103
110
  streams[index] = stream
@@ -109,13 +116,13 @@ export class PubSubManager {
109
116
  }
110
117
 
111
118
  publish: PubSubPublish = async (event, options, data) => {
112
- assert(this.adapter, 'PubSub adapter is not configured')
119
+ const adapter = await this.adapter
113
120
 
114
121
  const channel = getChannelName(event, options)
115
122
 
116
123
  try {
117
124
  const payload = event.payload.encode(data)
118
- return await this.adapter.publish(channel, payload)
125
+ return await adapter.publish(channel, payload)
119
126
  } catch (error: any) {
120
127
  this.options.logger.error(
121
128
  `Failed to publish event "${event.name}" on channel "${channel}": ${error.message}`,
@@ -85,23 +85,21 @@ export const RedisPubSubAdapterPlugin = (): RuntimePlugin => {
85
85
  return {
86
86
  name: 'pubsub-redis-adapter',
87
87
  hooks: {
88
- 'lifecycle:afterInitialize': async (ctx) => {
89
- ctx.container.provide([
90
- provision(
91
- pubSubAdapter,
92
- createFactoryInjectable({
93
- dependencies: { config: storeConfig },
94
- factory: async ({ config }) => {
95
- const connection = await createStoreClient(config)
96
- const adapter = new RedisPubSubAdapter(connection)
97
- await adapter.initialize()
98
- return { adapter, connection }
99
- },
100
- pick: ({ adapter }) => adapter,
101
- dispose: ({ connection }) => connection.quit(),
102
- }),
103
- ),
104
- ])
88
+ 'lifecycle:beforeInitialize': async (ctx) => {
89
+ const adapter = await ctx.container.resolve(
90
+ createFactoryInjectable({
91
+ dependencies: { config: storeConfig },
92
+ factory: async ({ config }) => {
93
+ const connection = await createStoreClient(config)
94
+ const adapter = new RedisPubSubAdapter(connection)
95
+ await adapter.initialize()
96
+ return { adapter, connection }
97
+ },
98
+ pick: ({ adapter }) => adapter,
99
+ dispose: ({ connection }) => connection.quit(),
100
+ }),
101
+ )
102
+ ctx.container.provide(pubSubAdapter, adapter)
105
103
  },
106
104
  },
107
105
  }
@@ -1,4 +1,4 @@
1
- import type { Injection } from '@nmtjs/core'
1
+ import type { Provision } from '@nmtjs/core'
2
2
  import { CoreInjectables, provision } from '@nmtjs/core'
3
3
 
4
4
  import type { WorkerType } from '../enums.ts'
@@ -34,7 +34,7 @@ export abstract class BaseWorkerRuntime extends BaseRuntime {
34
34
  }
35
35
 
36
36
  async initialize(): Promise<void> {
37
- const injections: Injection[] = [
37
+ const injections: Provision[] = [
38
38
  provision(CoreInjectables.logger, this.logger),
39
39
  provision(injectables.workerType, this.workerType),
40
40
  provision(