@wundergraph/protographic 0.11.0 → 0.12.0

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 (36) hide show
  1. package/README.md +34 -3
  2. package/dist/src/index.d.ts +15 -0
  3. package/dist/src/index.js +10 -0
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/operation-to-proto.d.ts +48 -0
  6. package/dist/src/operation-to-proto.js +378 -0
  7. package/dist/src/operation-to-proto.js.map +1 -0
  8. package/dist/src/operations/field-numbering.d.ts +73 -0
  9. package/dist/src/operations/field-numbering.js +134 -0
  10. package/dist/src/operations/field-numbering.js.map +1 -0
  11. package/dist/src/operations/list-type-utils.d.ts +28 -0
  12. package/dist/src/operations/list-type-utils.js +49 -0
  13. package/dist/src/operations/list-type-utils.js.map +1 -0
  14. package/dist/src/operations/message-builder.d.ts +58 -0
  15. package/dist/src/operations/message-builder.js +377 -0
  16. package/dist/src/operations/message-builder.js.map +1 -0
  17. package/dist/src/operations/proto-text-generator.d.ts +74 -0
  18. package/dist/src/operations/proto-text-generator.js +336 -0
  19. package/dist/src/operations/proto-text-generator.js.map +1 -0
  20. package/dist/src/operations/request-builder.d.ts +56 -0
  21. package/dist/src/operations/request-builder.js +194 -0
  22. package/dist/src/operations/request-builder.js.map +1 -0
  23. package/dist/src/operations/type-mapper.d.ts +66 -0
  24. package/dist/src/operations/type-mapper.js +236 -0
  25. package/dist/src/operations/type-mapper.js.map +1 -0
  26. package/dist/src/proto-options.d.ts +23 -0
  27. package/dist/src/proto-options.js +45 -0
  28. package/dist/src/proto-options.js.map +1 -0
  29. package/dist/src/sdl-to-proto-visitor.d.ts +2 -14
  30. package/dist/src/sdl-to-proto-visitor.js +25 -38
  31. package/dist/src/sdl-to-proto-visitor.js.map +1 -1
  32. package/dist/src/types.d.ts +12 -0
  33. package/dist/src/types.js +2 -0
  34. package/dist/src/types.js.map +1 -0
  35. package/dist/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-builder.js","sourceRoot":"","sources":["../../../src/operations/message-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import protobuf from 'protobufjs';
