grafeo-ogm 2.4.7 → 2.5.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 (203) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/README.md +95 -35
  3. package/dist/cjs/cli/commands/db-push.d.ts.map +1 -1
  4. package/dist/cjs/cli/commands/db-push.js +74 -8
  5. package/dist/cjs/cli/commands/db-push.js.map +1 -1
  6. package/dist/cjs/cli/commands/db-seed.d.ts.map +1 -1
  7. package/dist/cjs/cli/commands/db-seed.js +10 -1
  8. package/dist/cjs/cli/commands/db-seed.js.map +1 -1
  9. package/dist/cjs/cli/introspect.d.ts +2 -2
  10. package/dist/cjs/cli/introspect.d.ts.map +1 -1
  11. package/dist/cjs/cli/introspect.js +44 -2
  12. package/dist/cjs/cli/introspect.js.map +1 -1
  13. package/dist/cjs/cli/push-planner.d.ts +57 -2
  14. package/dist/cjs/cli/push-planner.d.ts.map +1 -1
  15. package/dist/cjs/cli/push-planner.js +161 -3
  16. package/dist/cjs/cli/push-planner.js.map +1 -1
  17. package/dist/cjs/compilers/fulltext.compiler.d.ts.map +1 -1
  18. package/dist/cjs/compilers/fulltext.compiler.js +5 -1
  19. package/dist/cjs/compilers/fulltext.compiler.js.map +1 -1
  20. package/dist/cjs/compilers/mutation.compiler.d.ts +107 -1
  21. package/dist/cjs/compilers/mutation.compiler.d.ts.map +1 -1
  22. package/dist/cjs/compilers/mutation.compiler.js +695 -422
  23. package/dist/cjs/compilers/mutation.compiler.js.map +1 -1
  24. package/dist/cjs/compilers/select-normalizer.d.ts.map +1 -1
  25. package/dist/cjs/compilers/select-normalizer.js +12 -1
  26. package/dist/cjs/compilers/select-normalizer.js.map +1 -1
  27. package/dist/cjs/compilers/selection.compiler.d.ts +56 -0
  28. package/dist/cjs/compilers/selection.compiler.d.ts.map +1 -1
  29. package/dist/cjs/compilers/selection.compiler.js +271 -29
  30. package/dist/cjs/compilers/selection.compiler.js.map +1 -1
  31. package/dist/cjs/compilers/where.compiler.d.ts.map +1 -1
  32. package/dist/cjs/compilers/where.compiler.js +36 -15
  33. package/dist/cjs/compilers/where.compiler.js.map +1 -1
  34. package/dist/cjs/execution/executor.d.ts +34 -9
  35. package/dist/cjs/execution/executor.d.ts.map +1 -1
  36. package/dist/cjs/execution/executor.js +42 -5
  37. package/dist/cjs/execution/executor.js.map +1 -1
  38. package/dist/cjs/execution/result-mapper.d.ts.map +1 -1
  39. package/dist/cjs/execution/result-mapper.js +4 -2
  40. package/dist/cjs/execution/result-mapper.js.map +1 -1
  41. package/dist/cjs/generator/generate-types.d.ts.map +1 -1
  42. package/dist/cjs/generator/generate-types.js +76 -0
  43. package/dist/cjs/generator/generate-types.js.map +1 -1
  44. package/dist/cjs/generator/type-emitters/aggregation-emitter.d.ts.map +1 -1
  45. package/dist/cjs/generator/type-emitters/aggregation-emitter.js +19 -7
  46. package/dist/cjs/generator/type-emitters/aggregation-emitter.js.map +1 -1
  47. package/dist/cjs/generator/type-emitters/input-emitter.js +13 -4
  48. package/dist/cjs/generator/type-emitters/input-emitter.js.map +1 -1
  49. package/dist/cjs/generator/type-emitters/model-map-emitter.d.ts +1 -0
  50. package/dist/cjs/generator/type-emitters/model-map-emitter.d.ts.map +1 -1
  51. package/dist/cjs/generator/type-emitters/model-map-emitter.js +5 -20
  52. package/dist/cjs/generator/type-emitters/model-map-emitter.js.map +1 -1
  53. package/dist/cjs/generator/type-emitters/node-type-emitter.d.ts +3 -0
  54. package/dist/cjs/generator/type-emitters/node-type-emitter.d.ts.map +1 -1
  55. package/dist/cjs/generator/type-emitters/node-type-emitter.js +6 -11
  56. package/dist/cjs/generator/type-emitters/node-type-emitter.js.map +1 -1
  57. package/dist/cjs/generator/type-emitters/select-fields-emitter.js +21 -2
  58. package/dist/cjs/generator/type-emitters/select-fields-emitter.js.map +1 -1
  59. package/dist/cjs/generator/type-emitters/where-emitter.js +19 -3
  60. package/dist/cjs/generator/type-emitters/where-emitter.js.map +1 -1
  61. package/dist/cjs/index.d.ts +1 -1
  62. package/dist/cjs/index.d.ts.map +1 -1
  63. package/dist/cjs/interface-model.d.ts +12 -0
  64. package/dist/cjs/interface-model.d.ts.map +1 -1
  65. package/dist/cjs/interface-model.js +27 -13
  66. package/dist/cjs/interface-model.js.map +1 -1
  67. package/dist/cjs/model.d.ts.map +1 -1
  68. package/dist/cjs/model.js +12 -0
  69. package/dist/cjs/model.js.map +1 -1
  70. package/dist/cjs/ogm.d.ts +22 -2
  71. package/dist/cjs/ogm.d.ts.map +1 -1
  72. package/dist/cjs/ogm.js +42 -5
  73. package/dist/cjs/ogm.js.map +1 -1
  74. package/dist/cjs/policy/nested-writes.d.ts.map +1 -1
  75. package/dist/cjs/policy/nested-writes.js +40 -20
  76. package/dist/cjs/policy/nested-writes.js.map +1 -1
  77. package/dist/cjs/schema/parser.d.ts.map +1 -1
  78. package/dist/cjs/schema/parser.js +94 -16
  79. package/dist/cjs/schema/parser.js.map +1 -1
  80. package/dist/cjs/schema/types.d.ts +1 -1
  81. package/dist/cjs/schema/types.d.ts.map +1 -1
  82. package/dist/cjs/subgraph/subgraph-operations.d.ts.map +1 -1
  83. package/dist/cjs/subgraph/subgraph-operations.js +71 -6
  84. package/dist/cjs/subgraph/subgraph-operations.js.map +1 -1
  85. package/dist/cjs/subgraph/types.d.ts +14 -0
  86. package/dist/cjs/subgraph/types.d.ts.map +1 -1
  87. package/dist/cjs/testing/cypher-assert.d.ts +19 -1
  88. package/dist/cjs/testing/cypher-assert.d.ts.map +1 -1
  89. package/dist/cjs/testing/cypher-assert.js +217 -13
  90. package/dist/cjs/testing/cypher-assert.js.map +1 -1
  91. package/dist/cjs/testing/neo4j-record-factory.d.ts +29 -2
  92. package/dist/cjs/testing/neo4j-record-factory.d.ts.map +1 -1
  93. package/dist/cjs/testing/neo4j-record-factory.js +93 -3
  94. package/dist/cjs/testing/neo4j-record-factory.js.map +1 -1
  95. package/dist/cjs/utils/cypher-field-projection.d.ts +31 -3
  96. package/dist/cjs/utils/cypher-field-projection.d.ts.map +1 -1
  97. package/dist/cjs/utils/cypher-field-projection.js +59 -7
  98. package/dist/cjs/utils/cypher-field-projection.js.map +1 -1
  99. package/dist/cjs/utils/write-coercion.d.ts +18 -0
  100. package/dist/cjs/utils/write-coercion.d.ts.map +1 -1
  101. package/dist/cjs/utils/write-coercion.js +74 -1
  102. package/dist/cjs/utils/write-coercion.js.map +1 -1
  103. package/dist/esm/cli/commands/db-push.d.ts.map +1 -1
  104. package/dist/esm/cli/commands/db-push.js +74 -8
  105. package/dist/esm/cli/commands/db-push.js.map +1 -1
  106. package/dist/esm/cli/commands/db-seed.d.ts.map +1 -1
  107. package/dist/esm/cli/commands/db-seed.js +10 -1
  108. package/dist/esm/cli/commands/db-seed.js.map +1 -1
  109. package/dist/esm/cli/introspect.d.ts +2 -2
  110. package/dist/esm/cli/introspect.d.ts.map +1 -1
  111. package/dist/esm/cli/introspect.js +44 -2
  112. package/dist/esm/cli/introspect.js.map +1 -1
  113. package/dist/esm/cli/push-planner.d.ts +57 -2
  114. package/dist/esm/cli/push-planner.d.ts.map +1 -1
  115. package/dist/esm/cli/push-planner.js +162 -4
  116. package/dist/esm/cli/push-planner.js.map +1 -1
  117. package/dist/esm/compilers/fulltext.compiler.d.ts.map +1 -1
  118. package/dist/esm/compilers/fulltext.compiler.js +5 -1
  119. package/dist/esm/compilers/fulltext.compiler.js.map +1 -1
  120. package/dist/esm/compilers/mutation.compiler.d.ts +107 -1
  121. package/dist/esm/compilers/mutation.compiler.d.ts.map +1 -1
  122. package/dist/esm/compilers/mutation.compiler.js +692 -422
  123. package/dist/esm/compilers/mutation.compiler.js.map +1 -1
  124. package/dist/esm/compilers/select-normalizer.d.ts.map +1 -1
  125. package/dist/esm/compilers/select-normalizer.js +12 -1
  126. package/dist/esm/compilers/select-normalizer.js.map +1 -1
  127. package/dist/esm/compilers/selection.compiler.d.ts +56 -0
  128. package/dist/esm/compilers/selection.compiler.d.ts.map +1 -1
  129. package/dist/esm/compilers/selection.compiler.js +273 -31
  130. package/dist/esm/compilers/selection.compiler.js.map +1 -1
  131. package/dist/esm/compilers/where.compiler.d.ts.map +1 -1
  132. package/dist/esm/compilers/where.compiler.js +37 -16
  133. package/dist/esm/compilers/where.compiler.js.map +1 -1
  134. package/dist/esm/execution/executor.d.ts +34 -9
  135. package/dist/esm/execution/executor.d.ts.map +1 -1
  136. package/dist/esm/execution/executor.js +41 -5
  137. package/dist/esm/execution/executor.js.map +1 -1
  138. package/dist/esm/execution/result-mapper.d.ts.map +1 -1
  139. package/dist/esm/execution/result-mapper.js +4 -2
  140. package/dist/esm/execution/result-mapper.js.map +1 -1
  141. package/dist/esm/generator/generate-types.d.ts.map +1 -1
  142. package/dist/esm/generator/generate-types.js +76 -0
  143. package/dist/esm/generator/generate-types.js.map +1 -1
  144. package/dist/esm/generator/type-emitters/aggregation-emitter.d.ts.map +1 -1
  145. package/dist/esm/generator/type-emitters/aggregation-emitter.js +19 -7
  146. package/dist/esm/generator/type-emitters/aggregation-emitter.js.map +1 -1
  147. package/dist/esm/generator/type-emitters/input-emitter.js +13 -4
  148. package/dist/esm/generator/type-emitters/input-emitter.js.map +1 -1
  149. package/dist/esm/generator/type-emitters/model-map-emitter.d.ts +1 -0
  150. package/dist/esm/generator/type-emitters/model-map-emitter.d.ts.map +1 -1
  151. package/dist/esm/generator/type-emitters/model-map-emitter.js +5 -20
  152. package/dist/esm/generator/type-emitters/model-map-emitter.js.map +1 -1
  153. package/dist/esm/generator/type-emitters/node-type-emitter.d.ts +3 -0
  154. package/dist/esm/generator/type-emitters/node-type-emitter.d.ts.map +1 -1
  155. package/dist/esm/generator/type-emitters/node-type-emitter.js +6 -11
  156. package/dist/esm/generator/type-emitters/node-type-emitter.js.map +1 -1
  157. package/dist/esm/generator/type-emitters/select-fields-emitter.js +21 -2
  158. package/dist/esm/generator/type-emitters/select-fields-emitter.js.map +1 -1
  159. package/dist/esm/generator/type-emitters/where-emitter.js +19 -3
  160. package/dist/esm/generator/type-emitters/where-emitter.js.map +1 -1
  161. package/dist/esm/index.d.ts +1 -1
  162. package/dist/esm/index.d.ts.map +1 -1
  163. package/dist/esm/interface-model.d.ts +12 -0
  164. package/dist/esm/interface-model.d.ts.map +1 -1
  165. package/dist/esm/interface-model.js +27 -13
  166. package/dist/esm/interface-model.js.map +1 -1
  167. package/dist/esm/model.d.ts.map +1 -1
  168. package/dist/esm/model.js +12 -0
  169. package/dist/esm/model.js.map +1 -1
  170. package/dist/esm/ogm.d.ts +22 -2
  171. package/dist/esm/ogm.d.ts.map +1 -1
  172. package/dist/esm/ogm.js +43 -6
  173. package/dist/esm/ogm.js.map +1 -1
  174. package/dist/esm/policy/nested-writes.d.ts.map +1 -1
  175. package/dist/esm/policy/nested-writes.js +40 -20
  176. package/dist/esm/policy/nested-writes.js.map +1 -1
  177. package/dist/esm/schema/parser.d.ts.map +1 -1
  178. package/dist/esm/schema/parser.js +94 -16
  179. package/dist/esm/schema/parser.js.map +1 -1
  180. package/dist/esm/schema/types.d.ts +1 -1
  181. package/dist/esm/schema/types.d.ts.map +1 -1
  182. package/dist/esm/subgraph/subgraph-operations.d.ts.map +1 -1
  183. package/dist/esm/subgraph/subgraph-operations.js +71 -6
  184. package/dist/esm/subgraph/subgraph-operations.js.map +1 -1
  185. package/dist/esm/subgraph/types.d.ts +14 -0
  186. package/dist/esm/subgraph/types.d.ts.map +1 -1
  187. package/dist/esm/testing/cypher-assert.d.ts +19 -1
  188. package/dist/esm/testing/cypher-assert.d.ts.map +1 -1
  189. package/dist/esm/testing/cypher-assert.js +217 -13
  190. package/dist/esm/testing/cypher-assert.js.map +1 -1
  191. package/dist/esm/testing/neo4j-record-factory.d.ts +29 -2
  192. package/dist/esm/testing/neo4j-record-factory.d.ts.map +1 -1
  193. package/dist/esm/testing/neo4j-record-factory.js +93 -3
  194. package/dist/esm/testing/neo4j-record-factory.js.map +1 -1
  195. package/dist/esm/utils/cypher-field-projection.d.ts +31 -3
  196. package/dist/esm/utils/cypher-field-projection.d.ts.map +1 -1
  197. package/dist/esm/utils/cypher-field-projection.js +58 -7
  198. package/dist/esm/utils/cypher-field-projection.js.map +1 -1
  199. package/dist/esm/utils/write-coercion.d.ts +18 -0
  200. package/dist/esm/utils/write-coercion.d.ts.map +1 -1
  201. package/dist/esm/utils/write-coercion.js +73 -1
  202. package/dist/esm/utils/write-coercion.js.map +1 -1
  203. package/package.json +1 -1
