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,266 @@
1
+ import { toPascalCase } from './helpers';
2
+ // ---------------------------------------------------------------------------
3
+ // Connection Where types
4
+ // ---------------------------------------------------------------------------
5
+ /**
6
+ * Emits `{Parent}{PascalField}ConnectionWhere` types for every relationship
7
+ * on every node in the schema.
8
+ *
9
+ * Each ConnectionWhere type contains:
10
+ * - `node` / `node_NOT` — target node Where filter
11
+ * - `edge` / `edge_NOT` — edge property Where filter (only when relationship has properties)
12
+ * - `AND` / `OR` / `NOT` — logical operators
13
+ */
14
+ export function emitConnectionWhereTypes(schema) {
15
+ const blocks = [];
16
+ const sortedNodes = [...schema.nodes.entries()].sort(([a], [b]) => a.localeCompare(b));
17
+ for (const [, node] of sortedNodes) {
18
+ const sortedRels = [...node.relationships.entries()].sort(([a], [b]) => a.localeCompare(b));
19
+ for (const [, rel] of sortedRels) {
20
+ const unionMembers = schema.unions?.get(rel.target);
21
+ if (unionMembers)
22
+ // Union target → emit per-member ConnectionWhere types
23
+ blocks.push(...emitUnionConnectionWheres(node.typeName, rel, unionMembers, schema));
24
+ else
25
+ blocks.push(emitConnectionWhere(node.typeName, rel, schema));
26
+ }
27
+ }
28
+ // Interface connection where types
29
+ const sortedInterfaces = [...schema.interfaces.entries()].sort(([a], [b]) => a.localeCompare(b));
30
+ for (const [, iface] of sortedInterfaces) {
31
+ const sortedRels = [...iface.relationships.entries()].sort(([a], [b]) => a.localeCompare(b));
32
+ for (const [, rel] of sortedRels)
33
+ blocks.push(emitInterfaceConnectionWhere(iface.name, rel, schema));
34
+ }
35
+ return blocks.join('\n\n');
36
+ }
37
+ function emitConnectionWhere(parentType, rel, schema) {
38
+ const pascalField = toPascalCase(rel.fieldName);
39
+ const typeName = `${parentType}${pascalField}ConnectionWhere`;
40
+ const lines = [];
41
+ // node filters
42
+ lines.push(` node?: InputMaybe<${rel.target}Where>;`);
43
+ lines.push(` node_NOT?: InputMaybe<${rel.target}Where>;`);
44
+ // edge filters (only when relationship has properties)
45
+ if (rel.properties) {
46
+ const edgeWhereName = resolveEdgeWhereName(rel.properties, schema);
47
+ lines.push(` edge?: InputMaybe<${edgeWhereName}>;`);
48
+ lines.push(` edge_NOT?: InputMaybe<${edgeWhereName}>;`);
49
+ }
50
+ // Logical operators
51
+ lines.push(` AND?: InputMaybe<Array<${typeName}>>;`);
52
+ lines.push(` OR?: InputMaybe<Array<${typeName}>>;`);
53
+ lines.push(` NOT?: InputMaybe<${typeName}>;`);
54
+ return `export type ${typeName} = {\n${lines.join('\n')}\n};`;
55
+ }
56
+ // ---------------------------------------------------------------------------
57
+ // Connection & Edge (Relationship) types
58
+ // ---------------------------------------------------------------------------
59
+ /**
60
+ * Emits Connection, Relationship (edge), and PageInfo types.
61
+ *
62
+ * For each relationship on each node:
63
+ * - `{Parent}{PascalField}Connection` — edges array, totalCount, pageInfo
64
+ * - `{Parent}{PascalField}Relationship` — cursor, node, and optional properties
65
+ *
66
+ * Also emits the `PageInfo` type exactly once.
67
+ */
68
+ export function emitConnectionEdgeTypes(schema) {
69
+ const blocks = [];
70
+ // PageInfo (emitted once at the top)
71
+ blocks.push(emitPageInfo());
72
+ const sortedNodes = [...schema.nodes.entries()].sort(([a], [b]) => a.localeCompare(b));
73
+ for (const [, node] of sortedNodes) {
74
+ const sortedRels = [...node.relationships.entries()].sort(([a], [b]) => a.localeCompare(b));
75
+ for (const [, rel] of sortedRels) {
76
+ const unionMembers = schema.unions?.get(rel.target);
77
+ if (unionMembers)
78
+ blocks.push(...emitUnionConnectionAndRelationships(node.typeName, rel, unionMembers));
79
+ else
80
+ blocks.push(emitConnectionAndRelationship(node.typeName, rel));
81
+ }
82
+ }
83
+ // Interface connection/edge types
84
+ const sortedInterfaces = [...schema.interfaces.entries()].sort(([a], [b]) => a.localeCompare(b));
85
+ for (const [, iface] of sortedInterfaces) {
86
+ const sortedRels = [...iface.relationships.entries()].sort(([a], [b]) => a.localeCompare(b));
87
+ for (const [, rel] of sortedRels)
88
+ blocks.push(emitInterfaceConnectionAndRelationship(iface.name, rel, schema));
89
+ }
90
+ return blocks.join('\n\n');
91
+ }
92
+ // ---------------------------------------------------------------------------
93
+ // Helpers
94
+ // ---------------------------------------------------------------------------
95
+ function emitPageInfo() {
96
+ return `export type PageInfo = {
97
+ hasNextPage: Scalars["Boolean"]["output"];
98
+ hasPreviousPage: Scalars["Boolean"]["output"];
99
+ startCursor?: Maybe<Scalars["String"]["output"]>;
100
+ endCursor?: Maybe<Scalars["String"]["output"]>;
101
+ };`;
102
+ }
103
+ function emitConnectionAndRelationship(parentType, rel) {
104
+ const pascalField = toPascalCase(rel.fieldName);
105
+ const connectionName = `${parentType}${pascalField}Connection`;
106
+ const relationshipName = `${parentType}${pascalField}Relationship`;
107
+ // Connection type
108
+ const connectionType = `export type ${connectionName} = {
109
+ edges: Array<${relationshipName}>;
110
+ totalCount: Scalars["Int"]["output"];
111
+ pageInfo: PageInfo;
112
+ };`;
113
+ // Relationship type
114
+ const relLines = [];
115
+ relLines.push(` cursor: Scalars["String"]["output"];`);
116
+ relLines.push(` node: ${rel.target};`);
117
+ if (rel.properties)
118
+ relLines.push(` properties: ${rel.properties};`);
119
+ const relationshipType = `export type ${relationshipName} = {\n${relLines.join('\n')}\n};`;
120
+ return `${connectionType}\n\n${relationshipType}`;
121
+ }
122
+ /**
123
+ * Resolves the Where type name for edge properties.
124
+ *
125
+ * Uses `{RelPropsTypeName}Where` — matching Neo4j OGM convention where the
126
+ * relationship-properties type name is suffixed with `Where`.
127
+ */
128
+ function resolveEdgeWhereName(propsTypeName, _schema) {
129
+ return `${propsTypeName}Where`;
130
+ }
131
+ /**
132
+ * For an interface relationship, find the edge properties type name used by
133
+ * any concrete implementor. Returns `undefined` if none of the implementors
134
+ * have edge properties for this relationship field.
135
+ */
136
+ function findInterfaceRelEdgeProps(interfaceName, fieldName, schema) {
137
+ const iface = schema.interfaces.get(interfaceName);
138
+ if (!iface)
139
+ return undefined;
140
+ for (const implName of iface.implementedBy) {
141
+ const node = schema.nodes.get(implName);
142
+ if (!node)
143
+ continue;
144
+ const rel = node.relationships.get(fieldName);
145
+ if (rel?.properties)
146
+ return rel.properties;
147
+ }
148
+ return undefined;
149
+ }
150
+ /**
151
+ * Emits ConnectionWhere for interface relationships.
152
+ * When implementors have edge properties, emits an intermediate EdgeWhere
153
+ * type with a discriminator key (the properties type name).
154
+ */
155
+ function emitInterfaceConnectionWhere(interfaceName, rel, schema) {
156
+ const pascalField = toPascalCase(rel.fieldName);
157
+ const typeName = `${interfaceName}${pascalField}ConnectionWhere`;
158
+ const lines = [];
159
+ // node filters
160
+ lines.push(` node?: InputMaybe<${rel.target}Where>;`);
161
+ lines.push(` node_NOT?: InputMaybe<${rel.target}Where>;`);
162
+ // edge filters — check concrete implementors for edge properties
163
+ const edgeProps = findInterfaceRelEdgeProps(interfaceName, rel.fieldName, schema);
164
+ if (edgeProps) {
165
+ const edgeWhereName = `${interfaceName}${pascalField}EdgeWhere`;
166
+ lines.push(` edge?: InputMaybe<${edgeWhereName}>;`);
167
+ lines.push(` edge_NOT?: InputMaybe<${edgeWhereName}>;`);
168
+ }
169
+ // Logical operators
170
+ lines.push(` AND?: InputMaybe<Array<${typeName}>>;`);
171
+ lines.push(` OR?: InputMaybe<Array<${typeName}>>;`);
172
+ lines.push(` NOT?: InputMaybe<${typeName}>;`);
173
+ const blocks = [];
174
+ blocks.push(`export type ${typeName} = {\n${lines.join('\n')}\n};`);
175
+ // Emit the intermediate EdgeWhere type if needed
176
+ if (edgeProps)
177
+ blocks.push(`export type ${interfaceName}${pascalField}EdgeWhere = {\n` +
178
+ ` ${edgeProps}?: InputMaybe<${edgeProps}Where>;\n` +
179
+ `};`);
180
+ return blocks.join('\n\n');
181
+ }
182
+ // ---------------------------------------------------------------------------
183
+ // Union-target per-member Connection types
184
+ // ---------------------------------------------------------------------------
185
+ /**
186
+ * For union-target relationships, emits per-member ConnectionWhere types.
187
+ * e.g., DoseDoseTypesStandardDoseConnectionWhere
188
+ */
189
+ function emitUnionConnectionWheres(parentType, rel, members, schema) {
190
+ const pascalField = toPascalCase(rel.fieldName);
191
+ const prefix = `${parentType}${pascalField}`;
192
+ const blocks = [];
193
+ // Also emit the top-level ConnectionWhere (used by Where types)
194
+ blocks.push(emitConnectionWhere(parentType, rel, schema));
195
+ for (const m of [...members].sort()) {
196
+ const typeName = `${prefix}${m}ConnectionWhere`;
197
+ const lines = [];
198
+ lines.push(` node?: InputMaybe<${m}Where>;`);
199
+ lines.push(` node_NOT?: InputMaybe<${m}Where>;`);
200
+ if (rel.properties) {
201
+ const edgeWhereName = `${rel.properties}Where`;
202
+ lines.push(` edge?: InputMaybe<${edgeWhereName}>;`);
203
+ lines.push(` edge_NOT?: InputMaybe<${edgeWhereName}>;`);
204
+ }
205
+ lines.push(` AND?: InputMaybe<Array<${typeName}>>;`);
206
+ lines.push(` OR?: InputMaybe<Array<${typeName}>>;`);
207
+ lines.push(` NOT?: InputMaybe<${typeName}>;`);
208
+ blocks.push(`export type ${typeName} = {\n${lines.join('\n')}\n};`);
209
+ }
210
+ return blocks;
211
+ }
212
+ /**
213
+ * For union-target relationships, emits per-member Connection and Relationship types.
214
+ */
215
+ function emitUnionConnectionAndRelationships(parentType, rel, _members) {
216
+ const pascalField = toPascalCase(rel.fieldName);
217
+ const prefix = `${parentType}${pascalField}`;
218
+ const blocks = [];
219
+ // Top-level Connection type
220
+ const connectionName = `${prefix}Connection`;
221
+ const relationshipName = `${prefix}Relationship`;
222
+ blocks.push(`export type ${connectionName} = {\n` +
223
+ ` edges: Array<${relationshipName}>;\n` +
224
+ ` totalCount: Scalars["Int"]["output"];\n` +
225
+ ` pageInfo: PageInfo;\n` +
226
+ `};`);
227
+ // Top-level Relationship type
228
+ const relLines = [];
229
+ relLines.push(` cursor: Scalars["String"]["output"];`);
230
+ relLines.push(` node: ${rel.target};`);
231
+ if (rel.properties)
232
+ relLines.push(` properties: ${rel.properties};`);
233
+ blocks.push(`export type ${relationshipName} = {\n${relLines.join('\n')}\n};`);
234
+ return blocks;
235
+ }
236
+ /**
237
+ * Emits Connection and Relationship types for interface relationships.
238
+ */
239
+ function emitInterfaceConnectionAndRelationship(interfaceName, rel, schema) {
240
+ const pascalField = toPascalCase(rel.fieldName);
241
+ const connectionName = `${interfaceName}${pascalField}Connection`;
242
+ const relationshipName = `${interfaceName}${pascalField}Relationship`;
243
+ // Connection type
244
+ const connectionType = `export type ${connectionName} = {\n` +
245
+ ` edges: Array<${relationshipName}>;\n` +
246
+ ` totalCount: Scalars["Int"]["output"];\n` +
247
+ ` pageInfo: PageInfo;\n` +
248
+ `};`;
249
+ // Relationship type
250
+ const relLines = [];
251
+ relLines.push(` cursor: Scalars["String"]["output"];`);
252
+ relLines.push(` node: ${rel.target};`);
253
+ // Check if any implementor uses edge properties for this field
254
+ const edgeProps = findInterfaceRelEdgeProps(interfaceName, rel.fieldName, schema);
255
+ if (edgeProps) {
256
+ const propsAlias = `${interfaceName}${pascalField}RelationshipProperties`;
257
+ relLines.push(` properties: ${propsAlias};`);
258
+ }
259
+ const relationshipType = `export type ${relationshipName} = {\n${relLines.join('\n')}\n};`;
260
+ const blocks = [connectionType, relationshipType];
261
+ // Emit RelationshipProperties alias if needed
262
+ if (edgeProps)
263
+ blocks.push(`export type ${interfaceName}${pascalField}RelationshipProperties = ${edgeProps};`);
264
+ return blocks.join('\n\n');
265
+ }
266
+ //# sourceMappingURL=connection-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/connection-emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { SchemaMetadata } from '../../schema/types';
2
+ /**
3
+ * Emits TypeScript `enum` declarations for every enum found in the schema,
4
+ * plus the always-present `SortDirection` enum.
5
+ */
6
+ export declare function emitEnums(schema: SchemaMetadata): string;
7
+ //# sourceMappingURL=enum-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/enum-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAuBzD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAsBxD"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Converts an UPPER_SNAKE_CASE enum value to PascalCase.
3
+ * Values that are already PascalCase (or mixed case) are returned as-is.
4
+ *
5
+ * Examples:
6
+ * - `WELCOME` → `Welcome`
7
+ * - `PENDING_APPROVAL` → `PendingApproval`
8
+ * - `US_BANK_ACCOUNT` → `UsBankAccount`
9
+ * - `Chart` → `Chart` (already PascalCase)
10
+ */
11
+ function toPascalCaseEnum(value) {
12
+ // If the value is not all-uppercase (possibly with underscores/digits),
13
+ // it's already in a mixed case format — return as-is
14
+ if (value !== value.toUpperCase())
15
+ return value;
16
+ return value
17
+ .split('_')
18
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase())
19
+ .join('');
20
+ }
21
+ /**
22
+ * Emits TypeScript `enum` declarations for every enum found in the schema,
23
+ * plus the always-present `SortDirection` enum.
24
+ */
25
+ export function emitEnums(schema) {
26
+ const blocks = [];
27
+ // Schema-defined enums (sorted alphabetically)
28
+ const sortedNames = [...schema.enums.keys()].sort();
29
+ for (const name of sortedNames) {
30
+ const values = schema.enums.get(name);
31
+ const members = values
32
+ .map((v) => ` ${toPascalCaseEnum(v)} = "${v}",`)
33
+ .join('\n');
34
+ blocks.push(`export enum ${name} {\n${members}\n}`);
35
+ }
36
+ // SortDirection is always emitted (skip if the schema already declares it)
37
+ // Uses Asc/Desc PascalCase for backward compatibility with @neo4j/graphql-ogm
38
+ if (!schema.enums.has('SortDirection'))
39
+ blocks.push(`export enum SortDirection {\n Asc = "ASC",\n Desc = "DESC",\n}`);
40
+ return blocks.join('\n\n');
41
+ }
42
+ //# sourceMappingURL=enum-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/enum-emitter.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,wEAAwE;IACxE,qDAAqD;IACrD,IAAI,KAAK,KAAK,KAAK,CAAC,WAAW,EAAE;QAAE,OAAO,KAAK,CAAC;IAEhD,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACzE,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAAsB;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,+CAA+C;IAC/C,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEpD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;aAChD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,OAAO,OAAO,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,2EAA2E;IAC3E,8EAA8E;IAC9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;QACpC,MAAM,CAAC,IAAI,CACT,kEAAkE,CACnE,CAAC;IAEJ,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { SchemaMetadata } from '../../schema/types';
2
+ /**
3
+ * Emits fulltext-related types for every node that declares at least one
4
+ * `@fulltext` index:
5
+ *
6
+ * - `<Node>FulltextResult` — score + the matched node
7
+ * - `<Node>FulltextWhere` — filtering by score and node-level where
8
+ * - `<Node>FulltextSort` — sorting by score and node-level sort
9
+ *
10
+ * Also emits the shared `FloatWhere` type used for score filtering.
11
+ *
12
+ * Returns an empty string when no nodes have fulltext indexes.
13
+ */
14
+ export declare function emitFulltextTypes(schema: SchemaMetadata): string;
15
+ //# sourceMappingURL=fulltext-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fulltext-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/fulltext-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,oBAAoB,CAAC;AAMzE;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAchE"}
@@ -0,0 +1,77 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Public API
3
+ // ---------------------------------------------------------------------------
4
+ /**
5
+ * Emits fulltext-related types for every node that declares at least one
6
+ * `@fulltext` index:
7
+ *
8
+ * - `<Node>FulltextResult` — score + the matched node
9
+ * - `<Node>FulltextWhere` — filtering by score and node-level where
10
+ * - `<Node>FulltextSort` — sorting by score and node-level sort
11
+ *
12
+ * Also emits the shared `FloatWhere` type used for score filtering.
13
+ *
14
+ * Returns an empty string when no nodes have fulltext indexes.
15
+ */
16
+ export function emitFulltextTypes(schema) {
17
+ const nodesWithFulltext = getNodesWithFulltext(schema);
18
+ if (nodesWithFulltext.length === 0)
19
+ return '';
20
+ const blocks = [FLOAT_WHERE_TYPE];
21
+ for (const node of nodesWithFulltext) {
22
+ blocks.push(emitFulltextResult(node));
23
+ blocks.push(emitFulltextWhere(node));
24
+ blocks.push(emitFulltextSort(node));
25
+ }
26
+ return blocks.join('\n\n');
27
+ }
28
+ // ---------------------------------------------------------------------------
29
+ // Shared types
30
+ // ---------------------------------------------------------------------------
31
+ const FLOAT_WHERE_TYPE = `export type FloatWhere = {
32
+ min?: InputMaybe<Scalars["Float"]["input"]>;
33
+ max?: InputMaybe<Scalars["Float"]["input"]>;
34
+ };`;
35
+ // ---------------------------------------------------------------------------
36
+ // Helpers
37
+ // ---------------------------------------------------------------------------
38
+ /**
39
+ * Returns all nodes that have at least one fulltext index,
40
+ * sorted alphabetically by type name.
41
+ */
42
+ function getNodesWithFulltext(schema) {
43
+ return [...schema.nodes.values()]
44
+ .filter((node) => node.fulltextIndexes.length > 0)
45
+ .sort((a, b) => a.typeName.localeCompare(b.typeName));
46
+ }
47
+ /**
48
+ * Converts a PascalCase type name to camelCase for the result field name.
49
+ * e.g. `Book` → `book`, `BookCategory` → `bookCategory`
50
+ */
51
+ function toCamelCase(typeName) {
52
+ return typeName.charAt(0).toLowerCase() + typeName.slice(1);
53
+ }
54
+ function emitFulltextResult(node) {
55
+ const fieldName = toCamelCase(node.typeName);
56
+ return `export type ${node.typeName}FulltextResult = {
57
+ __typename?: "${node.typeName}FulltextResult";
58
+ score: Scalars["Float"]["output"];
59
+ ${fieldName}: ${node.typeName};
60
+ };`;
61
+ }
62
+ function emitFulltextWhere(node) {
63
+ const fieldName = toCamelCase(node.typeName);
64
+ return `/** The input for filtering a fulltext query on an index of ${node.typeName} */
65
+ export type ${node.typeName}FulltextWhere = {
66
+ score?: InputMaybe<FloatWhere>;
67
+ ${fieldName}?: InputMaybe<${node.typeName}Where>;
68
+ };`;
69
+ }
70
+ function emitFulltextSort(node) {
71
+ const fieldName = toCamelCase(node.typeName);
72
+ return `export type ${node.typeName}FulltextSort = {
73
+ score?: InputMaybe<SortDirection>;
74
+ ${fieldName}?: InputMaybe<${node.typeName}Sort>;
75
+ };`;
76
+ }
77
+ //# sourceMappingURL=fulltext-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fulltext-emitter.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/fulltext-emitter.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAsB;IACtD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAEvD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE9C,MAAM,MAAM,GAAa,CAAC,gBAAgB,CAAC,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,gBAAgB,GAAG;;;GAGtB,CAAC;AAEJ,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,oBAAoB,CAAC,MAAsB;IAClD,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SAC9B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;SACjD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAoB;IAC9C,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE7C,OAAO,eAAe,IAAI,CAAC,QAAQ;kBACnB,IAAI,CAAC,QAAQ;;IAE3B,SAAS,KAAK,IAAI,CAAC,QAAQ;GAC5B,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAoB;IAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE7C,OAAO,+DAA+D,IAAI,CAAC,QAAQ;cACvE,IAAI,CAAC,QAAQ;;IAEvB,SAAS,iBAAiB,IAAI,CAAC,QAAQ;GACxC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAoB;IAC5C,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE7C,OAAO,eAAe,IAAI,CAAC,QAAQ;;IAEjC,SAAS,iBAAiB,IAAI,CAAC,QAAQ;GACxC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Shared helpers for type emitters — GraphQL-to-TypeScript type mapping
3
+ * and common formatting utilities.
4
+ */
5
+ /**
6
+ * Returns `true` when `typeName` is one of the built-in GraphQL scalars
7
+ * (`ID`, `String`, `Int`, `Float`, `Boolean`, `DateTime`, `BigInt`,
8
+ * `Date`, `Time`, `LocalTime`, `LocalDateTime`, `Duration`, `Point`,
9
+ * `CartesianPoint`).
10
+ */
11
+ export declare function isBuiltInScalar(typeName: string): boolean;
12
+ /**
13
+ * Maps a GraphQL scalar type name to its TypeScript output representation.
14
+ *
15
+ * Built-in scalars → `Scalars["<TYPE>"]["output"]`
16
+ * Enum / other types → used directly (the type name itself).
17
+ */
18
+ export declare function mapScalarType(typeName: string, enums: Map<string, string[]>): string;
19
+ /**
20
+ * Wraps `inner` in `Maybe<>` when the field is optional.
21
+ */
22
+ export declare function wrapMaybe(inner: string, required: boolean): string;
23
+ /**
24
+ * Converts a field name to PascalCase (first letter uppercased).
25
+ *
26
+ * Examples:
27
+ * - `drugs` → `Drugs`
28
+ * - `hasStatus` → `HasStatus`
29
+ * - `isDescribedBy` → `IsDescribedBy`
30
+ */
31
+ export declare function toPascalCase(fieldName: string): string;
32
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC3B,MAAM,CAQR;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAElE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtD"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Shared helpers for type emitters — GraphQL-to-TypeScript type mapping
3
+ * and common formatting utilities.
4
+ */
5
+ /** Built-in GraphQL scalar names that map to `Scalars[TYPE]["output"]`. */
6
+ const SCALAR_TYPES = new Set([
7
+ 'ID',
8
+ 'String',
9
+ 'Int',
10
+ 'Float',
11
+ 'Boolean',
12
+ 'DateTime',
13
+ 'BigInt',
14
+ 'Date',
15
+ 'Time',
16
+ 'LocalTime',
17
+ 'LocalDateTime',
18
+ 'Duration',
19
+ 'Point',
20
+ 'CartesianPoint',
21
+ ]);
22
+ /**
23
+ * Returns `true` when `typeName` is one of the built-in GraphQL scalars
24
+ * (`ID`, `String`, `Int`, `Float`, `Boolean`, `DateTime`, `BigInt`,
25
+ * `Date`, `Time`, `LocalTime`, `LocalDateTime`, `Duration`, `Point`,
26
+ * `CartesianPoint`).
27
+ */
28
+ export function isBuiltInScalar(typeName) {
29
+ return SCALAR_TYPES.has(typeName);
30
+ }
31
+ /**
32
+ * Maps a GraphQL scalar type name to its TypeScript output representation.
33
+ *
34
+ * Built-in scalars → `Scalars["<TYPE>"]["output"]`
35
+ * Enum / other types → used directly (the type name itself).
36
+ */
37
+ export function mapScalarType(typeName, enums) {
38
+ if (SCALAR_TYPES.has(typeName))
39
+ return `Scalars["${typeName}"]["output"]`;
40
+ // Enum types are referenced by name directly
41
+ if (enums.has(typeName))
42
+ return typeName;
43
+ // Fallback: treat as a known type reference (e.g. another node/interface)
44
+ return typeName;
45
+ }
46
+ /**
47
+ * Wraps `inner` in `Maybe<>` when the field is optional.
48
+ */
49
+ export function wrapMaybe(inner, required) {
50
+ return required ? inner : `Maybe<${inner}>`;
51
+ }
52
+ /**
53
+ * Converts a field name to PascalCase (first letter uppercased).
54
+ *
55
+ * Examples:
56
+ * - `drugs` → `Drugs`
57
+ * - `hasStatus` → `HasStatus`
58
+ * - `isDescribedBy` → `IsDescribedBy`
59
+ */
60
+ export function toPascalCase(fieldName) {
61
+ return fieldName.charAt(0).toUpperCase() + fieldName.slice(1);
62
+ }
63
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/generator/type-emitters/helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2EAA2E;AAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,IAAI;IACJ,QAAQ;IACR,KAAK;IACL,OAAO;IACP,SAAS;IACT,UAAU;IACV,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;IACX,eAAe;IACf,UAAU;IACV,OAAO;IACP,gBAAgB;CACjB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAgB,EAChB,KAA4B;IAE5B,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,YAAY,QAAQ,cAAc,CAAC;IAE1E,6CAA6C;IAC7C,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEzC,0EAA0E;IAC1E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,QAAiB;IACxD,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SchemaMetadata } from '../../schema/types';
2
+ /**
3
+ * Emits all input types for every node in the schema.
4
+ */
5
+ export declare function emitInputTypes(schema: SchemaMetadata): string;
6
+ //# sourceMappingURL=input-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-emitter.d.ts","sourceRoot":"","sources":["../../../../src/generator/type-emitters/input-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,cAAc,EACf,MAAM,oBAAoB,CAAC;AAiB5B;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAmI7D"}