grafeo-ogm 1.13.0 → 2.0.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 (75) hide show
  1. package/CHANGELOG.md +221 -0
  2. package/README.md +70 -0
  3. package/dist/cjs/compilers/fulltext.compiler.d.ts.map +1 -1
  4. package/dist/cjs/compilers/fulltext.compiler.js +30 -14
  5. package/dist/cjs/compilers/fulltext.compiler.js.map +1 -1
  6. package/dist/cjs/compilers/mutation.compiler.d.ts +54 -1
  7. package/dist/cjs/compilers/mutation.compiler.d.ts.map +1 -1
  8. package/dist/cjs/compilers/mutation.compiler.js +134 -32
  9. package/dist/cjs/compilers/mutation.compiler.js.map +1 -1
  10. package/dist/cjs/compilers/where.compiler.d.ts.map +1 -1
  11. package/dist/cjs/compilers/where.compiler.js +7 -0
  12. package/dist/cjs/compilers/where.compiler.js.map +1 -1
  13. package/dist/cjs/generator/type-emitters/fulltext-emitter.js +24 -8
  14. package/dist/cjs/generator/type-emitters/fulltext-emitter.js.map +1 -1
  15. package/dist/cjs/generator/type-emitters/sort-options-emitter.d.ts +2 -1
  16. package/dist/cjs/generator/type-emitters/sort-options-emitter.d.ts.map +1 -1
  17. package/dist/cjs/generator/type-emitters/sort-options-emitter.js +12 -5
  18. package/dist/cjs/generator/type-emitters/sort-options-emitter.js.map +1 -1
  19. package/dist/cjs/generator/type-emitters/utility-types.d.ts.map +1 -1
  20. package/dist/cjs/generator/type-emitters/utility-types.js +20 -0
  21. package/dist/cjs/generator/type-emitters/utility-types.js.map +1 -1
  22. package/dist/cjs/interface-model.d.ts.map +1 -1
  23. package/dist/cjs/interface-model.js +9 -1
  24. package/dist/cjs/interface-model.js.map +1 -1
  25. package/dist/cjs/model.d.ts.map +1 -1
  26. package/dist/cjs/model.js +12 -3
  27. package/dist/cjs/model.js.map +1 -1
  28. package/dist/cjs/ogm.d.ts.map +1 -1
  29. package/dist/cjs/ogm.js +6 -1
  30. package/dist/cjs/ogm.js.map +1 -1
  31. package/dist/cjs/utils/cypher-sort-projection.d.ts +3 -0
  32. package/dist/cjs/utils/cypher-sort-projection.d.ts.map +1 -1
  33. package/dist/cjs/utils/cypher-sort-projection.js +13 -1
  34. package/dist/cjs/utils/cypher-sort-projection.js.map +1 -1
  35. package/dist/cjs/utils/validation.d.ts +79 -0
  36. package/dist/cjs/utils/validation.d.ts.map +1 -1
  37. package/dist/cjs/utils/validation.js +554 -0
  38. package/dist/cjs/utils/validation.js.map +1 -1
  39. package/dist/esm/compilers/fulltext.compiler.d.ts.map +1 -1
  40. package/dist/esm/compilers/fulltext.compiler.js +31 -15
  41. package/dist/esm/compilers/fulltext.compiler.js.map +1 -1
  42. package/dist/esm/compilers/mutation.compiler.d.ts +54 -1
  43. package/dist/esm/compilers/mutation.compiler.d.ts.map +1 -1
  44. package/dist/esm/compilers/mutation.compiler.js +134 -32
  45. package/dist/esm/compilers/mutation.compiler.js.map +1 -1
  46. package/dist/esm/compilers/where.compiler.d.ts.map +1 -1
  47. package/dist/esm/compilers/where.compiler.js +8 -1
  48. package/dist/esm/compilers/where.compiler.js.map +1 -1
  49. package/dist/esm/generator/type-emitters/fulltext-emitter.js +24 -8
  50. package/dist/esm/generator/type-emitters/fulltext-emitter.js.map +1 -1
  51. package/dist/esm/generator/type-emitters/sort-options-emitter.d.ts +2 -1
  52. package/dist/esm/generator/type-emitters/sort-options-emitter.d.ts.map +1 -1
  53. package/dist/esm/generator/type-emitters/sort-options-emitter.js +12 -5
  54. package/dist/esm/generator/type-emitters/sort-options-emitter.js.map +1 -1
  55. package/dist/esm/generator/type-emitters/utility-types.d.ts.map +1 -1
  56. package/dist/esm/generator/type-emitters/utility-types.js +20 -0
  57. package/dist/esm/generator/type-emitters/utility-types.js.map +1 -1
  58. package/dist/esm/interface-model.d.ts.map +1 -1
  59. package/dist/esm/interface-model.js +9 -1
  60. package/dist/esm/interface-model.js.map +1 -1
  61. package/dist/esm/model.d.ts.map +1 -1
  62. package/dist/esm/model.js +12 -3
  63. package/dist/esm/model.js.map +1 -1
  64. package/dist/esm/ogm.d.ts.map +1 -1
  65. package/dist/esm/ogm.js +6 -1
  66. package/dist/esm/ogm.js.map +1 -1
  67. package/dist/esm/utils/cypher-sort-projection.d.ts +3 -0
  68. package/dist/esm/utils/cypher-sort-projection.d.ts.map +1 -1
  69. package/dist/esm/utils/cypher-sort-projection.js +14 -2
  70. package/dist/esm/utils/cypher-sort-projection.js.map +1 -1
  71. package/dist/esm/utils/validation.d.ts +79 -0
  72. package/dist/esm/utils/validation.d.ts.map +1 -1
  73. package/dist/esm/utils/validation.js +549 -0
  74. package/dist/esm/utils/validation.js.map +1 -1
  75. package/package.json +1 -1