2
+ /**
3
+ * Options for generating proto text
4
+ */
5
+ export interface ProtoTextOptions {
6
+ /** Package name for the proto file */
7
+ packageName?: string;
8
+ /** Go package option */
9
+ goPackage?: string;
10
+ /** Java package option */
11
+ javaPackage?: string;
12
+ /** Java outer classname option */
13
+ javaOuterClassname?: string;
14
+ /** Java multiple files option */
15
+ javaMultipleFiles?: boolean;
16
+ /** C# namespace option */
17
+ csharpNamespace?: string;
18
+ /** Ruby package option */
19
+ rubyPackage?: string;
20
+ /** PHP namespace option */
21
+ phpNamespace?: string;
22
+ /** PHP metadata namespace option */
23
+ phpMetadataNamespace?: string;
24
+ /** Objective-C class prefix option */
25
+ objcClassPrefix?: string;
26
+ /** Swift prefix option */
27
+ swiftPrefix?: string;
28
+ /** Additional imports to include */
29
+ imports?: string[];
30
+ /** Additional options to include */
31
+ options?: string[];
32
+ /** Whether to include comments */
33
+ includeComments?: boolean;
34
+ }
35
+ /**
36
+ * Converts a protobufjs Root to Protocol Buffer text definition
37
+ *
38
+ * @param root - The protobufjs Root object containing all definitions
39
+ * @param options - Optional configuration for text generation
40
+ * @returns The proto text as a string
41
+ */
42
+ export declare function rootToProtoText(root: protobuf.Root, options?: ProtoTextOptions): string;
43
+ /**
44
+ * Converts a protobuf Service to proto text
45
+ */
46
+ export declare function serviceToProtoText(service: protobuf.Service, options?: ProtoTextOptions): string[];
47
+ /**
48
+ * Converts a protobuf Type (message) to proto text
49
+ */
50
+ export declare function messageToProtoText(message: protobuf.Type, options?: ProtoTextOptions, indent?: number): string[];
51
+ /**
52
+ * Converts a protobuf Enum to proto text
53
+ */
54
+ export declare function enumToProtoText(enumType: protobuf.Enum, options?: ProtoTextOptions, indent?: number): string[];
55
+ /**
56
+ * Formats a protobuf field as proto text
57
+ */
58
+ export declare function formatField(field: protobuf.Field, options?: ProtoTextOptions, indent?: number): string[];
59
+ /**
60
+ * Formats reserved field declarations from protobufjs reserved array
61
+ *
62
+ * The protobufjs reserved array can contain:
63
+ * - Arrays [start, end] representing ranges (e.g., [2, 2] for single number, [5, 10] for range)
64
+ * - Strings representing reserved field names
65
+ *
66
+ * This function separates them into proper proto3 reserved statements:
67
+ * - reserved 2, 5 to 10;
68
+ * - reserved "old_field", "deprecated_field";
69
+ */
70
+ export declare function formatReserved(reserved: Array<number[] | string>, indent?: number): string[];
71
+ /**
72
+ * Helper to format method definitions for services
73
+ */
74
+ export declare function formatMethod(method: protobuf.Method, options?: ProtoTextOptions, indent?: number): string[];
@@ -0,0 +1,336 @@
1
+ import protobuf from 'protobufjs';
2
+ import { buildProtoOptions } from '../proto-options.js';
3
+ /**
4
+ * Helper to format indentation
5
+ */
6
+ function formatIndent(indent, content) {
7
+ return ' '.repeat(indent) + content;
8
+ }
9
+ /**
10
+ * Converts a protobufjs Root to Protocol Buffer text definition
11
+ *
12
+ * @param root - The protobufjs Root object containing all definitions
13
+ * @param options - Optional configuration for text generation
14
+ * @returns The proto text as a string
15
+ */
16
+ export function rootToProtoText(root, options) {
17
+ const lines = generateHeader(root, options);
18
+ // Generate service definitions
19
+ for (const nested of Object.values(root.nestedArray)) {
20
+ if (nested instanceof protobuf.Service) {
21
+ lines.push(...serviceToProtoText(nested, options));
22
+ }
23
+ }
24
+ // Generate message definitions
25
+ for (const nested of Object.values(root.nestedArray)) {
26
+ if (nested instanceof protobuf.Type) {
27
+ lines.push(...messageToProtoText(nested, options));
28
+ }
29
+ }
30
+ // Generate enum definitions
31
+ for (const nested of Object.values(root.nestedArray)) {
32
+ if (nested instanceof protobuf.Enum) {
33
+ lines.push(...enumToProtoText(nested, options));
34
+ }
35
+ }
36
+ return lines.join('\n');
37
+ }
38
+ /**
39
+ * Generates the proto file header (syntax, package, imports, options)
40
+ */
41
+ function generateHeader(root, options) {
42
+ const lines = [];
43
+ // Syntax declaration
44
+ lines.push('syntax = "proto3";');
45
+ // Package declaration
46
+ const packageName = (options === null || options === void 0 ? void 0 : options.packageName) || 'service.v1';
47
+ lines.push(`package ${packageName};`);
48
+ lines.push('');
49
+ // Imports
50
+ const imports = new Set();
51
+ // Only add wrapper types import if actually used
52
+ if (detectWrapperTypeUsage(root)) {
53
+ imports.add('google/protobuf/wrappers.proto');
54
+ }
55
+ // Add custom imports
56
+ if (options === null || options === void 0 ? void 0 : options.imports) {
57
+ options.imports.forEach((imp) => imports.add(imp));
58
+ }
59
+ for (const imp of Array.from(imports).sort()) {
60
+ lines.push(`import "${imp}";`);
61
+ }
62
+ if (imports.size > 0) {
63
+ lines.push('');
64
+ }
65
+ // Options - use shared utility for standard options
66
+ const protoOptions = buildProtoOptions({
67
+ goPackage: options === null || options === void 0 ? void 0 : options.goPackage,
68
+ javaPackage: options === null || options === void 0 ? void 0 : options.javaPackage,
69
+ javaOuterClassname: options === null || options === void 0 ? void 0 : options.javaOuterClassname,
70
+ javaMultipleFiles: options === null || options === void 0 ? void 0 : options.javaMultipleFiles,
71
+ csharpNamespace: options === null || options === void 0 ? void 0 : options.csharpNamespace,
72
+ rubyPackage: options === null || options === void 0 ? void 0 : options.rubyPackage,
73
+ phpNamespace: options === null || options === void 0 ? void 0 : options.phpNamespace,
74
+ phpMetadataNamespace: options === null || options === void 0 ? void 0 : options.phpMetadataNamespace,
75
+ objcClassPrefix: options === null || options === void 0 ? void 0 : options.objcClassPrefix,
76
+ swiftPrefix: options === null || options === void 0 ? void 0 : options.swiftPrefix,
77
+ }, packageName);
78
+ // Add any custom options
79
+ if (options === null || options === void 0 ? void 0 : options.options) {
80
+ protoOptions.push(...options.options);
81
+ }
82
+ if (protoOptions.length > 0) {
83
+ lines.push(...protoOptions);
84
+ lines.push('');
85
+ }
86
+ return lines;
87
+ }
88
+ /**
89
+ * Converts a protobuf Service to proto text
90
+ */
91
+ export function serviceToProtoText(service, options) {
92
+ const lines = [];
93
+ // Only include service comment if there's an actual custom comment
94
+ if ((options === null || options === void 0 ? void 0 : options.includeComments) && service.comment) {
95
+ lines.push(`// ${service.comment}`);
96
+ }
97
+ lines.push(`service ${service.name} {`);
98
+ // Sort methods for consistent output
99
+ const methods = Object.values(service.methods).sort((a, b) => a.name.localeCompare(b.name));
100
+ for (let i = 0; i < methods.length; i++) {
101
+ const method = methods[i];
102
+ // Add blank line between methods for readability
103
+ if (i > 0) {
104
+ lines.push('');
105
+ }
106
+ if ((options === null || options === void 0 ? void 0 : options.includeComments) && method.comment) {
107
+ lines.push(formatIndent(1, `// ${method.comment}`));
108
+ }
109
+ // Build method signature with streaming support
110
+ const requestPart = method.requestStream ? `stream ${method.requestType}` : method.requestType;
111
+ const responsePart = method.responseStream ? `stream ${method.responseType}` : method.responseType;
112
+ // Check if method has idempotency level option
113
+ const methodWithIdempotency = method;
114
+ const idempotencyLevel = methodWithIdempotency.idempotencyLevel;
115
+ if (idempotencyLevel) {
116
+ lines.push(formatIndent(1, `rpc ${method.name}(${requestPart}) returns (${responsePart}) {`));
117
+ lines.push(formatIndent(2, `option idempotency_level = ${idempotencyLevel};`));
118
+ lines.push(formatIndent(1, `}`));
119
+ }
120
+ else {
121
+ lines.push(formatIndent(1, `rpc ${method.name}(${requestPart}) returns (${responsePart}) {}`));
122
+ }
123
+ }
124
+ lines.push('}');
125
+ lines.push('');
126
+ return lines;
127
+ }
128
+ /**
129
+ * Converts a protobuf Type (message) to proto text
130
+ */
131
+ export function messageToProtoText(message, options, indent = 0) {
132
+ const lines = [];
133
+ // Message comment
134
+ if ((options === null || options === void 0 ? void 0 : options.includeComments) && message.comment) {
135
+ lines.push(formatIndent(indent, `// ${message.comment}`));
136
+ }
137
+ lines.push(formatIndent(indent, `message ${message.name} {`));
138
+ // First, add nested types (messages and enums)
139
+ for (const nested of Object.values(message.nestedArray)) {
140
+ if (nested instanceof protobuf.Type) {
141
+ const nestedLines = messageToProtoText(nested, options, indent + 1);
142
+ lines.push(...nestedLines);
143
+ }
144
+ else if (nested instanceof protobuf.Enum) {
145
+ const nestedLines = enumToProtoText(nested, options, indent + 1);
146
+ lines.push(...nestedLines);
147
+ }
148
+ }
149
+ // Then, add reserved declarations if any exist
150
+ if (message.reserved && Array.isArray(message.reserved) && message.reserved.length > 0) {
151
+ const reservedLines = formatReserved(message.reserved, indent + 1);
152
+ lines.push(...reservedLines);
153
+ }
154
+ // Finally, add fields
155
+ for (const field of message.fieldsArray) {
156
+ lines.push(...formatField(field, options, indent + 1));
157
+ }
158
+ lines.push(formatIndent(indent, `}`));
159
+ // Add blank line after top-level messages
160
+ if (indent === 0) {
161
+ lines.push('');
162
+ }
163
+ return lines;
164
+ }
165
+ /**
166
+ * Converts a protobuf Enum to proto text
167
+ */
168
+ export function enumToProtoText(enumType, options, indent = 0) {
169
+ const lines = [];
170
+ // Enum comment
171
+ if ((options === null || options === void 0 ? void 0 : options.includeComments) && enumType.comment) {
172
+ lines.push(formatIndent(indent, `// ${enumType.comment}`));
173
+ }
174
+ lines.push(formatIndent(indent, `enum ${enumType.name} {`));
175
+ // Add reserved declarations if any exist
176
+ if (enumType.reserved && Array.isArray(enumType.reserved) && enumType.reserved.length > 0) {
177
+ const reservedLines = formatReserved(enumType.reserved, indent + 1);
178
+ lines.push(...reservedLines);
179
+ }
180
+ // Add enum values
181
+ for (const [valueName, valueNumber] of Object.entries(enumType.values)) {
182
+ lines.push(formatIndent(indent + 1, `${valueName} = ${valueNumber};`));
183
+ }
184
+ lines.push(formatIndent(indent, `}`));
185
+ // Add blank line after top-level enums
186
+ if (indent === 0) {
187
+ lines.push('');
188
+ }
189
+ return lines;
190
+ }
191
+ /**
192
+ * Formats a protobuf field as proto text
193
+ */
194
+ export function formatField(field, options, indent = 1) {
195
+ const lines = [];
196
+ // Field comment
197
+ if ((options === null || options === void 0 ? void 0 : options.includeComments) && field.comment) {
198
+ lines.push(formatIndent(indent, `// ${field.comment}`));
199
+ }
200
+ // Build field line
201
+ const repeated = field.repeated ? 'repeated ' : '';
202
+ lines.push(formatIndent(indent, `${repeated}${field.type} ${field.name} = ${field.id};`));
203
+ return lines;
204
+ }
205
+ /**
206
+ * Formats reserved field declarations from protobufjs reserved array
207
+ *
208
+ * The protobufjs reserved array can contain:
209
+ * - Arrays [start, end] representing ranges (e.g., [2, 2] for single number, [5, 10] for range)
210
+ * - Strings representing reserved field names
211
+ *
212
+ * This function separates them into proper proto3 reserved statements:
213
+ * - reserved 2, 5 to 10;
214
+ * - reserved "old_field", "deprecated_field";
215
+ */
216
+ export function formatReserved(reserved, indent = 1) {
217
+ const lines = [];
218
+ // Separate numbers and names
219
+ const numbers = [];
220
+ const names = [];
221
+ for (const item of reserved) {
222
+ if (typeof item === 'string') {
223
+ names.push(item);
224
+ }
225
+ else if (Array.isArray(item) && item.length >= 2) {
226
+ // Extract all numbers from the range [start, end]
227
+ const [start, end] = item;
228
+ for (let i = start; i <= end; i++) {
229
+ numbers.push(i);
230
+ }
231
+ }
232
+ }
233
+ // Format reserved numbers if any
234
+ if (numbers.length > 0) {
235
+ const formattedNumbers = formatReservedNumbers(numbers);
236
+ lines.push(formatIndent(indent, `reserved ${formattedNumbers};`));
237
+ }
238
+ // Format reserved names if any
239
+ if (names.length > 0) {
240
+ const formattedNames = names.map((name) => `"${name}"`).join(', ');
241
+ lines.push(formatIndent(indent, `reserved ${formattedNames};`));
242
+ }
243
+ return lines;
244
+ }
245
+ /**
246
+ * Formats a list of reserved field numbers into proto3 syntax
247
+ * Handles both individual numbers and ranges (e.g., "2, 5 to 10, 15")
248
+ */
249
+ function formatReservedNumbers(numbers) {
250
+ if (numbers.length === 0)
251
+ return '';
252
+ // Sort and deduplicate numbers
253
+ const sortedNumbers = [...new Set(numbers)].sort((a, b) => a - b);
254
+ // Simple case: only one number
255
+ if (sortedNumbers.length === 1) {
256
+ return sortedNumbers[0].toString();
257
+ }
258
+ // Find continuous ranges to compact the representation
259
+ const ranges = [];
260
+ let rangeStart = sortedNumbers[0];
261
+ let rangeEnd = sortedNumbers[0];
262
+ for (let i = 1; i < sortedNumbers.length; i++) {
263
+ if (sortedNumbers[i] === rangeEnd + 1) {
264
+ // Extend the current range
265
+ rangeEnd = sortedNumbers[i];
266
+ }
267
+ else {
268
+ // End the current range and start a new one
269
+ ranges.push([rangeStart, rangeEnd]);
270
+ rangeStart = sortedNumbers[i];
271
+ rangeEnd = sortedNumbers[i];
272
+ }
273
+ }
274
+ // Add the last range
275
+ ranges.push([rangeStart, rangeEnd]);
276
+ // Format the ranges
277
+ return ranges
278
+ .map(([start, end]) => {
279
+ if (start === end) {
280
+ return start.toString();
281
+ }
282
+ else {
283
+ return `${start} to ${end}`;
284
+ }
285
+ })
286
+ .join(', ');
287
+ }
288
+ /**
289
+ * Detects if any message in the root uses Google Protocol Buffer wrapper types
290
+ */
291
+ function detectWrapperTypeUsage(root) {
292
+ for (const nested of root.nestedArray) {
293
+ if (nested instanceof protobuf.Type) {
294
+ if (messageUsesWrapperTypes(nested)) {
295
+ return true;
296
+ }
297
+ }
298
+ }
299
+ return false;
300
+ }
301
+ /**
302
+ * Recursively checks if a message or its nested messages use wrapper types
303
+ */
304
+ function messageUsesWrapperTypes(message) {
305
+ // Check fields in this message
306
+ for (const field of message.fieldsArray) {
307
+ if (field.type.startsWith('google.protobuf.')) {
308
+ return true;
309
+ }
310
+ }
311
+ // Check nested messages recursively
312
+ for (const nested of message.nestedArray) {
313
+ if (nested instanceof protobuf.Type) {
314
+ if (messageUsesWrapperTypes(nested)) {
315
+ return true;
316
+ }
317
+ }
318
+ }
319
+ return false;
320
+ }
321
+ /**
322
+ * Helper to format method definitions for services
323
+ */
324
+ export function formatMethod(method, options, indent = 1) {
325
+ const lines = [];
326
+ // Method comment
327
+ if ((options === null || options === void 0 ? void 0 : options.includeComments) && method.comment) {
328
+ lines.push(formatIndent(indent, `// ${method.comment}`));
329
+ }
330
+ // Build method signature with streaming support
331
+ const requestPart = method.requestStream ? `stream ${method.requestType}` : method.requestType;
332
+ const responsePart = method.responseStream ? `stream ${method.responseType}` : method.responseType;
333
+ lines.push(formatIndent(indent, `rpc ${method.name}(${requestPart}) returns (${responsePart}) {}`));
334
+ return lines;
335
+ }
336
+ //# sourceMappingURL=proto-text-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proto-text-generator.js","sourceRoot":"","sources":["../../../src/operations/proto-text-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import protobuf from 'protobufjs';
2
+ import { VariableDefinitionNode, GraphQLSchema, GraphQLInputType, TypeNode, GraphQLInputObjectType, GraphQLEnumType } from 'graphql';
3
+ import { FieldNumberManager } from './field-numbering.js';
4
+ /**
5
+ * Options for building request messages
6
+ */
7
+ export interface RequestBuilderOptions {
8
+ /** Whether to include comments/descriptions */
9
+ includeComments?: boolean;
10
+ /** Field number manager for consistent numbering */
11
+ fieldNumberManager?: FieldNumberManager;
12
+ /** The GraphQL schema for type lookups */
13
+ schema?: GraphQLSchema;
14
+ /** Custom scalar type mappings (scalar name -> proto type) */
15
+ customScalarMappings?: Record<string, string>;
16
+ /** Callback to ensure nested list wrapper messages are created */
17
+ ensureNestedListWrapper?: (graphqlType: GraphQLInputType) => string;
18
+ }
19
+ /**
20
+ * Builds a Protocol Buffer request message from GraphQL operation variables
21
+ *
22
+ * @param messageName - The name for the request message
23
+ * @param variables - Array of variable definitions from the operation
24
+ * @param schema - The GraphQL schema for type resolution
25
+ * @param options - Optional configuration
26
+ * @returns A protobuf Type object representing the request message
27
+ */
28
+ export declare function buildRequestMessage(messageName: string, variables: ReadonlyArray<VariableDefinitionNode>, schema: GraphQLSchema, options?: RequestBuilderOptions): protobuf.Type;
29
+ /**
30
+ * Builds a proto field from a GraphQL variable definition
31
+ *
32
+ * @param variableName - The name of the variable
33
+ * @param typeNode - The GraphQL type node from the variable definition
34
+ * @param schema - The GraphQL schema for type resolution
35
+ * @param messageName - The name of the message this field belongs to
36
+ * @param options - Optional configuration
37
+ * @param defaultFieldNumber - Default field number if no manager is provided
38
+ * @returns A protobuf Field object
39
+ */
40
+ export declare function buildVariableField(variableName: string, typeNode: TypeNode, schema: GraphQLSchema, messageName: string, options?: RequestBuilderOptions, defaultFieldNumber?: number): protobuf.Field | null;
41
+ /**
42
+ * Builds an input object message type from a GraphQL input object type
43
+ *
44
+ * @param inputType - The GraphQL input object type
45
+ * @param options - Optional configuration
46
+ * @returns A protobuf Type object
47
+ */
48
+ export declare function buildInputObjectMessage(inputType: GraphQLInputObjectType, options?: RequestBuilderOptions): protobuf.Type;
49
+ /**
50
+ * Builds an enum type from a GraphQL enum type
51
+ *
52
+ * @param enumType - The GraphQL enum type
53
+ * @param options - Optional configuration
54
+ * @returns A protobuf Enum object
55
+ */
56
+ export declare function buildEnumType(enumType: GraphQLEnumType, options?: RequestBuilderOptions): protobuf.Enum;