grafeo-ogm 2.5.1 → 2.5.3

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 (112) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/cjs/compilers/mutation.compiler.d.ts +11 -0
  3. package/dist/cjs/compilers/mutation.compiler.d.ts.map +1 -1
  4. package/dist/cjs/compilers/mutation.compiler.js +20 -1
  5. package/dist/cjs/compilers/mutation.compiler.js.map +1 -1
  6. package/dist/cjs/compilers/select-normalizer.d.ts +5 -0
  7. package/dist/cjs/compilers/select-normalizer.d.ts.map +1 -1
  8. package/dist/cjs/compilers/select-normalizer.js +54 -3
  9. package/dist/cjs/compilers/select-normalizer.js.map +1 -1
  10. package/dist/cjs/compilers/selection.compiler.d.ts +33 -0
  11. package/dist/cjs/compilers/selection.compiler.d.ts.map +1 -1
  12. package/dist/cjs/compilers/selection.compiler.js +220 -53
  13. package/dist/cjs/compilers/selection.compiler.js.map +1 -1
  14. package/dist/cjs/compilers/where.compiler.d.ts.map +1 -1
  15. package/dist/cjs/compilers/where.compiler.js +21 -0
  16. package/dist/cjs/compilers/where.compiler.js.map +1 -1
  17. package/dist/cjs/execution/executor.d.ts +7 -2
  18. package/dist/cjs/execution/executor.d.ts.map +1 -1
  19. package/dist/cjs/execution/executor.js +22 -5
  20. package/dist/cjs/execution/executor.js.map +1 -1
  21. package/dist/cjs/generator/generate-types.d.ts.map +1 -1
  22. package/dist/cjs/generator/generate-types.js +19 -2
  23. package/dist/cjs/generator/generate-types.js.map +1 -1
  24. package/dist/cjs/generator/type-emitters/model-map-emitter.d.ts +2 -1
  25. package/dist/cjs/generator/type-emitters/model-map-emitter.d.ts.map +1 -1
  26. package/dist/cjs/generator/type-emitters/model-map-emitter.js +9 -7
  27. package/dist/cjs/generator/type-emitters/model-map-emitter.js.map +1 -1
  28. package/dist/cjs/generator/type-emitters/utility-types.d.ts +13 -1
  29. package/dist/cjs/generator/type-emitters/utility-types.d.ts.map +1 -1
  30. package/dist/cjs/generator/type-emitters/utility-types.js +21 -3
  31. package/dist/cjs/generator/type-emitters/utility-types.js.map +1 -1
  32. package/dist/cjs/interface-model.d.ts.map +1 -1
  33. package/dist/cjs/interface-model.js +5 -1
  34. package/dist/cjs/interface-model.js.map +1 -1
  35. package/dist/cjs/schema/parser.d.ts.map +1 -1
  36. package/dist/cjs/schema/parser.js +7 -2
  37. package/dist/cjs/schema/parser.js.map +1 -1
  38. package/dist/cjs/testing/cypher-assert.d.ts +2 -2
  39. package/dist/cjs/testing/cypher-assert.d.ts.map +1 -1
  40. package/dist/cjs/testing/cypher-assert.js +54 -6
  41. package/dist/cjs/testing/cypher-assert.js.map +1 -1
  42. package/dist/cjs/testing/neo4j-record-factory.d.ts +5 -0
  43. package/dist/cjs/testing/neo4j-record-factory.d.ts.map +1 -1
  44. package/dist/cjs/testing/neo4j-record-factory.js +82 -27
  45. package/dist/cjs/testing/neo4j-record-factory.js.map +1 -1
  46. package/dist/cjs/utils/cypher-field-projection.d.ts +9 -1
  47. package/dist/cjs/utils/cypher-field-projection.d.ts.map +1 -1
  48. package/dist/cjs/utils/cypher-field-projection.js +39 -9
  49. package/dist/cjs/utils/cypher-field-projection.js.map +1 -1
  50. package/dist/cjs/utils/cypher-sort-projection.d.ts +6 -4
  51. package/dist/cjs/utils/cypher-sort-projection.d.ts.map +1 -1
  52. package/dist/cjs/utils/cypher-sort-projection.js +9 -7
  53. package/dist/cjs/utils/cypher-sort-projection.js.map +1 -1
  54. package/dist/cjs/utils/write-coercion.d.ts.map +1 -1
  55. package/dist/cjs/utils/write-coercion.js +12 -1
  56. package/dist/cjs/utils/write-coercion.js.map +1 -1
  57. package/dist/esm/compilers/mutation.compiler.d.ts +11 -0
  58. package/dist/esm/compilers/mutation.compiler.d.ts.map +1 -1
  59. package/dist/esm/compilers/mutation.compiler.js +20 -1
  60. package/dist/esm/compilers/mutation.compiler.js.map +1 -1
  61. package/dist/esm/compilers/select-normalizer.d.ts +5 -0
  62. package/dist/esm/compilers/select-normalizer.d.ts.map +1 -1
  63. package/dist/esm/compilers/select-normalizer.js +54 -3
  64. package/dist/esm/compilers/select-normalizer.js.map +1 -1
  65. package/dist/esm/compilers/selection.compiler.d.ts +33 -0
  66. package/dist/esm/compilers/selection.compiler.d.ts.map +1 -1
  67. package/dist/esm/compilers/selection.compiler.js +221 -54
  68. package/dist/esm/compilers/selection.compiler.js.map +1 -1
  69. package/dist/esm/compilers/where.compiler.d.ts.map +1 -1
  70. package/dist/esm/compilers/where.compiler.js +21 -0
  71. package/dist/esm/compilers/where.compiler.js.map +1 -1
  72. package/dist/esm/execution/executor.d.ts +7 -2
  73. package/dist/esm/execution/executor.d.ts.map +1 -1
  74. package/dist/esm/execution/executor.js +22 -5
  75. package/dist/esm/execution/executor.js.map +1 -1
  76. package/dist/esm/generator/generate-types.d.ts.map +1 -1
  77. package/dist/esm/generator/generate-types.js +20 -3
  78. package/dist/esm/generator/generate-types.js.map +1 -1
  79. package/dist/esm/generator/type-emitters/model-map-emitter.d.ts +2 -1
  80. package/dist/esm/generator/type-emitters/model-map-emitter.d.ts.map +1 -1
  81. package/dist/esm/generator/type-emitters/model-map-emitter.js +9 -7
  82. package/dist/esm/generator/type-emitters/model-map-emitter.js.map +1 -1
  83. package/dist/esm/generator/type-emitters/utility-types.d.ts +13 -1
  84. package/dist/esm/generator/type-emitters/utility-types.d.ts.map +1 -1
  85. package/dist/esm/generator/type-emitters/utility-types.js +19 -3
  86. package/dist/esm/generator/type-emitters/utility-types.js.map +1 -1
  87. package/dist/esm/interface-model.d.ts.map +1 -1
  88. package/dist/esm/interface-model.js +5 -1
  89. package/dist/esm/interface-model.js.map +1 -1
  90. package/dist/esm/schema/parser.d.ts.map +1 -1
  91. package/dist/esm/schema/parser.js +7 -2
  92. package/dist/esm/schema/parser.js.map +1 -1
  93. package/dist/esm/testing/cypher-assert.d.ts +2 -2
  94. package/dist/esm/testing/cypher-assert.d.ts.map +1 -1
  95. package/dist/esm/testing/cypher-assert.js +54 -6
  96. package/dist/esm/testing/cypher-assert.js.map +1 -1
  97. package/dist/esm/testing/neo4j-record-factory.d.ts +5 -0
  98. package/dist/esm/testing/neo4j-record-factory.d.ts.map +1 -1
  99. package/dist/esm/testing/neo4j-record-factory.js +82 -27
  100. package/dist/esm/testing/neo4j-record-factory.js.map +1 -1
  101. package/dist/esm/utils/cypher-field-projection.d.ts +9 -1
  102. package/dist/esm/utils/cypher-field-projection.d.ts.map +1 -1
  103. package/dist/esm/utils/cypher-field-projection.js +39 -9
  104. package/dist/esm/utils/cypher-field-projection.js.map +1 -1
  105. package/dist/esm/utils/cypher-sort-projection.d.ts +6 -4
  106. package/dist/esm/utils/cypher-sort-projection.d.ts.map +1 -1
  107. package/dist/esm/utils/cypher-sort-projection.js +9 -7
  108. package/dist/esm/utils/cypher-sort-projection.js.map +1 -1
  109. package/dist/esm/utils/write-coercion.d.ts.map +1 -1
  110. package/dist/esm/utils/write-coercion.js +12 -1
  111. package/dist/esm/utils/write-coercion.js.map +1 -1
  112. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"select-normalizer.js","sourceRoot":"","sources":["../../../src/compilers/select-normalizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select-normalizer.js","sourceRoot":"","sources":["../../../src/compilers/select-normalizer.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,23 @@ export interface SelectionNode {
58
58
  * can't honour them throw instead of dropping them.
59
59
  */
60
60
  hasArguments?: boolean;
61
+ /**
62
+ * v2.5.3 — the same response key selected on DIFFERENT fields by sibling
63
+ * inline fragments (`... on A { x: title } ... on B { x: body }`): the
64
+ * field each fragment type selected. Projected as a per-type CASE.
65
+ */
66
+ fieldByType?: Record<string, string>;
67
+ /**
68
+ * Connection only (v2.5.3): selectionSet aliases of the connection's own
69
+ * keys. Pre-2.5.3 they were ignored and the keys always came back as
70
+ * `edges`, `node`, `properties` and `totalCount`.
71
+ */
72
+ connectionAliases?: {
73
+ totalCount?: string;
74
+ edges?: string;
75
+ node?: string;
76
+ properties?: string;
77
+ };
61
78
  }
62
79
  /**
63
80
  * Compiles a selection set (parsed SelectionNode[]) into a Cypher RETURN map projection.
@@ -149,6 +166,22 @@ export declare class SelectionCompiler {
149
166
  * Parse the children of a connection field, extracting node and edge children.
150
167
  */
151
168
  private parseConnectionChildren;
169
+ /**
170
+ * Keep the selectionSet alias of a connection key (v2.5.3). The first
171
+ * alias given for a key wins.
172
+ */
173
+ private recordConnectionAlias;
174
+ /**
175
+ * Compile a relationship or connection field selected through inline
176
+ * fragments on an abstract type that does not declare it (v2.5.3):
177
+ * `CASE WHEN n:D THEN <D's projection> … END`, each branch compiled
178
+ * against the implementer — with its arguments and the target type's
179
+ * read policy. Pre-2.5.3 the field was looked up on the abstract type,
180
+ * not found, and silently dropped together with its arguments.
181
+ *
182
+ * Returns `null` (unchanged behaviour) when no fragment type declares it.
183
+ */
184
+ private compileFragmentRelationship;
152
185
  /**
153
186
  * Compile a relationship field into a Cypher pattern comprehension.
154
187
  */
@@ -1 +1 @@
1
- {"version":3,"file":"selection.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/selection.compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selection.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/selection.compiler.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,92 @@ const utils_1 = require("../schema/utils");
8
8
  const cypher_field_projection_1 = require("../utils/cypher-field-projection");
9
9
  const validation_1 = require("../utils/validation");
10
10
  const where_compiler_1 = require("./where.compiler");
11
+ /**
12
+ * v2.5.3 — the printed arguments of a parsed selectionSet field, so a
13
+ * response key selected twice merges its sub-selections only when both
14
+ * selections carry the same arguments.
15
+ */
16
+ const argumentKeys = new WeakMap();
17
+ function sameArguments(a, b) {
18
+ return (argumentKeys.get(a) ?? '') === (argumentKeys.get(b) ?? '');
19
+ }
20
+ /**
21
+ * Merge `incoming` into `list` by response key (v2.5.3), as GraphQL merges
22
+ * a field selected more than once: sub-selections are unioned. Pre-2.5.3
23
+ * the second selection of a key was dropped with its sub-fields.
24
+ *
25
+ * - Same field, same arguments: children, edge children and `totalCount`
26
+ * merge recursively.
27
+ * - Same field, different arguments: the first selection wins (unchanged).
28
+ * - Different fields under one key, each selected by inline fragments on
29
+ * different types: recorded in `fieldByType` for a per-type projection.
30
+ * - A selection outside any fragment makes the field unconditional.
31
+ */
32
+ function mergeSelection(list, seen, incoming) {
33
+ const key = incoming.alias ?? incoming.fieldName;
34
+ const existing = seen.get(key);
35
+ if (!existing) {
36
+ seen.set(key, incoming);
37
+ list.push(incoming);
38
+ return;
39
+ }
40
+ if (existing.fieldName !== incoming.fieldName || existing.fieldByType) {
41
+ mergeFragmentField(existing, incoming);
42
+ return;
43
+ }
44
+ if (existing.typeConditions && incoming.typeConditions)
45
+ existing.typeConditions = [
46
+ ...new Set([...existing.typeConditions, ...incoming.typeConditions]),
47
+ ];
48
+ // Also selected outside any fragment → unconditional.
49
+ else
50
+ delete existing.typeConditions;
51
+ if (!sameArguments(existing, incoming))
52
+ return;
53
+ if (incoming.children)
54
+ existing.children = mergeSelectionLists(existing.children, incoming.children);
55
+ if (incoming.edgeChildren)
56
+ existing.edgeChildren = mergeSelectionLists(existing.edgeChildren, incoming.edgeChildren);
57
+ if (existing.isConnection) {
58
+ if (incoming.totalCount)
59
+ existing.totalCount = true;
60
+ if (existing.totalCountOnly && !incoming.totalCountOnly)
61
+ delete existing.totalCountOnly;
62
+ if (incoming.connectionAliases)
63
+ existing.connectionAliases = {
64
+ ...incoming.connectionAliases,
65
+ ...existing.connectionAliases,
66
+ };
67
+ }
68
+ }
69
+ /** Two scalars under one key, from fragments on different types (v2.5.3). */
70
+ function mergeFragmentField(existing, incoming) {
71
+ // Only scalars selected by inline fragments can differ per type; any
72
+ // other clash keeps the first selection (unchanged).
73
+ if (!existing.isScalar ||
74
+ !incoming.isScalar ||
75
+ !existing.typeConditions ||
76
+ !incoming.typeConditions)
77
+ return;
78
+ const byType = existing.fieldByType ?? {};
79
+ if (!existing.fieldByType)
80
+ for (const t of existing.typeConditions)
81
+ byType[t] = existing.fieldName;
82
+ for (const t of incoming.typeConditions)
83
+ if (byType[t] === undefined)
84
+ byType[t] = incoming.fieldName;
85
+ existing.fieldByType = byType;
86
+ existing.typeConditions = [
87
+ ...new Set([...existing.typeConditions, ...incoming.typeConditions]),
88
+ ];
89
+ }
90
+ function mergeSelectionLists(base, extra) {
91
+ const list = [];
92
+ const seen = new Map();
93
+ for (const node of [...(base ?? []), ...extra])
94
+ mergeSelection(list, seen, node);
95
+ return list;
96
+ }
11
97
  /** selectionSet field arguments the OGM honours, by field kind (v2.5.0). */
12
98
  const RELATIONSHIP_ARGUMENTS = new Set(['where', 'options']);
13
99
  const CONNECTION_ARGUMENTS = new Set(['where']);
@@ -229,6 +315,21 @@ class SelectionCompiler {
229
315
  : `.${(0, validation_1.escapeIdentifier)(node.fieldName)}`);
230
316
  continue;
231
317
  }
318
+ // v2.5.3 — a relationship / connection field selected through an
319
+ // inline fragment on an abstract type that doesn't declare it.
320
+ // (Union relationship fields keep their per-member CASE below.)
321
+ if (isAbstract &&
322
+ node.typeConditions &&
323
+ (node.isConnection || !(unionMembers && unionMembers.length > 0)) &&
324
+ !nodeDef.relationships.has(node.isConnection
325
+ ? node.fieldName.replace(/Connection$/, '')
326
+ : node.fieldName)) {
327
+ const fragmentCypher = this.compileFragmentRelationship(node, nodeVar, maxDepth, currentDepth, params, paramCounter, policyContext);
328
+ if (fragmentCypher) {
329
+ parts.push(`${key}: ${fragmentCypher}`);
330
+ continue;
331
+ }
332
+ }
232
333
  if (node.isConnection) {
233
334
  const connectionCypher = this.compileConnection(node, nodeVar, nodeDef, maxDepth, currentDepth, params, paramCounter, policyContext);
234
335
  if (connectionCypher)
@@ -265,27 +366,33 @@ class SelectionCompiler {
265
366
  * as `@cypher`.
266
367
  */
267
368
  compileFragmentScalar(node, key, nodeVar, nodeDef, cypherScope) {
268
- if (nodeDef.properties.get(node.fieldName)?.isCypher)
369
+ // v2.5.3 — `fieldByType`: sibling fragments selected different fields
370
+ // under this key, so each type projects its own field.
371
+ const perType = node.fieldByType;
372
+ if (!perType && nodeDef.properties.get(node.fieldName)?.isCypher)
269
373
  return null;
270
374
  const members = [];
271
375
  for (const typeName of node.typeConditions ?? []) {
272
376
  const def = this.schema.nodes.get(typeName);
273
377
  if (!def)
274
378
  return null;
275
- const prop = def.properties.get(node.fieldName);
379
+ const field = perType?.[typeName] ?? node.fieldName;
380
+ (0, validation_1.assertSafeIdentifier)(field, 'selection field');
381
+ const prop = def.properties.get(field);
276
382
  if (prop)
277
- members.push({ def, prop });
383
+ members.push({ def, prop, field });
278
384
  }
279
- if (!members.some((m) => m.prop.isCypher && m.prop.cypherStatement))
385
+ if (!perType &&
386
+ !members.some((m) => m.prop.isCypher && m.prop.cypherStatement))
280
387
  return null;
281
- const branches = members.map(({ def, prop }) => {
388
+ const branches = members.map(({ def, prop, field }) => {
282
389
  let expr;
283
390
  if (prop.isCypher && prop.cypherStatement)
284
391
  expr = cypherScope
285
- ? cypherScope.register(node.fieldName, prop, def.label)
286
- : (0, cypher_field_projection_1.buildInlineCypherFieldExpr)(prop.cypherStatement, nodeVar, `${def.typeName}.${node.fieldName}`);
392
+ ? cypherScope.register(field, prop, def.label)
393
+ : (0, cypher_field_projection_1.buildInlineCypherFieldExpr)(prop.cypherStatement, nodeVar, `${def.typeName}.${field}`);
287
394
  else
288
- expr = `${nodeVar}.${(0, validation_1.escapeIdentifier)(node.fieldName)}`;
395
+ expr = `${nodeVar}.${(0, validation_1.escapeIdentifier)(field)}`;
289
396
  return `WHEN ${nodeVar}:${(0, validation_1.escapeIdentifier)(def.label)} THEN ${expr}`;
290
397
  });
291
398
  return `${(0, validation_1.escapeIdentifier)(key)}: CASE ${branches.join(' ')} END`;
@@ -351,23 +458,8 @@ class SelectionCompiler {
351
458
  const fragment = sel;
352
459
  const condition = fragment.typeCondition?.name.value ?? typeCondition;
353
460
  if (fragment.selectionSet)
354
- for (const merged of this.convertSelectionSet(fragment.selectionSet, condition)) {
355
- const mergedKey = merged.alias ?? merged.fieldName;
356
- const existing = seen.get(mergedKey);
357
- if (!existing) {
358
- seen.set(mergedKey, merged);
359
- nodes.push(merged);
360
- }
361
- else if (existing.typeConditions)
362
- existing.typeConditions = merged.typeConditions
363
- ? [
364
- ...new Set([
365
- ...existing.typeConditions,
366
- ...merged.typeConditions,
367
- ]),
368
- ]
369
- : undefined;
370
- }
461
+ for (const merged of this.convertSelectionSet(fragment.selectionSet, condition))
462
+ mergeSelection(nodes, seen, merged);
371
463
  continue;
372
464
  }
373
465
  if (sel.kind !== graphql_1.Kind.FIELD)
@@ -377,14 +469,9 @@ class SelectionCompiler {
377
469
  // v2.5.0 — fields are keyed by their OUTPUT name, so the same field
378
470
  // under two aliases (`a: kids { .. } b: kids { .. }`) stays two
379
471
  // selections. Pre-2.5.0 they collapsed into one.
380
- const outputKey = field.alias?.value ?? fieldName;
381
- const existing = seen.get(outputKey);
382
- if (existing) {
383
- // Also selected outside any fragment → unconditional.
384
- if (typeCondition === undefined)
385
- delete existing.typeConditions;
386
- continue;
387
- }
472
+ // v2.5.3 — a key selected twice is merged (see `mergeSelection`);
473
+ // the repeat's arguments are compared, not re-validated.
474
+ const existing = seen.get(field.alias?.value ?? fieldName);
388
475
  const hasChildren = !!field.selectionSet;
389
476
  const isConnection = fieldName.endsWith('Connection');
390
477
  const node = {
@@ -396,16 +483,18 @@ class SelectionCompiler {
396
483
  };
397
484
  if (typeCondition !== undefined)
398
485
  node.typeConditions = [typeCondition];
399
- seen.set(outputKey, node);
400
- if (field.arguments && field.arguments.length > 0)
401
- applyFieldArguments(field, node);
486
+ if (field.arguments && field.arguments.length > 0) {
487
+ argumentKeys.set(node, field.arguments.map((a) => (0, graphql_1.print)(a)).join(','));
488
+ if (!existing)
489
+ applyFieldArguments(field, node);
490
+ }
402
491
  if (hasChildren && field.selectionSet)
403
492
  if (isConnection)
404
493
  // For connections, parse edges -> node and edges -> properties
405
494
  this.parseConnectionChildren(field.selectionSet, node);
406
495
  else
407
496
  node.children = this.convertSelectionSet(field.selectionSet);
408
- nodes.push(node);
497
+ mergeSelection(nodes, seen, node);
409
498
  }
410
499
  return nodes;
411
500
  }
@@ -419,25 +508,81 @@ class SelectionCompiler {
419
508
  continue;
420
509
  const field = sel;
421
510
  assertNoArguments(field, `${parentNode.fieldName}.${field.name.value}`);
422
- if (field.name.value === 'totalCount')
511
+ if (field.name.value === 'totalCount') {
423
512
  parentNode.totalCount = true;
424
- if (field.name.value === 'edges')
513
+ this.recordConnectionAlias(parentNode, 'totalCount', field);
514
+ }
515
+ if (field.name.value === 'edges') {
425
516
  selectsEdges = true;
517
+ this.recordConnectionAlias(parentNode, 'edges', field);
518
+ }
426
519
  if (field.name.value === 'edges' && field.selectionSet)
427
520
  for (const edgeSel of field.selectionSet.selections) {
428
521
  if (edgeSel.kind !== graphql_1.Kind.FIELD)
429
522
  continue;
430
523
  const edgeField = edgeSel;
431
524
  assertNoArguments(edgeField, `${parentNode.fieldName}.edges.${edgeField.name.value}`);
432
- if (edgeField.name.value === 'node' && edgeField.selectionSet)
433
- parentNode.children = this.convertSelectionSet(edgeField.selectionSet);
434
- if (edgeField.name.value === 'properties' && edgeField.selectionSet)
435
- parentNode.edgeChildren = this.convertSelectionSet(edgeField.selectionSet);
525
+ // v2.5.3 — a repeated `edges { node { … } }` merges its
526
+ // sub-selections; pre-2.5.3 the last one replaced the others.
527
+ if (edgeField.name.value === 'node' && edgeField.selectionSet) {
528
+ this.recordConnectionAlias(parentNode, 'node', edgeField);
529
+ parentNode.children = mergeSelectionLists(parentNode.children, this.convertSelectionSet(edgeField.selectionSet));
530
+ }
531
+ if (edgeField.name.value === 'properties' && edgeField.selectionSet) {
532
+ this.recordConnectionAlias(parentNode, 'properties', edgeField);
533
+ parentNode.edgeChildren = mergeSelectionLists(parentNode.edgeChildren, this.convertSelectionSet(edgeField.selectionSet));
534
+ }
436
535
  }
437
536
  }
438
537
  if (parentNode.totalCount && !selectsEdges)
439
538
  parentNode.totalCountOnly = true;
440
539
  }
540
+ /**
541
+ * Keep the selectionSet alias of a connection key (v2.5.3). The first
542
+ * alias given for a key wins.
543
+ */
544
+ recordConnectionAlias(node, key, field) {
545
+ var _a;
546
+ const alias = field.alias?.value;
547
+ if (alias === undefined || alias === key)
548
+ return;
549
+ (0, validation_1.assertSafeIdentifier)(alias, 'selection alias');
550
+ node.connectionAliases ?? (node.connectionAliases = {});
551
+ (_a = node.connectionAliases)[key] ?? (_a[key] = alias);
552
+ }
553
+ /**
554
+ * Compile a relationship or connection field selected through inline
555
+ * fragments on an abstract type that does not declare it (v2.5.3):
556
+ * `CASE WHEN n:D THEN <D's projection> … END`, each branch compiled
557
+ * against the implementer — with its arguments and the target type's
558
+ * read policy. Pre-2.5.3 the field was looked up on the abstract type,
559
+ * not found, and silently dropped together with its arguments.
560
+ *
561
+ * Returns `null` (unchanged behaviour) when no fragment type declares it.
562
+ */
563
+ compileFragmentRelationship(node, nodeVar, maxDepth, currentDepth, params, paramCounter, policyContext = null) {
564
+ const relField = node.isConnection
565
+ ? node.fieldName.replace(/Connection$/, '')
566
+ : node.fieldName;
567
+ const branches = [];
568
+ let singular = node.isConnection;
569
+ for (const typeName of node.typeConditions ?? []) {
570
+ const def = this.schema.nodes.get(typeName);
571
+ const relDef = def?.relationships.get(relField);
572
+ if (!def || !relDef)
573
+ continue;
574
+ if (!relDef.isArray)
575
+ singular = true;
576
+ const expr = node.isConnection
577
+ ? this.compileConnection(node, nodeVar, def, maxDepth, currentDepth, params, paramCounter, policyContext)
578
+ : this.compileRelationship(node, nodeVar, def, maxDepth, currentDepth, params, paramCounter, policyContext);
579
+ if (expr)
580
+ branches.push(`WHEN ${nodeVar}:${(0, validation_1.escapeIdentifier)(def.label)} THEN ${expr}`);
581
+ }
582
+ if (branches.length === 0)
583
+ return null;
584
+ return `CASE ${branches.join(' ')} ELSE ${singular ? 'null' : '[]'} END`;
585
+ }
441
586
  /**
442
587
  * Compile a relationship field into a Cypher pattern comprehension.
443
588
  */
@@ -502,9 +647,15 @@ class SelectionCompiler {
502
647
  params[name] = (0, neo4j_driver_1.int)(value);
503
648
  return `$${name}`;
504
649
  };
505
- const start = node.offset ?? 0;
650
+ // v2.5.3 — a list slice bound must fit in 32 bits (and a JS number
651
+ // past 2^63 overflows the driver's Integer). No list is that long, so
652
+ // clamping keeps the result; pre-2.5.3 the query failed.
653
+ const INT32_MAX = 2147483647;
654
+ const start = Math.min(node.offset ?? 0, INT32_MAX);
506
655
  const startRef = node.offset !== undefined ? bind(start) : '';
507
- const endRef = node.limit !== undefined ? bind(start + node.limit) : '';
656
+ const endRef = node.limit !== undefined
657
+ ? bind(Math.min(start + node.limit, INT32_MAX))
658
+ : '';
508
659
  return `[${startRef}..${endRef}]`;
509
660
  }
510
661
  /**
@@ -632,20 +783,36 @@ class SelectionCompiler {
632
783
  });
633
784
  const mapParts = [];
634
785
  const projectionKeys = [];
786
+ // v2.5.3 — selectionSet aliases of the connection keys (validated when
787
+ // parsed); unaliased output is byte-identical.
788
+ const aliases = node.connectionAliases ?? {};
789
+ const nodeKey = aliases.node ? (0, validation_1.escapeIdentifier)(aliases.node) : 'node';
790
+ const propertiesKey = aliases.properties
791
+ ? (0, validation_1.escapeIdentifier)(aliases.properties)
792
+ : 'properties';
793
+ const edgesKey = aliases.edges ? (0, validation_1.escapeIdentifier)(aliases.edges) : 'edges';
794
+ const totalCountKey = aliases.totalCount
795
+ ? (0, validation_1.escapeIdentifier)(aliases.totalCount)
796
+ : 'totalCount';
635
797
  // Compile node projection
636
798
  if (node.children && node.children.length > 0) {
637
799
  const nodeProjection = this.compile(node.children, childVar, targetDef, maxDepth, currentDepth + 1, params, paramCounter, null, policyContext);
638
- mapParts.push(`node: ${nodeProjection}`);
639
- projectionKeys.push('node');
800
+ mapParts.push(`${nodeKey}: ${nodeProjection}`);
801
+ projectionKeys.push(nodeKey);
640
802
  }
641
803
  // Compile edge properties projection
642
804
  if (node.edgeChildren && node.edgeChildren.length > 0) {
643
805
  const edgeFields = node.edgeChildren
644
806
  .filter((c) => c.isScalar)
645
- .map((c) => `.${(0, validation_1.escapeIdentifier)(c.fieldName)}`)
807
+ .map((c) => {
808
+ if (c.alias === undefined || c.alias === c.fieldName)
809
+ return `.${(0, validation_1.escapeIdentifier)(c.fieldName)}`;
810
+ (0, validation_1.assertSafeIdentifier)(c.alias, 'selection alias');
811
+ return `${(0, validation_1.escapeIdentifier)(c.alias)}: ${edgeVar}.${(0, validation_1.escapeIdentifier)(c.fieldName)}`;
812
+ })
646
813
  .join(', ');
647
- mapParts.push(`properties: ${edgeVar} { ${edgeFields} }`);
648
- projectionKeys.push('properties');
814
+ mapParts.push(`${propertiesKey}: ${edgeVar} { ${edgeFields} }`);
815
+ projectionKeys.push(propertiesKey);
649
816
  }
650
817
  // Inject synthetic sort scalars at the top level of the edge map so
651
818
  // apoc.coll.sortMulti (which only accepts top-level keys) can order the
@@ -789,19 +956,19 @@ class SelectionCompiler {
789
956
  // (same pattern, same `where`, same target `read` policy), so it can
790
957
  // never count a node the caller cannot see. Pre-2.4.8 it was dropped.
791
958
  const totalCount = node.totalCount
792
- ? `totalCount: size([${pattern}${whereClause} | 1])`
959
+ ? `${totalCountKey}: size([${pattern}${whereClause} | 1])`
793
960
  : '';
794
961
  if (node.totalCountOnly)
795
962
  return `{ ${totalCount} }`;
796
963
  const withTotal = totalCount ? `, ${totalCount}` : '';
797
964
  if (sortKeyTokens.length === 0)
798
- return `{ edges: [${pattern}${whereClause} | ${innerMap}]${withTotal} }`;
965
+ return `{ ${edgesKey}: [${pattern}${whereClause} | ${innerMap}]${withTotal} }`;
799
966
  // Re-project only the user-facing keys so synthetic __skN scalars don't
800
967
  // leak out of the projection.
801
968
  const outerProjection = projectionKeys.length > 0
802
969
  ? `{ ${projectionKeys.map((k) => `${k}: x.${k}`).join(', ')} }`
803
970
  : `{}`;
804
- return `{ edges: [x IN apoc.coll.sortMulti([${pattern}${whereClause} | ${innerMap}], [${sortKeyTokens.join(', ')}]) | ${outerProjection}]${withTotal} }`;
971
+ return `{ ${edgesKey}: [x IN apoc.coll.sortMulti([${pattern}${whereClause} | ${innerMap}], [${sortKeyTokens.join(', ')}]) | ${outerProjection}]${withTotal} }`;
805
972
  }
806
973
  /**
807
974
  * AND-combine an optional user where (`select.where` / `connectionWhere`)