nmtjs 0.15.0 → 0.15.1

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,
@@ -75,8 +77,9 @@ export class ApplicationApi {
75
77
  }
76
78
  }
77
79
  async createProcedureHandler(callOptions) {
78
- const { connection, procedure, container, path } = callOptions;
80
+ const { callId, connection, procedure, container, path } = callOptions;
79
81
  const callCtx = Object.freeze({
82
+ callId,
80
83
  connection,
81
84
  container,
82
85
  path,
@@ -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
+ }>;
@@ -2,7 +2,8 @@ import { CoreInjectables, loggerLocalStorage } from '@nmtjs/core';
2
2
  import { createMiddleware } from './middlewares.js';
3
3
  const defaultContext = (options, payload) => {
4
4
  return {
5
- $connection: {
5
+ callId: options.callId,
6
+ connection: {
6
7
  id: options.connection.id,
7
8
  type: options.connection.type,
8
9
  transport: options.connection.transport,
@@ -19,28 +20,26 @@ export const LoggingCallContextMiddleware = (cb = defaultContext) => createMiddl
19
20
  });
20
21
  },
21
22
  });
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');
23
+ export const LoggingCallMiddleware = (options = { level: 'info', includePayload: true, includeResponse: true }) => createMiddleware({
24
+ dependencies: { logger: CoreInjectables.logger('RPC') },
25
+ handle: async ({ logger }, call, next, payload) => {
26
+ const logFn = logger[options.level || 'info'].bind(logger);
27
+ const errorLogFn = logger[options.errorLevel || 'error'].bind(logger);
28
+ logFn(options.includePayload
29
+ ? { procedure: call.procedure.contract.name, payload: payload }
30
+ : { procedure: call.procedure.contract.name }, 'RPC call');
36
31
  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;
32
+ const response = await next();
33
+ if (options.includeResponse) {
34
+ logFn({ result: 'success', response }, 'RPC response');
35
+ }
36
+ else {
37
+ logFn({ result: 'success' }, 'RPC response');
38
+ }
39
+ return response;
41
40
  }
42
41
  catch (error) {
43
- logger.error({ $rpc: { procedure: call.procedure.contract.name, error } }, 'RPC call error');
42
+ errorLogFn({ error }, 'RPC error');
44
43
  throw error;
45
44
  }
46
45
  },
@@ -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":"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,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE;YACV,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,GAKH,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAClE,EAAE,CACF,gBAAgB,CAAC;IACf,YAAY,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;IACvD,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAErE,KAAK,CACH,OAAO,CAAC,cAAc;YACpB,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;YAC/D,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,EAC/C,UAAU,CACX,CAAA;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAA;YAC7B,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAA;YACxD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,cAAc,CAAC,CAAA;YAC9C,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,CAAA;YAClC,MAAM,KAAK,CAAA;QACb,CAAC;IAAA,CACF;CACF,CAAC,CAAA"}
@@ -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":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AASxC,OAAO,EACL,KAAK,EACL,WAAW,EACX,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,QAAQ,CAAA;AAMf,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAU;IACnD,OAAO,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;AAAA,CACjC;AAkBD,MAAM,OAAO,cAAc;IACzB,QAAQ,CAA0B;IAElC,YAAY,OAAiC,EAAE;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IAAA,CACxB;IAED,IAAI,EAAE,GAAG;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAG,CAAA;IAAA,CACjC;IAED,IAAI,IAAI,GAAG;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAA;IAAA,CACtC;IAED,KAAK,CAAC,UAAU,GAAG;QACjB,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAAA,CAC3E;CACF;AAiDD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,UAAU;IAQT,WAAW;IACX,IAAI;IARN,KAAK,CAAQ;IACvB;;OAEG;IACO,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAA;IAEtD,YACY,WAA8B,EAC9B,IAAc,EACxB;2BAFU,WAAW;oBACX,IAAI;IACb,CAAC;IAEJ,IAAI,cAAc,GAAuB;QACvC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACxB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SAC/B,CAAA;IAAA,CACF;IAED,KAAK,CAAC,UAAU,GAAG;QACjB,IAAI,CAAC,KAAK,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACtD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;QAE1B,wCAAwC;QACxC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;YACtC,MAAM,KAAK,GAAkB;gBAC3B,KAAK,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAoB,EAAE,CAAC;gBACtE,MAAM,EAAE,IAAI,WAAW,CAAC,SAAS,EAAE;oBACjC,UAAU,EAAE,IAAI,CAAC,KAAoB;oBACrC,OAAO,EAAE,IAAI;iBACd,CAAC;gBACF,MAAM,EAAE,IAAI,mBAAmB,CAAC,SAAS,EAAE;oBACzC,UAAU,EAAE,IAAI,CAAC,KAAoB;iBACtC,CAAC;aACH,CAAA;YACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC7C,CAAC;QAED,kCAAkC;QAClC,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACrD,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE;YAC5B,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE;YAC7B,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE;SAC9B,CAAC,CACH,CAAA;IAAA,CACF;IAED,KAAK,CAAC,SAAS,GAAG;QAChB,MAAM,OAAO,CAAC,UAAU,CACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACrD,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;YACnB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;YACpB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;SACrB,CAAC,CACH,CAAA;QACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAAA,CAC7B;IAES,WAAW,CAAC,GAAW,EAAiB;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,KAAK,CAAA;IAAA,CACb;IAED,OAAO,CAAC,GAAW,EAAqB;QACtC,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;YACtB,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACxC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;gBACtC,QAAQ,EAAE,GAAG,CAAC,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC;aAClD,CAAC,CAAC;SACJ,CAAA;IAAA,CACF;IAED,KAAK,CAAC,IAAI,CACR,GAAM,EACN,EACE,KAAK,GAAG,EAAE,EACV,IAAI,GAAG,CAAC,EACR,MAAM,GAAG,EAAE,GACZ,GAA4D,EAAE,EAC/D;QACA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACvC,gEAAgE;QAChE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM;YAChC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,EAAE,CAAA;QAEN,kDAAkD;QAClD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,CAAA;QAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAA;QAC/C,IAAI,IAAI,GAAG,UAAU;YACnB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;QAExE,oEAAoE;QACpE,MAAM,WAAW,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;QACtC,MAAM,SAAS,GAAG,WAAW,GAAG,KAAK,CAAA;QAErC,6FAA6F;QAC7F,MAAM,YAAY,GAChB,YAAY,CAAC,MAAM,GAAG,CAAC;YACrB,CAAC,CAAC,YAAY;YACd,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAe,CAAA;QAE5C,uEAAuE;QACvE,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,MAAM,WAAW,GAAqB,EAAE,CAAA;QAExC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACvC,MAAM,SAAS,GAAG,UAAU,CAAA;YAC5B,MAAM,OAAO,GAAG,UAAU,GAAG,SAAS,CAAA;YAEtC,qDAAqD;YACrD,IAAI,OAAO,GAAG,WAAW,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;gBACnD,6CAA6C;gBAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,CAAA;gBACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;gBAE/D,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;oBAC3B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;gBAC/D,CAAC;YACH,CAAC;YAED,UAAU,IAAI,SAAS,CAAA;QACzB,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QAC7C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACrE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IAAA,CACnE;IAED,KAAK,CAAC,GAAG,CAAmB,GAAM,EAAE,EAAU,EAAE;QAC9C,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QACzB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAAA,CACnC;IAED,KAAK,CAAC,GAAG,CACP,GAAM,EACN,IAAqB,EACrB,EACE,mBAAmB,GAAG,KAAK,EAC3B,KAAK,GAAG,UAAU,EAAE,EACpB,QAAQ,EACR,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAC/B,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAC7B,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EACnC,KAAK,GACN,GAAuB,EAAE,EAC1B;QACA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAE/C,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CACb,6BAA6B,eAAe,CAAC,GAAG,CAAC,SAAS,CAC3D,CAAA;YACH,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAW,EAAE,IAAW,EAAE;YACpE,QAAQ;YACR,OAAO;YACP,KAAK;YACL,QAAQ;YACR,KAAK;YACL,gBAAgB,EAAE,MAAM;YACxB,YAAY,EAAE,MAAM;SACrB,CAAC,CAAA;QAEF,OAAO,IAAI,cAAc,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;IAAA,CACpD;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,EAAU,EAAE,OAAkC,EAAE;QACvE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;QAE9D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;QACtC,uEAAuE;QACvE,uEAAuE;QACvE,MAAM,gBAAgB,GAAG,OAAO,EAAE,UAAU,IAAI,KAAK,KAAK,WAAW,CAAA;QAErE,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;QAClC,CAAC;QAED,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;IAAA,CACtB;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,EAAU,EAAE;QACpC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;QAC9D,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;IAAA,CACvB;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,EAAU,EAAE;QACpC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;QAC9D,IAAI,OAAO,CAAC,UAAU;YAAE,OAAM;QAC9B,IAAI,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,CAAA;QAC/B,CAAC;QACD,IAAI,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,MAAM,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAA;QAC1D,CAAC;IAAA,CACF;IAED,kBAAkB,CAAC,GAAW,EAAE,EAAU,EAAE;QAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACxC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;YACpB,UAAU,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAA;QAAA,CAC1D,CAAA;QACD,MAAM,CAAC,EAAE,CAAmB,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;QACpD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;YAC3B,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,CAAmB,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;YAAA,CACtD;SACF,CAAC,CAAA;IAAA,CACH;IAED,QAAQ,CAAC,GAAW,EAAE;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAAA,CAC7B;IAES,KAAK,CAAC,OAAO,CAAC,OAAY,EAAsB;QACxD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;QAC1C,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;QACrB,MAAM,CAAC,OAAO,EAAE,KAAK,QAAQ,EAAE,gCAAgC,CAAC,CAAA;QAEhE,6CAA6C;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAEzC,0DAA0D;QAC1D,MAAM,QAAQ,GACZ,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;YACpC,OAAO,CAAC,QAAQ,KAAK,IAAI;YACzB,WAAW,IAAI,OAAO,CAAC,QAAQ;YAC7B,CAAC,CAAE,OAAO,CAAC,QAAkC;YAC7C,CAAC,CAAC,SAAS,CAAA;QAEf,OAAO;YACL,EAAE;YACF,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,SAAS;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,WAAW;YAC3B,MAAM;YACN,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ;YACR,QAAQ,EAAE,OAAO,CAAC,YAAY;YAC9B,SAAS,EAAE,OAAO,CAAC,WAAW;YAC9B,WAAW,EAAE,OAAO,CAAC,UAAU;YAC/B,KAAK,EAAE,OAAO,CAAC,YAAY;YAC3B,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAA;IAAA,CACF;IAED,uDAAuD;IAC7C,UAAU,CAAC,KAA2B,EAAa;QAC3D,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,SAAS,CAAC;YACf,KAAK,aAAa,CAAC;YACnB,KAAK,kBAAkB;gBACrB,OAAO,SAAS,CAAA;YAClB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAA;YACjB,KAAK,WAAW;gBACd,OAAO,WAAW,CAAA;YACpB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAA;YACjB,KAAK,SAAS;gBACZ,OAAO,SAAS,CAAA;YAClB;gBACE,OAAO,SAAS,CAAA;QACpB,CAAC;IAAA,CACF;IAED,kEAAkE;IACxD,mBAAmB,CAAC,MAAiB,EAAa;QAC1D,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,SAAS;gBACZ,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAA;YACvD,KAAK,QAAQ;gBACX,OAAO,CAAC,QAAQ,CAAC,CAAA;YACnB,KAAK,WAAW;gBACd,OAAO,CAAC,WAAW,CAAC,CAAA;YACtB,KAAK,QAAQ;gBACX,OAAO,CAAC,QAAQ,CAAC,CAAA;YACnB,KAAK,SAAS;gBACZ,OAAO,CAAC,SAAS,CAAC,CAAA;YACpB,KAAK,WAAW;gBACd,OAAO,EAAE,CAAA,CAAC,wCAAwC;YACpD;gBACE,OAAO,EAAE,CAAA;QACb,CAAC;IAAA,CACF;CACF"}
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/common": "0.15.1",
51
+ "@nmtjs/contract": "0.15.1",
52
+ "@nmtjs/core": "0.15.1",
53
+ "@nmtjs/gateway": "0.15.1",
54
+ "@nmtjs/json-format": "0.15.1",
55
+ "@nmtjs/http-transport": "0.15.1",
56
+ "@nmtjs/msgpack-format": "0.15.1",
57
+ "@nmtjs/type": "0.15.1",
58
+ "@nmtjs/ws-transport": "0.15.1",
59
+ "@nmtjs/protocol": "0.15.1"
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.1",
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,
@@ -128,9 +132,10 @@ export class ApplicationApi implements GatewayApi {
128
132
  }
129
133
 
130
134
  private async createProcedureHandler(callOptions: ApiCallOptions) {
131
- const { connection, procedure, container, path } = callOptions
135
+ const { callId, connection, procedure, container, path } = callOptions
132
136
 
133
137
  const callCtx: ApiCallContext = Object.freeze({
138
+ callId,
134
139
  connection,
135
140
  container,
136
141
  path,
@@ -6,7 +6,8 @@ import { createMiddleware } from './middlewares.ts'
6
6
 
7
7
  const defaultContext = (options: ApiCallContext, payload: unknown) => {
8
8
  return {
9
- $connection: {
9
+ callId: options.callId,
10
+ connection: {
10
11
  id: options.connection.id,
11
12
  type: options.connection.type,
12
13
  transport: options.connection.transport,
@@ -32,40 +33,36 @@ export const LoggingCallContextMiddleware = (
32
33
  })
33
34
 
34
35
  export const LoggingCallMiddleware = (
35
- options: { includePayload?: boolean; includeResult?: boolean } = {
36
- includePayload: true,
37
- includeResult: true,
38
- },
36
+ options: {
37
+ level?: 'info' | 'debug' | 'trace'
38
+ errorLevel?: 'warn' | 'error' | 'fatal'
39
+ includePayload?: boolean
40
+ includeResponse?: boolean
41
+ } = { level: 'info', includePayload: true, includeResponse: true },
39
42
  ) =>
40
43
  createMiddleware({
41
- handle: async (_, call, next, payload) => {
42
- const logger = await call.container.resolve(
43
- CoreInjectables.logger('CallLogger'),
44
- )
45
- logger.info(
44
+ dependencies: { logger: CoreInjectables.logger('RPC') },
45
+ handle: async ({ logger }, call, next, payload) => {
46
+ const logFn = logger[options.level || 'info'].bind(logger)
47
+ const errorLogFn = logger[options.errorLevel || 'error'].bind(logger)
48
+
49
+ logFn(
46
50
  options.includePayload
47
- ? {
48
- $rpc: {
49
- procedure: call.procedure.contract.name,
50
- payload: payload,
51
- },
52
- }
53
- : { $rpc: { procedure: call.procedure.contract.name } },
51
+ ? { procedure: call.procedure.contract.name, payload: payload }
52
+ : { procedure: call.procedure.contract.name },
54
53
  'RPC call',
55
54
  )
55
+
56
56
  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
57
+ const response = await next()
58
+ if (options.includeResponse) {
59
+ logFn({ result: 'success', response }, 'RPC response')
60
+ } else {
61
+ logFn({ result: 'success' }, 'RPC response')
62
+ }
63
+ return response
64
64
  } catch (error) {
65
- logger.error(
66
- { $rpc: { procedure: call.procedure.contract.name, error } },
67
- 'RPC call error',
68
- )
65
+ errorLogFn({ error }, 'RPC error')
69
66
  throw error
70
67
  }
71
68
  },
@@ -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(