@zdavison/nestjs-rpc-toolkit 0.0.11 → 0.0.12
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 +263 -0
- package/dist/bin/init.js +15 -2
- package/dist/bin/init.js.map +1 -1
- package/dist/decorators/rpc-controller.decorator.d.ts +32 -0
- package/dist/decorators/rpc-controller.decorator.d.ts.map +1 -1
- package/dist/decorators/rpc-controller.decorator.js +35 -0
- package/dist/decorators/rpc-controller.decorator.js.map +1 -1
- package/dist/decorators/rpc-method.decorator.d.ts +20 -0
- package/dist/decorators/rpc-method.decorator.d.ts.map +1 -1
- package/dist/decorators/rpc-method.decorator.js +26 -0
- package/dist/decorators/rpc-method.decorator.js.map +1 -1
- package/dist/generators/rpc-types-generator.d.ts +1 -1
- package/dist/generators/rpc-types-generator.d.ts.map +1 -1
- package/dist/generators/rpc-types-generator.js +74 -7
- package/dist/generators/rpc-types-generator.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/rpc/rpc-client.d.ts +3 -0
- package/dist/rpc/rpc-client.d.ts.map +1 -1
- package/dist/rpc/rpc-client.js +4 -1
- package/dist/rpc/rpc-client.js.map +1 -1
- package/dist/rpc/typed-message-bus.d.ts +11 -0
- package/dist/rpc/typed-message-bus.d.ts.map +1 -1
- package/dist/rpc/typed-message-bus.js +2 -1
- package/dist/rpc/typed-message-bus.js.map +1 -1
- package/dist/transport/{in-memory.client.d.ts → in-process.client.d.ts} +2 -2
- package/dist/transport/in-process.client.d.ts.map +1 -0
- package/dist/transport/{in-memory.client.js → in-process.client.js} +8 -7
- package/dist/transport/in-process.client.js.map +1 -0
- package/dist/transport/{in-memory.transport.d.ts → in-process.transport.d.ts} +3 -3
- package/dist/transport/in-process.transport.d.ts.map +1 -0
- package/dist/transport/{in-memory.transport.js → in-process.transport.js} +10 -7
- package/dist/transport/in-process.transport.js.map +1 -0
- package/dist/transport/index.d.ts +2 -2
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/index.js +2 -2
- package/dist/transport/index.js.map +1 -1
- package/dist/types/serializable.d.ts +21 -1
- package/dist/types/serializable.d.ts.map +1 -1
- package/dist/types/serializable.js +4 -0
- package/dist/types/serializable.js.map +1 -1
- package/package.json +1 -1
- package/dist/module-base/index.d.ts +0 -15
- package/dist/module-base/index.d.ts.map +0 -1
- package/dist/module-base/index.js +0 -38
- package/dist/module-base/index.js.map +0 -1
- package/dist/test-date-serialization.d.ts +0 -2
- package/dist/test-date-serialization.d.ts.map +0 -1
- package/dist/test-date-serialization.js +0 -12
- package/dist/test-date-serialization.js.map +0 -1
- package/dist/test-type-validation.d.ts +0 -2
- package/dist/test-type-validation.d.ts.map +0 -1
- package/dist/test-type-validation.js +0 -87
- package/dist/test-type-validation.js.map +0 -1
- package/dist/transport/in-memory.client.d.ts.map +0 -1
- package/dist/transport/in-memory.client.js.map +0 -1
- package/dist/transport/in-memory.transport.d.ts.map +0 -1
- package/dist/transport/in-memory.transport.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -47,8 +47,11 @@ class RpcTypesGenerator {
|
|
|
47
47
|
this.packageFiles = new Map();
|
|
48
48
|
this.expandedPackages = [];
|
|
49
49
|
this.fileToModuleMap = new Map();
|
|
50
|
+
// Load configuration
|
|
50
51
|
this.config = this.loadConfig();
|
|
52
|
+
// Expand wildcard patterns in package paths
|
|
51
53
|
this.expandedPackages = this.expandPackagePaths(this.config.packages);
|
|
54
|
+
// Initialize a separate project for each package
|
|
52
55
|
this.expandedPackages.forEach(packagePath => {
|
|
53
56
|
this.initializePackageProject(packagePath);
|
|
54
57
|
});
|
|
@@ -57,6 +60,7 @@ class RpcTypesGenerator {
|
|
|
57
60
|
const expandedPaths = [];
|
|
58
61
|
for (const packagePath of packagePaths) {
|
|
59
62
|
if (packagePath.includes('*')) {
|
|
63
|
+
// Use glob to expand wildcard patterns
|
|
60
64
|
const matches = glob_1.glob.sync(packagePath, {
|
|
61
65
|
cwd: this.options.rootDir
|
|
62
66
|
}).filter(match => {
|
|
@@ -66,9 +70,11 @@ class RpcTypesGenerator {
|
|
|
66
70
|
expandedPaths.push(...matches);
|
|
67
71
|
}
|
|
68
72
|
else {
|
|
73
|
+
// Regular path, add as-is
|
|
69
74
|
expandedPaths.push(packagePath);
|
|
70
75
|
}
|
|
71
76
|
}
|
|
77
|
+
// Filter out duplicates and ensure all paths exist
|
|
72
78
|
const uniquePaths = [...new Set(expandedPaths)];
|
|
73
79
|
return uniquePaths.filter(packagePath => {
|
|
74
80
|
const fullPath = path.join(this.options.rootDir, packagePath);
|
|
@@ -81,21 +87,26 @@ class RpcTypesGenerator {
|
|
|
81
87
|
}
|
|
82
88
|
initializePackageProject(packagePath) {
|
|
83
89
|
const fullPath = path.join(this.options.rootDir, packagePath);
|
|
90
|
+
// Find all TypeScript files in this package
|
|
84
91
|
const files = glob_1.glob.sync('src/**/*.ts', {
|
|
85
92
|
cwd: fullPath,
|
|
86
93
|
absolute: true
|
|
87
94
|
});
|
|
88
95
|
this.packageFiles.set(packagePath, files);
|
|
96
|
+
// Find the most appropriate tsconfig for this package
|
|
89
97
|
const tsConfigPath = this.findTsConfigForPackage(fullPath);
|
|
98
|
+
// Create a project for this package
|
|
90
99
|
const project = new ts_morph_1.Project({
|
|
91
100
|
tsConfigFilePath: tsConfigPath,
|
|
92
101
|
});
|
|
102
|
+
// Add source files to the project
|
|
93
103
|
files.forEach(file => {
|
|
94
104
|
project.addSourceFileAtPath(file);
|
|
95
105
|
});
|
|
96
106
|
this.projects.set(packagePath, project);
|
|
97
107
|
}
|
|
98
108
|
findTsConfigForPackage(packagePath) {
|
|
109
|
+
// Check for package-specific tsconfig files in order of preference
|
|
99
110
|
const possibleConfigs = [
|
|
100
111
|
path.join(packagePath, 'tsconfig.json'),
|
|
101
112
|
path.join(packagePath, 'tsconfig.build.json'),
|
|
@@ -105,6 +116,7 @@ class RpcTypesGenerator {
|
|
|
105
116
|
return configPath;
|
|
106
117
|
}
|
|
107
118
|
}
|
|
119
|
+
// Fall back to searching for root tsconfig files
|
|
108
120
|
const rootConfigs = [
|
|
109
121
|
path.join(this.options.rootDir, 'tsconfig.base.json'),
|
|
110
122
|
path.join(this.options.rootDir, 'tsconfig.json'),
|
|
@@ -114,6 +126,7 @@ class RpcTypesGenerator {
|
|
|
114
126
|
return configPath;
|
|
115
127
|
}
|
|
116
128
|
}
|
|
129
|
+
// If no tsconfig found, create a minimal one in memory
|
|
117
130
|
throw new Error(`No tsconfig found for package ${packagePath}. Please ensure the package has a tsconfig.json or the root has tsconfig.base.json/tsconfig.json`);
|
|
118
131
|
}
|
|
119
132
|
loadConfig() {
|
|
@@ -124,15 +137,18 @@ class RpcTypesGenerator {
|
|
|
124
137
|
}
|
|
125
138
|
generate() {
|
|
126
139
|
console.log(`🔍 Scanning ${this.projects.size} packages for RPC methods...`);
|
|
140
|
+
// First pass: scan for RPC methods to establish module mapping
|
|
127
141
|
this.projects.forEach((project, packagePath) => {
|
|
128
142
|
const sourceFiles = project.getSourceFiles();
|
|
129
143
|
const relevantFiles = sourceFiles.filter(sf => !sf.getFilePath().includes('node_modules') &&
|
|
130
144
|
!sf.getFilePath().includes('/dist/'));
|
|
131
145
|
console.log(` 📦 ${packagePath}: scanning ${relevantFiles.length} TypeScript files`);
|
|
146
|
+
// First, find all RPC methods to establish file-to-module mapping
|
|
132
147
|
relevantFiles.forEach(sourceFile => {
|
|
133
148
|
this.scanForRpcMethods(sourceFile);
|
|
134
149
|
});
|
|
135
150
|
});
|
|
151
|
+
// Second pass: extract interfaces/DTOs with correct module associations
|
|
136
152
|
this.projects.forEach((project) => {
|
|
137
153
|
const sourceFiles = project.getSourceFiles();
|
|
138
154
|
const relevantFiles = sourceFiles.filter(sf => !sf.getFilePath().includes('node_modules') &&
|
|
@@ -142,6 +158,7 @@ class RpcTypesGenerator {
|
|
|
142
158
|
this.extractTypesFromFile(sourceFile);
|
|
143
159
|
});
|
|
144
160
|
});
|
|
161
|
+
// Generate the aggregated types file
|
|
145
162
|
this.generateTypesFile();
|
|
146
163
|
}
|
|
147
164
|
scanForRpcMethods(sourceFile) {
|
|
@@ -150,9 +167,12 @@ class RpcTypesGenerator {
|
|
|
150
167
|
const method = node;
|
|
151
168
|
const rpcMethod = this.processMethod(method, sourceFile);
|
|
152
169
|
if (rpcMethod) {
|
|
170
|
+
// Map this file to the module determined by the RPC pattern
|
|
153
171
|
const module = rpcMethod.module;
|
|
172
|
+
// Map the entire directory to this module (since DTOs might be in separate files)
|
|
154
173
|
const dir = path.dirname(sourceFile.getFilePath());
|
|
155
174
|
this.fileToModuleMap.set(dir, module);
|
|
175
|
+
// Also map parent src directory for this module
|
|
156
176
|
const srcDir = dir.replace(/\/[^\/]+$/, '');
|
|
157
177
|
if (srcDir.endsWith('/src')) {
|
|
158
178
|
this.fileToModuleMap.set(srcDir, module);
|
|
@@ -187,17 +207,21 @@ class RpcTypesGenerator {
|
|
|
187
207
|
const name = classDeclaration.getName();
|
|
188
208
|
if (!name || !this.isRelevantInterface(name) || this.isInternalType(name))
|
|
189
209
|
return;
|
|
210
|
+
// Extract DTO classes as interfaces
|
|
190
211
|
const properties = classDeclaration.getProperties()
|
|
191
212
|
.filter((prop) => !prop.hasModifier(ts_morph_1.ts.SyntaxKind.PrivateKeyword))
|
|
192
213
|
.map((prop) => {
|
|
193
214
|
const propName = prop.getName();
|
|
215
|
+
// Get the type as declared in the source, not the resolved type
|
|
194
216
|
let propType = 'any';
|
|
195
217
|
const typeNode = prop.getTypeNode();
|
|
196
218
|
if (typeNode) {
|
|
197
219
|
propType = typeNode.getText();
|
|
198
220
|
}
|
|
199
221
|
else {
|
|
222
|
+
// Fallback: try to get a simple representation of the type
|
|
200
223
|
const fullType = prop.getType().getText();
|
|
224
|
+
// Clean up the type string - remove import paths and keep it simple
|
|
201
225
|
propType = this.cleanTypeString(fullType);
|
|
202
226
|
}
|
|
203
227
|
return ` ${propName}: ${propType};`;
|
|
@@ -216,10 +240,13 @@ class RpcTypesGenerator {
|
|
|
216
240
|
return !this.isInternalType(name);
|
|
217
241
|
}
|
|
218
242
|
getModuleForFile(filePath) {
|
|
243
|
+
// Check if this file's directory has been mapped to a module
|
|
219
244
|
const dir = path.dirname(filePath);
|
|
245
|
+
// First check exact directory match
|
|
220
246
|
if (this.fileToModuleMap.has(dir)) {
|
|
221
247
|
return this.fileToModuleMap.get(dir);
|
|
222
248
|
}
|
|
249
|
+
// Check parent directories (DTOs might be in subdirectories)
|
|
223
250
|
let currentDir = dir;
|
|
224
251
|
while (currentDir.includes('/src')) {
|
|
225
252
|
if (this.fileToModuleMap.has(currentDir)) {
|
|
@@ -230,12 +257,14 @@ class RpcTypesGenerator {
|
|
|
230
257
|
return 'unknown';
|
|
231
258
|
}
|
|
232
259
|
isInternalType(name) {
|
|
260
|
+
// Filter out generator internal types
|
|
233
261
|
return name === 'InterfaceDefinition' ||
|
|
234
262
|
name === 'RpcMethodInfo' ||
|
|
235
263
|
name === 'RpcGenerationConfig' ||
|
|
236
264
|
name === 'GeneratorOptions';
|
|
237
265
|
}
|
|
238
266
|
processMethod(method, sourceFile) {
|
|
267
|
+
// Check for @RpcMethod decorator
|
|
239
268
|
const rpcDecorator = method.getDecorators().find(decorator => {
|
|
240
269
|
const decoratorName = decorator.getName();
|
|
241
270
|
return decoratorName === 'RpcMethod';
|
|
@@ -243,6 +272,7 @@ class RpcTypesGenerator {
|
|
|
243
272
|
if (!rpcDecorator)
|
|
244
273
|
return null;
|
|
245
274
|
const methodName = method.getName() || 'unknown';
|
|
275
|
+
// Check if this method is in a class with @RpcController decorator
|
|
246
276
|
const classDeclaration = method.getParent();
|
|
247
277
|
let rpcControllerDecorator = null;
|
|
248
278
|
if (classDeclaration && 'getDecorators' in classDeclaration) {
|
|
@@ -250,9 +280,11 @@ class RpcTypesGenerator {
|
|
|
250
280
|
return decorator.getName() === 'RpcController';
|
|
251
281
|
});
|
|
252
282
|
}
|
|
283
|
+
// Only process methods from classes with @RpcController decorator
|
|
253
284
|
if (!rpcControllerDecorator) {
|
|
254
|
-
return null;
|
|
285
|
+
return null; // Skip methods not in @RpcController classes
|
|
255
286
|
}
|
|
287
|
+
// Generate module prefix like the @RpcController decorator does
|
|
256
288
|
let modulePrefix;
|
|
257
289
|
const args = rpcControllerDecorator.getArguments();
|
|
258
290
|
if (args.length > 0 && args[0]) {
|
|
@@ -261,24 +293,30 @@ class RpcTypesGenerator {
|
|
|
261
293
|
modulePrefix = arg.getLiteralValue();
|
|
262
294
|
}
|
|
263
295
|
else {
|
|
296
|
+
// Fallback to class name inference
|
|
264
297
|
const className = method.getParent()?.getSymbol()?.getName() || 'unknown';
|
|
265
298
|
modulePrefix = className.replace(/(Service|Application|Handler|Repository)$/, '').toLowerCase();
|
|
266
299
|
}
|
|
267
300
|
}
|
|
268
301
|
else {
|
|
302
|
+
// @RpcController() without arguments - infer from class name
|
|
269
303
|
const className = method.getParent()?.getSymbol()?.getName() || 'unknown';
|
|
270
304
|
modulePrefix = className.replace(/(Service|Application|Handler|Repository)$/, '').toLowerCase();
|
|
271
305
|
}
|
|
306
|
+
// Generate the pattern
|
|
272
307
|
const pattern = `${modulePrefix}.${methodName}`;
|
|
308
|
+
// All patterns should now be prefixed (module.method), so extract module
|
|
273
309
|
if (!pattern.includes('.')) {
|
|
274
310
|
console.warn(`⚠️ RPC pattern '${pattern}' should have module prefix. This might be from an older decorator.`);
|
|
275
311
|
return null;
|
|
276
312
|
}
|
|
277
313
|
const moduleName = pattern.split('.')[0];
|
|
314
|
+
// Extract parameter information
|
|
278
315
|
const paramTypes = method.getParameters().map(param => ({
|
|
279
316
|
name: param.getName(),
|
|
280
317
|
type: this.cleanTypeString(param.getType().getText()),
|
|
281
318
|
}));
|
|
319
|
+
// Extract return type
|
|
282
320
|
const returnType = this.cleanReturnType(method.getReturnType().getText());
|
|
283
321
|
const rpcMethod = {
|
|
284
322
|
pattern,
|
|
@@ -291,13 +329,8 @@ class RpcTypesGenerator {
|
|
|
291
329
|
this.rpcMethods.push(rpcMethod);
|
|
292
330
|
return rpcMethod;
|
|
293
331
|
}
|
|
294
|
-
extractPattern(arg) {
|
|
295
|
-
if (arg && typeof arg.getLiteralValue === 'function') {
|
|
296
|
-
return arg.getLiteralValue();
|
|
297
|
-
}
|
|
298
|
-
return null;
|
|
299
|
-
}
|
|
300
332
|
generateTypesFile() {
|
|
333
|
+
// Group methods by module
|
|
301
334
|
const moduleGroups = this.rpcMethods.reduce((groups, method) => {
|
|
302
335
|
if (!groups[method.module]) {
|
|
303
336
|
groups[method.module] = [];
|
|
@@ -305,6 +338,7 @@ class RpcTypesGenerator {
|
|
|
305
338
|
groups[method.module].push(method);
|
|
306
339
|
return groups;
|
|
307
340
|
}, {});
|
|
341
|
+
// Group interfaces by module
|
|
308
342
|
const interfacesByModule = new Map();
|
|
309
343
|
this.interfaces.forEach(interfaceDef => {
|
|
310
344
|
if (!interfacesByModule.has(interfaceDef.module)) {
|
|
@@ -312,25 +346,33 @@ class RpcTypesGenerator {
|
|
|
312
346
|
}
|
|
313
347
|
interfacesByModule.get(interfaceDef.module).push(interfaceDef);
|
|
314
348
|
});
|
|
349
|
+
// Generate separate file for each module
|
|
315
350
|
Object.entries(moduleGroups).forEach(([moduleName, methods]) => {
|
|
316
351
|
this.generateModuleTypesFile(moduleName, methods, interfacesByModule.get(moduleName) || []);
|
|
317
352
|
});
|
|
353
|
+
// Generate the main types file that composes all modules
|
|
318
354
|
this.generateMainTypesFile(moduleGroups);
|
|
319
355
|
}
|
|
320
356
|
generateModuleTypesFile(moduleName, methods, interfaces) {
|
|
357
|
+
// Collect all type names referenced in RPC methods
|
|
321
358
|
const referencedTypes = new Set();
|
|
322
359
|
methods.forEach(method => {
|
|
360
|
+
// Extract types from parameters
|
|
323
361
|
method.paramTypes.forEach(param => {
|
|
324
362
|
this.extractTypeNames(param.type).forEach(typeName => {
|
|
325
363
|
referencedTypes.add(typeName);
|
|
326
364
|
});
|
|
327
365
|
});
|
|
366
|
+
// Extract types from return type
|
|
328
367
|
this.extractTypeNames(method.returnType).forEach(typeName => {
|
|
329
368
|
referencedTypes.add(typeName);
|
|
330
369
|
});
|
|
331
370
|
});
|
|
371
|
+
// Include interfaces that are actually referenced, from this module or others
|
|
332
372
|
const referencedInterfaces = [];
|
|
373
|
+
// First add interfaces from this module
|
|
333
374
|
interfaces.filter(interfaceDef => referencedTypes.has(interfaceDef.name)).forEach(interfaceDef => referencedInterfaces.push(interfaceDef));
|
|
375
|
+
// Then add interfaces from other modules that are referenced
|
|
334
376
|
this.interfaces.forEach(interfaceDef => {
|
|
335
377
|
if (referencedTypes.has(interfaceDef.name) &&
|
|
336
378
|
interfaceDef.module !== moduleName &&
|
|
@@ -339,6 +381,7 @@ class RpcTypesGenerator {
|
|
|
339
381
|
}
|
|
340
382
|
});
|
|
341
383
|
const moduleInterfaces = referencedInterfaces.map(interfaceDef => interfaceDef.source).join('\n\n');
|
|
384
|
+
// Generate domain interface for this module
|
|
342
385
|
const domainMethodDefinitions = methods.map(method => {
|
|
343
386
|
const methodNameWithoutModule = method.methodName;
|
|
344
387
|
const paramsType = this.generateParamsType(method.paramTypes);
|
|
@@ -358,12 +401,15 @@ ${moduleInterfaces}
|
|
|
358
401
|
|
|
359
402
|
${domainInterface}
|
|
360
403
|
`;
|
|
404
|
+
// Write to configured output directory
|
|
361
405
|
const outputPath = path.join(this.options.rootDir, this.config.outputDir, `${moduleName}.rpc.gen.ts`);
|
|
362
406
|
fs.writeFileSync(outputPath, fileContent, 'utf8');
|
|
363
407
|
}
|
|
364
408
|
generateMainTypesFile(moduleGroups) {
|
|
365
409
|
const hasModules = Object.keys(moduleGroups).length > 0;
|
|
410
|
+
// Generate imports from module files - include domain interfaces and types
|
|
366
411
|
const moduleImports = Object.keys(moduleGroups).map(moduleName => {
|
|
412
|
+
// Collect all types referenced in this module's methods
|
|
367
413
|
const referencedTypes = new Set();
|
|
368
414
|
moduleGroups[moduleName].forEach(method => {
|
|
369
415
|
method.paramTypes.forEach(param => {
|
|
@@ -382,7 +428,9 @@ ${domainInterface}
|
|
|
382
428
|
}
|
|
383
429
|
return `import { ${imports.join(', ')} } from './${moduleName}.rpc.gen';`;
|
|
384
430
|
}).join('\n');
|
|
431
|
+
// Generate selective re-exports to avoid type conflicts
|
|
385
432
|
const moduleReExports = Object.keys(moduleGroups).map(moduleName => {
|
|
433
|
+
// Collect all types referenced in this module's methods
|
|
386
434
|
const referencedTypes = new Set();
|
|
387
435
|
moduleGroups[moduleName].forEach(method => {
|
|
388
436
|
method.paramTypes.forEach(param => {
|
|
@@ -401,7 +449,9 @@ ${domainInterface}
|
|
|
401
449
|
}
|
|
402
450
|
return `export { ${exports.join(', ')} } from './${moduleName}.rpc.gen';`;
|
|
403
451
|
}).join('\n');
|
|
452
|
+
// Generate common type re-exports from their original modules
|
|
404
453
|
const commonTypeExports = this.generateCommonTypeExports(moduleGroups);
|
|
454
|
+
// Generate RPC client interface using imported domain interfaces
|
|
405
455
|
const rpcClientInterface = hasModules ? `
|
|
406
456
|
// Domain-scoped RPC client interface
|
|
407
457
|
export interface IRpcClient {
|
|
@@ -430,7 +480,9 @@ ${rpcClientInterface}
|
|
|
430
480
|
// const user = await rpc.user.findOne({ id: 'user123' });
|
|
431
481
|
// const products = await rpc.product.findByOwner({ ownerId: 'user123' });
|
|
432
482
|
`;
|
|
483
|
+
// Write to configured output directory
|
|
433
484
|
const outputPath = path.join(this.options.rootDir, this.config.outputDir, 'all.rpc.gen.ts');
|
|
485
|
+
// Ensure directory exists
|
|
434
486
|
const outputDir = path.dirname(outputPath);
|
|
435
487
|
if (!fs.existsSync(outputDir)) {
|
|
436
488
|
fs.mkdirSync(outputDir, { recursive: true });
|
|
@@ -456,16 +508,20 @@ ${rpcClientInterface}
|
|
|
456
508
|
return `{ ${paramStrings.join('; ')} }`;
|
|
457
509
|
}
|
|
458
510
|
cleanReturnType(returnType) {
|
|
511
|
+
// Remove Promise wrapper if present
|
|
459
512
|
let cleanType = returnType;
|
|
460
513
|
const promiseMatch = returnType.match(/Promise<(.+)>/);
|
|
461
514
|
if (promiseMatch) {
|
|
462
515
|
cleanType = promiseMatch[1];
|
|
463
516
|
}
|
|
517
|
+
// Remove all import paths and use simple type names
|
|
464
518
|
cleanType = cleanType.replace(/import\("[^"]*"\)\./g, '');
|
|
465
519
|
return cleanType;
|
|
466
520
|
}
|
|
467
521
|
cleanTypeString(typeStr) {
|
|
522
|
+
// Remove import paths and keep only the type name
|
|
468
523
|
let cleanType = typeStr.replace(/import\("[^"]*"\)\./g, '');
|
|
524
|
+
// Map specific types to our inline types
|
|
469
525
|
cleanType = cleanType.replace(/CreateUserDto/g, 'CreateUserDto');
|
|
470
526
|
cleanType = cleanType.replace(/CreateProductDto/g, 'CreateProductDto');
|
|
471
527
|
cleanType = cleanType.replace(/UpdateUserDto/g, 'Partial<CreateUserDto>');
|
|
@@ -477,10 +533,13 @@ ${rpcClientInterface}
|
|
|
477
533
|
}
|
|
478
534
|
extractTypeNames(typeString) {
|
|
479
535
|
const typeNames = new Set();
|
|
536
|
+
// Match type names (letters, numbers, underscore, $)
|
|
537
|
+
// This regex will match identifiers that could be type names
|
|
480
538
|
const typeNameRegex = /\b[A-Z][a-zA-Z0-9_$]*\b/g;
|
|
481
539
|
const matches = typeString.match(typeNameRegex);
|
|
482
540
|
if (matches) {
|
|
483
541
|
matches.forEach(match => {
|
|
542
|
+
// Exclude built-in types and common generic types
|
|
484
543
|
if (!this.isBuiltInType(match)) {
|
|
485
544
|
typeNames.add(match);
|
|
486
545
|
}
|
|
@@ -493,17 +552,23 @@ ${rpcClientInterface}
|
|
|
493
552
|
'Array', 'Object', 'String', 'Number', 'Boolean',
|
|
494
553
|
'Promise', 'Date', 'RegExp', 'Error', 'Map', 'Set',
|
|
495
554
|
'Record', 'Partial', 'Required', 'Readonly', 'Pick', 'Omit',
|
|
555
|
+
// Node.js types that shouldn't be imported
|
|
496
556
|
'Buffer', 'Stream', 'EventEmitter', 'Socket',
|
|
557
|
+
// DOM types that shouldn't be imported
|
|
497
558
|
'HTMLElement', 'Document', 'Window', 'Event', 'FileList', 'File', 'Blob',
|
|
559
|
+
// TypeScript utility types
|
|
498
560
|
'Function', 'CallbackFunction'
|
|
499
561
|
];
|
|
500
562
|
return builtInTypes.includes(typeName);
|
|
501
563
|
}
|
|
502
564
|
generateCommonTypeExports(moduleGroups) {
|
|
565
|
+
// Find types that are used across modules and determine their "primary" module
|
|
503
566
|
const typeToModulesMap = new Map();
|
|
504
567
|
const typeToOriginalModule = new Map();
|
|
568
|
+
// Track which types are used by which modules
|
|
505
569
|
Object.entries(moduleGroups).forEach(([moduleName, methods]) => {
|
|
506
570
|
methods.forEach(method => {
|
|
571
|
+
// Extract types from parameters and return types
|
|
507
572
|
const allTypes = new Set();
|
|
508
573
|
method.paramTypes.forEach(param => {
|
|
509
574
|
this.extractTypeNames(param.type).forEach(typeName => allTypes.add(typeName));
|
|
@@ -517,11 +582,13 @@ ${rpcClientInterface}
|
|
|
517
582
|
});
|
|
518
583
|
});
|
|
519
584
|
});
|
|
585
|
+
// Find the original module for each type
|
|
520
586
|
this.interfaces.forEach(interfaceDef => {
|
|
521
587
|
if (!typeToOriginalModule.has(interfaceDef.name)) {
|
|
522
588
|
typeToOriginalModule.set(interfaceDef.name, interfaceDef.module);
|
|
523
589
|
}
|
|
524
590
|
});
|
|
591
|
+
// Generate exports for types that are used across multiple modules
|
|
525
592
|
const exports = [];
|
|
526
593
|
typeToModulesMap.forEach((modules, typeName) => {
|
|
527
594
|
if (modules.size > 1 && typeToOriginalModule.has(typeName)) {
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAsE;AACtE,2CAA6B;AAC7B,uCAAyB;AACzB,+BAA4B;AA4B5B,MAAa,iBAAiB;IAS5B,YAAoB,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QARrC,aAAQ,GAAyB,IAAI,GAAG,EAAE,CAAC;QAC3C,eAAU,GAAoB,EAAE,CAAC;QACjC,eAAU,GAAqC,IAAI,GAAG,EAAE,CAAC;QAEzD,iBAAY,GAA0B,IAAI,GAAG,EAAE,CAAC;QAChD,qBAAgB,GAAa,EAAE,CAAC;QAChC,oBAAe,GAAwB,IAAI,GAAG,EAAE,CAAC;QAGvD,qBAAqB;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEhC,4CAA4C;QAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtE,iDAAiD;QACjD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC1C,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,YAAsB;QAC/C,MAAM,aAAa,GAAa,EAAE,CAAC;QAEnC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,uCAAuC;gBACvC,MAAM,OAAO,GAAG,WAAI,CAAC,IAAI,CAAC,WAAW,EAAE;oBACrC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;iBAC1B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBACxD,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC7C,CAAC,CAAC,CAAC;gBACH,aAAa,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,0BAA0B;gBAC1B,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QAChD,OAAO,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,+BAA+B,WAAW,iBAAiB,QAAQ,GAAG,CAAC,CAAC;YACvF,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,wBAAwB,CAAC,WAAmB;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE9D,4CAA4C;QAC5C,MAAM,KAAK,GAAG,WAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrC,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAE1C,sDAAsD;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAE3D,oCAAoC;QACpC,MAAM,OAAO,GAAG,IAAI,kBAAO,CAAC;YAC1B,gBAAgB,EAAE,YAAY;SAC/B,CAAC,CAAC;QAEH,kCAAkC;QAClC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAEO,sBAAsB,CAAC,WAAmB;QAChD,mEAAmE;QACnE,MAAM,eAAe,GAAG;YACtB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC;SAC9C,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;YACzC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,MAAM,WAAW,GAAG;YAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC;SACjD,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,MAAM,IAAI,KAAK,CAAC,iCAAiC,WAAW,kGAAkG,CAAC,CAAC;IAClK,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,8BAA8B,CAAC,CAAC;QAE7E,+DAA+D;QAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE;YAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAC7C,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAC5C,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC1C,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACrC,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,SAAS,WAAW,cAAc,aAAa,CAAC,MAAM,mBAAmB,CAAC,CAAC;YAEvF,kEAAkE;YAClE,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBACjC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,wEAAwE;QACxE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAChC,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YAC7C,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAC5C,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC1C,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACpC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC1C,CAAC;YAEF,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBACjC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,iBAAiB,CAAC,UAAsB;QAC9C,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,aAAE,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;gBACvD,MAAM,MAAM,GAAG,IAAyB,CAAC;gBACzC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBACzD,IAAI,SAAS,EAAE,CAAC;oBACd,4DAA4D;oBAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;oBAChC,kFAAkF;oBAClF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;oBACnD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAEtC,gDAAgD;oBAChD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;oBAC5C,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC5B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,UAAsB;QACjD,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,aAAE,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;gBAC1D,IAAI,CAAC,gBAAgB,CAAC,IAAW,EAAE,UAAU,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,aAAE,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC7D,IAAI,CAAC,uBAAuB,CAAC,IAAW,EAAE,UAAU,CAAC,CAAC;YACxD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,oBAAyB,EAAE,UAAsB;QACxE,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAEnE,IAAI,IAAI,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE;gBACxB,IAAI;gBACJ,MAAM;gBACN,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,gBAAqB,EAAE,UAAsB;QAC3E,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAAE,OAAO;QAElF,oCAAoC;QACpC,MAAM,UAAU,GAAG,gBAAgB,CAAC,aAAa,EAAE;aAChD,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,aAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;aACtE,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,gEAAgE;YAChE,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,2DAA2D;gBAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC1C,oEAAoE;gBACpE,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,KAAK,QAAQ,KAAK,QAAQ,GAAG,CAAC;QACvC,CAAC,CAAC,CAAC;QAEL,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,oBAAoB,IAAI,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACzE,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;YAEnE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE;gBACxB,IAAI;gBACJ,MAAM;gBACN,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,IAAY;QACtC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEO,gBAAgB,CAAC,QAAgB;QACvC,6DAA6D;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnC,oCAAoC;QACpC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACxC,CAAC;QAED,6DAA6D;QAC7D,IAAI,UAAU,GAAG,GAAG,CAAC;QACrB,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;YAC/C,CAAC;YACD,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,cAAc,CAAC,IAAY;QACjC,sCAAsC;QACtC,OAAO,IAAI,KAAK,qBAAqB;YAC9B,IAAI,KAAK,eAAe;YACxB,IAAI,KAAK,qBAAqB;YAC9B,IAAI,KAAK,kBAAkB,CAAC;IACrC,CAAC;IAEO,aAAa,CAAC,MAAyB,EAAE,UAAsB;QACrE,iCAAiC;QACjC,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC3D,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;YAC1C,OAAO,aAAa,KAAK,WAAW,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAE/B,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC;QAEjD,mEAAmE;QACnE,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5C,IAAI,sBAAsB,GAAQ,IAAI,CAAC;QAEvC,IAAI,gBAAgB,IAAI,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAC5D,sBAAsB,GAAI,gBAAwB,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,SAAc,EAAE,EAAE;gBACzF,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,eAAe,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;QAED,kEAAkE;QAClE,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,CAAC,6CAA6C;QAC5D,CAAC;QAED,gEAAgE;QAChE,IAAI,YAAoB,CAAC;QACzB,MAAM,IAAI,GAAG,sBAAsB,CAAC,YAAY,EAAE,CAAC;QACnD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,OAAO,GAAG,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;gBAC9C,YAAY,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,mCAAmC;gBACnC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,SAAS,CAAC;gBAC1E,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAClG,CAAC;QACH,CAAC;aAAM,CAAC;YACN,6DAA6D;YAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,SAAS,CAAC;YAC1E,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAClG,CAAC;QAED,uBAAuB;QACvB,MAAM,OAAO,GAAG,GAAG,YAAY,IAAI,UAAU,EAAE,CAAC;QAEhD,yEAAyE;QACzE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,oBAAoB,OAAO,qEAAqE,CAAC,CAAC;YAC/G,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,gCAAgC;QAChC,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE;YACrB,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;SACtD,CAAC,CAAC,CAAC;QAEJ,sBAAsB;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAE1E,MAAM,SAAS,GAAG;YAChB,OAAO;YACP,UAAU;YACV,MAAM,EAAE,UAAU;YAClB,UAAU;YACV,UAAU;YACV,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;SACrC,CAAC;QAGF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,iBAAiB;QACvB,0BAA0B;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAC7D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAC7B,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,OAAO,MAAM,CAAC;QAChB,CAAC,EAAE,EAAqC,CAAC,CAAC;QAE1C,6BAA6B;QAC7B,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAiC,CAAC;QACpE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YACrC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjD,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE;YAC7D,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,yDAAyD;QACzD,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IAEO,uBAAuB,CAAC,UAAkB,EAAE,OAAwB,EAAE,UAAiC;QAC7G,mDAAmD;QACnD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAE1C,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACvB,gCAAgC;YAChC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAChC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBACnD,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,iCAAiC;YACjC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC1D,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,8EAA8E;QAC9E,MAAM,oBAAoB,GAA0B,EAAE,CAAC;QAEvD,wCAAwC;QACxC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAC/B,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CACvC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAEnE,6DAA6D;QAC7D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YACrC,IAAI,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;gBACtC,YAAY,CAAC,MAAM,KAAK,UAAU;gBAClC,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChF,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpG,4CAA4C;QAC5C,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACnD,MAAM,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC9D,OAAO,KAAK,uBAAuB,YAAY,UAAU,cAAc,MAAM,CAAC,UAAU,IAAI,CAAC;QAC/F,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,eAAe,GAAG,2BAA2B,UAAU;mBAC9C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;EAC7C,uBAAuB;EACvB,CAAC;QAEC,MAAM,WAAW,GAAG,mCAAmC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;;;;;KAK9G,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;EAC3D,gBAAgB;;EAEhB,eAAe;CAChB,CAAC;QAEE,uCAAuC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,UAAU,aAAa,CAAC,CAAC;QACtG,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAEO,qBAAqB,CAAC,YAA6C;QACzE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAExD,2EAA2E;QAC3E,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAC/D,wDAAwD;YACxD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;YAC1C,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACxC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAChC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;wBACnD,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAC1D,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC1D,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CACxD,CAAC;YAEF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;YAC7B,CAAC;YAED,OAAO,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,UAAU,YAAY,CAAC;QAC5E,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,wDAAwD;QACxD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACjE,wDAAwD;YACxD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;YAC1C,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACxC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAChC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;wBACnD,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAChC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAC1D,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAC1D,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CACxD,CAAC;YAEF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;YAC7B,CAAC;YAED,OAAO,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,UAAU,YAAY,CAAC;QAC5E,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,8DAA8D;QAC9D,MAAM,iBAAiB,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QAEvE,iEAAiE;QACjE,MAAM,kBAAkB,GAAG,UAAU,CAAC,CAAC,CAAC;;;EAG1C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAC3C,KAAK,UAAU,KAAK,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAC1D,CAAC,IAAI,CAAC,IAAI,CAAC;EACV,CAAC,CAAC,CAAC,EAAE,CAAC;QAEJ,MAAM,WAAW,GAAG;;;;;;;;EAQtB,aAAa;;;EAGb,eAAe;;;EAGf,iBAAiB;EACjB,kBAAkB;;;;;;;CAOnB,CAAC;QAEE,uCAAuC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAE5F,0BAA0B;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAElD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,0FAA0F,CAAC,CAAC;QAC1G,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,UAAU,CAAC,MAAM,mBAAmB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC;YAC9H,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAChE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE;gBACzD,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,KAAK,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,MAAwC;QACjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAErC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,KAAK,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1C,CAAC;IAEO,eAAe,CAAC,UAAkB;QACxC,oCAAoC;QACpC,IAAI,SAAS,GAAG,UAAU,CAAC;QAC3B,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACvD,IAAI,YAAY,EAAE,CAAC;YACjB,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QAED,oDAAoD;QACpD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;QAE1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,eAAe,CAAC,OAAe;QACrC,kDAAkD;QAClD,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;QAE5D,yCAAyC;QACzC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;QACjE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;QACvE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;QAC1E,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,CAAC;QAEhF,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,WAAW,CAAC,GAAW;QAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAEO,gBAAgB,CAAC,UAAkB;QACzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpC,qDAAqD;QACrD,6DAA6D;QAC7D,MAAM,aAAa,GAAG,0BAA0B,CAAC;QAEjD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtB,kDAAkD;gBAClD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/B,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,aAAa,CAAC,QAAgB;QACpC,MAAM,YAAY,GAAG;YACnB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS;YAChD,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK;YAClD,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;YAC3D,2CAA2C;YAC3C,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ;YAC5C,uCAAuC;YACvC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;YACxE,2BAA2B;YAC3B,UAAU,EAAE,kBAAkB;SAC/B,CAAC;QACF,OAAO,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAGO,yBAAyB,CAAC,YAA6C;QAC7E,+EAA+E;QAC/E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;QACxD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEvD,8CAA8C;QAC9C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE;YAC7D,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACvB,iDAAiD;gBACjD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;gBACnC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAChC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAChF,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAErF,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAC1B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACpC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;oBAC5C,CAAC;oBACD,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAClD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YACrC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;YACnE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,mEAAmE;QACnE,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;YAC7C,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3D,MAAM,cAAc,GAAG,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,YAAY,QAAQ,cAAc,cAAc,YAAY,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF;AA/pBD,8CA+pBC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,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,aAAa,CAAC;AAC5B,cAAc,kCAAkC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./interfaces"), exports);
|
|
18
|
-
__exportStar(require("./module-base"), exports);
|
|
19
18
|
__exportStar(require("./decorators/rpc-method.decorator"), exports);
|
|
20
19
|
__exportStar(require("./decorators/rpc-controller.decorator"), exports);
|
|
21
20
|
__exportStar(require("./rpc/typed-message-bus"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,oEAAkD;AAClD,wEAAsD;AACtD,0DAAwC;AACxC,qDAAmC;AACnC,8CAA4B;AAC5B,mEAAiD"}
|
package/dist/rpc/rpc-client.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ import { ClientProxy } from '@nestjs/microservices';
|
|
|
2
2
|
export declare class RpcClient {
|
|
3
3
|
private readonly client;
|
|
4
4
|
constructor(client: ClientProxy);
|
|
5
|
+
/**
|
|
6
|
+
* Create domain proxies dynamically based on the RPC methods available
|
|
7
|
+
*/
|
|
5
8
|
createDomainProxy(domain: string): any;
|
|
6
9
|
}
|
|
7
10
|
export interface ITypedRpcClient {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-client.d.ts","sourceRoot":"","sources":["../../src/rpc/rpc-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,qBACa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"rpc-client.d.ts","sourceRoot":"","sources":["../../src/rpc/rpc-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,qBACa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAEhD;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;CAevC;AAGD,MAAM,WAAW,eAAe;IAC9B,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KACjD,CAAC;CACH"}
|
package/dist/rpc/rpc-client.js
CHANGED
|
@@ -16,6 +16,9 @@ let RpcClient = class RpcClient {
|
|
|
16
16
|
constructor(client) {
|
|
17
17
|
this.client = client;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Create domain proxies dynamically based on the RPC methods available
|
|
21
|
+
*/
|
|
19
22
|
createDomainProxy(domain) {
|
|
20
23
|
return new Proxy({}, {
|
|
21
24
|
get: (_target, methodName) => {
|
|
@@ -26,7 +29,7 @@ let RpcClient = class RpcClient {
|
|
|
26
29
|
return result;
|
|
27
30
|
}
|
|
28
31
|
catch (error) {
|
|
29
|
-
throw new Error(`RPC call to '${pattern}' failed: ${error.message}`);
|
|
32
|
+
throw new Error(`RPC call to '${pattern}' failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
30
33
|
}
|
|
31
34
|
};
|
|
32
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-client.js","sourceRoot":"","sources":["../../src/rpc/rpc-client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAoD;AAG7C,IAAM,SAAS,GAAf,MAAM,SAAS;IACpB,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"rpc-client.js","sourceRoot":"","sources":["../../src/rpc/rpc-client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAoD;AAG7C,IAAM,SAAS,GAAf,MAAM,SAAS;IACpB,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD;;OAEG;IACH,iBAAiB,CAAC,MAAc;QAC9B,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE;YACnB,GAAG,EAAE,CAAC,OAAO,EAAE,UAAkB,EAAE,EAAE;gBACnC,OAAO,KAAK,EAAE,MAAW,EAAE,EAAE;oBAC3B,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC;oBAC1C,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;wBACnE,OAAO,MAAM,CAAC;oBAChB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,OAAO,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAChH,CAAC;gBACH,CAAC,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AArBY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;qCAE0B,2BAAW;GADrC,SAAS,CAqBrB"}
|
|
@@ -5,11 +5,22 @@ export interface RpcMessage<TData = any, TReturns = any> {
|
|
|
5
5
|
_returns?: TReturns;
|
|
6
6
|
}
|
|
7
7
|
export interface IMessageBus<TRpcMethods = any> {
|
|
8
|
+
/**
|
|
9
|
+
* Send a typed RPC message using pattern and data
|
|
10
|
+
* @param pattern - The RPC pattern (e.g., 'user.findOne')
|
|
11
|
+
* @param data - The message data
|
|
12
|
+
* @returns Promise of the RPC response with correct typing
|
|
13
|
+
*/
|
|
8
14
|
send<TPattern extends keyof TRpcMethods>(pattern: TPattern, data: TRpcMethods[TPattern] extends {
|
|
9
15
|
params: infer P;
|
|
10
16
|
} ? P : any): Promise<TRpcMethods[TPattern] extends {
|
|
11
17
|
returns: infer R;
|
|
12
18
|
} ? R : any>;
|
|
19
|
+
/**
|
|
20
|
+
* Emit a message (fire-and-forget)
|
|
21
|
+
* @param pattern - The event pattern
|
|
22
|
+
* @param data - The event data
|
|
23
|
+
*/
|
|
13
24
|
emit(pattern: string, data: any): void;
|
|
14
25
|
}
|
|
15
26
|
export declare class MessageBus<TRpcMethods = any> implements IMessageBus<TRpcMethods> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-message-bus.d.ts","sourceRoot":"","sources":["../../src/rpc/typed-message-bus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,CAAC;IAEZ,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,WAAW,CAAC,WAAW,GAAG,GAAG;
|
|
1
|
+
{"version":3,"file":"typed-message-bus.d.ts","sourceRoot":"","sources":["../../src/rpc/typed-message-bus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,CAAC;IAEZ,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,WAAW,CAAC,WAAW,GAAG,GAAG;IAC5C;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,SAAS,MAAM,WAAW,EACrC,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,SAAS;QAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,GAAG,GAChE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS;QAAE,OAAO,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAEzE;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;CACxC;AAED,qBACa,UAAU,CAAC,WAAW,GAAG,GAAG,CAAE,YAAW,WAAW,CAAC,WAAW,CAAC;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,IAAI,CAAC,QAAQ,SAAS,MAAM,WAAW,EAC3C,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,SAAS;QAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,GAAG,GAChE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS;QAAE,OAAO,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IAUxE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;CAGvC"}
|
|
@@ -22,7 +22,8 @@ let MessageBus = class MessageBus {
|
|
|
22
22
|
return result;
|
|
23
23
|
}
|
|
24
24
|
catch (error) {
|
|
25
|
-
throw
|
|
25
|
+
// Re-throw with pattern context for better debugging
|
|
26
|
+
throw new Error(`RPC call to '${String(pattern)}' failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
emit(pattern, data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-message-bus.js","sourceRoot":"","sources":["../../src/rpc/typed-message-bus.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAoD;AA+B7C,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,IAAI,CACR,OAAiB,EACjB,IAAiE;QAEjE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACjE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"typed-message-bus.js","sourceRoot":"","sources":["../../src/rpc/typed-message-bus.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAoD;AA+B7C,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,IAAI,CACR,OAAiB,EACjB,IAAiE;QAEjE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACjE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qDAAqD;YACrD,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,OAAO,CAAC,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAS;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;CACF,CAAA;AAnBY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAE0B,2BAAW;GADrC,UAAU,CAmBtB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ClientProxy, ReadPacket, WritePacket } from '@nestjs/microservices';
|
|
2
|
-
export declare class
|
|
2
|
+
export declare class InProcessClientProxy extends ClientProxy {
|
|
3
3
|
private transport;
|
|
4
4
|
connect(): Promise<void>;
|
|
5
5
|
close(): void;
|
|
6
6
|
protected dispatchEvent(packet: ReadPacket): Promise<any>;
|
|
7
7
|
protected publish(packet: ReadPacket, callback: (packet: WritePacket) => void): () => void;
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=in-
|
|
9
|
+
//# sourceMappingURL=in-process.client.d.ts.map
|
|
@@ -0,0 +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;AAG7E,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;CAa3F"}
|