@commitspark/graphql-api 2.0.0-beta.3 → 2.0.0-beta.5

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 (269) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +165 -88
  3. package/dist/cjs/client.d.ts +1 -0
  4. package/dist/cjs/graphql/apollo-config-factory.d.ts +1 -0
  5. package/dist/cjs/graphql/errors.d.ts +4 -2
  6. package/dist/cjs/graphql/errors.d.ts.map +1 -0
  7. package/dist/cjs/graphql/errors.js +11 -1
  8. package/dist/cjs/graphql/errors.js.map +1 -1
  9. package/dist/cjs/graphql/input-type-generator.d.ts +1 -0
  10. package/dist/cjs/graphql/input-type-generator.d.ts.map +1 -0
  11. package/dist/cjs/graphql/input-type-generator.js +5 -10
  12. package/dist/cjs/graphql/input-type-generator.js.map +1 -1
  13. package/dist/cjs/graphql/queries-mutations-generator.d.ts +10 -1
  14. package/dist/cjs/graphql/queries-mutations-generator.d.ts.map +1 -0
  15. package/dist/cjs/graphql/queries-mutations-generator.js +55 -3
  16. package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -1
  17. package/dist/cjs/graphql/resolvers/commit-message.d.ts +11 -0
  18. package/dist/cjs/graphql/resolvers/commit-message.d.ts.map +1 -0
  19. package/dist/cjs/graphql/resolvers/commit-message.js +22 -0
  20. package/dist/cjs/graphql/resolvers/commit-message.js.map +1 -0
  21. package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts +1 -0
  22. package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js +2 -2
  23. package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -1
  24. package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts +1 -0
  25. package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js +3 -3
  26. package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
  27. package/dist/cjs/graphql/resolvers/field-resolvers/referenced-by-resolver.d.ts +3 -0
  28. package/dist/cjs/graphql/resolvers/field-resolvers/referenced-by-resolver.d.ts.map +1 -0
  29. package/dist/cjs/graphql/resolvers/field-resolvers/referenced-by-resolver.js +7 -0
  30. package/dist/cjs/graphql/resolvers/field-resolvers/referenced-by-resolver.js.map +1 -0
  31. package/dist/cjs/graphql/resolvers/field-resolvers/types.d.ts +1 -0
  32. package/dist/cjs/graphql/resolvers/field-resolvers/union-value-resolver.d.ts +1 -0
  33. package/dist/cjs/graphql/resolvers/field-resolvers/version-resolver.d.ts +3 -0
  34. package/dist/cjs/graphql/resolvers/field-resolvers/version-resolver.d.ts.map +1 -0
  35. package/dist/cjs/graphql/resolvers/field-resolvers/version-resolver.js +7 -0
  36. package/dist/cjs/graphql/resolvers/field-resolvers/version-resolver.js.map +1 -0
  37. package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts +1 -0
  38. package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js +1 -1
  39. package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -1
  40. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts +1 -0
  41. package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -1
  42. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +33 -42
  43. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -1
  44. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts +1 -0
  45. package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map +1 -1
  46. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +28 -40
  47. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -1
  48. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts +1 -0
  49. package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map +1 -1
  50. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +26 -43
  51. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
  52. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts +1 -0
  53. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts +1 -0
  54. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts +1 -0
  55. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js +5 -5
  56. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js.map +1 -1
  57. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts +1 -0
  58. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts +1 -0
  59. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +1 -1
  60. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -1
  61. package/dist/cjs/graphql/resolvers/types.d.ts +14 -2
  62. package/dist/cjs/graphql/resolvers/types.d.ts.map +1 -0
  63. package/dist/cjs/graphql/schema-analyzer.d.ts +1 -0
  64. package/dist/cjs/graphql/schema-generator.d.ts +1 -0
  65. package/dist/cjs/graphql/schema-generator.d.ts.map +1 -0
  66. package/dist/cjs/graphql/schema-generator.js +12 -1
  67. package/dist/cjs/graphql/schema-generator.js.map +1 -1
  68. package/dist/cjs/graphql/schema-root-type-generator.d.ts +1 -0
  69. package/dist/cjs/graphql/schema-utils/directive-util.d.ts +1 -0
  70. package/dist/cjs/graphql/schema-utils/entry-reference-util.d.ts +5 -2
  71. package/dist/cjs/graphql/schema-utils/entry-reference-util.d.ts.map +1 -0
  72. package/dist/cjs/graphql/schema-utils/entry-reference-util.js +94 -121
  73. package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
  74. package/dist/cjs/graphql/schema-utils/entry-type-util.d.ts +1 -0
  75. package/dist/cjs/graphql/schema-utils/searchable-field-util.d.ts +1 -0
  76. package/dist/cjs/graphql/schema-utils/union-type-util.d.ts +1 -0
  77. package/dist/cjs/graphql/schema-utils/union-type-util.js +2 -2
  78. package/dist/cjs/graphql/schema-utils/union-type-util.js.map +1 -1
  79. package/dist/cjs/graphql/schema-validator.d.ts +1 -0
  80. package/dist/{types → cjs}/graphql/schema-validator.d.ts.map +1 -1
  81. package/dist/cjs/graphql/schema-validator.js +16 -0
  82. package/dist/cjs/graphql/schema-validator.js.map +1 -1
  83. package/dist/cjs/graphql/util.d.ts +1 -0
  84. package/dist/cjs/index.d.ts +1 -0
  85. package/dist/cjs/index.js +3 -0
  86. package/dist/cjs/index.js.map +1 -1
  87. package/dist/cjs/persistence/cache.d.ts +4 -1
  88. package/dist/cjs/persistence/cache.d.ts.map +1 -0
  89. package/dist/cjs/persistence/cache.js +8 -17
  90. package/dist/cjs/persistence/cache.js.map +1 -1
  91. package/dist/cjs/persistence/commit-with-retry.d.ts +16 -0
  92. package/dist/cjs/persistence/commit-with-retry.d.ts.map +1 -0
  93. package/dist/cjs/persistence/commit-with-retry.js +39 -0
  94. package/dist/cjs/persistence/commit-with-retry.js.map +1 -0
  95. package/dist/cjs/persistence/git-adapter-call.d.ts +10 -0
  96. package/dist/cjs/persistence/git-adapter-call.d.ts.map +1 -0
  97. package/dist/cjs/persistence/git-adapter-call.js +29 -0
  98. package/dist/cjs/persistence/git-adapter-call.js.map +1 -0
  99. package/dist/cjs/persistence/persistence.d.ts +12 -0
  100. package/dist/{types → cjs}/persistence/persistence.d.ts.map +1 -1
  101. package/dist/cjs/persistence/persistence.js +37 -2
  102. package/dist/cjs/persistence/persistence.js.map +1 -1
  103. package/dist/esm/client.d.ts.map +1 -0
  104. package/dist/esm/graphql/apollo-config-factory.d.ts.map +1 -0
  105. package/dist/{types → esm}/graphql/errors.d.ts +3 -2
  106. package/dist/esm/graphql/errors.d.ts.map +1 -0
  107. package/dist/esm/graphql/errors.js +10 -0
  108. package/dist/esm/graphql/errors.js.map +1 -1
  109. package/dist/esm/graphql/input-type-generator.d.ts.map +1 -0
  110. package/dist/esm/graphql/input-type-generator.js +6 -11
  111. package/dist/esm/graphql/input-type-generator.js.map +1 -1
  112. package/dist/{types → esm}/graphql/queries-mutations-generator.d.ts +9 -1
  113. package/dist/esm/graphql/queries-mutations-generator.d.ts.map +1 -0
  114. package/dist/esm/graphql/queries-mutations-generator.js +53 -3
  115. package/dist/esm/graphql/queries-mutations-generator.js.map +1 -1
  116. package/dist/esm/graphql/resolvers/commit-message.d.ts +11 -0
  117. package/dist/esm/graphql/resolvers/commit-message.d.ts.map +1 -0
  118. package/dist/esm/graphql/resolvers/commit-message.js +19 -0
  119. package/dist/esm/graphql/resolvers/commit-message.js.map +1 -0
  120. package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts.map +1 -0
  121. package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js +3 -3
  122. package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -1
  123. package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +1 -0
  124. package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js +4 -4
  125. package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
  126. package/dist/esm/graphql/resolvers/field-resolvers/referenced-by-resolver.d.ts +3 -0
  127. package/dist/esm/graphql/resolvers/field-resolvers/referenced-by-resolver.d.ts.map +1 -0
  128. package/dist/esm/graphql/resolvers/field-resolvers/referenced-by-resolver.js +3 -0
  129. package/dist/esm/graphql/resolvers/field-resolvers/referenced-by-resolver.js.map +1 -0
  130. package/dist/esm/graphql/resolvers/field-resolvers/types.d.ts.map +1 -0
  131. package/dist/esm/graphql/resolvers/field-resolvers/union-value-resolver.d.ts.map +1 -0
  132. package/dist/esm/graphql/resolvers/field-resolvers/version-resolver.d.ts +3 -0
  133. package/dist/esm/graphql/resolvers/field-resolvers/version-resolver.d.ts.map +1 -0
  134. package/dist/esm/graphql/resolvers/field-resolvers/version-resolver.js +3 -0
  135. package/dist/esm/graphql/resolvers/field-resolvers/version-resolver.js.map +1 -0
  136. package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts.map +1 -0
  137. package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js +2 -2
  138. package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -1
  139. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -0
  140. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +36 -45
  141. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -1
  142. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map +1 -0
  143. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +31 -43
  144. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -1
  145. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map +1 -0
  146. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +29 -46
  147. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
  148. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts.map +1 -0
  149. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts.map +1 -0
  150. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts.map +1 -0
  151. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js +6 -6
  152. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js.map +1 -1
  153. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts.map +1 -0
  154. package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts.map +1 -0
  155. package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +2 -2
  156. package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -1
  157. package/dist/{types → esm}/graphql/resolvers/types.d.ts +13 -2
  158. package/dist/esm/graphql/resolvers/types.d.ts.map +1 -0
  159. package/dist/esm/graphql/schema-analyzer.d.ts.map +1 -0
  160. package/dist/esm/graphql/schema-generator.d.ts.map +1 -0
  161. package/dist/esm/graphql/schema-generator.js +14 -3
  162. package/dist/esm/graphql/schema-generator.js.map +1 -1
  163. package/dist/esm/graphql/schema-root-type-generator.d.ts.map +1 -0
  164. package/dist/esm/graphql/schema-utils/directive-util.d.ts.map +1 -0
  165. package/dist/esm/graphql/schema-utils/entry-reference-util.d.ts +6 -0
  166. package/dist/esm/graphql/schema-utils/entry-reference-util.d.ts.map +1 -0
  167. package/dist/esm/graphql/schema-utils/entry-reference-util.js +93 -121
  168. package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
  169. package/dist/esm/graphql/schema-utils/entry-type-util.d.ts.map +1 -0
  170. package/dist/esm/graphql/schema-utils/searchable-field-util.d.ts.map +1 -0
  171. package/dist/esm/graphql/schema-utils/union-type-util.d.ts.map +1 -0
  172. package/dist/esm/graphql/schema-utils/union-type-util.js +3 -3
  173. package/dist/esm/graphql/schema-utils/union-type-util.js.map +1 -1
  174. package/dist/esm/graphql/schema-validator.d.ts.map +1 -0
  175. package/dist/esm/graphql/schema-validator.js +17 -1
  176. package/dist/esm/graphql/schema-validator.js.map +1 -1
  177. package/dist/esm/graphql/util.d.ts.map +1 -0
  178. package/dist/esm/index.d.ts.map +1 -0
  179. package/dist/esm/index.js +2 -0
  180. package/dist/esm/index.js.map +1 -1
  181. package/dist/{types → esm}/persistence/cache.d.ts +3 -1
  182. package/dist/esm/persistence/cache.d.ts.map +1 -0
  183. package/dist/esm/persistence/cache.js +6 -15
  184. package/dist/esm/persistence/cache.js.map +1 -1
  185. package/dist/esm/persistence/commit-with-retry.d.ts +16 -0
  186. package/dist/esm/persistence/commit-with-retry.d.ts.map +1 -0
  187. package/dist/esm/persistence/commit-with-retry.js +35 -0
  188. package/dist/esm/persistence/commit-with-retry.js.map +1 -0
  189. package/dist/esm/persistence/git-adapter-call.d.ts +10 -0
  190. package/dist/esm/persistence/git-adapter-call.d.ts.map +1 -0
  191. package/dist/esm/persistence/git-adapter-call.js +24 -0
  192. package/dist/esm/persistence/git-adapter-call.js.map +1 -0
  193. package/dist/esm/persistence/persistence.d.ts +18 -0
  194. package/dist/esm/persistence/persistence.d.ts.map +1 -0
  195. package/dist/esm/persistence/persistence.js +36 -3
  196. package/dist/esm/persistence/persistence.js.map +1 -1
  197. package/package.json +27 -18
  198. package/src/graphql/errors.ts +2 -1
  199. package/src/graphql/input-type-generator.ts +6 -18
  200. package/src/graphql/queries-mutations-generator.ts +69 -3
  201. package/src/graphql/resolvers/commit-message.ts +34 -0
  202. package/src/graphql/resolvers/field-resolvers/referenced-by-resolver.ts +9 -0
  203. package/src/graphql/resolvers/field-resolvers/version-resolver.ts +8 -0
  204. package/src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts +43 -57
  205. package/src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts +45 -60
  206. package/src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts +38 -67
  207. package/src/graphql/resolvers/types.ts +26 -2
  208. package/src/graphql/schema-generator.ts +19 -0
  209. package/src/graphql/schema-utils/entry-reference-util.ts +147 -191
  210. package/src/graphql/schema-validator.ts +21 -0
  211. package/src/persistence/cache.ts +8 -14
  212. package/src/persistence/commit-with-retry.ts +47 -0
  213. package/src/persistence/git-adapter-call.ts +27 -0
  214. package/src/persistence/persistence.ts +50 -0
  215. package/dist/types/graphql/errors.d.ts.map +0 -1
  216. package/dist/types/graphql/input-type-generator.d.ts.map +0 -1
  217. package/dist/types/graphql/queries-mutations-generator.d.ts.map +0 -1
  218. package/dist/types/graphql/resolvers/types.d.ts.map +0 -1
  219. package/dist/types/graphql/schema-generator.d.ts.map +0 -1
  220. package/dist/types/graphql/schema-utils/entry-reference-util.d.ts +0 -4
  221. package/dist/types/graphql/schema-utils/entry-reference-util.d.ts.map +0 -1
  222. package/dist/types/persistence/cache.d.ts.map +0 -1
  223. package/dist/types/persistence/persistence.d.ts +0 -7
  224. /package/dist/{types → cjs}/client.d.ts.map +0 -0
  225. /package/dist/{types → cjs}/graphql/apollo-config-factory.d.ts.map +0 -0
  226. /package/dist/{types → cjs}/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts.map +0 -0
  227. /package/dist/{types → cjs}/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +0 -0
  228. /package/dist/{types → cjs}/graphql/resolvers/field-resolvers/types.d.ts.map +0 -0
  229. /package/dist/{types → cjs}/graphql/resolvers/field-resolvers/union-value-resolver.d.ts.map +0 -0
  230. /package/dist/{types → cjs}/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts.map +0 -0
  231. /package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts.map +0 -0
  232. /package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts.map +0 -0
  233. /package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts.map +0 -0
  234. /package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts.map +0 -0
  235. /package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts.map +0 -0
  236. /package/dist/{types → cjs}/graphql/schema-analyzer.d.ts.map +0 -0
  237. /package/dist/{types → cjs}/graphql/schema-root-type-generator.d.ts.map +0 -0
  238. /package/dist/{types → cjs}/graphql/schema-utils/directive-util.d.ts.map +0 -0
  239. /package/dist/{types → cjs}/graphql/schema-utils/entry-type-util.d.ts.map +0 -0
  240. /package/dist/{types → cjs}/graphql/schema-utils/searchable-field-util.d.ts.map +0 -0
  241. /package/dist/{types → cjs}/graphql/schema-utils/union-type-util.d.ts.map +0 -0
  242. /package/dist/{types → cjs}/graphql/util.d.ts.map +0 -0
  243. /package/dist/{types → cjs}/index.d.ts.map +0 -0
  244. /package/dist/{types → esm}/client.d.ts +0 -0
  245. /package/dist/{types → esm}/graphql/apollo-config-factory.d.ts +0 -0
  246. /package/dist/{types → esm}/graphql/input-type-generator.d.ts +0 -0
  247. /package/dist/{types → esm}/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts +0 -0
  248. /package/dist/{types → esm}/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts +0 -0
  249. /package/dist/{types → esm}/graphql/resolvers/field-resolvers/types.d.ts +0 -0
  250. /package/dist/{types → esm}/graphql/resolvers/field-resolvers/union-value-resolver.d.ts +0 -0
  251. /package/dist/{types → esm}/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts +0 -0
  252. /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts +0 -0
  253. /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts +0 -0
  254. /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts +0 -0
  255. /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts +0 -0
  256. /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts +0 -0
  257. /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts +0 -0
  258. /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts +0 -0
  259. /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts +0 -0
  260. /package/dist/{types → esm}/graphql/schema-analyzer.d.ts +0 -0
  261. /package/dist/{types → esm}/graphql/schema-generator.d.ts +0 -0
  262. /package/dist/{types → esm}/graphql/schema-root-type-generator.d.ts +0 -0
  263. /package/dist/{types → esm}/graphql/schema-utils/directive-util.d.ts +0 -0
  264. /package/dist/{types → esm}/graphql/schema-utils/entry-type-util.d.ts +0 -0
  265. /package/dist/{types → esm}/graphql/schema-utils/searchable-field-util.d.ts +0 -0
  266. /package/dist/{types → esm}/graphql/schema-utils/union-type-util.d.ts +0 -0
  267. /package/dist/{types → esm}/graphql/schema-validator.d.ts +0 -0
  268. /package/dist/{types → esm}/graphql/util.d.ts +0 -0
  269. /package/dist/{types → esm}/index.d.ts +0 -0
