@effect-gql/core 0.1.0 → 1.1.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 (164) hide show
  1. package/README.md +100 -0
  2. package/builder/index.cjs +1446 -0
  3. package/builder/index.cjs.map +1 -0
  4. package/builder/index.d.cts +260 -0
  5. package/{dist/builder/pipe-api.d.ts → builder/index.d.ts} +50 -21
  6. package/builder/index.js +1405 -0
  7. package/builder/index.js.map +1 -0
  8. package/index.cjs +3469 -0
  9. package/index.cjs.map +1 -0
  10. package/index.d.cts +529 -0
  11. package/index.d.ts +529 -0
  12. package/index.js +3292 -0
  13. package/index.js.map +1 -0
  14. package/package.json +19 -28
  15. package/schema-builder-DKvkzU_M.d.cts +965 -0
  16. package/schema-builder-DKvkzU_M.d.ts +965 -0
  17. package/server/index.cjs +1579 -0
  18. package/server/index.cjs.map +1 -0
  19. package/server/index.d.cts +682 -0
  20. package/server/index.d.ts +682 -0
  21. package/server/index.js +1548 -0
  22. package/server/index.js.map +1 -0
  23. package/dist/analyzer-extension.d.ts +0 -105
  24. package/dist/analyzer-extension.d.ts.map +0 -1
  25. package/dist/analyzer-extension.js +0 -137
  26. package/dist/analyzer-extension.js.map +0 -1
  27. package/dist/builder/execute.d.ts +0 -26
  28. package/dist/builder/execute.d.ts.map +0 -1
  29. package/dist/builder/execute.js +0 -104
  30. package/dist/builder/execute.js.map +0 -1
  31. package/dist/builder/field-builders.d.ts +0 -30
  32. package/dist/builder/field-builders.d.ts.map +0 -1
  33. package/dist/builder/field-builders.js +0 -200
  34. package/dist/builder/field-builders.js.map +0 -1
  35. package/dist/builder/index.d.ts +0 -7
  36. package/dist/builder/index.d.ts.map +0 -1
  37. package/dist/builder/index.js +0 -31
  38. package/dist/builder/index.js.map +0 -1
  39. package/dist/builder/pipe-api.d.ts.map +0 -1
  40. package/dist/builder/pipe-api.js +0 -151
  41. package/dist/builder/pipe-api.js.map +0 -1
  42. package/dist/builder/schema-builder.d.ts +0 -301
  43. package/dist/builder/schema-builder.d.ts.map +0 -1
  44. package/dist/builder/schema-builder.js +0 -566
  45. package/dist/builder/schema-builder.js.map +0 -1
  46. package/dist/builder/type-registry.d.ts +0 -80
  47. package/dist/builder/type-registry.d.ts.map +0 -1
  48. package/dist/builder/type-registry.js +0 -505
  49. package/dist/builder/type-registry.js.map +0 -1
  50. package/dist/builder/types.d.ts +0 -283
  51. package/dist/builder/types.d.ts.map +0 -1
  52. package/dist/builder/types.js +0 -3
  53. package/dist/builder/types.js.map +0 -1
  54. package/dist/cli/generate-schema.d.ts +0 -29
  55. package/dist/cli/generate-schema.d.ts.map +0 -1
  56. package/dist/cli/generate-schema.js +0 -233
  57. package/dist/cli/generate-schema.js.map +0 -1
  58. package/dist/cli/index.d.ts +0 -19
  59. package/dist/cli/index.d.ts.map +0 -1
  60. package/dist/cli/index.js +0 -24
  61. package/dist/cli/index.js.map +0 -1
  62. package/dist/context.d.ts +0 -18
  63. package/dist/context.d.ts.map +0 -1
  64. package/dist/context.js +0 -11
  65. package/dist/context.js.map +0 -1
  66. package/dist/error.d.ts +0 -45
  67. package/dist/error.d.ts.map +0 -1
  68. package/dist/error.js +0 -29
  69. package/dist/error.js.map +0 -1
  70. package/dist/extensions.d.ts +0 -130
  71. package/dist/extensions.d.ts.map +0 -1
  72. package/dist/extensions.js +0 -78
  73. package/dist/extensions.js.map +0 -1
  74. package/dist/index.d.ts +0 -12
  75. package/dist/index.d.ts.map +0 -1
  76. package/dist/index.js +0 -47
  77. package/dist/index.js.map +0 -1
  78. package/dist/loader.d.ts +0 -169
  79. package/dist/loader.d.ts.map +0 -1
  80. package/dist/loader.js +0 -237
  81. package/dist/loader.js.map +0 -1
  82. package/dist/resolver-context.d.ts +0 -154
  83. package/dist/resolver-context.d.ts.map +0 -1
  84. package/dist/resolver-context.js +0 -184
  85. package/dist/resolver-context.js.map +0 -1
  86. package/dist/schema-mapping.d.ts +0 -30
  87. package/dist/schema-mapping.d.ts.map +0 -1
  88. package/dist/schema-mapping.js +0 -280
  89. package/dist/schema-mapping.js.map +0 -1
  90. package/dist/server/cache-control.d.ts +0 -96
  91. package/dist/server/cache-control.d.ts.map +0 -1
  92. package/dist/server/cache-control.js +0 -308
  93. package/dist/server/cache-control.js.map +0 -1
  94. package/dist/server/complexity.d.ts +0 -165
  95. package/dist/server/complexity.d.ts.map +0 -1
  96. package/dist/server/complexity.js +0 -433
  97. package/dist/server/complexity.js.map +0 -1
  98. package/dist/server/config.d.ts +0 -66
  99. package/dist/server/config.d.ts.map +0 -1
  100. package/dist/server/config.js +0 -104
  101. package/dist/server/config.js.map +0 -1
  102. package/dist/server/graphiql.d.ts +0 -5
  103. package/dist/server/graphiql.d.ts.map +0 -1
  104. package/dist/server/graphiql.js +0 -43
  105. package/dist/server/graphiql.js.map +0 -1
  106. package/dist/server/index.d.ts +0 -18
  107. package/dist/server/index.d.ts.map +0 -1
  108. package/dist/server/index.js +0 -48
  109. package/dist/server/index.js.map +0 -1
  110. package/dist/server/router.d.ts +0 -79
  111. package/dist/server/router.d.ts.map +0 -1
  112. package/dist/server/router.js +0 -232
  113. package/dist/server/router.js.map +0 -1
  114. package/dist/server/schema-builder-extensions.d.ts +0 -42
  115. package/dist/server/schema-builder-extensions.d.ts.map +0 -1
  116. package/dist/server/schema-builder-extensions.js +0 -48
  117. package/dist/server/schema-builder-extensions.js.map +0 -1
  118. package/dist/server/sse-adapter.d.ts +0 -64
  119. package/dist/server/sse-adapter.d.ts.map +0 -1
  120. package/dist/server/sse-adapter.js +0 -227
  121. package/dist/server/sse-adapter.js.map +0 -1
  122. package/dist/server/sse-types.d.ts +0 -192
  123. package/dist/server/sse-types.d.ts.map +0 -1
  124. package/dist/server/sse-types.js +0 -63
  125. package/dist/server/sse-types.js.map +0 -1
  126. package/dist/server/ws-adapter.d.ts +0 -39
  127. package/dist/server/ws-adapter.d.ts.map +0 -1
  128. package/dist/server/ws-adapter.js +0 -247
  129. package/dist/server/ws-adapter.js.map +0 -1
  130. package/dist/server/ws-types.d.ts +0 -169
  131. package/dist/server/ws-types.d.ts.map +0 -1
  132. package/dist/server/ws-types.js +0 -11
  133. package/dist/server/ws-types.js.map +0 -1
  134. package/dist/server/ws-utils.d.ts +0 -42
  135. package/dist/server/ws-utils.d.ts.map +0 -1
  136. package/dist/server/ws-utils.js +0 -99
  137. package/dist/server/ws-utils.js.map +0 -1
  138. package/src/analyzer-extension.ts +0 -254
  139. package/src/builder/execute.ts +0 -153
  140. package/src/builder/field-builders.ts +0 -322
  141. package/src/builder/index.ts +0 -48
  142. package/src/builder/pipe-api.ts +0 -312
  143. package/src/builder/schema-builder.ts +0 -970
  144. package/src/builder/type-registry.ts +0 -670
  145. package/src/builder/types.ts +0 -305
  146. package/src/context.ts +0 -23
  147. package/src/error.ts +0 -32
  148. package/src/extensions.ts +0 -240
  149. package/src/index.ts +0 -32
  150. package/src/loader.ts +0 -363
  151. package/src/resolver-context.ts +0 -253
  152. package/src/schema-mapping.ts +0 -307
  153. package/src/server/cache-control.ts +0 -590
  154. package/src/server/complexity.ts +0 -774
  155. package/src/server/config.ts +0 -174
  156. package/src/server/graphiql.ts +0 -38
  157. package/src/server/index.ts +0 -96
  158. package/src/server/router.ts +0 -432
  159. package/src/server/schema-builder-extensions.ts +0 -51
  160. package/src/server/sse-adapter.ts +0 -327
  161. package/src/server/sse-types.ts +0 -234
  162. package/src/server/ws-adapter.ts +0 -355
  163. package/src/server/ws-types.ts +0 -192
  164. package/src/server/ws-utils.ts +0 -136
