@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
@@ -1,9 +1,13 @@
1
- import { findById, findByTypeId } from '../../../persistence/persistence.ts'
2
- import { Entry, EntryDraft } from '@commitspark/git-adapter'
3
- import { getReferencedEntryIds } from '../../schema-utils/entry-reference-util.ts'
4
- import { isObjectType } from 'graphql'
1
+ import {
2
+ assertExpectedVersion,
3
+ findByTypeId,
4
+ } from '../../../persistence/persistence.ts'
5
+ import { Entry } from '@commitspark/git-adapter'
6
+ import { getReferencingEntryIds } from '../../schema-utils/entry-reference-util.ts'
5
7
  import { QueryMutationResolver } from '../types.ts'
6
8
  import { createError, ErrorCode } from '../../errors.ts'
9
+ import { getCommitMessage } from '../commit-message.ts'
10
+ import { commitWithRetry } from '../../../persistence/commit-with-retry.ts'
7
11
 
8
12
  export const mutationDeleteResolver: QueryMutationResolver<string> = async (
9
13
  source,
@@ -11,66 +15,47 @@ export const mutationDeleteResolver: QueryMutationResolver<string> = async (
11
15
  context,
12
16
  info,
13
17
  ) => {
14
- const entry: Entry = await findByTypeId(context, context.type.name, args.id)
15
-
16
- if (entry.metadata.referencedBy && entry.metadata.referencedBy.length > 0) {
17
- const otherIds = entry.metadata.referencedBy
18
- .map((referenceId) => `"${referenceId}"`)
19
- .join(', ')
20
- throw createError(
21
- `Entry with ID "${args.id}" is still referenced by entries [${otherIds}].`,
22
- ErrorCode.IN_USE,
23
- {
24
- argumentName: 'id',
25
- argumentValue: args.id,
26
- },
27
- )
28
- }
18
+ const commitMessage = getCommitMessage(
19
+ args.commit,
20
+ 'Delete',
21
+ context.type.name,
22
+ args.id,
23
+ )
29
24
 
30
- const entryType = info.schema.getType(context.type.name)
31
- if (!isObjectType(entryType)) {
32
- throw createError(
33
- `Type "${context.type.name}" is not an ObjectType.`,
34
- ErrorCode.INTERNAL_ERROR,
35
- {},
36
- )
37
- }
25
+ await commitWithRetry(context, async () => {
26
+ const entry: Entry = await findByTypeId(context, context.type.name, args.id)
27
+ await assertExpectedVersion(context, args.id, args.expectedVersion)
38
28
 
39
- const referencedEntryIds = await getReferencedEntryIds(
40
- entryType,
41
- context,
42
- null,
43
- entryType,
44
- entry.data ?? null,
45
- )
46
- const referencedEntryUpdates: EntryDraft[] = []
47
- for (const referencedEntryId of referencedEntryIds) {
48
- const noLongerReferencedEntry = await findById(context, referencedEntryId)
49
- referencedEntryUpdates.push({
50
- ...noLongerReferencedEntry,
51
- metadata: {
52
- ...noLongerReferencedEntry.metadata,
53
- referencedBy: noLongerReferencedEntry.metadata.referencedBy?.filter(
54
- (entryId) => entryId !== args.id,
55
- ),
56
- },
57
- deletion: false,
58
- })
59
- }
29
+ // references held by the entry itself are deleted together with the entry
30
+ const otherReferencingIds = (
31
+ await getReferencingEntryIds(context, info.schema, args.id)
32
+ ).filter((referencingId) => referencingId !== args.id)
33
+ if (otherReferencingIds.length > 0) {
34
+ const otherIds = otherReferencingIds
35
+ .map((referenceId) => `"${referenceId}"`)
36
+ .join(', ')
37
+ throw createError(
38
+ `Entry with ID "${args.id}" is still referenced by entries [${otherIds}].`,
39
+ ErrorCode.IN_USE,
40
+ {
41
+ argumentName: 'id',
42
+ argumentValue: args.id,
43
+ },
44
+ )
45
+ }
60
46
 
61
- const commit = await context.gitAdapter.createCommit({
62
- ref: context.branch,
63
- parentSha: context.getCurrentHash(),
64
- entries: [
65
- {
66
- ...entry,
67
- deletion: true,
68
- },
69
- ...referencedEntryUpdates,
70
- ],
71
- message: args.commitMessage,
47
+ return {
48
+ ref: context.branch,
49
+ parentSha: context.getCurrentHash(),
50
+ entries: [
51
+ {
52
+ ...entry,
53
+ deletion: true,
54
+ },
55
+ ],
56
+ ...commitMessage,
57
+ }
72
58
  })
73
- context.setCurrentHash(commit.commitHash)
74
59
 
75
60
  return args.id
76
61
  }
@@ -1,9 +1,14 @@
1
- import { findById, findByTypeId } from '../../../persistence/persistence.ts'
2
- import { getReferencedEntryIds } from '../../schema-utils/entry-reference-util.ts'
1
+ import {
2
+ assertExpectedVersion,
3
+ findByTypeId,
4
+ } from '../../../persistence/persistence.ts'
5
+ import { validateEntryReferences } from '../../schema-utils/entry-reference-util.ts'
3
6
  import { isObjectType } from 'graphql'
4
- import { EntryData, EntryDraft } from '@commitspark/git-adapter'
7
+ import { EntryData } from '@commitspark/git-adapter'
5
8
  import { QueryMutationResolver } from '../types.ts'
6
9
  import { createError, ErrorCode } from '../../errors.ts'
10
+ import { getCommitMessage } from '../commit-message.ts'
11
+ import { commitWithRetry } from '../../../persistence/commit-with-retry.ts'
7
12
 
8
13
  function mergeData(
9
14
  existingEntryData: EntryData,
@@ -21,6 +26,7 @@ export const mutationUpdateResolver: QueryMutationResolver<EntryData> = async (
21
26
  context,
22
27
  info,
23
28
  ) => {
29
+ void info
24
30
  if (!isObjectType(context.type)) {
25
31
  throw createError(
26
32
  `Type "${context.type.name}" cannot be mutated as is not an ObjectType.`,
@@ -28,76 +34,41 @@ export const mutationUpdateResolver: QueryMutationResolver<EntryData> = async (
28
34
  {},
29
35
  )
30
36
  }
31
-
32
- const existingEntry = await findByTypeId(context, context.type.name, args.id)
33
-
34
- const existingReferencedEntryIds = await getReferencedEntryIds(
35
- context.type,
36
- context,
37
- null,
38
- info.returnType,
39
- existingEntry.data ?? null,
40
- )
41
-
42
- const mergedData = mergeData(existingEntry.data ?? null, args.data ?? null)
43
- const updatedReferencedEntryIds = await getReferencedEntryIds(
44
- context.type,
45
- context,
46
- null,
47
- info.returnType,
48
- mergedData,
49
- )
50
-
51
- const noLongerReferencedIds = existingReferencedEntryIds.filter(
52
- (entryId) => !updatedReferencedEntryIds.includes(entryId),
53
- )
54
- const newlyReferencedIds = updatedReferencedEntryIds.filter(
55
- (entryId) => !existingReferencedEntryIds.includes(entryId),
37
+ // narrowed type, as narrowing does not apply within the callback below
38
+ const entryType = context.type
39
+ const commitMessage = getCommitMessage(
40
+ args.commit,
41
+ 'Update',
42
+ context.type.name,
43
+ args.id,
56
44
  )
57
45
 
58
- const referencedEntryUpdates: EntryDraft[] = []
59
- for (const noLongerReferencedEntryId of noLongerReferencedIds) {
60
- const noLongerReferencedEntry = await findById(
46
+ await commitWithRetry(context, async () => {
47
+ const existingEntry = await findByTypeId(
61
48
  context,
62
- noLongerReferencedEntryId,
63
- )
64
- referencedEntryUpdates.push({
65
- ...noLongerReferencedEntry,
66
- metadata: {
67
- ...noLongerReferencedEntry.metadata,
68
- referencedBy: noLongerReferencedEntry.metadata.referencedBy?.filter(
69
- (entryId) => entryId !== args.id,
70
- ),
71
- },
72
- deletion: false,
73
- })
74
- }
75
- for (const newlyReferencedEntryId of newlyReferencedIds) {
76
- const newlyReferencedEntry = await findById(context, newlyReferencedEntryId)
77
- const updatedReferenceList: string[] = [
78
- ...(newlyReferencedEntry.metadata.referencedBy ?? []),
49
+ context.type.name,
79
50
  args.id,
80
- ].sort()
81
- referencedEntryUpdates.push({
82
- ...newlyReferencedEntry,
83
- metadata: {
84
- ...newlyReferencedEntry.metadata,
85
- referencedBy: updatedReferenceList,
86
- },
87
- deletion: false,
88
- })
89
- }
51
+ )
52
+ await assertExpectedVersion(context, args.id, args.expectedVersion)
53
+
54
+ const mergedData = mergeData(existingEntry.data ?? null, args.data ?? null)
55
+ await validateEntryReferences(entryType, context, mergedData)
90
56
 
91
- const commit = await context.gitAdapter.createCommit({
92
- ref: context.branch,
93
- parentSha: context.getCurrentHash(),
94
- entries: [
95
- { ...existingEntry, data: mergedData, deletion: false },
96
- ...referencedEntryUpdates,
97
- ],
98
- message: args.commitMessage,
57
+ return {
58
+ ref: context.branch,
59
+ parentSha: context.getCurrentHash(),
60
+ entries: [
61
+ {
62
+ id: existingEntry.id,
63
+ // only the type is written, which removes metadata no longer in use from existing entries
64
+ metadata: { type: existingEntry.metadata.type },
65
+ data: mergedData,
66
+ deletion: false,
67
+ },
68
+ ],
69
+ ...commitMessage,
70
+ }
99
71
  })
100
- context.setCurrentHash(commit.commitHash)
101
72
 
102
73
  const updatedEntry = await findByTypeId(context, context.type.name, args.id)
103
74
  return { ...updatedEntry.data, id: updatedEntry.id }
@@ -8,14 +8,24 @@ import { EntryData } from '@commitspark/git-adapter'
8
8
  import { SearchHit } from '@commitspark/search-adapter'
9
9
  import { RecursiveArray } from './field-resolvers/types.ts'
10
10
 
11
- export interface QueryMutationResolverContext extends ApolloContext {
11
+ export interface CommitInput {
12
+ message?: string | null
13
+ body?: string | null
14
+ }
15
+
16
+ interface QueryMutationResolverContext extends ApolloContext {
12
17
  type: GraphQLNamedType
13
18
  }
14
19
 
15
20
  export type QueryMutationResolver<ResultType> = GraphQLFieldResolver<
16
21
  unknown,
17
22
  QueryMutationResolverContext,
18
- { id: string; data?: EntryData; commitMessage: string },
23
+ {
24
+ id: string
25
+ data?: EntryData
26
+ commit?: CommitInput | null
27
+ expectedVersion?: string | null
28
+ },
19
29
  Promise<ResultType>
20
30
  >
21
31
 
@@ -42,3 +52,17 @@ export type ContextInjectionResolver = GraphQLFieldResolver<
42
52
  Record<string, unknown>,
43
53
  Promise<RecursiveArray<EntryData>>
44
54
  >
55
+
56
+ export type ReferencedByResolver = GraphQLFieldResolver<
57
+ EntryData & { id: string },
58
+ ApolloContext,
59
+ Record<string, never>,
60
+ Promise<string[]>
61
+ >
62
+
63
+ export type VersionResolver = GraphQLFieldResolver<
64
+ EntryData & { id: string },
65
+ ApolloContext,
66
+ Record<string, never>,
67
+ Promise<string>
68
+ >
@@ -1,5 +1,7 @@
1
1
  import {
2
+ generateCommitInputType,
2
3
  generateQueriesAndMutations,
4
+ generateEntryFields,
3
5
  generateSearchQuery,
4
6
  generateTypeNameQuery,
5
7
  } from './queries-mutations-generator.ts'
@@ -25,8 +27,10 @@ import { FieldResolver } from './resolvers/field-resolvers/types.ts'
25
27
  import {
26
28
  ContextInjectionResolver,
27
29
  QueryMutationResolver,
30
+ ReferencedByResolver,
28
31
  SearchQueryResolver,
29
32
  UnionTypeResolver,
33
+ VersionResolver,
30
34
  } from './resolvers/types.ts'
31
35
  import { EntryData } from '@commitspark/git-adapter'
32
36
 
@@ -61,6 +65,9 @@ export async function generateSchema(
61
65
  const generatedTypeNameQuery = generateTypeNameQuery()
62
66
  const generatedSearchQuery =
63
67
  context.searchAdapter !== undefined ? generateSearchQuery() : undefined
68
+ const generatedEntryFields = generateEntryFields(
69
+ schemaAnalyzerResult.entryDirectiveTypes,
70
+ )
64
71
 
65
72
  const generatedObjectInputTypeStrings = generateObjectInputTypeStrings(
66
73
  schemaAnalyzerResult.objectTypes,
@@ -132,6 +139,8 @@ ${generatedSchemaRootTypeStrings}`
132
139
  | GraphQLTypeResolver<unknown, ApolloContext>
133
140
  | ContextInjectionResolver
134
141
  | FieldResolver
142
+ | ReferencedByResolver
143
+ | VersionResolver
135
144
  >
136
145
  | UnionTypeResolverRecord
137
146
  > = {
@@ -151,13 +160,23 @@ ${generatedSchemaRootTypeStrings}`
151
160
  ...generatedObjectTypeFieldResolvers[typeName],
152
161
  }
153
162
  }
163
+ for (const entryFields of generatedEntryFields) {
164
+ allGeneratedResolvers[entryFields.typeName] = {
165
+ ...(allGeneratedResolvers[entryFields.typeName] ?? {}),
166
+ ...entryFields.resolvers,
167
+ }
168
+ }
154
169
 
155
170
  const typeDefs = [
156
171
  filteredOriginalSchemaString,
157
172
  generatedSchemaString,
173
+ generateCommitInputType(),
158
174
  generatedIdInputTypeStrings.join('\n'),
159
175
  generatedObjectInputTypeStrings.join('\n'),
160
176
  generatedUnionInputTypeStrings.join('\n'),
177
+ generatedEntryFields
178
+ .map((entryFields) => entryFields.typeExtensionString)
179
+ .join('\n'),
161
180
  generatedSearchQuery?.typeDefinitionString ?? '',
162
181
  ].filter((typeDef) => typeDef.length > 0)
163
182