@@ -5,6 +5,47 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Neo4jRecordFactory = void 0;
7
7
  const neo4j_driver_1 = __importDefault(require("neo4j-driver"));
8
+ /**
9
+ * ISO-8601 date-time as Neo4j's `datetime()` accepts it: a date, an
10
+ * optional time with up to nine fractional digits, an optional offset
11
+ * (`Z`, `±HH`, `±HHMM`, `±HH:MM`) and an optional `[Area/City]` zone id.
12
+ */
13
+ const ISO_DATE_TIME = /^([+-]?\d{4,})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2})(?:[.,](\d{1,9}))?)?)?(Z|[+-]\d{2}(?::?\d{2})?)?(?:\[([^\]]+)\])?$/i;
14
+ function parseOffsetSeconds(offset) {
15
+ if (offset.toUpperCase() === 'Z')
16
+ return 0;
17
+ const sign = offset[0] === '-' ? -1 : 1;
18
+ const digits = offset.slice(1).replace(':', '');
19
+ const hours = Number(digits.slice(0, 2));
20
+ const minutes = digits.length > 2 ? Number(digits.slice(2, 4)) : 0;
21
+ return sign * (hours * 3600 + minutes * 60);
22
+ }
23
+ /**
24
+ * Offset of `timeZone` at the given wall-clock time, in seconds. Two passes
25
+ * so a wall time near a DST transition lands on the offset in force then.
26
+ */
27
+ function zoneOffsetSeconds(timeZone, wallClockAsUtcMs) {
28
+ const fmt = new Intl.DateTimeFormat('en-US', {
29
+ timeZone,
30
+ hourCycle: 'h23',
31
+ year: 'numeric',
32
+ month: '2-digit',
33
+ day: '2-digit',
34
+ hour: '2-digit',
35
+ minute: '2-digit',
36
+ second: '2-digit',
37
+ });
38
+ const offsetAt = (instantMs) => {
39
+ const p = {};
40
+ for (const part of fmt.formatToParts(new Date(instantMs)))
41
+ if (part.type !== 'literal')
42
+ p[part.type] = Number(part.value);
43
+ const asUtc = Date.UTC(p.year, p.month - 1, p.day, p.hour, p.minute, p.second);
44
+ return Math.round((asUtc - Math.floor(instantMs / 1000) * 1000) / 1000);
45
+ };
46
+ const first = offsetAt(wallClockAsUtcMs);
47
+ return offsetAt(wallClockAsUtcMs - first * 1000);
48
+ }
8
49
  /**
9
50
  * Factory for creating mock Neo4j Record objects for testing.
10
51
  */
