@zdavison/nestjs-rpc-toolkit 0.0.14 → 0.0.18

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.
@@ -114,9 +114,9 @@ class RpcPackageInitializer {
114
114
  "generate:types": "ts-node scripts/generate-all-rpc-types.ts"
115
115
  },
116
116
  dependencies: {
117
- "@zdavison/nestjs-rpc-toolkit": "^0.0.14",
118
- "@nestjs/common": "^10.0.0",
119
- "@nestjs/microservices": "^10.0.0"
117
+ "@zdavison/nestjs-rpc-toolkit": "^0.0.18",
118
+ "@nestjs/common": "^11.0.0",
119
+ "@nestjs/microservices": "^11.0.0"
120
120
  },
121
121
  devDependencies: {
122
122
  "@types/node": "^24.5.1",
@@ -246,7 +246,7 @@ export interface ITypedMessageBus extends IMessageBus<AllRpcMethods> {}
246
246
 
247
247
  @Injectable()
248
248
  export class MessageBus extends BaseMessageBus<AllRpcMethods> implements ITypedMessageBus {
249
- constructor(client: ClientProxy) {
249
+ constructor(client: ClientProxy<any, any>) {
250
250
  super(client);
251
251
  }
252
252
  }
@@ -12,6 +12,7 @@ export declare class RpcTypesGenerator {
12
12
  private projects;
13
13
  private rpcMethods;
14
14
  private interfaces;
15
+ private enums;
15
16
  private config;
16
17
  private packageFiles;
17
18
  private expandedPackages;
@@ -27,6 +28,7 @@ export declare class RpcTypesGenerator {
27
28
  private extractInterface;
28
29
  private extractClassAsInterface;
29
30
  private extractTypeAlias;
31
+ private extractEnum;
30
32
  private isRelevantInterface;
31
33
  private getModuleForFile;
32
34
  private isInternalType;
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-types-generator.d.ts","sourceRoot":"","sources":["../../src/generators/rpc-types-generator.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,8FAA8F;IAC9F,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAoBD,qBAAa,iBAAiB;IAShB,OAAO,CAAC,OAAO;IAR3B,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,eAAe,CAAkC;gBAErC,OAAO,EAAE,gBAAgB;IAa7C,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,UAAU;IAOlB,QAAQ,IAAI,IAAI;IAqChB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,uBAAuB;IA4D/B,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,aAAa;IA6FrB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,uBAAuB;IA8F/B,OAAO,CAAC,qBAAqB;IAkL7B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,yBAAyB;IAsEjC,OAAO,CAAC,yBAAyB;CAyClC"}
1
+ {"version":3,"file":"rpc-types-generator.d.ts","sourceRoot":"","sources":["../../src/generators/rpc-types-generator.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,8FAA8F;IAC9F,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AA2BD,qBAAa,iBAAiB;IAUhB,OAAO,CAAC,OAAO;IAT3B,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,eAAe,CAAkC;gBAErC,OAAO,EAAE,gBAAgB;IAa7C,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,UAAU;IAOlB,QAAQ,IAAI,IAAI;IAqChB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,uBAAuB;IA4D/B,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,aAAa;IA6FrB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,iBAAiB;IA0CzB,OAAO,CAAC,uBAAuB;IAqI/B,OAAO,CAAC,qBAAqB;IAkL7B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,yBAAyB;IAsEjC,OAAO,CAAC,yBAAyB;CAyClC"}
@@ -44,6 +44,7 @@ class RpcTypesGenerator {
44
44
  this.projects = new Map();
45
45
  this.rpcMethods = [];
46
46
  this.interfaces = new Map();
47
+ this.enums = new Map();
47
48
  this.packageFiles = new Map();
48
49
  this.expandedPackages = [];
49
50
  this.fileToModuleMap = new Map();
@@ -192,6 +193,9 @@ class RpcTypesGenerator {
192
193
  else if (node.getKind() === ts_morph_1.ts.SyntaxKind.TypeAliasDeclaration) {
193
194
  this.extractTypeAlias(node, sourceFile);
194
195
  }
196
+ else if (node.getKind() === ts_morph_1.ts.SyntaxKind.EnumDeclaration) {
197
+ this.extractEnum(node, sourceFile);
198
+ }
195
199
  });
196
200
  }
197
201
  extractInterface(interfaceDeclaration, sourceFile) {
@@ -287,6 +291,28 @@ class RpcTypesGenerator {
287
291
  });
288
292
  }
289
293
  }
294
+ extractEnum(enumDeclaration, sourceFile) {
295
+ const name = enumDeclaration.getName();
296
+ let source = enumDeclaration.getText();
297
+ const moduleName = this.getModuleForFile(sourceFile.getFilePath());
298
+ const jsDoc = this.extractJsDoc(enumDeclaration);
299
+ // Ensure the source has export keyword
300
+ if (!source.startsWith('export ')) {
301
+ source = `export ${source}`;
302
+ }
303
+ // Prepend JSDoc if available
304
+ if (jsDoc) {
305
+ source = `${jsDoc}\n${source}`;
306
+ }
307
+ if (name && !this.isInternalType(name)) {
308
+ this.enums.set(name, {
309
+ name,
310
+ source,
311
+ module: moduleName,
312
+ jsDoc
313
+ });
314
+ }
315
+ }
290
316
  isRelevantInterface(name) {
291
317
  return !this.isInternalType(name);
292
318
  }
@@ -418,14 +444,22 @@ class RpcTypesGenerator {
418
444
  }
419
445
  interfacesByModule.get(interfaceDef.module).push(interfaceDef);
420
446
  });
