@commitspark/graphql-api 0.90.0 → 1.0.0-beta.2

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 (342) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +8 -9
  3. package/dist/cjs/client.js +65 -0
  4. package/dist/cjs/client.js.map +1 -0
  5. package/dist/cjs/graphql/{apollo-config-factory.service.js → apollo-config-factory.js} +12 -17
  6. package/dist/cjs/graphql/apollo-config-factory.js.map +1 -0
  7. package/dist/cjs/graphql/errors.js +32 -0
  8. package/dist/cjs/graphql/errors.js.map +1 -0
  9. package/dist/cjs/graphql/input-type-generator.js +94 -0
  10. package/dist/cjs/graphql/input-type-generator.js.map +1 -0
  11. package/dist/cjs/graphql/queries-mutations-generator.js +70 -0
  12. package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -0
  13. package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js +26 -0
  14. package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -0
  15. package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js +93 -0
  16. package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -0
  17. package/dist/cjs/graphql/{field-resolver/fieldResolver.js → resolvers/field-resolvers/types.js} +1 -1
  18. package/dist/cjs/graphql/resolvers/field-resolvers/types.js.map +1 -0
  19. package/dist/cjs/graphql/resolvers/field-resolvers/union-value-resolver.js +25 -0
  20. package/dist/cjs/graphql/resolvers/field-resolvers/union-value-resolver.js.map +1 -0
  21. package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js +53 -0
  22. package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -0
  23. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +74 -0
  24. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -0
  25. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +52 -0
  26. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -0
  27. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +57 -0
  28. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -0
  29. package/dist/cjs/graphql/{resolver-generators/query-type-by-id-resolver-generator.js → resolvers/query-mutation-resolvers/query-by-id-resolver.js} +8 -13
  30. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js.map +1 -0
  31. package/dist/cjs/graphql/{resolver-generators/query-count-all-resolver-generator.js → resolvers/query-mutation-resolvers/query-every-resolver.js} +10 -15
  32. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js.map +1 -0
  33. package/dist/cjs/graphql/{resolver-generators/query-by-id-resolver-generator.js → resolvers/query-mutation-resolvers/query-type-by-id-resolver.js} +7 -14
  34. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js.map +1 -0
  35. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +27 -0
  36. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -0
  37. package/dist/cjs/graphql/resolvers/types.js +3 -0
  38. package/dist/cjs/graphql/resolvers/types.js.map +1 -0
  39. package/dist/cjs/graphql/schema-analyzer.js +38 -0
  40. package/dist/cjs/graphql/schema-analyzer.js.map +1 -0
  41. package/dist/cjs/graphql/schema-generator.js +100 -0
  42. package/dist/cjs/graphql/schema-generator.js.map +1 -0
  43. package/dist/cjs/graphql/schema-root-type-generator.js +32 -0
  44. package/dist/cjs/graphql/schema-root-type-generator.js.map +1 -0
  45. package/dist/cjs/graphql/schema-utils/entry-reference-util.js +115 -113
  46. package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
  47. package/dist/cjs/graphql/schema-utils/entry-type-util.js +24 -26
  48. package/dist/cjs/graphql/schema-utils/entry-type-util.js.map +1 -1
  49. package/dist/cjs/graphql/schema-utils/union-type-util.js +19 -16
  50. package/dist/cjs/graphql/schema-utils/union-type-util.js.map +1 -1
  51. package/dist/cjs/graphql/schema-validator.js +23 -26
  52. package/dist/cjs/graphql/schema-validator.js.map +1 -1
  53. package/dist/cjs/index.js +10 -7
  54. package/dist/cjs/index.js.map +1 -1
  55. package/dist/cjs/persistence/persistence.js +63 -0
  56. package/dist/cjs/persistence/persistence.js.map +1 -0
  57. package/dist/esm/client.js +53 -0
  58. package/dist/esm/client.js.map +1 -0
  59. package/dist/esm/graphql/apollo-config-factory.js +12 -0
  60. package/dist/esm/graphql/apollo-config-factory.js.map +1 -0
  61. package/dist/esm/graphql/errors.js +28 -0
  62. package/dist/esm/graphql/errors.js.map +1 -0
  63. package/dist/esm/graphql/input-type-generator.js +89 -0
  64. package/dist/esm/graphql/input-type-generator.js.map +1 -0
  65. package/dist/esm/graphql/queries-mutations-generator.js +66 -0
  66. package/dist/esm/graphql/queries-mutations-generator.js.map +1 -0
  67. package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js +13 -0
  68. package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -0
  69. package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js +80 -0
  70. package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -0
  71. package/dist/esm/graphql/resolvers/field-resolvers/types.js +2 -0
  72. package/dist/esm/graphql/resolvers/field-resolvers/types.js.map +1 -0
  73. package/dist/esm/graphql/resolvers/field-resolvers/union-value-resolver.js +15 -0
  74. package/dist/esm/graphql/resolvers/field-resolvers/union-value-resolver.js.map +1 -0
  75. package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js +50 -0
  76. package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -0
  77. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +67 -0
  78. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -0
  79. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +48 -0
  80. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -0
  81. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +60 -0
  82. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -0
  83. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js +6 -0
  84. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js.map +1 -0
  85. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js +8 -0
  86. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js.map +1 -0
  87. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js +5 -0
  88. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js.map +1 -0
  89. package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +14 -0
  90. package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -0
  91. package/dist/esm/graphql/resolvers/types.js +2 -0
  92. package/dist/esm/graphql/resolvers/types.js.map +1 -0
  93. package/dist/esm/graphql/schema-analyzer.js +34 -0
  94. package/dist/esm/graphql/schema-analyzer.js.map +1 -0
  95. package/dist/esm/graphql/schema-generator.js +94 -0
  96. package/dist/esm/graphql/schema-generator.js.map +1 -0
  97. package/dist/esm/graphql/schema-root-type-generator.js +29 -0
  98. package/dist/esm/graphql/schema-root-type-generator.js.map +1 -0
  99. package/dist/esm/graphql/schema-utils/entry-reference-util.js +108 -108
  100. package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
  101. package/dist/esm/graphql/schema-utils/entry-type-util.js +20 -23
  102. package/dist/esm/graphql/schema-utils/entry-type-util.js.map +1 -1
  103. package/dist/esm/graphql/schema-utils/union-type-util.js +17 -14
  104. package/dist/esm/graphql/schema-utils/union-type-util.js.map +1 -1
  105. package/dist/esm/graphql/schema-validator.js +18 -20
  106. package/dist/esm/graphql/schema-validator.js.map +1 -1
  107. package/dist/esm/index.js +8 -5
  108. package/dist/esm/index.js.map +1 -1
  109. package/dist/esm/persistence/persistence.js +40 -0
  110. package/dist/esm/persistence/persistence.js.map +1 -0
  111. package/dist/tsconfig.build.cjs.tsbuildinfo +1 -1
  112. package/dist/tsconfig.build.esm.tsbuildinfo +1 -1
  113. package/dist/tsconfig.build.types.tsbuildinfo +1 -1
  114. package/dist/types/client.d.ts +27 -0
  115. package/dist/types/client.d.ts.map +1 -0
  116. package/dist/types/graphql/apollo-config-factory.d.ts +4 -0
  117. package/dist/types/graphql/apollo-config-factory.d.ts.map +1 -0
  118. package/dist/types/graphql/errors.d.ts +20 -0
  119. package/dist/types/graphql/errors.d.ts.map +1 -0
  120. package/dist/types/graphql/input-type-generator.d.ts +6 -0
  121. package/dist/types/graphql/input-type-generator.d.ts.map +1 -0
  122. package/dist/types/graphql/queries-mutations-generator.d.ts +18 -0
  123. package/dist/types/graphql/queries-mutations-generator.d.ts.map +1 -0
  124. package/dist/types/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts +3 -0
  125. package/dist/types/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts.map +1 -0
  126. package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts +3 -0
  127. package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +1 -0
  128. package/dist/types/graphql/resolvers/field-resolvers/types.d.ts +12 -0
  129. package/dist/types/graphql/resolvers/field-resolvers/types.d.ts.map +1 -0
  130. package/dist/types/graphql/resolvers/field-resolvers/union-value-resolver.d.ts +3 -0
  131. package/dist/types/graphql/resolvers/field-resolvers/union-value-resolver.d.ts.map +1 -0
  132. package/dist/types/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts +8 -0
  133. package/dist/types/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts.map +1 -0
  134. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts +5 -0
  135. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -0
  136. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts +5 -0
  137. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map +1 -0
  138. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts +5 -0
  139. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map +1 -0
  140. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts +5 -0
  141. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts.map +1 -0
  142. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts +5 -0
  143. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts.map +1 -0
  144. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts +4 -0
  145. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts.map +1 -0
  146. package/dist/types/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts +4 -0
  147. package/dist/types/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts.map +1 -0
  148. package/dist/types/graphql/resolvers/types.d.ts +8 -0
  149. package/dist/types/graphql/resolvers/types.d.ts.map +1 -0
  150. package/dist/types/graphql/{schema-analyzer.service.d.ts → schema-analyzer.d.ts} +3 -5
  151. package/dist/types/graphql/schema-analyzer.d.ts.map +1 -0
  152. package/dist/types/graphql/schema-generator.d.ts +4 -0
  153. package/dist/types/graphql/schema-generator.d.ts.map +1 -0
  154. package/dist/types/graphql/schema-root-type-generator.d.ts +3 -0
  155. package/dist/types/graphql/schema-root-type-generator.d.ts.map +1 -0
  156. package/dist/types/graphql/schema-utils/entry-reference-util.d.ts +2 -13
  157. package/dist/types/graphql/schema-utils/entry-reference-util.d.ts.map +1 -1
  158. package/dist/types/graphql/schema-utils/entry-type-util.d.ts +3 -5
  159. package/dist/types/graphql/schema-utils/entry-type-util.d.ts.map +1 -1
  160. package/dist/types/graphql/schema-utils/union-type-util.d.ts +2 -4
  161. package/dist/types/graphql/schema-utils/union-type-util.d.ts.map +1 -1
  162. package/dist/types/graphql/schema-validator.d.ts +1 -4
  163. package/dist/types/graphql/schema-validator.d.ts.map +1 -1
  164. package/dist/types/index.d.ts +9 -3
  165. package/dist/types/index.d.ts.map +1 -1
  166. package/dist/types/persistence/persistence.d.ts +6 -0
  167. package/dist/types/persistence/persistence.d.ts.map +1 -0
  168. package/package.json +10 -2
  169. package/src/client.ts +114 -0
  170. package/src/graphql/apollo-config-factory.ts +17 -0
  171. package/src/graphql/errors.ts +43 -0
  172. package/src/graphql/input-type-generator.ts +126 -0
  173. package/src/graphql/queries-mutations-generator.ts +138 -0
  174. package/src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts +29 -0
  175. package/src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts +125 -0
  176. package/src/graphql/{field-resolver/fieldResolver.ts → resolvers/field-resolvers/types.ts} +5 -4
  177. package/src/graphql/resolvers/field-resolvers/union-value-resolver.ts +24 -0
  178. package/src/graphql/resolvers/object-type-field-default-value-resolver-generator.ts +91 -0
  179. package/src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts +116 -0
  180. package/src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts +85 -0
  181. package/src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts +119 -0
  182. package/src/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.ts +20 -0
  183. package/src/graphql/resolvers/query-mutation-resolvers/query-every-resolver.ts +21 -0
  184. package/src/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.ts +12 -0
  185. package/src/graphql/resolvers/query-mutation-resolvers/union-type-resolver.ts +19 -0
  186. package/src/graphql/resolvers/types.ts +14 -0
  187. package/src/graphql/schema-analyzer.ts +55 -0
  188. package/src/graphql/schema-generator.ts +166 -0
  189. package/src/graphql/schema-root-type-generator.ts +35 -0
  190. package/src/graphql/schema-utils/entry-reference-util.ts +175 -167
  191. package/src/graphql/schema-utils/entry-type-util.ts +25 -28
  192. package/src/graphql/schema-utils/union-type-util.ts +26 -15
  193. package/src/graphql/schema-validator.ts +29 -31
  194. package/src/index.ts +27 -5
  195. package/src/persistence/persistence.ts +70 -0
  196. package/dist/cjs/app/api.service.js +0 -74
  197. package/dist/cjs/app/api.service.js.map +0 -1
  198. package/dist/cjs/container.js +0 -53
  199. package/dist/cjs/container.js.map +0 -1
  200. package/dist/cjs/graphql/apollo-config-factory.service.js.map +0 -1
  201. package/dist/cjs/graphql/field-resolver/entry-reference-resolver.js +0 -26
  202. package/dist/cjs/graphql/field-resolver/entry-reference-resolver.js.map +0 -1
  203. package/dist/cjs/graphql/field-resolver/field-default-value-resolver.js +0 -73
  204. package/dist/cjs/graphql/field-resolver/field-default-value-resolver.js.map +0 -1
  205. package/dist/cjs/graphql/field-resolver/fieldResolver.js.map +0 -1
  206. package/dist/cjs/graphql/field-resolver/union-value-resolver.js +0 -21
  207. package/dist/cjs/graphql/field-resolver/union-value-resolver.js.map +0 -1
  208. package/dist/cjs/graphql/input-type-generator.service.js +0 -97
  209. package/dist/cjs/graphql/input-type-generator.service.js.map +0 -1
  210. package/dist/cjs/graphql/queries-mutations-generator.service.js +0 -82
  211. package/dist/cjs/graphql/queries-mutations-generator.service.js.map +0 -1
  212. package/dist/cjs/graphql/resolver-generators/mutation-create-resolver-generator.js +0 -83
  213. package/dist/cjs/graphql/resolver-generators/mutation-create-resolver-generator.js.map +0 -1
  214. package/dist/cjs/graphql/resolver-generators/mutation-delete-resolver-generator.js +0 -60
  215. package/dist/cjs/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +0 -1
  216. package/dist/cjs/graphql/resolver-generators/mutation-update-resolver-generator.js +0 -62
  217. package/dist/cjs/graphql/resolver-generators/mutation-update-resolver-generator.js.map +0 -1
  218. package/dist/cjs/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js +0 -58
  219. package/dist/cjs/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map +0 -1
  220. package/dist/cjs/graphql/resolver-generators/query-all-resolver-generator.js +0 -27
  221. package/dist/cjs/graphql/resolver-generators/query-all-resolver-generator.js.map +0 -1
  222. package/dist/cjs/graphql/resolver-generators/query-by-id-resolver-generator.js.map +0 -1
  223. package/dist/cjs/graphql/resolver-generators/query-count-all-resolver-generator.js.map +0 -1
  224. package/dist/cjs/graphql/resolver-generators/query-type-by-id-resolver-generator.js.map +0 -1
  225. package/dist/cjs/graphql/resolver-generators/union-type-resolver-generator.js +0 -33
  226. package/dist/cjs/graphql/resolver-generators/union-type-resolver-generator.js.map +0 -1
  227. package/dist/cjs/graphql/schema-analyzer.service.js +0 -41
  228. package/dist/cjs/graphql/schema-analyzer.service.js.map +0 -1
  229. package/dist/cjs/graphql/schema-generator.service.js +0 -103
  230. package/dist/cjs/graphql/schema-generator.service.js.map +0 -1
  231. package/dist/cjs/graphql/schema-root-type-generator.service.js +0 -39
  232. package/dist/cjs/graphql/schema-root-type-generator.service.js.map +0 -1
  233. package/dist/cjs/persistence/persistence.service.js +0 -66
  234. package/dist/cjs/persistence/persistence.service.js.map +0 -1
  235. package/dist/esm/app/api.service.js +0 -61
  236. package/dist/esm/app/api.service.js.map +0 -1
  237. package/dist/esm/container.js +0 -50
  238. package/dist/esm/container.js.map +0 -1
  239. package/dist/esm/graphql/apollo-config-factory.service.js +0 -17
  240. package/dist/esm/graphql/apollo-config-factory.service.js.map +0 -1
  241. package/dist/esm/graphql/field-resolver/entry-reference-resolver.js +0 -13
  242. package/dist/esm/graphql/field-resolver/entry-reference-resolver.js.map +0 -1
  243. package/dist/esm/graphql/field-resolver/field-default-value-resolver.js +0 -73
  244. package/dist/esm/graphql/field-resolver/field-default-value-resolver.js.map +0 -1
  245. package/dist/esm/graphql/field-resolver/fieldResolver.js +0 -2
  246. package/dist/esm/graphql/field-resolver/fieldResolver.js.map +0 -1
  247. package/dist/esm/graphql/field-resolver/union-value-resolver.js +0 -22
  248. package/dist/esm/graphql/field-resolver/union-value-resolver.js.map +0 -1
  249. package/dist/esm/graphql/input-type-generator.service.js +0 -94
  250. package/dist/esm/graphql/input-type-generator.service.js.map +0 -1
  251. package/dist/esm/graphql/queries-mutations-generator.service.js +0 -85
  252. package/dist/esm/graphql/queries-mutations-generator.service.js.map +0 -1
  253. package/dist/esm/graphql/resolver-generators/mutation-create-resolver-generator.js +0 -78
  254. package/dist/esm/graphql/resolver-generators/mutation-create-resolver-generator.js.map +0 -1
  255. package/dist/esm/graphql/resolver-generators/mutation-delete-resolver-generator.js +0 -58
  256. package/dist/esm/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +0 -1
  257. package/dist/esm/graphql/resolver-generators/mutation-update-resolver-generator.js +0 -67
  258. package/dist/esm/graphql/resolver-generators/mutation-update-resolver-generator.js.map +0 -1
  259. package/dist/esm/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js +0 -55
  260. package/dist/esm/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map +0 -1
  261. package/dist/esm/graphql/resolver-generators/query-all-resolver-generator.js +0 -15
  262. package/dist/esm/graphql/resolver-generators/query-all-resolver-generator.js.map +0 -1
  263. package/dist/esm/graphql/resolver-generators/query-by-id-resolver-generator.js +0 -13
  264. package/dist/esm/graphql/resolver-generators/query-by-id-resolver-generator.js.map +0 -1
  265. package/dist/esm/graphql/resolver-generators/query-count-all-resolver-generator.js +0 -14
  266. package/dist/esm/graphql/resolver-generators/query-count-all-resolver-generator.js.map +0 -1
  267. package/dist/esm/graphql/resolver-generators/query-type-by-id-resolver-generator.js +0 -12
  268. package/dist/esm/graphql/resolver-generators/query-type-by-id-resolver-generator.js.map +0 -1
  269. package/dist/esm/graphql/resolver-generators/union-type-resolver-generator.js +0 -22
  270. package/dist/esm/graphql/resolver-generators/union-type-resolver-generator.js.map +0 -1
  271. package/dist/esm/graphql/schema-analyzer.service.js +0 -36
  272. package/dist/esm/graphql/schema-analyzer.service.js.map +0 -1
  273. package/dist/esm/graphql/schema-generator.service.js +0 -103
  274. package/dist/esm/graphql/schema-generator.service.js.map +0 -1
  275. package/dist/esm/graphql/schema-root-type-generator.service.js +0 -35
  276. package/dist/esm/graphql/schema-root-type-generator.service.js.map +0 -1
  277. package/dist/esm/persistence/persistence.service.js +0 -45
  278. package/dist/esm/persistence/persistence.service.js.map +0 -1
  279. package/dist/types/app/api.service.d.ts +0 -34
  280. package/dist/types/app/api.service.d.ts.map +0 -1
  281. package/dist/types/container.d.ts +0 -3
  282. package/dist/types/container.d.ts.map +0 -1
  283. package/dist/types/graphql/apollo-config-factory.service.d.ts +0 -9
  284. package/dist/types/graphql/apollo-config-factory.service.d.ts.map +0 -1
  285. package/dist/types/graphql/field-resolver/entry-reference-resolver.d.ts +0 -11
  286. package/dist/types/graphql/field-resolver/entry-reference-resolver.d.ts.map +0 -1
  287. package/dist/types/graphql/field-resolver/field-default-value-resolver.d.ts +0 -15
  288. package/dist/types/graphql/field-resolver/field-default-value-resolver.d.ts.map +0 -1
  289. package/dist/types/graphql/field-resolver/fieldResolver.d.ts +0 -11
  290. package/dist/types/graphql/field-resolver/fieldResolver.d.ts.map +0 -1
  291. package/dist/types/graphql/field-resolver/union-value-resolver.d.ts +0 -11
  292. package/dist/types/graphql/field-resolver/union-value-resolver.d.ts.map +0 -1
  293. package/dist/types/graphql/input-type-generator.service.d.ts +0 -12
  294. package/dist/types/graphql/input-type-generator.service.d.ts.map +0 -1
  295. package/dist/types/graphql/queries-mutations-generator.service.d.ts +0 -39
  296. package/dist/types/graphql/queries-mutations-generator.service.d.ts.map +0 -1
  297. package/dist/types/graphql/resolver-generators/mutation-create-resolver-generator.d.ts +0 -12
  298. package/dist/types/graphql/resolver-generators/mutation-create-resolver-generator.d.ts.map +0 -1
  299. package/dist/types/graphql/resolver-generators/mutation-delete-resolver-generator.d.ts +0 -12
  300. package/dist/types/graphql/resolver-generators/mutation-delete-resolver-generator.d.ts.map +0 -1
  301. package/dist/types/graphql/resolver-generators/mutation-update-resolver-generator.d.ts +0 -13
  302. package/dist/types/graphql/resolver-generators/mutation-update-resolver-generator.d.ts.map +0 -1
  303. package/dist/types/graphql/resolver-generators/object-type-field-default-value-resolver-generator.d.ts +0 -13
  304. package/dist/types/graphql/resolver-generators/object-type-field-default-value-resolver-generator.d.ts.map +0 -1
  305. package/dist/types/graphql/resolver-generators/query-all-resolver-generator.d.ts +0 -10
  306. package/dist/types/graphql/resolver-generators/query-all-resolver-generator.d.ts.map +0 -1
  307. package/dist/types/graphql/resolver-generators/query-by-id-resolver-generator.d.ts +0 -10
  308. package/dist/types/graphql/resolver-generators/query-by-id-resolver-generator.d.ts.map +0 -1
  309. package/dist/types/graphql/resolver-generators/query-count-all-resolver-generator.d.ts +0 -10
  310. package/dist/types/graphql/resolver-generators/query-count-all-resolver-generator.d.ts.map +0 -1
  311. package/dist/types/graphql/resolver-generators/query-type-by-id-resolver-generator.d.ts +0 -9
  312. package/dist/types/graphql/resolver-generators/query-type-by-id-resolver-generator.d.ts.map +0 -1
  313. package/dist/types/graphql/resolver-generators/union-type-resolver-generator.d.ts +0 -11
  314. package/dist/types/graphql/resolver-generators/union-type-resolver-generator.d.ts.map +0 -1
  315. package/dist/types/graphql/schema-analyzer.service.d.ts.map +0 -1
  316. package/dist/types/graphql/schema-generator.service.d.ts +0 -21
  317. package/dist/types/graphql/schema-generator.service.d.ts.map +0 -1
  318. package/dist/types/graphql/schema-root-type-generator.service.d.ts +0 -5
  319. package/dist/types/graphql/schema-root-type-generator.service.d.ts.map +0 -1
  320. package/dist/types/persistence/persistence.service.d.ts +0 -8
  321. package/dist/types/persistence/persistence.service.d.ts.map +0 -1
  322. package/src/app/api.service.ts +0 -121
  323. package/src/container.ts +0 -106
  324. package/src/graphql/apollo-config-factory.service.ts +0 -21
  325. package/src/graphql/field-resolver/entry-reference-resolver.ts +0 -47
  326. package/src/graphql/field-resolver/field-default-value-resolver.ts +0 -152
  327. package/src/graphql/field-resolver/union-value-resolver.ts +0 -46
  328. package/src/graphql/input-type-generator.service.ts +0 -127
  329. package/src/graphql/queries-mutations-generator.service.ts +0 -154
  330. package/src/graphql/resolver-generators/mutation-create-resolver-generator.ts +0 -120
  331. package/src/graphql/resolver-generators/mutation-delete-resolver-generator.ts +0 -96
  332. package/src/graphql/resolver-generators/mutation-update-resolver-generator.ts +0 -127
  333. package/src/graphql/resolver-generators/object-type-field-default-value-resolver-generator.ts +0 -117
  334. package/src/graphql/resolver-generators/query-all-resolver-generator.ts +0 -29
  335. package/src/graphql/resolver-generators/query-by-id-resolver-generator.ts +0 -23
  336. package/src/graphql/resolver-generators/query-count-all-resolver-generator.ts +0 -29
  337. package/src/graphql/resolver-generators/query-type-by-id-resolver-generator.ts +0 -27
  338. package/src/graphql/resolver-generators/union-type-resolver-generator.ts +0 -38
  339. package/src/graphql/schema-analyzer.service.ts +0 -57
  340. package/src/graphql/schema-generator.service.ts +0 -178
  341. package/src/graphql/schema-root-type-generator.service.ts +0 -44
  342. package/src/persistence/persistence.service.ts +0 -74