@@ -26,17 +67,66 @@ class Neo4jRecordFactory {
26
67
  return neo4j_driver_1.default.int(value);
27
68
  }
28
69
  /**
29
- * Create a Neo4j DateTime value from an ISO string.
70
+ * Create a Neo4j DateTime value from an ISO string, as the driver would
71
+ * return `datetime(isoString)`: the wall-clock fields and the offset are
72
+ * kept as written (`10:00+02:00` stays `10:00+02:00`), all nine fractional
73
+ * digits are kept, and a `[Area/City]` zone id is carried over.
74
+ *
75
+ * Field values are plain numbers (what the driver returns with
76
+ * `disableLosslessIntegers`), so `toString()` matches the driver's.
77
+ *
78
+ * A string with neither an offset nor a zone id is read as UTC, as Neo4j
79
+ * reads it with its default zone.
80
+ *
81
+ * Before v2.4.8 the value was converted to UTC with the offset dropped
82
+ * and the fraction cut to milliseconds; before v2.5.0 an offset-less
83
+ * string was read in the machine's local zone.
30
84
  */
31
85
  static dateTime(isoString) {
86
+ const m = ISO_DATE_TIME.exec(isoString.trim());
87
+ // A non-ISO string `Date` understands (e.g. RFC 2822) keeps the
88
+ // pre-v2.5.0 parse.
89
+ if (!m)
90
+ return Neo4jRecordFactory.legacyDateTime(isoString);
91
+ const [, y, mo, d, h, mi, s, frac, offset, zoneId] = m;
92
+ const year = Number(y);
93
+ const month = Number(mo);
94
+ const day = Number(d);
95
+ const hour = Number(h ?? 0);
96
+ const minute = Number(mi ?? 0);
97
+ const second = Number(s ?? 0);
98
+ const nanosecond = frac ? Number(frac.padEnd(9, '0')) : 0;
99
+ const offsetSeconds = offset !== undefined
100
+ ? parseOffsetSeconds(offset)
101
+ : zoneId !== undefined
102
+ ? zoneOffsetSeconds(zoneId, Date.UTC(year, month - 1, day, hour, minute, second))
103
+ : 0;
104
+ return new neo4j_driver_1.default.types.DateTime(year, month, day, hour, minute, second, nanosecond, offsetSeconds, zoneId);
105
+ }
106
+ /** The pre-v2.5.0 parse: through `Date`, in UTC, millisecond precision. */
107
+ static legacyDateTime(isoString) {
32
108
  const d = new Date(isoString);
109
+ // An Invalid Date used to reach the driver as NaN fields and fail there
110
+ // with an unrelated message.
111
+ if (Number.isNaN(d.getTime()))
112
+ throw new TypeError(`Neo4jRecordFactory.dateTime: '${isoString}' is not an ISO-8601 date-time`);
33
113
  return new neo4j_driver_1.default.types.DateTime(d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds() * 1000000, 0);
34
114
  }