447
+ // Group enums by module
448
+ const enumsByModule = new Map();
449
+ this.enums.forEach(enumDef => {
450
+ if (!enumsByModule.has(enumDef.module)) {
451
+ enumsByModule.set(enumDef.module, []);
452
+ }
453
+ enumsByModule.get(enumDef.module).push(enumDef);
454
+ });
421
455
  // Generate separate file for each module
422
456
  Object.entries(moduleGroups).forEach(([moduleName, methods]) => {
423
- this.generateModuleTypesFile(moduleName, methods, interfacesByModule.get(moduleName) || []);
457
+ this.generateModuleTypesFile(moduleName, methods, interfacesByModule.get(moduleName) || [], enumsByModule.get(moduleName) || []);
424
458
  });
425
459
  // Generate the main types file that composes all modules
426
460
  this.generateMainTypesFile(moduleGroups);
427
461
  }
428
- generateModuleTypesFile(moduleName, methods, interfaces) {
462
+ generateModuleTypesFile(moduleName, methods, interfaces, enums) {
429
463
  // Collect all type names referenced in RPC methods
430
464
  const referencedTypes = new Set();
431
465
  const genericTypeParamNames = new Set();
@@ -463,6 +497,18 @@ class RpcTypesGenerator {
463
497
  });
464
498
  }
465
499
  });
500
+ // Include enums that are actually referenced, from this module or others
501
+ const referencedEnums = [];
502
+ // First add enums from this module
503
+ enums.filter(enumDef => referencedTypes.has(enumDef.name)).forEach(enumDef => referencedEnums.push(enumDef));
504
+ // Then add enums from other modules that are referenced
505
+ this.enums.forEach(enumDef => {
506
+ if (referencedTypes.has(enumDef.name) &&
507
+ enumDef.module !== moduleName &&
508
+ !referencedEnums.some(existing => existing.name === enumDef.name)) {
509
+ referencedEnums.push(enumDef);
510
+ }
511
+ });
466
512
  // Include interfaces that are actually referenced, from this module or others
467
513
  const referencedInterfaces = [];
468
514
  // First add interfaces from this module
@@ -475,6 +521,23 @@ class RpcTypesGenerator {
475
521
  referencedInterfaces.push(interfaceDef);
476
522
  }
477
523
  });
524
+ // Scan referenced interfaces for additional type dependencies (like enums used in interface properties)
525
+ referencedInterfaces.forEach(interfaceDef => {
526
+ this.extractTypeNames(interfaceDef.source).forEach(typeName => {
527
+ if (!genericTypeParamNames.has(typeName)) {
528
+ referencedTypes.add(typeName);
529
+ }
530
+ });
531
+ });
532
+ // Re-check enums after scanning interfaces for dependencies
533
+ this.enums.forEach(enumDef => {
534
+ if (referencedTypes.has(enumDef.name) &&
535
+ !referencedEnums.some(existing => existing.name === enumDef.name)) {
536
+ referencedEnums.push(enumDef);
537
+ }
538
+ });
539
+ // Enums should come before interfaces that use them
540
+ const moduleEnums = referencedEnums.map(enumDef => enumDef.source).join('\n\n');
478
541
  const moduleInterfaces = referencedInterfaces.map(interfaceDef => interfaceDef.source).join('\n\n');
479
542
  // Generate domain interface for this module