@@ -4,6 +4,7 @@ exports.MutationCompiler = void 0;
4
4
  const errors_1 = require("../errors");
5
5
  const utils_1 = require("../schema/utils");
6
6
  const validation_1 = require("../utils/validation");
7
+ const where_compiler_1 = require("./where.compiler");
7
8
  /**
8
9
  * Relationship filter suffixes that require EXISTS subquery patterns.
9
10
  * These match related nodes via relationship traversal rather than scalar property comparison.
@@ -23,6 +24,59 @@ class MutationCompiler {
23
24
  /** Counter for unique relationship filter variables within a single WHERE clause. */
24
25
  this.relFilterCounter = 0;
25
26
  this.logger = options?.logger;
27
+ this.policyWhereCompiler = options?.whereCompiler;
28
+ }
29
+ /**
30
+ * Resolve and compile the TARGET type's `read` policy predicate for a
31
+ * connect/disconnect target MATCH, mirroring the read path
32
+ * (`WhereCompiler.buildTargetBundle` + `WhereCompiler.compile`). You
33
+ * must be allowed to SEE a node to link/unlink it, so linking to an
34
+ * unreadable node is the IDOR this closes; the codebase models the
35
+ * row-level write gate for `update`/`delete` targets as `read`
36
+ * ReadRestrictive policies (see policy/types.ts), so `read` is both
37
+ * necessary and the semantically correct operation here.
38
+ *
39
+ * Returns `null` — leaving the emitted Cypher BYTE-IDENTICAL — when:
40
+ * - no policy context is threaded (no policy bound / bypass active), OR
41
+ * - no `paramCounter` is available to allocate policy params, OR
42
+ * - the target type has no policy applicable to `read`, OR
43
+ * - the resolved policy is `overridden` (compiles to nothing).
44
+ *
45
+ * When a target policy resolves, the compiled predicate is returned and
46
+ * its bound params are merged into `params`. Policy params use the
47
+ * shared `paramCounter` (`param<N>`), continuing the sequence started by
48
+ * the top-level WHERE, so they can never collide with the
49
+ * connect/disconnect `where` params (prefix-named, e.g.
50
+ * `connect_<field>_<prop>`) or the selection's params (allocated later
51
+ * from the same counter).
52
+ */
53
+ buildTargetPolicyPredicate(targetNodeDef, targetVar, params, policyContext, paramCounter) {
54
+ if (!policyContext || !paramCounter)
55
+ return null;
56
+ const targetPolicy = policyContext.resolveForType(targetNodeDef.typeName, 'read');
57
+ if (!targetPolicy)
58
+ return null;
59
+ const targetBundle = {
60
+ ctx: policyContext.ctx,
61
+ operation: 'read',
62
+ resolved: targetPolicy,
63
+ resolveForType: policyContext.resolveForType,
64
+ defaults: policyContext.defaults,
65
+ };
66
+ const compiled = this.getPolicyWhereCompiler().compile(undefined, targetVar, targetNodeDef, paramCounter, { policyContext: targetBundle });
67
+ if (compiled.preludes && compiled.preludes.length > 0)
68
+ throw new errors_1.OGMError(`Policy on "${targetNodeDef.typeName}" requires @cypher field ` +
69
+ `projection, which is not supported inside connect/disconnect ` +
70
+ `target filters. Refactor the policy to use stored properties.`);
71
+ if (!compiled.cypher)
72
+ return null;
73
+ (0, validation_1.mergeParams)(params, compiled.params);
74
+ return compiled.cypher;
75
+ }
76
+ getPolicyWhereCompiler() {
77
+ if (!this.policyWhereCompiler)
78
+ this.policyWhereCompiler = new where_compiler_1.WhereCompiler(this.schema);
79
+ return this.policyWhereCompiler;
26
80
  }
