grafeo-ogm 2.6.0 → 2.6.1

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.
package/dist/cjs/model.js CHANGED
@@ -587,9 +587,13 @@ class Model {
587
587
  async upsert(params) {
588
588
  if (params.select && params.selectionSet)
589
589
  throw new errors_1.OGMError('Cannot provide both "select" and "selectionSet". They are mutually exclusive.');
590
- // MERGE has no WHERE we can stitch into so we evaluate restrictives
591
- // against both `create` and `update` inputs at the application layer.
592
- // Permissive default-deny applies — see PolicyDeniedError.
590
+ // WITH CHECK restrictives are evaluated against both `create` and
591
+ // `update` inputs at the application layer. Permissive default-deny
592
+ // applies — see PolicyDeniedError. v2.6.1 — the `update` ROW filter is
593
+ // also applied, to the node the MERGE matches (`compileUpdateGuard`):
594
+ // an existing node the context cannot update is left untouched and the
595
+ // call returns null, as a direct `update` matches 0 rows. Pre-2.6.1
596
+ // only the WITH CHECK ran, so any existing node could be rewritten.
593
597
  const updatePolicy = this.resolvePolicyContext('update', params.unsafe);
594
598
  const createPolicy = this.resolvePolicyContext('create', params.unsafe);
595
599
  this.assertNotDeniedAtCompile(updatePolicy, 'update');
@@ -603,10 +607,10 @@ class Model {
603
607
  });
604
608
  this.evaluateWriteRestrictives(updatePolicy, 'update', params.update);
605
609
  this.evaluateWriteRestrictives(createPolicy, 'create', params.create);
606
- const { cypher, params: mergeParams } = this.mutationCompiler.compileMerge(params.where, params.create, params.update, this.nodeDef, params.labels);
607
- // Shared counter so the selection's connection-where params don't collide
608
- // with anything already in mergeParams.
610
+ // Shared counter so the update guard's and the selection's params don't
611
+ // collide with anything already in mergeParams.
609
612
  const paramCounter = { count: 0 };
613
+ const { cypher, params: mergeParams } = this.mutationCompiler.compileMerge(params.where, params.create, params.update, this.nodeDef, params.labels, this.compileUpdateGuard(updatePolicy, paramCounter, ['__matched']));
610
614
  const readPolicyContext = this.resolvePolicyContext('read', params.unsafe);
611
615
  let finalCypher;
612
616
  if (params.select)
@@ -621,7 +625,20 @@ class Model {
621
625
  async createMany(params) {
622
626
  const policyContext = this.resolvePolicyContext('create', params.unsafe);
623
627
  this.evaluateCreatePolicies(policyContext, params.data);
624
- const { cypher, params: mutParams } = this.mutationCompiler.compileCreateMany(params.data, this.nodeDef, params.skipDuplicates, params.labels);
628
+ // v2.6.1 — with skipDuplicates, default-mode `labels` are also SET on
629
+ // the EXISTING nodes the MERGE matches: a label change, gated by the
630
+ // `update` row filter as `setLabels` is. Pre-2.6.1 every matched node
631
+ // was relabelled. No compile-time throw: the call is a create, and a
632
+ // context without an update permissive simply relabels no matched node.
633
+ // (`policyContext` is null exactly when no policy is bound or a bypass
634
+ // is active, so the update bundle is resolved only when it can apply.)
635
+ const updateGuard = policyContext &&
636
+ params.skipDuplicates &&
637
+ params.labels &&
638
+ params.labels.length > 0
639
+ ? this.compileUpdateGuard(this.resolvePolicyContext('update', params.unsafe), { count: 0 })
640
+ : undefined;
641
+ const { cypher, params: mutParams } = this.mutationCompiler.compileCreateMany(params.data, this.nodeDef, params.skipDuplicates, params.labels, updateGuard);
625
642
  const result = await this.executor.execute(cypher, mutParams, this.withAuditMetadata(params.context, policyContext, 'create', Boolean(params.unsafe?.bypassPolicies)));
626
643
  // v2.5.0 — with skipDuplicates the MERGE row count includes the
627
644
  // existing nodes it matched, so the count comes from the write counters:
@@ -846,6 +863,21 @@ class Model {
846
863
  evaluateWriteRestrictives(bundle, operation, input) {
847
864
  (0, nested_writes_1.evaluateWriteRestrictives)(bundle, this.nodeDef.typeName, operation, input);
848
865
  }
866
+ /**
867
+ * v2.6.1 — the root `update` row filter on `n`, for a MERGE-based write
868
+ * (upsert, createMany with skipDuplicates) to apply to the nodes it
869
+ * MATCHES. The same clause a direct `update` puts in its WHERE
870
+ * (permissives OR-ed, restrictives AND-ed, `false` when no permissive
871
+ * applies). `undefined` when no policy is bound, a bypass is active, the
872
+ * type has no `update` policy or an override fires — the MERGE is then
873
+ * compiled exactly as before.
874
+ */
875
+ compileUpdateGuard(bundle, paramCounter, preserveVars = []) {
876
+ if (!bundle)
877
+ return undefined;
878
+ const guard = this.whereCompiler.compile(undefined, 'n', this.nodeDef, paramCounter, { policyContext: bundle, preserveVars });
879
+ return guard.cypher ? guard : undefined;
880
+ }
849
881
  defaultSelection() {
850
882
  if (this._defaultSelection)
851
883
  return this._defaultSelection;
@@ -898,6 +930,33 @@ class Model {
898
930
  : `RETURN ${returnClause}`;
899
931
  return cypher.replace(/RETURN n\s*$/, replacement);
900
932
  }
933
+ /**
934
+ * v2.6.1 — filter a mutation's returned rows by the root type's `read`
935
+ * policy: the write still happens, but a node the context cannot read
936
+ * (in its post-write state) is not returned, as `find` would not return
937
+ * it. Pre-2.6.1 create / update / upsert returned every node they wrote,
938
+ * so a context allowed to update (or create) a node it could not read got
939
+ * it back in full. Nested selections already applied their target read
940
+ * policies; this adds the root.
941
+ *
942
+ * Inserts `WITH n [@cypher preludes] WHERE <read clause>` before the
943
+ * trailing `RETURN n` (a WITH closes the write part, invariant 1; the
944
+ * WHERE only drops rows, invariant 2). No-op — byte-identical — when no
945
+ * policy is bound, a bypass is active, the type has no read policy or an
946
+ * override fires.
947
+ */
948
+ applyRootReadFilter(cypher, params, paramCounter, policyContext) {
949
+ if (!policyContext)
950
+ return cypher;
951
+ const read = this.whereCompiler.compile(undefined, 'n', this.nodeDef, paramCounter, { policyContext });
952
+ if (!read.cypher)
953
+ return cypher;
954
+ (0, validation_1.mergeParams)(params, read.params);
955
+ const lines = ['WITH n', ...(read.preludes ?? []), `WHERE ${read.cypher}`];
956
+ // A replacer function: the clause holds `$param` text, which a
957
+ // replacement STRING would scan for `$&`-style patterns.
958
+ return cypher.replace(/RETURN n\s*$/, () => `${lines.join('\n')}\nRETURN n`);
959
+ }
901
960
  /**
902
961
  * Replace the plain "RETURN n" in mutation cypher with a projected RETURN
903
962
  * when a selectionSet is provided, enabling relationship traversals.
@@ -906,6 +965,7 @@ class Model {
906
965
  * CALL preludes are stitched immediately before the new RETURN.
907
966
  */
908
967
  applySelectionSetToMutation(cypher, selectionSet, params, paramCounter, policyContext = null) {
968
+ cypher = this.applyRootReadFilter(cypher, params, paramCounter, policyContext);
909
969
  let selection;
910
970
  if (selectionSet) {
911
971
  selection = this.parseSelectionSetCached(selectionSet);
@@ -947,6 +1007,7 @@ class Model {
947
1007
  * Only projects entity fields when select[pluralName] is present.
948
1008
  */
949
1009
  applySelectToMutation(cypher, select, params, paramCounter, policyContext = null) {
1010
+ cypher = this.applyRootReadFilter(cypher, params, paramCounter, policyContext);
950
1011
  const entitySelect = select[this.nodeDef.pluralName];
951
1012
  // v1.8.4 — when typed select doesn't request the entity field
952
1013
  // (e.g., `select: { info: {...} }` only), pre-1.8.4 left a bare
@@ -985,6 +1046,7 @@ class Model {
985
1046
  * Replace "RETURN n" in upsert cypher with a projected RETURN clause.
986
1047
  */
987
1048
  applySelectionSetToUpsert(cypher, selectionSet, params, paramCounter, policyContext = null) {
1049
+ cypher = this.applyRootReadFilter(cypher, params, paramCounter, policyContext);
988
1050
  // v1.8.4 — symmetric with `applySelectionSetToMutation`: project
989
1051
  // via `defaultSelection()` (which includes `__typename`) when no
990
1052
  // selectionSet is provided, instead of leaving the bare `RETURN n`.
@@ -999,6 +1061,7 @@ class Model {
999
1061
  * Apply a type-safe `select` object to an upsert's RETURN clause.
1000
1062
  */
1001
1063
  applySelectToUpsert(cypher, select, params, paramCounter, policyContext = null) {
1064
+ cypher = this.applyRootReadFilter(cypher, params, paramCounter, policyContext);
1002
1065
  const selection = this.selectNormalizer.normalize(select, this.nodeDef);
1003
1066
  const selectScope = new cypher_field_projection_1.CypherFieldScope('n', [], '__sel');
1004
1067
  const returnClause = this.selectionCompiler.compile(selection, 'n', this.nodeDef, this._maxDepth, 0, params, paramCounter, selectScope, policyContext);
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,16 @@ export interface MutationResult {
7
7
  cypher: string;
8
8
  params: Record<string, unknown>;
9
9
  }
10
+ /**
11
+ * v2.6.1 — a row filter on `n` that gates the MATCH side of a MERGE (the
12
+ * root type's `update` policy, compiled by `WhereCompiler.compile`). An
13
+ * empty `cypher` means "no filter" and leaves the emitted Cypher unchanged.
14
+ */
15
+ export interface MatchGuard {
16
+ cypher: string;
17
+ params: Record<string, unknown>;
18
+ preludes?: string[];
19
+ }
10
20
  /**
11
21
  * Compiles create, update, delete, and label mutations into Cypher + params.
12
22
  */
@@ -228,8 +238,14 @@ export declare class MutationCompiler {
228
238
  /**
229
239
  * Generate MERGE (upsert) Cypher with ON CREATE SET / ON MATCH SET.
230
240
  * Scalar properties only — nested relationship ops are not supported.
241
+ *
242
+ * v2.6.1 — `updateGuard` is the root type's `update` row filter on `n`
243
+ * (compiled by the caller with `preserveVars: ['__matched']`). When it
244
+ * is non-empty, an EXISTING node is updated only when it passes the
245
+ * guard, exactly like a direct `update`; one that fails it is left
246
+ * untouched and no row is returned. See `buildGuardedMerge`.
231
247
  */
232
- compileMerge(where: Record<string, unknown>, create: Record<string, unknown>, update: Record<string, unknown>, nodeDef: NodeDefinition, labels?: string[]): MutationResult;
248
+ compileMerge(where: Record<string, unknown>, create: Record<string, unknown>, update: Record<string, unknown>, nodeDef: NodeDefinition, labels?: string[], updateGuard?: MatchGuard): MutationResult;
233
249
  /**
234
250
  * Generate SET/REMOVE labels Cypher.
235
251
  */
@@ -243,7 +259,15 @@ export declare class MutationCompiler {
243
259
  * Scalar properties only — no nested relationship operations.
244
260
  * Returns count of created nodes.
245
261
  */
246
- compileCreateMany(data: Record<string, unknown>[], nodeDef: NodeDefinition, skipDuplicates?: boolean, labels?: string[]): MutationResult;
262
+ compileCreateMany(data: Record<string, unknown>[], nodeDef: NodeDefinition, skipDuplicates?: boolean, labels?: string[],
263
+ /**
264
+ * v2.6.1 — the root type's `update` row filter on `n`. With
265
+ * `skipDuplicates` and default-mode `labels`, an EXISTING node the
266
+ * MERGE matched is relabelled only when it passes this guard (a label
267
+ * change is an update, as `setLabels` enforces); created nodes get the
268
+ * labels in `ON CREATE SET`.
269
+ */
270
+ updateGuard?: MatchGuard): MutationResult;
247
271
  /**
248
272
  * Resolve the PropertyDefinition of an edge (relationship) property so
249
273
  * Int/BigInt edge writes get the same Integer coercion as node writes.
@@ -1 +1 @@
1
- {"version":3,"file":"mutation.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/mutation.compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutation.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/mutation.compiler.ts"],"names":[],"mappings":"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"}
@@ -596,8 +596,14 @@ export class MutationCompiler {
596
596
  /**
597
597
  * Generate MERGE (upsert) Cypher with ON CREATE SET / ON MATCH SET.
598
598
  * Scalar properties only — nested relationship ops are not supported.
599
+ *
600
+ * v2.6.1 — `updateGuard` is the root type's `update` row filter on `n`
601
+ * (compiled by the caller with `preserveVars: ['__matched']`). When it
602
+ * is non-empty, an EXISTING node is updated only when it passes the
603
+ * guard, exactly like a direct `update`; one that fails it is left
604
+ * untouched and no row is returned. See `buildGuardedMerge`.
599
605
  */
600
- compileMerge(where, create, update, nodeDef, labels) {
606
+ compileMerge(where, create, update, nodeDef, labels, updateGuard) {
601
607
  const labelStr = this.getCachedLabelString(nodeDef);
602
608
  const lines = [];
603
609
  const params = {};
@@ -723,9 +729,15 @@ export class MutationCompiler {
723
729
  updateSets.push(`n.${escapeIdentifier(key)} = ${valueExpr}`);
724
730
  params[paramName] = coerceWriteValue(value, propDef);
725
731
  }
726
- if (updateSets.length > 0)
732
+ if (updateGuard !== undefined && updateGuard.cypher !== '') {
733
+ const guarded = buildGuardedMerge(labelStr, mergeProps, updateGuard, updateSets, params);
734
+ lines.unshift(...guarded.before);
735
+ lines.push(...guarded.after);
736
+ }
737
+ else if (updateSets.length > 0)
727
738
  lines.push(`ON MATCH SET ${updateSets.join(', ')}`);
728
- // Extra labels
739
+ // Extra labels. v2.6.1 — with an update guard, the rows that reach this
740
+ // SET are the created node and an existing node that passed the guard.
729
741
  if (labels && labels.length > 0 && !labelsOnCreate) {
730
742
  const validatedLabels = labels.map((l) => assertSafeLabel(l)).join(':');
731
743
  lines.push(`SET n:${validatedLabels}`);
@@ -775,7 +787,15 @@ export class MutationCompiler {
775
787
  * Scalar properties only — no nested relationship operations.
776
788
  * Returns count of created nodes.
777
789
  */
778
- compileCreateMany(data, nodeDef, skipDuplicates, labels) {
790
+ compileCreateMany(data, nodeDef, skipDuplicates, labels,
791
+ /**
792
+ * v2.6.1 — the root type's `update` row filter on `n`. With
793
+ * `skipDuplicates` and default-mode `labels`, an EXISTING node the
794
+ * MERGE matched is relabelled only when it passes this guard (a label
795
+ * change is an update, as `setLabels` enforces); created nodes get the
796
+ * labels in `ON CREATE SET`.
797
+ */
798
+ updateGuard) {
779
799
  if (data.length === 0)
780
800
  return { cypher: 'RETURN 0 AS count', params: {} };
781
801
  const labelStr = this.getCachedLabelString(nodeDef);
@@ -848,6 +868,12 @@ export class MutationCompiler {
848
868
  });
849
869
  params.items = sanitizedItems;
850
870
  lines.push('UNWIND $items AS item');
871
+ const guardedLabels = Boolean(skipDuplicates) &&
872
+ !this.strictMode.strict &&
873
+ labels !== undefined &&
874
+ labels.length > 0 &&
875
+ updateGuard !== undefined &&
876
+ updateGuard.cypher !== '';
851
877
  if (skipDuplicates) {
852
878
  // MERGE key: the unique/id fields EVERY item supplies — an item
853
879
  // missing one would MERGE on null, which Neo4j rejects.
@@ -880,7 +906,11 @@ export class MutationCompiler {
880
906
  params[paramName] = bound;
881
907
  }
882
908
  // v2.6.0 — strict: labels only on the nodes MERGE creates.
883
- if (this.strictMode.strict && labels && labels.length > 0)
909
+ // v2.6.1 — also with an update guard: the matched nodes are
910
+ // relabelled below, only where the guard passes.
911
+ if ((this.strictMode.strict || guardedLabels) &&
912
+ labels &&
913
+ labels.length > 0)
884
914
  onCreateSets.push(`n:${labels.map((l) => assertSafeLabel(l)).join(':')}`);
885
915
  if (onCreateSets.length > 0)
886
916
  lines.push(`ON CREATE SET ${onCreateSets.join(', ')}`);
@@ -901,7 +931,20 @@ export class MutationCompiler {
901
931
  lines.push(`CREATE (n:${labelStr} { ${propParts.join(', ')} })`);
902
932
  }
903
933
  // Extra labels
904
- if (labels &&
934
+ if (guardedLabels) {
935
+ // v2.6.1 — matched nodes are relabelled only where the update guard
936
+ // passes. Pre-2.6.1 `SET n:<labels>` ran on every node the MERGE
937
+ // returned, so an existing node the context could not update was
938
+ // relabelled. FOREACH keeps one row per item (invariant 2).
939
+ const validatedLabels = labels.map((l) => assertSafeLabel(l)).join(':');
940
+ mergeParams(params, updateGuard.params);
941
+ lines.push('WITH n');
942
+ if (updateGuard.preludes && updateGuard.preludes.length > 0)
943
+ lines.push(...updateGuard.preludes);
944
+ lines.push(`FOREACH (__l IN CASE WHEN ${updateGuard.cypher} THEN [1] ELSE [] END | SET n:${validatedLabels})`);
945
+ this.labelsOnMatchedNodes(nodeDef, 'createMany');
946
+ }
947
+ else if (labels &&
905
948
  labels.length > 0 &&
906
949
  !(skipDuplicates && this.strictMode.strict)) {
907
950
  const validatedLabels = labels.map((l) => assertSafeLabel(l)).join(':');
@@ -2189,6 +2232,47 @@ function upsertRelationshipError(nodeDef, key, branch) {
2189
2232
  return new OGMError(`upsert does not support relationship fields: "${key}" in "${branch}" (${nodeDef.typeName}). ` +
2190
2233
  `Use create() / update() for nested relationship operations.`);
2191
2234
  }
2235
+ /**
2236
+ * v2.6.1 — the lines around an upsert MERGE that apply the root type's
2237
+ * `update` row filter to the node it MATCHES, as a direct `update` does:
2238
+ *
2239
+ * OPTIONAL MATCH (__existing:L { key }) ┐ before
2240
+ * WITH count(__existing) > 0 AS __matched ┘
2241
+ * MERGE (n:L { key })
2242
+ * ON CREATE SET …
2243
+ * WITH n, __matched ┐ after
2244
+ * [@cypher preludes of the guard] │
2245
+ * WHERE NOT __matched OR (<guard>) │
2246
+ * FOREACH (__u IN CASE WHEN __matched THEN [1] ELSE [] END | SET …)
2247
+ *
2248
+ * A created node passes untouched by the update sets; an existing node is
2249
+ * updated only when it passes the guard; one that fails it is neither
2250
+ * updated nor returned (and the MERGE created nothing). Pre-2.6.1 the
2251
+ * update went in `ON MATCH SET` with no row filter, so any context the
2252
+ * WITH CHECK admitted rewrote any existing node — even its owner field.
2253
+ *
2254
+ * `count()` keeps one row before the MERGE whether 0, 1 or several nodes
2255
+ * match (invariant 2); FOREACH needs no subquery after the write
2256
+ * (invariant 1). Under a race, a node created between the OPTIONAL MATCH
2257
+ * and the MERGE is matched with `__matched = false`: its properties are
2258
+ * not updated (default-mode runtime `labels`, SET after this, still are).
2259
+ */
2260
+ function buildGuardedMerge(labelStr, mergeProps, guard, updateSets, params) {
2261
+ mergeParams(params, guard.params);
2262
+ const after = ['WITH n, __matched'];
2263
+ if (guard.preludes && guard.preludes.length > 0)
2264
+ after.push(...guard.preludes);
2265
+ after.push(`WHERE NOT __matched OR (${guard.cypher})`);
2266
+ if (updateSets.length > 0)
2267
+ after.push(`FOREACH (__u IN CASE WHEN __matched THEN [1] ELSE [] END | SET ${updateSets.join(', ')})`);
2268
+ return {
2269
+ before: [
2270
+ `OPTIONAL MATCH (__existing:${labelStr} { ${mergeProps.join(', ')} })`,
2271
+ 'WITH count(__existing) > 0 AS __matched',
2272
+ ],
2273
+ after,
2274
+ };
2275
+ }
2192
2276
  /** `null` / `{}`: the whole-relationship (blanket) form, never per member. */
2193
2277
  function isBlanketSpec(spec) {
2194
2278
  if (spec == null)