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
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * For each node and interface in the schema, emits:
3
3
  * - `<Type>Sort` — one optional `SortDirection` field per sortable scalar
4
- * (stored scalars + scalar-returning `@cypher` fields)
4
+ * (stored scalars + scalar-returning `@cypher` fields), wrapped in
5
+ * `ExactlyOneKey` so a single entry can only carry one ordering key
5
6
  * - `<Type>Options` — `limit`, `offset`, `sort` for use in find params
6
7
  */
7
8
  export function emitSortOptions(schema) {
@@ -24,10 +25,16 @@ function emitInterfaceSortAndOptions(iface, schema) {
24
25
  return emitSortAndOptionsBlock(iface.name, getSortableProperties(iface.properties, schema));
25
26
  }
26
27
  function emitSortAndOptionsBlock(typeName, sortFields) {
27
- const sortMembers = sortFields
28
- .map((name) => ` ${name}?: InputMaybe<SortDirection>;`)
29
- .join('\n');
30
- const sortType = `export type ${typeName}Sort = {\n${sortMembers}\n};`;
28
+ const sortType = sortFields.length
29
+ ? // `ExactlyOneKey` makes a two-key entry a compile error. ORDER BY
30
+ // precedence comes from array position, so one entry may only carry one
31
+ // key; see `assertSingleSortKey` for the matching runtime guard.
32
+ `export type ${typeName}Sort = ExactlyOneKey<{\n${sortFields
33
+ .map((name) => ` ${name}?: InputMaybe<SortDirection>;`)
34
+ .join('\n')}\n}>;`
35
+ : // Nothing sortable on this type — admit no keys at all rather than
36
+ // widening to `{}`, which would accept any object.
37
+ `export type ${typeName}Sort = Record<string, never>;`;
31
38
  const optionsType = `export type ${typeName}Options = {
32
39
  limit?: InputMaybe<Scalars["Int"]["input"]>;
33
40
  offset?: InputMaybe<Scalars["Int"]["input"]>;
@@ -1 +1 @@
1
- {"version":3,"file":"sort-options-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/sort-options-emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sort-options-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/sort-options-emitter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utility-types.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/utility-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,wBAAgB,UAAU,CACxB,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5B,WAAW,SAAe,GACzB,MAAM,CASR;AAMD,wBAAgB,WAAW,CAAC,WAAW,SAAe,GAAG,MAAM,CAK9D;AAMD,wBAAgB,gBAAgB,IAAI,MAAM,CA0DzC"}
1
+ {"version":3,"file":"utility-types.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/utility-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,wBAAgB,UAAU,CACxB,MAAM,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5B,WAAW,SAAe,GACzB,MAAM,CASR;AAMD,wBAAgB,WAAW,CAAC,WAAW,SAAe,GAAG,MAAM,CAK9D;AAMD,wBAAgB,gBAAgB,IAAI,MAAM,CA8EzC"}
@@ -42,6 +42,26 @@ export type MakeEmpty<
42
42
  T extends { [key: string]: unknown },
43
43
  K extends keyof T
44
44
  > = { [_ in K]?: never };
45
+ /**
46
+ * Narrows an all-optional map to "exactly one key present".
47
+ *
48
+ * Used where the runtime reads a single key and a second one would be silently
49
+ * dropped. Both such surfaces have a dedicated way to say "more than one":
50
+ *
51
+ * \`\`\`ts
52
+ * // <Type>Sort — precedence comes from ARRAY POSITION
53
+ * sort: [{ a: "ASC" }, { b: "DESC" }] // ok -> ORDER BY n.a ASC, n.b DESC
54
+ * sort: [{ a: "ASC", b: "DESC" }] // error
55
+ *
56
+ * // <Type>FulltextLeaf — combine indexes with AND / OR
57
+ * fulltext: { AND: [{ IdxA: {...} }, { IdxB: {...} }] } // ok
58
+ * fulltext: { IdxA: {...}, IdxB: {...} } // error
59
+ * \`\`\`
60
+ */
61
+ export type ExactlyOneKey<T> = {
62
+ [K in keyof Required<T>]: Pick<Required<T>, K> &
63
+ Partial<Record<Exclude<keyof T, K>, never>>;
64
+ }[keyof Required<T>];
45
65
  export type Incremental<T> =
46
66
  | T
47
67
  | {
@@ -1 +1 @@
1
- {"version":3,"file":"utility-types.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/utility-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,UAAU,UAAU,CACxB,MAA4B,EAC5B,WAAW,GAAG,YAAY;IAE1B,MAAM,KAAK,GAAG;QACZ,sCAAsC;QACtC,mBAAmB,WAAW,kBAAkB;KACjD,CAAC;IAEF,IAAI,MAAM,EAAE,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,UAAU,WAAW,CAAC,WAAW,GAAG,YAAY;IACpD,OAAO;QACL,gEAAgE;QAChE,mFAAmF,WAAW,IAAI;KACnG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,oEAAoE;AACpE,8EAA8E;AAE9E,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"utility-types.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/utility-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,UAAU,UAAU,CACxB,MAA4B,EAC5B,WAAW,GAAG,YAAY;IAE1B,MAAM,KAAK,GAAG;QACZ,sCAAsC;QACtC,mBAAmB,WAAW,kBAAkB;KACjD,CAAC;IAEF,IAAI,MAAM,EAAE,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,UAAU,WAAW,CAAC,WAAW,GAAG,YAAY;IACpD,OAAO;QACL,gEAAgE;QAChE,mFAAmF,WAAW,IAAI;KACnG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,oEAAoE;AACpE,8EAA8E;AAE9E,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EN,CAAC;AACJ,CAAC"}
@@ -31,6 +31,9 @@ export declare function buildCypherSortProjection(statement: string, nodeVar: st
31
31
  *
32
32
  * The returned `pre` string is intended to be appended BEFORE the `RETURN`,
33
33
  * and `orderBy` to be appended AFTER it.
34
+ *
35
+ * Each entry must carry exactly ONE ordering key — precedence comes from the
36
+ * entry's position in the array. Multi-key entries throw (`assertSingleSortKey`).
34
37
  */
35
38
  export declare function compileSortClause(args: {
36
39
  sort: ReadonlyArray<Record<string, unknown>>;
@@ -1 +1 @@
1
- {"version":3,"file":"cypher-sort-projection.d.ts","sourceRoot":"","sources":["../../../src/utils/cypher-sort-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAO1D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,MAAM,CAQR;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,kBAAkB,GAAG,SAAS,CAAC;IAClE,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACtC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAsCnC"}
1
+ {"version":3,"file":"cypher-sort-projection.d.ts","sourceRoot":"","sources":["../../../src/utils/cypher-sort-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAS1D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,MAAM,CAQR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,kBAAkB,GAAG,SAAS,CAAC;IAClE,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACtC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAgDnC"}
@@ -1,4 +1,4 @@
1
- import { assertSafeIdentifier, assertSortDirection, escapeIdentifier, } from './validation';
1
+ import { assertPlainObject, assertSafeIdentifier, assertSingleSortKey, assertSortDirection, escapeIdentifier, } from './validation';
2
2
  /**
3
3
  * Builds the `CALL { ... }` subquery used to project an `@cypher` field
4
4
  * for `ORDER BY`. The user's statement is embedded verbatim with `this`
@@ -39,6 +39,9 @@ export function buildCypherSortProjection(statement, nodeVar) {
39
39
  *
40
40
  * The returned `pre` string is intended to be appended BEFORE the `RETURN`,
41
41
  * and `orderBy` to be appended AFTER it.
42
+ *
43
+ * Each entry must carry exactly ONE ordering key — precedence comes from the
44
+ * entry's position in the array. Multi-key entries throw (`assertSingleSortKey`).
42
45
  */
43
46
  export function compileSortClause(args) {
44
47
  const { sort, nodeVar, propertyLookup, preserveVars = [] } = args;
@@ -46,11 +49,20 @@ export function compileSortClause(args) {
46
49
  const sortItems = [];
47
50
  const carriedAliases = [];
48
51
  for (const sortObj of sort) {
52
+ // `Object.entries(null)` is a bare TypeError from inside the compiler;
53
+ // callers expect OGMError for every malformed input on this path.
54
+ assertPlainObject(sortObj, 'Sort entry');
49
55
  const entries = Object.entries(sortObj);
56
+ // A zero-key entry contributes no ordering (rather than a wrong one), so
57
+ // it stays a silent skip. A multi-key entry is always a mistake.
50
58
  if (entries.length === 0)
51
59
  continue;
60
+ // Validate every key, not just the surviving one, so `assertSingleSortKey`
61
+ // only ever interpolates identifier-shaped strings into its message.
62
+ for (const [key] of entries)
63
+ assertSafeIdentifier(key, 'sort field');
64
+ assertSingleSortKey(entries);
52
65
  const [field, direction] = entries[0];
53
- assertSafeIdentifier(field, 'sort field');
54
66
  const validDirection = assertSortDirection(direction);
55
67
  const propDef = propertyLookup(field);
56
68
  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":"AACA,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,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,MAAM,UAAU,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,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,mBAAmB,CAAC,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,oBAAoB,CAAC,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,gBAAgB,CAAC,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,gBAAgB,CAAC,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":"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"}
@@ -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"}
@@ -70,6 +70,108 @@ export function assertSortDirection(direction) {
70
70
  throw new OGMError(`Invalid sort direction "${direction}". Must be "ASC" or "DESC".`);
71
71
  return direction;
72
72
  }
73
+ /**
74
+ * Shared opening clause for "this object may carry only one key" violations.
75
+ *
76
+ * Keys are interpolated verbatim, so every caller must have run
77
+ * `assertSafeIdentifier` over ALL of them first — never just the surviving one.
78
+ */
79
+ function singleKeyPrefix(entries, subject) {
80
+ const keys = entries.map(([key]) => key);
81
+ return `${subject} has ${entries.length} keys (${keys.join(', ')}); `;
82
+ }
83
+ /**
84
+ * Assert that a single `sort` array entry carries exactly one ordering key.
85
+ *
86
+ * v2.0.0 — pre-2.0.0 `compileSortClause` read only `Object.entries(entry)[0]`
87
+ * and silently discarded the rest, so `[{ a: 'ASC', b: 'DESC' }]` compiled to
88
+ * `ORDER BY n.a ASC` with no error and no log: a successful query answering a
89
+ * different question. Which key survived depended purely on source insertion
90
+ * order.
91
+ *
92
+ * Ordering precedence must be carried by ARRAY POSITION, never by object key
93
+ * order. Honoring every key would only move the bug: graphql-js
94
+ * `coerceInputValue` rebuilds input objects by iterating the schema's field
95
+ * definitions, so the key order a client wrote is already gone by the time the
96
+ * object reaches the OGM.
97
+ *
98
+ * Callers must validate each key with `assertSafeIdentifier` BEFORE calling
99
+ * this, so the keys interpolated into the message are known-safe.
100
+ */
101
+ export function assertSingleSortKey(entries) {
102
+ if (entries.length <= 1)
103
+ return;
104
+ // Only echo directions we recognise — an unvalidated value must never reach
105
+ // an error string that may be logged.
106
+ const suggestion = entries
107
+ .map(([key, value]) => `{ ${key}: ${value === 'ASC' || value === 'DESC' ? `'${value}'` : '...'} }`)
108
+ .join(', ');
109
+ throw new OGMError(singleKeyPrefix(entries, 'Sort entry') +
110
+ `each sort entry must carry exactly one ordering key, because ORDER BY ` +
111
+ `precedence comes from array position and not object key order. ` +
112
+ `Use one entry per key: [${suggestion}].`);
113
+ }
114
+ /**
115
+ * Assert that a fulltext input object references exactly one index.
116
+ *
117
+ * v2.0.0 — the same silent-truncation defect fixed for `sort` (see
118
+ * `assertSingleSortKey`) also lived in `FulltextCompiler`, at three sites that
119
+ * each guarded the empty case and then read `Object.keys(input)[0]`. A leaf
120
+ * naming two indexes searched only the first and dropped the second with no
121
+ * error, so the query returned a strictly WIDER result set than asked for — a
122
+ * filter that silently stops filtering.
123
+ *
124
+ * Multiple indexes are expressed with the existing `AND` / `OR` combinators,
125
+ * which compile to correlated subqueries and `UNION` respectively.
126
+ *
127
+ * Phrase values are never echoed: they are user data and may carry control
128
+ * characters or sensitive content. Callers must validate each key with
129
+ * `assertSafeIdentifier` BEFORE calling this.
130
+ */
131
+ export function assertSingleFulltextKey(entries, subject) {
132
+ if (entries.length <= 1)
133
+ return;
134
+ const suggestion = entries.map(([key]) => `{ ${key}: … }`).join(', ');
135
+ throw new OGMError(singleKeyPrefix(entries, subject) +
136
+ `a fulltext entry must reference exactly one index. Combine indexes with ` +
137
+ `the AND / OR operators instead: { AND: [${suggestion}] }.`);
138
+ }
139
+ /** The logical operators a fulltext input may carry, each exclusive. */
140
+ const FULLTEXT_OPERATORS = ['OR', 'AND', 'NOT'];
141
+ /**
142
+ * Assert that a fulltext input carrying `OR` / `AND` / `NOT` carries nothing
143
+ * else alongside it.
144
+ *
145
+ * v2.0.0 — the dispatch in `FulltextCompiler.compileNode` tests the operators
146
+ * in order (`OR`, then `AND`, then `NOT`) and returns on the first hit, so any
147
+ * remaining top-level key was silently discarded:
148
+ *
149
+ * - `{ OR: [...], AND: [...] }` compiled the OR branch only.
150
+ * - `{ OR: [...], SomeIndex: {...} }` compiled the OR branch only.
151
+ * - `{ NOT: {...}, AND: [...] }` compiled the AND branch only — an exclusion
152
+ * filter vanished entirely, which inverts the caller's intent rather than
153
+ * merely widening the result set.
154
+ *
155
+ * Operators nest instead of stacking: `{ AND: [{ OR: [...] }, { ... }] }`.
156
+ *
157
+ * Only the recognised operator names — fixed literals — are interpolated into
158
+ * the message. Sibling keys are counted, never echoed, because they have not
159
+ * been identifier-validated at this point in the pipeline.
160
+ */
161
+ export function assertSingleFulltextOperator(keys) {
162
+ const operators = FULLTEXT_OPERATORS.filter((op) => keys.includes(op));
163
+ // No operator → a plain leaf, whose arity `assertSingleFulltextKey` owns.
164
+ if (operators.length === 0)
165
+ return;
166
+ if (keys.length === 1)
167
+ return;
168
+ const others = keys.length - operators.length;
169
+ const alongside = others > 0 ? ` and ${others} other top-level key(s)` : '';
170
+ throw new OGMError(`Fulltext input carries ${operators.join(' + ')}${alongside}; ` +
171
+ `AND / OR / NOT must each be the only key in their object, because the ` +
172
+ `compiler reads the first one and ignores the rest. ` +
173
+ `Nest them instead: { AND: [{ OR: [...] }, { ... }] }.`);
174
+ }
73
175
  /**
74
176
  * Type guard that narrows an unknown value to a plain object.
75
177
  * Returns false for null, arrays, and non-object primitives.
@@ -77,6 +179,33 @@ export function assertSortDirection(direction) {
77
179
  export function isPlainObject(value) {
78
180
  return typeof value === 'object' && value !== null && !Array.isArray(value);
79
181
  }
182
+ /**
183
+ * Assert that a value the compilers are about to enumerate — with
184
+ * `Object.entries`, `Object.keys`, or the `in` operator — is a plain object.
185
+ *
186
+ * v2.0.0 — without this, `sort: [null]` surfaced as a bare
187
+ * `TypeError: Cannot convert undefined or null to object` thrown from deep
188
+ * inside the compiler, and fulltext inputs failed similarly on `'OR' in input`.
189
+ * Both escaped `catch (e) { if (e instanceof OGMError) … }`, even though every
190
+ * other malformed input on those paths is an `OGMError`.
191
+ *
192
+ * Only the value's KIND is reported, never the value itself — the caller may
193
+ * have handed us anything.
194
+ */
195
+ export function assertPlainObject(value, subject) {
196
+ if (isPlainObject(value))
197
+ return;
198
+ const kind = value === null
199
+ ? 'null'
200
+ : value === undefined
201
+ ? 'undefined'
202
+ : Array.isArray(value)
203
+ ? 'an array'
204
+ : // Every remaining `typeof` result is consonant-initial, so a plain
205
+ // "a" article reads correctly here.
206
+ `a ${typeof value}`;
207
+ throw new OGMError(`${subject} must be an object, got ${kind}.`);
208
+ }
80
209
  /**
81
210
  * Merge parameter records into the target. Skips merge if `source` is empty
82
211
  * 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "grafeo-ogm",
3
- "version": "1.14.0",
3
+ "version": "2.0.0",
4
4
  "description": "Type-safe Neo4j ORM / OGM for TypeScript. Define your graph in GraphQL SDL, get fully typed Prisma-like CRUD, optimized Cypher, and zero-config code generation. Community successor to @neo4j/graphql-ogm.",
5
5
  "license": "MIT",
6
6
  "author": "Alejandro Guzman",