@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.
Files changed (82) hide show
  1. package/lib/__tests__/connector-inngest-arrays.test.d.ts +1 -0
  2. package/lib/connector/__tests__/container-connector.test.d.ts +2 -0
  3. package/lib/connector/__tests__/context-connector.test.d.ts +1 -0
  4. package/lib/connector/__tests__/fixtures/preferenfces/sample-settings.d.ts +98 -0
  5. package/lib/connector/__tests__/fixtures/sample-roles-permissions/account-api/permission-contribution.d.ts +90 -0
  6. package/lib/connector/__tests__/graphql-middleware.test.d.ts +1 -0
  7. package/lib/connector/__tests__/permissions.test.d.ts +1 -0
  8. package/lib/connector/__tests__/policies.test.d.ts +1 -0
  9. package/lib/connector/__tests__/preferences.test.d.ts +1 -0
  10. package/lib/connector/__tests__/roles-update-connector.test.d.ts +1 -0
  11. package/lib/connector/__tests__/rules-connector.test.d.ts +1 -0
  12. package/lib/connector/__tests__/samples/graphql/types/person_entity_type.d.ts +2 -0
  13. package/lib/connector/__tests__/samples/graphql/types/person_search_type.d.ts +2 -0
  14. package/lib/connector/__tests__/samples/graphql/types/vendor_type.d.ts +2 -0
  15. package/lib/connector/__tests__/schema-connector.test.d.ts +1 -0
  16. package/lib/connector/__tests__/service-connector.test.d.ts +2 -0
  17. package/lib/connector/__tests__/websocket-connector.test.d.ts +1 -0
  18. package/lib/connector/connector.d.ts +619 -0
  19. package/lib/connector/connector.js +470 -0
  20. package/lib/connector/connector.js.map +1 -0
  21. package/lib/connector/index.d.ts +1 -0
  22. package/lib/constants/directives.d.ts +1 -0
  23. package/lib/constants/directives.js +1 -0
  24. package/lib/constants/directives.js.map +1 -0
  25. package/lib/constants/index.d.ts +2 -0
  26. package/lib/constants/types.d.ts +8 -0
  27. package/lib/constants/types.js +8 -0
  28. package/lib/constants/types.js.map +1 -0
  29. package/lib/index.d.ts +6 -0
  30. package/lib/index.js +1 -0
  31. package/lib/index.js.map +1 -0
  32. package/lib/interfaces/connector.d.ts +36 -0
  33. package/lib/interfaces/datasource.d.ts +14 -0
  34. package/lib/interfaces/index.d.ts +7 -0
  35. package/lib/interfaces/mongo-migration.d.ts +17 -0
  36. package/lib/interfaces/permissions.d.ts +5 -0
  37. package/lib/interfaces/policies.d.ts +5 -0
  38. package/lib/interfaces/roles.d.ts +8 -0
  39. package/lib/interfaces/rules.d.ts +12 -0
  40. package/lib/interfaces/rules.js +6 -0
  41. package/lib/interfaces/rules.js.map +1 -0
  42. package/lib/interfaces/store.d.ts +3 -0
  43. package/lib/logger/index.d.ts +1 -0
  44. package/lib/logger/logger.d.ts +2 -0
  45. package/lib/logger/logger.js +5 -0
  46. package/lib/logger/logger.js.map +1 -0
  47. package/lib/moleculer-generation/__tests__/integration-proxy-moleculer.test.d.ts +6 -0
  48. package/lib/moleculer-generation/__tests__/moleculerEventHandler.test.d.ts +5 -0
  49. package/lib/moleculer-generation/__tests__/serviceGenerationUtils.test.d.ts +5 -0
  50. package/lib/moleculer-generation/__tests__/typedMoleculerService.test.d.ts +5 -0
  51. package/lib/moleculer-generation/__tests__/typedProxyService.test.d.ts +5 -0
  52. package/lib/moleculer-generation/generateAllServiceSchemas.cjs +628 -0
  53. package/lib/moleculer-generation/index.d.ts +16 -0
  54. package/lib/moleculer-generation/moleculerEventHandler.d.ts +73 -0
  55. package/lib/moleculer-generation/moleculerEventHandler.js +91 -0
  56. package/lib/moleculer-generation/moleculerEventHandler.js.map +1 -0
  57. package/lib/moleculer-generation/serviceGenerationUtils.d.ts +100 -0
  58. package/lib/moleculer-generation/serviceGenerationUtils.js +156 -0
  59. package/lib/moleculer-generation/serviceGenerationUtils.js.map +1 -0
  60. package/lib/moleculer-generation/typedMoleculerService.d.ts +502 -0
  61. package/lib/moleculer-generation/typedMoleculerService.js +685 -0
  62. package/lib/moleculer-generation/typedMoleculerService.js.map +1 -0
  63. package/lib/moleculer-generation/typedProxyService.d.ts +119 -0
  64. package/lib/moleculer-generation/typedProxyService.js +226 -0
  65. package/lib/moleculer-generation/typedProxyService.js.map +1 -0
  66. package/lib/moleculer-generation/zodToMoleculer.d.ts +45 -0
  67. package/lib/moleculer-generation/zodToMoleculer.js +120 -0
  68. package/lib/moleculer-generation/zodToMoleculer.js.map +1 -0
  69. package/lib/utils/extract-tenant-id.d.ts +1 -0
  70. package/lib/utils/extract-tenant-id.js +4 -0
  71. package/lib/utils/extract-tenant-id.js.map +1 -0
  72. package/lib/utils/generate-query-cache-key.d.ts +11 -0
  73. package/lib/utils/generate-query-cache-key.js +13 -0
  74. package/lib/utils/generate-query-cache-key.js.map +1 -0
  75. package/lib/utils/get-directive-args-from-schema.d.ts +13 -0
  76. package/lib/utils/get-directive-args-from-schema.js +25 -0
  77. package/lib/utils/get-directive-args-from-schema.js.map +1 -0
  78. package/lib/utils/index.d.ts +4 -0
  79. package/lib/utils/preferences.d.ts +87 -0
  80. package/lib/utils/preferences.js +40 -0
  81. package/lib/utils/preferences.js.map +1 -0
  82. 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,4 @@
1
+ const extractTenantId = (authority) => {
2
+ const [part] = authority?.split('.') ?? [];
3
+ return part ?? authority;
4
+ };export{extractTenantId};//# sourceMappingURL=extract-tenant-id.js.map
@@ -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"}