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/CHANGELOG.md +14 -0
- package/README.md +3 -1
- package/dist/cjs/compilers/mutation.compiler.d.ts +26 -2
- package/dist/cjs/compilers/mutation.compiler.d.ts.map +1 -1
- package/dist/cjs/compilers/mutation.compiler.js +90 -6
- package/dist/cjs/compilers/mutation.compiler.js.map +1 -1
- package/dist/cjs/model.d.ts +26 -0
- package/dist/cjs/model.d.ts.map +1 -1
- package/dist/cjs/model.js +70 -7
- package/dist/cjs/model.js.map +1 -1
- package/dist/esm/compilers/mutation.compiler.d.ts +26 -2
- package/dist/esm/compilers/mutation.compiler.d.ts.map +1 -1
- package/dist/esm/compilers/mutation.compiler.js +90 -6
- package/dist/esm/compilers/mutation.compiler.js.map +1 -1
- package/dist/esm/model.d.ts +26 -0
- package/dist/esm/model.d.ts.map +1 -1
- package/dist/esm/model.js +71 -8
- package/dist/esm/model.js.map +1 -1
- package/package.json +2 -1
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
|
-
//
|
|
591
|
-
//
|
|
592
|
-
//
|
|
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
|
-
|
|
607
|
-
//
|
|
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
|
-
|
|
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);
|
package/dist/cjs/model.js.map
CHANGED
|
@@ -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[]
|
|
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":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACL,cAAc,EAGd,cAAc,EACf,MAAM,iBAAiB,CAAC;AAqBzB,OAAO,EAAqB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AA4DD;;GAEG;AACH,qBAAa,gBAAgB;IAsBzB,OAAO,CAAC,MAAM;IArBhB;;;OAGG;IACH,OAAO,CAAC,UAAU,CAA6B;IAE/C,OAAO,CAAC,MAAM,CAAC,CAAY;IAE3B;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB,CAAC,CAAgB;IAE5C,4DAA4D;IAC5D,OAAO,CAAC,UAAU,CAAa;gBAGrB,MAAM,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,SAAS,CAAC;QACnB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB;IAOH;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,0BAA0B;IAwDlC;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,sBAAsB;IAU9B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,kBAAkB;IA+B1B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,yBAAyB;IA+BjC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAQxB,8EAA8E;IAC9E,WAAW,IAAI,IAAI;IAInB,OAAO,CAAC,oBAAoB;IAQ5B;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAqBnB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAmCzB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA6BrB;;;OAGG;IACH,aAAa,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACjC,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,MAAM,EAAE;IACjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,mBAAmB;IACnC;;;OAGG;IACH,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAC/B,cAAc;IA+DjB;;OAEG;IACH,aAAa,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC3C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC5C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC/C,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,EACD,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,UAAU,GAAE,MAAM,GAAG,OAAgB;IACrC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,mBAAmB;IACnC;;;;OAIG;IACH,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAC/B,cAAc;IAsFjB;;;;;;;;OAQG;IACH,aAAa,CACX,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,EACD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrC,+DAA+D;IAC/D,aAAa,CAAC,EAAE,mBAAmB;IACnC,gEAAgE;IAChE,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAC/B,cAAc;IA+CjB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,iBAAiB;IAqFzB;;;;;;;;;OASG;IACH,YAAY,CACV,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,WAAW,CAAC,EAAE,UAAU,GACvB,cAAc;IAkKjB;;OAEG;IACH,gBAAgB,CACd,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,EACD,SAAS,CAAC,EAAE,MAAM,EAAE,EACpB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,cAAc;IA2CjB;;;;OAIG;IACH,iBAAiB,CACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,OAAO,EAAE,cAAc,EACvB,cAAc,CAAC,EAAE,OAAO,EACxB,MAAM,CAAC,EAAE,MAAM,EAAE;IACjB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,UAAU,GACvB,cAAc;IA6NjB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,qBAAqB;IA4C7B,OAAO,CAAC,wBAAwB;IAgFhC;;;OAGG;IACH,OAAO,CAAC,iCAAiC;IA8KzC;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAyDrB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA+LxB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,gBAAgB;IAiJxB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAsDxB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IA+C7B,yEAAyE;IACzE,OAAO,CAAC,mBAAmB;IA6I3B;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAyC;IAEhE,OAAO,CAAC,cAAc;IAStB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,kBAAkB;IAoB1B,0EAA0E;IAC1E,OAAO,CAAC,kBAAkB;IAO1B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IA4C9B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAygBhC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAcvC;IAEF;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,6BAA6B;IAkCrC,OAAO,CAAC,qBAAqB;CAQ9B;AAoCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiDzB;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,cAAc,GACrB,cAAc,GAAG,IAAI,CAiBvB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,GAChB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAyB5B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,GAChB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAenC"}
|
|
@@ -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 (
|
|
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
|
-
|
|
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 (
|
|
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)
|