grafeo-ogm 2.1.0 → 2.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.
Files changed (73) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/README.md +49 -0
  3. package/dist/cjs/compilers/mutation.compiler.d.ts.map +1 -1
  4. package/dist/cjs/compilers/mutation.compiler.js +23 -23
  5. package/dist/cjs/compilers/mutation.compiler.js.map +1 -1
  6. package/dist/cjs/compilers/where.compiler.d.ts +83 -6
  7. package/dist/cjs/compilers/where.compiler.d.ts.map +1 -1
  8. package/dist/cjs/compilers/where.compiler.js +156 -76
  9. package/dist/cjs/compilers/where.compiler.js.map +1 -1
  10. package/dist/cjs/execution/executor.d.ts +11 -1
  11. package/dist/cjs/execution/executor.d.ts.map +1 -1
  12. package/dist/cjs/execution/executor.js +6 -3
  13. package/dist/cjs/execution/executor.js.map +1 -1
  14. package/dist/cjs/index.d.ts +2 -2
  15. package/dist/cjs/index.d.ts.map +1 -1
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/model.d.ts +38 -1
  18. package/dist/cjs/model.d.ts.map +1 -1
  19. package/dist/cjs/model.js +120 -2
  20. package/dist/cjs/model.js.map +1 -1
  21. package/dist/cjs/ogm.d.ts.map +1 -1
  22. package/dist/cjs/ogm.js +1 -0
  23. package/dist/cjs/ogm.js.map +1 -1
  24. package/dist/cjs/policy/explain.d.ts +59 -0
  25. package/dist/cjs/policy/explain.d.ts.map +1 -0
  26. package/dist/cjs/policy/explain.js +175 -0
  27. package/dist/cjs/policy/explain.js.map +1 -0
  28. package/dist/cjs/policy/resolver.d.ts +26 -2
  29. package/dist/cjs/policy/resolver.d.ts.map +1 -1
  30. package/dist/cjs/policy/resolver.js +103 -33
  31. package/dist/cjs/policy/resolver.js.map +1 -1
  32. package/dist/cjs/policy/types.d.ts +87 -0
  33. package/dist/cjs/policy/types.d.ts.map +1 -1
  34. package/dist/cjs/utils/write-coercion.d.ts +20 -19
  35. package/dist/cjs/utils/write-coercion.d.ts.map +1 -1
  36. package/dist/cjs/utils/write-coercion.js +120 -50
  37. package/dist/cjs/utils/write-coercion.js.map +1 -1
  38. package/dist/esm/compilers/mutation.compiler.d.ts.map +1 -1
  39. package/dist/esm/compilers/mutation.compiler.js +24 -24
  40. package/dist/esm/compilers/mutation.compiler.js.map +1 -1
  41. package/dist/esm/compilers/where.compiler.d.ts +83 -6
  42. package/dist/esm/compilers/where.compiler.d.ts.map +1 -1
  43. package/dist/esm/compilers/where.compiler.js +156 -77
  44. package/dist/esm/compilers/where.compiler.js.map +1 -1
  45. package/dist/esm/execution/executor.d.ts +11 -1
  46. package/dist/esm/execution/executor.d.ts.map +1 -1
  47. package/dist/esm/execution/executor.js +6 -3
  48. package/dist/esm/execution/executor.js.map +1 -1
  49. package/dist/esm/index.d.ts +2 -2
  50. package/dist/esm/index.d.ts.map +1 -1
  51. package/dist/esm/index.js.map +1 -1
  52. package/dist/esm/model.d.ts +38 -1
  53. package/dist/esm/model.d.ts.map +1 -1
  54. package/dist/esm/model.js +121 -3
  55. package/dist/esm/model.js.map +1 -1
  56. package/dist/esm/ogm.d.ts.map +1 -1
  57. package/dist/esm/ogm.js +1 -0
  58. package/dist/esm/ogm.js.map +1 -1
  59. package/dist/esm/policy/explain.d.ts +59 -0
  60. package/dist/esm/policy/explain.d.ts.map +1 -0
  61. package/dist/esm/policy/explain.js +169 -0
  62. package/dist/esm/policy/explain.js.map +1 -0
  63. package/dist/esm/policy/resolver.d.ts +26 -2
  64. package/dist/esm/policy/resolver.d.ts.map +1 -1
  65. package/dist/esm/policy/resolver.js +102 -33
  66. package/dist/esm/policy/resolver.js.map +1 -1
  67. package/dist/esm/policy/types.d.ts +87 -0
  68. package/dist/esm/policy/types.d.ts.map +1 -1
  69. package/dist/esm/utils/write-coercion.d.ts +20 -19
  70. package/dist/esm/utils/write-coercion.d.ts.map +1 -1
  71. package/dist/esm/utils/write-coercion.js +118 -48
  72. package/dist/esm/utils/write-coercion.js.map +1 -1
  73. package/package.json +1 -1
