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
|
@@ -38,8 +38,8 @@ class SelectNormalizer {
|
|
|
38
38
|
normalize(select, nodeDef) {
|
|
39
39
|
const nodes = [];
|
|
40
40
|
for (const [fieldName, value] of Object.entries(select)) {
|
|
41
|
-
if (
|
|
42
|
-
continue;
|
|
41
|
+
if (value == null || value === false)
|
|
42
|
+
continue;
|
|
43
43
|
(0, validation_1.assertSafeKey)(fieldName, 'select input');
|
|
44
44
|
const isConnection = fieldName.endsWith('Connection');
|
|
45
45
|
if (isConnection) {
|
|
@@ -87,7 +87,7 @@ class SelectNormalizer {
|
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
89
|
// `{ drugs: { where: {...}, select: { id: true, drugName: true }, orderBy: {...} } }`
|
|
90
|
-
if (
|
|
90
|
+
if ((0, validation_1.isPlainObject)(value)) {
|
|
91
91
|
const obj = value;
|
|
92
92
|
if (obj.select && typeof obj.select === 'object') {
|
|
93
93
|
let children = this.normalize(obj.select, targetDef);
|
|
@@ -194,12 +194,15 @@ class SelectNormalizer {
|
|
|
194
194
|
isRelationship: false,
|
|
195
195
|
isConnection: true,
|
|
196
196
|
};
|
|
197
|
-
if (
|
|
197
|
+
if (!(0, validation_1.isPlainObject)(value))
|
|
198
198
|
return node;
|
|
199
199
|
const obj = value;
|
|
200
200
|
// Extract where clause
|
|
201
201
|
if (obj.where && typeof obj.where === 'object')
|
|
202
202
|
node.connectionWhere = obj.where;
|
|
203
|
+
// Extract orderBy (node/edge scoped) for edge sorting
|
|
204
|
+
if (obj.orderBy !== undefined)
|
|
205
|
+
node.connectionOrderBy = this.normalizeConnectionOrderBy(obj.orderBy, targetDef, relDef, fieldName);
|
|
203
206
|
// Extract edges -> node and edges -> properties from select
|
|
204
207
|
if (obj.select && typeof obj.select === 'object') {
|
|
205
208
|
const selectObj = obj.select;
|
|
@@ -234,6 +237,63 @@ class SelectNormalizer {
|
|
|
234
237
|
}
|
|
235
238
|
return node;
|
|
236
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* Normalize and validate a connection orderBy input.
|
|
242
|
+
* Each entry must be an object with exactly one key: `node` or `edge`.
|
|
243
|
+
* The inner value is a `{ field: 'ASC' | 'DESC' }` map, which may contain
|
|
244
|
+
* multiple fields (preserving insertion order as sort priority).
|
|
245
|
+
*/
|
|
246
|
+
normalizeConnectionOrderBy(orderByInput, targetDef, relDef, fieldName) {
|
|
247
|
+
const items = Array.isArray(orderByInput) ? orderByInput : [orderByInput];
|
|
248
|
+
const result = [];
|
|
249
|
+
for (const item of items) {
|
|
250
|
+
if (typeof item !== 'object' || item === null)
|
|
251
|
+
throw new errors_1.OGMError(`Invalid orderBy entry on connection "${fieldName}". ` +
|
|
252
|
+
`Each entry must be an object like { node: { field: 'ASC' } } or { edge: { field: 'DESC' } }.`);
|
|
253
|
+
const entries = Object.entries(item);
|
|
254
|
+
if (entries.length === 0)
|
|
255
|
+
continue;
|
|
256
|
+
if (entries.length > 1)
|
|
257
|
+
throw new errors_1.OGMError(`Invalid orderBy entry on connection "${fieldName}". ` +
|
|
258
|
+
`Each entry must have exactly one of "node" or "edge" — got keys: ${entries
|
|
259
|
+
.map(([k]) => `"${k}"`)
|
|
260
|
+
.join(', ')}.`);
|
|
261
|
+
const [scopeKey, scopeValue] = entries[0];
|
|
262
|
+
if (scopeKey !== 'node' && scopeKey !== 'edge')
|
|
263
|
+
throw new errors_1.OGMError(`Invalid orderBy scope "${scopeKey}" on connection "${fieldName}". ` +
|
|
264
|
+
`Use "node" (to sort by target node fields) or "edge" (to sort by relationship property fields).`);
|
|
265
|
+
if (!(0, validation_1.isPlainObject)(scopeValue))
|
|
266
|
+
throw new errors_1.OGMError(`Invalid orderBy "${scopeKey}" value on connection "${fieldName}". ` +
|
|
267
|
+
`Expected an object like { field: 'ASC' }.`);
|
|
268
|
+
const scope = scopeKey;
|
|
269
|
+
let edgePropsDef;
|
|
270
|
+
if (scope === 'edge') {
|
|
271
|
+
if (!relDef.properties)
|
|
272
|
+
throw new errors_1.OGMError(`Invalid orderBy on connection "${fieldName}": relationship has no @relationshipProperties, ` +
|
|
273
|
+
`so "edge" sort keys are not available. Use { node: { ... } } instead.`);
|
|
274
|
+
const resolved = this.schema.relationshipProperties.get(relDef.properties);
|
|
275
|
+
if (!resolved)
|
|
276
|
+
throw new errors_1.OGMError(`Invalid orderBy on connection "${fieldName}": relationship properties type ` +
|
|
277
|
+
`"${relDef.properties}" is not defined in the schema.`);
|
|
278
|
+
edgePropsDef = resolved;
|
|
279
|
+
}
|
|
280
|
+
for (const [sortField, rawDirection] of Object.entries(scopeValue)) {
|
|
281
|
+
(0, validation_1.assertSafeKey)(sortField, `orderBy ${scope} field`);
|
|
282
|
+
(0, validation_1.assertSafeIdentifier)(sortField, `orderBy ${scope} field`);
|
|
283
|
+
if (scope === 'node') {
|
|
284
|
+
if (!targetDef.properties.has(sortField))
|
|
285
|
+
throw new errors_1.OGMError(`Invalid orderBy node field "${sortField}" on connection "${fieldName}". ` +
|
|
286
|
+
`Field must be a scalar property of ${targetDef.typeName}.`);
|
|
287
|
+
}
|
|
288
|
+
else if (!edgePropsDef?.properties.has(sortField))
|
|
289
|
+
throw new errors_1.OGMError(`Invalid orderBy edge field "${sortField}" on connection "${fieldName}". ` +
|
|
290
|
+
`Field must be a scalar property of relationship type "${relDef.properties}".`);
|
|
291
|
+
const direction = (0, validation_1.assertSortDirection)(String(rawDirection));
|
|
292
|
+
result.push({ field: sortField, direction, scope });
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return result;
|
|
296
|
+
}
|
|
237
297
|
/**
|
|
238
298
|
* Normalize edge property selections into SelectionNode[].
|
|
239
299
|
* Edge properties are always scalars.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-normalizer.js","sourceRoot":"","sources":["../../../src/compilers/select-normalizer.ts"],"names":[],"mappings":";;;AAAA,sCAAqC;
|
|
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"}
|
|
@@ -43,7 +43,25 @@ class SelectionCompiler {
|
|
|
43
43
|
// fields need CASE WHEN branches since different union members may have
|
|
44
44
|
// the same field name but different underlying relationship types.
|
|
45
45
|
const unionMembers = this.schema.unions?.get(nodeDef.typeName);
|
|
46
|
+
const interfaceDef = this.schema.interfaces?.get(nodeDef.typeName);
|
|
47
|
+
const isAbstract = (unionMembers && unionMembers.length > 0) ||
|
|
48
|
+
(interfaceDef &&
|
|
49
|
+
interfaceDef.implementedBy &&
|
|
50
|
+
interfaceDef.implementedBy.length > 0);
|
|
46
51
|
const parts = [];
|
|
52
|
+
// Auto-emit __typename for abstract targets (unions/interfaces). Callers
|
|
53
|
+
// of a discriminated type cannot narrow the returned object without
|
|
54
|
+
// __typename, and requiring them to remember a boilerplate
|
|
55
|
+
// `__typename: true` is a footgun — type guards silently return false
|
|
56
|
+
// with no signal. Skip if the caller already asked for it explicitly.
|
|
57
|
+
if (isAbstract) {
|
|
58
|
+
const alreadyRequested = selection.some((node) => node.isScalar && node.fieldName === '__typename');
|
|
59
|
+
if (!alreadyRequested) {
|
|
60
|
+
const typenameExpr = this.compileTypename(nodeVar, nodeDef);
|
|
61
|
+
if (typenameExpr)
|
|
62
|
+
parts.push(`__typename: ${typenameExpr}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
47
65
|
for (const node of selection) {
|
|
48
66
|
if (node.isScalar) {
|
|
49
67
|
// __typename is a GraphQL concept — Neo4j nodes don't have this property.
|
|
@@ -189,7 +207,13 @@ class SelectionCompiler {
|
|
|
189
207
|
if (!targetDef)
|
|
190
208
|
return null;
|
|
191
209
|
const childVar = `n${currentDepth}`;
|
|
192
|
-
const pattern =
|
|
210
|
+
const pattern = (0, utils_1.buildRelPattern)({
|
|
211
|
+
sourceVar: parentVar,
|
|
212
|
+
relDef,
|
|
213
|
+
targetVar: childVar,
|
|
214
|
+
targetLabel: 'auto',
|
|
215
|
+
schema: this.schema,
|
|
216
|
+
});
|
|
193
217
|
const children = node.children ?? [];
|
|
194
218
|
const innerProjection = this.compile(children, childVar, targetDef, maxDepth, currentDepth + 1, params, paramCounter);
|
|
195
219
|
// Compile WHERE clause for relationship filtering (Prisma-like select)
|
|
@@ -201,7 +225,7 @@ class SelectionCompiler {
|
|
|
201
225
|
paramCounter) {
|
|
202
226
|
const whereResult = this.whereCompiler.compile(node.relationshipWhere, childVar, targetDef, paramCounter);
|
|
203
227
|
if (whereResult.cypher) {
|
|
204
|
-
|
|
228
|
+
(0, validation_1.mergeParams)(params, whereResult.params);
|
|
205
229
|
whereClause = ` WHERE ${whereResult.cypher}`;
|
|
206
230
|
}
|
|
207
231
|
}
|
|
@@ -259,17 +283,13 @@ class SelectionCompiler {
|
|
|
259
283
|
const childVar = `n${currentDepth}`;
|
|
260
284
|
const children = node.children ?? [];
|
|
261
285
|
const innerProjection = this.compile(children, childVar, targetDef, maxDepth, currentDepth + 1, params, paramCounter);
|
|
262
|
-
const
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
:
|
|
268
|
-
|
|
269
|
-
if (relDef.direction === 'IN')
|
|
270
|
-
pattern = `(${nodeVar})<-${edgePart}-${targetLabel}`;
|
|
271
|
-
else
|
|
272
|
-
pattern = `(${nodeVar})-${edgePart}->${targetLabel}`;
|
|
286
|
+
const pattern = (0, utils_1.buildRelPattern)({
|
|
287
|
+
sourceVar: nodeVar,
|
|
288
|
+
relDef,
|
|
289
|
+
targetVar: childVar,
|
|
290
|
+
targetLabel: 'auto',
|
|
291
|
+
schema: this.schema,
|
|
292
|
+
});
|
|
273
293
|
// Wrap singular relationships with head() to return object instead of array
|
|
274
294
|
const comprehension = isSingular
|
|
275
295
|
? `head([${pattern} | ${innerProjection}])`
|
|
@@ -298,12 +318,21 @@ class SelectionCompiler {
|
|
|
298
318
|
return null;
|
|
299
319
|
const childVar = `n${currentDepth}`;
|
|
300
320
|
const edgeVar = `e${currentDepth}`;
|
|
301
|
-
const pattern =
|
|
321
|
+
const pattern = (0, utils_1.buildRelPattern)({
|
|
322
|
+
sourceVar: parentVar,
|
|
323
|
+
relDef,
|
|
324
|
+
targetVar: childVar,
|
|
325
|
+
edgeVar,
|
|
326
|
+
targetLabel: 'auto',
|
|
327
|
+
schema: this.schema,
|
|
328
|
+
});
|
|
302
329
|
const mapParts = [];
|
|
330
|
+
const projectionKeys = [];
|
|
303
331
|
// Compile node projection
|
|
304
332
|
if (node.children && node.children.length > 0) {
|
|
305
333
|
const nodeProjection = this.compile(node.children, childVar, targetDef, maxDepth, currentDepth + 1, params, paramCounter);
|
|
306
334
|
mapParts.push(`node: ${nodeProjection}`);
|
|
335
|
+
projectionKeys.push('node');
|
|
307
336
|
}
|
|
308
337
|
// Compile edge properties projection
|
|
309
338
|
if (node.edgeChildren && node.edgeChildren.length > 0) {
|
|
@@ -312,7 +341,21 @@ class SelectionCompiler {
|
|
|
312
341
|
.map((c) => `.${(0, validation_1.escapeIdentifier)(c.fieldName)}`)
|
|
313
342
|
.join(', ');
|
|
314
343
|
mapParts.push(`properties: ${edgeVar} { ${edgeFields} }`);
|
|
344
|
+
projectionKeys.push('properties');
|
|
315
345
|
}
|
|
346
|
+
// Inject synthetic sort scalars at the top level of the edge map so
|
|
347
|
+
// apoc.coll.sortMulti (which only accepts top-level keys) can order the
|
|
348
|
+
// collection. The outer list comprehension strips them on the way out.
|
|
349
|
+
const sortKeyTokens = [];
|
|
350
|
+
if (node.connectionOrderBy && node.connectionOrderBy.length > 0)
|
|
351
|
+
node.connectionOrderBy.forEach(({ field, direction, scope }, i) => {
|
|
352
|
+
(0, validation_1.assertSafeIdentifier)(field, 'connection orderBy field');
|
|
353
|
+
const sourceVar = scope === 'edge' ? edgeVar : childVar;
|
|
354
|
+
const syntheticKey = `__sk${i}`;
|
|
355
|
+
mapParts.push(`${syntheticKey}: ${sourceVar}.${(0, validation_1.escapeIdentifier)(field)}`);
|
|
356
|
+
// apoc.coll.sortMulti convention: ^ prefix = ASC, no prefix = DESC
|
|
357
|
+
sortKeyTokens.push(direction === 'ASC' ? `'^${syntheticKey}'` : `'${syntheticKey}'`);
|
|
358
|
+
});
|
|
316
359
|
const innerMap = `{ ${mapParts.join(', ')} }`;
|
|
317
360
|
// Add WHERE clause if connectionWhere is present
|
|
318
361
|
let whereClause = '';
|
|
@@ -322,8 +365,7 @@ class SelectionCompiler {
|
|
|
322
365
|
throw new errors_1.OGMError(`Connection WHERE with "edge" filters is not supported. ` +
|
|
323
366
|
`Only "node" filters are supported for connection "${node.fieldName}".`);
|
|
324
367
|
// Unwrap { node: { ... } } wrapper if present
|
|
325
|
-
const nodeWhere =
|
|
326
|
-
node.connectionWhere.node !== null
|
|
368
|
+
const nodeWhere = (0, validation_1.isPlainObject)(node.connectionWhere.node)
|
|
327
369
|
? node.connectionWhere.node
|
|
328
370
|
: node.connectionWhere;
|
|
329
371
|
// If we have a full WhereCompiler, delegate to it for complete operator support
|
|
@@ -331,7 +373,7 @@ class SelectionCompiler {
|
|
|
331
373
|
const whereResult = this.whereCompiler.compile(nodeWhere, childVar, targetDef, paramCounter);
|
|
332
374
|
if (whereResult.cypher) {
|
|
333
375
|
if (params)
|
|
334
|
-
|
|
376
|
+
(0, validation_1.mergeParams)(params, whereResult.params);
|
|
335
377
|
whereClause = ` WHERE ${whereResult.cypher}`;
|
|
336
378
|
}
|
|
337
379
|
}
|
|
@@ -341,7 +383,14 @@ class SelectionCompiler {
|
|
|
341
383
|
whereClause = ` WHERE ${simpleWhere}`;
|
|
342
384
|
}
|
|
343
385
|
}
|
|
344
|
-
|
|
386
|
+
if (sortKeyTokens.length === 0)
|
|
387
|
+
return `{ edges: [${pattern}${whereClause} | ${innerMap}] }`;
|
|
388
|
+
// Re-project only the user-facing keys so synthetic __skN scalars don't
|
|
389
|
+
// leak out of the projection.
|
|
390
|
+
const outerProjection = projectionKeys.length > 0
|
|
391
|
+
? `{ ${projectionKeys.map((k) => `${k}: x.${k}`).join(', ')} }`
|
|
392
|
+
: `{}`;
|
|
393
|
+
return `{ edges: [x IN apoc.coll.sortMulti([${pattern}${whereClause} | ${innerMap}], [${sortKeyTokens.join(', ')}]) | ${outerProjection}] }`;
|
|
345
394
|
}
|
|
346
395
|
/**
|
|
347
396
|
* Compile a __typename expression for a node.
|
|
@@ -354,38 +403,17 @@ class SelectionCompiler {
|
|
|
354
403
|
const memberList = unionMembers.map((m) => `'${m}'`).join(', ');
|
|
355
404
|
return `head([__label IN labels(${nodeVar}) WHERE __label IN [${memberList}]])`;
|
|
356
405
|
}
|
|
406
|
+
const interfaceDef = this.schema.interfaces?.get(nodeDef.typeName);
|
|
407
|
+
if (interfaceDef &&
|
|
408
|
+
interfaceDef.implementedBy &&
|
|
409
|
+
interfaceDef.implementedBy.length > 0) {
|
|
410
|
+
const memberList = interfaceDef.implementedBy
|
|
411
|
+
.map((m) => `'${m}'`)
|
|
412
|
+
.join(', ');
|
|
413
|
+
return `head([__label IN labels(${nodeVar}) WHERE __label IN [${memberList}]])`;
|
|
414
|
+
}
|
|
357
415
|
return `'${nodeDef.typeName}'`;
|
|
358
416
|
}
|
|
359
|
-
/**
|
|
360
|
-
* Check if a target type name is a union or interface (not a concrete node label).
|
|
361
|
-
* Union/interface names don't exist as Neo4j labels, so they must be omitted
|
|
362
|
-
* from relationship patterns to avoid matching zero nodes.
|
|
363
|
-
*/
|
|
364
|
-
isAbstractTarget(target) {
|
|
365
|
-
if (this.schema.nodes.has(target))
|
|
366
|
-
return false;
|
|
367
|
-
return !!(this.schema.unions?.has(target) || this.schema.interfaces?.has(target));
|
|
368
|
-
}
|
|
369
|
-
/**
|
|
370
|
-
* Build a Cypher relationship pattern string respecting direction.
|
|
371
|
-
* For union/interface targets, omits the label filter since those
|
|
372
|
-
* type names don't exist as Neo4j labels.
|
|
373
|
-
*/
|
|
374
|
-
buildRelationshipPattern(parentVar, childVar, relDef, edgeVar) {
|
|
375
|
-
const escapedType = (0, validation_1.escapeIdentifier)(relDef.type);
|
|
376
|
-
const edgePart = edgeVar
|
|
377
|
-
? `[${edgeVar}:${escapedType}]`
|
|
378
|
-
: `[:${escapedType}]`;
|
|
379
|
-
// Union/interface targets don't have a corresponding Neo4j label —
|
|
380
|
-
// match by relationship type only, not by target label.
|
|
381
|
-
const targetPart = this.isAbstractTarget(relDef.target)
|
|
382
|
-
? `(${childVar})`
|
|
383
|
-
: `(${childVar}:${(0, validation_1.escapeIdentifier)(relDef.target)})`;
|
|
384
|
-
if (relDef.direction === 'IN')
|
|
385
|
-
return `(${parentVar})<-${edgePart}-${targetPart}`;
|
|
386
|
-
// OUT (default)
|
|
387
|
-
return `(${parentVar})-${edgePart}->${targetPart}`;
|
|
388
|
-
}
|
|
389
417
|
/**
|
|
390
418
|
* Compile a simple where object into a Cypher WHERE clause fragment.
|
|
391
419
|
* This is a minimal implementation for connection where filters.
|
|
@@ -396,7 +424,7 @@ class SelectionCompiler {
|
|
|
396
424
|
const conditions = [];
|
|
397
425
|
for (const [key, value] of Object.entries(where)) {
|
|
398
426
|
// Handle nested { node: { ... } } pattern
|
|
399
|
-
if (key === 'node' &&
|
|
427
|
+
if (key === 'node' && (0, validation_1.isPlainObject)(value))
|
|
400
428
|
return this.compileSimpleWhere(value, nodeVar, params, paramCounter);
|
|
401
429
|
if (key.endsWith('_IN') && Array.isArray(value)) {
|
|
402
430
|
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"}
|