27
81
  /**
28
82
  * Surface a logical operator that contributed zero effective conditions.
@@ -67,7 +121,11 @@ class MutationCompiler {
67
121
  // Process relationship operations (nested create / connect)
68
122
  // Pass all previously created node vars as ancestors so WITH clauses
69
123
  // don't drop them from scope (needed for RETURN n at the end)
70
- const relLines = this.buildCreateRelationships(input, nodeDef, nodeVar, prefix, params, createdVars.slice(0, -1));
124
+ const relLines = this.buildCreateRelationships(input, nodeDef, nodeVar, prefix, params, createdVars.slice(0, -1), // ancestors = all vars before current
125
+ // No policy context is threaded on the create path: `create`'s
126
+ // nested connect enforcement is out of scope for this fix, so
127
+ // the emitted create Cypher stays byte-identical.
128
+ undefined, undefined);
71
129
  lines.push(...relLines);
72
130
  }
73
131
  // Add extra labels to all created nodes
@@ -82,7 +140,21 @@ class MutationCompiler {
82
140
  /**
83
141
  * Generate UPDATE Cypher (SET properties + connect/disconnect).
84
142
  */
85
- compileUpdate(_where, update, connect, disconnect, nodeDef, whereResult, labels, returnMode = 'node') {
143
+ compileUpdate(_where, update, connect, disconnect, nodeDef, whereResult, labels, returnMode = 'node',
144
+ /**
145
+ * The caller's resolved policy bundle for this mutation (the SOURCE
146
+ * type's `update` bundle). Its `resolveForType` is used to resolve
147
+ * each connect/disconnect TARGET type's `read` policy. `undefined`
148
+ * when no policy is bound or a bypass is active — in which case the
149
+ * emitted Cypher is byte-identical to before this enforcement.
150
+ */
151
+ policyContext,
152
+ /**
153
+ * Shared `param<N>` counter, continued from the top-level WHERE
154
+ * compile so target-policy params never collide with connect/
155
+ * disconnect `where` params or the selection's params.
156
+ */
157
+ paramCounter) {
86
158
  this.relFilterCounter = 0;
87
159
  const labelStr = this.getCachedLabelString(nodeDef);
88
160
  const lines = [];
@@ -117,18 +189,18 @@ class MutationCompiler {
117
189
  if (setClauses.length > 0)
118
190
  lines.push(`SET ${setClauses.join(', ')}`);
119
191
  // Process nested relationship operations within update body
120
- const relLines = this.buildUpdateRelationships(update, nodeDef, 'n', 'update', params);
192
+ const relLines = this.buildUpdateRelationships(update, nodeDef, 'n', 'update', params, 0, [], policyContext, paramCounter);
121
193
  lines.push(...relLines);
122
194
  }
123
195
  // Disconnect relationships (top-level) — must run before connects
124
196
  // so that blanket disconnects don't remove newly-connected relationships.
125
197
  if (disconnect) {
126
- const disconnectLines = this.buildDisconnects(disconnect, nodeDef, params);
198
+ const disconnectLines = this.buildDisconnects(disconnect, nodeDef, params, policyContext, paramCounter);
127
199
  lines.push(...disconnectLines);
128
200
  }
129
201
  // Connect relationships (top-level)
130
202
  if (connect) {
131
- const connectLines = this.buildConnects(connect, nodeDef, params);
203
+ const connectLines = this.buildConnects(connect, nodeDef, params, policyContext, paramCounter);
132
204
  lines.push(...connectLines);
133
205
  }
134
206
  lines.push(returnMode === 'count' ? 'RETURN count(n) AS count' : 'RETURN n');
@@ -390,7 +462,7 @@ class MutationCompiler {
390
462
  }
391
463
  return { propString: parts.join(', '), propParams };
392
464
  }
393
- buildCreateRelationships(input, nodeDef, nodeVar, prefix, params, ancestorVars = []) {
465
+ buildCreateRelationships(input, nodeDef, nodeVar, prefix, params, ancestorVars = [], policyContext, paramCounter) {
394
466
  const lines = [];
395
467
  let nestedCounter = 0;
396
468
  // WITH clause must carry all ancestors + the node being created on
@@ -415,7 +487,7 @@ class MutationCompiler {
415
487
  continue;
416
488
  const memberInput = memberValue;
417
489
  // Process creates/connects for this union member
418
- const memberLines = this.buildCreateRelationshipsForTarget(memberInput, memberNodeDef, relDef, nodeVar, `${prefix}_${key}_${memberKey}`, params, allVars, withClause, nestedCounter);
490
+ const memberLines = this.buildCreateRelationshipsForTarget(memberInput, memberNodeDef, relDef, nodeVar, `${prefix}_${key}_${memberKey}`, params, allVars, withClause, nestedCounter, policyContext, paramCounter);
419
491
  nestedCounter += memberLines.counterUsed;
420
492
  lines.push(...memberLines.lines);
421
493
  }
@@ -424,7 +496,7 @@ class MutationCompiler {
424
496
  const targetNodeDef = this.schema.nodes.get(relDef.target);
425
497
  if (!targetNodeDef)
426
498
  continue;
427
- const resultLines = this.buildCreateRelationshipsForTarget(relInput, targetNodeDef, relDef, nodeVar, `${prefix}_${key}`, params, allVars, withClause, nestedCounter);
499
+ const resultLines = this.buildCreateRelationshipsForTarget(relInput, targetNodeDef, relDef, nodeVar, `${prefix}_${key}`, params, allVars, withClause, nestedCounter, policyContext, paramCounter);
428
500
  nestedCounter += resultLines.counterUsed;
429
501
  lines.push(...resultLines.lines);
430
502
  }
@@ -434,7 +506,7 @@ class MutationCompiler {
434
506
  * Process create/connect operations for a specific target node type.
435
507
  * Used by buildCreateRelationships for both union-member and non-union targets.
436
508
  */
437
- buildCreateRelationshipsForTarget(relInput, targetNodeDef, relDef, nodeVar, prefix, params, allVars, withClause, startCounter) {
509
+ buildCreateRelationshipsForTarget(relInput, targetNodeDef, relDef, nodeVar, prefix, params, allVars, withClause, startCounter, policyContext, paramCounter) {
438
510
  const lines = [];
439
511
  let counter = 0;
440
512
  const targetLabelStr = this.getCachedLabelString(targetNodeDef);
@@ -450,7 +522,7 @@ class MutationCompiler {
450
522
  counter++;
451
523
  const { propString, propParams } = this.buildCreateProperties(nodeSpec, targetNodeDef, `${prefix}_create${ci}`);
452
524
  // Handle nested relationship creates within the created node
453
- const nestedRelLines = this.buildCreateRelationships(nodeSpec, targetNodeDef, createVar, `${prefix}_create${ci}`, params, allVars);
525
+ const nestedRelLines = this.buildCreateRelationships(nodeSpec, targetNodeDef, createVar, `${prefix}_create${ci}`, params, allVars, policyContext, paramCounter);
454
526
  const propsClause = propString.length > 0
455
527
  ? ` { ${propString} }`
456
528
  : ` { ${this.buildGeneratedIdClause(targetNodeDef)} }`;
@@ -522,8 +594,12 @@ class MutationCompiler {
522
594
  counter++;
523
595
  lines.push(`MATCH (${connectVar}:${targetLabelStr})`);
524
596
  const conditions = this.buildConnectionWhereConditions(whereSpec, connectVar, `${prefix}_conn${ci}`, params, targetNodeDef);
525
- if (conditions.length > 0)
526
- lines.push(`WHERE ${conditions.join(' AND ')}`);
597
+ const policyPredicate = this.buildTargetPolicyPredicate(targetNodeDef, connectVar, params, policyContext, paramCounter);
598
+ const connectConditions = policyPredicate
599
+ ? [...conditions, policyPredicate]
600
+ : conditions;
601
+ if (connectConditions.length > 0)
602
+ lines.push(`WHERE ${connectConditions.join(' AND ')}`);
527
603
  if (edgeInput && Object.keys(edgeInput).length > 0) {
528
604
  // Use bare target var (no label) since connectVar is already bound by MATCH.
529
605
  // Including labels on a bound variable in MERGE causes Neo4j to reject it.
@@ -560,7 +636,7 @@ class MutationCompiler {
560
636
  }
561
637
  return { lines, counterUsed: counter };
562
638
  }
563
- buildConnects(connect, nodeDef, params) {
639
+ buildConnects(connect, nodeDef, params, policyContext, paramCounter) {
564
640
  const lines = [];
565
641
  for (const [fieldName, spec] of Object.entries(connect)) {
566
642
  const relDef = nodeDef.relationships.get(fieldName);
@@ -591,8 +667,12 @@ class MutationCompiler {
591
667
  const connectVar = `target_${fieldName}_${ci}`;
592
668
  lines.push(`MATCH (${connectVar}:${targetLabelStr})`);
593
669
  const conditions = this.buildConnectionWhereConditions(whereSpec, connectVar, `connect_${fieldName}_${ci}`, params, targetNodeDef);
594
- if (conditions.length > 0)
595
- lines.push(`WHERE ${conditions.join(' AND ')}`);
670
+ const policyPredicate = this.buildTargetPolicyPredicate(targetNodeDef, connectVar, params, policyContext, paramCounter);
671
+ const connectConditions = policyPredicate
672
+ ? [...conditions, policyPredicate]
673
+ : conditions;
674
+ if (connectConditions.length > 0)
675
+ lines.push(`WHERE ${connectConditions.join(' AND ')}`);
596
676
  if (edgeInput && Object.keys(edgeInput).length > 0) {
597
677
  (0, validation_1.assertSafeIdentifier)(relDef.type, 'relationship type');
598
678
  const escapedRelType = (0, validation_1.escapeIdentifier)(relDef.type);
@@ -661,8 +741,12 @@ class MutationCompiler {
661
741
  `to share the same shape.`);
662
742
  }
663
743
  const whereConditions = this.extractConnectWhereConditions(firstItem, 'target', 'connItem');
664
- if (whereConditions.length > 0)
665
- lines.push(`WHERE ${whereConditions.join(' AND ')}`);
744
+ const policyPredicate = this.buildTargetPolicyPredicate(targetNodeDef, 'target', params, policyContext, paramCounter);
745
+ const unwindConditions = policyPredicate
746
+ ? [...whereConditions, policyPredicate]
747
+ : whereConditions;
748
+ if (unwindConditions.length > 0)
749
+ lines.push(`WHERE ${unwindConditions.join(' AND ')}`);
666
750
  const mergePattern = (0, utils_1.buildRelPattern)({
667
751
  sourceVar: 'n',
668
752
  relDef,
@@ -694,8 +778,12 @@ class MutationCompiler {
694
778
  lines.push('WITH n');
695
779
  lines.push(`MATCH (target:${targetLabelStr})`);
696
780
  const matchConditions = this.buildConnectionWhereConditions(whereSpec, 'target', `connect_${fieldName}`, params, targetNodeDef);
697
- if (matchConditions.length > 0)
698
- lines.push(`WHERE ${matchConditions.join(' AND ')}`);
781
+ const policyPredicate = this.buildTargetPolicyPredicate(targetNodeDef, 'target', params, policyContext, paramCounter);
782
+ const singleConnectConditions = policyPredicate
783
+ ? [...matchConditions, policyPredicate]
784
+ : matchConditions;
785
+ if (singleConnectConditions.length > 0)
786
+ lines.push(`WHERE ${singleConnectConditions.join(' AND ')}`);
699
787
  if (edgeInput && Object.keys(edgeInput).length > 0) {
700
788
  // Use bare target var (no label) since target is already bound by MATCH
701
789
  (0, validation_1.assertSafeIdentifier)(relDef.type, 'relationship type');
@@ -727,7 +815,7 @@ class MutationCompiler {
727
815
  }
728
816
  return lines;
729
817
  }
730
- buildDisconnects(disconnect, nodeDef, params) {
818
+ buildDisconnects(disconnect, nodeDef, params, policyContext, paramCounter) {
731
819
  const lines = [];
732
820
  for (const [fieldName, spec] of Object.entries(disconnect)) {
733
821
  const relDef = nodeDef.relationships.get(fieldName);
@@ -766,8 +854,14 @@ class MutationCompiler {
766
854
  });
767
855
  lines.push(`OPTIONAL MATCH ${pattern}`);
768
856
  const conditions = this.buildConnectionWhereConditions(whereSpec, targetVar, `disconnect_${fieldName}_${si}`, params, targetNodeDef);
769
- if (conditions.length > 0)
770
- lines.push(`WHERE ${conditions.join(' AND ')}`);
857
+ const policyPredicate = targetNodeDef
858
+ ? this.buildTargetPolicyPredicate(targetNodeDef, targetVar, params, policyContext, paramCounter)
859
+ : null;
860
+ const disconnectConditions = policyPredicate
861
+ ? [...conditions, policyPredicate]
862
+ : conditions;
863
+ if (disconnectConditions.length > 0)
864
+ lines.push(`WHERE ${disconnectConditions.join(' AND ')}`);
771
865
  lines.push(`DELETE ${relVar}`);
772
866
  }
773
867
  }
@@ -779,7 +873,7 @@ class MutationCompiler {
779
873
  * Each member key in the input is recursed into buildUpdateRelationships
780
874
  * with a narrowed relDef pointing at the concrete member type.
781
875
  */
782
- dispatchUnionUpdateOps(key, memberEntries, relDef, nodeDef, sourceVar, prefix, params, depth, ancestorVars) {
876
+ dispatchUnionUpdateOps(key, memberEntries, relDef, nodeDef, sourceVar, prefix, params, depth, ancestorVars, policyContext, paramCounter) {
783
877
  const unionMembers = this.schema.unions.get(relDef.target);
784
878
  const lines = [];
785
879
  for (const [memberKey, memberValue] of Object.entries(memberEntries)) {
@@ -799,7 +893,7 @@ class MutationCompiler {
799
893
  ...nodeDef,
800
894
  relationships: new Map([[key, memberRelDef]]),
801
895
  };
802
- lines.push(...this.buildUpdateRelationships({ [key]: memberItems }, memberNodeDef2, sourceVar, `${prefix}_${key}_${memberKey}`, params, depth + 1, ancestorVars));
896
+ lines.push(...this.buildUpdateRelationships({ [key]: memberItems }, memberNodeDef2, sourceVar, `${prefix}_${key}_${memberKey}`, params, depth + 1, ancestorVars, policyContext, paramCounter));
803
897
  }
804
898
  return lines;
805
899
  }
@@ -807,7 +901,7 @@ class MutationCompiler {
807
901
  * Process nested relationship operations within an update input.
808
902
  * Handles: create, connect, disconnect, update, and arrays of these.
809
903
  */
810
- buildUpdateRelationships(update, nodeDef, sourceVar, prefix, params, depth = 0, ancestorVars = []) {
904
+ buildUpdateRelationships(update, nodeDef, sourceVar, prefix, params, depth = 0, ancestorVars = [], policyContext, paramCounter) {
811
905
  if (depth > 5)
812
906
  throw new errors_1.OGMError(`[neo4j-ogm] buildUpdateRelationships: max nesting depth (5) exceeded for prefix "${prefix}". ` +
813
907
  'Nested relationship mutations beyond depth 5 are not supported.');
@@ -824,7 +918,7 @@ class MutationCompiler {
824
918
  const isUnionTarget = !this.schema.nodes.has(relDef.target) &&
825
919
  this.schema.unions?.has(relDef.target);
826
920
  if (isUnionTarget) {
827
- lines.push(...this.dispatchUnionUpdateOps(key, value, relDef, nodeDef, sourceVar, prefix, params, depth, ancestorVars));
921
+ lines.push(...this.dispatchUnionUpdateOps(key, value, relDef, nodeDef, sourceVar, prefix, params, depth, ancestorVars, policyContext, paramCounter));
828
922
  continue;
829
923
  }
830
924
  const targetNodeDef = this.schema.nodes.get(relDef.target);
@@ -894,7 +988,7 @@ class MutationCompiler {
894
988
  varCounter++;
895
989
  const { propString, propParams } = this.buildCreateProperties(nodeSpec, targetNodeDef, `${itemPrefix}_create${ci}`);
896
990
  // Handle nested relationship creates within the created node
897
- const nestedRelLines = this.buildCreateRelationships(nodeSpec, targetNodeDef, createVar, `${itemPrefix}_create${ci}`, params, allVars);
991
+ const nestedRelLines = this.buildCreateRelationships(nodeSpec, targetNodeDef, createVar, `${itemPrefix}_create${ci}`, params, allVars, policyContext, paramCounter);
898
992
  const propsClause = propString.length > 0
899
993
  ? ` { ${propString} }`
900
994
  : ` { ${this.buildGeneratedIdClause(targetNodeDef)} }`;
@@ -963,8 +1057,12 @@ class MutationCompiler {
963
1057
  // path (`buildDisconnects`). Restores backwards-compat with
964
1058
  // @neo4j/graphql-ogm's nested update.disconnect[].where shape.
965
1059
  const conditions = this.buildConnectionWhereConditions(whereSpec, discTarget, `${itemPrefix}_disc_${di}`, params, targetNodeDef);
966
- if (conditions.length > 0)
967
- lines.push(`WHERE ${conditions.join(' AND ')}`);
1060
+ const policyPredicate = this.buildTargetPolicyPredicate(targetNodeDef, discTarget, params, policyContext, paramCounter);
1061
+ const nestedDiscConditions = policyPredicate
1062
+ ? [...conditions, policyPredicate]
1063
+ : conditions;
1064
+ if (nestedDiscConditions.length > 0)
1065
+ lines.push(`WHERE ${nestedDiscConditions.join(' AND ')}`);
968
1066
  lines.push(`DELETE ${relVar}`);
969
1067
  }
970
1068
  }
@@ -993,8 +1091,12 @@ class MutationCompiler {
993
1091
  // top-level paths. Empty/undefined `whereSpec` short-circuits
994
1092
  // to `[]` inside the helper, so the no-where case still works.
995
1093
  const conditions = this.buildConnectionWhereConditions(whereSpec, connectVar, `${itemPrefix}_conn${ci}`, params, targetNodeDef);
996
- if (conditions.length > 0)
997
- lines.push(`WHERE ${conditions.join(' AND ')}`);
1094
+ const policyPredicate = this.buildTargetPolicyPredicate(targetNodeDef, connectVar, params, policyContext, paramCounter);
1095
+ const nestedConnConditions = policyPredicate
1096
+ ? [...conditions, policyPredicate]
1097
+ : conditions;
1098
+ if (nestedConnConditions.length > 0)
1099
+ lines.push(`WHERE ${nestedConnConditions.join(' AND ')}`);
998
1100
  if (edgeInput && Object.keys(edgeInput).length > 0) {
999
1101
  // Use bare target var (no label) since connectVar is already bound by MATCH
1000
1102
  const relVar = `r_conn_${key}_${ci}`;
@@ -1065,7 +1167,7 @@ class MutationCompiler {
1065
1167
  }
1066
1168
  // Pre-compute nested relationship operations
1067
1169
  const nestedParams = {};
1068
- const nestedRelLines = this.buildUpdateRelationships(nodeUpdate, targetNodeDef, updateVar, itemPrefix, nestedParams, depth + 1, allVars);
1170
+ const nestedRelLines = this.buildUpdateRelationships(nodeUpdate, targetNodeDef, updateVar, itemPrefix, nestedParams, depth + 1, allVars, policyContext, paramCounter);
1069
1171
  // Only emit the MATCH block if there's actual work to do
1070
1172
  const hasWork = setClauses.length > 0 ||
1071
1173
  edgeClauses.length > 0 ||
@@ -1 +1 @@
1
- {"version":3,"file":"mutation.compiler.js","sourceRoot":"","sources":["../../../src/compilers/mutation.compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutation.compiler.js","sourceRoot":"","sources":["../../../src/compilers/mutation.compiler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"where.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/where.compiler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,cAAc,EAGd,cAAc,EACf,MAAM,iBAAiB,CAAC;AAezB,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAqDD,KAAK,cAAc,GAAG,MAAM,CAAC;AA4B7B,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,aAAa;IAMtB,OAAO,CAAC,MAAM;IALhB,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,MAAM,CAAC,CAAY;gBAGjB,MAAM,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,oBAAoB;IAOhC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CACL,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,EACjD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,EACvB,YAAY,GAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAiB,EAC9C,OAAO,CAAC,EAAE;QACR;;;;;WAKG;QACH,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACrC;;;;;;;;;;WAUG;QACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;KACrC,GACA,WAAW;IAoDd;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IA6K3B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,iBAAiB;IAsNzB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,oBAAoB;IA0I5B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,2BAA2B;IAsKnC,OAAO,CAAC,sBAAsB;IAsK9B;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAyKhC,OAAO,CAAC,qBAAqB;IA8B7B;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;CAmF/B"}
1
+ {"version":3,"file":"where.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/where.compiler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,cAAc,EAGd,cAAc,EACf,MAAM,iBAAiB,CAAC;AAgBzB,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAqDD,KAAK,cAAc,GAAG,MAAM,CAAC;AA4B7B,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,aAAa;IAMtB,OAAO,CAAC,MAAM;IALhB,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,MAAM,CAAC,CAAY;gBAGjB,MAAM,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,oBAAoB;IAOhC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CACL,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,EACjD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,EACvB,YAAY,GAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAiB,EAC9C,OAAO,CAAC,EAAE;QACR;;;;;WAKG;QACH,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACrC;;;;;;;;;;WAUG;QACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;KACrC,GACA,WAAW;IAoDd;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IA6K3B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,iBAAiB;IAsNzB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,oBAAoB;IA0I5B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,2BAA2B;IAsKnC,OAAO,CAAC,sBAAsB;IAsK9B;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAyKhC,OAAO,CAAC,qBAAqB;IA8B7B;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;CA2F/B"}
@@ -965,6 +965,13 @@ class WhereCompiler {
965
965
  const opDef = OPERATOR_MAP.get(operator);
966
966
  if (!opDef)
967
967
  throw new errors_1.OGMError(`Unknown operator: ${operator}`);
968
+ // ReDoS guard: `_MATCHES` forwards its value into Neo4j's backtracking
969
+ // `=~` engine. Refuse any pattern not provably free of catastrophic
970
+ // backtracking before it can reach the server. The value is already
971
+ // parameterized — this is a semantic guard on the operator, not
972
+ // injection defense. Non-string values fall through untouched.
973
+ if (operator === '_MATCHES' && typeof value === 'string')
974
+ (0, validation_1.assertSafeRegexPattern)(value, 'where clause');
968
975
  const ci = caseInsensitive && opDef.ciAware;
969
976
  const fieldRef = ci ? `toLower(${rawFieldRef})` : rawFieldRef;
970
977
  const paramRef = ci ? `toLower(${rawParamRef})` : rawParamRef;