@@ -1,433 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.combineCalculators = exports.depthOnlyCalculator = exports.ComplexityConfigFromEnv = exports.validateComplexity = exports.defaultComplexityCalculator = exports.ComplexityAnalysisError = exports.ComplexityLimitExceededError = void 0;
4
- const effect_1 = require("effect");
5
- const graphql_1 = require("graphql");
6
- // ============================================================================
7
- // Errors
8
- // ============================================================================
9
- /**
10
- * Error thrown when query complexity exceeds configured limits
11
- */
12
- class ComplexityLimitExceededError extends effect_1.Data.TaggedError("ComplexityLimitExceededError") {
13
- }
14
- exports.ComplexityLimitExceededError = ComplexityLimitExceededError;
15
- /**
16
- * Error thrown when complexity analysis fails
17
- */
18
- class ComplexityAnalysisError extends effect_1.Data.TaggedError("ComplexityAnalysisError") {
19
- }
20
- exports.ComplexityAnalysisError = ComplexityAnalysisError;
21
- // ============================================================================
22
- // Default Calculator
23
- // ============================================================================
24
- /**
25
- * Default complexity calculator that walks the AST and computes:
26
- * - depth: Maximum nesting level
27
- * - complexity: Sum of field costs
28
- * - fieldCount: Total number of field selections
29
- * - aliasCount: Number of aliased fields
30
- */
31
- const defaultComplexityCalculator = (defaultCost = 1) => {
32
- return (info) => effect_1.Effect.try({
33
- try: () => {
34
- const fragments = new Map();
35
- // Collect fragment definitions
36
- for (const definition of info.document.definitions) {
37
- if (definition.kind === graphql_1.Kind.FRAGMENT_DEFINITION) {
38
- fragments.set(definition.name.value, definition);
39
- }
40
- }
41
- // Get the root type for the operation
42
- const rootType = getRootType(info.schema, info.operation.operation);
43
- if (!rootType) {
44
- throw new Error(`No root type found for operation: ${info.operation.operation}`);
45
- }
46
- // Analyze the selection set
47
- const result = analyzeSelectionSet(info.operation.selectionSet, rootType, info.schema, fragments, info.fieldComplexities, info.variables ?? {}, defaultCost, 1, // Starting depth
48
- new Set() // Visited fragments to prevent infinite loops
49
- );
50
- return result;
51
- },
52
- catch: (error) => new ComplexityAnalysisError({
53
- message: `Failed to analyze query complexity: ${error}`,
54
- cause: error,
55
- }),
56
- });
57
- };
58
- exports.defaultComplexityCalculator = defaultComplexityCalculator;
59
- /**
60
- * Get the root type for an operation
61
- */
62
- function getRootType(schema, operation) {
63
- switch (operation) {
64
- case "query":
65
- return schema.getQueryType() ?? null;
66
- case "mutation":
67
- return schema.getMutationType() ?? null;
68
- case "subscription":
69
- return schema.getSubscriptionType() ?? null;
70
- }
71
- }
72
- /**
73
- * Get the named type from a potentially wrapped type
74
- */
75
- function getNamedType(type) {
76
- if (type instanceof graphql_1.GraphQLNonNull || type instanceof graphql_1.GraphQLList) {
77
- return getNamedType(type.ofType);
78
- }
79
- if (type instanceof graphql_1.GraphQLObjectType) {
80
- return type;
81
- }
82
- return null;
83
- }
84
- /**
85
- * Merge a child result into an accumulator (mutates accumulator)
86
- */
87
- function accumulateResult(acc, result) {
88
- acc.maxDepth = Math.max(acc.maxDepth, result.depth);
89
- acc.complexity += result.complexity;
90
- acc.fieldCount += result.fieldCount;
91
- acc.aliasCount += result.aliasCount;
92
- }
93
- /**
94
- * Analyze a selection set and return complexity metrics
95
- */
96
- function analyzeSelectionSet(selectionSet, parentType, schema, fragments, fieldComplexities, variables, defaultCost, currentDepth, visitedFragments) {
97
- const ctx = { schema, fragments, fieldComplexities, variables, defaultCost };
98
- const acc = { maxDepth: currentDepth, complexity: 0, fieldCount: 0, aliasCount: 0 };
99
- for (const selection of selectionSet.selections) {
100
- const result = analyzeSelection(selection, parentType, ctx, currentDepth, visitedFragments);
101
- accumulateResult(acc, result);
102
- }
103
- return {
104
- depth: acc.maxDepth,
105
- complexity: acc.complexity,
106
- fieldCount: acc.fieldCount,
107
- aliasCount: acc.aliasCount,
108
- };
109
- }
110
- /**
111
- * Analyze a single selection node (field, fragment spread, or inline fragment)
112
- */
113
- function analyzeSelection(selection, parentType, ctx, currentDepth, visitedFragments) {
114
- switch (selection.kind) {
115
- case graphql_1.Kind.FIELD:
116
- return analyzeField(selection, parentType, ctx, currentDepth, visitedFragments);
117
- case graphql_1.Kind.FRAGMENT_SPREAD:
118
- return analyzeFragmentSpread(selection, ctx, currentDepth, visitedFragments);
119
- case graphql_1.Kind.INLINE_FRAGMENT:
120
- return analyzeInlineFragment(selection, parentType, ctx, currentDepth, visitedFragments);
121
- }
122
- }
123
- /**
124
- * Analyze a field node
125
- */
126
- function analyzeField(field, parentType, ctx, currentDepth, visitedFragments) {
127
- const fieldName = field.name.value;
128
- const aliasCount = field.alias ? 1 : 0;
129
- // Introspection fields
130
- if (fieldName.startsWith("__")) {
131
- return { depth: currentDepth, complexity: 0, fieldCount: 1, aliasCount };
132
- }
133
- // Get the field from the schema
134
- const schemaField = parentType.getFields()[fieldName];
135
- if (!schemaField) {
136
- // Field not found - skip (will be caught by validation)
137
- return { depth: currentDepth, complexity: ctx.defaultCost, fieldCount: 1, aliasCount };
138
- }
139
- // Calculate field arguments
140
- const args = resolveFieldArguments(field, ctx.variables);
141
- // Get field complexity
142
- const complexityKey = `${parentType.name}.${fieldName}`;
143
- const fieldComplexity = ctx.fieldComplexities.get(complexityKey);
144
- const cost = fieldComplexity !== undefined
145
- ? typeof fieldComplexity === "function"
146
- ? fieldComplexity(args)
147
- : fieldComplexity
148
- : ctx.defaultCost;
149
- // If the field has a selection set, analyze it
150
- if (field.selectionSet) {
151
- const fieldType = getNamedType(schemaField.type);
152
- if (fieldType) {
153
- const nestedResult = analyzeSelectionSet(field.selectionSet, fieldType, ctx.schema, ctx.fragments, ctx.fieldComplexities, ctx.variables, ctx.defaultCost, currentDepth + 1, visitedFragments);
154
- return {
155
- depth: nestedResult.depth,
156
- complexity: cost + nestedResult.complexity,
157
- fieldCount: 1 + nestedResult.fieldCount,
158
- aliasCount: aliasCount + nestedResult.aliasCount,
159
- };
160
- }
161
- }
162
- return { depth: currentDepth, complexity: cost, fieldCount: 1, aliasCount };
163
- }
164
- /**
165
- * Analyze a fragment spread
166
- */
167
- function analyzeFragmentSpread(spread, ctx, currentDepth, visitedFragments) {
168
- const fragmentName = spread.name.value;
169
- // Prevent infinite loops with fragment cycles
170
- if (visitedFragments.has(fragmentName)) {
171
- return { depth: currentDepth, complexity: 0, fieldCount: 0, aliasCount: 0 };
172
- }
173
- const fragment = ctx.fragments.get(fragmentName);
174
- if (!fragment) {
175
- return { depth: currentDepth, complexity: 0, fieldCount: 0, aliasCount: 0 };
176
- }
177
- const fragmentType = ctx.schema.getType(fragment.typeCondition.name.value);
178
- if (!(fragmentType instanceof graphql_1.GraphQLObjectType)) {
179
- return { depth: currentDepth, complexity: 0, fieldCount: 0, aliasCount: 0 };
180
- }
181
- const newVisited = new Set(visitedFragments);
182
- newVisited.add(fragmentName);
183
- return analyzeSelectionSet(fragment.selectionSet, fragmentType, ctx.schema, ctx.fragments, ctx.fieldComplexities, ctx.variables, ctx.defaultCost, currentDepth, newVisited);
184
- }
185
- /**
186
- * Analyze an inline fragment
187
- */
188
- function analyzeInlineFragment(fragment, parentType, ctx, currentDepth, visitedFragments) {
189
- let targetType = parentType;
190
- if (fragment.typeCondition) {
191
- const conditionType = ctx.schema.getType(fragment.typeCondition.name.value);
192
- if (conditionType instanceof graphql_1.GraphQLObjectType) {
193
- targetType = conditionType;
194
- }
195
- }
196
- return analyzeSelectionSet(fragment.selectionSet, targetType, ctx.schema, ctx.fragments, ctx.fieldComplexities, ctx.variables, ctx.defaultCost, currentDepth, visitedFragments);
197
- }
198
- /**
199
- * Resolve field arguments, substituting variables
200
- */
201
- function resolveFieldArguments(field, variables) {
202
- const args = {};
203
- if (!field.arguments) {
204
- return args;
205
- }
206
- for (const arg of field.arguments) {
207
- const value = arg.value;
208
- switch (value.kind) {
209
- case graphql_1.Kind.VARIABLE:
210
- args[arg.name.value] = variables[value.name.value];
211
- break;
212
- case graphql_1.Kind.INT:
213
- args[arg.name.value] = parseInt(value.value, 10);
214
- break;
215
- case graphql_1.Kind.FLOAT:
216
- args[arg.name.value] = parseFloat(value.value);
217
- break;
218
- case graphql_1.Kind.STRING:
219
- args[arg.name.value] = value.value;
220
- break;
221
- case graphql_1.Kind.BOOLEAN:
222
- args[arg.name.value] = value.value;
223
- break;
224
- case graphql_1.Kind.NULL:
225
- args[arg.name.value] = null;
226
- break;
227
- case graphql_1.Kind.ENUM:
228
- args[arg.name.value] = value.value;
229
- break;
230
- case graphql_1.Kind.LIST:
231
- // Simplified - just use empty array for complexity calculation
232
- args[arg.name.value] = [];
233
- break;
234
- case graphql_1.Kind.OBJECT:
235
- // Simplified - just use empty object for complexity calculation
236
- args[arg.name.value] = {};
237
- break;
238
- }
239
- }
240
- return args;
241
- }
242
- // ============================================================================
243
- // Validation
244
- // ============================================================================
245
- /**
246
- * Validate query complexity against configured limits.
247
- * Returns the complexity result if within limits, or fails with ComplexityLimitExceededError.
248
- */
249
- const validateComplexity = (query, operationName, variables, schema, fieldComplexities, config) => effect_1.Effect.gen(function* () {
250
- // Parse the query
251
- const document = yield* effect_1.Effect.try({
252
- try: () => (0, graphql_1.parse)(query),
253
- catch: (error) => new ComplexityAnalysisError({
254
- message: `Failed to parse query: ${error}`,
255
- cause: error,
256
- }),
257
- });
258
- // Find the operation
259
- const operation = yield* effect_1.Effect.try({
260
- try: () => {
261
- const operations = document.definitions.filter((d) => d.kind === graphql_1.Kind.OPERATION_DEFINITION);
262
- if (operations.length === 0) {
263
- throw new Error("No operation found in query");
264
- }
265
- if (operationName) {
266
- const op = operations.find((o) => o.name?.value === operationName);
267
- if (!op) {
268
- throw new Error(`Operation "${operationName}" not found`);
269
- }
270
- return op;
271
- }
272
- if (operations.length > 1) {
273
- throw new Error("Multiple operations found - operationName required");
274
- }
275
- return operations[0];
276
- },
277
- catch: (error) => new ComplexityAnalysisError({
278
- message: String(error),
279
- cause: error,
280
- }),
281
- });
282
- // Calculate complexity
283
- const calculator = config.calculator ?? (0, exports.defaultComplexityCalculator)(config.defaultFieldComplexity ?? 1);
284
- const result = yield* calculator({
285
- document,
286
- operation,
287
- variables,
288
- schema,
289
- fieldComplexities,
290
- });
291
- // Check limits
292
- const checkLimit = (limitType, limit, actual) => effect_1.Effect.gen(function* () {
293
- if (limit !== undefined && actual > limit) {
294
- const exceededInfo = {
295
- result,
296
- exceededLimit: limitType,
297
- limit,
298
- actual,
299
- query,
300
- operationName,
301
- };
302
- // Call onExceeded hook if provided
303
- if (config.onExceeded) {
304
- yield* config.onExceeded(exceededInfo);
305
- }
306
- yield* effect_1.Effect.fail(new ComplexityLimitExceededError({
307
- message: `Query ${limitType} of ${actual} exceeds maximum allowed ${limitType} of ${limit}`,
308
- limit,
309
- actual,
310
- limitType,
311
- }));
312
- }
313
- });
314
- yield* checkLimit("depth", config.maxDepth, result.depth);
315
- yield* checkLimit("complexity", config.maxComplexity, result.complexity);
316
- yield* checkLimit("aliases", config.maxAliases, result.aliasCount);
317
- yield* checkLimit("fields", config.maxFields, result.fieldCount);
318
- return result;
319
- });
320
- exports.validateComplexity = validateComplexity;
321
- // ============================================================================
322
- // Environment Configuration
323
- // ============================================================================
324
- /**
325
- * Effect Config for loading complexity configuration from environment variables.
326
- *
327
- * Environment variables:
328
- * - GRAPHQL_MAX_DEPTH: Maximum query depth
329
- * - GRAPHQL_MAX_COMPLEXITY: Maximum complexity score
330
- * - GRAPHQL_MAX_ALIASES: Maximum number of aliases
331
- * - GRAPHQL_MAX_FIELDS: Maximum number of fields
332
- * - GRAPHQL_DEFAULT_FIELD_COMPLEXITY: Default field complexity (default: 1)
333
- */
334
- exports.ComplexityConfigFromEnv = effect_1.Config.all({
335
- maxDepth: effect_1.Config.number("GRAPHQL_MAX_DEPTH").pipe(effect_1.Config.option),
336
- maxComplexity: effect_1.Config.number("GRAPHQL_MAX_COMPLEXITY").pipe(effect_1.Config.option),
337
- maxAliases: effect_1.Config.number("GRAPHQL_MAX_ALIASES").pipe(effect_1.Config.option),
338
- maxFields: effect_1.Config.number("GRAPHQL_MAX_FIELDS").pipe(effect_1.Config.option),
339
- defaultFieldComplexity: effect_1.Config.number("GRAPHQL_DEFAULT_FIELD_COMPLEXITY").pipe(effect_1.Config.withDefault(1)),
340
- }).pipe(effect_1.Config.map(({ maxDepth, maxComplexity, maxAliases, maxFields, defaultFieldComplexity }) => ({
341
- maxDepth: effect_1.Option.getOrUndefined(maxDepth),
342
- maxComplexity: effect_1.Option.getOrUndefined(maxComplexity),
343
- maxAliases: effect_1.Option.getOrUndefined(maxAliases),
344
- maxFields: effect_1.Option.getOrUndefined(maxFields),
345
- defaultFieldComplexity,
346
- })));
347
- // ============================================================================
348
- // Utility Calculators
349
- // ============================================================================
350
- /**
351
- * A simple depth-only calculator that only tracks query depth.
352
- * Use this when you only care about depth limiting and want fast validation.
353
- */
354
- const depthOnlyCalculator = (info) => effect_1.Effect.try({
355
- try: () => {
356
- const fragments = new Map();
357
- for (const definition of info.document.definitions) {
358
- if (definition.kind === graphql_1.Kind.FRAGMENT_DEFINITION) {
359
- fragments.set(definition.name.value, definition);
360
- }
361
- }
362
- const depth = calculateMaxDepth(info.operation.selectionSet, fragments, 1, new Set());
363
- return {
364
- depth,
365
- complexity: 0,
366
- fieldCount: 0,
367
- aliasCount: 0,
368
- };
369
- },
370
- catch: (error) => new ComplexityAnalysisError({
371
- message: `Failed to analyze query depth: ${error}`,
372
- cause: error,
373
- }),
374
- });
375
- exports.depthOnlyCalculator = depthOnlyCalculator;
376
- function calculateMaxDepth(selectionSet, fragments, currentDepth, visitedFragments) {
377
- let maxDepth = currentDepth;
378
- for (const selection of selectionSet.selections) {
379
- switch (selection.kind) {
380
- case graphql_1.Kind.FIELD:
381
- if (selection.selectionSet) {
382
- const nestedDepth = calculateMaxDepth(selection.selectionSet, fragments, currentDepth + 1, visitedFragments);
383
- maxDepth = Math.max(maxDepth, nestedDepth);
384
- }
385
- break;
386
- case graphql_1.Kind.FRAGMENT_SPREAD: {
387
- const fragmentName = selection.name.value;
388
- if (!visitedFragments.has(fragmentName)) {
389
- const fragment = fragments.get(fragmentName);
390
- if (fragment) {
391
- const newVisited = new Set(visitedFragments);
392
- newVisited.add(fragmentName);
393
- const fragmentDepth = calculateMaxDepth(fragment.selectionSet, fragments, currentDepth, newVisited);
394
- maxDepth = Math.max(maxDepth, fragmentDepth);
395
- }
396
- }
397
- break;
398
- }
399
- case graphql_1.Kind.INLINE_FRAGMENT: {
400
- const inlineDepth = calculateMaxDepth(selection.selectionSet, fragments, currentDepth, visitedFragments);
401
- maxDepth = Math.max(maxDepth, inlineDepth);
402
- break;
403
- }
404
- }
405
- }
406
- return maxDepth;
407
- }
408
- /**
409
- * Combine multiple calculators - returns the maximum values from all calculators.
410
- */
411
- const combineCalculators = (...calculators) => {
412
- return (info) => effect_1.Effect.gen(function* () {
413
- let maxDepth = 0;
414
- let maxComplexity = 0;
415
- let maxFieldCount = 0;
416
- let maxAliasCount = 0;
417
- for (const calculator of calculators) {
418
- const result = yield* calculator(info);
419
- maxDepth = Math.max(maxDepth, result.depth);
420
- maxComplexity = Math.max(maxComplexity, result.complexity);
421
- maxFieldCount = Math.max(maxFieldCount, result.fieldCount);
422
- maxAliasCount = Math.max(maxAliasCount, result.aliasCount);
423
- }
424
- return {
425
- depth: maxDepth,
426
- complexity: maxComplexity,
427
- fieldCount: maxFieldCount,
428
- aliasCount: maxAliasCount,
429
- };
430
- });
431
- };
432
- exports.combineCalculators = combineCalculators;
433
- //# sourceMappingURL=complexity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"complexity.js","sourceRoot":"","sources":["../../src/server/complexity.ts"],"names":[],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- import { Config } from "effect";
2
- import type { ComplexityConfig } from "./complexity";
3
- import type { CacheControlConfig } from "./cache-control";
4
- /**
5
- * Configuration for the GraphiQL UI
6
- */
7
- export interface GraphiQLConfig {
8
- /** Path where GraphiQL UI is served (default: "/graphiql") */
9
- readonly path: string;
10
- /** URL where GraphiQL sends requests (default: same as graphql path) */
11
- readonly endpoint: string;
12
- }
13
- /**
14
- * Configuration for the GraphQL router
15
- */
16
- export interface GraphQLRouterConfig {
17
- /** Path for GraphQL endpoint (default: "/graphql") */
18
- readonly path: string;
19
- /** GraphiQL configuration, or false to disable */
20
- readonly graphiql: false | GraphiQLConfig;
21
- /** Query complexity limiting configuration */
22
- readonly complexity?: ComplexityConfig;
23
- /** Enable introspection queries (default: true). Set to false in production. */
24
- readonly introspection: boolean;
25
- /** Cache control configuration for HTTP Cache-Control headers */
26
- readonly cacheControl?: CacheControlConfig;
27
- }
28
- /**
29
- * Default configuration values
30
- */
31
- export declare const defaultConfig: GraphQLRouterConfig;
32
- /**
33
- * Normalize user-provided config (which may use boolean shorthand for graphiql)
34
- * into the full GraphQLRouterConfig format
35
- */
36
- export interface GraphQLRouterConfigInput {
37
- readonly path?: string;
38
- readonly graphiql?: boolean | Partial<GraphiQLConfig>;
39
- /** Query complexity limiting configuration */
40
- readonly complexity?: ComplexityConfig;
41
- /** Enable introspection queries (default: true). Set to false in production. */
42
- readonly introspection?: boolean;
43
- /** Cache control configuration for HTTP Cache-Control headers */
44
- readonly cacheControl?: CacheControlConfig;
45
- }
46
- export declare const normalizeConfig: (input?: GraphQLRouterConfigInput) => GraphQLRouterConfig;
47
- /**
48
- * Effect Config for loading GraphQL router configuration from environment variables.
49
- *
50
- * Environment variables:
51
- * - GRAPHQL_PATH: Path for GraphQL endpoint (default: "/graphql")
52
- * - GRAPHQL_INTROSPECTION: Enable introspection queries (default: true)
53
- * - GRAPHIQL_ENABLED: Enable GraphiQL UI (default: false)
54
- * - GRAPHIQL_PATH: Path for GraphiQL UI (default: "/graphiql")
55
- * - GRAPHIQL_ENDPOINT: URL where GraphiQL sends requests (default: same as GRAPHQL_PATH)
56
- * - GRAPHQL_MAX_DEPTH: Maximum query depth (optional)
57
- * - GRAPHQL_MAX_COMPLEXITY: Maximum complexity score (optional)
58
- * - GRAPHQL_MAX_ALIASES: Maximum number of aliases (optional)
59
- * - GRAPHQL_MAX_FIELDS: Maximum number of fields (optional)
60
- * - GRAPHQL_DEFAULT_FIELD_COMPLEXITY: Default field complexity (default: 1)
61
- * - GRAPHQL_CACHE_CONTROL_ENABLED: Enable cache control headers (default: false)
62
- * - GRAPHQL_CACHE_CONTROL_DEFAULT_MAX_AGE: Default maxAge for root fields (default: 0)
63
- * - GRAPHQL_CACHE_CONTROL_DEFAULT_SCOPE: Default scope - PUBLIC or PRIVATE (default: PUBLIC)
64
- */
65
- export declare const GraphQLRouterConfigFromEnv: Config.Config<GraphQLRouterConfig>;
66
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAEzD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,cAAc,CAAA;IACzC,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAA;IACtC,gFAAgF;IAChF,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAC3C;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,mBAM3B,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACrD,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAA;IACtC,gFAAgF;IAChF,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,iEAAiE;IACjE,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAC3C;AAED,eAAO,MAAM,eAAe,GAAI,QAAO,wBAA6B,KAAG,mBAoBtE,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,CA6EzE,CAAA"}
@@ -1,104 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GraphQLRouterConfigFromEnv = exports.normalizeConfig = exports.defaultConfig = void 0;
4
- const effect_1 = require("effect");
5
- /**
6
- * Default configuration values
7
- */
8
- exports.defaultConfig = {
9
- path: "/graphql",
10
- graphiql: false,
11
- complexity: undefined,
12
- introspection: true,
13
- cacheControl: undefined,
14
- };
15
- const normalizeConfig = (input = {}) => {
16
- const path = input.path ?? exports.defaultConfig.path;
17
- let graphiql = false;
18
- if (input.graphiql === true) {
19
- graphiql = { path: "/graphiql", endpoint: path };
20
- }
21
- else if (input.graphiql && typeof input.graphiql === "object") {
22
- graphiql = {
23
- path: input.graphiql.path ?? "/graphiql",
24
- endpoint: input.graphiql.endpoint ?? path,
25
- };
26
- }
27
- return {
28
- path,
29
- graphiql,
30
- complexity: input.complexity,
31
- introspection: input.introspection ?? true,
32
- cacheControl: input.cacheControl,
33
- };
34
- };
35
- exports.normalizeConfig = normalizeConfig;
36
- /**
37
- * Effect Config for loading GraphQL router configuration from environment variables.
38
- *
39
- * Environment variables:
40
- * - GRAPHQL_PATH: Path for GraphQL endpoint (default: "/graphql")
41
- * - GRAPHQL_INTROSPECTION: Enable introspection queries (default: true)
42
- * - GRAPHIQL_ENABLED: Enable GraphiQL UI (default: false)
43
- * - GRAPHIQL_PATH: Path for GraphiQL UI (default: "/graphiql")
44
- * - GRAPHIQL_ENDPOINT: URL where GraphiQL sends requests (default: same as GRAPHQL_PATH)
45
- * - GRAPHQL_MAX_DEPTH: Maximum query depth (optional)
46
- * - GRAPHQL_MAX_COMPLEXITY: Maximum complexity score (optional)
47
- * - GRAPHQL_MAX_ALIASES: Maximum number of aliases (optional)
48
- * - GRAPHQL_MAX_FIELDS: Maximum number of fields (optional)
49
- * - GRAPHQL_DEFAULT_FIELD_COMPLEXITY: Default field complexity (default: 1)
50
- * - GRAPHQL_CACHE_CONTROL_ENABLED: Enable cache control headers (default: false)
51
- * - GRAPHQL_CACHE_CONTROL_DEFAULT_MAX_AGE: Default maxAge for root fields (default: 0)
52
- * - GRAPHQL_CACHE_CONTROL_DEFAULT_SCOPE: Default scope - PUBLIC or PRIVATE (default: PUBLIC)
53
- */
54
- exports.GraphQLRouterConfigFromEnv = effect_1.Config.all({
55
- path: effect_1.Config.string("GRAPHQL_PATH").pipe(effect_1.Config.withDefault("/graphql")),
56
- introspection: effect_1.Config.boolean("GRAPHQL_INTROSPECTION").pipe(effect_1.Config.withDefault(true)),
57
- graphiqlEnabled: effect_1.Config.boolean("GRAPHIQL_ENABLED").pipe(effect_1.Config.withDefault(false)),
58
- graphiqlPath: effect_1.Config.string("GRAPHIQL_PATH").pipe(effect_1.Config.withDefault("/graphiql")),
59
- graphiqlEndpoint: effect_1.Config.string("GRAPHIQL_ENDPOINT").pipe(effect_1.Config.option),
60
- maxDepth: effect_1.Config.number("GRAPHQL_MAX_DEPTH").pipe(effect_1.Config.option),
61
- maxComplexity: effect_1.Config.number("GRAPHQL_MAX_COMPLEXITY").pipe(effect_1.Config.option),
62
- maxAliases: effect_1.Config.number("GRAPHQL_MAX_ALIASES").pipe(effect_1.Config.option),
63
- maxFields: effect_1.Config.number("GRAPHQL_MAX_FIELDS").pipe(effect_1.Config.option),
64
- defaultFieldComplexity: effect_1.Config.number("GRAPHQL_DEFAULT_FIELD_COMPLEXITY").pipe(effect_1.Config.withDefault(1)),
65
- cacheControlEnabled: effect_1.Config.boolean("GRAPHQL_CACHE_CONTROL_ENABLED").pipe(effect_1.Config.withDefault(false)),
66
- cacheControlDefaultMaxAge: effect_1.Config.number("GRAPHQL_CACHE_CONTROL_DEFAULT_MAX_AGE").pipe(effect_1.Config.withDefault(0)),
67
- cacheControlDefaultScope: effect_1.Config.string("GRAPHQL_CACHE_CONTROL_DEFAULT_SCOPE").pipe(effect_1.Config.withDefault("PUBLIC")),
68
- }).pipe(effect_1.Config.map(({ path, introspection, graphiqlEnabled, graphiqlPath, graphiqlEndpoint, maxDepth, maxComplexity, maxAliases, maxFields, defaultFieldComplexity, cacheControlEnabled, cacheControlDefaultMaxAge, cacheControlDefaultScope, }) => {
69
- // Check if any complexity option is set
70
- const hasComplexity = effect_1.Option.isSome(maxDepth) ||
71
- effect_1.Option.isSome(maxComplexity) ||
72
- effect_1.Option.isSome(maxAliases) ||
73
- effect_1.Option.isSome(maxFields);
74
- return {
75
- path,
76
- introspection,
77
- graphiql: graphiqlEnabled
78
- ? {
79
- path: graphiqlPath,
80
- endpoint: effect_1.Option.isSome(graphiqlEndpoint) ? graphiqlEndpoint.value : path,
81
- }
82
- : false,
83
- complexity: hasComplexity
84
- ? {
85
- maxDepth: effect_1.Option.getOrUndefined(maxDepth),
86
- maxComplexity: effect_1.Option.getOrUndefined(maxComplexity),
87
- maxAliases: effect_1.Option.getOrUndefined(maxAliases),
88
- maxFields: effect_1.Option.getOrUndefined(maxFields),
89
- defaultFieldComplexity,
90
- }
91
- : undefined,
92
- cacheControl: cacheControlEnabled
93
- ? {
94
- enabled: true,
95
- defaultMaxAge: cacheControlDefaultMaxAge,
96
- defaultScope: (cacheControlDefaultScope === "PRIVATE"
97
- ? "PRIVATE"
98
- : "PUBLIC"),
99
- calculateHttpHeaders: true,
100
- }
101
- : undefined,
102
- };
103
- }));
104
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Generate HTML for GraphiQL IDE, loading dependencies from CDN
3
- */
4
- export declare const graphiqlHtml: (endpoint: string) => string;
5
- //# sourceMappingURL=graphiql.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graphiql.d.ts","sourceRoot":"","sources":["../../src/server/graphiql.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,KAAG,MAkCxC,CAAA"}