35
115
  /**
36
116
  * Create a mock Neo4j Node.
117
+ *
118
+ * `properties` are stored as given. The driver returns an Int property as
119
+ * an Integer, so pass `Neo4jRecordFactory.integer(n)` where a test needs
120
+ * that; a JS number is never converted, because it may stand for a Float.
121
+ *
122
+ * `options.identity` and `options.elementId` (v2.5.0) give mock nodes
123
+ * distinct ids; without them every node has identity 0 and elementId "0".
124
+ * A given identity alone yields elementId `String(identity)`, as the
125
+ * driver does for a 4.x server.
37
126
  */
38
- static node(labels, properties) {
39
- return new neo4j_driver_1.default.types.Node(neo4j_driver_1.default.int(0), labels, properties);
127
+ static node(labels, properties, options = {}) {
128
+ const identity = neo4j_driver_1.default.int(options.identity ?? 0);
129
+ return new neo4j_driver_1.default.types.Node(identity, labels, properties, options.elementId ?? identity.toString());
40
130
  }
41
131
  }
42
132
  exports.Neo4jRecordFactory = Neo4jRecordFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"neo4j-record-factory.js","sourceRoot":"","sources":["../../../src/testing/neo4j-record-factory.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqE;AAErE;;GAEG;AACH,MAAa,kBAAkB;IAC7B;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAA6B;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,IAAI,sBAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAA2B,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,sBAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAiB;QAC/B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,OAAO,IAAI,sBAAK,CAAC,KAAK,CAAC,QAAQ,CAC7B,CAAC,CAAC,cAAc,EAAE,EAClB,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,EACnB,CAAC,CAAC,UAAU,EAAE,EACd,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,aAAa,EAAE,EACjB,CAAC,CAAC,aAAa,EAAE,EACjB,CAAC,CAAC,kBAAkB,EAAE,GAAG,OAAS,EAClC,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,MAAgB,EAAE,UAAmC;QAC/D,OAAO,IAAI,sBAAK,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC;CACF;AA1CD,gDA0CC"}
