@commitspark/graphql-api 0.81.2 → 1.0.0-beta.1

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 (334) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +5 -6
  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/input-type-generator.js +94 -0
  8. package/dist/cjs/graphql/input-type-generator.js.map +1 -0
  9. package/dist/cjs/graphql/queries-mutations-generator.js +68 -0
  10. package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -0
  11. package/dist/cjs/graphql/{resolver-generators/query-all-resolver-generator.js → resolvers/field-resolvers/entry-reference-resolver.js} +11 -15
  12. package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -0
  13. package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js +81 -0
  14. package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -0
  15. package/dist/cjs/graphql/{field-resolver/fieldResolver.js → resolvers/field-resolvers/types.js} +1 -1
  16. package/dist/cjs/graphql/resolvers/field-resolvers/types.js.map +1 -0
  17. package/dist/cjs/graphql/resolvers/field-resolvers/union-value-resolver.js +25 -0
  18. package/dist/cjs/graphql/resolvers/field-resolvers/union-value-resolver.js.map +1 -0
  19. package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js +53 -0
  20. package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -0
  21. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +77 -0
  22. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -0
  23. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +53 -0
  24. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -0
  25. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +56 -0
  26. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -0
  27. package/dist/cjs/graphql/{resolver-generators/query-count-all-resolver-generator.js → resolvers/query-mutation-resolvers/query-all-resolver.js} +10 -15
  28. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-all-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-by-id-resolver-generator.js → resolvers/query-mutation-resolvers/query-type-by-id-resolver.js} +7 -14
  32. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js.map +1 -0
  33. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +27 -0
  34. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -0
  35. package/dist/cjs/graphql/resolvers/types.js +3 -0
  36. package/dist/cjs/graphql/resolvers/types.js.map +1 -0
  37. package/dist/cjs/graphql/schema-analyzer.js +38 -0
  38. package/dist/cjs/graphql/schema-analyzer.js.map +1 -0
  39. package/dist/cjs/graphql/schema-generator.js +95 -0
  40. package/dist/cjs/graphql/schema-generator.js.map +1 -0
  41. package/dist/cjs/graphql/schema-root-type-generator.js +32 -0
  42. package/dist/cjs/graphql/schema-root-type-generator.js.map +1 -0
  43. package/dist/cjs/graphql/schema-utils/entry-reference-util.js +107 -113
  44. package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
  45. package/dist/cjs/graphql/schema-utils/entry-type-util.js +24 -26
  46. package/dist/cjs/graphql/schema-utils/entry-type-util.js.map +1 -1
  47. package/dist/cjs/graphql/schema-utils/union-type-util.js +14 -16
  48. package/dist/cjs/graphql/schema-utils/union-type-util.js.map +1 -1
  49. package/dist/cjs/graphql/schema-validator.js +23 -26
  50. package/dist/cjs/graphql/schema-validator.js.map +1 -1
  51. package/dist/cjs/index.js +7 -7
  52. package/dist/cjs/index.js.map +1 -1
  53. package/dist/cjs/persistence/persistence.js +66 -0
  54. package/dist/cjs/persistence/persistence.js.map +1 -0
  55. package/dist/esm/client.js +53 -0
  56. package/dist/esm/client.js.map +1 -0
  57. package/dist/esm/graphql/apollo-config-factory.js +12 -0
  58. package/dist/esm/graphql/apollo-config-factory.js.map +1 -0
  59. package/dist/esm/graphql/input-type-generator.js +89 -0
  60. package/dist/esm/graphql/input-type-generator.js.map +1 -0
  61. package/dist/esm/graphql/queries-mutations-generator.js +64 -0
  62. package/dist/esm/graphql/queries-mutations-generator.js.map +1 -0
  63. package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js +10 -0
  64. package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -0
  65. package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js +68 -0
  66. package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -0
  67. package/dist/esm/graphql/resolvers/field-resolvers/types.js +2 -0
  68. package/dist/esm/graphql/resolvers/field-resolvers/types.js.map +1 -0
  69. package/dist/esm/graphql/resolvers/field-resolvers/union-value-resolver.js +15 -0
  70. package/dist/esm/graphql/resolvers/field-resolvers/union-value-resolver.js.map +1 -0
  71. package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js +50 -0
  72. package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -0
  73. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +70 -0
  74. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -0
  75. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +49 -0
  76. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -0
  77. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +59 -0
  78. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -0
  79. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-all-resolver.js +8 -0
  80. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-all-resolver.js.map +1 -0
  81. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js +6 -0
  82. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js.map +1 -0
  83. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js +5 -0
  84. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js.map +1 -0
  85. package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +14 -0
  86. package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -0
  87. package/dist/esm/graphql/resolvers/types.js +2 -0
  88. package/dist/esm/graphql/resolvers/types.js.map +1 -0
  89. package/dist/esm/graphql/schema-analyzer.js +34 -0
  90. package/dist/esm/graphql/schema-analyzer.js.map +1 -0
  91. package/dist/esm/graphql/schema-generator.js +89 -0
  92. package/dist/esm/graphql/schema-generator.js.map +1 -0
  93. package/dist/esm/graphql/schema-root-type-generator.js +29 -0
  94. package/dist/esm/graphql/schema-root-type-generator.js.map +1 -0
  95. package/dist/esm/graphql/schema-utils/entry-reference-util.js +99 -107
  96. package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
  97. package/dist/esm/graphql/schema-utils/entry-type-util.js +20 -23
  98. package/dist/esm/graphql/schema-utils/entry-type-util.js.map +1 -1
  99. package/dist/esm/graphql/schema-utils/union-type-util.js +12 -14
  100. package/dist/esm/graphql/schema-utils/union-type-util.js.map +1 -1
  101. package/dist/esm/graphql/schema-validator.js +18 -20
  102. package/dist/esm/graphql/schema-validator.js.map +1 -1
  103. package/dist/esm/index.js +6 -5
  104. package/dist/esm/index.js.map +1 -1
  105. package/dist/esm/persistence/persistence.js +43 -0
  106. package/dist/esm/persistence/persistence.js.map +1 -0
  107. package/dist/tsconfig.build.cjs.tsbuildinfo +1 -1
  108. package/dist/tsconfig.build.esm.tsbuildinfo +1 -1
  109. package/dist/tsconfig.build.types.tsbuildinfo +1 -1
  110. package/dist/types/client.d.ts +27 -0
  111. package/dist/types/client.d.ts.map +1 -0
  112. package/dist/types/graphql/apollo-config-factory.d.ts +4 -0
  113. package/dist/types/graphql/apollo-config-factory.d.ts.map +1 -0
  114. package/dist/types/graphql/input-type-generator.d.ts +6 -0
  115. package/dist/types/graphql/input-type-generator.d.ts.map +1 -0
  116. package/dist/types/graphql/queries-mutations-generator.d.ts +18 -0
  117. package/dist/types/graphql/queries-mutations-generator.d.ts.map +1 -0
  118. package/dist/types/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts +3 -0
  119. package/dist/types/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts.map +1 -0
  120. package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts +3 -0
  121. package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +1 -0
  122. package/dist/types/graphql/resolvers/field-resolvers/types.d.ts +12 -0
  123. package/dist/types/graphql/resolvers/field-resolvers/types.d.ts.map +1 -0
  124. package/dist/types/graphql/resolvers/field-resolvers/union-value-resolver.d.ts +3 -0
  125. package/dist/types/graphql/resolvers/field-resolvers/union-value-resolver.d.ts.map +1 -0
  126. package/dist/types/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts +8 -0
  127. package/dist/types/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts.map +1 -0
  128. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts +5 -0
  129. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -0
  130. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts +5 -0
  131. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map +1 -0
  132. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts +5 -0
  133. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map +1 -0
  134. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-all-resolver.d.ts +5 -0
  135. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-all-resolver.d.ts.map +1 -0
  136. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts +5 -0
  137. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts.map +1 -0
  138. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts +4 -0
  139. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts.map +1 -0
  140. package/dist/types/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts +4 -0
  141. package/dist/types/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts.map +1 -0
  142. package/dist/types/graphql/resolvers/types.d.ts +8 -0
  143. package/dist/types/graphql/resolvers/types.d.ts.map +1 -0
  144. package/dist/types/graphql/{schema-analyzer.service.d.ts → schema-analyzer.d.ts} +3 -5
  145. package/dist/types/graphql/schema-analyzer.d.ts.map +1 -0
  146. package/dist/types/graphql/schema-generator.d.ts +4 -0
  147. package/dist/types/graphql/schema-generator.d.ts.map +1 -0
  148. package/dist/types/graphql/schema-root-type-generator.d.ts +3 -0
  149. package/dist/types/graphql/schema-root-type-generator.d.ts.map +1 -0
  150. package/dist/types/graphql/schema-utils/entry-reference-util.d.ts +2 -13
  151. package/dist/types/graphql/schema-utils/entry-reference-util.d.ts.map +1 -1
  152. package/dist/types/graphql/schema-utils/entry-type-util.d.ts +3 -5
  153. package/dist/types/graphql/schema-utils/entry-type-util.d.ts.map +1 -1
  154. package/dist/types/graphql/schema-utils/union-type-util.d.ts +2 -4
  155. package/dist/types/graphql/schema-utils/union-type-util.d.ts.map +1 -1
  156. package/dist/types/graphql/schema-validator.d.ts +1 -4
  157. package/dist/types/graphql/schema-validator.d.ts.map +1 -1
  158. package/dist/types/index.d.ts +8 -3
  159. package/dist/types/index.d.ts.map +1 -1
  160. package/dist/types/persistence/persistence.d.ts +6 -0
  161. package/dist/types/persistence/persistence.d.ts.map +1 -0
  162. package/package.json +2 -2
  163. package/src/client.ts +114 -0
  164. package/src/graphql/apollo-config-factory.ts +17 -0
  165. package/src/graphql/input-type-generator.ts +126 -0
  166. package/src/graphql/queries-mutations-generator.ts +136 -0
  167. package/src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts +22 -0
  168. package/src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts +107 -0
  169. package/src/graphql/{field-resolver/fieldResolver.ts → resolvers/field-resolvers/types.ts} +5 -4
  170. package/src/graphql/resolvers/field-resolvers/union-value-resolver.ts +24 -0
  171. package/src/graphql/resolvers/object-type-field-default-value-resolver-generator.ts +91 -0
  172. package/src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts +108 -0
  173. package/src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts +81 -0
  174. package/src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts +114 -0
  175. package/src/graphql/resolvers/query-mutation-resolvers/query-all-resolver.ts +21 -0
  176. package/src/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.ts +20 -0
  177. package/src/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.ts +12 -0
  178. package/src/graphql/resolvers/query-mutation-resolvers/union-type-resolver.ts +19 -0
  179. package/src/graphql/resolvers/types.ts +14 -0
  180. package/src/graphql/schema-analyzer.ts +55 -0
  181. package/src/graphql/schema-generator.ts +161 -0
  182. package/src/graphql/schema-root-type-generator.ts +35 -0
  183. package/src/graphql/schema-utils/entry-reference-util.ts +152 -166
  184. package/src/graphql/schema-utils/entry-type-util.ts +25 -28
  185. package/src/graphql/schema-utils/union-type-util.ts +13 -15
  186. package/src/graphql/schema-validator.ts +29 -31
  187. package/src/index.ts +26 -5
  188. package/src/persistence/persistence.ts +72 -0
  189. package/dist/cjs/app/api.service.js +0 -74
  190. package/dist/cjs/app/api.service.js.map +0 -1
  191. package/dist/cjs/container.js +0 -53
  192. package/dist/cjs/container.js.map +0 -1
  193. package/dist/cjs/graphql/apollo-config-factory.service.js.map +0 -1
  194. package/dist/cjs/graphql/field-resolver/entry-reference-resolver.js +0 -26
  195. package/dist/cjs/graphql/field-resolver/entry-reference-resolver.js.map +0 -1
  196. package/dist/cjs/graphql/field-resolver/field-default-value-resolver.js +0 -73
  197. package/dist/cjs/graphql/field-resolver/field-default-value-resolver.js.map +0 -1
  198. package/dist/cjs/graphql/field-resolver/fieldResolver.js.map +0 -1
  199. package/dist/cjs/graphql/field-resolver/union-value-resolver.js +0 -21
  200. package/dist/cjs/graphql/field-resolver/union-value-resolver.js.map +0 -1
  201. package/dist/cjs/graphql/input-type-generator.service.js +0 -97
  202. package/dist/cjs/graphql/input-type-generator.service.js.map +0 -1
  203. package/dist/cjs/graphql/queries-mutations-generator.service.js +0 -82
  204. package/dist/cjs/graphql/queries-mutations-generator.service.js.map +0 -1
  205. package/dist/cjs/graphql/resolver-generators/mutation-create-resolver-generator.js +0 -83
  206. package/dist/cjs/graphql/resolver-generators/mutation-create-resolver-generator.js.map +0 -1
  207. package/dist/cjs/graphql/resolver-generators/mutation-delete-resolver-generator.js +0 -60
  208. package/dist/cjs/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +0 -1
  209. package/dist/cjs/graphql/resolver-generators/mutation-update-resolver-generator.js +0 -62
  210. package/dist/cjs/graphql/resolver-generators/mutation-update-resolver-generator.js.map +0 -1
  211. package/dist/cjs/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js +0 -58
  212. package/dist/cjs/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map +0 -1
  213. package/dist/cjs/graphql/resolver-generators/query-all-resolver-generator.js.map +0 -1
  214. package/dist/cjs/graphql/resolver-generators/query-by-id-resolver-generator.js.map +0 -1
  215. package/dist/cjs/graphql/resolver-generators/query-count-all-resolver-generator.js.map +0 -1
  216. package/dist/cjs/graphql/resolver-generators/query-type-by-id-resolver-generator.js.map +0 -1
  217. package/dist/cjs/graphql/resolver-generators/union-type-resolver-generator.js +0 -33
  218. package/dist/cjs/graphql/resolver-generators/union-type-resolver-generator.js.map +0 -1
  219. package/dist/cjs/graphql/schema-analyzer.service.js +0 -41
  220. package/dist/cjs/graphql/schema-analyzer.service.js.map +0 -1
  221. package/dist/cjs/graphql/schema-generator.service.js +0 -103
  222. package/dist/cjs/graphql/schema-generator.service.js.map +0 -1
  223. package/dist/cjs/graphql/schema-root-type-generator.service.js +0 -39
  224. package/dist/cjs/graphql/schema-root-type-generator.service.js.map +0 -1
  225. package/dist/cjs/persistence/persistence.service.js +0 -66
  226. package/dist/cjs/persistence/persistence.service.js.map +0 -1
  227. package/dist/esm/app/api.service.js +0 -61
  228. package/dist/esm/app/api.service.js.map +0 -1
  229. package/dist/esm/container.js +0 -50
  230. package/dist/esm/container.js.map +0 -1
  231. package/dist/esm/graphql/apollo-config-factory.service.js +0 -17
  232. package/dist/esm/graphql/apollo-config-factory.service.js.map +0 -1
  233. package/dist/esm/graphql/field-resolver/entry-reference-resolver.js +0 -13
  234. package/dist/esm/graphql/field-resolver/entry-reference-resolver.js.map +0 -1
  235. package/dist/esm/graphql/field-resolver/field-default-value-resolver.js +0 -73
  236. package/dist/esm/graphql/field-resolver/field-default-value-resolver.js.map +0 -1
  237. package/dist/esm/graphql/field-resolver/fieldResolver.js +0 -2
  238. package/dist/esm/graphql/field-resolver/fieldResolver.js.map +0 -1
  239. package/dist/esm/graphql/field-resolver/union-value-resolver.js +0 -22
  240. package/dist/esm/graphql/field-resolver/union-value-resolver.js.map +0 -1
  241. package/dist/esm/graphql/input-type-generator.service.js +0 -94
  242. package/dist/esm/graphql/input-type-generator.service.js.map +0 -1
  243. package/dist/esm/graphql/queries-mutations-generator.service.js +0 -85
  244. package/dist/esm/graphql/queries-mutations-generator.service.js.map +0 -1
  245. package/dist/esm/graphql/resolver-generators/mutation-create-resolver-generator.js +0 -78
  246. package/dist/esm/graphql/resolver-generators/mutation-create-resolver-generator.js.map +0 -1
  247. package/dist/esm/graphql/resolver-generators/mutation-delete-resolver-generator.js +0 -58
  248. package/dist/esm/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +0 -1
  249. package/dist/esm/graphql/resolver-generators/mutation-update-resolver-generator.js +0 -67
  250. package/dist/esm/graphql/resolver-generators/mutation-update-resolver-generator.js.map +0 -1
  251. package/dist/esm/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js +0 -55
  252. package/dist/esm/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map +0 -1
  253. package/dist/esm/graphql/resolver-generators/query-all-resolver-generator.js +0 -15
  254. package/dist/esm/graphql/resolver-generators/query-all-resolver-generator.js.map +0 -1
  255. package/dist/esm/graphql/resolver-generators/query-by-id-resolver-generator.js +0 -13
  256. package/dist/esm/graphql/resolver-generators/query-by-id-resolver-generator.js.map +0 -1
  257. package/dist/esm/graphql/resolver-generators/query-count-all-resolver-generator.js +0 -14
  258. package/dist/esm/graphql/resolver-generators/query-count-all-resolver-generator.js.map +0 -1
  259. package/dist/esm/graphql/resolver-generators/query-type-by-id-resolver-generator.js +0 -12
  260. package/dist/esm/graphql/resolver-generators/query-type-by-id-resolver-generator.js.map +0 -1
  261. package/dist/esm/graphql/resolver-generators/union-type-resolver-generator.js +0 -22
  262. package/dist/esm/graphql/resolver-generators/union-type-resolver-generator.js.map +0 -1
  263. package/dist/esm/graphql/schema-analyzer.service.js +0 -36
  264. package/dist/esm/graphql/schema-analyzer.service.js.map +0 -1
  265. package/dist/esm/graphql/schema-generator.service.js +0 -103
  266. package/dist/esm/graphql/schema-generator.service.js.map +0 -1
  267. package/dist/esm/graphql/schema-root-type-generator.service.js +0 -35
  268. package/dist/esm/graphql/schema-root-type-generator.service.js.map +0 -1
  269. package/dist/esm/persistence/persistence.service.js +0 -45
  270. package/dist/esm/persistence/persistence.service.js.map +0 -1
  271. package/dist/types/app/api.service.d.ts +0 -34
  272. package/dist/types/app/api.service.d.ts.map +0 -1
  273. package/dist/types/container.d.ts +0 -3
  274. package/dist/types/container.d.ts.map +0 -1
  275. package/dist/types/graphql/apollo-config-factory.service.d.ts +0 -9
  276. package/dist/types/graphql/apollo-config-factory.service.d.ts.map +0 -1
  277. package/dist/types/graphql/field-resolver/entry-reference-resolver.d.ts +0 -11
  278. package/dist/types/graphql/field-resolver/entry-reference-resolver.d.ts.map +0 -1
  279. package/dist/types/graphql/field-resolver/field-default-value-resolver.d.ts +0 -15
  280. package/dist/types/graphql/field-resolver/field-default-value-resolver.d.ts.map +0 -1
  281. package/dist/types/graphql/field-resolver/fieldResolver.d.ts +0 -11
  282. package/dist/types/graphql/field-resolver/fieldResolver.d.ts.map +0 -1
  283. package/dist/types/graphql/field-resolver/union-value-resolver.d.ts +0 -11
  284. package/dist/types/graphql/field-resolver/union-value-resolver.d.ts.map +0 -1
  285. package/dist/types/graphql/input-type-generator.service.d.ts +0 -12
  286. package/dist/types/graphql/input-type-generator.service.d.ts.map +0 -1
  287. package/dist/types/graphql/queries-mutations-generator.service.d.ts +0 -39
  288. package/dist/types/graphql/queries-mutations-generator.service.d.ts.map +0 -1
  289. package/dist/types/graphql/resolver-generators/mutation-create-resolver-generator.d.ts +0 -12
  290. package/dist/types/graphql/resolver-generators/mutation-create-resolver-generator.d.ts.map +0 -1
  291. package/dist/types/graphql/resolver-generators/mutation-delete-resolver-generator.d.ts +0 -12
  292. package/dist/types/graphql/resolver-generators/mutation-delete-resolver-generator.d.ts.map +0 -1
  293. package/dist/types/graphql/resolver-generators/mutation-update-resolver-generator.d.ts +0 -13
  294. package/dist/types/graphql/resolver-generators/mutation-update-resolver-generator.d.ts.map +0 -1
  295. package/dist/types/graphql/resolver-generators/object-type-field-default-value-resolver-generator.d.ts +0 -13
  296. package/dist/types/graphql/resolver-generators/object-type-field-default-value-resolver-generator.d.ts.map +0 -1
  297. package/dist/types/graphql/resolver-generators/query-all-resolver-generator.d.ts +0 -10
  298. package/dist/types/graphql/resolver-generators/query-all-resolver-generator.d.ts.map +0 -1
  299. package/dist/types/graphql/resolver-generators/query-by-id-resolver-generator.d.ts +0 -10
  300. package/dist/types/graphql/resolver-generators/query-by-id-resolver-generator.d.ts.map +0 -1
  301. package/dist/types/graphql/resolver-generators/query-count-all-resolver-generator.d.ts +0 -10
  302. package/dist/types/graphql/resolver-generators/query-count-all-resolver-generator.d.ts.map +0 -1
  303. package/dist/types/graphql/resolver-generators/query-type-by-id-resolver-generator.d.ts +0 -9
  304. package/dist/types/graphql/resolver-generators/query-type-by-id-resolver-generator.d.ts.map +0 -1
  305. package/dist/types/graphql/resolver-generators/union-type-resolver-generator.d.ts +0 -11
  306. package/dist/types/graphql/resolver-generators/union-type-resolver-generator.d.ts.map +0 -1
  307. package/dist/types/graphql/schema-analyzer.service.d.ts.map +0 -1
  308. package/dist/types/graphql/schema-generator.service.d.ts +0 -21
  309. package/dist/types/graphql/schema-generator.service.d.ts.map +0 -1
  310. package/dist/types/graphql/schema-root-type-generator.service.d.ts +0 -5
  311. package/dist/types/graphql/schema-root-type-generator.service.d.ts.map +0 -1
  312. package/dist/types/persistence/persistence.service.d.ts +0 -8
  313. package/dist/types/persistence/persistence.service.d.ts.map +0 -1
  314. package/src/app/api.service.ts +0 -121
  315. package/src/container.ts +0 -106
  316. package/src/graphql/apollo-config-factory.service.ts +0 -21
  317. package/src/graphql/field-resolver/entry-reference-resolver.ts +0 -47
  318. package/src/graphql/field-resolver/field-default-value-resolver.ts +0 -152
  319. package/src/graphql/field-resolver/union-value-resolver.ts +0 -46
  320. package/src/graphql/input-type-generator.service.ts +0 -127
  321. package/src/graphql/queries-mutations-generator.service.ts +0 -154
  322. package/src/graphql/resolver-generators/mutation-create-resolver-generator.ts +0 -120
  323. package/src/graphql/resolver-generators/mutation-delete-resolver-generator.ts +0 -96
  324. package/src/graphql/resolver-generators/mutation-update-resolver-generator.ts +0 -127
  325. package/src/graphql/resolver-generators/object-type-field-default-value-resolver-generator.ts +0 -117
  326. package/src/graphql/resolver-generators/query-all-resolver-generator.ts +0 -29
  327. package/src/graphql/resolver-generators/query-by-id-resolver-generator.ts +0 -23
  328. package/src/graphql/resolver-generators/query-count-all-resolver-generator.ts +0 -29
  329. package/src/graphql/resolver-generators/query-type-by-id-resolver-generator.ts +0 -27
  330. package/src/graphql/resolver-generators/union-type-resolver-generator.ts +0 -38
  331. package/src/graphql/schema-analyzer.service.ts +0 -57
  332. package/src/graphql/schema-generator.service.ts +0 -178
  333. package/src/graphql/schema-root-type-generator.service.ts +0 -44
  334. package/src/persistence/persistence.service.ts +0 -74