@@ -22,33 +22,34 @@ import type { PropertyDefinition } from '../schema/types';
22
22
  export declare function coerceWriteValue(value: unknown, propDef: PropertyDefinition | undefined): unknown;
23
23
  /**
24
24
  * Wrap a write RHS expression (`$param`, or an UNWIND item reference) in
25
- * the field's temporal Cypher constructor, so ISO-string inputs are
26
- * stored as native temporal properties instead of Strings. Reads convert
27
- * native temporals → ISO strings (ResultMapper), so this is the write
28
- * half of the same round-trip symmetry issue #5 fixed for integers.
25
+ * the field's Cypher constructor — temporal (`datetime()`, ...) for
26
+ * ISO-string inputs, `point()` for plain point maps — so the stored
27
+ * property is the native type the schema declares. Reads convert native
28
+ * values to plain JS (ResultMapper); this is the write half of the same
29
+ * round-trip symmetry issue #5 fixed for integers.
29
30
  *
30
- * Only string values are wrapped — a driver temporal object already
31
- * packs natively and binds raw. Temporal LIST fields wrap element-wise
32
- * via a list comprehension when any element is a string.
31
+ * Driver-native values (temporal instances, Point instances) bind raw.
32
+ * List fields wrap element-wise via a list comprehension, following the
33
+ * constructor's element rule (see WriteConstructor.arrayMode).
33
34
  */
34
- export declare function wrapTemporalWriteExpr(expr: string, value: unknown, propDef: PropertyDefinition | undefined): string;
35
+ export declare function wrapWriteExpr(expr: string, value: unknown, propDef: PropertyDefinition | undefined): string;
35
36
  /**
36
- * Temporal wrapping for UNWIND item references (`item.prop`,
37
+ * Constructor wrapping for UNWIND item references (`item.prop`,
37
38
  * `connItem.edge.prop`), where ONE Cypher expression serves EVERY item in
38
39
  * the batch: the wrap decision must hold for all items' values for the
39
- * key. A mixed string/non-string column throws — a single expression
40
- * cannot be correct for both representations.
40
+ * key. A column mixing constructor inputs with driver-native values
41
+ * throws — a single expression cannot be correct for both.
41
42
  */
42
- export declare function wrapTemporalListItemExpr(expr: string, values: unknown[], propDef: PropertyDefinition | undefined): string;
43
+ export declare function wrapListItemExpr(expr: string, values: unknown[], propDef: PropertyDefinition | undefined): string;
43
44
  /**
44
- * Wrap a WHERE parameter reference for a temporal field. With properties
45
- * stored as native temporals, comparing them to a raw string param is a
46
- * cross-type comparison — Neo4j evaluates it to NULL and silently drops
47
- * the row. `suffix` is the operator suffix (`''` for plain equality);
48
- * only comparison-shaped operators wrap, and `_IN`/`_NOT_IN` wrap their
49
- * list param element-wise.
45
+ * Wrap a WHERE parameter reference for a constructor-typed field. With
46
+ * properties stored natively, comparing them to a raw string/map param is
47
+ * a cross-type comparison — Neo4j evaluates it to NULL and silently
48
+ * drops the row. `suffix` is the operator suffix (`''` for plain
49
+ * equality); only comparison-shaped operators wrap, and `_IN`/`_NOT_IN`
50
+ * wrap their list param element-wise.
50
51
  */
