grafeo-ogm 1.14.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/CHANGELOG.md +179 -0
  2. package/README.md +70 -0
  3. package/dist/cjs/compilers/fulltext.compiler.d.ts.map +1 -1
  4. package/dist/cjs/compilers/fulltext.compiler.js +30 -14
  5. package/dist/cjs/compilers/fulltext.compiler.js.map +1 -1
  6. package/dist/cjs/generator/type-emitters/fulltext-emitter.js +24 -8
  7. package/dist/cjs/generator/type-emitters/fulltext-emitter.js.map +1 -1
  8. package/dist/cjs/generator/type-emitters/sort-options-emitter.d.ts +2 -1
  9. package/dist/cjs/generator/type-emitters/sort-options-emitter.d.ts.map +1 -1
  10. package/dist/cjs/generator/type-emitters/sort-options-emitter.js +12 -5
  11. package/dist/cjs/generator/type-emitters/sort-options-emitter.js.map +1 -1
  12. package/dist/cjs/generator/type-emitters/utility-types.d.ts.map +1 -1
  13. package/dist/cjs/generator/type-emitters/utility-types.js +20 -0
  14. package/dist/cjs/generator/type-emitters/utility-types.js.map +1 -1
  15. package/dist/cjs/utils/cypher-sort-projection.d.ts +3 -0
  16. package/dist/cjs/utils/cypher-sort-projection.d.ts.map +1 -1
  17. package/dist/cjs/utils/cypher-sort-projection.js +13 -1
  18. package/dist/cjs/utils/cypher-sort-projection.js.map +1 -1
  19. package/dist/cjs/utils/validation.d.ts +72 -0
  20. package/dist/cjs/utils/validation.d.ts.map +1 -1
  21. package/dist/cjs/utils/validation.js +133 -0
  22. package/dist/cjs/utils/validation.js.map +1 -1
  23. package/dist/esm/compilers/fulltext.compiler.d.ts.map +1 -1
  24. package/dist/esm/compilers/fulltext.compiler.js +31 -15
  25. package/dist/esm/compilers/fulltext.compiler.js.map +1 -1
  26. package/dist/esm/generator/type-emitters/fulltext-emitter.js +24 -8
  27. package/dist/esm/generator/type-emitters/fulltext-emitter.js.map +1 -1
  28. package/dist/esm/generator/type-emitters/sort-options-emitter.d.ts +2 -1
  29. package/dist/esm/generator/type-emitters/sort-options-emitter.d.ts.map +1 -1
  30. package/dist/esm/generator/type-emitters/sort-options-emitter.js +12 -5
  31. package/dist/esm/generator/type-emitters/sort-options-emitter.js.map +1 -1
  32. package/dist/esm/generator/type-emitters/utility-types.d.ts.map +1 -1
  33. package/dist/esm/generator/type-emitters/utility-types.js +20 -0
  34. package/dist/esm/generator/type-emitters/utility-types.js.map +1 -1
  35. package/dist/esm/utils/cypher-sort-projection.d.ts +3 -0
  36. package/dist/esm/utils/cypher-sort-projection.d.ts.map +1 -1
  37. package/dist/esm/utils/cypher-sort-projection.js +14 -2
  38. package/dist/esm/utils/cypher-sort-projection.js.map +1 -1
  39. package/dist/esm/utils/validation.d.ts +72 -0
  40. package/dist/esm/utils/validation.d.ts.map +1 -1
  41. package/dist/esm/utils/validation.js +129 -0
  42. package/dist/esm/utils/validation.js.map +1 -1
  43. package/package.json +1 -1