480
543
  const domainMethodDefinitions = methods.map(method => {
@@ -490,13 +553,15 @@ class RpcTypesGenerator {
490
553
  export interface ${this.toCamelCase(moduleName)}Domain {
491
554
  ${domainMethodDefinitions}
492
555
  }`;
556
+ // Build file content with enums before interfaces
557
+ const typesSection = [moduleEnums, moduleInterfaces].filter(section => section.length > 0).join('\n\n');
493
558
  const fileContent = `// Auto-generated RPC types for ${moduleName.charAt(0).toUpperCase() + moduleName.slice(1)} module
494
559
  // Do not edit this file manually - it will be overwritten
495
560
  //
496
561
  // IMPORTANT: All types must be JSON-serializable for TCP transport when extracted to microservices
497
562
 
498
563
  // ${moduleName.charAt(0).toUpperCase() + moduleName.slice(1)} module types
499
- ${moduleInterfaces}
564
+ ${typesSection}
500
565
 
501
566
  ${domainInterface}
502
567
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-types-generator.js","sourceRoot":"","sources":["../../src/generators/rpc-types-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc-types-generator.js","sourceRoot":"","sources":["../../src/generators/rpc-types-generator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,8 @@ export * from './decorators/rpc-controller.decorator';
4
4
  export * from './rpc/typed-message-bus';
5
5
  export * from './rpc/rpc-registry';
6
6
  export * from './rpc/rpc-client';
7
+ export * from './rpc/rpc.module';
7
8
  export * from './transport';
8
9
  export * from './generators/rpc-types-generator';
10
+ export { Transport } from '@nestjs/microservices';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,kCAAkC,CAAC;AAGjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -14,12 +14,17 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Transport = void 0;
17
18
  __exportStar(require("./interfaces"), exports);
18
19
  __exportStar(require("./decorators/rpc-method.decorator"), exports);
19
20
  __exportStar(require("./decorators/rpc-controller.decorator"), exports);
20
21
  __exportStar(require("./rpc/typed-message-bus"), exports);
21
22
  __exportStar(require("./rpc/rpc-registry"), exports);
22
23
  __exportStar(require("./rpc/rpc-client"), exports);
24
+ __exportStar(require("./rpc/rpc.module"), exports);
23
25
  __exportStar(require("./transport"), exports);
24
26
  __exportStar(require("./generators/rpc-types-generator"), exports);
27
+ // Re-export Transport enum from @nestjs/microservices for convenience
28
+ var microservices_1 = require("@nestjs/microservices");
29
+ Object.defineProperty(exports, "Transport", { enumerable: true, get: function () { return microservices_1.Transport; } });
25
30
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,oEAAkD;AAClD,wEAAsD;AACtD,0DAAwC;AACxC,qDAAmC;AACnC,mDAAiC;AACjC,8CAA4B;AAC5B,mEAAiD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,oEAAkD;AAClD,wEAAsD;AACtD,0DAAwC;AACxC,qDAAmC;AACnC,mDAAiC;AACjC,mDAAiC;AACjC,8CAA4B;AAC5B,mEAAiD;AAEjD,sEAAsE;AACtE,uDAAkD;AAAzC,0GAAA,SAAS,OAAA"}
@@ -0,0 +1,84 @@
1
+ import { DynamicModule, Type } from '@nestjs/common';
2
+ import { ClientProxy, Transport } from '@nestjs/microservices';
3
+ export type RpcModuleOptions = {
4
+ /**
5
+ * The name of the client proxy provider
6
+ * @default 'MICROSERVICE_CLIENT'
7
+ */
8
+ clientName?: string;
9
+ /**
10
+ * The name of the RPC provider
11
+ * @default 'RPC'
12
+ */
13
+ rpcProviderName?: string;
14
+ } & ({
15
+ /**
16
+ * Custom ClientProxy class for in-process or custom transport
17
+ * @example InProcessClientProxy
18
+ */
19
+ clientProxyClass: Type<ClientProxy>;
20
+ } | {
21
+ /**
22
+ * Standard NestJS transport configuration
23
+ * @example { transport: Transport.TCP, options: { host: 'localhost', port: 3000 } }
24
+ */
25
+ transport: Transport;
26
+ options?: any;
27
+ });
28
+ /**
29
+ * Global RPC module that provides the RPC client to all modules.
30
+ *
31
+ * Architecture:
32
+ * - Import this module ONCE in your top-level application module using forRoot()
33
+ * - The top-level app provides ALL wiring (ClientProxy, RPC client)
34
+ * - Individual service modules just @Inject('RPC') and use it - NO additional wiring needed
35
+ * - Service modules remain clean and decoupled from transport concerns
36
+ *
37
+ * Usage with in-process transport:
38
+ * ```typescript
39
+ * @Module({
40
+ * imports: [
41
+ * RpcModule.forRoot({
42
+ * clientProxyClass: InProcessClientProxy,
43
+ * }),
44
+ * UserModule,
45
+ * AuthModule,
46
+ * ],
47
+ * })
48
+ * export class AppModule {}
49
+ * ```
50
+ *
51
+ * Usage with TCP transport:
52
+ * ```typescript
53
+ * @Module({
54
+ * imports: [
55
+ * RpcModule.forRoot({
56
+ * transport: Transport.TCP,
57
+ * options: {
58
+ * host: 'localhost',
59
+ * port: 3000,
60
+ * },
61
+ * }),
62
+ * UserModule,
63
+ * AuthModule,
64
+ * ],
65
+ * })
66
+ * export class AppModule {}
67
+ * ```
68
+ *
69
+ * Usage in service modules (same for all transports):
70
+ * ```typescript
71
+ * @Injectable()
72
+ * export class UserService {
73
+ * constructor(@Inject('RPC') private rpc: IRpcClient) {}
74
+ *
75
+ * async findAll() {
76
+ * return this.rpc.user.findAll();
77
+ * }
78
+ * }
79
+ * ```
80
+ */
81
+ export declare class RpcModule {
82
+ static forRoot(options: RpcModuleOptions): DynamicModule;
83
+ }
84
+ //# sourceMappingURL=rpc.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.module.d.ts","sourceRoot":"","sources":["../../src/rpc/rpc.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAiB,WAAW,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAG9E,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,CACA;IACE;;;OAGG;IACH,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;CACrC,GACD;IACE;;;OAGG;IACH,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf,CACJ,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,qBAEa,SAAS;IACpB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa;CA0CzD"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var RpcModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.RpcModule = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const microservices_1 = require("@nestjs/microservices");
13
+ const rpc_client_1 = require("./rpc-client");
14
+ /**
15
+ * Global RPC module that provides the RPC client to all modules.
16
+ *
17
+ * Architecture:
18
+ * - Import this module ONCE in your top-level application module using forRoot()
19
+ * - The top-level app provides ALL wiring (ClientProxy, RPC client)
20
+ * - Individual service modules just @Inject('RPC') and use it - NO additional wiring needed
21
+ * - Service modules remain clean and decoupled from transport concerns
22
+ *
23
+ * Usage with in-process transport:
24
+ * ```typescript
25
+ * @Module({
26
+ * imports: [
27
+ * RpcModule.forRoot({
28
+ * clientProxyClass: InProcessClientProxy,
29
+ * }),
30
+ * UserModule,
31
+ * AuthModule,
32
+ * ],
33
+ * })
34
+ * export class AppModule {}
35
+ * ```
36
+ *
37
+ * Usage with TCP transport:
38
+ * ```typescript
39
+ * @Module({
40
+ * imports: [
41
+ * RpcModule.forRoot({
42
+ * transport: Transport.TCP,
43
+ * options: {
44
+ * host: 'localhost',
45
+ * port: 3000,
46
+ * },
47
+ * }),
48
+ * UserModule,
49
+ * AuthModule,
50
+ * ],
51
+ * })
52
+ * export class AppModule {}
53
+ * ```
54
+ *
55
+ * Usage in service modules (same for all transports):
56
+ * ```typescript
57
+ * @Injectable()
58
+ * export class UserService {
59
+ * constructor(@Inject('RPC') private rpc: IRpcClient) {}
60
+ *
61
+ * async findAll() {
62
+ * return this.rpc.user.findAll();
63
+ * }
64
+ * }
65
+ * ```
66
+ */
67
+ let RpcModule = RpcModule_1 = class RpcModule {
68
+ static forRoot(options) {
69
+ const clientName = options.clientName || 'MICROSERVICE_CLIENT';
70
+ const rpcProviderName = options.rpcProviderName || 'RPC';
71
+ // Build client configuration based on whether it's a custom class or standard transport
72
+ const clientConfig = {
73
+ name: clientName,
74
+ };
75
+ if ('clientProxyClass' in options) {
76
+ // Custom client proxy class (e.g., InProcessClientProxy)
77
+ clientConfig.customClass = options.clientProxyClass;
78
+ }
79
+ else {
80
+ // Standard transport configuration (e.g., TCP, Redis, etc.)
81
+ clientConfig.transport = options.transport;
82
+ if (options.options) {
83
+ clientConfig.options = options.options;
84
+ }
85
+ }
86
+ return {
87
+ module: RpcModule_1,
88
+ imports: [
89
+ microservices_1.ClientsModule.register([clientConfig]),
90
+ ],
91
+ providers: [
92
+ {
93
+ provide: rpcProviderName,
94
+ useFactory: (client) => {
95
+ const rpcClient = new rpc_client_1.RpcClient(client);
96
+ return new Proxy({}, {
97
+ get: (_target, domain) => {
98
+ return rpcClient.createDomainProxy(domain);
99
+ }
100
+ });
101
+ },
102
+ inject: [clientName],
103
+ },
104
+ ],
105
+ exports: [rpcProviderName],
106
+ };
107
+ }
108
+ };
109
+ exports.RpcModule = RpcModule;
110
+ exports.RpcModule = RpcModule = RpcModule_1 = __decorate([
111
+ (0, common_1.Global)(),
112
+ (0, common_1.Module)({})
113
+ ], RpcModule);
114
+ //# sourceMappingURL=rpc.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.module.js","sourceRoot":"","sources":["../../src/rpc/rpc.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAqE;AACrE,yDAA8E;AAC9E,6CAAyC;AAgCzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAGI,IAAM,SAAS,iBAAf,MAAM,SAAS;IACpB,MAAM,CAAC,OAAO,CAAC,OAAyB;QACtC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,qBAAqB,CAAC;QAC/D,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC;QAEzD,wFAAwF;QACxF,MAAM,YAAY,GAAQ;YACxB,IAAI,EAAE,UAAU;SACjB,CAAC;QAEF,IAAI,kBAAkB,IAAI,OAAO,EAAE,CAAC;YAClC,yDAAyD;YACzD,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,4DAA4D;YAC5D,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAC3C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO;YACL,MAAM,EAAE,WAAS;YACjB,OAAO,EAAE;gBACP,6BAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC;aACvC;YACD,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,eAAe;oBACxB,UAAU,EAAE,CAAC,MAAmB,EAAE,EAAE;wBAClC,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,MAAM,CAAC,CAAC;wBACxC,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE;4BACnB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAc,EAAE,EAAE;gCAC/B,OAAO,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;4BAC7C,CAAC;yBACF,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,EAAE,CAAC,UAAU,CAAC;iBACrB;aACF;YACD,OAAO,EAAE,CAAC,eAAe,CAAC;SAC3B,CAAC;IACJ,CAAC;CACF,CAAA;AA3CY,8BAAS;oBAAT,SAAS;IAFrB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,SAAS,CA2CrB"}
@@ -1,7 +1,16 @@
1
1
  import { ClientProxy, ReadPacket, WritePacket } from '@nestjs/microservices';
2
- import { Observable } from 'rxjs';
2
+ import { Observable, ReplaySubject } from 'rxjs';
3
+ /**
4
+ * InProcessClientProxy for NestJS v11
5
+ * Includes status tracking, event handling, and unwrap functionality
6
+ */
3
7
  export declare class InProcessClientProxy extends ClientProxy {
4
8
  private transport;
9
+ protected _status$: ReplaySubject<string>;
10
+ constructor();
11
+ get status(): Observable<string>;
12
+ on<EventKey extends string = string>(_event: EventKey, _callback: (...args: any[]) => void): void;
13
+ unwrap<T>(): T;
5
14
  connect(): Promise<void>;
6
15
  close(): void;
7
16
  protected dispatchEvent(packet: ReadPacket): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"in-process.client.d.ts","sourceRoot":"","sources":["../../src/transport/in-process.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAe,MAAM,MAAM,CAAC;AAE/C,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,OAAO,CAAC,SAAS,CAA4C;IAEvD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,KAAK,IAAI,IAAI;cAIG,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAM/D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI;IAe1F,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;CAGnF"}
1
+ {"version":3,"file":"in-process.client.d.ts","sourceRoot":"","sources":["../../src/transport/in-process.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAe,aAAa,EAAwB,MAAM,MAAM,CAAC;AAEpF;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,OAAO,CAAC,SAAS,CAA4C;IAG7D,SAAS,CAAC,QAAQ,wBAAgC;;IASlD,IAAI,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,CAE/B;IAGD,EAAE,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EACjC,MAAM,EAAE,QAAQ,EAChB,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAClC,IAAI;IAMP,MAAM,CAAC,CAAC,KAAK,CAAC;IAKR,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B,KAAK,IAAI,IAAI;cAKG,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAM/D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI;IAe1F,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;CAGnF"}
@@ -4,15 +4,39 @@ exports.InProcessClientProxy = void 0;
4
4
  const microservices_1 = require("@nestjs/microservices");
5
5
  const in_process_transport_1 = require("./in-process.transport");
6
6
  const rxjs_1 = require("rxjs");
7
+ /**
8
+ * InProcessClientProxy for NestJS v11
9
+ * Includes status tracking, event handling, and unwrap functionality
10
+ */
7
11
  class InProcessClientProxy extends microservices_1.ClientProxy {
8
12
  constructor() {
9
- super(...arguments);
13
+ super();
10
14
  this.transport = in_process_transport_1.InProcessTransportStrategy.getInstance();
15
+ // Required for NestJS v11 compatibility
16
+ this._status$ = new rxjs_1.ReplaySubject(1);
17
+ // Initialize with 'connected' status for in-memory transport
18
+ this._status$.next('connected');
19
+ }
20
+ // Required for NestJS v11 compatibility
21
+ get status() {
22
+ return this._status$.asObservable().pipe((0, rxjs_1.distinctUntilChanged)());
23
+ }
24
+ // Required for NestJS v11 compatibility
25
+ on(_event, _callback) {
26
+ // In-process transport doesn't emit events, but we implement this for compatibility
27
+ // Subclasses can override if they need event handling
28
+ }
29
+ // Required for NestJS v11 compatibility
30
+ unwrap() {
31
+ // Return the transport strategy as the underlying "client"
32
+ return this.transport;
11
33
  }
12
34
  async connect() {
35
+ this._status$.next('connected');
13
36
  return Promise.resolve();
14
37
  }
15
38
  close() {
39
+ this._status$.next('disconnected');
16
40
  // Nothing to close for in-memory transport
17
41
  }
18
42
  async dispatchEvent(packet) {
@@ -1 +1 @@
1
- {"version":3,"file":"in-process.client.js","sourceRoot":"","sources":["../../src/transport/in-process.client.ts"],"names":[],"mappings":";;;AAAA,yDAA6E;AAC7E,iEAAoE;AACpE,+BAA+C;AAE/C,MAAa,oBAAqB,SAAQ,2BAAW;IAArD;;QACU,cAAS,GAAG,iDAA0B,CAAC,WAAW,EAAE,CAAC;IAkC/D,CAAC;IAhCC,KAAK,CAAC,OAAO;QACX,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,2CAA2C;IAC7C,CAAC;IAES,KAAK,CAAC,aAAa,CAAC,MAAkB;QAC9C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAiB,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAES,OAAO,CAAC,MAAkB,EAAE,QAAuC;QAC3E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAEjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAiB,EAAE,IAAI,CAAC;aAChD,IAAI,CAAC,MAAM,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEL,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,gDAAgD;IACnE,CAAC;IAED,gDAAgD;IAChD,IAAI,CAA8B,OAAY,EAAE,IAAY;QAC1D,OAAO,IAAA,YAAK,EAAC,GAAG,EAAE,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAiB,EAAE,IAAI,CAAC,CAAC,CAAwB,CAAC;IACvG,CAAC;CACF;AAnCD,oDAmCC"}
1
+ {"version":3,"file":"in-process.client.js","sourceRoot":"","sources":["../../src/transport/in-process.client.ts"],"names":[],"mappings":";;;AAAA,yDAA6E;AAC7E,iEAAoE;AACpE,+BAAoF;AAEpF;;;GAGG;AACH,MAAa,oBAAqB,SAAQ,2BAAW;IAMnD;QACE,KAAK,EAAE,CAAC;QANF,cAAS,GAAG,iDAA0B,CAAC,WAAW,EAAE,CAAC;QAE7D,wCAAwC;QAC9B,aAAQ,GAAG,IAAI,oBAAa,CAAS,CAAC,CAAC,CAAC;QAIhD,6DAA6D;QAC7D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,wCAAwC;IACxC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAA,2BAAoB,GAAE,CAAC,CAAC;IACnE,CAAC;IAED,wCAAwC;IACxC,EAAE,CACA,MAAgB,EAChB,SAAmC;QAEnC,oFAAoF;QACpF,sDAAsD;IACxD,CAAC;IAED,wCAAwC;IACxC,MAAM;QACJ,2DAA2D;QAC3D,OAAO,IAAI,CAAC,SAAyB,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,2CAA2C;IAC7C,CAAC;IAES,KAAK,CAAC,aAAa,CAAC,MAAkB;QAC9C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAiB,EAAE,IAAI,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAES,OAAO,CAAC,MAAkB,EAAE,QAAuC;QAC3E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAEjC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAiB,EAAE,IAAI,CAAC;aAChD,IAAI,CAAC,MAAM,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEL,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,gDAAgD;IACnE,CAAC;IAED,gDAAgD;IAChD,IAAI,CAA8B,OAAY,EAAE,IAAY;QAC1D,OAAO,IAAA,YAAK,EAAC,GAAG,EAAE,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAiB,EAAE,IAAI,CAAC,CAAC,CAAwB,CAAC;IACvG,CAAC;CACF;AAlED,oDAkEC"}
@@ -2,6 +2,8 @@ import { CustomTransportStrategy, Server, ReadPacket, BaseRpcContext } from '@ne
2
2
  export declare class InProcessTransportStrategy extends Server implements CustomTransportStrategy {
3
3
  private static instance;
4
4
  static getInstance(): InProcessTransportStrategy;
5
+ on<EventKey extends string = string, EventCallback extends Function = Function>(_event: EventKey, _callback: EventCallback): any;
6
+ unwrap<T>(): T;
5
7
  listen(callback: () => void): void;
6
8
  close(): void;
7
9
  handleMessage(pattern: string, packet: ReadPacket, context: BaseRpcContext): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"in-process.transport.d.ts","sourceRoot":"","sources":["../../src/transport/in-process.transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEpG,qBAAa,0BAA2B,SAAQ,MAAO,YAAW,uBAAuB;IACvF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IAEpD,MAAM,CAAC,WAAW,IAAI,0BAA0B;IAOhD,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIlC,KAAK,IAAI,IAAI;IAIP,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC;IAkBT,WAAW,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC;IAYT,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAO3D,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;CAK5C"}
1
+ {"version":3,"file":"in-process.transport.d.ts","sourceRoot":"","sources":["../../src/transport/in-process.transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEpG,qBAAa,0BAA2B,SAAQ,MAAO,YAAW,uBAAuB;IACvF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IAEpD,MAAM,CAAC,WAAW,IAAI,0BAA0B;IAQhD,EAAE,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAAE,aAAa,SAAS,QAAQ,GAAG,QAAQ,EAC5E,MAAM,EAAE,QAAQ,EAChB,SAAS,EAAE,aAAa,GACvB,GAAG;IAKN,MAAM,CAAC,CAAC,KAAK,CAAC;IAKd,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIlC,KAAK,IAAI,IAAI;IAIP,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC;IAkBT,WAAW,CACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC;IAYT,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAO3D,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;CAK5C"}
@@ -9,6 +9,15 @@ class InProcessTransportStrategy extends microservices_1.Server {
9
9
  }
10
10
  return InProcessTransportStrategy.instance;
11
11
  }
12
+ // Required for NestJS v11 compatibility
13
+ on(_event, _callback) {
14
+ // In-process transport doesn't emit events, but we implement this for compatibility
15
+ }
16
+ // Required for NestJS v11 compatibility
17
+ unwrap() {
18
+ // Return this instance as the underlying "server"
19
+ return this;
20
+ }
12
21
  listen(callback) {
13
22
  callback();
14
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"in-process.transport.js","sourceRoot":"","sources":["../../src/transport/in-process.transport.ts"],"names":[],"mappings":";;;AAAA,yDAAoG;AAEpG,MAAa,0BAA2B,SAAQ,sBAAM;IAGpD,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC;YACzC,0BAA0B,CAAC,QAAQ,GAAG,IAAI,0BAA0B,EAAE,CAAC;QACzE,CAAC;QACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,QAAoB;QACzB,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,KAAK;QACH,qBAAqB;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAAe,EACf,MAAkB,EAClB,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEnD,0FAA0F;QAC1F,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;YACnE,0DAA0D;YAC1D,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC3C,OAAO,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAe,EACf,MAAkB,EAClB,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAS;QAC1C,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,EAAE,CAAC,CAAC;QACvC,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,iCAAiC;IACjC,SAAS,CAAC,OAAe,EAAE,IAAS;QAClC,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AApED,gEAoEC"}
1
+ {"version":3,"file":"in-process.transport.js","sourceRoot":"","sources":["../../src/transport/in-process.transport.ts"],"names":[],"mappings":";;;AAAA,yDAAoG;AAEpG,MAAa,0BAA2B,SAAQ,sBAAM;IAGpD,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC;YACzC,0BAA0B,CAAC,QAAQ,GAAG,IAAI,0BAA0B,EAAE,CAAC;QACzE,CAAC;QACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC;IAC7C,CAAC;IAED,wCAAwC;IACxC,EAAE,CACA,MAAgB,EAChB,SAAwB;QAExB,oFAAoF;IACtF,CAAC;IAED,wCAAwC;IACxC,MAAM;QACJ,kDAAkD;QAClD,OAAO,IAAoB,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,QAAoB;QACzB,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,KAAK;QACH,qBAAqB;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAAe,EACf,MAAkB,EAClB,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEnD,0FAA0F;QAC1F,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;YACnE,0DAA0D;YAC1D,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC3C,OAAO,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAe,EACf,MAAkB,EAClB,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAS;QAC1C,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,EAAE,CAAC,CAAC;QACvC,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,iCAAiC;IACjC,SAAS,CAAC,OAAe,EAAE,IAAS;QAClC,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,8BAAc,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AAlFD,gEAkFC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zdavison/nestjs-rpc-toolkit",
3
- "version": "0.0.14",
3
+ "version": "0.0.18",
4
4
  "description": "Toolkit for type-safe RPC calls in NestJS monorepos.",
5
5
  "private": false,
6
6
  "main": "dist/index.js",
@@ -11,20 +11,15 @@
11
11
  "bin": {
12
12
  "bootstrap": "dist/bin/bootstrap.js"
13
13
  },
14
- "scripts": {
15
- "build": "tsc",
16
- "clean": "rm -rf dist",
17
- "dev": "tsc --watch"
18
- },
19
14
  "dependencies": {
20
- "@nestjs/common": "^10.0.0",
21
- "@nestjs/microservices": "^10.0.0",
22
15
  "glob": "^10.0.0",
23
16
  "rxjs": "^7.8.0",
24
17
  "ts-morph": "^20.0.0",
25
18
  "type-fest": "^5.0.1"
26
19
  },
27
20
  "devDependencies": {
21
+ "@nestjs/common": "^10.0.0",
22
+ "@nestjs/microservices": "^10.0.0",
28
23
  "@types/node": "^20.0.0",
29
24
  "typescript": "^5.0.0"
30
25
  },
@@ -38,5 +33,10 @@
38
33
  "@nestjs/common": "^9.0.0 || ^10.0.0",
39
34
  "@nestjs/microservices": "^9.0.0 || ^10.0.0",
40
35
  "reflect-metadata": "^0.1.13 || ^0.2.0"
36
+ },
37
+ "scripts": {
38
+ "build": "tsc",
39
+ "clean": "rm -rf dist",
40
+ "dev": "tsc --watch"
41
41
  }
42
42
  }
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env node
2
- declare class RpcPackageInitializer {
3
- private cwd;
4
- private rl;
5
- constructor();
6
- init(): Promise<void>;
7
- private promptForConfig;
8
- private question;
9
- private createRpcPackage;
10
- private ensureDirectory;
11
- private createPackageJson;
12
- private findRootTsConfig;
13
- private createTsConfig;
14
- private createRpcConfig;
15
- private createGenerateScript;
16
- private createSourceFiles;
17
- }
18
- export { RpcPackageInitializer };
19
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":";AAYA,cAAM,qBAAqB;IACzB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,EAAE,CAAqB;;IAUzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAeb,eAAe;YA8Bf,QAAQ;YAUR,gBAAgB;YAkBhB,eAAe;YAMf,iBAAiB;IA8B/B,OAAO,CAAC,gBAAgB;YAiCV,cAAc;YAiDd,eAAe;YAUf,oBAAoB;YAoBpB,iBAAiB;CAmChC;AAWD,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
package/dist/bin/init.js DELETED
@@ -1,275 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.RpcPackageInitializer = void 0;
38
- const path = __importStar(require("path"));
39
- const fs = __importStar(require("fs"));
40
- const readline = __importStar(require("readline"));
41
- class RpcPackageInitializer {
42
- constructor() {
43
- this.cwd = process.cwd();
44
- this.rl = readline.createInterface({
45
- input: process.stdin,
46
- output: process.stdout
47
- });
48
- }
49
- async init() {
50
- console.log('🚀 NestJS RPC Package Initializer\n');
51
- const config = await this.promptForConfig();
52
- await this.createRpcPackage(config);
53
- this.rl.close();
54
- console.log('\n✅ RPC package initialized successfully!');
55
- console.log('\nNext steps:');
56
- console.log('1. Update module packages in nestjs-rpc-toolkit.config.json (supports wildcards like "packages/modules/*")');
57
- console.log('2. Run "npm run generate:types" to generate RPC types');
58
- console.log('3. Build the package with "npm run build"');
59
- }
60
- async promptForConfig() {
61
- const packagePath = await this.question('Where would you like to create the RPC package? ', 'packages/lib-rpc');
62
- const projectName = path.basename(this.cwd);
63
- const defaultPackageName = `@${projectName}/rpc`;
64
- const packageName = await this.question('What should the package name be? ', defaultPackageName);
65
- const modulePackagesInput = await this.question('Enter module packages to scan for RPC methods (comma-separated, supports wildcards): ', 'packages/modules/*');
66
- const modulePackages = modulePackagesInput
67
- .split(',')
68
- .map(p => p.trim())
69
- .filter(p => p.length > 0);
70
- return {
71
- packagePath: packagePath.trim(),
72
- packageName: packageName.trim(),
73
- modulePackages
74
- };
75
- }
76
- async question(prompt, defaultValue) {
77
- const displayPrompt = defaultValue ? `${prompt}(${defaultValue}) ` : prompt;
78
- return new Promise((resolve) => {
79
- this.rl.question(displayPrompt, (answer) => {
80
- resolve(answer.trim() || defaultValue || '');
81
- });
82
- });
83
- }
84
- async createRpcPackage(config) {
85
- const fullPackagePath = path.resolve(this.cwd, config.packagePath);
86
- // Create directory structure
87
- await this.ensureDirectory(fullPackagePath);
88
- await this.ensureDirectory(path.join(fullPackagePath, 'src'));
89
- await this.ensureDirectory(path.join(fullPackagePath, 'scripts'));
90
- // Create files
91
- await this.createPackageJson(fullPackagePath, config);
92
- await this.createTsConfig(fullPackagePath);
93
- await this.createRpcConfig(fullPackagePath, config);
94
- await this.createGenerateScript(fullPackagePath);
95
- await this.createSourceFiles(fullPackagePath);
96
- console.log(`📦 Created RPC package at: ${config.packagePath}`);
97
- }
98
- async ensureDirectory(dirPath) {
99
- if (!fs.existsSync(dirPath)) {
100
- fs.mkdirSync(dirPath, { recursive: true });
101
- }
102
- }
103
- async createPackageJson(packagePath, config) {
104
- const packageJson = {
105
- name: config.packageName,
106
- version: "1.0.0",
107
- description: "Package containing shared types for RPC calls in this monorepo (generated by @zdavison/nestjs-rpc-toolkit)",
108
- main: "dist/index.js",
109
- types: "dist/index.d.ts",
110
- scripts: {
111
- build: "npm run generate:types && tsc",
112
- clean: "rm -rf dist",
113
- dev: "tsc --watch",
114
- "generate:types": "ts-node scripts/generate-all-rpc-types.ts"
115
- },
116
- dependencies: {
117
- "@zdavison/nestjs-rpc-toolkit": "^0.0.12",
118
- "@nestjs/common": "^10.0.0",
119
- "@nestjs/microservices": "^10.0.0"
120
- },
121
- devDependencies: {
122
- "@types/node": "^24.5.1",
123
- typescript: "^5.0.0",
124
- "ts-node": "^10.9.0",
125
- "ts-morph": "^20.0.0"
126
- }
127
- };
128
- const filePath = path.join(packagePath, 'package.json');
129
- fs.writeFileSync(filePath, JSON.stringify(packageJson, null, 2));
130
- }
131
- findRootTsConfig() {
132
- // Search for root tsconfig files starting from repo root
133
- const possiblePaths = [
134
- 'tsconfig.base.json',
135
- 'tsconfig.json'
136
- ];
137
- // Find git root or use current working directory
138
- let searchDir = this.cwd;
139
- try {
140
- // Try to find git root by looking for .git directory
141
- let current = this.cwd;
142
- while (current !== path.dirname(current)) {
143
- if (fs.existsSync(path.join(current, '.git'))) {
144
- searchDir = current;
145
- break;
146
- }
147
- current = path.dirname(current);
148
- }
149
- }
150
- catch {
151
- // If git root search fails, use current directory
152
- }
153
- for (const tsConfigPath of possiblePaths) {
154
- const fullPath = path.join(searchDir, tsConfigPath);
155
- if (fs.existsSync(fullPath)) {
156
- return fullPath;
157
- }
158
- }
159
- return null;
160
- }
161
- async createTsConfig(packagePath) {
162
- // Try to find a root tsconfig to extend from
163
- const rootTsConfig = this.findRootTsConfig();
164
- let tsConfig;
165
- if (rootTsConfig) {
166
- // Calculate relative path from package to root tsconfig
167
- const relativePath = path.relative(packagePath, rootTsConfig);
168
- tsConfig = {
169
- extends: relativePath,
170
- compilerOptions: {
171
- outDir: "./dist",
172
- declaration: true,
173
- declarationMap: true,
174
- sourceMap: true
175
- },
176
- include: ["src/**/*"],
177
- exclude: ["node_modules", "dist", "**/*.spec.ts", "**/*.test.ts"]
178
- };
179
- }
180
- else {
181
- // Create a standalone valid tsconfig
182
- tsConfig = {
183
- compilerOptions: {
184
- target: "ES2020",
185
- module: "commonjs",
186
- lib: ["ES2020"],
187
- outDir: "./dist",
188
- rootDir: "./src",
189
- strict: true,
190
- esModuleInterop: true,
191
- skipLibCheck: true,
192
- forceConsistentCasingInFileNames: true,
193
- declaration: true,
194
- declarationMap: true,
195
- sourceMap: true,
196
- experimentalDecorators: true,
197
- emitDecoratorMetadata: true
198
- },
199
- include: ["src/**/*"],
200
- exclude: ["node_modules", "dist", "**/*.spec.ts", "**/*.test.ts"]
201
- };
202
- }
203
- const filePath = path.join(packagePath, 'tsconfig.json');
204
- fs.writeFileSync(filePath, JSON.stringify(tsConfig, null, 2));
205
- }
206
- async createRpcConfig(packagePath, config) {
207
- const rpcConfig = {
208
- packages: config.modulePackages,
209
- outputDir: path.join(config.packagePath, 'src')
210
- };
211
- const filePath = path.join(packagePath, 'nestjs-rpc-toolkit.config.json');
212
- fs.writeFileSync(filePath, JSON.stringify(rpcConfig, null, 2));
213
- }
214
- async createGenerateScript(packagePath) {
215
- const script = `import { RpcTypesGenerator } from '@zdavison/nestjs-rpc-toolkit';
216
- import * as path from 'path';
217
-
218
- // Run the generator - we're in ${path.basename(packagePath)}/scripts
219
- const rootDir = path.join(__dirname, '../../../');
220
- const configPath = path.join(__dirname, '../nestjs-rpc-toolkit.config.json');
221
-
222
- const generator = new RpcTypesGenerator({
223
- rootDir,
224
- configPath,
225
- });
226
-
227
- generator.generate();
228
- `;
229
- const filePath = path.join(packagePath, 'scripts', 'generate-all-rpc-types.ts');
230
- fs.writeFileSync(filePath, script);
231
- }
232
- async createSourceFiles(packagePath) {
233
- // Create index.ts
234
- const indexContent = `export * from './all.rpc.gen';
235
- export * from './typed-message-bus';
236
- `;
237
- fs.writeFileSync(path.join(packagePath, 'src', 'index.ts'), indexContent);
238
- // Create typed-message-bus.ts
239
- const messageBusContent = `import { MessageBus as BaseMessageBus, IMessageBus } from '@zdavison/nestjs-rpc-toolkit';
240
- import { AllRpcMethods } from './all.rpc.gen';
241
- import { Injectable } from '@nestjs/common';
242
- import { ClientProxy } from '@nestjs/microservices';
243
-
244
- // Typed version of MessageBus with generated types
245
- export interface ITypedMessageBus extends IMessageBus<AllRpcMethods> {}
246
-
247
- @Injectable()
248
- export class MessageBus extends BaseMessageBus<AllRpcMethods> implements ITypedMessageBus {
249
- constructor(client: ClientProxy) {
250
- super(client);
251
- }
252
- }
253
- `;
254
- fs.writeFileSync(path.join(packagePath, 'src', 'typed-message-bus.ts'), messageBusContent);
255
- // Create placeholder all.rpc.gen.ts
256
- const placeholderContent = `// This file will be generated by the RPC types generator
257
- // Run 'npm run generate:types' to generate the actual types
258
-
259
- export interface AllRpcMethods {
260
- // Generated RPC method types will appear here
261
- }
262
- `;
263
- fs.writeFileSync(path.join(packagePath, 'src', 'all.rpc.gen.ts'), placeholderContent);
264
- }
265
- }
266
- exports.RpcPackageInitializer = RpcPackageInitializer;
267
- // Main execution
268
- if (require.main === module) {
269
- const initializer = new RpcPackageInitializer();
270
- initializer.init().catch((error) => {
271
- console.error('❌ Error initializing RPC package:', error);
272
- process.exit(1);
273
- });
274
- }
275
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":"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"}