grafeo-ogm 1.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 (333) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1121 -0
  3. package/dist/cjs/compilers/fulltext.compiler.d.ts +67 -0
  4. package/dist/cjs/compilers/fulltext.compiler.d.ts.map +1 -0
  5. package/dist/cjs/compilers/fulltext.compiler.js +254 -0
  6. package/dist/cjs/compilers/fulltext.compiler.js.map +1 -0
  7. package/dist/cjs/compilers/mutation.compiler.d.ts +126 -0
  8. package/dist/cjs/compilers/mutation.compiler.d.ts.map +1 -0
  9. package/dist/cjs/compilers/mutation.compiler.js +1239 -0
  10. package/dist/cjs/compilers/mutation.compiler.js.map +1 -0
  11. package/dist/cjs/compilers/select-normalizer.d.ts +50 -0
  12. package/dist/cjs/compilers/select-normalizer.d.ts.map +1 -0
  13. package/dist/cjs/compilers/select-normalizer.js +225 -0
  14. package/dist/cjs/compilers/select-normalizer.js.map +1 -0
  15. package/dist/cjs/compilers/selection.compiler.d.ts +113 -0
  16. package/dist/cjs/compilers/selection.compiler.d.ts.map +1 -0
  17. package/dist/cjs/compilers/selection.compiler.js +410 -0
  18. package/dist/cjs/compilers/selection.compiler.js.map +1 -0
  19. package/dist/cjs/compilers/where.compiler.d.ts +39 -0
  20. package/dist/cjs/compilers/where.compiler.d.ts.map +1 -0
  21. package/dist/cjs/compilers/where.compiler.js +456 -0
  22. package/dist/cjs/compilers/where.compiler.js.map +1 -0
  23. package/dist/cjs/errors.d.ts +28 -0
  24. package/dist/cjs/errors.d.ts.map +1 -0
  25. package/dist/cjs/errors.js +42 -0
  26. package/dist/cjs/errors.js.map +1 -0
  27. package/dist/cjs/execution/executor.d.ts +38 -0
  28. package/dist/cjs/execution/executor.d.ts.map +1 -0
  29. package/dist/cjs/execution/executor.js +50 -0
  30. package/dist/cjs/execution/executor.js.map +1 -0
  31. package/dist/cjs/execution/result-mapper.d.ts +26 -0
  32. package/dist/cjs/execution/result-mapper.d.ts.map +1 -0
  33. package/dist/cjs/execution/result-mapper.js +92 -0
  34. package/dist/cjs/execution/result-mapper.js.map +1 -0
  35. package/dist/cjs/generator/generate-types.d.ts +55 -0
  36. package/dist/cjs/generator/generate-types.d.ts.map +1 -0
  37. package/dist/cjs/generator/generate-types.js +181 -0
  38. package/dist/cjs/generator/generate-types.js.map +1 -0
  39. package/dist/cjs/generator/index.d.ts +3 -0
  40. package/dist/cjs/generator/index.d.ts.map +1 -0
  41. package/dist/cjs/generator/index.js +6 -0
  42. package/dist/cjs/generator/index.js.map +1 -0
  43. package/dist/cjs/generator/type-emitters/aggregation-emitter.d.ts +7 -0
  44. package/dist/cjs/generator/type-emitters/aggregation-emitter.d.ts.map +1 -0
  45. package/dist/cjs/generator/type-emitters/aggregation-emitter.js +196 -0
  46. package/dist/cjs/generator/type-emitters/aggregation-emitter.js.map +1 -0
  47. package/dist/cjs/generator/type-emitters/connection-emitter.d.ts +22 -0
  48. package/dist/cjs/generator/type-emitters/connection-emitter.d.ts.map +1 -0
  49. package/dist/cjs/generator/type-emitters/connection-emitter.js +270 -0
  50. package/dist/cjs/generator/type-emitters/connection-emitter.js.map +1 -0
  51. package/dist/cjs/generator/type-emitters/enum-emitter.d.ts +7 -0
  52. package/dist/cjs/generator/type-emitters/enum-emitter.d.ts.map +1 -0
  53. package/dist/cjs/generator/type-emitters/enum-emitter.js +45 -0
  54. package/dist/cjs/generator/type-emitters/enum-emitter.js.map +1 -0
  55. package/dist/cjs/generator/type-emitters/fulltext-emitter.d.ts +15 -0
  56. package/dist/cjs/generator/type-emitters/fulltext-emitter.d.ts.map +1 -0
  57. package/dist/cjs/generator/type-emitters/fulltext-emitter.js +80 -0
  58. package/dist/cjs/generator/type-emitters/fulltext-emitter.js.map +1 -0
  59. package/dist/cjs/generator/type-emitters/helpers.d.ts +32 -0
  60. package/dist/cjs/generator/type-emitters/helpers.d.ts.map +1 -0
  61. package/dist/cjs/generator/type-emitters/helpers.js +69 -0
  62. package/dist/cjs/generator/type-emitters/helpers.js.map +1 -0
  63. package/dist/cjs/generator/type-emitters/input-emitter.d.ts +6 -0
  64. package/dist/cjs/generator/type-emitters/input-emitter.d.ts.map +1 -0
  65. package/dist/cjs/generator/type-emitters/input-emitter.js +560 -0
  66. package/dist/cjs/generator/type-emitters/input-emitter.js.map +1 -0
  67. package/dist/cjs/generator/type-emitters/interface-emitter.d.ts +10 -0
  68. package/dist/cjs/generator/type-emitters/interface-emitter.d.ts.map +1 -0
  69. package/dist/cjs/generator/type-emitters/interface-emitter.js +88 -0
  70. package/dist/cjs/generator/type-emitters/interface-emitter.js.map +1 -0
  71. package/dist/cjs/generator/type-emitters/model-map-emitter.d.ts +32 -0
  72. package/dist/cjs/generator/type-emitters/model-map-emitter.d.ts.map +1 -0
  73. package/dist/cjs/generator/type-emitters/model-map-emitter.js +154 -0
  74. package/dist/cjs/generator/type-emitters/model-map-emitter.js.map +1 -0
  75. package/dist/cjs/generator/type-emitters/mutation-response-emitter.d.ts +9 -0
  76. package/dist/cjs/generator/type-emitters/mutation-response-emitter.d.ts.map +1 -0
  77. package/dist/cjs/generator/type-emitters/mutation-response-emitter.js +69 -0
  78. package/dist/cjs/generator/type-emitters/mutation-response-emitter.js.map +1 -0
  79. package/dist/cjs/generator/type-emitters/node-type-emitter.d.ts +13 -0
  80. package/dist/cjs/generator/type-emitters/node-type-emitter.d.ts.map +1 -0
  81. package/dist/cjs/generator/type-emitters/node-type-emitter.js +123 -0
  82. package/dist/cjs/generator/type-emitters/node-type-emitter.js.map +1 -0
  83. package/dist/cjs/generator/type-emitters/select-fields-emitter.d.ts +8 -0
  84. package/dist/cjs/generator/type-emitters/select-fields-emitter.d.ts.map +1 -0
  85. package/dist/cjs/generator/type-emitters/select-fields-emitter.js +169 -0
  86. package/dist/cjs/generator/type-emitters/select-fields-emitter.js.map +1 -0
  87. package/dist/cjs/generator/type-emitters/select-result-emitter.d.ts +9 -0
  88. package/dist/cjs/generator/type-emitters/select-result-emitter.d.ts.map +1 -0
  89. package/dist/cjs/generator/type-emitters/select-result-emitter.js +61 -0
  90. package/dist/cjs/generator/type-emitters/select-result-emitter.js.map +1 -0
  91. package/dist/cjs/generator/type-emitters/sort-options-emitter.d.ts +8 -0
  92. package/dist/cjs/generator/type-emitters/sort-options-emitter.d.ts.map +1 -0
  93. package/dist/cjs/generator/type-emitters/sort-options-emitter.js +47 -0
  94. package/dist/cjs/generator/type-emitters/sort-options-emitter.js.map +1 -0
  95. package/dist/cjs/generator/type-emitters/utility-types.d.ts +10 -0
  96. package/dist/cjs/generator/type-emitters/utility-types.d.ts.map +1 -0
  97. package/dist/cjs/generator/type-emitters/utility-types.js +93 -0
  98. package/dist/cjs/generator/type-emitters/utility-types.js.map +1 -0
  99. package/dist/cjs/generator/type-emitters/where-emitter.d.ts +15 -0
  100. package/dist/cjs/generator/type-emitters/where-emitter.d.ts.map +1 -0
  101. package/dist/cjs/generator/type-emitters/where-emitter.js +189 -0
  102. package/dist/cjs/generator/type-emitters/where-emitter.js.map +1 -0
  103. package/dist/cjs/index.d.ts +30 -0
  104. package/dist/cjs/index.d.ts.map +1 -0
  105. package/dist/cjs/index.js +59 -0
  106. package/dist/cjs/index.js.map +1 -0
  107. package/dist/cjs/interface-model.d.ts +158 -0
  108. package/dist/cjs/interface-model.d.ts.map +1 -0
  109. package/dist/cjs/interface-model.js +214 -0
  110. package/dist/cjs/interface-model.js.map +1 -0
  111. package/dist/cjs/model.d.ts +354 -0
  112. package/dist/cjs/model.d.ts.map +1 -0
  113. package/dist/cjs/model.js +513 -0
  114. package/dist/cjs/model.js.map +1 -0
  115. package/dist/cjs/ogm.d.ts +97 -0
  116. package/dist/cjs/ogm.d.ts.map +1 -0
  117. package/dist/cjs/ogm.js +224 -0
  118. package/dist/cjs/ogm.js.map +1 -0
  119. package/dist/cjs/package.json +1 -0
  120. package/dist/cjs/schema/parser.d.ts +12 -0
  121. package/dist/cjs/schema/parser.d.ts.map +1 -0
  122. package/dist/cjs/schema/parser.js +331 -0
  123. package/dist/cjs/schema/parser.js.map +1 -0
  124. package/dist/cjs/schema/types.d.ts +66 -0
  125. package/dist/cjs/schema/types.d.ts.map +1 -0
  126. package/dist/cjs/schema/types.js +3 -0
  127. package/dist/cjs/schema/types.js.map +1 -0
  128. package/dist/cjs/schema/utils.d.ts +23 -0
  129. package/dist/cjs/schema/utils.d.ts.map +1 -0
  130. package/dist/cjs/schema/utils.js +92 -0
  131. package/dist/cjs/schema/utils.js.map +1 -0
  132. package/dist/cjs/subgraph/index.d.ts +3 -0
  133. package/dist/cjs/subgraph/index.d.ts.map +1 -0
  134. package/dist/cjs/subgraph/index.js +7 -0
  135. package/dist/cjs/subgraph/index.js.map +1 -0
  136. package/dist/cjs/subgraph/subgraph-operations.d.ts +34 -0
  137. package/dist/cjs/subgraph/subgraph-operations.d.ts.map +1 -0
  138. package/dist/cjs/subgraph/subgraph-operations.js +225 -0
  139. package/dist/cjs/subgraph/subgraph-operations.js.map +1 -0
  140. package/dist/cjs/subgraph/types.d.ts +23 -0
  141. package/dist/cjs/subgraph/types.d.ts.map +1 -0
  142. package/dist/cjs/subgraph/types.js +3 -0
  143. package/dist/cjs/subgraph/types.js.map +1 -0
  144. package/dist/cjs/testing/cypher-assert.d.ts +35 -0
  145. package/dist/cjs/testing/cypher-assert.d.ts.map +1 -0
  146. package/dist/cjs/testing/cypher-assert.js +72 -0
  147. package/dist/cjs/testing/cypher-assert.js.map +1 -0
  148. package/dist/cjs/testing/index.d.ts +4 -0
  149. package/dist/cjs/testing/index.d.ts.map +1 -0
  150. package/dist/cjs/testing/index.js +10 -0
  151. package/dist/cjs/testing/index.js.map +1 -0
  152. package/dist/cjs/testing/neo4j-record-factory.d.ts +25 -0
  153. package/dist/cjs/testing/neo4j-record-factory.d.ts.map +1 -0
  154. package/dist/cjs/testing/neo4j-record-factory.js +43 -0
  155. package/dist/cjs/testing/neo4j-record-factory.js.map +1 -0
  156. package/dist/cjs/testing/selection-set-factory.d.ts +24 -0
  157. package/dist/cjs/testing/selection-set-factory.d.ts.map +1 -0
  158. package/dist/cjs/testing/selection-set-factory.js +44 -0
  159. package/dist/cjs/testing/selection-set-factory.js.map +1 -0
  160. package/dist/cjs/utils/lucene.d.ts +9 -0
  161. package/dist/cjs/utils/lucene.d.ts.map +1 -0
  162. package/dist/cjs/utils/lucene.js +25 -0
  163. package/dist/cjs/utils/lucene.js.map +1 -0
  164. package/dist/cjs/utils/validation.d.ts +25 -0
  165. package/dist/cjs/utils/validation.d.ts.map +1 -0
  166. package/dist/cjs/utils/validation.js +53 -0
  167. package/dist/cjs/utils/validation.js.map +1 -0
  168. package/dist/esm/compilers/fulltext.compiler.d.ts +67 -0
  169. package/dist/esm/compilers/fulltext.compiler.d.ts.map +1 -0
  170. package/dist/esm/compilers/fulltext.compiler.js +250 -0
  171. package/dist/esm/compilers/fulltext.compiler.js.map +1 -0
  172. package/dist/esm/compilers/mutation.compiler.d.ts +126 -0
  173. package/dist/esm/compilers/mutation.compiler.d.ts.map +1 -0
  174. package/dist/esm/compilers/mutation.compiler.js +1235 -0
  175. package/dist/esm/compilers/mutation.compiler.js.map +1 -0
  176. package/dist/esm/compilers/select-normalizer.d.ts +50 -0
  177. package/dist/esm/compilers/select-normalizer.d.ts.map +1 -0
  178. package/dist/esm/compilers/select-normalizer.js +221 -0
  179. package/dist/esm/compilers/select-normalizer.js.map +1 -0
  180. package/dist/esm/compilers/selection.compiler.d.ts +113 -0
  181. package/dist/esm/compilers/selection.compiler.d.ts.map +1 -0
  182. package/dist/esm/compilers/selection.compiler.js +406 -0
  183. package/dist/esm/compilers/selection.compiler.js.map +1 -0
  184. package/dist/esm/compilers/where.compiler.d.ts +39 -0
  185. package/dist/esm/compilers/where.compiler.d.ts.map +1 -0
  186. package/dist/esm/compilers/where.compiler.js +452 -0
  187. package/dist/esm/compilers/where.compiler.js.map +1 -0
  188. package/dist/esm/errors.d.ts +28 -0
  189. package/dist/esm/errors.d.ts.map +1 -0
  190. package/dist/esm/errors.js +36 -0
  191. package/dist/esm/errors.js.map +1 -0
  192. package/dist/esm/execution/executor.d.ts +38 -0
  193. package/dist/esm/execution/executor.d.ts.map +1 -0
  194. package/dist/esm/execution/executor.js +46 -0
  195. package/dist/esm/execution/executor.js.map +1 -0
  196. package/dist/esm/execution/result-mapper.d.ts +26 -0
  197. package/dist/esm/execution/result-mapper.d.ts.map +1 -0
  198. package/dist/esm/execution/result-mapper.js +85 -0
  199. package/dist/esm/execution/result-mapper.js.map +1 -0
  200. package/dist/esm/generator/generate-types.d.ts +55 -0
  201. package/dist/esm/generator/generate-types.d.ts.map +1 -0
  202. package/dist/esm/generator/generate-types.js +141 -0
  203. package/dist/esm/generator/generate-types.js.map +1 -0
  204. package/dist/esm/generator/index.d.ts +3 -0
  205. package/dist/esm/generator/index.d.ts.map +1 -0
  206. package/dist/esm/generator/index.js +2 -0
  207. package/dist/esm/generator/index.js.map +1 -0
  208. package/dist/esm/generator/type-emitters/aggregation-emitter.d.ts +7 -0
  209. package/dist/esm/generator/type-emitters/aggregation-emitter.d.ts.map +1 -0
  210. package/dist/esm/generator/type-emitters/aggregation-emitter.js +193 -0
  211. package/dist/esm/generator/type-emitters/aggregation-emitter.js.map +1 -0
  212. package/dist/esm/generator/type-emitters/connection-emitter.d.ts +22 -0
  213. package/dist/esm/generator/type-emitters/connection-emitter.d.ts.map +1 -0
  214. package/dist/esm/generator/type-emitters/connection-emitter.js +266 -0
  215. package/dist/esm/generator/type-emitters/connection-emitter.js.map +1 -0
  216. package/dist/esm/generator/type-emitters/enum-emitter.d.ts +7 -0
  217. package/dist/esm/generator/type-emitters/enum-emitter.d.ts.map +1 -0
  218. package/dist/esm/generator/type-emitters/enum-emitter.js +42 -0
  219. package/dist/esm/generator/type-emitters/enum-emitter.js.map +1 -0
  220. package/dist/esm/generator/type-emitters/fulltext-emitter.d.ts +15 -0
  221. package/dist/esm/generator/type-emitters/fulltext-emitter.d.ts.map +1 -0
  222. package/dist/esm/generator/type-emitters/fulltext-emitter.js +77 -0
  223. package/dist/esm/generator/type-emitters/fulltext-emitter.js.map +1 -0
  224. package/dist/esm/generator/type-emitters/helpers.d.ts +32 -0
  225. package/dist/esm/generator/type-emitters/helpers.d.ts.map +1 -0
  226. package/dist/esm/generator/type-emitters/helpers.js +63 -0
  227. package/dist/esm/generator/type-emitters/helpers.js.map +1 -0
  228. package/dist/esm/generator/type-emitters/input-emitter.d.ts +6 -0
  229. package/dist/esm/generator/type-emitters/input-emitter.d.ts.map +1 -0
  230. package/dist/esm/generator/type-emitters/input-emitter.js +557 -0
  231. package/dist/esm/generator/type-emitters/input-emitter.js.map +1 -0
  232. package/dist/esm/generator/type-emitters/interface-emitter.d.ts +10 -0
  233. package/dist/esm/generator/type-emitters/interface-emitter.d.ts.map +1 -0
  234. package/dist/esm/generator/type-emitters/interface-emitter.js +85 -0
  235. package/dist/esm/generator/type-emitters/interface-emitter.js.map +1 -0
  236. package/dist/esm/generator/type-emitters/model-map-emitter.d.ts +32 -0
  237. package/dist/esm/generator/type-emitters/model-map-emitter.d.ts.map +1 -0
  238. package/dist/esm/generator/type-emitters/model-map-emitter.js +149 -0
  239. package/dist/esm/generator/type-emitters/model-map-emitter.js.map +1 -0
  240. package/dist/esm/generator/type-emitters/mutation-response-emitter.d.ts +9 -0
  241. package/dist/esm/generator/type-emitters/mutation-response-emitter.d.ts.map +1 -0
  242. package/dist/esm/generator/type-emitters/mutation-response-emitter.js +66 -0
  243. package/dist/esm/generator/type-emitters/mutation-response-emitter.js.map +1 -0
  244. package/dist/esm/generator/type-emitters/node-type-emitter.d.ts +13 -0
  245. package/dist/esm/generator/type-emitters/node-type-emitter.d.ts.map +1 -0
  246. package/dist/esm/generator/type-emitters/node-type-emitter.js +120 -0
  247. package/dist/esm/generator/type-emitters/node-type-emitter.js.map +1 -0
  248. package/dist/esm/generator/type-emitters/select-fields-emitter.d.ts +8 -0
  249. package/dist/esm/generator/type-emitters/select-fields-emitter.d.ts.map +1 -0
  250. package/dist/esm/generator/type-emitters/select-fields-emitter.js +166 -0
  251. package/dist/esm/generator/type-emitters/select-fields-emitter.js.map +1 -0
  252. package/dist/esm/generator/type-emitters/select-result-emitter.d.ts +9 -0
  253. package/dist/esm/generator/type-emitters/select-result-emitter.d.ts.map +1 -0
  254. package/dist/esm/generator/type-emitters/select-result-emitter.js +58 -0
  255. package/dist/esm/generator/type-emitters/select-result-emitter.js.map +1 -0
  256. package/dist/esm/generator/type-emitters/sort-options-emitter.d.ts +8 -0
  257. package/dist/esm/generator/type-emitters/sort-options-emitter.d.ts.map +1 -0
  258. package/dist/esm/generator/type-emitters/sort-options-emitter.js +44 -0
  259. package/dist/esm/generator/type-emitters/sort-options-emitter.js.map +1 -0
  260. package/dist/esm/generator/type-emitters/utility-types.d.ts +10 -0
  261. package/dist/esm/generator/type-emitters/utility-types.d.ts.map +1 -0
  262. package/dist/esm/generator/type-emitters/utility-types.js +88 -0
  263. package/dist/esm/generator/type-emitters/utility-types.js.map +1 -0
  264. package/dist/esm/generator/type-emitters/where-emitter.d.ts +15 -0
  265. package/dist/esm/generator/type-emitters/where-emitter.d.ts.map +1 -0
  266. package/dist/esm/generator/type-emitters/where-emitter.js +186 -0
  267. package/dist/esm/generator/type-emitters/where-emitter.js.map +1 -0
  268. package/dist/esm/index.d.ts +30 -0
  269. package/dist/esm/index.d.ts.map +1 -0
  270. package/dist/esm/index.js +29 -0
  271. package/dist/esm/index.js.map +1 -0
  272. package/dist/esm/interface-model.d.ts +158 -0
  273. package/dist/esm/interface-model.d.ts.map +1 -0
  274. package/dist/esm/interface-model.js +210 -0
  275. package/dist/esm/interface-model.js.map +1 -0
  276. package/dist/esm/model.d.ts +354 -0
  277. package/dist/esm/model.d.ts.map +1 -0
  278. package/dist/esm/model.js +507 -0
  279. package/dist/esm/model.js.map +1 -0
  280. package/dist/esm/ogm.d.ts +97 -0
  281. package/dist/esm/ogm.d.ts.map +1 -0
  282. package/dist/esm/ogm.js +220 -0
  283. package/dist/esm/ogm.js.map +1 -0
  284. package/dist/esm/package.json +1 -0
  285. package/dist/esm/schema/parser.d.ts +12 -0
  286. package/dist/esm/schema/parser.d.ts.map +1 -0
  287. package/dist/esm/schema/parser.js +324 -0
  288. package/dist/esm/schema/parser.js.map +1 -0
  289. package/dist/esm/schema/types.d.ts +66 -0
  290. package/dist/esm/schema/types.d.ts.map +1 -0
  291. package/dist/esm/schema/types.js +2 -0
  292. package/dist/esm/schema/types.js.map +1 -0
  293. package/dist/esm/schema/utils.d.ts +23 -0
  294. package/dist/esm/schema/utils.d.ts.map +1 -0
  295. package/dist/esm/schema/utils.js +87 -0
  296. package/dist/esm/schema/utils.js.map +1 -0
  297. package/dist/esm/subgraph/index.d.ts +3 -0
  298. package/dist/esm/subgraph/index.d.ts.map +1 -0
  299. package/dist/esm/subgraph/index.js +2 -0
  300. package/dist/esm/subgraph/index.js.map +1 -0
  301. package/dist/esm/subgraph/subgraph-operations.d.ts +34 -0
  302. package/dist/esm/subgraph/subgraph-operations.d.ts.map +1 -0
  303. package/dist/esm/subgraph/subgraph-operations.js +221 -0
  304. package/dist/esm/subgraph/subgraph-operations.js.map +1 -0
  305. package/dist/esm/subgraph/types.d.ts +23 -0
  306. package/dist/esm/subgraph/types.d.ts.map +1 -0
  307. package/dist/esm/subgraph/types.js +2 -0
  308. package/dist/esm/subgraph/types.js.map +1 -0
  309. package/dist/esm/testing/cypher-assert.d.ts +35 -0
  310. package/dist/esm/testing/cypher-assert.d.ts.map +1 -0
  311. package/dist/esm/testing/cypher-assert.js +68 -0
  312. package/dist/esm/testing/cypher-assert.js.map +1 -0
  313. package/dist/esm/testing/index.d.ts +4 -0
  314. package/dist/esm/testing/index.d.ts.map +1 -0
  315. package/dist/esm/testing/index.js +4 -0
  316. package/dist/esm/testing/index.js.map +1 -0
  317. package/dist/esm/testing/neo4j-record-factory.d.ts +25 -0
  318. package/dist/esm/testing/neo4j-record-factory.d.ts.map +1 -0
  319. package/dist/esm/testing/neo4j-record-factory.js +36 -0
  320. package/dist/esm/testing/neo4j-record-factory.js.map +1 -0
  321. package/dist/esm/testing/selection-set-factory.d.ts +24 -0
  322. package/dist/esm/testing/selection-set-factory.d.ts.map +1 -0
  323. package/dist/esm/testing/selection-set-factory.js +40 -0
  324. package/dist/esm/testing/selection-set-factory.js.map +1 -0
  325. package/dist/esm/utils/lucene.d.ts +9 -0
  326. package/dist/esm/utils/lucene.d.ts.map +1 -0
  327. package/dist/esm/utils/lucene.js +22 -0
  328. package/dist/esm/utils/lucene.js.map +1 -0
  329. package/dist/esm/utils/validation.d.ts +25 -0
  330. package/dist/esm/utils/validation.d.ts.map +1 -0
  331. package/dist/esm/utils/validation.js +46 -0
  332. package/dist/esm/utils/validation.js.map +1 -0
  333. package/package.json +88 -0