@@ -43,6 +43,9 @@ function buildCypherSortProjection(statement, nodeVar) {
43
43
  *
44
44
  * The returned `pre` string is intended to be appended BEFORE the `RETURN`,
45
45
  * and `orderBy` to be appended AFTER it.
46
+ *
47
+ * Each entry must carry exactly ONE ordering key — precedence comes from the
48
+ * entry's position in the array. Multi-key entries throw (`assertSingleSortKey`).
46
49
  */
47
50
  function compileSortClause(args) {
48
51
  const { sort, nodeVar, propertyLookup, preserveVars = [] } = args;
@@ -50,11 +53,20 @@ function compileSortClause(args) {
50
53
  const sortItems = [];
51
54
  const carriedAliases = [];
52
55
  for (const sortObj of sort) {
56
+ // `Object.entries(null)` is a bare TypeError from inside the compiler;
57
+ // callers expect OGMError for every malformed input on this path.
58
+ (0, validation_1.assertPlainObject)(sortObj, 'Sort entry');
53
59
  const entries = Object.entries(sortObj);
60
+ // A zero-key entry contributes no ordering (rather than a wrong one), so
61
+ // it stays a silent skip. A multi-key entry is always a mistake.
54
62
  if (entries.length === 0)
55
63
  continue;
64
+ // Validate every key, not just the surviving one, so `assertSingleSortKey`
65
+ // only ever interpolates identifier-shaped strings into its message.
66
+ for (const [key] of entries)
67
+ (0, validation_1.assertSafeIdentifier)(key, 'sort field');
68
+ (0, validation_1.assertSingleSortKey)(entries);
56
69
  const [field, direction] = entries[0];
57
- (0, validation_1.assertSafeIdentifier)(field, 'sort field');
58
70
  const validDirection = (0, validation_1.assertSortDirection)(direction);
59
71
  const propDef = propertyLookup(field);
60
72
  if (propDef?.isCypher && propDef.cypherStatement) {
@@ -1 +1 @@
1
- {"version":3,"file":"cypher-sort-projection.js","sourceRoot":"","sources":["../../../src/utils/cypher-sort-projection.ts"],"names":[],"mappings":";;AAyBA,8DAWC;AAgBD,8CA2CC;AA9FD,6CAIsB;AAEtB;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,yBAAyB,CACvC,SAAiB,EACjB,OAAe;IAEf,OAAO;QACL,QAAQ;QACR,UAAU,OAAO,EAAE;QACnB,UAAU,OAAO,UAAU;QAC3B,KAAK,SAAS,EAAE;QAChB,GAAG;KACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,iBAAiB,CAAC,IAKjC;IACC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;IAClE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAiC,CAAC,CAAC;QAClE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACnC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,iCAAoB,EAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,IAAA,gCAAmB,EAAC,SAAS,CAAC,CAAC;QAEtD,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,UAAU,KAAK,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;YACrD,IAAA,iCAAoB,EAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;YAEvD,QAAQ,CAAC,IAAI,CACX,yBAAyB,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAC5D,CAAC;YAEF,MAAM,KAAK,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,QAAQ,CAAC,IAAI,CACX,QAAQ,OAAO,GAAG,QAAQ,KAAK,IAAA,6BAAgB,EAAC,UAAU,CAAC,OAAO,KAAK,EAAE,CAC1E,CAAC;YACF,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,cAAc,EAAE,CAAC,CAAC;QAC/C,CAAC;;YACC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,IAAA,6BAAgB,EAAC,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO;QACL,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;KACpE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cypher-sort-projection.js","sourceRoot":"","sources":["../../../src/utils/cypher-sort-projection.ts"],"names":[],"mappings":";;AA2BA,8DAWC;AAmBD,8CAqDC;AA7GD,6CAMsB;AAEtB;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,yBAAyB,CACvC,SAAiB,EACjB,OAAe;IAEf,OAAO;QACL,QAAQ;QACR,UAAU,OAAO,EAAE;QACnB,UAAU,OAAO,UAAU;QAC3B,KAAK,SAAS,EAAE;QAChB,GAAG;KACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,iBAAiB,CAAC,IAKjC;IACC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;IAClE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,uEAAuE;QACvE,kEAAkE;QAClE,IAAA,8BAAiB,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAiC,CAAC,CAAC;QAClE,yEAAyE;QACzE,iEAAiE;QACjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACnC,2EAA2E;QAC3E,qEAAqE;QACrE,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO;YAAE,IAAA,iCAAoB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACrE,IAAA,gCAAmB,EAAC,OAAO,CAAC,CAAC;QAE7B,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,cAAc,GAAG,IAAA,gCAAmB,EAAC,SAAS,CAAC,CAAC;QAEtD,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,OAAO,EAAE,QAAQ,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,UAAU,KAAK,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;YACrD,IAAA,iCAAoB,EAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;YAEvD,QAAQ,CAAC,IAAI,CACX,yBAAyB,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,CAC5D,CAAC;YAEF,MAAM,KAAK,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,QAAQ,CAAC,IAAI,CACX,QAAQ,OAAO,GAAG,QAAQ,KAAK,IAAA,6BAAgB,EAAC,UAAU,CAAC,OAAO,KAAK,EAAE,CAC1E,CAAC;YACF,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,cAAc,EAAE,CAAC,CAAC;QAC/C,CAAC;;YACC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,IAAA,6BAAgB,EAAC,KAAK,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO;QACL,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;KACpE,CAAC;AACJ,CAAC"}
@@ -44,11 +44,83 @@ export declare function assertSafeLabel(label: string): string;
44
44
  * Validate sort direction is strictly ASC or DESC.
45
45
  */
46
46
  export declare function assertSortDirection(direction: string): 'ASC' | 'DESC';
47
+ /**
48
+ * Assert that a single `sort` array entry carries exactly one ordering key.
49
+ *
50
+ * v2.0.0 — pre-2.0.0 `compileSortClause` read only `Object.entries(entry)[0]`
51
+ * and silently discarded the rest, so `[{ a: 'ASC', b: 'DESC' }]` compiled to
52
+ * `ORDER BY n.a ASC` with no error and no log: a successful query answering a
53
+ * different question. Which key survived depended purely on source insertion
54
+ * order.
55
+ *
56
+ * Ordering precedence must be carried by ARRAY POSITION, never by object key
57
+ * order. Honoring every key would only move the bug: graphql-js
58
+ * `coerceInputValue` rebuilds input objects by iterating the schema's field
59
+ * definitions, so the key order a client wrote is already gone by the time the
60
+ * object reaches the OGM.
61
+ *
62
+ * Callers must validate each key with `assertSafeIdentifier` BEFORE calling
63
+ * this, so the keys interpolated into the message are known-safe.
64
+ */
65
+ export declare function assertSingleSortKey(entries: ReadonlyArray<[string, unknown]>): void;
66
+ /**
67
+ * Assert that a fulltext input object references exactly one index.
68
+ *
69
+ * v2.0.0 — the same silent-truncation defect fixed for `sort` (see
70
+ * `assertSingleSortKey`) also lived in `FulltextCompiler`, at three sites that
71
+ * each guarded the empty case and then read `Object.keys(input)[0]`. A leaf
72
+ * naming two indexes searched only the first and dropped the second with no
73
+ * error, so the query returned a strictly WIDER result set than asked for — a
74
+ * filter that silently stops filtering.
75
+ *
76
+ * Multiple indexes are expressed with the existing `AND` / `OR` combinators,
77
+ * which compile to correlated subqueries and `UNION` respectively.
78
+ *
79
+ * Phrase values are never echoed: they are user data and may carry control
80
+ * characters or sensitive content. Callers must validate each key with
81
+ * `assertSafeIdentifier` BEFORE calling this.
82
+ */
83
+ export declare function assertSingleFulltextKey(entries: ReadonlyArray<[string, unknown]>, subject: string): void;
84
+ /**
85
+ * Assert that a fulltext input carrying `OR` / `AND` / `NOT` carries nothing
86
+ * else alongside it.
87
+ *
88
+ * v2.0.0 — the dispatch in `FulltextCompiler.compileNode` tests the operators
89
+ * in order (`OR`, then `AND`, then `NOT`) and returns on the first hit, so any
90
+ * remaining top-level key was silently discarded:
91
+ *
92
+ * - `{ OR: [...], AND: [...] }` compiled the OR branch only.
93
+ * - `{ OR: [...], SomeIndex: {...} }` compiled the OR branch only.
94
+ * - `{ NOT: {...}, AND: [...] }` compiled the AND branch only — an exclusion
95
+ * filter vanished entirely, which inverts the caller's intent rather than
96
+ * merely widening the result set.
97
+ *
98
+ * Operators nest instead of stacking: `{ AND: [{ OR: [...] }, { ... }] }`.
99
+ *
100
+ * Only the recognised operator names — fixed literals — are interpolated into
101
+ * the message. Sibling keys are counted, never echoed, because they have not
102
+ * been identifier-validated at this point in the pipeline.
103
+ */
104
+ export declare function assertSingleFulltextOperator(keys: readonly string[]): void;
47
105
  /**
48
106
  * Type guard that narrows an unknown value to a plain object.
49
107
  * Returns false for null, arrays, and non-object primitives.
50
108
  */
51
109
  export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
110
+ /**
111
+ * Assert that a value the compilers are about to enumerate — with
112
+ * `Object.entries`, `Object.keys`, or the `in` operator — is a plain object.
113
+ *
114
+ * v2.0.0 — without this, `sort: [null]` surfaced as a bare
115
+ * `TypeError: Cannot convert undefined or null to object` thrown from deep
116
+ * inside the compiler, and fulltext inputs failed similarly on `'OR' in input`.
117
+ * Both escaped `catch (e) { if (e instanceof OGMError) … }`, even though every
118
+ * other malformed input on those paths is an `OGMError`.
119
+ *
120
+ * Only the value's KIND is reported, never the value itself — the caller may
121
+ * have handed us anything.
122
+ */
123
+ export declare function assertPlainObject(value: unknown, subject: string): void;
52
124
  /**
53
125
  * Merge parameter records into the target. Skips merge if `source` is empty
54
126
  * or undefined. Returns the target for chaining.
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKhE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAG1E;AAKD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKzE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAMrE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAElC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGzB;AA0HD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAqD7E"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKhE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAG1E;AAKD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAKzE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAMrE;AAgBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACxC,IAAI,CAkBN;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,aAAa,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACzC,OAAO,EAAE,MAAM,GACd,IAAI,CAUN;AAKD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAe1E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAElC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAevE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGzB;AA0HD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAqD7E"}
@@ -6,7 +6,11 @@ exports.assertSafeIdentifier = assertSafeIdentifier;
6
6
  exports.escapeIdentifier = escapeIdentifier;
7
7
  exports.assertSafeLabel = assertSafeLabel;
8
8
  exports.assertSortDirection = assertSortDirection;
9
+ exports.assertSingleSortKey = assertSingleSortKey;
10
+ exports.assertSingleFulltextKey = assertSingleFulltextKey;
11
+ exports.assertSingleFulltextOperator = assertSingleFulltextOperator;
9
12
  exports.isPlainObject = isPlainObject;
13
+ exports.assertPlainObject = assertPlainObject;
10
14
  exports.mergeParams = mergeParams;
11
15
  exports.assertSafeRegexPattern = assertSafeRegexPattern;
12
16
  const errors_1 = require("../errors");
@@ -81,6 +85,108 @@ function assertSortDirection(direction) {
81
85
  throw new errors_1.OGMError(`Invalid sort direction "${direction}". Must be "ASC" or "DESC".`);
82
86
  return direction;
83
87
  }
88
+ /**
89
+ * Shared opening clause for "this object may carry only one key" violations.
90
+ *
91
+ * Keys are interpolated verbatim, so every caller must have run
92
+ * `assertSafeIdentifier` over ALL of them first — never just the surviving one.
93
+ */
94
+ function singleKeyPrefix(entries, subject) {
95
+ const keys = entries.map(([key]) => key);
96
+ return `${subject} has ${entries.length} keys (${keys.join(', ')}); `;
97
+ }
98
+ /**
99
+ * Assert that a single `sort` array entry carries exactly one ordering key.
100
+ *
101
+ * v2.0.0 — pre-2.0.0 `compileSortClause` read only `Object.entries(entry)[0]`
102
+ * and silently discarded the rest, so `[{ a: 'ASC', b: 'DESC' }]` compiled to
103
+ * `ORDER BY n.a ASC` with no error and no log: a successful query answering a
104
+ * different question. Which key survived depended purely on source insertion
105
+ * order.
106
+ *
107
+ * Ordering precedence must be carried by ARRAY POSITION, never by object key
108
+ * order. Honoring every key would only move the bug: graphql-js
109
+ * `coerceInputValue` rebuilds input objects by iterating the schema's field
110
+ * definitions, so the key order a client wrote is already gone by the time the
111
+ * object reaches the OGM.
112
+ *
113
+ * Callers must validate each key with `assertSafeIdentifier` BEFORE calling
114
+ * this, so the keys interpolated into the message are known-safe.
115
+ */
116
+ function assertSingleSortKey(entries) {
117
+ if (entries.length <= 1)
118
+ return;
119
+ // Only echo directions we recognise — an unvalidated value must never reach
120
+ // an error string that may be logged.
121
+ const suggestion = entries
122
+ .map(([key, value]) => `{ ${key}: ${value === 'ASC' || value === 'DESC' ? `'${value}'` : '...'} }`)
123
+ .join(', ');
124
+ throw new errors_1.OGMError(singleKeyPrefix(entries, 'Sort entry') +
125
+ `each sort entry must carry exactly one ordering key, because ORDER BY ` +
126
+ `precedence comes from array position and not object key order. ` +
127
+ `Use one entry per key: [${suggestion}].`);
128
+ }
129
+ /**
130
+ * Assert that a fulltext input object references exactly one index.
131
+ *
132
+ * v2.0.0 — the same silent-truncation defect fixed for `sort` (see
133
+ * `assertSingleSortKey`) also lived in `FulltextCompiler`, at three sites that
134
+ * each guarded the empty case and then read `Object.keys(input)[0]`. A leaf
135
+ * naming two indexes searched only the first and dropped the second with no
136
+ * error, so the query returned a strictly WIDER result set than asked for — a
137
+ * filter that silently stops filtering.
138
+ *
139
+ * Multiple indexes are expressed with the existing `AND` / `OR` combinators,
140
+ * which compile to correlated subqueries and `UNION` respectively.
141
+ *
142
+ * Phrase values are never echoed: they are user data and may carry control
143
+ * characters or sensitive content. Callers must validate each key with
144
+ * `assertSafeIdentifier` BEFORE calling this.
145
+ */
146
+ function assertSingleFulltextKey(entries, subject) {
147
+ if (entries.length <= 1)
148
+ return;
149
+ const suggestion = entries.map(([key]) => `{ ${key}: … }`).join(', ');
150
+ throw new errors_1.OGMError(singleKeyPrefix(entries, subject) +
151
+ `a fulltext entry must reference exactly one index. Combine indexes with ` +
152
+ `the AND / OR operators instead: { AND: [${suggestion}] }.`);
153
+ }
154
+ /** The logical operators a fulltext input may carry, each exclusive. */
155
+ const FULLTEXT_OPERATORS = ['OR', 'AND', 'NOT'];
156
+ /**
157
+ * Assert that a fulltext input carrying `OR` / `AND` / `NOT` carries nothing
158
+ * else alongside it.
159
+ *
160
+ * v2.0.0 — the dispatch in `FulltextCompiler.compileNode` tests the operators
161
+ * in order (`OR`, then `AND`, then `NOT`) and returns on the first hit, so any
162
+ * remaining top-level key was silently discarded:
163
+ *
164
+ * - `{ OR: [...], AND: [...] }` compiled the OR branch only.
165
+ * - `{ OR: [...], SomeIndex: {...} }` compiled the OR branch only.
166
+ * - `{ NOT: {...}, AND: [...] }` compiled the AND branch only — an exclusion
167
+ * filter vanished entirely, which inverts the caller's intent rather than
168
+ * merely widening the result set.
169
+ *
170
+ * Operators nest instead of stacking: `{ AND: [{ OR: [...] }, { ... }] }`.
171
+ *
172
+ * Only the recognised operator names — fixed literals — are interpolated into
173
+ * the message. Sibling keys are counted, never echoed, because they have not
174
+ * been identifier-validated at this point in the pipeline.
175
+ */
176
+ function assertSingleFulltextOperator(keys) {
177
+ const operators = FULLTEXT_OPERATORS.filter((op) => keys.includes(op));
178
+ // No operator → a plain leaf, whose arity `assertSingleFulltextKey` owns.
179
+ if (operators.length === 0)
180
+ return;
181
+ if (keys.length === 1)
182
+ return;
183
+ const others = keys.length - operators.length;
184
+ const alongside = others > 0 ? ` and ${others} other top-level key(s)` : '';
185
+ throw new errors_1.OGMError(`Fulltext input carries ${operators.join(' + ')}${alongside}; ` +
186
+ `AND / OR / NOT must each be the only key in their object, because the ` +
187
+ `compiler reads the first one and ignores the rest. ` +
188
+ `Nest them instead: { AND: [{ OR: [...] }, { ... }] }.`);
189
+ }
84
190
  /**
85
191
  * Type guard that narrows an unknown value to a plain object.
86
192
  * Returns false for null, arrays, and non-object primitives.
@@ -88,6 +194,33 @@ function assertSortDirection(direction) {
88
194
  function isPlainObject(value) {
89
195
  return typeof value === 'object' && value !== null && !Array.isArray(value);
90
196
  }
197
+ /**
198
+ * Assert that a value the compilers are about to enumerate — with
199
+ * `Object.entries`, `Object.keys`, or the `in` operator — is a plain object.
200
+ *
201
+ * v2.0.0 — without this, `sort: [null]` surfaced as a bare
202
+ * `TypeError: Cannot convert undefined or null to object` thrown from deep
203
+ * inside the compiler, and fulltext inputs failed similarly on `'OR' in input`.
204
+ * Both escaped `catch (e) { if (e instanceof OGMError) … }`, even though every
205
+ * other malformed input on those paths is an `OGMError`.
206
+ *
207
+ * Only the value's KIND is reported, never the value itself — the caller may
208
+ * have handed us anything.
209
+ */
210
+ function assertPlainObject(value, subject) {
211
+ if (isPlainObject(value))
212
+ return;
213
+ const kind = value === null
214
+ ? 'null'
215
+ : value === undefined
216
+ ? 'undefined'
217
+ : Array.isArray(value)
218
+ ? 'an array'
219
+ : // Every remaining `typeof` result is consonant-initial, so a plain
220
+ // "a" article reads correctly here.
221
+ `a ${typeof value}`;
222
+ throw new errors_1.OGMError(`${subject} must be an object, got ${kind}.`);
223
+ }
91
224
  /**
92
225
  * Merge parameter records into the target. Skips merge if `source` is empty
93
226
  * or undefined. Returns the target for chaining.
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fulltext.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/fulltext.compiler.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,aAAa,EAEd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA+BhF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAE1C;;;OAGG;IACH,OAAO,CACL,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,cAAc,EACvB,OAAO,SAAM,GACZ,cAAc;IAqBjB;;;OAGG;IACH,mBAAmB,CACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAC5D,QAAQ,EAAE,aAAa,EACvB,MAAM,SAAM,GACX,cAAc;IA2CjB,OAAO,CAAC,WAAW;IA4CnB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAgCnB,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB;IAoCxB;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IA4EhC;;OAEG;IACH,OAAO,CAAC,SAAS;IAiDjB;;;OAGG;IACH,OAAO,CAAC,UAAU;IA8DlB;;;OAGG;IACH,OAAO,CAAC,UAAU;CA2BnB"}
1
+ {"version":3,"file":"fulltext.compiler.d.ts","sourceRoot":"","sources":["../../../src/compilers/fulltext.compiler.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,aAAa,EAEd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAkChF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAE1C;;;OAGG;IACH,OAAO,CACL,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,cAAc,EACvB,OAAO,SAAM,GACZ,cAAc;IAqBjB;;;OAGG;IACH,mBAAmB,CACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAC5D,QAAQ,EAAE,aAAa,EACvB,MAAM,SAAM,GACX,cAAc;IAgDjB,OAAO,CAAC,WAAW;IAmDnB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAqCnB,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB;IAoCxB;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAgFhC;;OAEG;IACH,OAAO,CAAC,SAAS;IAiDjB;;;OAGG;IACH,OAAO,CAAC,UAAU;IA8DlB;;;OAGG;IACH,OAAO,CAAC,UAAU;CA2BnB"}
@@ -1,6 +1,6 @@
1
1
  import { OGMError } from '../errors';
2
2
  import { isFulltextLeaf, isFulltextIndexEntry, } from '../model';
3
- import { assertSafeIdentifier, escapeIdentifier, mergeParams, } from '../utils/validation';
3
+ import { assertPlainObject, assertSafeIdentifier, assertSingleFulltextKey, assertSingleFulltextOperator, escapeIdentifier, mergeParams, } from '../utils/validation';
4
4
  /** Maximum recursion depth for nested fulltext logical operators */
5
5
  const MAX_DEPTH = 10;
6
6
  /**
@@ -64,12 +64,16 @@ export class FulltextCompiler {
64
64
  */
65
65
  compileRelationship(fulltext, relIndex, relVar = 'r') {
66
66
  assertSafeIdentifier(relVar, 'relationship variable');
67
- const keys = Object.keys(fulltext);
68
- if (keys.length === 0)
67
+ assertPlainObject(fulltext, 'Relationship fulltext input');
68
+ const entries = Object.entries(fulltext);
69
+ if (entries.length === 0)
69
70
  throw new OGMError('Fulltext input must contain at least one index entry');
70
- const indexName = keys[0];
71
- assertSafeIdentifier(indexName, 'fulltext index name');
72
- const input = fulltext[indexName];
71
+ // Validate every key, not just the surviving one, so the arity error only
72
+ // ever interpolates identifier-shaped strings.
73
+ for (const [key] of entries)
74
+ assertSafeIdentifier(key, 'fulltext index name');
75
+ assertSingleFulltextKey(entries, 'Relationship fulltext input');
76
+ const [indexName, input] = entries[0];
73
77
  assertValidFulltextPhrase(input.phrase);
74
78
  if (relIndex.name !== indexName)
75
79
  throw new OGMError(`Unknown relationship fulltext index "${indexName}". Expected "${relIndex.name}".`);
@@ -94,6 +98,12 @@ export class FulltextCompiler {
94
98
  compileNode(input, nodeDef, nodeVar, paramCounter, depth = 0) {
95
99
  if (depth > MAX_DEPTH)
96
100
  throw new OGMError(`Fulltext logical nesting exceeds maximum depth of ${MAX_DEPTH}`);
101
+ // Guarded here rather than in `compile()` so it also covers every branch
102
+ // reached through OR / AND / NOT recursion, e.g. `{ OR: [null] }`.
103
+ assertPlainObject(input, 'Fulltext input');
104
+ // The operator dispatch below returns on its first hit, so anything
105
+ // alongside OR / AND / NOT would be dropped without a word.
106
+ assertSingleFulltextOperator(Object.keys(input));
97
107
  if (isFulltextLeaf(input))
98
108
  return this.compileLeaf(input, nodeDef, nodeVar, paramCounter);
99
109
  if ('OR' in input)
@@ -110,11 +120,16 @@ export class FulltextCompiler {
110
120
  * - Relationship index: `{ relField: { IndexName: { phrase, score? } } }` — value is nested
111
121
  */
112
122
  compileLeaf(leaf, nodeDef, nodeVar, paramCounter) {
113
- const keys = Object.keys(leaf);
114
- if (keys.length === 0)
123
+ const entries = Object.entries(leaf);
124
+ if (entries.length === 0)
115
125
  throw new OGMError('Fulltext input must contain at least one index entry');
116
- const key = keys[0];
117
- assertSafeIdentifier(key, 'fulltext index or relationship name');
126
+ for (const [k] of entries)
127
+ assertSafeIdentifier(k, 'fulltext index or relationship name');
128
+ assertSingleFulltextKey(entries, 'Fulltext leaf');
129
+ const key = entries[0][0];
130
+ // `isFulltextIndexEntry` uses the `in` operator, which throws a bare
131
+ // TypeError on a non-object (e.g. `{ BookSearch: null }`).
132
+ assertPlainObject(leaf[key], `Fulltext entry "${key}"`);
118
133
  const value = leaf[key];
119
134
  // If value has `phrase`, it's a direct node index entry
120
135
  if (isFulltextIndexEntry(value))
@@ -160,12 +175,13 @@ export class FulltextCompiler {
160
175
  const relProps = this.schema.relationshipProperties.get(relDef.properties);
161
176
  if (!relProps)
162
177
  throw new OGMError(`@relationshipProperties type "${relDef.properties}" not found`);
163
- const innerKeys = Object.keys(inner);
164
- if (innerKeys.length === 0)
178
+ const innerEntries = Object.entries(inner);
179
+ if (innerEntries.length === 0)
165
180
  throw new OGMError('Relationship fulltext entry must contain an index name');
166
- const indexName = innerKeys[0];
167
- assertSafeIdentifier(indexName, 'fulltext index name');
168
- const input = inner[indexName];
181
+ for (const [key] of innerEntries)
182
+ assertSafeIdentifier(key, 'fulltext index name');
183
+ assertSingleFulltextKey(innerEntries, `Relationship fulltext entry for "${relFieldName}"`);
184
+ const [indexName, input] = innerEntries[0];
169
185
  const ftIndex = (relProps.fulltextIndexes ?? []).find((idx) => idx.name === indexName);
170
186
  if (!ftIndex)
171
187
  throw new OGMError(`Unknown fulltext index "${indexName}" on @relationshipProperties "${relDef.properties}"`);
@@ -1 +1 @@
1
- {"version":3,"file":"fulltext.compiler.js","sourceRoot":"","sources":["../../../src/compilers/fulltext.compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fulltext.compiler.js","sourceRoot":"","sources":["../../../src/compilers/fulltext.compiler.ts"],"names":[],"mappings":"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"}
@@ -168,22 +168,38 @@ function emitFulltextLeaf(node, schema) {
168
168
  const indexKeys = (props.fulltextIndexes ?? [])
169
169
  .map((idx) => `${formatObjectKey(idx.name)}?: FulltextIndexEntry`)
170
170
  .join('; ');
171
- return ` ${key}?: { ${indexKeys} };`;
171
+ // The nested object is read by `compileRelationshipIndex`, which also
172
+ // consumes a single key — so it needs the same narrowing as the leaf.
173
+ return ` ${key}?: ExactlyOneKey<{ ${indexKeys} }>;`;
172
174
  });
173
175
  const body = [...nodeLevelKeys, ...relKeys].join('\n');
174
- return `export type ${node.typeName}FulltextLeaf = {
176
+ // `compileLeaf` reads exactly one key off the leaf; a second index would be
177
+ // silently dropped, so the type admits only one. Multiple indexes are
178
+ // expressed through the AND / OR members of `<Node>FulltextInput`.
179
+ return `export type ${node.typeName}FulltextLeaf = ExactlyOneKey<{
175
180
  ${body}
176
- };`;
181
+ }>;`;
177
182
  }
178
183
  /**
179
184
  * Emits `<Node>FulltextInput` — the top-level union accepted by `find()` et
180
185
  * al. Includes the leaf and the three logical composition operators.
186
+ *
187
+ * Each operator member marks the other two `?: never`. `compileNode` dispatches
188
+ * on `OR`, then `AND`, then `NOT`, returning at the first hit — so stacking two
189
+ * operators in one object silently discarded one of them. `{ NOT, AND }` was
190
+ * the worst case: `AND` won and the exclusion vanished entirely.
191
+ *
192
+ * This closes operator-vs-operator at compile time. It does NOT close operator
193
+ * mixed with a bare index key (`{ OR: [...], SomeIndex: {...} }`) — TypeScript
194
+ * permits a literal property that exists on ANY member of the union — so
195
+ * `assertSingleFulltextOperator` still backs this at runtime.
181
196
  */
182
197
  function emitFulltextInput(node) {
183
- return `export type ${node.typeName}FulltextInput =
184
- | ${node.typeName}FulltextLeaf
185
- | { OR: ${node.typeName}FulltextInput[] }
186
- | { AND: ${node.typeName}FulltextInput[] }
187
- | { NOT: ${node.typeName}FulltextInput };`;
198
+ const t = node.typeName;
199
+ return `export type ${t}FulltextInput =
200
+ | ${t}FulltextLeaf
201
+ | { OR: ${t}FulltextInput[]; AND?: never; NOT?: never }
202
+ | { AND: ${t}FulltextInput[]; OR?: never; NOT?: never }
203
+ | { NOT: ${t}FulltextInput; OR?: never; AND?: never };`;
188
204
  }
189
205
  //# sourceMappingURL=fulltext-emitter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fulltext-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/fulltext-emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fulltext-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/fulltext-emitter.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@ import type { SchemaMetadata } from '../../schema/types';
2
2
  /**
3
3
  * For each node and interface in the schema, emits:
4
4
  * - `<Type>Sort` — one optional `SortDirection` field per sortable scalar
5
- * (stored scalars + scalar-returning `@cypher` fields)
5
+ * (stored scalars + scalar-returning `@cypher` fields), wrapped in
6
+ * `ExactlyOneKey` so a single entry can only carry one ordering key
6
7
  * - `<Type>Options` — `limit`, `offset`, `sort` for use in find params
7
8
  */
8
9
  export declare function emitSortOptions(schema: SchemaMetadata): string;
@@ -1 +1 @@
1
- {"version":3,"file":"sort-options-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/sort-options-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,oBAAoB,CAAC;AAE5B;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAgB9D"}
1
+ {"version":3,"file":"sort-options-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/sort-options-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,oBAAoB,CAAC;AAE5B;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAgB9D"}