@common-stack/server-core 7.2.1-alpha.47 → 7.2.1-alpha.49
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/lib/__tests__/connector-inngest-arrays.test.d.ts +1 -0
- package/lib/connector/__tests__/container-connector.test.d.ts +2 -0
- package/lib/connector/__tests__/context-connector.test.d.ts +1 -0
- package/lib/connector/__tests__/fixtures/preferenfces/sample-settings.d.ts +98 -0
- package/lib/connector/__tests__/fixtures/sample-roles-permissions/account-api/permission-contribution.d.ts +90 -0
- package/lib/connector/__tests__/graphql-middleware.test.d.ts +1 -0
- package/lib/connector/__tests__/permissions.test.d.ts +1 -0
- package/lib/connector/__tests__/policies.test.d.ts +1 -0
- package/lib/connector/__tests__/preferences.test.d.ts +1 -0
- package/lib/connector/__tests__/roles-update-connector.test.d.ts +1 -0
- package/lib/connector/__tests__/rules-connector.test.d.ts +1 -0
- package/lib/connector/__tests__/samples/graphql/types/person_entity_type.d.ts +2 -0
- package/lib/connector/__tests__/samples/graphql/types/person_search_type.d.ts +2 -0
- package/lib/connector/__tests__/samples/graphql/types/vendor_type.d.ts +2 -0
- package/lib/connector/__tests__/schema-connector.test.d.ts +1 -0
- package/lib/connector/__tests__/service-connector.test.d.ts +2 -0
- package/lib/connector/__tests__/websocket-connector.test.d.ts +1 -0
- package/lib/connector/connector.d.ts +619 -0
- package/lib/connector/connector.js +470 -0
- package/lib/connector/connector.js.map +1 -0
- package/lib/connector/index.d.ts +1 -0
- package/lib/constants/directives.d.ts +1 -0
- package/lib/constants/directives.js +1 -0
- package/lib/constants/directives.js.map +1 -0
- package/lib/constants/index.d.ts +2 -0
- package/lib/constants/types.d.ts +8 -0
- package/lib/constants/types.js +8 -0
- package/lib/constants/types.js.map +1 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -0
- package/lib/interfaces/connector.d.ts +36 -0
- package/lib/interfaces/datasource.d.ts +14 -0
- package/lib/interfaces/index.d.ts +7 -0
- package/lib/interfaces/mongo-migration.d.ts +17 -0
- package/lib/interfaces/permissions.d.ts +5 -0
- package/lib/interfaces/policies.d.ts +5 -0
- package/lib/interfaces/roles.d.ts +8 -0
- package/lib/interfaces/rules.d.ts +12 -0
- package/lib/interfaces/rules.js +6 -0
- package/lib/interfaces/rules.js.map +1 -0
- package/lib/interfaces/store.d.ts +3 -0
- package/lib/logger/index.d.ts +1 -0
- package/lib/logger/logger.d.ts +2 -0
- package/lib/logger/logger.js +5 -0
- package/lib/logger/logger.js.map +1 -0
- package/lib/moleculer-generation/__tests__/integration-proxy-moleculer.test.d.ts +6 -0
- package/lib/moleculer-generation/__tests__/moleculerEventHandler.test.d.ts +5 -0
- package/lib/moleculer-generation/__tests__/serviceGenerationUtils.test.d.ts +5 -0
- package/lib/moleculer-generation/__tests__/typedMoleculerService.test.d.ts +5 -0
- package/lib/moleculer-generation/__tests__/typedProxyService.test.d.ts +5 -0
- package/lib/moleculer-generation/generateAllServiceSchemas.cjs +628 -0
- package/lib/moleculer-generation/index.d.ts +16 -0
- package/lib/moleculer-generation/moleculerEventHandler.d.ts +73 -0
- package/lib/moleculer-generation/moleculerEventHandler.js +91 -0
- package/lib/moleculer-generation/moleculerEventHandler.js.map +1 -0
- package/lib/moleculer-generation/serviceGenerationUtils.d.ts +100 -0
- package/lib/moleculer-generation/serviceGenerationUtils.js +156 -0
- package/lib/moleculer-generation/serviceGenerationUtils.js.map +1 -0
- package/lib/moleculer-generation/typedMoleculerService.d.ts +502 -0
- package/lib/moleculer-generation/typedMoleculerService.js +685 -0
- package/lib/moleculer-generation/typedMoleculerService.js.map +1 -0
- package/lib/moleculer-generation/typedProxyService.d.ts +119 -0
- package/lib/moleculer-generation/typedProxyService.js +226 -0
- package/lib/moleculer-generation/typedProxyService.js.map +1 -0
- package/lib/moleculer-generation/zodToMoleculer.d.ts +45 -0
- package/lib/moleculer-generation/zodToMoleculer.js +120 -0
- package/lib/moleculer-generation/zodToMoleculer.js.map +1 -0
- package/lib/utils/extract-tenant-id.d.ts +1 -0
- package/lib/utils/extract-tenant-id.js +4 -0
- package/lib/utils/extract-tenant-id.js.map +1 -0
- package/lib/utils/generate-query-cache-key.d.ts +11 -0
- package/lib/utils/generate-query-cache-key.js +13 -0
- package/lib/utils/generate-query-cache-key.js.map +1 -0
- package/lib/utils/get-directive-args-from-schema.d.ts +13 -0
- package/lib/utils/get-directive-args-from-schema.js +25 -0
- package/lib/utils/get-directive-args-from-schema.js.map +1 -0
- package/lib/utils/index.d.ts +4 -0
- package/lib/utils/preferences.d.ts +87 -0
- package/lib/utils/preferences.js +40 -0
- package/lib/utils/preferences.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typedMoleculerService.js","sources":["../../src/moleculer-generation/typedMoleculerService.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file typed-proxy-service.ts
|
|
3
|
+
* @description Provides utilities for auto-generating proxy service methods
|
|
4
|
+
* with type-safe Zod schema validation from service interfaces.
|
|
5
|
+
*
|
|
6
|
+
* This allows proxy services to be lightweight and automatically stay in sync
|
|
7
|
+
* with their corresponding Moleculer services.
|
|
8
|
+
*/
|
|
9
|
+
import type { ServiceBroker } from 'moleculer';
|
|
10
|
+
import type { CdmLogger } from '@cdm-logger/core';
|
|
11
|
+
import type { z } from 'zod';
|
|
12
|
+
import { type ExcludedServiceMethods } from './serviceGenerationUtils';
|
|
13
|
+
/**
|
|
14
|
+
* Exclude base service CRUD methods and lifecycle methods from auto-generation
|
|
15
|
+
* @deprecated Use ExcludedServiceMethods from serviceGenerationUtils instead
|
|
16
|
+
*/
|
|
17
|
+
type ExcludedProxyMethods = ExcludedServiceMethods;
|
|
18
|
+
/**
|
|
19
|
+
* Extract all method names from a service interface (excluding base methods)
|
|
20
|
+
*/
|
|
21
|
+
export type ProxyServiceMethods<T> = {
|
|
22
|
+
[K in keyof T]: T[K] extends Function ? (K extends ExcludedProxyMethods ? never : K) : never;
|
|
23
|
+
}[keyof T];
|
|
24
|
+
/**
|
|
25
|
+
* Configuration for auto-generating proxy service methods
|
|
26
|
+
*/
|
|
27
|
+
export type AutoProxyServiceConfig<TService> = {
|
|
28
|
+
/**
|
|
29
|
+
* Zod schemas for method parameters
|
|
30
|
+
* Maps method names to their Zod schema objects
|
|
31
|
+
* May include a 'topic' string property for service name
|
|
32
|
+
*/
|
|
33
|
+
schemas: Partial<{
|
|
34
|
+
[K in ProxyServiceMethods<TService>]: z.ZodObject<any>;
|
|
35
|
+
}> & {
|
|
36
|
+
topic?: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Optional: Override the action name for specific methods
|
|
40
|
+
* By default, action name is the method name
|
|
41
|
+
*/
|
|
42
|
+
actionNameOverrides?: Partial<{
|
|
43
|
+
[K in ProxyServiceMethods<TService>]: string;
|
|
44
|
+
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Optional: Include only specific methods
|
|
47
|
+
* If not specified, all non-excluded methods are included
|
|
48
|
+
*/
|
|
49
|
+
include?: Array<ProxyServiceMethods<TService>>;
|
|
50
|
+
/**
|
|
51
|
+
* Optional: Exclude specific methods
|
|
52
|
+
* Takes precedence over include
|
|
53
|
+
*/
|
|
54
|
+
exclude?: Array<ProxyServiceMethods<TService>>;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Auto-generate proxy service methods from service interface and Zod schemas
|
|
58
|
+
* Returns the proxy instance cast to the service type for type safety
|
|
59
|
+
*
|
|
60
|
+
* Automatically extracts the 'topic' property from schemas for service identification.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* export class TagProxyService {
|
|
65
|
+
* protected logger: CdmLogger.ILogger;
|
|
66
|
+
* // No need to define topic manually - extracted from schemas automatically
|
|
67
|
+
*
|
|
68
|
+
* constructor(
|
|
69
|
+
* @inject(CommonType.MOLECULER_BROKER) broker: ServiceBroker,
|
|
70
|
+
* @inject('Logger') logger: CdmLogger.ILogger,
|
|
71
|
+
* ) {
|
|
72
|
+
* this.logger = logger.child({ className: 'TagProxyService' });
|
|
73
|
+
*
|
|
74
|
+
* // 🎉 Auto-generate all proxy methods - topic extracted automatically!
|
|
75
|
+
* generateProxyMethods<ITagService>(this, TagServiceSchemas, broker, this.logger);
|
|
76
|
+
* }
|
|
77
|
+
* }
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export declare function generateProxyMethods<TService>(proxyInstance: any, schemasOrConfig: Partial<{
|
|
81
|
+
[K in ProxyServiceMethods<TService>]: z.ZodObject<any>;
|
|
82
|
+
}> | AutoProxyServiceConfig<TService>, broker: ServiceBroker, logger: CdmLogger.ILogger): asserts proxyInstance is TService;
|
|
83
|
+
/**
|
|
84
|
+
* Namespace for proxy service utilities
|
|
85
|
+
*/
|
|
86
|
+
export declare namespace ProxyService {
|
|
87
|
+
/**
|
|
88
|
+
* Generate proxy methods from service interface and Zod schemas
|
|
89
|
+
*/
|
|
90
|
+
const generate: typeof generateProxyMethods;
|
|
91
|
+
/**
|
|
92
|
+
* Debug utility: List all methods that would be generated
|
|
93
|
+
*/
|
|
94
|
+
function debugProxyMethods<TService>(servicePrototype: any, config: AutoProxyServiceConfig<TService>): {
|
|
95
|
+
methodName: string;
|
|
96
|
+
hasSchema: boolean;
|
|
97
|
+
paramNames: string[];
|
|
98
|
+
isIncluded: boolean;
|
|
99
|
+
isExcluded: boolean;
|
|
100
|
+
}[];
|
|
101
|
+
/**
|
|
102
|
+
* Print debug information about proxy methods
|
|
103
|
+
*/
|
|
104
|
+
function printProxyMethods<TService>(servicePrototype: any, config: AutoProxyServiceConfig<TService>, options?: {
|
|
105
|
+
onlyMissingSchemas?: boolean;
|
|
106
|
+
onlyIncluded?: boolean;
|
|
107
|
+
}): void;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Helper type to create a fully typed proxy service class
|
|
111
|
+
* This ensures the proxy implements all methods from the service interface
|
|
112
|
+
*/
|
|
113
|
+
export type TypedProxyService<TService> = TService & {
|
|
114
|
+
broker: ServiceBroker;
|
|
115
|
+
logger: CdmLogger.ILogger;
|
|
116
|
+
topic: string;
|
|
117
|
+
callAction<T, P = unknown>(command: string, params?: P): Promise<T>;
|
|
118
|
+
};
|
|
119
|
+
export {};
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import {getAllMethodNames,isExcludedMethod,getActionName,buildActionPath}from'./serviceGenerationUtils.js';// from package: store-mongo
|
|
2
|
+
/**
|
|
3
|
+
* @file typed-proxy-service.ts
|
|
4
|
+
* @description Provides utilities for auto-generating proxy service methods
|
|
5
|
+
* with type-safe Zod schema validation from service interfaces.
|
|
6
|
+
*
|
|
7
|
+
* This allows proxy services to be lightweight and automatically stay in sync
|
|
8
|
+
* with their corresponding Moleculer services.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Extract parameter names from a Zod schema object
|
|
12
|
+
*/
|
|
13
|
+
function extractParamNamesFromZodSchema(schema) {
|
|
14
|
+
try {
|
|
15
|
+
const { shape } = schema;
|
|
16
|
+
return Object.keys(shape);
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Add base proxy functionality to an instance
|
|
24
|
+
* Provides the callAction method that all proxy services need
|
|
25
|
+
*/
|
|
26
|
+
function addProxyBase(proxyInstance, broker, logger) {
|
|
27
|
+
// Add broker and logger
|
|
28
|
+
Object.defineProperty(proxyInstance, 'broker', {
|
|
29
|
+
value: broker,
|
|
30
|
+
writable: false,
|
|
31
|
+
enumerable: false,
|
|
32
|
+
configurable: false,
|
|
33
|
+
});
|
|
34
|
+
Object.defineProperty(proxyInstance, 'logger', {
|
|
35
|
+
value: logger,
|
|
36
|
+
writable: true,
|
|
37
|
+
enumerable: false,
|
|
38
|
+
configurable: false,
|
|
39
|
+
});
|
|
40
|
+
// Add callAction method
|
|
41
|
+
// eslint-disable-next-line no-param-reassign
|
|
42
|
+
proxyInstance.callAction = function callAction(command, params) {
|
|
43
|
+
const { topic } = this;
|
|
44
|
+
// Use shared utility for consistent action path building
|
|
45
|
+
const actionPath = buildActionPath(topic, command);
|
|
46
|
+
this.logger?.trace?.(`[ProxyService] Calling action: ${actionPath}`, { params });
|
|
47
|
+
return broker.call(actionPath, params);
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Auto-generate proxy service methods from service interface and Zod schemas
|
|
52
|
+
* Returns the proxy instance cast to the service type for type safety
|
|
53
|
+
*
|
|
54
|
+
* Automatically extracts the 'topic' property from schemas for service identification.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* export class TagProxyService {
|
|
59
|
+
* protected logger: CdmLogger.ILogger;
|
|
60
|
+
* // No need to define topic manually - extracted from schemas automatically
|
|
61
|
+
*
|
|
62
|
+
* constructor(
|
|
63
|
+
* @inject(CommonType.MOLECULER_BROKER) broker: ServiceBroker,
|
|
64
|
+
* @inject('Logger') logger: CdmLogger.ILogger,
|
|
65
|
+
* ) {
|
|
66
|
+
* this.logger = logger.child({ className: 'TagProxyService' });
|
|
67
|
+
*
|
|
68
|
+
* // 🎉 Auto-generate all proxy methods - topic extracted automatically!
|
|
69
|
+
* generateProxyMethods<ITagService>(this, TagServiceSchemas, broker, this.logger);
|
|
70
|
+
* }
|
|
71
|
+
* }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
function generateProxyMethods(proxyInstance, schemasOrConfig, broker, logger) {
|
|
75
|
+
// Normalize input - support both schemas object directly or config object
|
|
76
|
+
const config = 'schemas' in schemasOrConfig
|
|
77
|
+
? schemasOrConfig
|
|
78
|
+
: { schemas: schemasOrConfig };
|
|
79
|
+
const { schemas, include, exclude, actionNameOverrides } = config;
|
|
80
|
+
// Extract topic from schemas if present (minification-safe pattern)
|
|
81
|
+
const topic = schemas.topic;
|
|
82
|
+
if (topic && typeof topic === 'string') {
|
|
83
|
+
// Set topic on proxy instance for callAction method
|
|
84
|
+
Object.defineProperty(proxyInstance, 'topic', {
|
|
85
|
+
value: topic,
|
|
86
|
+
writable: false,
|
|
87
|
+
enumerable: false,
|
|
88
|
+
configurable: false,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
else if (!proxyInstance.topic) {
|
|
92
|
+
// Fallback: If topic not in schemas and not already set, warn
|
|
93
|
+
logger.warn('[ProxyService] No topic found in schemas or instance. Actions may fail.');
|
|
94
|
+
}
|
|
95
|
+
// Add base proxy functionality (broker, logger, callAction)
|
|
96
|
+
addProxyBase(proxyInstance, broker, logger);
|
|
97
|
+
// Get all method names from BOTH schemas object AND service prototype chain
|
|
98
|
+
// This ensures we generate methods for:
|
|
99
|
+
// 1. Methods with explicit schemas (from schemas object)
|
|
100
|
+
// 2. Inherited methods from base classes (via prototype traversal)
|
|
101
|
+
const schemaMethodNames = new Set(Object.keys(schemas).filter((key) => key !== 'topic'));
|
|
102
|
+
// Also get methods from the prototype chain (for inherited methods)
|
|
103
|
+
// This handles cases where service extends BaseService but schemas might not have all base methods
|
|
104
|
+
const allMethodNames = getAllMethodNames(proxyInstance);
|
|
105
|
+
allMethodNames.forEach((methodName) => {
|
|
106
|
+
// Only add if not excluded (using 'proxy' context) and has a schema
|
|
107
|
+
if (!isExcludedMethod(methodName, 'proxy') && schemas[methodName]) {
|
|
108
|
+
schemaMethodNames.add(methodName);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
// Filter methods
|
|
112
|
+
const methodsToGenerate = Array.from(schemaMethodNames).filter((methodName) => {
|
|
113
|
+
// Skip excluded methods (use 'proxy' context to allow base CRUD methods)
|
|
114
|
+
if (isExcludedMethod(methodName, 'proxy')) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
// Skip if explicitly excluded
|
|
118
|
+
if (exclude && exclude.includes(methodName)) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
// If include list is provided, only include those
|
|
122
|
+
if (include && !include.includes(methodName)) {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
return true;
|
|
126
|
+
});
|
|
127
|
+
// Generate methods
|
|
128
|
+
for (const methodName of methodsToGenerate) {
|
|
129
|
+
const schema = schemas[methodName];
|
|
130
|
+
if (!schema) {
|
|
131
|
+
// eslint-disable-next-line no-continue
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
// Determine action name using shared utility for consistency
|
|
135
|
+
// Convention: Use camelCase (method name as-is) to match Moleculer service actions
|
|
136
|
+
let actionName;
|
|
137
|
+
if (actionNameOverrides && actionNameOverrides[methodName]) {
|
|
138
|
+
actionName = actionNameOverrides[methodName];
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
// Use shared utility to ensure consistency with Moleculer service
|
|
142
|
+
actionName = getActionName(methodName);
|
|
143
|
+
}
|
|
144
|
+
// Extract parameter names from Zod schema
|
|
145
|
+
const paramNames = extractParamNamesFromZodSchema(schema);
|
|
146
|
+
// Generate the proxy method
|
|
147
|
+
// eslint-disable-next-line no-param-reassign, func-names
|
|
148
|
+
proxyInstance[methodName] = function proxyMethod(...args) {
|
|
149
|
+
// Build params object from arguments
|
|
150
|
+
const params = {};
|
|
151
|
+
// Always map positional arguments to parameter names for Moleculer
|
|
152
|
+
// This ensures proper structure: method(arg1, arg2) -> { param1: arg1, param2: arg2 }
|
|
153
|
+
paramNames.forEach((paramName, index) => {
|
|
154
|
+
if (index < args.length) {
|
|
155
|
+
params[paramName] = args[index];
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
// Validate with Zod schema (optional - can be skipped for performance)
|
|
159
|
+
try {
|
|
160
|
+
schema.parse(params);
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
console.warn(`[ProxyService] Zod validation failed for ${methodName}:`, error);
|
|
164
|
+
// Continue anyway - let Moleculer service handle validation
|
|
165
|
+
}
|
|
166
|
+
// Call the Moleculer action
|
|
167
|
+
return this.callAction(actionName, params);
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Namespace for proxy service utilities
|
|
173
|
+
*/
|
|
174
|
+
var ProxyService;
|
|
175
|
+
(function (ProxyService) {
|
|
176
|
+
/**
|
|
177
|
+
* Generate proxy methods from service interface and Zod schemas
|
|
178
|
+
*/
|
|
179
|
+
ProxyService.generate = generateProxyMethods;
|
|
180
|
+
/**
|
|
181
|
+
* Debug utility: List all methods that would be generated
|
|
182
|
+
*/
|
|
183
|
+
function debugProxyMethods(servicePrototype, config) {
|
|
184
|
+
const { schemas, include, exclude } = config;
|
|
185
|
+
const allMethods = getAllMethodNames(servicePrototype);
|
|
186
|
+
return allMethods
|
|
187
|
+
.filter((methodName) => !isExcludedMethod(methodName))
|
|
188
|
+
.map((methodName) => {
|
|
189
|
+
const schema = schemas[methodName];
|
|
190
|
+
const paramNames = schema ? extractParamNamesFromZodSchema(schema) : [];
|
|
191
|
+
return {
|
|
192
|
+
methodName,
|
|
193
|
+
hasSchema: !!schema,
|
|
194
|
+
paramNames,
|
|
195
|
+
isIncluded: !include || include.includes(methodName),
|
|
196
|
+
isExcluded: !!exclude && exclude.includes(methodName),
|
|
197
|
+
};
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
ProxyService.debugProxyMethods = debugProxyMethods;
|
|
201
|
+
/**
|
|
202
|
+
* Print debug information about proxy methods
|
|
203
|
+
*/
|
|
204
|
+
function printProxyMethods(servicePrototype, config, options) {
|
|
205
|
+
const methods = debugProxyMethods(servicePrototype, config);
|
|
206
|
+
const filtered = methods.filter((m) => {
|
|
207
|
+
if (options?.onlyMissingSchemas && m.hasSchema)
|
|
208
|
+
return false;
|
|
209
|
+
if (options?.onlyIncluded && !m.isIncluded)
|
|
210
|
+
return false;
|
|
211
|
+
return true;
|
|
212
|
+
});
|
|
213
|
+
console.log('\n=== Proxy Service Methods Debug ===\n');
|
|
214
|
+
filtered.forEach((m) => {
|
|
215
|
+
console.log(`${m.methodName}:`);
|
|
216
|
+
console.log(` - Has Schema: ${m.hasSchema}`);
|
|
217
|
+
console.log(` - Included: ${m.isIncluded}`);
|
|
218
|
+
console.log(` - Excluded: ${m.isExcluded}`);
|
|
219
|
+
if (m.paramNames.length > 0) {
|
|
220
|
+
console.log(` - Params: ${m.paramNames.join(', ')}`);
|
|
221
|
+
}
|
|
222
|
+
console.log('');
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
ProxyService.printProxyMethods = printProxyMethods;
|
|
226
|
+
})(ProxyService || (ProxyService = {}));export{ProxyService,generateProxyMethods};//# sourceMappingURL=typedProxyService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typedProxyService.js","sources":["../../src/moleculer-generation/typedProxyService.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts Zod schemas to Moleculer parameter validation schemas
|
|
3
|
+
*
|
|
4
|
+
* This utility bridges the gap between Zod's rich type system and Moleculer's
|
|
5
|
+
* validator format, allowing us to use TypeScript-derived Zod schemas for
|
|
6
|
+
* runtime parameter validation in Moleculer services.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
/**
|
|
10
|
+
* Converts a Zod schema object to Moleculer parameter schema format
|
|
11
|
+
*
|
|
12
|
+
* @param zodSchema - Zod object schema with parameter definitions
|
|
13
|
+
* @returns Moleculer-compatible parameter schema
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const zodSchema = z.object({
|
|
18
|
+
* email: z.string(),
|
|
19
|
+
* age: z.number().optional(),
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* const moleculerParams = zodToMoleculerParams(zodSchema);
|
|
23
|
+
* // Returns: { email: 'string', age: { type: 'number', optional: true } }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function zodToMoleculerParams(zodSchema: z.ZodObject<any>): Record<string, any>;
|
|
27
|
+
/**
|
|
28
|
+
* Batch converts multiple Zod schemas to Moleculer parameter schemas
|
|
29
|
+
*
|
|
30
|
+
* @param schemas - Object mapping method names to Zod schemas (may include a 'topic' string property)
|
|
31
|
+
* @returns Object mapping method names to Moleculer parameter schemas
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const schemas = {
|
|
36
|
+
* topic: 'MyService' as const, // Auto-generated, will be skipped
|
|
37
|
+
* findById: z.object({ id: z.string() }),
|
|
38
|
+
* update: z.object({ id: z.string(), data: z.object({}) }),
|
|
39
|
+
* };
|
|
40
|
+
*
|
|
41
|
+
* const moleculerSchemas = zodSchemasToMoleculer(schemas);
|
|
42
|
+
* // Returns only the Zod schemas, 'topic' property is filtered out
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function zodSchemasToMoleculer(schemas: Record<string, z.ZodObject<any> | string>): Record<string, Record<string, any>>;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import {z}from'zod';// from package: store-mongo
|
|
2
|
+
/**
|
|
3
|
+
* Converts Zod schemas to Moleculer parameter validation schemas
|
|
4
|
+
*
|
|
5
|
+
* This utility bridges the gap between Zod's rich type system and Moleculer's
|
|
6
|
+
* validator format, allowing us to use TypeScript-derived Zod schemas for
|
|
7
|
+
* runtime parameter validation in Moleculer services.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Converts a Zod schema object to Moleculer parameter schema format
|
|
11
|
+
*
|
|
12
|
+
* @param zodSchema - Zod object schema with parameter definitions
|
|
13
|
+
* @returns Moleculer-compatible parameter schema
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const zodSchema = z.object({
|
|
18
|
+
* email: z.string(),
|
|
19
|
+
* age: z.number().optional(),
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* const moleculerParams = zodToMoleculerParams(zodSchema);
|
|
23
|
+
* // Returns: { email: 'string', age: { type: 'number', optional: true } }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
function zodToMoleculerParams(zodSchema) {
|
|
27
|
+
const { shape } = zodSchema;
|
|
28
|
+
const result = {};
|
|
29
|
+
for (const [key, value] of Object.entries(shape)) {
|
|
30
|
+
result[key] = zodTypeToMoleculer(value);
|
|
31
|
+
}
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Converts a single Zod type to Moleculer validator format
|
|
36
|
+
*/
|
|
37
|
+
function zodTypeToMoleculer(zodType) {
|
|
38
|
+
// Handle optional types
|
|
39
|
+
if (zodType instanceof z.ZodOptional) {
|
|
40
|
+
const innerType = zodTypeToMoleculer(zodType.def.innerType);
|
|
41
|
+
if (typeof innerType === 'string') {
|
|
42
|
+
return { type: innerType, optional: true };
|
|
43
|
+
}
|
|
44
|
+
return { ...innerType, optional: true };
|
|
45
|
+
}
|
|
46
|
+
// Handle nullable types
|
|
47
|
+
if (zodType instanceof z.ZodNullable) {
|
|
48
|
+
return zodTypeToMoleculer(zodType.def.innerType);
|
|
49
|
+
}
|
|
50
|
+
// Primitive types
|
|
51
|
+
if (zodType instanceof z.ZodString) {
|
|
52
|
+
return 'string';
|
|
53
|
+
}
|
|
54
|
+
if (zodType instanceof z.ZodNumber) {
|
|
55
|
+
return 'number';
|
|
56
|
+
}
|
|
57
|
+
if (zodType instanceof z.ZodBoolean) {
|
|
58
|
+
return 'boolean';
|
|
59
|
+
}
|
|
60
|
+
if (zodType instanceof z.ZodDate) {
|
|
61
|
+
return 'date';
|
|
62
|
+
}
|
|
63
|
+
// Array types
|
|
64
|
+
if (zodType instanceof z.ZodArray) {
|
|
65
|
+
return 'array';
|
|
66
|
+
}
|
|
67
|
+
// Enum types
|
|
68
|
+
if (zodType instanceof z.ZodEnum || zodType.type === 'enum') {
|
|
69
|
+
return 'string'; // Moleculer doesn't have enum type, use string
|
|
70
|
+
}
|
|
71
|
+
// Object types
|
|
72
|
+
if (zodType instanceof z.ZodObject) {
|
|
73
|
+
return 'object';
|
|
74
|
+
}
|
|
75
|
+
// Union types - use the first non-undefined/null type
|
|
76
|
+
if (zodType instanceof z.ZodUnion) {
|
|
77
|
+
const { options } = zodType.def;
|
|
78
|
+
for (const option of options) {
|
|
79
|
+
if (!(option instanceof z.ZodUndefined) && !(option instanceof z.ZodNull)) {
|
|
80
|
+
return zodTypeToMoleculer(option);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return 'any';
|
|
84
|
+
}
|
|
85
|
+
// Any type
|
|
86
|
+
if (zodType instanceof z.ZodAny) {
|
|
87
|
+
return 'any';
|
|
88
|
+
}
|
|
89
|
+
// Default to object for complex types
|
|
90
|
+
return 'object';
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Batch converts multiple Zod schemas to Moleculer parameter schemas
|
|
94
|
+
*
|
|
95
|
+
* @param schemas - Object mapping method names to Zod schemas (may include a 'topic' string property)
|
|
96
|
+
* @returns Object mapping method names to Moleculer parameter schemas
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```typescript
|
|
100
|
+
* const schemas = {
|
|
101
|
+
* topic: 'MyService' as const, // Auto-generated, will be skipped
|
|
102
|
+
* findById: z.object({ id: z.string() }),
|
|
103
|
+
* update: z.object({ id: z.string(), data: z.object({}) }),
|
|
104
|
+
* };
|
|
105
|
+
*
|
|
106
|
+
* const moleculerSchemas = zodSchemasToMoleculer(schemas);
|
|
107
|
+
* // Returns only the Zod schemas, 'topic' property is filtered out
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
function zodSchemasToMoleculer(schemas) {
|
|
111
|
+
const result = {};
|
|
112
|
+
for (const [methodName, schema] of Object.entries(schemas)) {
|
|
113
|
+
// Skip non-Zod properties (like 'topic' string constant)
|
|
114
|
+
if (typeof schema === 'string' || methodName === 'topic') {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
result[methodName] = zodToMoleculerParams(schema);
|
|
118
|
+
}
|
|
119
|
+
return result;
|
|
120
|
+
}export{zodSchemasToMoleculer,zodToMoleculerParams};//# sourceMappingURL=zodToMoleculer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zodToMoleculer.js","sources":["../../src/moleculer-generation/zodToMoleculer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const extractTenantId: (authority: string) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-tenant-id.js","sources":["../../src/utils/extract-tenant-id.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAa,MAAA,eAAe,GAAG,CAAC,SAAiB,KAAY;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3C,OAAO,IAAI,IAAI,SAAS,CAAC;AAC7B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DocumentNode } from 'graphql/language/index.js';
|
|
2
|
+
import { CdmLogger } from '@cdm-logger/core';
|
|
3
|
+
type GenerateQueryCacheKeyOptions = {
|
|
4
|
+
query: string | DocumentNode;
|
|
5
|
+
variables: Record<string, unknown>;
|
|
6
|
+
userId?: string;
|
|
7
|
+
tenantId?: string;
|
|
8
|
+
logger?: CdmLogger.ILogger;
|
|
9
|
+
};
|
|
10
|
+
export declare const generateQueryCacheKey: ({ query, variables, logger, userId, tenantId }: GenerateQueryCacheKeyOptions) => string;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {createHash}from'crypto';import {print}from'graphql/language/index.js';const generateQueryCacheKey = ({ query, variables, logger, userId, tenantId }) => {
|
|
2
|
+
const normalizedQuery = (typeof query === 'string' ? query : print(query)).trim();
|
|
3
|
+
const [, queryName] = normalizedQuery?.match(/{\s*(\w+)/) ?? [];
|
|
4
|
+
// Log the data right before hashing
|
|
5
|
+
if (logger) {
|
|
6
|
+
logger.trace('About to hash normalized query: [%s]', normalizedQuery);
|
|
7
|
+
logger.trace('About to hash variables: [%j]', variables);
|
|
8
|
+
}
|
|
9
|
+
const queryHash = createHash('sha256').update(normalizedQuery).digest('hex');
|
|
10
|
+
const variablesHash = variables ? createHash('sha256').update(JSON.stringify(variables)).digest('hex') : null;
|
|
11
|
+
const prefix = `${tenantId ? `${tenantId}:` : ''}${userId ? `${userId}:` : ''}`;
|
|
12
|
+
return `${prefix}${queryName}:${queryHash}${variablesHash ? `:${variablesHash}` : ''}`;
|
|
13
|
+
};export{generateQueryCacheKey};//# sourceMappingURL=generate-query-cache-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-query-cache-key.js","sources":["../../src/utils/generate-query-cache-key.ts"],"sourcesContent":[null],"names":[],"mappings":"8EAWa,MAAA,qBAAqB,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAgC,KAAI;IAClH,MAAM,eAAe,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;AAClF,IAAA,MAAM,GAAG,SAAS,CAAC,GAAG,eAAe,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;;IAGhE,IAAI,MAAM,EAAE;AACR,QAAA,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,eAAe,CAAC,CAAC;AACtE,QAAA,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,SAAS,CAAC,CAAC;KAC5D;AAED,IAAA,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7E,IAAA,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAC9G,MAAM,MAAM,GAAG,CAAA,EAAG,QAAQ,GAAG,CAAG,EAAA,QAAQ,CAAG,CAAA,CAAA,GAAG,EAAE,CAAA,EAAG,MAAM,GAAG,CAAG,EAAA,MAAM,CAAG,CAAA,CAAA,GAAG,EAAE,CAAA,CAAE,CAAC;AAChF,IAAA,OAAO,GAAG,MAAM,CAAA,EAAG,SAAS,CAAI,CAAA,EAAA,SAAS,GAAG,aAAa,GAAG,CAAA,CAAA,EAAI,aAAa,CAAE,CAAA,GAAG,EAAE,EAAE,CAAC;AAC3F"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GraphQLSchema, DocumentNode } from 'graphql';
|
|
2
|
+
type GetDirectiveArgsFromSchemaOptions = {
|
|
3
|
+
schema: GraphQLSchema;
|
|
4
|
+
directiveName: string;
|
|
5
|
+
} & ({
|
|
6
|
+
document: DocumentNode;
|
|
7
|
+
queryName?: never;
|
|
8
|
+
} | {
|
|
9
|
+
queryName: string;
|
|
10
|
+
document?: never;
|
|
11
|
+
});
|
|
12
|
+
export declare function getDirectiveArgsFromSchema({ schema, directiveName, document, queryName, }: GetDirectiveArgsFromSchemaOptions): any;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {getDirective}from'@graphql-tools/utils';import {visit}from'graphql';function getDirectiveArgsFromSchema({ schema, directiveName, document, queryName, }) {
|
|
2
|
+
let directiveArgs = null;
|
|
3
|
+
const getDirectiveArgs = (value) => {
|
|
4
|
+
const queryType = schema.getQueryType();
|
|
5
|
+
if (!queryType)
|
|
6
|
+
return null;
|
|
7
|
+
const field = queryType.getFields()[value];
|
|
8
|
+
if (!field)
|
|
9
|
+
return null;
|
|
10
|
+
const [directive] = getDirective(schema, field, directiveName) ?? [];
|
|
11
|
+
return directive;
|
|
12
|
+
};
|
|
13
|
+
if (queryName) {
|
|
14
|
+
return getDirectiveArgs(queryName);
|
|
15
|
+
}
|
|
16
|
+
visit(document, {
|
|
17
|
+
OperationDefinition(node) {
|
|
18
|
+
const [firstSelection] = node.selectionSet.selections ?? []; // Get first field
|
|
19
|
+
if (firstSelection && 'name' in firstSelection) {
|
|
20
|
+
directiveArgs = getDirectiveArgs(firstSelection.name.value);
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
return directiveArgs;
|
|
25
|
+
}export{getDirectiveArgsFromSchema};//# sourceMappingURL=get-directive-args-from-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-directive-args-from-schema.js","sources":["../../src/utils/get-directive-args-from-schema.ts"],"sourcesContent":[null],"names":[],"mappings":"4EAWM,SAAU,0BAA0B,CAAC,EACvC,MAAM,EACN,aAAa,EACb,QAAQ,EACR,SAAS,GACuB,EAAA;IAChC,IAAI,aAAa,GAAG,IAAI,CAAC;AACzB,IAAA,MAAM,gBAAgB,GAAG,CAAC,KAAa,KAAI;AACvC,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,IAAI,CAAC;QAE5B,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI,CAAC;AAExB,QAAA,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;AACrE,QAAA,OAAO,SAAS,CAAC;AACrB,KAAC,CAAC;IACF,IAAI,SAAS,EAAE;AACX,QAAA,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;KACtC;IAED,KAAK,CAAC,QAAQ,EAAE;AACZ,QAAA,mBAAmB,CAAC,IAA6B,EAAA;AAC7C,YAAA,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC;AAC5D,YAAA,IAAI,cAAc,IAAI,MAAM,IAAI,cAAc,EAAE;gBAC5C,aAAa,GAAG,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC/D;SACJ;AACJ,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,aAAa,CAAC;AACzB"}
|