@@ -0,0 +1,26 @@
1
+ import { Record as Neo4jRecord } from 'neo4j-driver';
2
+ /**
3
+ * Maps Neo4j query results to plain JavaScript objects,
4
+ * converting Neo4j-specific types (Integer, DateTime, Node, etc.)
5
+ * to standard JS values.
6
+ */
7
+ export declare class ResultMapper {
8
+ /**
9
+ * Convert a Neo4j Record to a plain object, handling Neo4j-specific types.
10
+ * If returnKey is provided, extracts that key from the record.
11
+ * Otherwise converts the entire record to an object.
12
+ */
13
+ static mapRecord(record: Neo4jRecord, returnKey?: string): Record<string, unknown>;
14
+ /**
15
+ * Map all records from a query result.
16
+ */
17
+ static mapRecords(records: Neo4jRecord[], returnKey?: string): Record<string, unknown>[];
18
+ /**
19
+ * Convert Neo4j-specific types to plain JS values recursively.
20
+ * Handles: Integer, DateTime, Date, Time, Point, Node, Relationship, arrays, objects.
21
+ * Note: The driver is typically configured with disableLosslessIntegers: true,
22
+ * so Integer conversion is mainly for safety.
23
+ */
24
+ static convertNeo4jTypes(value: unknown, depth?: number): unknown;
25
+ }
26
+ //# sourceMappingURL=result-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-mapper.d.ts","sourceRoot":"","sources":["../../../src/execution/result-mapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AAGrD;;;;GAIG;AACH,qBAAa,YAAY;IACvB;;;;OAIG;IACH,MAAM,CAAC,SAAS,CACd,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAU1B;;OAEG;IACH,MAAM,CAAC,UAAU,CACf,OAAO,EAAE,WAAW,EAAE,EACtB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAI5B;;;;;OAKG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO;CA+DrE"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ResultMapper = void 0;
7
+ const neo4j_driver_1 = __importDefault(require("neo4j-driver"));
8
+ const errors_1 = require("../errors");
9
+ /**
10
+ * Maps Neo4j query results to plain JavaScript objects,
11
+ * converting Neo4j-specific types (Integer, DateTime, Node, etc.)
12
+ * to standard JS values.
13
+ */
14
+ class ResultMapper {
15
+ /**
16
+ * Convert a Neo4j Record to a plain object, handling Neo4j-specific types.
17
+ * If returnKey is provided, extracts that key from the record.
18
+ * Otherwise converts the entire record to an object.
19
+ */
20
+ static mapRecord(record, returnKey) {
21
+ if (returnKey) {
22
+ const value = record.get(returnKey);
23
+ return ResultMapper.convertNeo4jTypes(value);
24
+ }
25
+ const obj = record.toObject();
26
+ return ResultMapper.convertNeo4jTypes(obj);
27
+ }
28
+ /**
29
+ * Map all records from a query result.
30
+ */
31
+ static mapRecords(records, returnKey) {
32
+ return records.map((record) => ResultMapper.mapRecord(record, returnKey));
33
+ }
34
+ /**
35
+ * Convert Neo4j-specific types to plain JS values recursively.
36
+ * Handles: Integer, DateTime, Date, Time, Point, Node, Relationship, arrays, objects.
37
+ * Note: The driver is typically configured with disableLosslessIntegers: true,
38
+ * so Integer conversion is mainly for safety.
39
+ */
40
+ static convertNeo4jTypes(value, depth = 0) {
41
+ // Guard against pathological nesting causing stack overflow
42
+ if (depth > 50)
43
+ throw new errors_1.OGMError('convertNeo4jTypes: maximum recursion depth (50) exceeded. Possible circular or deeply nested result.');
44
+ // Fast path: null/undefined
45
+ if (value === null || value === undefined)
46
+ return value;
47
+ // Fast path: primitives (most common in query results)
48
+ if (typeof value !== 'object')
49
+ return value;
50
+ // Neo4j Integer → number
51
+ if (neo4j_driver_1.default.isInt(value))
52
+ return value.toNumber();
53
+ // Array → map each element (check before other object types)
54
+ if (Array.isArray(value))
55
+ return value.map((item) => ResultMapper.convertNeo4jTypes(item, depth + 1));
56
+ // Neo4j temporal types → ISO string
57
+ if (neo4j_driver_1.default.isDateTime(value) ||
58
+ neo4j_driver_1.default.isDate(value) ||
59
+ neo4j_driver_1.default.isTime(value) ||
60
+ neo4j_driver_1.default.isLocalDateTime(value) ||
61
+ neo4j_driver_1.default.isLocalTime(value) ||
62
+ neo4j_driver_1.default.isDuration(value))
63
+ return value.toString();
64
+ // Neo4j Point → plain object
65
+ if (neo4j_driver_1.default.isPoint(value)) {
66
+ const point = {
67
+ x: value.x,
68
+ y: value.y,
69
+ srid: value.srid,
70
+ };
71
+ if (value.z !== undefined)
72
+ point.z = value.z;
73
+ return point;
74
+ }
75
+ // Neo4j Node → convert its properties
76
+ if (value instanceof neo4j_driver_1.default.types.Node)
77
+ return ResultMapper.convertNeo4jTypes(value.properties, depth + 1);
78
+ // Neo4j Relationship → convert its properties
79
+ if (value instanceof neo4j_driver_1.default.types.Relationship)
80
+ return ResultMapper.convertNeo4jTypes(value.properties, depth + 1);
81
+ // Neo4j Path → not supported
82
+ if (value instanceof neo4j_driver_1.default.types.Path)
83
+ throw new errors_1.OGMError('Path type conversion is not supported');
84
+ // Plain object → recurse on values (use Object.create(null) to prevent prototype pollution)
85
+ const result = Object.create(null);
86
+ for (const [key, val] of Object.entries(value))
87
+ result[key] = ResultMapper.convertNeo4jTypes(val, depth + 1);
88
+ return result;
89
+ }
90
+ }
91
+ exports.ResultMapper = ResultMapper;
92
+ //# sourceMappingURL=result-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result-mapper.js","sourceRoot":"","sources":["../../../src/execution/result-mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ export interface GenerateTypesOptions {
2
+ /** Raw schema.graphql content */
3
+ typeDefs: string;
4
+ /** Output file path */
5
+ outFile: string;
6
+ /** Optional configuration */
7
+ config?: GenerateTypesConfig;
8
+ }
9
+ export interface GenerateTypesConfig {
10
+ /** Enable MATCHES operator for string fields (default: true) */
11
+ stringMatchesFilter?: boolean;
12
+ /** Format output with prettier (default: true) */
13
+ formatOutput?: boolean;
14
+ /** Custom prettier configuration */
15
+ prettierConfig?: Record<string, unknown>;
16
+ /** Custom header comment prepended to the generated file */
17
+ header?: string;
18
+ /** Package name used in generated import statements (default: 'grafeo-ogm') */
19
+ packageName?: string;
20
+ }
21
+ export interface GenerateTypesResult {
22
+ /** Absolute path of the written file */
23
+ outputPath: string;
24
+ /** Number of exported types / interfaces / enums */
25
+ typeCount: number;
26
+ /** File size in bytes */
27
+ fileSize: number;
28
+ /** Generation duration in milliseconds */
29
+ durationMs: number;
30
+ /** Non-fatal warnings encountered during generation */
31
+ warnings: GeneratorWarning[];
32
+ }
33
+ export interface GeneratorWarning {
34
+ code: 'UNKNOWN_DIRECTIVE' | 'UNSUPPORTED_TYPE' | 'CIRCULAR_REFERENCE';
35
+ message: string;
36
+ location?: {
37
+ typeName: string;
38
+ fieldName?: string;
39
+ };
40
+ }
41
+ export declare class SchemaParseError extends Error {
42
+ constructor(message: string);
43
+ }
44
+ export declare class OutputPathError extends Error {
45
+ constructor(message: string);
46
+ }
47
+ export declare class EmptySchemaError extends Error {
48
+ constructor(message: string);
49
+ }
50
+ /**
51
+ * Parse a GraphQL schema, emit TypeScript type declarations, and write the
52
+ * result to disk.
53
+ */
54
+ export declare function generateTypes(options: GenerateTypesOptions): Promise<GenerateTypesResult>;
55
+ //# sourceMappingURL=generate-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../../src/generator/generate-types.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,oBAAoB;IACnC,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,mBAAmB,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD;AAMD,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAoBD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAgG9B"}
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.EmptySchemaError = exports.OutputPathError = exports.SchemaParseError = void 0;
37
+ exports.generateTypes = generateTypes;
38
+ const fs = __importStar(require("node:fs"));
39
+ const path = __importStar(require("node:path"));
40
+ const parser_1 = require("../schema/parser");
41
+ const utility_types_1 = require("./type-emitters/utility-types");
42
+ const enum_emitter_1 = require("./type-emitters/enum-emitter");
43
+ const node_type_emitter_1 = require("./type-emitters/node-type-emitter");
44
+ const interface_emitter_1 = require("./type-emitters/interface-emitter");
45
+ const where_emitter_1 = require("./type-emitters/where-emitter");
46
+ const connection_emitter_1 = require("./type-emitters/connection-emitter");
47
+ const input_emitter_1 = require("./type-emitters/input-emitter");
48
+ const sort_options_emitter_1 = require("./type-emitters/sort-options-emitter");
49
+ const aggregation_emitter_1 = require("./type-emitters/aggregation-emitter");
50
+ const mutation_response_emitter_1 = require("./type-emitters/mutation-response-emitter");
51
+ const fulltext_emitter_1 = require("./type-emitters/fulltext-emitter");
52
+ const select_fields_emitter_1 = require("./type-emitters/select-fields-emitter");
53
+ const select_result_emitter_1 = require("./type-emitters/select-result-emitter");
54
+ const model_map_emitter_1 = require("./type-emitters/model-map-emitter");
55
+ // ---------------------------------------------------------------------------
56
+ // Error classes
57
+ // ---------------------------------------------------------------------------
58
+ class SchemaParseError extends Error {
59
+ constructor(message) {
60
+ super(message);
61
+ this.name = 'SchemaParseError';
62
+ }
63
+ }
64
+ exports.SchemaParseError = SchemaParseError;
65
+ class OutputPathError extends Error {
66
+ constructor(message) {
67
+ super(message);
68
+ this.name = 'OutputPathError';
69
+ }
70
+ }
71
+ exports.OutputPathError = OutputPathError;
72
+ class EmptySchemaError extends Error {
73
+ constructor(message) {
74
+ super(message);
75
+ this.name = 'EmptySchemaError';
76
+ }
77
+ }
78
+ exports.EmptySchemaError = EmptySchemaError;
79
+ // ---------------------------------------------------------------------------
80
+ // Helpers
81
+ // ---------------------------------------------------------------------------
82
+ function countExportedTypes(source) {
83
+ const patterns = [/export type /g, /export interface /g, /export enum /g];
84
+ let count = 0;
85
+ for (const pattern of patterns) {
86
+ const matches = source.match(pattern);
87
+ if (matches)
88
+ count += matches.length;
89
+ }
90
+ return count;
91
+ }
92
+ // ---------------------------------------------------------------------------
93
+ // Main entry point
94
+ // ---------------------------------------------------------------------------
95
+ /**
96
+ * Parse a GraphQL schema, emit TypeScript type declarations, and write the
97
+ * result to disk.
98
+ */
99
+ async function generateTypes(options) {
100
+ const start = performance.now();
101
+ const warnings = [];
102
+ // 1. Parse schema --------------------------------------------------------
103
+ let metadata;
104
+ try {
105
+ metadata = (0, parser_1.parseSchema)(options.typeDefs);
106
+ }
107
+ catch (error) {
108
+ const message = error instanceof Error ? error.message : String(error);
109
+ throw new SchemaParseError(`Failed to parse schema: ${message}`);
110
+ }
111
+ // 2. Validate output directory -------------------------------------------
112
+ const outDir = path.dirname(path.resolve(options.outFile));
113
+ if (!fs.existsSync(outDir))
114
+ throw new OutputPathError(`Output directory does not exist: ${outDir}`);
115
+ // 3. Validate non-empty schema -------------------------------------------
116
+ if (metadata.nodes.size === 0)
117
+ throw new EmptySchemaError('Schema contains no node types. At least one type is required.');
118
+ // 4. Build resolved config -----------------------------------------------
119
+ const config = {
120
+ stringMatchesFilter: options.config?.stringMatchesFilter ?? true,
121
+ formatOutput: options.config?.formatOutput ?? true,
122
+ prettierConfig: options.config?.prettierConfig,
123
+ header: options.config?.header,
124
+ };
125
+ // 5. Emit sections in order ----------------------------------------------
126
+ const packageName = options.config?.packageName ?? 'grafeo-ogm';
127
+ const sections = [
128
+ (0, utility_types_1.emitHeader)(config, packageName),
129
+ (0, utility_types_1.emitImports)(packageName),
130
+ (0, utility_types_1.emitUtilityTypes)(),
131
+ (0, enum_emitter_1.emitEnums)(metadata),
132
+ (0, node_type_emitter_1.emitNodeTypes)(metadata),
133
+ (0, interface_emitter_1.emitInterfaceTypes)(metadata),
134
+ (0, where_emitter_1.emitWhereTypes)(metadata, config),
135
+ (0, connection_emitter_1.emitConnectionWhereTypes)(metadata),
136
+ (0, input_emitter_1.emitInputTypes)(metadata),
137
+ (0, sort_options_emitter_1.emitSortOptions)(metadata),
138
+ (0, connection_emitter_1.emitConnectionEdgeTypes)(metadata),
139
+ (0, aggregation_emitter_1.emitAggregationTypes)(metadata),
140
+ (0, mutation_response_emitter_1.emitMutationResponseTypes)(metadata),
141
+ (0, fulltext_emitter_1.emitFulltextTypes)(metadata),
142
+ (0, select_fields_emitter_1.emitSelectFieldTypes)(metadata),
143
+ (0, select_result_emitter_1.emitSelectResultType)(),
144
+ (0, model_map_emitter_1.emitModelDeclarations)(metadata),
145
+ (0, model_map_emitter_1.emitModelMap)(metadata),
146
+ (0, model_map_emitter_1.emitInterfaceModelMap)(metadata),
147
+ ];
148
+ // 6. Join sections -------------------------------------------------------
149
+ let output = sections.join('\n\n');
150
+ // 7. Count types ---------------------------------------------------------
151
+ const typeCount = countExportedTypes(output);
152
+ // 8. Format with prettier (optional) -------------------------------------
153
+ if (config.formatOutput)
154
+ try {
155
+ const prettier = await Promise.resolve().then(() => __importStar(require('prettier')));
156
+ output = await prettier.format(output, {
157
+ parser: 'typescript',
158
+ ...config.prettierConfig,
159
+ });
160
+ }
161
+ catch {
162
+ warnings.push({
163
+ code: 'UNSUPPORTED_TYPE',
164
+ message: 'Prettier formatting failed; output written without formatting.',
165
+ });
166
+ }
167
+ // 9. Write to disk -------------------------------------------------------
168
+ const resolvedPath = path.resolve(options.outFile);
169
+ fs.writeFileSync(resolvedPath, output, 'utf-8');
170
+ // 10. Return result ------------------------------------------------------
171
+ const durationMs = Math.round(performance.now() - start);
172
+ const fileSize = Buffer.byteLength(output, 'utf-8');
173
+ return {
174
+ outputPath: resolvedPath,
175
+ typeCount,
176
+ fileSize,
177
+ durationMs,
178
+ warnings,
179
+ };
180
+ }
181
+ //# sourceMappingURL=generate-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../../src/generator/generate-types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2HA,sCAkGC;AA7ND,4CAA8B;AAC9B,gDAAkC;AAElC,6CAA+C;AAE/C,iEAIuC;AACvC,+DAAyD;AACzD,yEAAkE;AAClE,yEAAuE;AACvE,iEAA+D;AAC/D,2EAG4C;AAC5C,iEAA+D;AAC/D,+EAAuE;AACvE,6EAA2E;AAC3E,yFAAsF;AACtF,uEAAqE;AACrE,iFAA6E;AAC7E,iFAA6E;AAC7E,yEAI2C;AA+C3C,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AALD,4CAKC;AAED,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AALD,0CAKC;AAED,MAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AALD,4CAKC;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,QAAQ,GAAG,CAAC,eAAe,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;IAC1E,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,OAAO;YAAE,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;GAGG;AACI,KAAK,UAAU,aAAa,CACjC,OAA6B;IAE7B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,2EAA2E;IAC3E,IAAI,QAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,QAAQ,GAAG,IAAA,oBAAW,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,gBAAgB,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,2EAA2E;IAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QACxB,MAAM,IAAI,eAAe,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;IAE1E,2EAA2E;IAC3E,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QAC3B,MAAM,IAAI,gBAAgB,CACxB,+DAA+D,CAChE,CAAC;IAEJ,2EAA2E;IAC3E,MAAM,MAAM,GAGY;QACtB,mBAAmB,EAAE,OAAO,CAAC,MAAM,EAAE,mBAAmB,IAAI,IAAI;QAChE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,IAAI,IAAI;QAClD,cAAc,EAAE,OAAO,CAAC,MAAM,EAAE,cAAc;QAC9C,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM;KAC/B,CAAC;IAEF,2EAA2E;IAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,YAAY,CAAC;IAChE,MAAM,QAAQ,GAAa;QACzB,IAAA,0BAAU,EAAC,MAAM,EAAE,WAAW,CAAC;QAC/B,IAAA,2BAAW,EAAC,WAAW,CAAC;QACxB,IAAA,gCAAgB,GAAE;QAClB,IAAA,wBAAS,EAAC,QAAQ,CAAC;QACnB,IAAA,iCAAa,EAAC,QAAQ,CAAC;QACvB,IAAA,sCAAkB,EAAC,QAAQ,CAAC;QAC5B,IAAA,8BAAc,EAAC,QAAQ,EAAE,MAAM,CAAC;QAChC,IAAA,6CAAwB,EAAC,QAAQ,CAAC;QAClC,IAAA,8BAAc,EAAC,QAAQ,CAAC;QACxB,IAAA,sCAAe,EAAC,QAAQ,CAAC;QACzB,IAAA,4CAAuB,EAAC,QAAQ,CAAC;QACjC,IAAA,0CAAoB,EAAC,QAAQ,CAAC;QAC9B,IAAA,qDAAyB,EAAC,QAAQ,CAAC;QACnC,IAAA,oCAAiB,EAAC,QAAQ,CAAC;QAC3B,IAAA,4CAAoB,EAAC,QAAQ,CAAC;QAC9B,IAAA,4CAAoB,GAAE;QACtB,IAAA,yCAAqB,EAAC,QAAQ,CAAC;QAC/B,IAAA,gCAAY,EAAC,QAAQ,CAAC;QACtB,IAAA,yCAAqB,EAAC,QAAQ,CAAC;KAChC,CAAC;IAEF,2EAA2E;IAC3E,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnC,2EAA2E;IAC3E,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE7C,2EAA2E;IAC3E,IAAI,MAAM,CAAC,YAAY;QACrB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,wDAAa,UAAU,GAAC,CAAC;YAC1C,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;gBACrC,MAAM,EAAE,YAAY;gBACpB,GAAG,MAAM,CAAC,cAAc;aACzB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EACL,gEAAgE;aACnE,CAAC,CAAC;QACL,CAAC;IAEH,2EAA2E;IAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhD,2EAA2E;IAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEpD,OAAO;QACL,UAAU,EAAE,YAAY;QACxB,SAAS;QACT,QAAQ;QACR,UAAU;QACV,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { generateTypes } from './generate-types';
2
+ export type { GenerateTypesOptions, GenerateTypesConfig, GenerateTypesResult, GeneratorWarning, } from './generate-types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateTypes = void 0;
4
+ var generate_types_1 = require("./generate-types");
5
+ Object.defineProperty(exports, "generateTypes", { enumerable: true, get: function () { return generate_types_1.generateTypes; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/index.ts"],"names":[],"mappings":";;;AAAA,mDAAiD;AAAxC,+GAAA,aAAa,OAAA"}
@@ -0,0 +1,7 @@
1
+ import type { SchemaMetadata } from '../../schema/types';
2
+ /**
3
+ * Emits the shared aggregate selection types (`IdAggregateSelection`, etc.)
4
+ * followed by one `<Node>AggregateSelection` type per node in the schema.
5
+ */
6
+ export declare function emitAggregationTypes(schema: SchemaMetadata): string;
7
+ //# sourceMappingURL=aggregation-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregation-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/aggregation-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,oBAAoB,CAAC;AAyD5B;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA0BnE"}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.emitAggregationTypes = emitAggregationTypes;
4
+ const helpers_1 = require("./helpers");
5
+ // ---------------------------------------------------------------------------
6
+ // Scalar → aggregate selection type mapping
7
+ // ---------------------------------------------------------------------------
8
+ const SCALAR_AGGREGATE_MAP = {
9
+ ID: 'IdAggregateSelection',
10
+ String: 'StringAggregateSelection',
11
+ Int: 'IntAggregateSelection',
12
+ Float: 'FloatAggregateSelection',
13
+ DateTime: 'DateTimeAggregateSelection',
14
+ };
15
+ // ---------------------------------------------------------------------------
16
+ // Shared aggregate selection types (schema-independent)
17
+ // ---------------------------------------------------------------------------
18
+ const SHARED_AGGREGATE_TYPES = `export type IdAggregateSelection = {
19
+ __typename?: "IDAggregateSelection";
20
+ shortest?: Maybe<Scalars["ID"]["output"]>;
21
+ longest?: Maybe<Scalars["ID"]["output"]>;
22
+ };
23
+
24
+ export type StringAggregateSelection = {
25
+ __typename?: "StringAggregateSelection";
26
+ shortest?: Maybe<Scalars["String"]["output"]>;
27
+ longest?: Maybe<Scalars["String"]["output"]>;
28
+ };
29
+
30
+ export type IntAggregateSelection = {
31
+ __typename?: "IntAggregateSelection";
32
+ max?: Maybe<Scalars["Int"]["output"]>;
33
+ min?: Maybe<Scalars["Int"]["output"]>;
34
+ average?: Maybe<Scalars["Float"]["output"]>;
35
+ sum?: Maybe<Scalars["Int"]["output"]>;
36
+ };
37
+
38
+ export type FloatAggregateSelection = {
39
+ __typename?: "FloatAggregateSelection";
40
+ max?: Maybe<Scalars["Float"]["output"]>;
41
+ min?: Maybe<Scalars["Float"]["output"]>;
42
+ average?: Maybe<Scalars["Float"]["output"]>;
43
+ sum?: Maybe<Scalars["Float"]["output"]>;
44
+ };
45
+
46
+ export type DateTimeAggregateSelection = {
47
+ __typename?: "DateTimeAggregateSelection";
48
+ min?: Maybe<Scalars["DateTime"]["output"]>;
49
+ max?: Maybe<Scalars["DateTime"]["output"]>;
50
+ };`;
51
+ // ---------------------------------------------------------------------------
52
+ // Public API
53
+ // ---------------------------------------------------------------------------
54
+ /**
55
+ * Emits the shared aggregate selection types (`IdAggregateSelection`, etc.)
56
+ * followed by one `<Node>AggregateSelection` type per node in the schema.
57
+ */
58
+ function emitAggregationTypes(schema) {
59
+ const blocks = [SHARED_AGGREGATE_TYPES];
60
+ const sortedNodes = [...schema.nodes.entries()].sort(([a], [b]) => a.localeCompare(b));
61
+ for (const [, node] of sortedNodes) {
62
+ blocks.push(emitNodeAggregateSelection(node, schema));
63
+ // Relationship aggregation selection + aggregate input types
64
+ for (const [, rel] of node.relationships) {
65
+ blocks.push(emitRelationshipAggregationSelection(node, rel, schema));
66
+ blocks.push(emitRelationshipAggregateInput(node, rel));
67
+ }
68
+ }
69
+ // Interface relationship aggregate input types
70
+ const sortedInterfaces = [...schema.interfaces.entries()].sort(([a], [b]) => a.localeCompare(b));
71
+ for (const [, iface] of sortedInterfaces)
72
+ for (const [, rel] of iface.relationships)
73
+ blocks.push(emitInterfaceRelAggregateInput(iface.name, rel));
74
+ return blocks.join('\n\n');
75
+ }
76
+ // ---------------------------------------------------------------------------
77
+ // Helpers
78
+ // ---------------------------------------------------------------------------
79
+ /**
80
+ * Emits a `<Parent><Target><Field>AggregationSelection` type for a relationship.
81
+ *
82
+ * Example: `ChartChartHasParentChartAggregationSelection = { count: ...; node?: ...; }`
83
+ */
84
+ function emitRelationshipAggregationSelection(parent, rel, schema) {
85
+ const pascalField = (0, helpers_1.toPascalCase)(rel.fieldName);
86
+ const typeName = `${parent.typeName}${rel.target}${pascalField}AggregationSelection`;
87
+ const nodeAggType = `${typeName.replace('AggregationSelection', '')}NodeAggregateSelection`;
88
+ const lines = [
89
+ ` __typename?: "${typeName}";`,
90
+ ` count: Scalars["Int"]["output"];`,
91
+ ` node?: Maybe<${nodeAggType}>;`,
92
+ ];
93
+ // If relationship has properties, add edge aggregate
94
+ if (rel.properties) {
95
+ const edgeAggType = `${typeName.replace('AggregationSelection', '')}EdgeAggregateSelection`;
96
+ lines.push(` edge?: Maybe<${edgeAggType}>;`);
97
+ }
98
+ const block = `export type ${typeName} = {\n${lines.join('\n')}\n};`;
99
+ // Also emit the NodeAggregateSelection type (scalar properties of the target)
100
+ const targetNode = schema.nodes.get(rel.target);
101
+ const nodeLines = [` __typename?: "${nodeAggType}";`];
102
+ if (targetNode)
103
+ for (const [name, prop] of targetNode.properties) {
104
+ if (prop.isCypher)
105
+ continue;
106
+ const aggType = SCALAR_AGGREGATE_MAP[prop.type];
107
+ if (!aggType)
108
+ continue;
109
+ if (schema.enums.has(prop.type))
110
+ continue;
111
+ nodeLines.push(` ${name}: ${aggType};`);
112
+ }
113
+ const nodeBlock = `export type ${nodeAggType} = {\n${nodeLines.join('\n')}\n};`;
114
+ // Emit edge aggregate selection if relationship has properties
115
+ if (rel.properties) {
116
+ const edgeAggType = `${typeName.replace('AggregationSelection', '')}EdgeAggregateSelection`;
117
+ const edgeLines = [` __typename?: "${edgeAggType}";`];
118
+ const relProps = schema.relationshipProperties.get(rel.properties);
119
+ if (relProps)
120
+ for (const [name, prop] of relProps.properties) {
121
+ if (prop.isCypher)
122
+ continue;
123
+ const aggType = SCALAR_AGGREGATE_MAP[prop.type];
124
+ if (!aggType)
125
+ continue;
126
+ edgeLines.push(` ${name}: ${aggType};`);
127
+ }
128
+ const edgeBlock = `export type ${edgeAggType} = {\n${edgeLines.join('\n')}\n};`;
129
+ return `${block}\n\n${nodeBlock}\n\n${edgeBlock}`;
130
+ }
131
+ return `${block}\n\n${nodeBlock}`;
132
+ }
133
+ /**
134
+ * Emits a `<Parent><Field>AggregateInput` type for Where aggregate filters.
135
+ *
136
+ * Example: `ChartHasParentChartAggregateInput = { count?: ...; count_LT?: ...; ... }`
137
+ */
138
+ function emitRelationshipAggregateInput(parent, rel) {
139
+ const pascalField = (0, helpers_1.toPascalCase)(rel.fieldName);
140
+ const typeName = `${parent.typeName}${pascalField}AggregateInput`;
141
+ const lines = [
142
+ ` count?: InputMaybe<Scalars["Int"]["input"]>;`,
143
+ ` count_LT?: InputMaybe<Scalars["Int"]["input"]>;`,
144
+ ` count_LTE?: InputMaybe<Scalars["Int"]["input"]>;`,
145
+ ` count_GT?: InputMaybe<Scalars["Int"]["input"]>;`,
146
+ ` count_GTE?: InputMaybe<Scalars["Int"]["input"]>;`,
147
+ ` AND?: InputMaybe<Array<${typeName}>>;`,
148
+ ` OR?: InputMaybe<Array<${typeName}>>;`,
149
+ ` NOT?: InputMaybe<${typeName}>;`,
150
+ ];
151
+ return `export type ${typeName} = {\n${lines.join('\n')}\n};`;
152
+ }
153
+ /**
154
+ * Emits an aggregate input type for an interface relationship.
155
+ * Same structure as node relationship aggregate inputs.
156
+ */
157
+ function emitInterfaceRelAggregateInput(ifaceName, rel) {
158
+ const pascalField = (0, helpers_1.toPascalCase)(rel.fieldName);
159
+ const typeName = `${ifaceName}${pascalField}AggregateInput`;
160
+ const lines = [
161
+ ` count?: InputMaybe<Scalars["Int"]["input"]>;`,
162
+ ` count_LT?: InputMaybe<Scalars["Int"]["input"]>;`,
163
+ ` count_LTE?: InputMaybe<Scalars["Int"]["input"]>;`,
164
+ ` count_GT?: InputMaybe<Scalars["Int"]["input"]>;`,
165
+ ` count_GTE?: InputMaybe<Scalars["Int"]["input"]>;`,
166
+ ` AND?: InputMaybe<Array<${typeName}>>;`,
167
+ ` OR?: InputMaybe<Array<${typeName}>>;`,
168
+ ` NOT?: InputMaybe<${typeName}>;`,
169
+ ];
170
+ return `export type ${typeName} = {\n${lines.join('\n')}\n};`;
171
+ }
172
+ /**
173
+ * Emits a single `<Node>AggregateSelection` type with `count` followed by
174
+ * one entry per aggregatable scalar property.
175
+ */
176
+ function emitNodeAggregateSelection(node, schema) {
177
+ const lines = [
178
+ ` __typename?: "${node.typeName}AggregateSelection";`,
179
+ ` count: Scalars["Int"]["output"];`,
180
+ ];
181
+ for (const [name, prop] of node.properties) {
182
+ // Skip @cypher fields — computed, not stored
183
+ if (prop.isCypher)
184
+ continue;
185
+ const aggregateType = SCALAR_AGGREGATE_MAP[prop.type];
186
+ // Skip Booleans and enums — they have no aggregate selection
187
+ if (!aggregateType)
188
+ continue;
189
+ // Skip enum types explicitly
190
+ if (schema.enums.has(prop.type))
191
+ continue;
192
+ lines.push(` ${name}: ${aggregateType};`);
193
+ }
194
+ return `export type ${node.typeName}AggregateSelection = {\n${lines.join('\n')}\n};`;
195
+ }
196
+ //# sourceMappingURL=aggregation-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregation-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/aggregation-emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { SchemaMetadata } from '../../schema/types';
2
+ /**
3
+ * Emits `{Parent}{PascalField}ConnectionWhere` types for every relationship
4
+ * on every node in the schema.
5
+ *
6
+ * Each ConnectionWhere type contains:
7
+ * - `node` / `node_NOT` — target node Where filter
8
+ * - `edge` / `edge_NOT` — edge property Where filter (only when relationship has properties)
9
+ * - `AND` / `OR` / `NOT` — logical operators
10
+ */
11
+ export declare function emitConnectionWhereTypes(schema: SchemaMetadata): string;
12
+ /**
13
+ * Emits Connection, Relationship (edge), and PageInfo types.
14
+ *
15
+ * For each relationship on each node:
16
+ * - `{Parent}{PascalField}Connection` — edges array, totalCount, pageInfo
17
+ * - `{Parent}{PascalField}Relationship` — cursor, node, and optional properties
18
+ *
19
+ * Also emits the `PageInfo` type exactly once.
20
+ */
21
+ export declare function emitConnectionEdgeTypes(schema: SchemaMetadata): string;
22
+ //# sourceMappingURL=connection-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/connection-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAO5B;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA2CvE;AAkCD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA8CtE"}