51
- export declare function wrapTemporalWhereParam(paramRef: string, value: unknown, propDef: PropertyDefinition | undefined, suffix: string): string;
52
+ export declare function wrapWhereParam(paramRef: string, value: unknown, propDef: PropertyDefinition | undefined, suffix: string): string;
52
53
  /**
53
54
  * Materialize a parsed `@default` into a driver-ready bound value. The
54
55
  * parser stores every default as a string (`'true'`, `'5'`, `'WELCOME'`);
@@ -1 +1 @@
1
- {"version":3,"file":"write-coercion.d.ts","sourceRoot":"","sources":["../../../src/utils/write-coercion.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA0C1D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,kBAAkB,GAAG,SAAS,GACtC,OAAO,CAWT;AAqCD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,kBAAkB,GAAG,SAAS,GACtC,MAAM,CAWR;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,EAAE,kBAAkB,GAAG,SAAS,GACtC,MAAM,CAqBR;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,MAAM,EAAE,MAAM,GACb,MAAM,CAYR;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAc7E"}
1
+ {"version":3,"file":"write-coercion.d.ts","sourceRoot":"","sources":["../../../src/utils/write-coercion.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAkI1D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,kBAAkB,GAAG,SAAS,GACtC,OAAO,CAWT;AAqCD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,kBAAkB,GAAG,SAAS,GACtC,MAAM,CAWR;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,EAAE,kBAAkB,GAAG,SAAS,GACtC,MAAM,CAwBR;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,MAAM,EAAE,MAAM,GACb,MAAM,CAYR;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAc7E"}
@@ -1,4 +1,4 @@
1
- import { int, isInt } from 'neo4j-driver';
1
+ import { int, isInt, isPoint } from 'neo4j-driver';
2
2
  import { OGMError } from '../errors';
3
3
  /**
4
4
  * GraphQL scalar types whose Neo4j storage type is INTEGER (Long).
@@ -20,14 +20,22 @@ const TEMPORAL_CONSTRUCTORS = {
20
20
  LocalTime: 'localtime',
21
21
  Duration: 'duration',
22
22
  };
23
+ /**
24
+ * Spatial scalar types → Cypher's `point()` constructor. Reads flatten a
25
+ * native Point into a plain `{ x, y[, z], srid }` object (ResultMapper),
26
+ * and `point()` accepts exactly that map back — `srid` key included — so
27
+ * wrapping makes the read → write round-trip exact. Without the wrapper
28
+ * the plain object is bound as a map property value, which Neo4j rejects
29
+ * at runtime ("Property values can only be of primitive types...").
30
+ */
31
+ const POINT_SCALAR_TYPES = new Set(['Point', 'CartesianPoint']);
23
32
  /**
24
33
  * Where-operator suffixes whose parameter is compared against the field
25
- * value (`''` = plain equality) and therefore needs the same temporal
26
- * constructor treatment as writes. String operators (`_CONTAINS`,
27
- * `_STARTS_WITH`, `_MATCHES`, ...) are excluded — their params are
28
- * strings by definition.
34
+ * value (`''` = plain equality) and therefore needs the same constructor
35
+ * treatment as writes. String operators (`_CONTAINS`, `_STARTS_WITH`,
36
+ * `_MATCHES`, ...) are excluded — their params are strings by definition.
29
37
  */
