grafeo-ogm 1.0.8 → 1.2.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.
- package/CHANGELOG.md +47 -0
- package/README.md +166 -2
- package/assets/logo.jpg +0 -0
- package/dist/cjs/compilers/fulltext.compiler.d.ts.map +1 -1
- package/dist/cjs/compilers/fulltext.compiler.js +3 -3
- package/dist/cjs/compilers/fulltext.compiler.js.map +1 -1
- package/dist/cjs/compilers/mutation.compiler.d.ts +6 -12
- package/dist/cjs/compilers/mutation.compiler.d.ts.map +1 -1
- package/dist/cjs/compilers/mutation.compiler.js +126 -81
- package/dist/cjs/compilers/mutation.compiler.js.map +1 -1
- package/dist/cjs/compilers/select-normalizer.d.ts +8 -1
- package/dist/cjs/compilers/select-normalizer.d.ts.map +1 -1
- package/dist/cjs/compilers/select-normalizer.js +64 -4
- package/dist/cjs/compilers/select-normalizer.js.map +1 -1
- package/dist/cjs/compilers/selection.compiler.d.ts +9 -12
- package/dist/cjs/compilers/selection.compiler.d.ts.map +1 -1
- package/dist/cjs/compilers/selection.compiler.js +77 -49
- package/dist/cjs/compilers/selection.compiler.js.map +1 -1
- package/dist/cjs/compilers/where.compiler.d.ts +1 -6
- package/dist/cjs/compilers/where.compiler.d.ts.map +1 -1
- package/dist/cjs/compilers/where.compiler.js +83 -139
- package/dist/cjs/compilers/where.compiler.js.map +1 -1
- package/dist/cjs/generator/type-emitters/select-fields-emitter.d.ts.map +1 -1
- package/dist/cjs/generator/type-emitters/select-fields-emitter.js +10 -6
- package/dist/cjs/generator/type-emitters/select-fields-emitter.js.map +1 -1
- package/dist/cjs/interface-model.d.ts +6 -11
- package/dist/cjs/interface-model.d.ts.map +1 -1
- package/dist/cjs/interface-model.js +2 -14
- package/dist/cjs/interface-model.js.map +1 -1
- package/dist/cjs/model.d.ts +9 -2
- package/dist/cjs/model.d.ts.map +1 -1
- package/dist/cjs/model.js +6 -6
- package/dist/cjs/model.js.map +1 -1
- package/dist/cjs/schema/utils.d.ts +45 -1
- package/dist/cjs/schema/utils.d.ts.map +1 -1
- package/dist/cjs/schema/utils.js +49 -0
- package/dist/cjs/schema/utils.js.map +1 -1
- package/dist/cjs/utils/validation.d.ts +13 -0
- package/dist/cjs/utils/validation.d.ts.map +1 -1
- package/dist/cjs/utils/validation.js +21 -0
- package/dist/cjs/utils/validation.js.map +1 -1
- package/dist/esm/compilers/fulltext.compiler.d.ts.map +1 -1
- package/dist/esm/compilers/fulltext.compiler.js +4 -4
- package/dist/esm/compilers/fulltext.compiler.js.map +1 -1
- package/dist/esm/compilers/mutation.compiler.d.ts +6 -12
- package/dist/esm/compilers/mutation.compiler.d.ts.map +1 -1
- package/dist/esm/compilers/mutation.compiler.js +128 -83
- package/dist/esm/compilers/mutation.compiler.js.map +1 -1
- package/dist/esm/compilers/select-normalizer.d.ts +8 -1
- package/dist/esm/compilers/select-normalizer.d.ts.map +1 -1
- package/dist/esm/compilers/select-normalizer.js +65 -5
- package/dist/esm/compilers/select-normalizer.js.map +1 -1
- package/dist/esm/compilers/selection.compiler.d.ts +9 -12
- package/dist/esm/compilers/selection.compiler.d.ts.map +1 -1
- package/dist/esm/compilers/selection.compiler.js +79 -51
- package/dist/esm/compilers/selection.compiler.js.map +1 -1
- package/dist/esm/compilers/where.compiler.d.ts +1 -6
- package/dist/esm/compilers/where.compiler.d.ts.map +1 -1
- package/dist/esm/compilers/where.compiler.js +85 -141
- package/dist/esm/compilers/where.compiler.js.map +1 -1
- package/dist/esm/generator/type-emitters/select-fields-emitter.d.ts.map +1 -1
- package/dist/esm/generator/type-emitters/select-fields-emitter.js +10 -6
- package/dist/esm/generator/type-emitters/select-fields-emitter.js.map +1 -1
- package/dist/esm/interface-model.d.ts +6 -11
- package/dist/esm/interface-model.d.ts.map +1 -1
- package/dist/esm/interface-model.js +4 -16
- package/dist/esm/interface-model.js.map +1 -1
- package/dist/esm/model.d.ts +9 -2
- package/dist/esm/model.d.ts.map +1 -1
- package/dist/esm/model.js +7 -7
- package/dist/esm/model.js.map +1 -1
- package/dist/esm/schema/utils.d.ts +45 -1
- package/dist/esm/schema/utils.d.ts.map +1 -1
- package/dist/esm/schema/utils.js +48 -1
- package/dist/esm/schema/utils.js.map +1 -1
- package/dist/esm/utils/validation.d.ts +13 -0
- package/dist/esm/utils/validation.d.ts.map +1 -1
- package/dist/esm/utils/validation.js +19 -0
- package/dist/esm/utils/validation.js.map +1 -1
- package/package.json +47 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OGMError } from '../errors';
|
|
2
2
|
import { resolveTargetDef } from '../schema/utils';
|
|
3
|
-
import {
|
|
3
|
+
import { assertSafeIdentifier, assertSafeKey, assertSortDirection, isPlainObject, } from '../utils/validation';
|
|
4
4
|
/**
|
|
5
5
|
* Converts a `select` object (used in the programmatic API) into the internal
|
|
6
6
|
* SelectionNode[] AST that the SelectionCompiler operates on.
|
|
@@ -35,8 +35,8 @@ export class SelectNormalizer {
|
|
|
35
35
|
normalize(select, nodeDef) {
|
|
36
36
|
const nodes = [];
|
|
37
37
|
for (const [fieldName, value] of Object.entries(select)) {
|
|
38
|
-
if (
|
|
39
|
-
continue;
|
|
38
|
+
if (value == null || value === false)
|
|
39
|
+
continue;
|
|
40
40
|
assertSafeKey(fieldName, 'select input');
|
|
41
41
|
const isConnection = fieldName.endsWith('Connection');
|
|
42
42
|
if (isConnection) {
|
|
@@ -84,7 +84,7 @@ export class SelectNormalizer {
|
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
86
|
// `{ drugs: { where: {...}, select: { id: true, drugName: true }, orderBy: {...} } }`
|
|
87
|
-
if (
|
|
87
|
+
if (isPlainObject(value)) {
|
|
88
88
|
const obj = value;
|
|
89
89
|
if (obj.select && typeof obj.select === 'object') {
|
|
90
90
|
let children = this.normalize(obj.select, targetDef);
|
|
@@ -191,12 +191,15 @@ export class SelectNormalizer {
|
|
|
191
191
|
isRelationship: false,
|
|
192
192
|
isConnection: true,
|
|
193
193
|
};
|
|
194
|
-
if (
|
|
194
|
+
if (!isPlainObject(value))
|
|
195
195
|
return node;
|
|
196
196
|
const obj = value;
|
|
197
197
|
// Extract where clause
|
|
198
198
|
if (obj.where && typeof obj.where === 'object')
|
|
199
199
|
node.connectionWhere = obj.where;
|
|
200
|
+
// Extract orderBy (node/edge scoped) for edge sorting
|
|
201
|
+
if (obj.orderBy !== undefined)
|
|
202
|
+
node.connectionOrderBy = this.normalizeConnectionOrderBy(obj.orderBy, targetDef, relDef, fieldName);
|
|
200
203
|
// Extract edges -> node and edges -> properties from select
|
|
201
204
|
if (obj.select && typeof obj.select === 'object') {
|
|
202
205
|
const selectObj = obj.select;
|
|
@@ -231,6 +234,63 @@ export class SelectNormalizer {
|
|
|
231
234
|
}
|
|
232
235
|
return node;
|
|
233
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Normalize and validate a connection orderBy input.
|
|
239
|
+
* Each entry must be an object with exactly one key: `node` or `edge`.
|
|
240
|
+
* The inner value is a `{ field: 'ASC' | 'DESC' }` map, which may contain
|
|
241
|
+
* multiple fields (preserving insertion order as sort priority).
|
|
242
|
+
*/
|
|
243
|
+
normalizeConnectionOrderBy(orderByInput, targetDef, relDef, fieldName) {
|
|
244
|
+
const items = Array.isArray(orderByInput) ? orderByInput : [orderByInput];
|
|
245
|
+
const result = [];
|
|
246
|
+
for (const item of items) {
|
|
247
|
+
if (typeof item !== 'object' || item === null)
|
|
248
|
+
throw new OGMError(`Invalid orderBy entry on connection "${fieldName}". ` +
|
|
249
|
+
`Each entry must be an object like { node: { field: 'ASC' } } or { edge: { field: 'DESC' } }.`);
|
|
250
|
+
const entries = Object.entries(item);
|
|
251
|
+
if (entries.length === 0)
|
|
252
|
+
continue;
|
|
253
|
+
if (entries.length > 1)
|
|
254
|
+
throw new OGMError(`Invalid orderBy entry on connection "${fieldName}". ` +
|
|
255
|
+
`Each entry must have exactly one of "node" or "edge" — got keys: ${entries
|
|
256
|
+
.map(([k]) => `"${k}"`)
|
|
257
|
+
.join(', ')}.`);
|
|
258
|
+
const [scopeKey, scopeValue] = entries[0];
|
|
259
|
+
if (scopeKey !== 'node' && scopeKey !== 'edge')
|
|
260
|
+
throw new OGMError(`Invalid orderBy scope "${scopeKey}" on connection "${fieldName}". ` +
|
|
261
|
+
`Use "node" (to sort by target node fields) or "edge" (to sort by relationship property fields).`);
|
|
262
|
+
if (!isPlainObject(scopeValue))
|
|
263
|
+
throw new OGMError(`Invalid orderBy "${scopeKey}" value on connection "${fieldName}". ` +
|
|
264
|
+
`Expected an object like { field: 'ASC' }.`);
|
|
265
|
+
const scope = scopeKey;
|
|
266
|
+
let edgePropsDef;
|
|
267
|
+
if (scope === 'edge') {
|
|
268
|
+
if (!relDef.properties)
|
|
269
|
+
throw new OGMError(`Invalid orderBy on connection "${fieldName}": relationship has no @relationshipProperties, ` +
|
|
270
|
+
`so "edge" sort keys are not available. Use { node: { ... } } instead.`);
|
|
271
|
+
const resolved = this.schema.relationshipProperties.get(relDef.properties);
|
|
272
|
+
if (!resolved)
|
|
273
|
+
throw new OGMError(`Invalid orderBy on connection "${fieldName}": relationship properties type ` +
|
|
274
|
+
`"${relDef.properties}" is not defined in the schema.`);
|
|
275
|
+
edgePropsDef = resolved;
|
|
276
|
+
}
|
|
277
|
+
for (const [sortField, rawDirection] of Object.entries(scopeValue)) {
|
|
278
|
+
assertSafeKey(sortField, `orderBy ${scope} field`);
|
|
279
|
+
assertSafeIdentifier(sortField, `orderBy ${scope} field`);
|
|
280
|
+
if (scope === 'node') {
|
|
281
|
+
if (!targetDef.properties.has(sortField))
|
|
282
|
+
throw new OGMError(`Invalid orderBy node field "${sortField}" on connection "${fieldName}". ` +
|
|
283
|
+
`Field must be a scalar property of ${targetDef.typeName}.`);
|
|
284
|
+
}
|
|
285
|
+
else if (!edgePropsDef?.properties.has(sortField))
|
|
286
|
+
throw new OGMError(`Invalid orderBy edge field "${sortField}" on connection "${fieldName}". ` +
|
|
287
|
+
`Field must be a scalar property of relationship type "${relDef.properties}".`);
|
|
288
|
+
const direction = assertSortDirection(String(rawDirection));
|
|
289
|
+
result.push({ field: sortField, direction, scope });
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
return result;
|
|
293
|
+
}
|
|
234
294
|
/**
|
|
235
295
|
* Normalize edge property selections into SelectionNode[].
|
|
236
296
|
* Edge properties are always scalars.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-normalizer.js","sourceRoot":"","sources":["../../../src/compilers/select-normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"select-normalizer.js","sourceRoot":"","sources":["../../../src/compilers/select-normalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,15 @@ export interface SelectionNode {
|
|
|
19
19
|
field: string;
|
|
20
20
|
direction: 'ASC' | 'DESC';
|
|
21
21
|
}>;
|
|
22
|
+
/**
|
|
23
|
+
* Sort spec for connection edges. Each entry targets either the related node
|
|
24
|
+
* scalars (`scope: 'node'`) or @relationshipProperties scalars (`scope: 'edge'`).
|
|
25
|
+
*/
|
|
26
|
+
connectionOrderBy?: Array<{
|
|
27
|
+
field: string;
|
|
28
|
+
direction: 'ASC' | 'DESC';
|
|
29
|
+
scope: 'node' | 'edge';
|
|
30
|
+
}>;
|
|
22
31
|
}
|
|
23
32
|
/**
|
|
24
33
|
* Compiles a selection set (parsed SelectionNode[]) into a Cypher RETURN map projection.
|
|
@@ -97,18 +106,6 @@ export declare class SelectionCompiler {
|
|
|
97
106
|
* For concrete types: returns a string constant.
|
|
98
107
|
*/
|
|
99
108
|
private compileTypename;
|
|
100
|
-
/**
|
|
101
|
-
* Check if a target type name is a union or interface (not a concrete node label).
|
|
102
|
-
* Union/interface names don't exist as Neo4j labels, so they must be omitted
|
|
103
|
-
* from relationship patterns to avoid matching zero nodes.
|
|
104
|
-
*/
|
|
105
|
-
private isAbstractTarget;
|
|
106
|
-
/**
|
|
107
|
-
* Build a Cypher relationship pattern string respecting direction.
|
|
108
|
-
* For union/interface targets, omits the label filter since those
|
|
109
|
-
* type names don't exist as Neo4j labels.
|
|
110
|
-
*/
|
|
111
|
-
private buildRelationshipPattern;
|
|
112
109
|
/**
|
|
113
110
|
* Compile a simple where object into a Cypher WHERE clause fragment.
|
|
114
111
|
* This is a minimal implementation for connection where filters.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/selection.compiler.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"selection.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/selection.compiler.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC;IAC/B,mFAAmF;IACnF,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D;;;OAGG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;QAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB,CAAC,CAAC;CACJ;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAW1B,OAAO,CAAC,MAAM;IAVhB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAK;IAC9C;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAG5B,MAAM,EAAE,cAAc,EAC9B,aAAa,CAAC,EAAE,aAAa;IAK/B,8EAA8E;IAC9E,UAAU,IAAI,IAAI;IAIlB;;;;;;;;;OASG;IACH,OAAO,CACL,SAAS,EAAE,aAAa,EAAE,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,EACvB,QAAQ,GAAE,MAA4C,EACtD,YAAY,GAAE,MAAU,EACxB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAC/B,MAAM;IAiGT;;;;;OAKG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,EAAE;IA8BxD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgD3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA0B/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+E3B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,6BAA6B;IA6DrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkIzB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAoBvB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAsC3B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Kind, parse, } from 'graphql';
|
|
2
2
|
import { OGMError } from '../errors';
|
|
3
|
-
import { resolveTargetDef } from '../schema/utils';
|
|
4
|
-
import { assertSafeIdentifier, escapeIdentifier } from '../utils/validation';
|
|
3
|
+
import { buildRelPattern, resolveTargetDef } from '../schema/utils';
|
|
4
|
+
import { assertSafeIdentifier, escapeIdentifier, isPlainObject, mergeParams, } from '../utils/validation';
|
|
5
5
|
/**
|
|
6
6
|
* Compiles a selection set (parsed SelectionNode[]) into a Cypher RETURN map projection.
|
|
7
7
|
*
|
|
@@ -40,7 +40,25 @@ export class SelectionCompiler {
|
|
|
40
40
|
// fields need CASE WHEN branches since different union members may have
|
|
41
41
|
// the same field name but different underlying relationship types.
|
|
42
42
|
const unionMembers = this.schema.unions?.get(nodeDef.typeName);
|
|
43
|
+
const interfaceDef = this.schema.interfaces?.get(nodeDef.typeName);
|
|
44
|
+
const isAbstract = (unionMembers && unionMembers.length > 0) ||
|
|
45
|
+
(interfaceDef &&
|
|
46
|
+
interfaceDef.implementedBy &&
|
|
47
|
+
interfaceDef.implementedBy.length > 0);
|
|
43
48
|
const parts = [];
|
|
49
|
+
// Auto-emit __typename for abstract targets (unions/interfaces). Callers
|
|
50
|
+
// of a discriminated type cannot narrow the returned object without
|
|
51
|
+
// __typename, and requiring them to remember a boilerplate
|
|
52
|
+
// `__typename: true` is a footgun — type guards silently return false
|
|
53
|
+
// with no signal. Skip if the caller already asked for it explicitly.
|
|
54
|
+
if (isAbstract) {
|
|
55
|
+
const alreadyRequested = selection.some((node) => node.isScalar && node.fieldName === '__typename');
|
|
56
|
+
if (!alreadyRequested) {
|
|
57
|
+
const typenameExpr = this.compileTypename(nodeVar, nodeDef);
|
|
58
|
+
if (typenameExpr)
|
|
59
|
+
parts.push(`__typename: ${typenameExpr}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
44
62
|
for (const node of selection) {
|
|
45
63
|
if (node.isScalar) {
|
|
46
64
|
// __typename is a GraphQL concept — Neo4j nodes don't have this property.
|
|
@@ -186,7 +204,13 @@ export class SelectionCompiler {
|
|
|
186
204
|
if (!targetDef)
|
|
187
205
|
return null;
|
|
188
206
|
const childVar = `n${currentDepth}`;
|
|
189
|
-
const pattern =
|
|
207
|
+
const pattern = buildRelPattern({
|
|
208
|
+
sourceVar: parentVar,
|
|
209
|
+
relDef,
|
|
210
|
+
targetVar: childVar,
|
|
211
|
+
targetLabel: 'auto',
|
|
212
|
+
schema: this.schema,
|
|
213
|
+
});
|
|
190
214
|
const children = node.children ?? [];
|
|
191
215
|
const innerProjection = this.compile(children, childVar, targetDef, maxDepth, currentDepth + 1, params, paramCounter);
|
|
192
216
|
// Compile WHERE clause for relationship filtering (Prisma-like select)
|
|
@@ -198,7 +222,7 @@ export class SelectionCompiler {
|
|
|
198
222
|
paramCounter) {
|
|
199
223
|
const whereResult = this.whereCompiler.compile(node.relationshipWhere, childVar, targetDef, paramCounter);
|
|
200
224
|
if (whereResult.cypher) {
|
|
201
|
-
|
|
225
|
+
mergeParams(params, whereResult.params);
|
|
202
226
|
whereClause = ` WHERE ${whereResult.cypher}`;
|
|
203
227
|
}
|
|
204
228
|
}
|
|
@@ -256,17 +280,13 @@ export class SelectionCompiler {
|
|
|
256
280
|
const childVar = `n${currentDepth}`;
|
|
257
281
|
const children = node.children ?? [];
|
|
258
282
|
const innerProjection = this.compile(children, childVar, targetDef, maxDepth, currentDepth + 1, params, paramCounter);
|
|
259
|
-
const
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
:
|
|
265
|
-
|
|
266
|
-
if (relDef.direction === 'IN')
|
|
267
|
-
pattern = `(${nodeVar})<-${edgePart}-${targetLabel}`;
|
|
268
|
-
else
|
|
269
|
-
pattern = `(${nodeVar})-${edgePart}->${targetLabel}`;
|
|
283
|
+
const pattern = buildRelPattern({
|
|
284
|
+
sourceVar: nodeVar,
|
|
285
|
+
relDef,
|
|
286
|
+
targetVar: childVar,
|
|
287
|
+
targetLabel: 'auto',
|
|
288
|
+
schema: this.schema,
|
|
289
|
+
});
|
|
270
290
|
// Wrap singular relationships with head() to return object instead of array
|
|
271
291
|
const comprehension = isSingular
|
|
272
292
|
? `head([${pattern} | ${innerProjection}])`
|
|
@@ -295,12 +315,21 @@ export class SelectionCompiler {
|
|
|
295
315
|
return null;
|
|
296
316
|
const childVar = `n${currentDepth}`;
|
|
297
317
|
const edgeVar = `e${currentDepth}`;
|
|
298
|
-
const pattern =
|
|
318
|
+
const pattern = buildRelPattern({
|
|
319
|
+
sourceVar: parentVar,
|
|
320
|
+
relDef,
|
|
321
|
+
targetVar: childVar,
|
|
322
|
+
edgeVar,
|
|
323
|
+
targetLabel: 'auto',
|
|
324
|
+
schema: this.schema,
|
|
325
|
+
});
|
|
299
326
|
const mapParts = [];
|
|
327
|
+
const projectionKeys = [];
|
|
300
328
|
// Compile node projection
|
|
301
329
|
if (node.children && node.children.length > 0) {
|
|
302
330
|
const nodeProjection = this.compile(node.children, childVar, targetDef, maxDepth, currentDepth + 1, params, paramCounter);
|
|
303
331
|
mapParts.push(`node: ${nodeProjection}`);
|
|
332
|
+
projectionKeys.push('node');
|
|
304
333
|
}
|
|
305
334
|
// Compile edge properties projection
|
|
306
335
|
if (node.edgeChildren && node.edgeChildren.length > 0) {
|
|
@@ -309,7 +338,21 @@ export class SelectionCompiler {
|
|
|
309
338
|
.map((c) => `.${escapeIdentifier(c.fieldName)}`)
|
|
310
339
|
.join(', ');
|
|
311
340
|
mapParts.push(`properties: ${edgeVar} { ${edgeFields} }`);
|
|
341
|
+
projectionKeys.push('properties');
|
|
312
342
|
}
|
|
343
|
+
// Inject synthetic sort scalars at the top level of the edge map so
|
|
344
|
+
// apoc.coll.sortMulti (which only accepts top-level keys) can order the
|
|
345
|
+
// collection. The outer list comprehension strips them on the way out.
|
|
346
|
+
const sortKeyTokens = [];
|
|
347
|
+
if (node.connectionOrderBy && node.connectionOrderBy.length > 0)
|
|
348
|
+
node.connectionOrderBy.forEach(({ field, direction, scope }, i) => {
|
|
349
|
+
assertSafeIdentifier(field, 'connection orderBy field');
|
|
350
|
+
const sourceVar = scope === 'edge' ? edgeVar : childVar;
|
|
351
|
+
const syntheticKey = `__sk${i}`;
|
|
352
|
+
mapParts.push(`${syntheticKey}: ${sourceVar}.${escapeIdentifier(field)}`);
|
|
353
|
+
// apoc.coll.sortMulti convention: ^ prefix = ASC, no prefix = DESC
|
|
354
|
+
sortKeyTokens.push(direction === 'ASC' ? `'^${syntheticKey}'` : `'${syntheticKey}'`);
|
|
355
|
+
});
|
|
313
356
|
const innerMap = `{ ${mapParts.join(', ')} }`;
|
|
314
357
|
// Add WHERE clause if connectionWhere is present
|
|
315
358
|
let whereClause = '';
|
|
@@ -319,8 +362,7 @@ export class SelectionCompiler {
|
|
|
319
362
|
throw new OGMError(`Connection WHERE with "edge" filters is not supported. ` +
|
|
320
363
|
`Only "node" filters are supported for connection "${node.fieldName}".`);
|
|
321
364
|
// Unwrap { node: { ... } } wrapper if present
|
|
322
|
-
const nodeWhere =
|
|
323
|
-
node.connectionWhere.node !== null
|
|
365
|
+
const nodeWhere = isPlainObject(node.connectionWhere.node)
|
|
324
366
|
? node.connectionWhere.node
|
|
325
367
|
: node.connectionWhere;
|
|
326
368
|
// If we have a full WhereCompiler, delegate to it for complete operator support
|
|
@@ -328,7 +370,7 @@ export class SelectionCompiler {
|
|
|
328
370
|
const whereResult = this.whereCompiler.compile(nodeWhere, childVar, targetDef, paramCounter);
|
|
329
371
|
if (whereResult.cypher) {
|
|
330
372
|
if (params)
|
|
331
|
-
|
|
373
|
+
mergeParams(params, whereResult.params);
|
|
332
374
|
whereClause = ` WHERE ${whereResult.cypher}`;
|
|
333
375
|
}
|
|
334
376
|
}
|
|
@@ -338,7 +380,14 @@ export class SelectionCompiler {
|
|
|
338
380
|
whereClause = ` WHERE ${simpleWhere}`;
|
|
339
381
|
}
|
|
340
382
|
}
|
|
341
|
-
|
|
383
|
+
if (sortKeyTokens.length === 0)
|
|
384
|
+
return `{ edges: [${pattern}${whereClause} | ${innerMap}] }`;
|
|
385
|
+
// Re-project only the user-facing keys so synthetic __skN scalars don't
|
|
386
|
+
// leak out of the projection.
|
|
387
|
+
const outerProjection = projectionKeys.length > 0
|
|
388
|
+
? `{ ${projectionKeys.map((k) => `${k}: x.${k}`).join(', ')} }`
|
|
389
|
+
: `{}`;
|
|
390
|
+
return `{ edges: [x IN apoc.coll.sortMulti([${pattern}${whereClause} | ${innerMap}], [${sortKeyTokens.join(', ')}]) | ${outerProjection}] }`;
|
|
342
391
|
}
|
|
343
392
|
/**
|
|
344
393
|
* Compile a __typename expression for a node.
|
|
@@ -351,38 +400,17 @@ export class SelectionCompiler {
|
|
|
351
400
|
const memberList = unionMembers.map((m) => `'${m}'`).join(', ');
|
|
352
401
|
return `head([__label IN labels(${nodeVar}) WHERE __label IN [${memberList}]])`;
|
|
353
402
|
}
|
|
403
|
+
const interfaceDef = this.schema.interfaces?.get(nodeDef.typeName);
|
|
404
|
+
if (interfaceDef &&
|
|
405
|
+
interfaceDef.implementedBy &&
|
|
406
|
+
interfaceDef.implementedBy.length > 0) {
|
|
407
|
+
const memberList = interfaceDef.implementedBy
|
|
408
|
+
.map((m) => `'${m}'`)
|
|
409
|
+
.join(', ');
|
|
410
|
+
return `head([__label IN labels(${nodeVar}) WHERE __label IN [${memberList}]])`;
|
|
411
|
+
}
|
|
354
412
|
return `'${nodeDef.typeName}'`;
|
|
355
413
|
}
|
|
356
|
-
/**
|
|
357
|
-
* Check if a target type name is a union or interface (not a concrete node label).
|
|
358
|
-
* Union/interface names don't exist as Neo4j labels, so they must be omitted
|
|
359
|
-
* from relationship patterns to avoid matching zero nodes.
|
|
360
|
-
*/
|
|
361
|
-
isAbstractTarget(target) {
|
|
362
|
-
if (this.schema.nodes.has(target))
|
|
363
|
-
return false;
|
|
364
|
-
return !!(this.schema.unions?.has(target) || this.schema.interfaces?.has(target));
|
|
365
|
-
}
|
|
366
|
-
/**
|
|
367
|
-
* Build a Cypher relationship pattern string respecting direction.
|
|
368
|
-
* For union/interface targets, omits the label filter since those
|
|
369
|
-
* type names don't exist as Neo4j labels.
|
|
370
|
-
*/
|
|
371
|
-
buildRelationshipPattern(parentVar, childVar, relDef, edgeVar) {
|
|
372
|
-
const escapedType = escapeIdentifier(relDef.type);
|
|
373
|
-
const edgePart = edgeVar
|
|
374
|
-
? `[${edgeVar}:${escapedType}]`
|
|
375
|
-
: `[:${escapedType}]`;
|
|
376
|
-
// Union/interface targets don't have a corresponding Neo4j label —
|
|
377
|
-
// match by relationship type only, not by target label.
|
|
378
|
-
const targetPart = this.isAbstractTarget(relDef.target)
|
|
379
|
-
? `(${childVar})`
|
|
380
|
-
: `(${childVar}:${escapeIdentifier(relDef.target)})`;
|
|
381
|
-
if (relDef.direction === 'IN')
|
|
382
|
-
return `(${parentVar})<-${edgePart}-${targetPart}`;
|
|
383
|
-
// OUT (default)
|
|
384
|
-
return `(${parentVar})-${edgePart}->${targetPart}`;
|
|
385
|
-
}
|
|
386
414
|
/**
|
|
387
415
|
* Compile a simple where object into a Cypher WHERE clause fragment.
|
|
388
416
|
* This is a minimal implementation for connection where filters.
|
|
@@ -393,7 +421,7 @@ export class SelectionCompiler {
|
|
|
393
421
|
const conditions = [];
|
|
394
422
|
for (const [key, value] of Object.entries(where)) {
|
|
395
423
|
// Handle nested { node: { ... } } pattern
|
|
396
|
-
if (key === 'node' &&
|
|
424
|
+
if (key === 'node' && isPlainObject(value))
|
|
397
425
|
return this.compileSimpleWhere(value, nodeVar, params, paramCounter);
|
|
398
426
|
if (key.endsWith('_IN') && Array.isArray(value)) {
|
|
399
427
|
const fieldName = key.slice(0, -3);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection.compiler.js","sourceRoot":"","sources":["../../../src/compilers/selection.compiler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selection.compiler.js","sourceRoot":"","sources":["../../../src/compilers/selection.compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,7 @@ export interface WhereResult {
|
|
|
3
3
|
cypher: string;
|
|
4
4
|
params: Record<string, unknown>;
|
|
5
5
|
}
|
|
6
|
-
|
|
7
|
-
declare const OPERATOR_SUFFIXES: readonly ["_NOT_STARTS_WITH", "_NOT_ENDS_WITH", "_NOT_CONTAINS", "_NOT_IN", "_STARTS_WITH", "_ENDS_WITH", "_CONTAINS", "_MATCHES", "_GTE", "_LTE", "_NOT", "_GT", "_LT", "_IN"];
|
|
8
|
-
type OperatorSuffix = (typeof OPERATOR_SUFFIXES)[number];
|
|
6
|
+
type OperatorSuffix = string;
|
|
9
7
|
export interface WhereCompilerOptions {
|
|
10
8
|
/** Set of operator suffixes to reject at runtime (e.g. `new Set(['_MATCHES'])`) */
|
|
11
9
|
disabledOperators?: Set<OperatorSuffix>;
|
|
@@ -30,11 +28,8 @@ export declare class WhereCompiler {
|
|
|
30
28
|
* Multiple members are combined with OR.
|
|
31
29
|
*/
|
|
32
30
|
private compileUnionRelationship;
|
|
33
|
-
private buildRelPattern;
|
|
34
|
-
private buildRelPatternWithLabel;
|
|
35
31
|
private compileEdgeConditions;
|
|
36
32
|
private compileScalarCondition;
|
|
37
|
-
private isStringComparable;
|
|
38
33
|
}
|
|
39
34
|
export {};
|
|
40
35
|
//# sourceMappingURL=where.compiler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"where.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/where.compiler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EAEd,cAAc,EACf,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"where.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/where.compiler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EAEd,cAAc,EACf,MAAM,iBAAiB,CAAC;AAczB,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AA0CD,KAAK,cAAc,GAAG,MAAM,CAAC;AAgB7B,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,qBAAa,aAAa;IAItB,OAAO,CAAC,MAAM;IAHhB,OAAO,CAAC,iBAAiB,CAAsB;gBAGrC,MAAM,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,oBAAoB;IAKhC,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,GAC7C,WAAW;IAOd,OAAO,CAAC,iBAAiB;IAoIzB,OAAO,CAAC,oBAAoB;IAiH5B,OAAO,CAAC,sBAAsB;IA4G9B;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IA+EhC,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,sBAAsB;CA4D/B"}
|