@@ -5,6 +5,8 @@ const persistence_ts_1 = require("../../../persistence/persistence.js");
5
5
  const entry_reference_util_ts_1 = require("../../schema-utils/entry-reference-util.js");
6
6
  const graphql_1 = require("graphql");
7
7
  const errors_ts_1 = require("../../errors.js");
8
+ const commit_message_ts_1 = require("../commit-message.js");
9
+ const commit_with_retry_ts_1 = require("../../../persistence/commit-with-retry.js");
8
10
  function mergeData(existingEntryData, updateData) {
9
11
  return {
10
12
  ...existingEntryData,
@@ -12,52 +14,33 @@ function mergeData(existingEntryData, updateData) {
12
14
  };
13
15
  }
14
16
  const mutationUpdateResolver = async (source, args, context, info) => {
17
+ void info;
15
18
  if (!(0, graphql_1.isObjectType)(context.type)) {
16
- throw (0, errors_ts_1.createError)(`Type "${context.type.name}" cannot be mutated as is not an ObjectType.`, "INTERNAL_ERROR" /* ErrorCode.INTERNAL_ERROR */, {});
19
+ throw (0, errors_ts_1.createError)(`Type "${context.type.name}" cannot be mutated as is not an ObjectType.`, errors_ts_1.ErrorCode.INTERNAL_ERROR, {});
17
20
  }
18
- const existingEntry = await (0, persistence_ts_1.findByTypeId)(context, context.type.name, args.id);
19
- const existingReferencedEntryIds = await (0, entry_reference_util_ts_1.getReferencedEntryIds)(context.type, context, null, info.returnType, existingEntry.data ?? null);
20
- const mergedData = mergeData(existingEntry.data ?? null, args.data ?? null);
21
- const updatedReferencedEntryIds = await (0, entry_reference_util_ts_1.getReferencedEntryIds)(context.type, context, null, info.returnType, mergedData);
22
- const noLongerReferencedIds = existingReferencedEntryIds.filter((entryId) => !updatedReferencedEntryIds.includes(entryId));
23
- const newlyReferencedIds = updatedReferencedEntryIds.filter((entryId) => !existingReferencedEntryIds.includes(entryId));
24
- const referencedEntryUpdates = [];
25
- for (const noLongerReferencedEntryId of noLongerReferencedIds) {
26
- const noLongerReferencedEntry = await (0, persistence_ts_1.findById)(context, noLongerReferencedEntryId);
27
- referencedEntryUpdates.push({
28
- ...noLongerReferencedEntry,
29
- metadata: {
30
- ...noLongerReferencedEntry.metadata,
31
- referencedBy: noLongerReferencedEntry.metadata.referencedBy?.filter((entryId) => entryId !== args.id),
32
- },
33
- deletion: false,
34
- });
35
- }
36
- for (const newlyReferencedEntryId of newlyReferencedIds) {
37
- const newlyReferencedEntry = await (0, persistence_ts_1.findById)(context, newlyReferencedEntryId);
38
- const updatedReferenceList = [
39
- ...(newlyReferencedEntry.metadata.referencedBy ?? []),
40
- args.id,
41
- ].sort();
42
- referencedEntryUpdates.push({
43
- ...newlyReferencedEntry,
44
- metadata: {
45
- ...newlyReferencedEntry.metadata,
46
- referencedBy: updatedReferenceList,
47
- },
48
- deletion: false,
49
- });
50
- }
51
- const commit = await context.gitAdapter.createCommit({
52
- ref: context.branch,
53
- parentSha: context.getCurrentHash(),
54
- entries: [
55
- { ...existingEntry, data: mergedData, deletion: false },
56
- ...referencedEntryUpdates,
57
- ],
58
- message: args.commitMessage,
21
+ // narrowed type, as narrowing does not apply within the callback below
22
+ const entryType = context.type;
23
+ const commitMessage = (0, commit_message_ts_1.getCommitMessage)(args.commit, 'Update', context.type.name, args.id);
24
+ await (0, commit_with_retry_ts_1.commitWithRetry)(context, async () => {
25
+ const existingEntry = await (0, persistence_ts_1.findByTypeId)(context, context.type.name, args.id);
26
+ await (0, persistence_ts_1.assertExpectedVersion)(context, args.id, args.expectedVersion);
27
+ const mergedData = mergeData(existingEntry.data ?? null, args.data ?? null);
28
+ await (0, entry_reference_util_ts_1.validateEntryReferences)(entryType, context, mergedData);
29
+ return {
30
+ ref: context.branch,
31
+ parentSha: context.getCurrentHash(),
32
+ entries: [
33
+ {
34
+ id: existingEntry.id,
35
+ // only the type is written, which removes metadata no longer in use from existing entries
36
+ metadata: { type: existingEntry.metadata.type },
37
+ data: mergedData,
38
+ deletion: false,
39
+ },
40
+ ],
41
+ ...commitMessage,
42
+ };
59
43
  });
60
- context.setCurrentHash(commit.commitHash);
61
44
  const updatedEntry = await (0, persistence_ts_1.findByTypeId)(context, context.type.name, args.id);
62
45
  return { ...updatedEntry.data, id: updatedEntry.id };
63
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mutation-update-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutation-update-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts"],"names":[],"mappings":";;;AAAA,wEAG4C;AAC5C,wFAAoF;AACpF,qCAAsC;AAGtC,+CAAwD;AACxD,4DAAuD;AACvD,oFAA2E;AAE3E,SAAS,SAAS,CAChB,iBAA4B,EAC5B,UAAqB;IAErB,OAAO;QACL,GAAG,iBAAiB;QACpB,GAAG,UAAU;KACd,CAAA;AACH,CAAC;AAEM,MAAM,sBAAsB,GAAqC,KAAK,EAC3E,MAAM,EACN,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,EAAE;IACF,KAAK,IAAI,CAAA;IACT,IAAI,CAAC,IAAA,sBAAY,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,IAAA,uBAAW,EACf,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,8CAA8C,EACxE,qBAAS,CAAC,cAAc,EACxB,EAAE,CACH,CAAA;IACH,CAAC;IACD,uEAAuE;IACvE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAA;IAC9B,MAAM,aAAa,GAAG,IAAA,oCAAgB,EACpC,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,OAAO,CAAC,IAAI,CAAC,IAAI,EACjB,IAAI,CAAC,EAAE,CACR,CAAA;IAED,MAAM,IAAA,sCAAe,EAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,aAAa,GAAG,MAAM,IAAA,6BAAY,EACtC,OAAO,EACP,OAAO,CAAC,IAAI,CAAC,IAAI,EACjB,IAAI,CAAC,EAAE,CACR,CAAA;QACD,MAAM,IAAA,sCAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QAEnE,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;QAC3E,MAAM,IAAA,iDAAuB,EAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QAE7D,OAAO;YACL,GAAG,EAAE,OAAO,CAAC,MAAM;YACnB,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE;YACnC,OAAO,EAAE;gBACP;oBACE,EAAE,EAAE,aAAa,CAAC,EAAE;oBACpB,0FAA0F;oBAC1F,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE;oBAC/C,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,GAAG,aAAa;SACjB,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,MAAM,IAAA,6BAAY,EAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IAC5E,OAAO,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAA;AACtD,CAAC,CAAA;AApDY,QAAA,sBAAsB,0BAoDlC"}
@@ -1,3 +1,4 @@
1
1
  import { EntryData } from '@commitspark/git-adapter';
2
2
  import { QueryMutationResolver } from '../types.ts';
3
3
  export declare const queryByIdResolver: QueryMutationResolver<EntryData>;
4
+ //# sourceMappingURL=query-by-id-resolver.d.ts.map
@@ -1,3 +1,4 @@
1
1
  import { EntryData } from '@commitspark/git-adapter';
2
2
  import { QueryMutationResolver } from '../types.ts';
3
3
  export declare const queryEveryResolver: QueryMutationResolver<EntryData[]>;
4
+ //# sourceMappingURL=query-every-resolver.d.ts.map
@@ -1,2 +1,3 @@
1
1
  import { SearchQueryResolver } from '../types.ts';
2
2
  export declare const querySearchResolver: SearchQueryResolver;
3
+ //# sourceMappingURL=query-search-resolver.d.ts.map
@@ -11,17 +11,17 @@ const SEARCH_MAX_LIMIT = 100;
11
11
  const querySearchResolver = async (_source, args, context, info) => {
12
12
  const searchAdapter = context.searchAdapter;
13
13
  if (searchAdapter === undefined) {
14
- throw (0, errors_ts_1.createError)('No search adapter configured.', "INTERNAL_ERROR" /* ErrorCode.INTERNAL_ERROR */, {});
14
+ throw (0, errors_ts_1.createError)('No search adapter configured.', errors_ts_1.ErrorCode.INTERNAL_ERROR, {});
15
15
  }
16
16
  if (args.query.trim() === '') {
17
- throw (0, errors_ts_1.createError)('Search query must not be empty.', "BAD_USER_INPUT" /* ErrorCode.BAD_USER_INPUT */, {
17
+ throw (0, errors_ts_1.createError)('Search query must not be empty.', errors_ts_1.ErrorCode.BAD_USER_INPUT, {
18
18
  argumentName: 'query',
19
19
  argumentValue: args.query,
20
20
  });
21
21
  }
22
22
  const limit = args.first ?? SEARCH_DEFAULT_LIMIT;
23
23
  if (limit < 1 || limit > SEARCH_MAX_LIMIT) {
24
- throw (0, errors_ts_1.createError)(`Argument "first" must be between 1 and ${SEARCH_MAX_LIMIT}.`, "BAD_USER_INPUT" /* ErrorCode.BAD_USER_INPUT */, {
24
+ throw (0, errors_ts_1.createError)(`Argument "first" must be between 1 and ${SEARCH_MAX_LIMIT}.`, errors_ts_1.ErrorCode.BAD_USER_INPUT, {
25
25
  argumentName: 'first',
26
26
  argumentValue: limit,
27
27
  });
@@ -55,7 +55,7 @@ const querySearchResolver = async (_source, args, context, info) => {
55
55
  throw (0, errors_ts_1.createError)(err.message, err.code, {});
56
56
  }
57
57
  const message = err instanceof Error ? err.message : String(err);
58
- throw (0, errors_ts_1.createError)(message, "INTERNAL_ERROR" /* ErrorCode.INTERNAL_ERROR */, {});
58
+ throw (0, errors_ts_1.createError)(message, errors_ts_1.ErrorCode.INTERNAL_ERROR, {});
59
59
  }
60
60
  return hits.slice(0, limit);
61
61
  };
@@ -64,7 +64,7 @@ function validateEntryTypeNames(schema, typeNames) {
64
64
  for (const typeName of typeNames) {
65
65
  const type = schema.getType(typeName);
66
66
  if (!(0, graphql_1.isObjectType)(type) || !(0, directive_util_ts_1.hasDirective)(type, directive_util_ts_1.ENTRY_DIRECTIVE_NAME)) {
67
- throw (0, errors_ts_1.createError)(`Type "${typeName}" is not an entry type.`, "BAD_USER_INPUT" /* ErrorCode.BAD_USER_INPUT */, {
67
+ throw (0, errors_ts_1.createError)(`Type "${typeName}" is not an entry type.`, errors_ts_1.ErrorCode.BAD_USER_INPUT, {
68
68
  argumentName: 'types',
69
69
  argumentValue: typeName,
70
70
  });
@@ -1 +1 @@
1
- {"version":3,"file":"query-search-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-search-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-search-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-search-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import { QueryMutationResolver } from '../types.ts';
2
2
  export declare const queryTypeByIdResolver: QueryMutationResolver<string>;
3
+ //# sourceMappingURL=query-type-by-id-resolver.d.ts.map
@@ -1,2 +1,3 @@
1
1
  import { UnionTypeResolver } from '../types.ts';
2
2
  export declare const unionTypeResolver: UnionTypeResolver;
3
+ //# sourceMappingURL=union-type-resolver.d.ts.map
@@ -7,7 +7,7 @@ const errors_ts_1 = require("../../errors.js");
7
7
  const unionTypeResolver = async (source, context, info, abstractType) => {
8
8
  if ((0, entry_type_util_ts_1.buildsOnTypeWithEntryDirective)(abstractType)) {
9
9
  if (!('id' in source) || typeof source.id !== 'string') {
10
- throw (0, errors_ts_1.createError)(`Expected key "id" of type string in data while resolving reference-based union type for field "${info.fieldName}".`, "BAD_REPOSITORY_DATA" /* ErrorCode.BAD_REPOSITORY_DATA */, {
10
+ throw (0, errors_ts_1.createError)(`Expected key "id" of type string in data while resolving reference-based union type for field "${info.fieldName}".`, errors_ts_1.ErrorCode.BAD_REPOSITORY_DATA, {
11
11
  typeName: abstractType.name,
12
12
  fieldName: info.fieldName,
13
13
  });
@@ -1 +1 @@
1
- {"version":3,"file":"union-type-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/union-type-resolver.ts"],"names":[],"mappings":";;;AAAA,wEAAiE;AACjE,8EAAsF;AAEtF,+CAAwD;AAEjD,MAAM,iBAAiB,GAAsB,KAAK,EACvD,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,EAAE;IACF,IAAI,IAAA,mDAA8B,EAAC,YAAY,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,IAAA,uBAAW,EACf,kGAAkG,IAAI,CAAC,SAAS,IAAI,6DAEpH;gBACE,QAAQ,EAAE,YAAY,CAAC,IAAI;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CACF,CAAA;QACH,CAAC;QACD,OAAO,IAAA,4BAAW,EAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;IACxC,CAAC;SAAM,CAAC;QACN,wGAAwG;QACxG,wFAAwF;QACxF,OAAO,MAAM,CAAC,UAAU,CAAA;IAC1B,CAAC;IAED,iIAAiI;AACnI,CAAC,CAAA;AAzBY,QAAA,iBAAiB,qBAyB7B"}
1
+ {"version":3,"file":"union-type-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/union-type-resolver.ts"],"names":[],"mappings":";;;AAAA,wEAAiE;AACjE,8EAAsF;AAEtF,+CAAwD;AAEjD,MAAM,iBAAiB,GAAsB,KAAK,EACvD,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,EAAE;IACF,IAAI,IAAA,mDAA8B,EAAC,YAAY,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,IAAA,uBAAW,EACf,kGAAkG,IAAI,CAAC,SAAS,IAAI,EACpH,qBAAS,CAAC,mBAAmB,EAC7B;gBACE,QAAQ,EAAE,YAAY,CAAC,IAAI;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CACF,CAAA;QACH,CAAC;QACD,OAAO,IAAA,4BAAW,EAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;IACxC,CAAC;SAAM,CAAC;QACN,wGAAwG;QACxG,wFAAwF;QACxF,OAAO,MAAM,CAAC,UAAU,CAAA;IAC1B,CAAC;IAED,iIAAiI;AACnI,CAAC,CAAA;AAzBY,QAAA,iBAAiB,qBAyB7B"}
@@ -3,13 +3,18 @@ import { GraphQLFieldResolver, GraphQLNamedType, GraphQLTypeResolver } from 'gra
3
3
  import { EntryData } from '@commitspark/git-adapter';
4
4
  import { SearchHit } from '@commitspark/search-adapter';
5
5
  import { RecursiveArray } from './field-resolvers/types.ts';
6
- export interface QueryMutationResolverContext extends ApolloContext {
6
+ export interface CommitInput {
7
+ message?: string | null;
8
+ body?: string | null;
9
+ }
10
+ interface QueryMutationResolverContext extends ApolloContext {
7
11
  type: GraphQLNamedType;
8
12
  }
9
13
  export type QueryMutationResolver<ResultType> = GraphQLFieldResolver<unknown, QueryMutationResolverContext, {
10
14
  id: string;
11
15
  data?: EntryData;
12
- commitMessage: string;
16
+ commit?: CommitInput | null;
17
+ expectedVersion?: string | null;
13
18
  }, Promise<ResultType>>;
14
19
  export type UnionTypeResolver = GraphQLTypeResolver<UnionTypeResolverSourceData, ApolloContext>;
15
20
  type UnionTypeResolverSourceData = EntryData & {
@@ -22,4 +27,11 @@ export type SearchQueryResolver = GraphQLFieldResolver<unknown, ApolloContext, {
22
27
  first?: number | null;
23
28
  }, Promise<SearchHit[]>>;
24
29
  export type ContextInjectionResolver = GraphQLFieldResolver<EntryData, ApolloContext, Record<string, unknown>, Promise<RecursiveArray<EntryData>>>;
30
+ export type ReferencedByResolver = GraphQLFieldResolver<EntryData & {
31
+ id: string;
32
+ }, ApolloContext, Record<string, never>, Promise<string[]>>;
33
+ export type VersionResolver = GraphQLFieldResolver<EntryData & {
34
+ id: string;
35
+ }, ApolloContext, Record<string, never>, Promise<string>>;
25
36
  export {};
37
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/graphql/resolvers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,UAAU,4BAA6B,SAAQ,aAAa;IAC1D,IAAI,EAAE,gBAAgB,CAAA;CACvB;AAED,MAAM,MAAM,qBAAqB,CAAC,UAAU,IAAI,oBAAoB,CAClE,OAAO,EACP,4BAA4B,EAC5B;IACE,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC,EACD,OAAO,CAAC,UAAU,CAAC,CACpB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CACjD,2BAA2B,EAC3B,aAAa,CACd,CAAA;AAED,KAAK,2BAA2B,GAAG,SAAS,GAAG;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CACpD,OAAO,EACP,aAAa,EACb;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACjE,OAAO,CAAC,SAAS,EAAE,CAAC,CACrB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,oBAAoB,CACzD,SAAS,EACT,aAAa,EACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CACnC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CACrD,SAAS,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC1B,aAAa,EACb,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CAClB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,oBAAoB,CAChD,SAAS,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAC1B,aAAa,EACb,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,OAAO,CAAC,MAAM,CAAC,CAChB,CAAA"}
@@ -6,3 +6,4 @@ export interface SchemaAnalyzerResult {
6
6
  interfaceTypes: GraphQLInterfaceType[];
7
7
  unionTypes: GraphQLUnionType[];
8
8
  }
9
+ //# sourceMappingURL=schema-analyzer.d.ts.map
@@ -1,3 +1,4 @@
1
1
  import { IExecutableSchemaDefinition } from '@graphql-tools/schema';
2
2
  import { ApolloContext } from '../client.ts';
3
3
  export declare function generateSchema(context: ApolloContext): Promise<IExecutableSchemaDefinition>;
4
+ //# sourceMappingURL=schema-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-generator.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,2BAA2B,EAE5B,MAAM,uBAAuB,CAAA;AAU9B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAgB5C,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,2BAA2B,CAAC,CAoJtC"}
@@ -18,7 +18,7 @@ async function generateSchema(context) {
18
18
  });
19
19
  const validationResult = (0, schema_validator_ts_1.getValidationResult)(schema);
20
20
  if (validationResult.length > 0) {
21
- throw (0, errors_ts_1.createError)(`Invalid schema.`, "BAD_SCHEMA" /* ErrorCode.BAD_SCHEMA */, {
21
+ throw (0, errors_ts_1.createError)(`Invalid schema.`, errors_ts_1.ErrorCode.BAD_SCHEMA, {
22
22
  schema: (0, utils_1.printSchemaWithDirectives)(schema),
23
23
  argumentValue: validationResult.join('\n'),
24
24
  });
@@ -29,6 +29,7 @@ async function generateSchema(context) {
29
29
  const generatedQueriesMutations = (0, queries_mutations_generator_ts_1.generateQueriesAndMutations)(schemaAnalyzerResult.entryDirectiveTypes);
30
30
  const generatedTypeNameQuery = (0, queries_mutations_generator_ts_1.generateTypeNameQuery)();
31
31
  const generatedSearchQuery = context.searchAdapter !== undefined ? (0, queries_mutations_generator_ts_1.generateSearchQuery)() : undefined;
32
+ const generatedEntryFields = (0, queries_mutations_generator_ts_1.generateEntryFields)(schemaAnalyzerResult.entryDirectiveTypes);
32
33
  const generatedObjectInputTypeStrings = (0, input_type_generator_ts_1.generateObjectInputTypeStrings)(schemaAnalyzerResult.objectTypes);
33
34
  const generatedUnionInputTypeStrings = (0, input_type_generator_ts_1.generateUnionInputTypeStrings)(schemaAnalyzerResult.unionTypes);
34
35
  const generatedSchemaRootTypeStrings = (0, schema_root_type_generator_ts_1.generateSchemaRootTypeStrings)(generatedQueriesMutations, generatedTypeNameQuery, generatedSearchQuery);
@@ -80,12 +81,22 @@ ${generatedSchemaRootTypeStrings}`;
80
81
  ...generatedObjectTypeFieldResolvers[typeName],
81
82
  };
82
83
  }
84
+ for (const entryFields of generatedEntryFields) {
85
+ allGeneratedResolvers[entryFields.typeName] = {
86
+ ...(allGeneratedResolvers[entryFields.typeName] ?? {}),
87
+ ...entryFields.resolvers,
88
+ };
89
+ }
83
90
  const typeDefs = [
84
91
  filteredOriginalSchemaString,
85
92
  generatedSchemaString,
93
+ (0, queries_mutations_generator_ts_1.generateCommitInputType)(),
86
94
  generatedIdInputTypeStrings.join('\n'),
87
95
  generatedObjectInputTypeStrings.join('\n'),
88
96
  generatedUnionInputTypeStrings.join('\n'),
97
+ generatedEntryFields
98
+ .map((entryFields) => entryFields.typeExtensionString)
99
+ .join('\n'),
89
100
  generatedSearchQuery?.typeDefinitionString ?? '',
90
101
  ].filter((typeDef) => typeDef.length > 0);
91
102
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../../src/graphql/schema-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../../src/graphql/schema-generator.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import { GeneratedQuery, GeneratedSchema, GeneratedSearchQuery } from './queries-mutations-generator.ts';
2
2
  export declare function generateSchemaRootTypeStrings(generatedSchemas: GeneratedSchema[], typeQuery: GeneratedQuery, searchQuery: GeneratedSearchQuery | undefined): string;
3
+ //# sourceMappingURL=schema-root-type-generator.d.ts.map
@@ -2,3 +2,4 @@ import { GraphQLField, GraphQLNamedType } from 'graphql';
2
2
  export declare const ENTRY_DIRECTIVE_NAME = "Entry";
3
3
  export declare const SEARCHABLE_DIRECTIVE_NAME = "Searchable";
4
4
  export declare function hasDirective(typeOrField: GraphQLNamedType | GraphQLField<unknown, unknown>, directiveName: string): boolean;
5
+ //# sourceMappingURL=directive-util.d.ts.map
@@ -1,3 +1,6 @@
1
- import { GraphQLNullableType, GraphQLObjectType } from 'graphql';
1
+ import { GraphQLObjectType, GraphQLSchema } from 'graphql';
2
2
  import { ApolloContext } from '../../client.ts';
3
- export declare function getReferencedEntryIds(rootType: GraphQLObjectType, context: ApolloContext, fieldName: string | null, type: GraphQLNullableType, data: unknown): Promise<string[]>;
3
+ import { EntryData } from '@commitspark/git-adapter';
4
+ export declare function validateEntryReferences(entryType: GraphQLObjectType, context: ApolloContext, data: EntryData): Promise<void>;
5
+ export declare function getReferencingEntryIds(context: ApolloContext, schema: GraphQLSchema, id: string): Promise<string[]>;
6
+ //# sourceMappingURL=entry-reference-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-reference-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,aAAa,EAOd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAU/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAepD,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getReferencedEntryIds = getReferencedEntryIds;
3
+ exports.validateEntryReferences = validateEntryReferences;
4
+ exports.getReferencingEntryIds = getReferencingEntryIds;
4
5
  const graphql_1 = require("graphql");
5
6
  const persistence_ts_1 = require("../../persistence/persistence.js");
6
7
  const union_type_util_ts_1 = require("./union-type-util.js");
@@ -8,105 +9,99 @@ const directive_util_ts_1 = require("./directive-util.js");
8
9
  const entry_type_util_ts_1 = require("./entry-type-util.js");
9
10
  const errors_ts_1 = require("../errors.js");
10
11
  const util_ts_1 = require("../util.js");
11
- function isPermittedReferenceType(referencedTypeName, fieldType) {
12
- if ((0, graphql_1.isNonNullType)(fieldType)) {
13
- return isPermittedReferenceType(referencedTypeName, fieldType.ofType);
14
- }
15
- else if ((0, graphql_1.isListType)(fieldType)) {
16
- return isPermittedReferenceType(referencedTypeName, fieldType.ofType);
17
- }
18
- else if ((0, graphql_1.isUnionType)(fieldType)) {
19
- return fieldType
20
- .getTypes()
21
- .map((concreteType) => concreteType.name)
22
- .includes(referencedTypeName);
23
- }
24
- else if ((0, graphql_1.isObjectType)(fieldType)) {
25
- return fieldType.name === referencedTypeName;
26
- }
27
- return false;
28
- }
29
- async function validateReference(context, fieldName, fieldType, fieldValue) {
30
- if ((0, graphql_1.isNonNullType)(fieldType)) {
31
- await validateReference(context, fieldName, fieldType.ofType, fieldValue);
32
- return;
33
- }
34
- if ((0, graphql_1.isListType)(fieldType)) {
35
- if (!Array.isArray(fieldValue)) {
36
- throw (0, errors_ts_1.createError)(`Expected array while validation references for field "${fieldName}".`, "BAD_REPOSITORY_DATA" /* ErrorCode.BAD_REPOSITORY_DATA */, {
37
- fieldName: fieldName,
38
- fieldValue: fieldValue,
39
- });
40
- }
41
- for (const fieldListElement of fieldValue) {
42
- await validateReference(context, fieldName, fieldType.ofType, fieldListElement);
43
- }
44
- return;
45
- }
46
- if ((0, graphql_1.isUnionType)(fieldType) || (0, graphql_1.isObjectType)(fieldType)) {
47
- if (fieldValue === null ||
48
- !('id' in fieldValue) ||
49
- typeof fieldValue.id !== 'string') {
50
- throw (0, errors_ts_1.createError)(`Expected key "id" with value of type string in data while validating reference for field "${fieldName}".`, "BAD_REPOSITORY_DATA" /* ErrorCode.BAD_REPOSITORY_DATA */, {
51
- fieldName: fieldName,
52
- fieldValue: fieldValue,
53
- });
54
- }
55
- const referencedId = fieldValue.id;
12
+ // commits are immutable, so an index built from the cached entries of a commit stays valid for as long as these
13
+ // entries remain cached
14
+ const referencedByIndexes = new WeakMap();
15
+ async function validateEntryReferences(entryType, context, data) {
16
+ for (const reference of getEntryReferences(entryType, data)) {
56
17
  let referencedTypeName;
57
18
  try {
58
- referencedTypeName = await (0, persistence_ts_1.getTypeById)(context, referencedId);
19
+ referencedTypeName = await (0, persistence_ts_1.getTypeById)(context, reference.id);
59
20
  }
60
21
  catch {
61
- throw (0, errors_ts_1.createError)(`Failed to resolve entry reference "${referencedId}".`, "BAD_USER_INPUT" /* ErrorCode.BAD_USER_INPUT */, {
62
- fieldName: fieldName,
63
- fieldValue: referencedId,
22
+ throw (0, errors_ts_1.createError)(`Failed to resolve entry reference "${reference.id}".`, errors_ts_1.ErrorCode.BAD_USER_INPUT, {
23
+ fieldName: reference.fieldName,
24
+ fieldValue: reference.id,
64
25
  });
65
26
  }
66
- if (!isPermittedReferenceType(referencedTypeName, fieldType)) {
67
- throw (0, errors_ts_1.createError)(`Reference with ID "${referencedId}" points to entry of incompatible type "${referencedTypeName}".`, "BAD_USER_INPUT" /* ErrorCode.BAD_USER_INPUT */, {
68
- fieldName: fieldName,
69
- fieldValue: referencedId,
27
+ if (!isPermittedReferenceType(referencedTypeName, reference.fieldType)) {
28
+ throw (0, errors_ts_1.createError)(`Reference with ID "${reference.id}" points to entry of incompatible type "${referencedTypeName}".`, errors_ts_1.ErrorCode.BAD_USER_INPUT, {
29
+ fieldName: reference.fieldName,
30
+ fieldValue: reference.id,
70
31
  });
71
32
  }
72
33
  }
73
34
  }
74
- async function getReferencedEntryIds(rootType, context, fieldName, type, data) {
35
+ async function getReferencingEntryIds(context, schema, id) {
36
+ const entriesRecord = await context.repositoryCache.getEntriesRecord(context, context.getCurrentHash());
37
+ let referencedByIndex = referencedByIndexes.get(entriesRecord);
38
+ if (referencedByIndex === undefined) {
39
+ referencedByIndex = buildReferencedByIndex(schema, entriesRecord);
40
+ referencedByIndexes.set(entriesRecord, referencedByIndex);
41
+ }
42
+ return referencedByIndex.get(id) ?? [];
43
+ }
44
+ function buildReferencedByIndex(schema, entriesRecord) {
45
+ const referencedByIndex = new Map();
46
+ for (const entry of entriesRecord.byId.values()) {
47
+ const entryType = schema.getType(entry.metadata.type);
48
+ if (!(0, graphql_1.isObjectType)(entryType) ||
49
+ !(0, directive_util_ts_1.hasDirective)(entryType, directive_util_ts_1.ENTRY_DIRECTIVE_NAME)) {
50
+ throw (0, errors_ts_1.createError)(`Entry "${entry.id}" is of type "${entry.metadata.type}", which is not a type with directive ` +
51
+ `@${directive_util_ts_1.ENTRY_DIRECTIVE_NAME} in the schema.`, errors_ts_1.ErrorCode.BAD_REPOSITORY_DATA, {
52
+ typeName: entry.metadata.type,
53
+ fieldValue: entry.id,
54
+ });
55
+ }
56
+ const referencedIds = new Set(getEntryReferences(entryType, entry.data ?? null).map((reference) => reference.id));
57
+ for (const referencedId of referencedIds) {
58
+ const referencingIds = referencedByIndex.get(referencedId) ?? [];
59
+ referencingIds.push(entry.id);
60
+ referencedByIndex.set(referencedId, referencingIds);
61
+ }
62
+ }
63
+ for (const referencingIds of referencedByIndex.values()) {
64
+ referencingIds.sort();
65
+ }
66
+ return referencedByIndex;
67
+ }
68
+ function getEntryReferences(entryType, data) {
69
+ // the fields of the entry itself are traversed directly, so that any nested @Entry type is treated as reference,
70
+ // including references to entries of the same type
71
+ return getReferencesInObjectFields(entryType, data);
72
+ }
73
+ function getReferencesInObjectFields(type, data) {
74
+ if (data === null || data === undefined) {
75
+ return [];
76
+ }
77
+ // expect our object type to hold EntryData (i.e. an object)
78
+ if (!(0, util_ts_1.isEntryData)(data) || data === null) {
79
+ throw (0, errors_ts_1.createError)(`Expected object as data for type "${type.name}".`, errors_ts_1.ErrorCode.BAD_REPOSITORY_DATA, {
80
+ typeName: type.name,
81
+ fieldValue: data,
82
+ });
83
+ }
84
+ return Object.entries(type.getFields()).flatMap(([fieldName, field]) => getReferencesInField(fieldName, field.type, data[fieldName]));
85
+ }
86
+ function getReferencesInField(fieldName, type, data) {
75
87
  if (data === null || data === undefined || (0, graphql_1.isScalarType)(type)) {
76
88
  return [];
77
89
  }
78
90
  if ((0, graphql_1.isNonNullType)(type)) {
79
- return getReferencedEntryIds(rootType, context, fieldName, type.ofType, data);
91
+ return getReferencesInField(fieldName, type.ofType, data);
80
92
  }
81
93
  if ((0, graphql_1.isListType)(type)) {
82
94
  if (!Array.isArray(data)) {
83
- throw (0, errors_ts_1.createError)(`Expected array as data for field "${fieldName}". `, "BAD_REPOSITORY_DATA" /* ErrorCode.BAD_REPOSITORY_DATA */, {
84
- fieldName: fieldName ? fieldName : undefined,
95
+ throw (0, errors_ts_1.createError)(`Expected array as data for field "${fieldName}".`, errors_ts_1.ErrorCode.BAD_REPOSITORY_DATA, {
96
+ fieldName: fieldName,
85
97
  fieldValue: data,
86
98
  });
87
99
  }
88
- let referencedEntryIds = [];
89
- for (const element of data) {
90
- referencedEntryIds = [
91
- ...referencedEntryIds,
92
- ...(await getReferencedEntryIds(rootType, context, fieldName, type.ofType, element)),
93
- ];
94
- }
95
- // deduplicate
96
- referencedEntryIds = [...new Set(referencedEntryIds)];
97
- return referencedEntryIds;
100
+ return data.flatMap((element) => getReferencesInField(fieldName, type.ofType, element));
98
101
  }
99
102
  if ((0, graphql_1.isUnionType)(type)) {
100
- if (!(0, util_ts_1.isEntryData)(data)) {
101
- throw (0, errors_ts_1.createError)(`Expected object as data for type "${type.name}".`, "BAD_REPOSITORY_DATA" /* ErrorCode.BAD_REPOSITORY_DATA */, {
102
- typeName: type.name,
103
- fieldName: fieldName ? fieldName : undefined,
104
- fieldValue: data,
105
- });
106
- }
107
103
  if ((0, entry_type_util_ts_1.isUnionOfEntryTypes)(type)) {
108
- const referenceId = await getValidatedReferenceId(context, fieldName, type, data);
109
- return [referenceId];
104
+ return [createEntryReference(fieldName, type, data)];
110
105
  }
111
106
  const requestedUnionTypeName = (0, union_type_util_ts_1.getUnionTypeNameFromFieldValue)(data);
112
107
  const concreteFieldUnionType = type
@@ -114,63 +109,41 @@ async function getReferencedEntryIds(rootType, context, fieldName, type, data) {
114
109
  .find((concreteFieldType) => concreteFieldType.name === requestedUnionTypeName);
115
110
  if (!concreteFieldUnionType) {
116
111
  throw (0, errors_ts_1.createError)(`Type "${requestedUnionTypeName}" found in field data is not a valid type for ` +
117
- `union type "${type.name}".`, "BAD_REPOSITORY_DATA" /* ErrorCode.BAD_REPOSITORY_DATA */, {
112
+ `union type "${type.name}".`, errors_ts_1.ErrorCode.BAD_REPOSITORY_DATA, {
118
113
  typeName: type.name,
119
- fieldName: fieldName ? fieldName : undefined,
114
+ fieldName: fieldName,
120
115
  fieldValue: data,
121
116
  });
122
117
  }
123
- const unionValue = (0, union_type_util_ts_1.getUnionValue)(data);
124
- return getReferencedEntryIds(rootType, context, fieldName, concreteFieldUnionType, unionValue);
118
+ return getReferencesInObjectFields(concreteFieldUnionType, (0, union_type_util_ts_1.getUnionValue)(data));
125
119
  }
126
120
  if ((0, graphql_1.isObjectType)(type)) {
127
- if (type.name !== rootType.name &&
128
- (0, directive_util_ts_1.hasDirective)(type, directive_util_ts_1.ENTRY_DIRECTIVE_NAME)) {
129
- const referenceId = await getValidatedReferenceId(context, fieldName, type, data);
130
- return [referenceId];
131
- }
132
- else {
133
- let referencedEntryIds = [];
134
- for (const [fieldsKey, field] of Object.entries(type.getFields())) {
135
- // expect our object type to hold EntryData (i.e. an object)
136
- if (Array.isArray(data) || !(0, util_ts_1.isEntryData)(data)) {
137
- throw (0, errors_ts_1.createError)(`Expected object as data for type "${type.name}".`, "BAD_REPOSITORY_DATA" /* ErrorCode.BAD_REPOSITORY_DATA */, {
138
- typeName: type.name,
139
- fieldName: field.name ? field.name : undefined,
140
- });
141
- }
142
- // recursively get referenced IDs in nested data
143
- const nestedResult = await getReferencedEntryIds(rootType, context, fieldsKey, field.type, data[fieldsKey]);
144
- referencedEntryIds = [...referencedEntryIds, ...nestedResult];
145
- }
146
- // deduplicate
147
- referencedEntryIds = [...new Set(referencedEntryIds)];
148
- return referencedEntryIds;
121
+ if ((0, directive_util_ts_1.hasDirective)(type, directive_util_ts_1.ENTRY_DIRECTIVE_NAME)) {
122
+ return [createEntryReference(fieldName, type, data)];
149
123
  }
124
+ return getReferencesInObjectFields(type, data);
150
125
  }
151
126
  return [];
152
127
  }
153
- async function getValidatedReferenceId(context, fieldName, type, data) {
154
- if (data === null ||
155
- data === undefined ||
156
- !(0, util_ts_1.isEntryData)(data) ||
157
- Array.isArray(data)) {
158
- throw (0, errors_ts_1.createError)(`Expected object as data for field "${fieldName}" of type "${type.name}".`, "BAD_REPOSITORY_DATA" /* ErrorCode.BAD_REPOSITORY_DATA */, {
159
- typeName: type.name,
160
- fieldName: fieldName ? fieldName : undefined,
128
+ function createEntryReference(fieldName, fieldType, data) {
129
+ if (typeof data !== 'object' ||
130
+ data === null ||
131
+ !('id' in data) ||
132
+ typeof data.id !== 'string') {
133
+ throw (0, errors_ts_1.createError)(`Expected key "id" with value of type string in data of field "${fieldName}" of type "${fieldType.name}".`, errors_ts_1.ErrorCode.BAD_REPOSITORY_DATA, {
134
+ typeName: fieldType.name,
135
+ fieldName: fieldName,
161
136
  fieldValue: data,
162
137
  });
163
138
  }
164
- await validateReference(context, fieldName ? fieldName : '', type, data);
165
- let referencedId = null;
166
- if (typeof (referencedId = data.id) !== 'string') {
167
- throw (0, errors_ts_1.createError)(`Expected a key "id" with value of type string in data of field "${fieldName}" of type "${type.name}"` +
168
- ` after this reference was just verified to be valid.`, "INTERNAL_ERROR" /* ErrorCode.INTERNAL_ERROR */, {
169
- typeName: type.name,
170
- fieldName: fieldName ? fieldName : undefined,
171
- fieldValue: data,
172
- });
139
+ return { id: data.id, fieldName, fieldType };
140
+ }
141
+ function isPermittedReferenceType(referencedTypeName, fieldType) {
142
+ if ((0, graphql_1.isUnionType)(fieldType)) {
143
+ return fieldType
144
+ .getTypes()
145
+ .some((concreteType) => concreteType.name === referencedTypeName);
173
146
  }
174
- return referencedId;
147
+ return fieldType.name === referencedTypeName;
175
148
  }
176
149
  //# sourceMappingURL=entry-reference-util.js.map