30
- const TEMPORAL_COMPARABLE_SUFFIXES = new Set([
38
+ const COMPARABLE_SUFFIXES = new Set([
31
39
  '',
32
40
  '_NOT',
33
41
  '_GT',
@@ -37,6 +45,56 @@ const TEMPORAL_COMPARABLE_SUFFIXES = new Set([
37
45
  '_IN',
38
46
  '_NOT_IN',
39
47
  ]);
48
+ function isTemporalStringInput(value) {
49
+ return typeof value === 'string';
50
+ }
51
+ /**
52
+ * A plain object shaped like `point()` input: cartesian (`x`/`y`) or
53
+ * geographic (`longitude`/`latitude`), optionally with `z`/`height` and
54
+ * `srid`/`crs`. Driver Point instances are NOT inputs — they pack
55
+ * natively and `point()` would reject them.
56
+ */
57
+ function isPointWriteInput(value) {
58
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
59
+ return false;
60
+ if (isPoint(value) || isInt(value))
61
+ return false;
62
+ const candidate = value;
63
+ const cartesian = typeof candidate.x === 'number' && typeof candidate.y === 'number';
64
+ const geographic = typeof candidate.longitude === 'number' &&
65
+ typeof candidate.latitude === 'number';
66
+ return cartesian || geographic;
67
+ }
68
+ function resolveWriteConstructor(propDef) {
69
+ const temporal = TEMPORAL_CONSTRUCTORS[propDef.type];
70
+ if (temporal !== undefined)
71
+ return { fn: temporal, wraps: isTemporalStringInput, arrayMode: 'any' };
72
+ if (POINT_SCALAR_TYPES.has(propDef.type))
73
+ return { fn: 'point', wraps: isPointWriteInput, arrayMode: 'all' };
74
+ return undefined;
75
+ }
76
+ /**
77
+ * Decide whether a list of element values should be wrapped element-wise.
78
+ * `'any'` mode wraps as soon as one element is constructor input; `'all'`
79
+ * mode requires uniformity and throws on a mix, because the constructor
80
+ * cannot be applied to the already-native elements.
81
+ */
82
+ function decideElementsWrap(elements, ctor, propDef) {
83
+ const defined = elements.filter((el) => el !== null && el !== undefined);
84
+ if (defined.length === 0)
85
+ return false;
86
+ const matches = defined.filter((el) => ctor.wraps(el)).length;
87
+ if (matches === 0)
88
+ return false;
89
+ if (ctor.arrayMode === 'any')
90
+ return true;
91
+ if (matches !== defined.length)
92
+ throw new OGMError(`Mixed input representations for ${propDef.type} field "${propDef.name}": ` +
93
+ `some values are plain ${ctor.fn}() inputs, others are driver-native values. ` +
94
+ `${ctor.fn}() cannot be applied to an already-native value, so every value ` +
95
+ `must use the same representation.`);
96
+ return true;
97
+ }
40
98
  /**
41
99
  * Coerce a JS write value bound for an `Int`/`BigInt`-typed schema field
42
100
  * into a Neo4j Integer so the stored property is a Long, not a Double.
@@ -101,83 +159,95 @@ function coerceIntegerElement(value, propDef) {
101
159
  }
102
160
  /**
103
161
  * Wrap a write RHS expression (`$param`, or an UNWIND item reference) in
104
- * the field's temporal Cypher constructor, so ISO-string inputs are
105
- * stored as native temporal properties instead of Strings. Reads convert
106
- * native temporals → ISO strings (ResultMapper), so this is the write
107
- * half of the same round-trip symmetry issue #5 fixed for integers.
162
+ * the field's Cypher constructor — temporal (`datetime()`, ...) for
163
+ * ISO-string inputs, `point()` for plain point maps — so the stored
164
+ * property is the native type the schema declares. Reads convert native
165
+ * values to plain JS (ResultMapper); this is the write half of the same
166
+ * round-trip symmetry issue #5 fixed for integers.
108
167
  *
109
- * Only string values are wrapped — a driver temporal object already
110
- * packs natively and binds raw. Temporal LIST fields wrap element-wise
111
- * via a list comprehension when any element is a string.
168
+ * Driver-native values (temporal instances, Point instances) bind raw.
169
+ * List fields wrap element-wise via a list comprehension, following the
170
+ * constructor's element rule (see WriteConstructor.arrayMode).
112
171
  */
113
- export function wrapTemporalWriteExpr(expr, value, propDef) {
172
+ export function wrapWriteExpr(expr, value, propDef) {
114
173
  if (propDef === undefined)
115
174
  return expr;
116
- const ctor = TEMPORAL_CONSTRUCTORS[propDef.type];
175
+ const ctor = resolveWriteConstructor(propDef);
117
176
  if (ctor === undefined)
118
177
  return expr;
119
178
  if (propDef.isArray) {
120
- if (!Array.isArray(value) || !value.some((el) => typeof el === 'string'))
179
+ if (!Array.isArray(value))
180
+ return expr;
181
+ if (!decideElementsWrap(value, ctor, propDef))
121
182
  return expr;
122
- return `[wc_t IN ${expr} | ${ctor}(wc_t)]`;
183
+ return `[wc_t IN ${expr} | ${ctor.fn}(wc_t)]`;
123
184
  }
124
- if (typeof value !== 'string')
185
+ if (!ctor.wraps(value))
125
186
  return expr;
126
- return `${ctor}(${expr})`;
187
+ return `${ctor.fn}(${expr})`;
127
188
  }
128
189
  /**
129
- * Temporal wrapping for UNWIND item references (`item.prop`,
190
+ * Constructor wrapping for UNWIND item references (`item.prop`,
130
191
  * `connItem.edge.prop`), where ONE Cypher expression serves EVERY item in
131
192
  * the batch: the wrap decision must hold for all items' values for the
132
- * key. A mixed string/non-string column throws — a single expression
133
- * cannot be correct for both representations.
193
+ * key. A column mixing constructor inputs with driver-native values
194
+ * throws — a single expression cannot be correct for both.
134
195
  */
135
- export function wrapTemporalListItemExpr(expr, values, propDef) {
196
+ export function wrapListItemExpr(expr, values, propDef) {
136
197
  if (propDef === undefined)
137
198
  return expr;
138
- const ctor = TEMPORAL_CONSTRUCTORS[propDef.type];
199
+ const ctor = resolveWriteConstructor(propDef);
139
200
  if (ctor === undefined)
140
201
  return expr;
202
+ if (propDef.isArray) {
203
+ const flattened = values
204
+ .filter((v) => Array.isArray(v))
205
+ .flat();
206
+ if (flattened.length === 0)
207
+ return expr;
208
+ if (!decideElementsWrap(flattened, ctor, propDef))
209
+ return expr;
210
+ return `[wc_t IN ${expr} | ${ctor.fn}(wc_t)]`;
211
+ }
141
212
  const defined = values.filter((v) => v !== null && v !== undefined);
142
213
  if (defined.length === 0)
143
214
  return expr;
144
- if (propDef.isArray) {
145
- const anyString = defined.some((v) => Array.isArray(v) && v.some((el) => typeof el === 'string'));
146
- return anyString ? `[wc_t IN ${expr} | ${ctor}(wc_t)]` : expr;
147
- }
148
- const stringCount = defined.filter((v) => typeof v === 'string').length;
149
- if (stringCount === 0)
215
+ const matches = defined.filter((v) => ctor.wraps(v)).length;
216
+ if (matches === 0)
150
217
  return expr;
151
- if (stringCount !== defined.length)
152
- throw new OGMError(`Mixed input types for ${propDef.type} field "${propDef.name}": some items pass ISO ` +
153
- `strings, others pass non-string values. Batched writes share one Cypher expression ` +
154
- `per field, so every item must use the same representation.`);
155
- return `${ctor}(${expr})`;
218
+ if (matches !== defined.length)
219
+ throw new OGMError(`Mixed input types for ${propDef.type} field "${propDef.name}": some items pass ` +
220
+ `plain ${ctor.fn}() inputs, others pass driver-native values. Batched writes ` +
221
+ `share one Cypher expression per field, so every item must use the same ` +
222
+ `representation.`);
223
+ return `${ctor.fn}(${expr})`;
156
224
  }
157
225
  /**
158
- * Wrap a WHERE parameter reference for a temporal field. With properties
159
- * stored as native temporals, comparing them to a raw string param is a
160
- * cross-type comparison — Neo4j evaluates it to NULL and silently drops
161
- * the row. `suffix` is the operator suffix (`''` for plain equality);
162
- * only comparison-shaped operators wrap, and `_IN`/`_NOT_IN` wrap their
163
- * list param element-wise.
226
+ * Wrap a WHERE parameter reference for a constructor-typed field. With
227
+ * properties stored natively, comparing them to a raw string/map param is
228
+ * a cross-type comparison — Neo4j evaluates it to NULL and silently
229
+ * drops the row. `suffix` is the operator suffix (`''` for plain
230
+ * equality); only comparison-shaped operators wrap, and `_IN`/`_NOT_IN`
231
+ * wrap their list param element-wise.
164
232
  */
165
- export function wrapTemporalWhereParam(paramRef, value, propDef, suffix) {
233
+ export function wrapWhereParam(paramRef, value, propDef, suffix) {
166
234
  if (propDef === undefined)
167
235
  return paramRef;
168
- const ctor = TEMPORAL_CONSTRUCTORS[propDef.type];
236
+ const ctor = resolveWriteConstructor(propDef);
169
237
  if (ctor === undefined)
170
238
  return paramRef;
171
- if (!TEMPORAL_COMPARABLE_SUFFIXES.has(suffix))
239
+ if (!COMPARABLE_SUFFIXES.has(suffix))
172
240
  return paramRef;
173
241
  if (suffix === '_IN' || suffix === '_NOT_IN') {
174
- if (!Array.isArray(value) || !value.some((el) => typeof el === 'string'))
242
+ if (!Array.isArray(value))
243
+ return paramRef;
244
+ if (!decideElementsWrap(value, ctor, propDef))
175
245
  return paramRef;
176
- return `[wc_t IN ${paramRef} | ${ctor}(wc_t)]`;
246
+ return `[wc_t IN ${paramRef} | ${ctor.fn}(wc_t)]`;
177
247
  }
178
- if (typeof value !== 'string')
248
+ if (!ctor.wraps(value))
179
249
  return paramRef;
180
- return `${ctor}(${paramRef})`;
250
+ return `${ctor.fn}(${paramRef})`;
181
251
  }
182
252
  /**
183
253
  * Materialize a parsed `@default` into a driver-ready bound value. The
@@ -1 +1 @@
1
- {"version":3,"file":"write-coercion.js","sourceRoot":"","sources":["../../../src/utils/write-coercion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write-coercion.js","sourceRoot":"","sources":["../../../src/utils/write-coercion.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "grafeo-ogm",
3
- "version": "2.1.0",
3
+ "version": "2.2.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",