1
+ {"version":3,"file":"neo4j-record-factory.js","sourceRoot":"","sources":["../../../src/testing/neo4j-record-factory.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,13 @@ import type { PropertyDefinition } from '../schema/types';
14
14
  * Works on every Neo4j 5.x (unlike `OPTIONAL CALL`, 5.24+) and still lets
15
15
  * the statement return extra columns (unlike `COLLECT { }`).
16
16
  */
17
- export declare function buildCypherFieldCall(statement: string, nodeVar: string, columnName: string): string;
17
+ export declare function buildCypherFieldCall(statement: string, nodeVar: string, columnName: string,
18
+ /**
19
+ * v2.4.8 — run the statement only for nodes carrying this label (an
20
+ * implementer's field selected through an inline fragment on an
21
+ * abstract type). Other rows still keep their row, with `null`.
22
+ */
23
+ guardLabel?: string): string;
18
24
  /**
19
25
  * Builds an inline `head(COLLECT { ... })` subquery expression for a
20
26
  * `@cypher` scalar field. Used inside contexts where a CALL prelude cannot
@@ -30,7 +36,24 @@ export declare function buildCypherFieldCall(statement: string, nodeVar: string,
30
36
  * `head(...)` extracts the first (and typically only) returned row; this
31
37
  * matches the top-level CALL+WITH path which projects a single value.
32
38
  */
33
- export declare function buildInlineCypherFieldExpr(statement: string, nodeVar: string): string;
39
+ export declare function buildInlineCypherFieldExpr(statement: string, nodeVar: string,
40
+ /**
41
+ * `Type.field`, for the error raised when the statement aggregates.
42
+ * v2.4.8 — optional so ad-hoc callers keep compiling.
43
+ */
44
+ fieldLabel?: string): string;
45
+ /**
46
+ * Refuse an aggregating `@cypher` statement where it would be projected
47
+ * inline (v2.4.8). Neo4j 5 rejects ANY aggregating subquery expression
48
+ * nested inside a projection that also references outer variables —
49
+ * "Aggregation column contains implicit grouping expressions" — and fails
50
+ * the whole query. Verified on 5.26 for `head(COLLECT { ... })`, an inner
51
+ * `CALL { }`, `CALL (this) { }`, `WITH count(x) AS c` and a COLLECT in
52
+ * place of the pattern comprehension: none parse. Pre-2.4.8 the query
53
+ * reached the server and failed with that opaque error; the top-level
54
+ * CALL-prelude projection is unaffected and keeps working.
55
+ */
56
+ export declare function assertInlineableCypherField(fieldLabel: string, statement: string): void;
34
57
  /**
35
58
  * Resolver for `@cypher` scalar fields referenced inside a single Cypher
36
59
  * "scope" — that is, the contiguous sequence of `WITH`-bound vars at one
@@ -77,7 +100,12 @@ export declare class CypherFieldScope {
77
100
  * The same `fieldName` registered twice returns the same alias and DOES
78
101
  * NOT emit a duplicate prelude.
79
102
  */
80
- register(fieldName: string, propDef: PropertyDefinition): string;
103
+ register(fieldName: string, propDef: PropertyDefinition,
104
+ /**
105
+ * v2.4.8 — project only for nodes with this label (see
106
+ * `buildCypherFieldCall`); keyed and aliased separately per label.
107
+ */
108
+ guardLabel?: string): string;
81
109
  /** Whether any prelude has been registered. */
82
110
  hasAny(): boolean;
83
111
  /** Emit all the prelude lines (`CALL { ... }` + `WITH ...` pairs). */
@@ -1 +1 @@
1
- {"version":3,"file":"cypher-field-projection.d.ts","sourceRoot":"","sources":["../../../src/utils/cypher-field-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,MAAM,CAaR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,MAAM,CAER;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,gBAAgB;IAWzB,sEAAsE;IACtE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc;IAfjC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;;IAG7C,sEAAsE;IACrD,OAAO,EAAE,MAAM;IAChC,2DAA2D;IAC1C,YAAY,GAAE,aAAa,CAAC,MAAM,CAAM;IACzD,4DAA4D;IAC3C,cAAc,GAAE,MAAe;IAKlD;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,MAAM;IAiChE,+CAA+C;IAC/C,MAAM,IAAI,OAAO;IAIjB,sEAAsE;IACtE,IAAI,IAAI,MAAM,EAAE;IAIhB,wDAAwD;IACxD,OAAO,IAAI,MAAM,EAAE;IAInB,0CAA0C;IAC1C,UAAU,IAAI,MAAM;CAGrB"}
1
+ {"version":3,"file":"cypher-field-projection.d.ts","sourceRoot":"","sources":["../../../src/utils/cypher-field-projection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM;AAClB;;;;GAIG;AACH,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAgBR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM;AACf;;;GAGG;AACH,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAIR;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,IAAI,CAQN;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,gBAAgB;IAWzB,sEAAsE;IACtE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc;IAfjC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;;IAG7C,sEAAsE;IACrD,OAAO,EAAE,MAAM;IAChC,2DAA2D;IAC1C,YAAY,GAAE,aAAa,CAAC,MAAM,CAAM;IACzD,4DAA4D;IAC3C,cAAc,GAAE,MAAe;IAKlD;;;;;;OAMG;IACH,QAAQ,CACN,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kBAAkB;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM;IA6CT,+CAA+C;IAC/C,MAAM,IAAI,OAAO;IAIjB,sEAAsE;IACtE,IAAI,IAAI,MAAM,EAAE;IAIhB,wDAAwD;IACxD,OAAO,IAAI,MAAM,EAAE;IAInB,0CAA0C;IAC1C,UAAU,IAAI,MAAM;CAGrB"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CypherFieldScope = void 0;
4
4
  exports.buildCypherFieldCall = buildCypherFieldCall;
5
5
  exports.buildInlineCypherFieldExpr = buildInlineCypherFieldExpr;
6
+ exports.assertInlineableCypherField = assertInlineableCypherField;
7
+ const errors_1 = require("../errors");
6
8
  const validation_1 = require("./validation");
7
9
  /**
8
10
  * Builds the `CALL { ... }` subquery that projects a `@cypher` field (used
@@ -19,11 +21,20 @@ const validation_1 = require("./validation");
19
21
  * Works on every Neo4j 5.x (unlike `OPTIONAL CALL`, 5.24+) and still lets
20
22
  * the statement return extra columns (unlike `COLLECT { }`).
21
23
  */
22
- function buildCypherFieldCall(statement, nodeVar, columnName) {
24
+ function buildCypherFieldCall(statement, nodeVar, columnName,
25
+ /**
26
+ * v2.4.8 — run the statement only for nodes carrying this label (an
27
+ * implementer's field selected through an inline fragment on an
28
+ * abstract type). Other rows still keep their row, with `null`.
29
+ */
30
+ guardLabel) {
23
31
  const col = (0, validation_1.escapeIdentifier)(columnName);
24
32
  return [
25
33
  `CALL {`,
26
34
  ` WITH ${nodeVar}`,
35
+ ...(guardLabel !== undefined
36
+ ? [` WITH ${nodeVar} WHERE ${nodeVar}:${(0, validation_1.escapeIdentifier)(guardLabel)}`]
37
+ : []),
27
38
  ` CALL {`,
28
39
  ` WITH ${nodeVar}`,
29
40
  ` WITH ${nodeVar} AS this`,
@@ -48,9 +59,40 @@ function buildCypherFieldCall(statement, nodeVar, columnName) {
48
59
  * `head(...)` extracts the first (and typically only) returned row; this
49
60
  * matches the top-level CALL+WITH path which projects a single value.
50
61
  */
51
- function buildInlineCypherFieldExpr(statement, nodeVar) {
62
+ function buildInlineCypherFieldExpr(statement, nodeVar,
63
+ /**
64
+ * `Type.field`, for the error raised when the statement aggregates.
65
+ * v2.4.8 — optional so ad-hoc callers keep compiling.
66
+ */
67
+ fieldLabel) {
68
+ if (fieldLabel !== undefined)
69
+ assertInlineableCypherField(fieldLabel, statement);
52
70
  return `head(COLLECT { WITH ${nodeVar} AS this\n ${statement}\n})`;
53
71
  }
72
+ /**
73
+ * Cypher's aggregating functions, as a call (`count(`, not the `COUNT {`
74
+ * subquery expression, which does not aggregate the enclosing query).
75
+ */
76
+ const AGGREGATING_CALL = /\b(?:avg|collect|count|max|min|percentileCont|percentileDisc|stDev|stDevP|sum)\s*\(/i;
77
+ /**
78
+ * Refuse an aggregating `@cypher` statement where it would be projected
79
+ * inline (v2.4.8). Neo4j 5 rejects ANY aggregating subquery expression
80
+ * nested inside a projection that also references outer variables —
81
+ * "Aggregation column contains implicit grouping expressions" — and fails
82
+ * the whole query. Verified on 5.26 for `head(COLLECT { ... })`, an inner
83
+ * `CALL { }`, `CALL (this) { }`, `WITH count(x) AS c` and a COLLECT in
84
+ * place of the pattern comprehension: none parse. Pre-2.4.8 the query
85
+ * reached the server and failed with that opaque error; the top-level
86
+ * CALL-prelude projection is unaffected and keeps working.
87
+ */
88
+ function assertInlineableCypherField(fieldLabel, statement) {
89
+ if (!AGGREGATING_CALL.test(statement))
90
+ return;
91
+ throw new errors_1.OGMError(`@cypher field "${fieldLabel}" aggregates in its statement, so it can only be selected at the top level of a query. ` +
92
+ `Neo4j 5 rejects aggregating subqueries nested inside a projection ("Aggregation column contains implicit grouping expressions"), ` +
93
+ `which is how a @cypher field selected through a relationship is projected. Select it on its own model instead, ` +
94
+ `or rewrite the statement without an aggregating function.`);
95
+ }
54
96
  /**
55
97
  * Resolver for `@cypher` scalar fields referenced inside a single Cypher
56
98
  * "scope" — that is, the contiguous sequence of `WITH`-bound vars at one
@@ -96,23 +138,33 @@ class CypherFieldScope {
96
138
  * The same `fieldName` registered twice returns the same alias and DOES
97
139
  * NOT emit a duplicate prelude.
98
140
  */
99
- register(fieldName, propDef) {
141
+ register(fieldName, propDef,
142
+ /**
143
+ * v2.4.8 — project only for nodes with this label (see
144
+ * `buildCypherFieldCall`); keyed and aliased separately per label.
145
+ */
146
+ guardLabel) {
100
147
  (0, validation_1.assertSafeIdentifier)(fieldName, '@cypher field');
101
- const cached = this.aliases.get(fieldName);
148
+ if (guardLabel !== undefined)
149
+ (0, validation_1.assertSafeIdentifier)(guardLabel, '@cypher guard label');
150
+ const key = guardLabel === undefined ? fieldName : `${guardLabel}:${fieldName}`;
151
+ const cached = this.aliases.get(key);
102
152
  if (cached)
103
153
  return cached;
104
154
  if (!propDef.cypherStatement)
105
155
  throw new Error(`Internal: register() called for "${fieldName}" without cypherStatement.`);
106
156
  const columnName = propDef.cypherColumnName ?? fieldName;
107
157
  (0, validation_1.assertSafeIdentifier)(columnName, '@cypher columnName');
108
- const alias = `${this.aliasNamespace}_${this.nodeVar}_${fieldName}`;
158
+ const alias = guardLabel === undefined
159
+ ? `${this.aliasNamespace}_${this.nodeVar}_${fieldName}`
160
+ : `${this.aliasNamespace}_${this.nodeVar}_${guardLabel}_${fieldName}`;
109
161
  (0, validation_1.assertSafeIdentifier)(alias, '@cypher alias');
110
162
  const carry = [...this.preserveVars, ...this.carriedAliases];
111
163
  const carryStr = carry.length ? `, ${carry.join(', ')}` : '';
112
- this.callLines.push(buildCypherFieldCall(propDef.cypherStatement, this.nodeVar, columnName));
164
+ this.callLines.push(buildCypherFieldCall(propDef.cypherStatement, this.nodeVar, columnName, guardLabel));
113
165
  this.callLines.push(`WITH ${this.nodeVar}${carryStr}, ${(0, validation_1.escapeIdentifier)(columnName)} AS ${alias}`);
114
166
  this.carriedAliases.push(alias);
115
- this.aliases.set(fieldName, alias);
167
+ this.aliases.set(key, alias);
116
168
  return alias;
117
169
  }
118
170
  /** Whether any prelude has been registered. */
@@ -1 +1 @@
1
- {"version":3,"file":"cypher-field-projection.js","sourceRoot":"","sources":["../../../src/utils/cypher-field-projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cypher-field-projection.js","sourceRoot":"","sources":["../../../src/utils/cypher-field-projection.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,24 @@ export declare function wrapListItemExpr(expr: string, values: unknown[], propDe
50
50
  * wrap their list param element-wise.
51
51
  */
52
52
  export declare function wrapWhereParam(paramRef: string, value: unknown, propDef: PropertyDefinition | undefined, suffix: string): string;
53
+ /**
54
+ * Coerce a WHERE value to the representation the stored property has
55
+ * (v2.4.8), for comparison-shaped operators (`_IN` / `_NOT_IN`
56
+ * element-wise):
57
+ *
58
+ * - `Int` / `BigInt`: integer strings (the generated BigInt input type)
59
+ * and `bigint`s become a Neo4j Integer via the write coercion. A String
60
+ * or a raw bigint never equals the stored Long, so pre-2.4.8 these
61
+ * filters silently matched nothing. JS numbers stay as they are: Neo4j
62
+ * compares a Float and a Long numerically, and unit-level params keep
63
+ * their shape.
64
+ * - `DateTime`: a JS `Date` becomes its ISO string, which `wrapWhereParam`
65
+ * then wraps in `datetime()`. Pre-2.4.8 a `Date` was bound raw and never
66
+ * matched.
67
+ *
68
+ * Every other value passes through unchanged.
69
+ */
70
+ export declare function coerceWhereValue(value: unknown, propDef: PropertyDefinition | undefined, suffix: string): unknown;
53
71
  /**
54
72
  * Materialize a parsed `@default` into a driver-ready bound value. The
55
73
  * 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;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
+ {"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,CA8BR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,MAAM,EAAE,MAAM,GACb,OAAO,CAWT;AAqBD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAQ7E"}
@@ -4,6 +4,7 @@ exports.coerceWriteValue = coerceWriteValue;
4
4
  exports.wrapWriteExpr = wrapWriteExpr;
5
5
  exports.wrapListItemExpr = wrapListItemExpr;
6
6
  exports.wrapWhereParam = wrapWhereParam;
7
+ exports.coerceWhereValue = coerceWhereValue;
7
8
  exports.resolveDefaultWriteValue = resolveDefaultWriteValue;
8
9
  const neo4j_driver_1 = require("neo4j-driver");
9
10
  const errors_1 = require("../errors");
@@ -245,6 +246,28 @@ function wrapWhereParam(paramRef, value, propDef, suffix) {
245
246
  return paramRef;
246
247
  if (!COMPARABLE_SUFFIXES.has(suffix))
247
248
  return paramRef;
249
+ // v2.4.8 — a LIST field is compared as a whole list (equality / `_NOT`)
250
+ // or against a list of lists (`_IN` / `_NOT_IN`). Its stored elements
251
+ // are native temporals, so each element of the param must be wrapped;
252
+ // pre-2.4.8 only `_IN` on a scalar field was, so `seenAt: ['2024-…']`
253
+ // compared datetimes with strings and never matched.
254
+ if (propDef.isArray) {
255
+ if (!Array.isArray(value))
256
+ return paramRef;
257
+ if (suffix === '_IN' || suffix === '_NOT_IN') {
258
+ const flattened = value
259
+ .filter((v) => Array.isArray(v))
260
+ .flat();
261
+ if (!decideElementsWrap(flattened, ctor, propDef))
262
+ return paramRef;
263
+ return `[wc_l IN ${paramRef} | [wc_t IN wc_l | ${ctor.fn}(wc_t)]]`;
264
+ }
265
+ if (suffix !== '' && suffix !== '_NOT')
266
+ return paramRef;
267
+ if (!decideElementsWrap(value, ctor, propDef))
268
+ return paramRef;
269
+ return `[wc_t IN ${paramRef} | ${ctor.fn}(wc_t)]`;
270
+ }
248
271
  if (suffix === '_IN' || suffix === '_NOT_IN') {
249
272
  if (!Array.isArray(value))
250
273
  return paramRef;
@@ -256,6 +279,49 @@ function wrapWhereParam(paramRef, value, propDef, suffix) {
256
279
  return paramRef;
257
280
  return `${ctor.fn}(${paramRef})`;
258
281
  }
282
+ /**
283
+ * Coerce a WHERE value to the representation the stored property has
284
+ * (v2.4.8), for comparison-shaped operators (`_IN` / `_NOT_IN`
285
+ * element-wise):
286
+ *
287
+ * - `Int` / `BigInt`: integer strings (the generated BigInt input type)
288
+ * and `bigint`s become a Neo4j Integer via the write coercion. A String
289
+ * or a raw bigint never equals the stored Long, so pre-2.4.8 these
290
+ * filters silently matched nothing. JS numbers stay as they are: Neo4j
291
+ * compares a Float and a Long numerically, and unit-level params keep
292
+ * their shape.
293
+ * - `DateTime`: a JS `Date` becomes its ISO string, which `wrapWhereParam`
294
+ * then wraps in `datetime()`. Pre-2.4.8 a `Date` was bound raw and never
295
+ * matched.
296
+ *
297
+ * Every other value passes through unchanged.
298
+ */
299
+ function coerceWhereValue(value, propDef, suffix) {
300
+ if (propDef === undefined || value === null || value === undefined)
301
+ return value;
302
+ if (!COMPARABLE_SUFFIXES.has(suffix))
303
+ return value;
304
+ const elementWise = suffix === '_IN' || suffix === '_NOT_IN' || propDef.isArray;
305
+ if (elementWise)
306
+ return Array.isArray(value)
307
+ ? value.map((element) => coerceWhereElement(element, propDef))
308
+ : value;
309
+ return coerceWhereElement(value, propDef);
310
+ }
311
+ function coerceWhereElement(value, propDef) {
312
+ if (value === null || value === undefined)
313
+ return value;
314
+ if (INTEGER_SCALAR_TYPES.has(propDef.type))
315
+ return typeof value === 'string' || typeof value === 'bigint'
316
+ ? coerceIntegerElement(value, propDef)
317
+ : value;
318
+ if (propDef.type === 'DateTime' && value instanceof Date) {
319
+ if (Number.isNaN(value.getTime()))
320
+ throw new errors_1.OGMError(`Invalid Date given for DateTime field "${propDef.name}" in a where filter.`);
321
+ return value.toISOString();
322
+ }
323
+ return value;
324
+ }
259
325
  /**
260
326
  * Materialize a parsed `@default` into a driver-ready bound value. The
261
327
  * parser stores every default as a string (`'true'`, `'5'`, `'WELCOME'`);
@@ -268,6 +334,13 @@ function resolveDefaultWriteValue(propDef) {
268
334
  const raw = propDef.defaultValue;
269
335
  if (raw === undefined)
270
336
  return undefined;
337
+ // List defaults (parsed element-wise since after v2.4.7) convert each
338
+ // element the same way.
339
+ if (Array.isArray(raw))
340
+ return raw.map((el) => convertDefaultScalar(el, propDef));
341
+ return convertDefaultScalar(raw, propDef);
342
+ }
343
+ function convertDefaultScalar(raw, propDef) {
271
344
  switch (propDef.type) {
272
345
  case 'Boolean':
273
346
  return raw === 'true';
@@ -275,7 +348,7 @@ function resolveDefaultWriteValue(propDef) {
275
348
  return Number(raw);
276
349
  case 'Int':
277
350
  case 'BigInt':
278
- return coerceWriteValue(raw, propDef);
351
+ return coerceIntegerElement(raw, propDef);
279
352
  default:
280
353
  return raw;
281
354
  }
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"db-push.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/db-push.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAkJtC,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAgE1E"}
1
+ {"version":3,"file":"db-push.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/db-push.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAyNtC,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAkF1E"}