@@ -0,0 +1,114 @@
1
+ import { findById, findByTypeId } from '../../../persistence/persistence'
2
+ import { getReferencedEntryIds } from '../../schema-utils/entry-reference-util'
3
+ import { GraphQLFieldResolver, isObjectType } from 'graphql'
4
+ import { EntryData, EntryDraft } from '@commitspark/git-adapter'
5
+ import { QueryMutationResolverContext } from '../types'
6
+
7
+ function mergeData(
8
+ existingEntryData: EntryData,
9
+ updateData: EntryData,
10
+ ): EntryData {
11
+ return {
12
+ ...existingEntryData,
13
+ ...updateData,
14
+ }
15
+ }
16
+
17
+ export const mutationUpdateResolver: GraphQLFieldResolver<
18
+ any,
19
+ QueryMutationResolverContext,
20
+ any,
21
+ Promise<EntryData>
22
+ > = async (source, args, context, info) => {
23
+ if (!isObjectType(info.returnType)) {
24
+ throw new Error('Expected to update an ObjectType')
25
+ }
26
+
27
+ const existingEntry = await findByTypeId(
28
+ context.gitAdapter,
29
+ context.getCurrentRef(),
30
+ context.type.name,
31
+ args.id,
32
+ )
33
+
34
+ const existingReferencedEntryIds = await getReferencedEntryIds(
35
+ info.returnType,
36
+ context,
37
+ null,
38
+ info.returnType,
39
+ existingEntry.data,
40
+ )
41
+
42
+ const mergedData = mergeData(existingEntry.data ?? null, args.data)
43
+ const updatedReferencedEntryIds = await getReferencedEntryIds(
44
+ info.returnType,
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),
56
+ )
57
+
58
+ const referencedEntryUpdates: EntryDraft[] = []
59
+ for (const noLongerReferencedEntryId of noLongerReferencedIds) {
60
+ const noLongerReferencedEntry = await findById(
61
+ context.gitAdapter,
62
+ context.getCurrentRef(),
63
+ noLongerReferencedEntryId,
64
+ )
65
+ referencedEntryUpdates.push({
66
+ ...noLongerReferencedEntry,
67
+ metadata: {
68
+ ...noLongerReferencedEntry.metadata,
69
+ referencedBy: noLongerReferencedEntry.metadata.referencedBy?.filter(
70
+ (entryId) => entryId !== args.id,
71
+ ),
72
+ },
73
+ deletion: false,
74
+ })
75
+ }
76
+ for (const newlyReferencedEntryId of newlyReferencedIds) {
77
+ const newlyReferencedEntry = await findById(
78
+ context.gitAdapter,
79
+ context.getCurrentRef(),
80
+ newlyReferencedEntryId,
81
+ )
82
+ const updatedReferenceList: string[] =
83
+ newlyReferencedEntry.metadata.referencedBy ?? []
84
+ updatedReferenceList.push(args.id)
85
+ updatedReferenceList.sort()
86
+ referencedEntryUpdates.push({
87
+ ...newlyReferencedEntry,
88
+ metadata: {
89
+ ...newlyReferencedEntry.metadata,
90
+ referencedBy: updatedReferenceList,
91
+ },
92
+ deletion: false,
93
+ })
94
+ }
95
+
96
+ const commit = await context.gitAdapter.createCommit({
97
+ ref: context.branch,
98
+ parentSha: context.getCurrentRef(),
99
+ entries: [
100
+ { ...existingEntry, data: mergedData, deletion: false },
101
+ ...referencedEntryUpdates,
102
+ ],
103
+ message: args.commitMessage,
104
+ })
105
+ context.setCurrentRef(commit.ref)
106
+
107
+ const updatedEntry = await findByTypeId(
108
+ context.gitAdapter,
109
+ context.getCurrentRef(),
110
+ context.type.name,
111
+ args.id,
112
+ )
113
+ return { ...updatedEntry.data, id: updatedEntry.id }
114
+ }
@@ -0,0 +1,21 @@
1
+ import { EntryData } from '@commitspark/git-adapter'
2
+ import { findByType } from '../../../persistence/persistence'
3
+ import { GraphQLFieldResolver } from 'graphql'
4
+ import { QueryMutationResolverContext } from '../types'
5
+
6
+ export const queryAllResolver: GraphQLFieldResolver<
7
+ any,
8
+ QueryMutationResolverContext,
9
+ any,
10
+ Promise<EntryData[]>
11
+ > = async (obj, args, context, info) => {
12
+ const entries = await findByType(
13
+ context.gitAdapter,
14
+ context.getCurrentRef(),
15
+ context.type.name,
16
+ )
17
+
18
+ return entries.map((entry) => {
19
+ return { ...entry.data, id: entry.id }
20
+ })
21
+ }
@@ -0,0 +1,20 @@
1
+ import { EntryData } from '@commitspark/git-adapter'
2
+ import { findByTypeId } from '../../../persistence/persistence'
3
+ import { GraphQLFieldResolver } from 'graphql'
4
+ import { QueryMutationResolverContext } from '../types'
5
+
6
+ export const queryByIdResolver: GraphQLFieldResolver<
7
+ any,
8
+ QueryMutationResolverContext,
9
+ any,
10
+ Promise<EntryData>
11
+ > = async (obj, args, context, info) => {
12
+ const entry = await findByTypeId(
13
+ context.gitAdapter,
14
+ context.getCurrentRef(),
15
+ context.type.name,
16
+ args.id,
17
+ )
18
+
19
+ return { ...entry.data, id: entry.id }
20
+ }
@@ -0,0 +1,12 @@
1
+ import { getTypeById } from '../../../persistence/persistence'
2
+ import { GraphQLFieldResolver } from 'graphql'
3
+ import { ApolloContext } from '../../../client'
4
+
5
+ export const queryTypeByIdResolver: GraphQLFieldResolver<
6
+ any,
7
+ ApolloContext,
8
+ any,
9
+ Promise<string>
10
+ > = async (source, args, context, info) => {
11
+ return getTypeById(context.gitAdapter, context.getCurrentRef(), args.id)
12
+ }
@@ -0,0 +1,19 @@
1
+ import { ApolloContext } from '../../../client'
2
+ import { getTypeById } from '../../../persistence/persistence'
3
+ import { GraphQLTypeResolver } from 'graphql'
4
+ import { buildsOnTypeWithEntryDirective } from '../../schema-utils/entry-type-util'
5
+
6
+ export const unionTypeResolver: GraphQLTypeResolver<
7
+ any,
8
+ ApolloContext
9
+ > = async (obj, context, info, abstractType) => {
10
+ if (buildsOnTypeWithEntryDirective(abstractType)) {
11
+ return getTypeById(context.gitAdapter, context.getCurrentRef(), obj.id)
12
+ } else {
13
+ // We have injected an internal `__typename` field into the data of fields pointing to a non-entry union
14
+ // in UnionValueResolver. This artificial field holds the type information we need here.
15
+ return obj.__typename
16
+ }
17
+
18
+ // TODO same for interface type: https://www.apollographql.com/docs/apollo-server/data/resolvers/#resolving-unions-and-interfaces
19
+ }
@@ -0,0 +1,14 @@
1
+ import { ApolloContext } from '../../client'
2
+ import { GraphQLNamedType } from 'graphql/type'
3
+ import { GraphQLFieldResolver } from 'graphql'
4
+
5
+ export interface QueryMutationResolverContext extends ApolloContext {
6
+ type: GraphQLNamedType
7
+ }
8
+
9
+ export type QueryMutationResolver<ResultType> = GraphQLFieldResolver<
10
+ any,
11
+ ApolloContext,
12
+ any,
13
+ Promise<ResultType>
14
+ >
@@ -0,0 +1,55 @@
1
+ import {
2
+ GraphQLInterfaceType,
3
+ GraphQLObjectType,
4
+ GraphQLSchema,
5
+ GraphQLUnionType,
6
+ isInterfaceType,
7
+ isObjectType,
8
+ isUnionType,
9
+ } from 'graphql'
10
+ import { getDirective } from '@graphql-tools/utils'
11
+
12
+ export function analyzeSchema(schema: GraphQLSchema): SchemaAnalyzerResult {
13
+ const result: SchemaAnalyzerResult = {
14
+ entryDirectiveTypes: [],
15
+ objectTypes: [],
16
+ interfaceTypes: [],
17
+ unionTypes: [],
18
+ }
19
+
20
+ const typeMap = schema.getTypeMap()
21
+
22
+ for (const [key, type] of Object.entries(typeMap)) {
23
+ if (key.startsWith('__')) {
24
+ continue
25
+ }
26
+
27
+ if (isObjectType(type)) {
28
+ const objectType = type as GraphQLObjectType
29
+ result.objectTypes.push(objectType)
30
+ const entityDirective = getDirective(schema, objectType, 'Entry')?.[0]
31
+ if (entityDirective) {
32
+ result.entryDirectiveTypes.push(objectType)
33
+ }
34
+ }
35
+
36
+ if (isInterfaceType(type)) {
37
+ const interfaceType = type as GraphQLInterfaceType
38
+ result.interfaceTypes.push(interfaceType)
39
+ }
40
+
41
+ if (isUnionType(type)) {
42
+ const unionType = type as GraphQLUnionType
43
+ result.unionTypes.push(unionType)
44
+ }
45
+ }
46
+
47
+ return result
48
+ }
49
+
50
+ export interface SchemaAnalyzerResult {
51
+ entryDirectiveTypes: GraphQLObjectType[]
52
+ objectTypes: GraphQLObjectType[]
53
+ interfaceTypes: GraphQLInterfaceType[]
54
+ unionTypes: GraphQLUnionType[]
55
+ }
@@ -0,0 +1,161 @@
1
+ import {
2
+ generateQueriesAndMutations,
3
+ generateTypeNameQuery,
4
+ } from './queries-mutations-generator'
5
+ import {
6
+ IExecutableSchemaDefinition,
7
+ makeExecutableSchema,
8
+ } from '@graphql-tools/schema'
9
+ import { analyzeSchema } from './schema-analyzer'
10
+ import {
11
+ generateIdInputTypeStrings,
12
+ generateObjectInputTypeStrings,
13
+ generateUnionInputTypeStrings,
14
+ } from './input-type-generator'
15
+ import { generateSchemaRootTypeStrings } from './schema-root-type-generator'
16
+ import { printSchemaWithDirectives } from '@graphql-tools/utils'
17
+ import { unionTypeResolver } from './resolvers/query-mutation-resolvers/union-type-resolver'
18
+ import { ApolloContext } from '../client'
19
+ import { GraphQLFieldResolver, GraphQLTypeResolver } from 'graphql'
20
+ import { getValidationResult } from './schema-validator'
21
+ import { EntryData } from '@commitspark/git-adapter'
22
+ import { createObjectTypeFieldResolvers } from './resolvers/object-type-field-default-value-resolver-generator'
23
+
24
+ export async function generateSchema(
25
+ context: ApolloContext,
26
+ ): Promise<IExecutableSchemaDefinition> {
27
+ const originalSchemaString = await context.gitAdapter.getSchema(
28
+ context.getCurrentRef(),
29
+ )
30
+ const schema = makeExecutableSchema({
31
+ typeDefs: originalSchemaString,
32
+ })
33
+
34
+ const validationResult = getValidationResult(schema)
35
+ if (validationResult.length > 0) {
36
+ throw new Error(validationResult.join('\n'))
37
+ }
38
+ const schemaAnalyzerResult = analyzeSchema(schema)
39
+
40
+ const filteredOriginalSchemaString = printSchemaWithDirectives(schema) + '\n'
41
+
42
+ const generatedIdInputTypeStrings =
43
+ generateIdInputTypeStrings(schemaAnalyzerResult)
44
+
45
+ const generatedQueriesMutations = generateQueriesAndMutations(
46
+ schemaAnalyzerResult.entryDirectiveTypes,
47
+ )
48
+ const generatedTypeNameQuery = generateTypeNameQuery()
49
+
50
+ const generatedEntryReferenceResolvers: Record<
51
+ string,
52
+ Record<
53
+ string,
54
+ GraphQLFieldResolver<
55
+ Record<string, any>,
56
+ ApolloContext,
57
+ any,
58
+ Promise<EntryData | EntryData[] | null>
59
+ >
60
+ >
61
+ > = {}
62
+
63
+ const generatedObjectInputTypeStrings = generateObjectInputTypeStrings(
64
+ schemaAnalyzerResult.objectTypes,
65
+ )
66
+
67
+ const generatedUnionInputTypeStrings = generateUnionInputTypeStrings(
68
+ schemaAnalyzerResult.unionTypes,
69
+ )
70
+
71
+ const generatedSchemaRootTypeStrings = generateSchemaRootTypeStrings(
72
+ generatedQueriesMutations,
73
+ generatedTypeNameQuery,
74
+ )
75
+
76
+ const generatedSchemaString = `schema {
77
+ query: Query
78
+ mutation: Mutation
79
+ }
80
+
81
+ ${generatedSchemaRootTypeStrings}`
82
+
83
+ const generatedUnionTypeResolvers: Record<string, UnionTypeResolver> = {}
84
+ for (const unionType of schemaAnalyzerResult.unionTypes) {
85
+ generatedUnionTypeResolvers[unionType.name] = {
86
+ __resolveType: unionTypeResolver,
87
+ }
88
+ }
89
+ const generatedObjectTypeFieldResolvers =
90
+ createObjectTypeFieldResolvers(schema)
91
+
92
+ const generatedQueryResolvers: Record<
93
+ string,
94
+ GraphQLFieldResolver<any, ApolloContext>
95
+ > = {}
96
+ const generatedMutationResolvers: Record<
97
+ string,
98
+ GraphQLFieldResolver<any, ApolloContext>
99
+ > = {}
100
+
101
+ for (const element of generatedQueriesMutations) {
102
+ generatedQueryResolvers[element.queryAll.name] = element.queryAll.resolver
103
+ generatedQueryResolvers[element.queryById.name] = element.queryById.resolver
104
+ generatedMutationResolvers[element.createMutation.name] =
105
+ element.createMutation.resolver
106
+ generatedMutationResolvers[element.updateMutation.name] =
107
+ element.updateMutation.resolver
108
+ generatedMutationResolvers[element.deleteMutation.name] =
109
+ element.deleteMutation.resolver
110
+ }
111
+ generatedQueryResolvers[generatedTypeNameQuery.name] =
112
+ generatedTypeNameQuery.resolver
113
+
114
+ const allGeneratedResolvers: Record<
115
+ string,
116
+ Record<
117
+ string,
118
+ | GraphQLFieldResolver<any, ApolloContext>
119
+ | GraphQLTypeResolver<any, ApolloContext>
120
+ >
121
+ > = {
122
+ Query: generatedQueryResolvers,
123
+ Mutation: generatedMutationResolvers,
124
+ }
125
+
126
+ for (const typeName of Object.keys(generatedUnionTypeResolvers)) {
127
+ allGeneratedResolvers[typeName] = {
128
+ ...(allGeneratedResolvers[typeName] ?? {}),
129
+ ...generatedUnionTypeResolvers[typeName],
130
+ }
131
+ }
132
+ for (const typeName of Object.keys(generatedObjectTypeFieldResolvers)) {
133
+ allGeneratedResolvers[typeName] = {
134
+ ...(allGeneratedResolvers[typeName] ?? {}),
135
+ ...generatedObjectTypeFieldResolvers[typeName],
136
+ }
137
+ }
138
+ for (const typeName of Object.keys(generatedEntryReferenceResolvers)) {
139
+ allGeneratedResolvers[typeName] = {
140
+ ...(allGeneratedResolvers[typeName] ?? {}),
141
+ ...generatedEntryReferenceResolvers[typeName],
142
+ }
143
+ }
144
+
145
+ const typeDefs = [
146
+ filteredOriginalSchemaString,
147
+ generatedSchemaString,
148
+ generatedIdInputTypeStrings.join('\n'),
149
+ generatedObjectInputTypeStrings.join('\n'),
150
+ generatedUnionInputTypeStrings.join('\n'),
151
+ ].filter((typeDef) => typeDef.length > 0)
152
+
153
+ return {
154
+ typeDefs: typeDefs,
155
+ resolvers: allGeneratedResolvers,
156
+ }
157
+ }
158
+
159
+ interface UnionTypeResolver {
160
+ __resolveType: GraphQLTypeResolver<any, ApolloContext>
161
+ }
@@ -0,0 +1,35 @@
1
+ import { GeneratedQuery, GeneratedSchema } from './queries-mutations-generator'
2
+
3
+ export function generateSchemaRootTypeStrings(
4
+ generatedSchemas: GeneratedSchema[],
5
+ typeQuery: GeneratedQuery<Promise<string>>,
6
+ ): string {
7
+ return (
8
+ `type Query {\n` +
9
+ generatedSchemas
10
+ .map((generated) => ' ' + generated.queryAll.schemaString)
11
+ .join('\n') +
12
+ '\n' +
13
+ generatedSchemas
14
+ .map((generated) => ' ' + generated.queryById.schemaString)
15
+ .join('\n') +
16
+ '\n' +
17
+ ` ${typeQuery.schemaString}` +
18
+ '\n' +
19
+ '}\n\n' +
20
+ 'type Mutation {\n' +
21
+ generatedSchemas
22
+ .map((generated) => ' ' + generated.createMutation.schemaString)
23
+ .join('\n') +
24
+ '\n' +
25
+ generatedSchemas
26
+ .map((generated) => ' ' + generated.updateMutation.schemaString)
27
+ .join('\n') +
28
+ '\n' +
29
+ generatedSchemas
30
+ .map((generated) => ' ' + generated.deleteMutation.schemaString)
31
+ .join('\n') +
32
+ '\n' +
33
+ '}\n'
34
+ )
35
+ }