package/CHANGELOG.md CHANGED
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.0.0-beta.2] - 2025-11-07
9
+
10
+ ### Changed
11
+
12
+ - Expose errors explicitly and with metadata
13
+ - Rename generated `all...` queries to `every...` to avoid having to pluralize entry type names
14
+
15
+ ## [1.0.0-beta.1] - 2025-11-05
16
+
17
+ ### Changed
18
+
19
+ - Refactor implementation to drop dependency injection pattern
20
+ - Rename main entry point `getApiService()` to `createClient()` to better match purpose
21
+ - Move `gitAdapter` argument into `createClient()`
22
+ - Remove query `_all...Meta` in favor of future pagination support
23
+
8
24
  ## [0.90.0] - 2025-09-07
9
25
 
10
26
  ### Changed
package/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  [Commitspark](https://commitspark.com) is a set of tools to manage structured data with Git through a GraphQL API.
4
4
 
5
- The library found in this repository provides the GraphQL API that allows reading and writing structured data (entries)
6
- from and to a Git repository.
5
+ This library provides the GraphQL API that allows reading and writing structured data (entries) from and to a Git
6
+ repository.
7
7
 
8
8
  Queries and mutations offered by the API are determined by a standard GraphQL type definition file (schema) inside the
9
9
  Git repository.
@@ -66,7 +66,7 @@ type Payload {
66
66
  }
67
67
  ```
68
68
 
69
- At runtime, when sending a GraphQL request to Commitspark, these are the queries, mutations and helper types that are
69
+ At runtime, when sending a GraphQL request to Commitspark, these are the queries, mutations, and helper types that are
70
70
  added by Commitspark to your schema for the duration of request execution:
71
71
 
72
72
  ```graphql
@@ -76,7 +76,7 @@ schema {
76
76
  }
77
77
 
78
78
  type Query {
79
- allRocketFlights: [RocketFlight!]
79
+ everyRocketFlight: [RocketFlight!]
80
80
  RocketFlight(id: ID!): RocketFlight
81
81
  _typeName(id: ID!): String
82
82
  }
@@ -108,7 +108,7 @@ import {
108
108
  createAdapter,
109
109
  GitHubRepositoryOptions,
110
110
  } from '@commitspark/git-adapter-github'
111
- import {getApiService} from '@commitspark/graphql-api'
111
+ import { createClient } from '@commitspark/graphql-api'
112
112
 
113
113
  const gitHubAdapter = createAdapter()
114
114
  await gitHubAdapter.setRepositoryOptions({
@@ -117,10 +117,9 @@ await gitHubAdapter.setRepositoryOptions({
117
117
  accessToken: process.env.GITHUB_ACCESS_TOKEN,
118
118
  } as GitHubRepositoryOptions)
119
119
 
120
- const apiService = await getApiService()
120
+ const client = await createClient(gitHubAdapter)
121
121
 
122
- const response = await apiService.postGraphQL(
123
- gitHubAdapter,
122
+ const response = await client.postGraphQL(
124
123
  process.env.GIT_BRANCH ?? 'main',
125
124
  {
126
125
  query: `query ($rocketFlightId: ID!) {
@@ -145,7 +144,7 @@ const rocketFlight = response.data.rocketFlight
145
144
 
146
145
  ## API
147
146
 
148
- ### ApiService
147
+ ### Client
149
148
 
150
149
  #### postGraphQL()
151
150
 
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getSchema = exports.postGraphQL = void 0;
13
+ const apollo_config_factory_1 = require("./graphql/apollo-config-factory");
14
+ const schema_generator_1 = require("./graphql/schema-generator");
15
+ const server_1 = require("@apollo/server");
16
+ const postGraphQL = (gitAdapter, ref, request) => __awaiter(void 0, void 0, void 0, function* () {
17
+ let currentRef = yield gitAdapter.getLatestCommitHash(ref);
18
+ const context = {
19
+ branch: ref,
20
+ gitAdapter: gitAdapter,
21
+ getCurrentRef() {
22
+ return currentRef;
23
+ },
24
+ setCurrentRef(refArg) {
25
+ currentRef = refArg;
26
+ },
27
+ };
28
+ const apolloDriverConfig = yield (0, apollo_config_factory_1.createApolloConfig)(context);
29
+ const apolloServer = new server_1.ApolloServer(Object.assign({}, apolloDriverConfig));
30
+ const result = yield apolloServer.executeOperation(request, {
31
+ contextValue: context,
32
+ });
33
+ yield apolloServer.stop();
34
+ return {
35
+ ref: context.getCurrentRef(),
36
+ data: result.body.kind === 'single' ? result.body.singleResult.data : undefined,
37
+ errors: result.body.kind === 'single'
38
+ ? result.body.singleResult.errors
39
+ : undefined,
40
+ };
41
+ });
42
+ exports.postGraphQL = postGraphQL;
43
+ const getSchema = (gitAdapter, ref) => __awaiter(void 0, void 0, void 0, function* () {
44
+ let currentRef = yield gitAdapter.getLatestCommitHash(ref);
45
+ const context = {
46
+ branch: ref,
47
+ gitAdapter: gitAdapter,
48
+ getCurrentRef() {
49
+ return currentRef;
50
+ },
51
+ setCurrentRef(refArg) {
52
+ currentRef = refArg;
53
+ },
54
+ };
55
+ const typeDefinitionStrings = (yield (0, schema_generator_1.generateSchema)(context)).typeDefs;
56
+ if (!Array.isArray(typeDefinitionStrings)) {
57
+ throw new Error('Expected array of typeDefinition strings.');
58
+ }
59
+ return {
60
+ ref: context.getCurrentRef(),
61
+ data: typeDefinitionStrings.join('\n'),
62
+ };
63
+ });
64
+ exports.getSchema = getSchema;
65
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2EAAoE;AACpE,iEAA2D;AAO3D,2CAIuB;AAWhB,MAAM,WAAW,GAAG,CAIzB,UAAsB,EACtB,GAAW,EACX,OAAyD,EACjB,EAAE;IAC1C,IAAI,UAAU,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,UAAU;QACtB,aAAa;YACX,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,aAAa,CAAC,MAAc;YAC1B,UAAU,GAAG,MAAM,CAAA;QACrB,CAAC;KACF,CAAA;IAED,MAAM,kBAAkB,GACtB,MAAM,IAAA,0CAAkB,EAAC,OAAO,CAAC,CAAA;IAEnC,MAAM,YAAY,GAAG,IAAI,qBAAY,mBAChC,kBAAkB,EACrB,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAChD,OAAO,EACP;QACE,YAAY,EAAE,OAAO;KACtB,CACF,CAAA;IAED,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;IAEzB,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,aAAa,EAAE;QAC5B,IAAI,EACF,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC3E,MAAM,EACJ,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;YAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM;YACjC,CAAC,CAAC,SAAS;KAChB,CAAA;AACH,CAAC,CAAA,CAAA;AA7CY,QAAA,WAAW,eA6CvB;AAEM,MAAM,SAAS,GAAG,CACvB,UAAsB,EACtB,GAAW,EACc,EAAE;IAC3B,IAAI,UAAU,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,UAAU;QACtB,aAAa;YACX,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,aAAa,CAAC,MAAc;YAC1B,UAAU,GAAG,MAAM,CAAA;QACrB,CAAC;KACF,CAAA;IAED,MAAM,qBAAqB,GAAG,CAAC,MAAM,IAAA,iCAAc,EAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;IACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,aAAa,EAAE;QAC5B,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;KACvC,CAAA;AACH,CAAC,CAAA,CAAA;AAzBY,QAAA,SAAS,aAyBrB"}
@@ -9,23 +9,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ApolloConfigFactoryService = void 0;
12
+ exports.createApolloConfig = createApolloConfig;
13
13
  const schema_1 = require("@graphql-tools/schema");
14
+ const schema_generator_1 = require("./schema-generator");
14
15
  const disabled_1 = require("@apollo/server/plugin/disabled");
15
- class ApolloConfigFactoryService {
16
- constructor(schemaGenerator) {
17
- this.schemaGenerator = schemaGenerator;
18
- }
19
- createGqlOptions(context) {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- const schemaDefinition = yield this.schemaGenerator.generateSchema(context);
22
- const schema = (0, schema_1.makeExecutableSchema)(schemaDefinition);
23
- return {
24
- schema: schema,
25
- plugins: [(0, disabled_1.ApolloServerPluginUsageReportingDisabled)()],
26
- };
27
- });
28
- }
16
+ function createApolloConfig(context) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ const schemaDefinition = yield (0, schema_generator_1.generateSchema)(context);
19
+ const schema = (0, schema_1.makeExecutableSchema)(schemaDefinition);
20
+ return {
21
+ schema: schema,
22
+ plugins: [(0, disabled_1.ApolloServerPluginUsageReportingDisabled)()],
23
+ };
24
+ });
29
25
  }
30
- exports.ApolloConfigFactoryService = ApolloConfigFactoryService;
31
- //# sourceMappingURL=apollo-config-factory.service.js.map
26
+ //# sourceMappingURL=apollo-config-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apollo-config-factory.js","sourceRoot":"","sources":["../../../src/graphql/apollo-config-factory.ts"],"names":[],"mappings":";;;;;;;;;;;AAMA,gDAUC;AAhBD,kDAA4D;AAC5D,yDAAmD;AAGnD,6DAAyF;AAEzF,SAAsB,kBAAkB,CACtC,OAAsB;;QAEtB,MAAM,gBAAgB,GAAG,MAAM,IAAA,iCAAc,EAAC,OAAO,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,IAAA,6BAAoB,EAAC,gBAAgB,CAAC,CAAA;QAErD,OAAO;YACL,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,CAAC,IAAA,mDAAwC,GAAE,CAAC;SAChB,CAAA;IACzC,CAAC;CAAA"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createError = exports.ErrorCode = void 0;
4
+ const graphql_1 = require("graphql");
5
+ var ErrorCode;
6
+ (function (ErrorCode) {
7
+ ErrorCode["BAD_USER_INPUT"] = "BAD_USER_INPUT";
8
+ ErrorCode["NOT_FOUND"] = "NOT_FOUND";
9
+ ErrorCode["BAD_REPOSITORY_DATA"] = "BAD_REPOSITORY_DATA";
10
+ ErrorCode["SCHEMA_DATA_MISMATCH"] = "SCHEMA_DATA_MISMATCH";
11
+ ErrorCode["BAD_SCHEMA"] = "BAD_SCHEMA";
12
+ ErrorCode["INTERNAL_ERROR"] = "INTERNAL_ERROR";
13
+ ErrorCode["IN_USE"] = "IN_USE";
14
+ })(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
15
+ const createError = (message, code, metaData) => {
16
+ const serializedFieldValue = typeof metaData.fieldValue === 'object' ||
17
+ Array.isArray(metaData.fieldValue)
18
+ ? JSON.stringify(metaData.fieldValue)
19
+ : metaData.fieldValue;
20
+ const updatedMetaData = Object.assign({}, metaData);
21
+ if (serializedFieldValue !== undefined) {
22
+ updatedMetaData.fieldValue = serializedFieldValue;
23
+ }
24
+ return new graphql_1.GraphQLError(message, {
25
+ extensions: {
26
+ code: code,
27
+ commitspark: updatedMetaData,
28
+ },
29
+ });
30
+ };
31
+ exports.createError = createError;
32
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/graphql/errors.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAEtC,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,8CAAiC,CAAA;IACjC,oCAAuB,CAAA;IACvB,wDAA2C,CAAA;IAC3C,0DAA6C,CAAA;IAC7C,sCAAyB,CAAA;IACzB,8CAAiC,CAAA;IACjC,8BAAiB,CAAA;AACnB,CAAC,EARW,SAAS,yBAAT,SAAS,QAQpB;AAWM,MAAM,WAAW,GAAG,CACzB,OAAe,EACf,IAAe,EACf,QAAuB,EACT,EAAE;IAChB,MAAM,oBAAoB,GACxB,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;QACvC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QACrC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAA;IACzB,MAAM,eAAe,qBAAQ,QAAQ,CAAE,CAAA;IACvC,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACvC,eAAe,CAAC,UAAU,GAAG,oBAAoB,CAAA;IACnD,CAAC;IAED,OAAO,IAAI,sBAAY,CAAC,OAAO,EAAE;QAC/B,UAAU,EAAE;YACV,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,eAAe;SAC7B;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AArBY,QAAA,WAAW,eAqBvB"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateIdInputTypeStrings = generateIdInputTypeStrings;
4
+ exports.generateObjectInputTypeStrings = generateObjectInputTypeStrings;
5
+ exports.generateUnionInputTypeStrings = generateUnionInputTypeStrings;
6
+ const graphql_1 = require("graphql");
7
+ const entry_type_util_1 = require("./schema-utils/entry-type-util");
8
+ function generateFieldInputTypeString(type) {
9
+ if ((0, graphql_1.isListType)(type)) {
10
+ return `[${generateFieldInputTypeString(type.ofType)}]`;
11
+ }
12
+ else if ((0, graphql_1.isNonNullType)(type)) {
13
+ return `${generateFieldInputTypeString(type.ofType)}!`;
14
+ }
15
+ else if ((0, graphql_1.isObjectType)(type)) {
16
+ if ((0, entry_type_util_1.hasEntryDirective)(type)) {
17
+ return `${type.name}IdInput`;
18
+ }
19
+ else {
20
+ return `${type.name}Input`;
21
+ }
22
+ }
23
+ else if ((0, graphql_1.isInterfaceType)(type)) {
24
+ // TODO
25
+ return '';
26
+ }
27
+ else if ((0, graphql_1.isUnionType)(type)) {
28
+ if ((0, entry_type_util_1.buildsOnTypeWithEntryDirective)(type)) {
29
+ return `${type.name}IdInput`;
30
+ }
31
+ else {
32
+ return `${type.name}Input`;
33
+ }
34
+ }
35
+ else {
36
+ return type.name;
37
+ }
38
+ }
39
+ function generateIdInputTypeStrings(schemaAnalyzerResult) {
40
+ let typesWithIdField = [];
41
+ typesWithIdField = typesWithIdField.concat(schemaAnalyzerResult.entryDirectiveTypes);
42
+ typesWithIdField = typesWithIdField.concat(schemaAnalyzerResult.interfaceTypes);
43
+ typesWithIdField = typesWithIdField.concat(schemaAnalyzerResult.unionTypes);
44
+ return typesWithIdField.map((type) => {
45
+ return `input ${type.name}IdInput {\n` + ' id: ID!\n' + '}\n';
46
+ });
47
+ }
48
+ function generateObjectInputTypeStrings(objectTypes) {
49
+ return objectTypes.map((objectType) => {
50
+ const name = objectType.name;
51
+ const inputTypeName = `${name}Input`;
52
+ let inputType = `input ${inputTypeName} {\n`;
53
+ let inputTypeFieldStrings = '';
54
+ for (const fieldsKey in objectType.getFields()) {
55
+ const field = objectType.getFields()[fieldsKey];
56
+ if (((0, graphql_1.isNonNullType)(field.type) &&
57
+ (0, graphql_1.isScalarType)(field.type.ofType) &&
58
+ field.type.ofType.name === 'ID') ||
59
+ ((0, graphql_1.isScalarType)(field.type) && field.type.name === 'ID')) {
60
+ continue;
61
+ }
62
+ const inputTypeString = generateFieldInputTypeString(field.type);
63
+ inputTypeFieldStrings += ` ${field.name}: ${inputTypeString}\n`;
64
+ }
65
+ if (inputTypeFieldStrings.length > 0) {
66
+ inputType += `${inputTypeFieldStrings}`;
67
+ }
68
+ else {
69
+ // generate a dummy field as empty input types are not permitted
70
+ inputType += ' _: Boolean\n';
71
+ }
72
+ inputType += '}\n';
73
+ return inputType;
74
+ });
75
+ }
76
+ function generateUnionInputTypeStrings(unionTypes) {
77
+ const typeStrings = unionTypes.map((unionType) => {
78
+ if ((0, entry_type_util_1.buildsOnTypeWithEntryDirective)(unionType)) {
79
+ return '';
80
+ }
81
+ // see https://github.com/graphql/graphql-spec/pull/825
82
+ let unionInputType = `input ${unionType.name}Input @oneOf {\n`;
83
+ for (const innerType of unionType.getTypes()) {
84
+ unionInputType += ` ${innerType.name}: ${innerType.name}Input\n`;
85
+ }
86
+ unionInputType += '}\n';
87
+ return unionInputType;
88
+ });
89
+ if (typeStrings.join('').length > 0) {
90
+ typeStrings.push('directive @oneOf on INPUT_OBJECT\n');
91
+ }
92
+ return typeStrings;
93
+ }
94
+ //# sourceMappingURL=input-type-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-type-generator.js","sourceRoot":"","sources":["../../../src/graphql/input-type-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateQueriesAndMutations = generateQueriesAndMutations;
4
+ exports.generateTypeNameQuery = generateTypeNameQuery;
5
+ const query_every_resolver_1 = require("./resolvers/query-mutation-resolvers/query-every-resolver");
6
+ const query_by_id_resolver_1 = require("./resolvers/query-mutation-resolvers/query-by-id-resolver");
7
+ const mutation_create_resolver_1 = require("./resolvers/query-mutation-resolvers/mutation-create-resolver");
8
+ const mutation_update_resolver_1 = require("./resolvers/query-mutation-resolvers/mutation-update-resolver");
9
+ const mutation_delete_resolver_1 = require("./resolvers/query-mutation-resolvers/mutation-delete-resolver");
10
+ const query_type_by_id_resolver_1 = require("./resolvers/query-mutation-resolvers/query-type-by-id-resolver");
11
+ function generateQueriesAndMutations(entryDirectiveTypes) {
12
+ return entryDirectiveTypes.map((objectType) => {
13
+ const typeName = objectType.name;
14
+ // The semantics of `every` aren't a perfect replacement of `all` but this way we don't need to do non-trivial
15
+ // pluralization of user-provided typeName
16
+ const queryEveryName = `every${typeName}`;
17
+ const queryEveryString = `${queryEveryName}: [${objectType.name}!]`;
18
+ const queryEveryResolverFunc = (source, args, context, info) => (0, query_every_resolver_1.queryEveryResolver)(source, args, Object.assign(Object.assign({}, context), { type: objectType }), info);
19
+ const queryByIdName = typeName;
20
+ const queryByIdString = `${queryByIdName}(id: ID!): ${objectType.name}`;
21
+ const queryByIdResolverFunc = (source, args, context, info) => (0, query_by_id_resolver_1.queryByIdResolver)(source, args, Object.assign(Object.assign({}, context), { type: objectType }), info);
22
+ const inputTypeName = `${typeName}Input`;
23
+ const createMutationName = `create${typeName}`;
24
+ const createMutationString = `${createMutationName}(id: ID!, data: ${inputTypeName}!, commitMessage: String): ${typeName}`;
25
+ const createMutationResolver = (source, args, context, info) => (0, mutation_create_resolver_1.mutationCreateResolver)(source, args, Object.assign(Object.assign({}, context), { type: objectType }), info);
26
+ const updateMutationName = `update${typeName}`;
27
+ const updateMutationString = `${updateMutationName}(id: ID!, data: ${inputTypeName}!, commitMessage: String): ${typeName}`;
28
+ const updateMutationResolver = (source, args, context, info) => (0, mutation_update_resolver_1.mutationUpdateResolver)(source, args, Object.assign(Object.assign({}, context), { type: objectType }), info);
29
+ const deleteMutationName = `delete${typeName}`;
30
+ const deleteMutationString = `${deleteMutationName}(id: ID!, commitMessage: String): ID`;
31
+ const deleteMutationResolver = (source, args, context, info) => (0, mutation_delete_resolver_1.mutationDeleteResolver)(source, args, Object.assign(Object.assign({}, context), { type: objectType }), info);
32
+ return {
33
+ queryEvery: {
34
+ name: queryEveryName,
35
+ schemaString: queryEveryString,
36
+ resolver: queryEveryResolverFunc,
37
+ },
38
+ queryById: {
39
+ name: queryByIdName,
40
+ schemaString: queryByIdString,
41
+ resolver: queryByIdResolverFunc,
42
+ },
43
+ createMutation: {
44
+ name: createMutationName,
45
+ schemaString: createMutationString,
46
+ resolver: createMutationResolver,
47
+ },
48
+ updateMutation: {
49
+ name: updateMutationName,
50
+ schemaString: updateMutationString,
51
+ resolver: updateMutationResolver,
52
+ },
53
+ deleteMutation: {
54
+ name: deleteMutationName,
55
+ schemaString: deleteMutationString,
56
+ resolver: deleteMutationResolver,
57
+ },
58
+ };
59
+ });
60
+ }
61
+ function generateTypeNameQuery() {
62
+ const entryTypeQueryName = '_typeName';
63
+ const entryTypeQueryString = `${entryTypeQueryName}(id: ID!): String!`;
64
+ return {
65
+ name: entryTypeQueryName,
66
+ schemaString: entryTypeQueryString,
67
+ resolver: query_type_by_id_resolver_1.queryTypeByIdResolver,
68
+ };
69
+ }
70
+ //# sourceMappingURL=queries-mutations-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries-mutations-generator.js","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.resolveEntryReference = void 0;
13
+ const graphql_1 = require("graphql");
14
+ const persistence_1 = require("../../../persistence/persistence");
15
+ const errors_1 = require("../../errors");
16
+ const resolveEntryReference = (fieldValue, args, context, info) => __awaiter(void 0, void 0, void 0, function* () {
17
+ if (!(0, graphql_1.isNamedType)(context.currentType)) {
18
+ throw (0, errors_1.createError)(`Expected context.currentType type to be a named type.`, errors_1.ErrorCode.INTERNAL_ERROR, {
19
+ fieldValue: fieldValue,
20
+ });
21
+ }
22
+ const entry = yield (0, persistence_1.findById)(context.gitAdapter, context.getCurrentRef(), fieldValue.id);
23
+ return Object.assign(Object.assign({}, entry.data), { id: entry.id });
24
+ });
25
+ exports.resolveEntryReference = resolveEntryReference;
26
+ //# sourceMappingURL=entry-reference-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-reference-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qCAAyD;AACzD,kEAA2D;AAC3D,yCAAqD;AAE9C,MAAM,qBAAqB,GAAuB,CACvD,UAAe,EACf,IAAS,EACT,OAA6B,EAC7B,IAAwB,EACxB,EAAE;IACF,IAAI,CAAC,IAAA,qBAAW,EAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,IAAA,oBAAW,EACf,uDAAuD,EACvD,kBAAS,CAAC,cAAc,EACxB;YACE,UAAU,EAAE,UAAU;SACvB,CACF,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,IAAA,sBAAQ,EAC1B,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,UAAU,CAAC,EAAE,CACd,CAAA;IAED,uCAAY,KAAK,CAAC,IAAI,KAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAE;AACxC,CAAC,CAAA,CAAA;AAvBY,QAAA,qBAAqB,yBAuBjC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.resolveFieldDefaultValue = void 0;
13
+ const graphql_1 = require("graphql");
14
+ const entry_type_util_1 = require("../../schema-utils/entry-type-util");
15
+ const entry_reference_resolver_1 = require("./entry-reference-resolver");
16
+ const union_value_resolver_1 = require("./union-value-resolver");
17
+ const errors_1 = require("../../errors");
18
+ const resolveFieldDefaultValue = (fieldValue, args, context, info) => __awaiter(void 0, void 0, void 0, function* () {
19
+ if ((0, graphql_1.isNonNullType)(context.currentType)) {
20
+ return (0, exports.resolveFieldDefaultValue)(fieldValue, args, {
21
+ gitAdapter: context.gitAdapter,
22
+ getCurrentRef: context.getCurrentRef,
23
+ currentType: context.currentType.ofType,
24
+ hasNonNullParent: true,
25
+ }, info);
26
+ }
27
+ else if ((0, graphql_1.isListType)(context.currentType)) {
28
+ if (fieldValue === undefined || fieldValue === null) {
29
+ if (context.hasNonNullParent) {
30
+ return new Promise((resolve) => resolve([]));
31
+ }
32
+ else {
33
+ return new Promise((resolve) => resolve(null));
34
+ }
35
+ }
36
+ if (!Array.isArray(fieldValue)) {
37
+ throw (0, errors_1.createError)(`Expected array while resolving value for field "${info.fieldName}".`, errors_1.ErrorCode.SCHEMA_DATA_MISMATCH, {
38
+ fieldName: info.fieldName,
39
+ fieldValue: fieldValue,
40
+ });
41
+ }
42
+ const resultPromises = [];
43
+ for (const item of fieldValue) {
44
+ const resultPromise = (0, exports.resolveFieldDefaultValue)(item, args, {
45
+ gitAdapter: context.gitAdapter,
46
+ getCurrentRef: context.getCurrentRef,
47
+ currentType: context.currentType.ofType,
48
+ hasNonNullParent: context.hasNonNullParent,
49
+ }, info);
50
+ resultPromises.push(resultPromise);
51
+ }
52
+ return Promise.all(resultPromises);
53
+ }
54
+ else if ((0, graphql_1.isUnionType)(context.currentType)) {
55
+ if (fieldValue === undefined || fieldValue === null) {
56
+ if (context.hasNonNullParent) {
57
+ throw (0, errors_1.createError)(`Cannot generate a default value for NonNull field "${info.parentType.name}.${info.fieldName}" because it is a union field of type "${info.returnType.ofType.name}". Set a value in your repository data or remove the NonNull declaration in your schema.`, errors_1.ErrorCode.BAD_REPOSITORY_DATA, {
58
+ typeName: info.parentType.name,
59
+ fieldName: info.fieldName,
60
+ });
61
+ }
62
+ else {
63
+ return new Promise((resolve) => resolve(null));
64
+ }
65
+ }
66
+ if ((0, entry_type_util_1.buildsOnTypeWithEntryDirective)(context.currentType)) {
67
+ return (0, entry_reference_resolver_1.resolveEntryReference)(fieldValue, args, context, info);
68
+ }
69
+ return (0, union_value_resolver_1.resolveUnionValue)(fieldValue, args, context, info);
70
+ }
71
+ else if ((0, graphql_1.isObjectType)(context.currentType)) {
72
+ if (fieldValue === undefined || fieldValue === null) {
73
+ if (context.hasNonNullParent) {
74
+ throw (0, errors_1.createError)(`Cannot generate a default value for NonNull field "${info.fieldName}" of type ` +
75
+ `"${info.parentType.name}". Set a value in your repository data or remove the NonNull ` +
76
+ `declaration in your schema.`, errors_1.ErrorCode.BAD_REPOSITORY_DATA, {
77
+ typeName: info.parentType.name,
78
+ fieldName: info.fieldName,
79
+ });
80
+ }
81
+ else {
82
+ return new Promise((resolve) => resolve(null));
83
+ }
84
+ }
85
+ if ((0, entry_type_util_1.hasEntryDirective)(context.currentType)) {
86
+ return (0, entry_reference_resolver_1.resolveEntryReference)(fieldValue, args, context, info);
87
+ }
88
+ return fieldValue;
89
+ }
90
+ return fieldValue;
91
+ });
92
+ exports.resolveFieldDefaultValue = resolveFieldDefaultValue;
93
+ //# sourceMappingURL=field-default-value-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-default-value-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=fieldResolver.js.map
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.resolveUnionValue = void 0;
13
+ const union_type_util_1 = require("../../schema-utils/union-type-util");
14
+ const resolveUnionValue = (fieldValue) => __awaiter(void 0, void 0, void 0, function* () {
15
+ const typeName = (0, union_type_util_1.getUnionTypeNameFromFieldValue)(fieldValue);
16
+ const unionValue = (0, union_type_util_1.getUnionValue)(fieldValue);
17
+ // We replace the helper type name field that holds our field's actual data
18
+ // with this actual data and add a `__typename` field, so that our output data
19
+ // corresponds to the output schema provided by the user (i.e. there is
20
+ // no additional nesting level there).
21
+ const res = Object.assign(Object.assign({}, unionValue), { __typename: typeName });
22
+ return new Promise((resolve) => resolve(res));
23
+ });
24
+ exports.resolveUnionValue = resolveUnionValue;
25
+ //# sourceMappingURL=union-value-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"union-value-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/union-value-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,wEAG2C;AAEpC,MAAM,iBAAiB,GAAuB,CACnD,UAAe,EAC6C,EAAE;IAC9D,MAAM,QAAQ,GAAG,IAAA,gDAA8B,EAAC,UAAU,CAAC,CAAA;IAC3D,MAAM,UAAU,GAAG,IAAA,+BAAa,EAAC,UAAU,CAAC,CAAA;IAE5C,2EAA2E;IAC3E,8EAA8E;IAC9E,uEAAuE;IACvE,sCAAsC;IACtC,MAAM,GAAG,mCACJ,UAAU,KACb,UAAU,EAAE,QAAQ,GACrB,CAAA;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAA,CAAA;AAhBY,QAAA,iBAAiB,qBAgB7B"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createObjectTypeFieldResolvers = createObjectTypeFieldResolvers;
4
+ const graphql_1 = require("graphql");
5
+ const field_default_value_resolver_1 = require("./field-resolvers/field-default-value-resolver");
6
+ function requiresCustomDefaultValueResolver(type) {
7
+ if ((0, graphql_1.isNonNullType)(type)) {
8
+ return requiresCustomDefaultValueResolver(type.ofType);
9
+ }
10
+ else if ((0, graphql_1.isListType)(type)) {
11
+ return true;
12
+ }
13
+ else if ((0, graphql_1.isUnionType)(type)) {
14
+ return true;
15
+ }
16
+ else if ((0, graphql_1.isObjectType)(type)) {
17
+ return true;
18
+ }
19
+ return false;
20
+ }
21
+ function getFieldsForCustomDefaultValueResolver(objectType) {
22
+ const fields = [];
23
+ for (const fieldsKey in objectType.getFields()) {
24
+ const field = objectType.getFields()[fieldsKey];
25
+ if (requiresCustomDefaultValueResolver(field.type)) {
26
+ fields.push(field);
27
+ }
28
+ }
29
+ return fields;
30
+ }
31
+ function createObjectTypeFieldResolvers(schema) {
32
+ const fieldResolversByType = {};
33
+ for (const typeName of Object.keys(schema.getTypeMap())) {
34
+ const type = schema.getType(typeName);
35
+ if (!(0, graphql_1.isObjectType)(type) || type.name.startsWith('__')) {
36
+ continue;
37
+ }
38
+ const fieldsForCustomDefaultValueResolver = getFieldsForCustomDefaultValueResolver(type);
39
+ const fieldResolversByFieldName = {};
40
+ for (const field of fieldsForCustomDefaultValueResolver) {
41
+ fieldResolversByFieldName[field.name] = (obj, args, context, info) => (0, field_default_value_resolver_1.resolveFieldDefaultValue)(field.name in obj ? obj[field.name] : undefined, args, {
42
+ currentType: field.type,
43
+ gitAdapter: context.gitAdapter,
44
+ getCurrentRef: context.getCurrentRef,
45
+ }, info);
46
+ }
47
+ if (Object.keys(fieldResolversByFieldName).length > 0) {
48
+ fieldResolversByType[typeName] = fieldResolversByFieldName;
49
+ }
50
+ }
51
+ return fieldResolversByType;
52
+ }
53
+ //# sourceMappingURL=object-type-field-default-value-resolver-generator.js.map