@contember/engine-content-api 1.3.0-alpha.1 → 1.3.0-alpha.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 (263) hide show
  1. package/dist/src/ExecutionContainer.d.ts +141 -0
  2. package/dist/src/ExecutionContainer.d.ts.map +1 -0
  3. package/dist/src/ExecutionContainer.js +84 -0
  4. package/dist/src/ExecutionContainer.js.map +1 -0
  5. package/dist/src/index.d.ts +2 -1
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/index.js +18 -2
  8. package/dist/src/index.js.map +1 -1
  9. package/dist/src/mapper/ColumnValue.d.ts +2 -2
  10. package/dist/src/mapper/ColumnValue.d.ts.map +1 -1
  11. package/dist/src/mapper/EventManager.d.ts +86 -0
  12. package/dist/src/mapper/EventManager.d.ts.map +1 -0
  13. package/dist/src/mapper/EventManager.js +118 -0
  14. package/dist/src/mapper/EventManager.js.map +1 -0
  15. package/dist/src/mapper/JunctionTableManager.d.ts +12 -11
  16. package/dist/src/mapper/JunctionTableManager.d.ts.map +1 -1
  17. package/dist/src/mapper/JunctionTableManager.js +20 -8
  18. package/dist/src/mapper/JunctionTableManager.js.map +1 -1
  19. package/dist/src/mapper/Mapper.d.ts +11 -6
  20. package/dist/src/mapper/Mapper.d.ts.map +1 -1
  21. package/dist/src/mapper/Mapper.js +34 -17
  22. package/dist/src/mapper/Mapper.js.map +1 -1
  23. package/dist/src/mapper/MapperFactory.d.ts +33 -0
  24. package/dist/src/mapper/MapperFactory.d.ts.map +1 -0
  25. package/dist/src/mapper/MapperFactory.js +40 -0
  26. package/dist/src/mapper/MapperFactory.js.map +1 -0
  27. package/dist/src/mapper/Result.d.ts +3 -2
  28. package/dist/src/mapper/Result.d.ts.map +1 -1
  29. package/dist/src/mapper/Result.js +2 -1
  30. package/dist/src/mapper/Result.js.map +1 -1
  31. package/dist/src/mapper/delete/DeleteExecutor.d.ts.map +1 -1
  32. package/dist/src/mapper/delete/DeleteExecutor.js +41 -1
  33. package/dist/src/mapper/delete/DeleteExecutor.js.map +1 -1
  34. package/dist/src/mapper/index.d.ts +3 -1
  35. package/dist/src/mapper/index.d.ts.map +1 -1
  36. package/dist/src/mapper/index.js +3 -1
  37. package/dist/src/mapper/index.js.map +1 -1
  38. package/dist/src/mapper/insert/InsertBuilder.d.ts +2 -2
  39. package/dist/src/mapper/insert/InsertBuilder.d.ts.map +1 -1
  40. package/dist/src/mapper/insert/InsertBuilder.js +8 -2
  41. package/dist/src/mapper/insert/InsertBuilder.js.map +1 -1
  42. package/dist/src/mapper/insert/Inserter.js +3 -3
  43. package/dist/src/mapper/insert/Inserter.js.map +1 -1
  44. package/dist/src/mapper/select/OrderByHelper.d.ts +1 -1
  45. package/dist/src/mapper/select/OrderByHelper.d.ts.map +1 -1
  46. package/dist/src/mapper/select/OrderByHelper.js +3 -1
  47. package/dist/src/mapper/select/OrderByHelper.js.map +1 -1
  48. package/dist/src/mapper/select/RelationFetcher.js +2 -2
  49. package/dist/src/mapper/select/RelationFetcher.js.map +1 -1
  50. package/dist/src/mapper/update/UpdateBuilder.d.ts +4 -4
  51. package/dist/src/mapper/update/UpdateBuilder.d.ts.map +1 -1
  52. package/dist/src/mapper/update/UpdateBuilder.js +26 -8
  53. package/dist/src/mapper/update/UpdateBuilder.js.map +1 -1
  54. package/dist/src/mapper/update/UpdateBuilderFactory.d.ts +1 -1
  55. package/dist/src/mapper/update/UpdateBuilderFactory.d.ts.map +1 -1
  56. package/dist/src/mapper/update/UpdateBuilderFactory.js +2 -2
  57. package/dist/src/mapper/update/UpdateBuilderFactory.js.map +1 -1
  58. package/dist/src/mapper/update/Updater.d.ts.map +1 -1
  59. package/dist/src/mapper/update/Updater.js +6 -10
  60. package/dist/src/mapper/update/Updater.js.map +1 -1
  61. package/dist/src/resolvers/GraphQlQueryAstFactory.d.ts +1 -3
  62. package/dist/src/resolvers/GraphQlQueryAstFactory.d.ts.map +1 -1
  63. package/dist/src/resolvers/GraphQlQueryAstFactory.js +1 -4
  64. package/dist/src/resolvers/GraphQlQueryAstFactory.js.map +1 -1
  65. package/dist/src/resolvers/MutationResolver.d.ts +1 -4
  66. package/dist/src/resolvers/MutationResolver.d.ts.map +1 -1
  67. package/dist/src/resolvers/MutationResolver.js +9 -11
  68. package/dist/src/resolvers/MutationResolver.js.map +1 -1
  69. package/dist/src/resolvers/ReadResolver.d.ts +1 -3
  70. package/dist/src/resolvers/ReadResolver.d.ts.map +1 -1
  71. package/dist/src/resolvers/ReadResolver.js +6 -10
  72. package/dist/src/resolvers/ReadResolver.js.map +1 -1
  73. package/dist/src/resolvers/ValidationResolver.d.ts +1 -3
  74. package/dist/src/resolvers/ValidationResolver.d.ts.map +1 -1
  75. package/dist/src/resolvers/ValidationResolver.js +3 -4
  76. package/dist/src/resolvers/ValidationResolver.js.map +1 -1
  77. package/dist/src/resolvers/index.d.ts +0 -1
  78. package/dist/src/resolvers/index.d.ts.map +1 -1
  79. package/dist/src/resolvers/index.js +0 -1
  80. package/dist/src/resolvers/index.js.map +1 -1
  81. package/dist/src/schema/CustomTypesProvider.d.ts.map +1 -1
  82. package/dist/src/schema/CustomTypesProvider.js +1 -23
  83. package/dist/src/schema/CustomTypesProvider.js.map +1 -1
  84. package/dist/src/schema/MutationProvider.js +4 -4
  85. package/dist/src/schema/MutationProvider.js.map +1 -1
  86. package/dist/src/schema/QueryProvider.js +3 -3
  87. package/dist/src/schema/QueryProvider.js.map +1 -1
  88. package/dist/src/tsconfig.tsbuildinfo +1 -1
  89. package/dist/src/types.d.ts +2 -3
  90. package/dist/src/types.d.ts.map +1 -1
  91. package/dist/tests/cases/bugs/bug-update-by-nested-unique.test.js +3 -5
  92. package/dist/tests/cases/bugs/bug-update-by-nested-unique.test.js.map +1 -1
  93. package/dist/tests/cases/integration/graphQlDb/insert/insertSequence.test.js +2 -2
  94. package/dist/tests/cases/integration/graphQlDb/insert/insertSequence.test.js.map +1 -1
  95. package/dist/tests/cases/integration/graphQlDb/update/bug-freeze-connect-missing-one.test.js +1 -1
  96. package/dist/tests/cases/integration/graphQlDb/update/bug-freeze-connect-missing-one.test.js.map +1 -1
  97. package/dist/tests/cases/integration/graphQlDb/update/deferedConstraints.test.js +45 -45
  98. package/dist/tests/cases/integration/graphQlDb/update/deferedConstraints.test.js.map +1 -1
  99. package/dist/tests/cases/integration/graphQlDb/update/failedDelete.test.js +5 -5
  100. package/dist/tests/cases/integration/graphQlDb/update/failedDelete.test.js.map +1 -1
  101. package/dist/tests/cases/integration/graphQlDb/update/invalidInput.test.js +2 -2
  102. package/dist/tests/cases/integration/graphQlDb/update/invalidInput.test.js.map +1 -1
  103. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.js +7 -7
  104. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.js.map +1 -1
  105. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.js +7 -7
  106. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.js.map +1 -1
  107. package/dist/tests/cases/integration/graphQlDb/update/uniqueConstraint.test.js +2 -2
  108. package/dist/tests/cases/integration/graphQlDb/update/uniqueConstraint.test.js.map +1 -1
  109. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.js +3 -3
  110. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.js.map +1 -1
  111. package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.d.ts +2 -0
  112. package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.d.ts.map +1 -0
  113. package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.js +67 -0
  114. package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.js.map +1 -0
  115. package/dist/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.js +6 -18
  116. package/dist/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.js.map +1 -1
  117. package/dist/tests/cases/integration/graphQlRequests/update/additionalFilter.test.js +3 -4
  118. package/dist/tests/cases/integration/graphQlRequests/update/additionalFilter.test.js.map +1 -1
  119. package/dist/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.js +3 -8
  120. package/dist/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.js.map +1 -1
  121. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.js +3 -9
  122. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.js.map +1 -1
  123. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.js +3 -9
  124. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.js.map +1 -1
  125. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.js +3 -9
  126. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.js.map +1 -1
  127. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.js +3 -9
  128. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.js.map +1 -1
  129. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.js +3 -10
  130. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.js.map +1 -1
  131. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.js +3 -10
  132. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.js.map +1 -1
  133. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.js +3 -9
  134. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.js.map +1 -1
  135. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.js +3 -9
  136. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.js.map +1 -1
  137. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.js +6 -18
  138. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.js.map +1 -1
  139. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.js +3 -11
  140. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.js.map +1 -1
  141. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.js +3 -8
  142. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.js.map +1 -1
  143. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.js +3 -6
  144. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.js.map +1 -1
  145. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.js +3 -6
  146. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.js.map +1 -1
  147. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.js +15 -50
  148. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.js.map +1 -1
  149. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.js +3 -10
  150. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.js.map +1 -1
  151. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.js +3 -10
  152. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.js.map +1 -1
  153. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.js +3 -6
  154. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.js.map +1 -1
  155. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.js +3 -7
  156. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.js.map +1 -1
  157. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.js +12 -32
  158. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.js.map +1 -1
  159. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.js +3 -3
  160. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.js.map +1 -1
  161. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.js +6 -20
  162. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.js.map +1 -1
  163. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.js +3 -10
  164. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.js.map +1 -1
  165. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.js +3 -9
  166. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.js.map +1 -1
  167. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.js +6 -19
  168. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.js.map +1 -1
  169. package/dist/tests/cases/integration/graphQlRequests/update/queryPortal.test.js +6 -8
  170. package/dist/tests/cases/integration/graphQlRequests/update/queryPortal.test.js.map +1 -1
  171. package/dist/tests/cases/integration/graphQlRequests/update/transaction.test.js +9 -24
  172. package/dist/tests/cases/integration/graphQlRequests/update/transaction.test.js.map +1 -1
  173. package/dist/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.js +3 -7
  174. package/dist/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.js.map +1 -1
  175. package/dist/tests/cases/unit/orderbyHelper.test.js +11 -0
  176. package/dist/tests/cases/unit/orderbyHelper.test.js.map +1 -1
  177. package/dist/tests/src/test.d.ts +1 -0
  178. package/dist/tests/src/test.d.ts.map +1 -1
  179. package/dist/tests/src/test.js +34 -6
  180. package/dist/tests/src/test.js.map +1 -1
  181. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  182. package/package.json +11 -11
  183. package/src/ExecutionContainer.ts +204 -0
  184. package/src/index.ts +24 -1
  185. package/src/mapper/ColumnValue.ts +2 -2
  186. package/src/mapper/EventManager.ts +158 -0
  187. package/src/mapper/JunctionTableManager.ts +50 -32
  188. package/src/mapper/Mapper.ts +39 -21
  189. package/src/mapper/MapperFactory.ts +67 -0
  190. package/src/mapper/Result.ts +2 -1
  191. package/src/mapper/delete/DeleteExecutor.ts +42 -1
  192. package/src/mapper/index.ts +3 -1
  193. package/src/mapper/insert/InsertBuilder.ts +12 -2
  194. package/src/mapper/insert/Inserter.ts +3 -3
  195. package/src/mapper/select/OrderByHelper.ts +2 -1
  196. package/src/mapper/select/RelationFetcher.ts +2 -2
  197. package/src/mapper/update/UpdateBuilder.ts +30 -7
  198. package/src/mapper/update/UpdateBuilderFactory.ts +2 -2
  199. package/src/mapper/update/Updater.ts +6 -11
  200. package/src/resolvers/GraphQlQueryAstFactory.ts +1 -2
  201. package/src/resolvers/MutationResolver.ts +12 -13
  202. package/src/resolvers/ReadResolver.ts +5 -9
  203. package/src/resolvers/ValidationResolver.ts +2 -4
  204. package/src/resolvers/index.ts +0 -1
  205. package/src/schema/CustomTypesProvider.ts +2 -27
  206. package/src/schema/MutationProvider.ts +4 -4
  207. package/src/schema/QueryProvider.ts +3 -3
  208. package/src/tsconfig.json +7 -21
  209. package/src/types.ts +2 -3
  210. package/tests/cases/bugs/bug-update-by-nested-unique.test.ts +3 -5
  211. package/tests/cases/integration/graphQlDb/insert/insertSequence.test.ts +2 -2
  212. package/tests/cases/integration/graphQlDb/update/bug-freeze-connect-missing-one.test.ts +1 -1
  213. package/tests/cases/integration/graphQlDb/update/deferedConstraints.test.ts +9 -9
  214. package/tests/cases/integration/graphQlDb/update/failedDelete.test.ts +3 -3
  215. package/tests/cases/integration/graphQlDb/update/invalidInput.test.ts +2 -2
  216. package/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.ts +7 -7
  217. package/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.ts +7 -7
  218. package/tests/cases/integration/graphQlDb/update/uniqueConstraint.test.ts +2 -2
  219. package/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.ts +3 -3
  220. package/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.ts +67 -0
  221. package/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.ts +6 -18
  222. package/tests/cases/integration/graphQlRequests/update/additionalFilter.test.ts +3 -4
  223. package/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.ts +3 -8
  224. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.ts +3 -9
  225. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.ts +3 -9
  226. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.ts +3 -9
  227. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.ts +3 -9
  228. package/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.ts +3 -10
  229. package/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.ts +3 -10
  230. package/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.ts +3 -9
  231. package/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.ts +3 -9
  232. package/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.ts +6 -18
  233. package/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.ts +3 -11
  234. package/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.ts +3 -8
  235. package/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.ts +3 -6
  236. package/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.ts +3 -6
  237. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.ts +15 -50
  238. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.ts +3 -10
  239. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.ts +3 -10
  240. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.ts +3 -6
  241. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.ts +3 -7
  242. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.ts +12 -32
  243. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.ts +3 -3
  244. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.ts +6 -20
  245. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.ts +3 -10
  246. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.ts +3 -9
  247. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.ts +6 -19
  248. package/tests/cases/integration/graphQlRequests/update/queryPortal.test.ts +6 -8
  249. package/tests/cases/integration/graphQlRequests/update/transaction.test.ts +9 -24
  250. package/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.ts +3 -7
  251. package/tests/cases/unit/orderbyHelper.test.ts +13 -0
  252. package/tests/src/test.ts +38 -15
  253. package/tests/tsconfig.json +3 -9
  254. package/dist/src/mapper/MapperContainer.d.ts +0 -18
  255. package/dist/src/mapper/MapperContainer.d.ts.map +0 -1
  256. package/dist/src/mapper/MapperContainer.js +0 -55
  257. package/dist/src/mapper/MapperContainer.js.map +0 -1
  258. package/dist/src/resolvers/ExecutionContainerFactory.d.ts +0 -24
  259. package/dist/src/resolvers/ExecutionContainerFactory.d.ts.map +0 -1
  260. package/dist/src/resolvers/ExecutionContainerFactory.js +0 -45
  261. package/dist/src/resolvers/ExecutionContainerFactory.js.map +0 -1
  262. package/src/mapper/MapperContainer.ts +0 -142
  263. package/src/resolvers/ExecutionContainerFactory.ts +0 -74
@@ -43,17 +43,10 @@ test('create', async () => {
43
43
  response: { rows: [{ id: testUuid(1) }] },
44
44
  },
45
45
  {
46
- sql: SQL`with "newData_" as
47
- (select
48
- ? :: uuid as "setting_id",
49
- "root_"."id",
50
- "root_"."name"
51
- from "public"."site" as "root_"
52
- where "root_"."id" = ?) update "public"."site"
53
- set "setting_id" = "newData_"."setting_id" from "newData_"
54
- where "site"."id" = "newData_"."id"`,
46
+ sql: SQL`with "newData_" as (select ? :: uuid as "setting_id", "root_"."setting_id" as "setting_id_old__", "root_"."id", "root_"."name" from "public"."site" as "root_" where "root_"."id" = ?)
47
+ update "public"."site" set "setting_id" = "newData_"."setting_id" from "newData_" where "site"."id" = "newData_"."id" returning "setting_id_old__"`,
55
48
  parameters: [testUuid(1), testUuid(2)],
56
- response: { rowCount: 1 },
49
+ response: { rows: [{ setting_id_old__: testUuid(99) }] },
57
50
  },
58
51
  ]),
59
52
  ],
@@ -104,17 +97,10 @@ test('create - orphan removal', async () => {
104
97
  response: { rows: [{ id: testUuid(1) }] },
105
98
  },
106
99
  {
107
- sql: SQL`with "newData_" as
108
- (select
109
- ? :: uuid as "setting_id",
110
- "root_"."id",
111
- "root_"."name"
112
- from "public"."site" as "root_"
113
- where "root_"."id" = ?) update "public"."site"
114
- set "setting_id" = "newData_"."setting_id" from "newData_"
115
- where "site"."id" = "newData_"."id"`,
100
+ sql: SQL`with "newData_" as (select ? :: uuid as "setting_id", "root_"."setting_id" as "setting_id_old__", "root_"."id", "root_"."name" from "public"."site" as "root_" where "root_"."id" = ?)
101
+ update "public"."site" set "setting_id" = "newData_"."setting_id" from "newData_" where "site"."id" = "newData_"."id" returning "setting_id_old__"`,
116
102
  parameters: [testUuid(1), siteId],
117
- response: { rowCount: 1 },
103
+ response: { rows: [{ setting_id_old__: testUuid(99) }] },
118
104
  },
119
105
  {
120
106
  sql: 'select "root_"."id" from "public"."site_setting" as "root_" where "root_"."id" = ?',
@@ -23,17 +23,10 @@ test('disconnect', async () => {
23
23
  response: { rows: [{ id: testUuid(2) }] },
24
24
  },
25
25
  {
26
- sql: SQL`with "newData_" as
27
- (select
28
- ? :: uuid as "setting_id",
29
- "root_"."id",
30
- "root_"."name"
31
- from "public"."site" as "root_"
32
- where "root_"."id" = ?) update "public"."site"
33
- set "setting_id" = "newData_"."setting_id" from "newData_"
34
- where "site"."id" = "newData_"."id"`,
26
+ sql: SQL`with "newData_" as (select ? :: uuid as "setting_id", "root_"."setting_id" as "setting_id_old__", "root_"."id", "root_"."name" from "public"."site" as "root_" where "root_"."id" = ?)
27
+ update "public"."site" set "setting_id" = "newData_"."setting_id" from "newData_" where "site"."id" = "newData_"."id" returning "setting_id_old__"`,
35
28
  parameters: [null, testUuid(2)],
36
- response: { rowCount: 1 },
29
+ response: { rows: [{ setting_id_old__: testUuid(99) }] },
37
30
  },
38
31
  ]),
39
32
  ],
@@ -37,16 +37,10 @@ test('update', async () => {
37
37
  response: { rows: [{ id: testUuid(1) }] },
38
38
  },
39
39
  {
40
- sql: SQL`with "newData_" as
41
- (select
42
- ? :: text as "url",
43
- "root_"."id"
44
- from "public"."site_setting" as "root_"
45
- where "root_"."id" = ?) update "public"."site_setting"
46
- set "url" = "newData_"."url" from "newData_"
47
- where "site_setting"."id" = "newData_"."id"`,
40
+ sql: SQL`with "newData_" as (select ? :: text as "url", "root_"."url" as "url_old__", "root_"."id" from "public"."site_setting" as "root_" where "root_"."id" = ?)
41
+ update "public"."site_setting" set "url" = "newData_"."url" from "newData_" where "site_setting"."id" = "newData_"."id" returning "url_old__"`,
48
42
  parameters: ['http://mangoweb.cz', testUuid(1)],
49
- response: { rowCount: 1 },
43
+ response: { rows: [{ url_old__: 'https://google.com' }] },
50
44
  },
51
45
  ]),
52
46
  ],
@@ -37,16 +37,10 @@ test('upsert - exists', async () => {
37
37
  response: { rows: [{ id: testUuid(1) }] },
38
38
  },
39
39
  {
40
- sql: SQL`with "newData_" as
41
- (select
42
- ? :: text as "url",
43
- "root_"."id"
44
- from "public"."site_setting" as "root_"
45
- where "root_"."id" = ?) update "public"."site_setting"
46
- set "url" = "newData_"."url" from "newData_"
47
- where "site_setting"."id" = "newData_"."id"`,
40
+ sql: SQL`with "newData_" as (select ? :: text as "url", "root_"."url" as "url_old__", "root_"."id" from "public"."site_setting" as "root_" where "root_"."id" = ?)
41
+ update "public"."site_setting" set "url" = "newData_"."url" from "newData_" where "site_setting"."id" = "newData_"."id" returning "url_old__"`,
48
42
  parameters: ['http://mangoweb.cz', testUuid(1)],
49
- response: { rowCount: 1 },
43
+ response: { rows: [{ url_old__: 'xxx' }] },
50
44
  },
51
45
  ]),
52
46
  ],
@@ -97,17 +91,10 @@ test('upsert - not exists', async () => {
97
91
  response: { rows: [{ id: testUuid(1) }] },
98
92
  },
99
93
  {
100
- sql: SQL`with "newData_" as
101
- (select
102
- ? :: uuid as "setting_id",
103
- "root_"."id",
104
- "root_"."name"
105
- from "public"."site" as "root_"
106
- where "root_"."id" = ?) update "public"."site"
107
- set "setting_id" = "newData_"."setting_id" from "newData_"
108
- where "site"."id" = "newData_"."id"`,
94
+ sql: SQL`with "newData_" as (select ? :: uuid as "setting_id", "root_"."setting_id" as "setting_id_old__", "root_"."id", "root_"."name" from "public"."site" as "root_" where "root_"."id" = ?)
95
+ update "public"."site" set "setting_id" = "newData_"."setting_id" from "newData_" where "site"."id" = "newData_"."id" returning "setting_id_old__"`,
109
96
  parameters: [testUuid(1), testUuid(2)],
110
- response: { rowCount: 1 },
97
+ response: { rows: [{ setting_id_old__: null }] },
111
98
  },
112
99
  ]),
113
100
  ],
@@ -31,11 +31,10 @@ test('query portal', async () => {
31
31
  parameters: [testUuid(1)],
32
32
  },
33
33
  {
34
- sql: SQL`with "newData_" as
35
- (select ? :: text as "title", "root_"."id" from "public"."post" as "root_" where "root_"."id" = ?)
36
- update "public"."post" set "title" = "newData_"."title" from "newData_" where "post"."id" = "newData_"."id"`,
34
+ sql: SQL`with "newData_" as (select ? :: text as "title", "root_"."title" as "title_old__", "root_"."id" from "public"."post" as "root_" where "root_"."id" = ?)
35
+ update "public"."post" set "title" = "newData_"."title" from "newData_" where "post"."id" = "newData_"."id" returning "title_old__"`,
37
36
  parameters: ['Hello', testUuid(1)],
38
- response: { rowCount: 1 },
37
+ response: { rows: [{ title_old__: 'Hi' }] },
39
38
  },
40
39
  ]),
41
40
  {
@@ -90,11 +89,10 @@ test('transaction with query portal', async () => {
90
89
  parameters: [testUuid(1)],
91
90
  },
92
91
  {
93
- sql: SQL`with "newData_" as
94
- (select ? :: text as "title", "root_"."id" from "public"."post" as "root_" where "root_"."id" = ?)
95
- update "public"."post" set "title" = "newData_"."title" from "newData_" where "post"."id" = "newData_"."id"`,
92
+ sql: SQL`with "newData_" as (select ? :: text as "title", "root_"."title" as "title_old__", "root_"."id" from "public"."post" as "root_" where "root_"."id" = ?)
93
+ update "public"."post" set "title" = "newData_"."title" from "newData_" where "post"."id" = "newData_"."id" returning "title_old__"`,
96
94
  parameters: ['Hello', testUuid(1)],
97
- response: { rowCount: 1 },
95
+ response: { rows: [{ title_old__: 'Hi' }] },
98
96
  },
99
97
  {
100
98
  sql: SQL`select "root_"."id" as "root_id"
@@ -41,15 +41,10 @@ test('executes in a transaction', async () => {
41
41
  response: { rows: [{ id: testUuid(1) }] },
42
42
  },
43
43
  {
44
- sql: SQL`with "newData_" as (select
45
- ? :: text as "name",
46
- "root_"."id"
47
- from "public"."author" as "root_"
48
- where "root_"."id" = ?) update "public"."author"
49
- set "name" = "newData_"."name" from "newData_"
50
- where "author"."id" = "newData_"."id"`,
44
+ sql: SQL`with "newData_" as (select ? :: text as "name", "root_"."name" as "name_old__", "root_"."id" from "public"."author" as "root_" where "root_"."id" = ?)
45
+ update "public"."author" set "name" = "newData_"."name" from "newData_" where "author"."id" = "newData_"."id" returning "name_old__"`,
51
46
  parameters: ['John', testUuid(1)],
52
- response: { rowCount: 1 },
47
+ response: { rows: [{ name_old__: 'Jack' }] },
53
48
  },
54
49
  {
55
50
  sql: SQL`select "root_"."id" as "root_id"
@@ -66,15 +61,10 @@ test('executes in a transaction', async () => {
66
61
  response: { rows: [{ id: testUuid(2) }] },
67
62
  },
68
63
  {
69
- sql: SQL`with "newData_" as (select
70
- ? :: text as "name",
71
- "root_"."id"
72
- from "public"."author" as "root_"
73
- where "root_"."id" = ?) update "public"."author"
74
- set "name" = "newData_"."name" from "newData_"
75
- where "author"."id" = "newData_"."id"`,
64
+ sql: SQL`with "newData_" as (select ? :: text as "name", "root_"."name" as "name_old__", "root_"."id" from "public"."author" as "root_" where "root_"."id" = ?)
65
+ update "public"."author" set "name" = "newData_"."name" from "newData_" where "author"."id" = "newData_"."id" returning "name_old__"`,
76
66
  parameters: ['Jack', testUuid(2)],
77
- response: { rowCount: 1 },
67
+ response: { rows: [{ name_old__: 'Jack' }] },
78
68
  },
79
69
  {
80
70
  sql: SQL`select "root_"."id" as "root_id"
@@ -146,15 +136,10 @@ test('executes fails a transaction', async () => {
146
136
  response: { rows: [{ id: testUuid(1) }] },
147
137
  },
148
138
  {
149
- sql: SQL`with "newData_" as (select
150
- ? :: text as "name",
151
- "root_"."id"
152
- from "public"."author" as "root_"
153
- where "root_"."id" = ?) update "public"."author"
154
- set "name" = "newData_"."name" from "newData_"
155
- where "author"."id" = "newData_"."id"`,
139
+ sql: SQL`with "newData_" as (select ? :: text as "name", "root_"."name" as "name_old__", "root_"."id" from "public"."author" as "root_" where "root_"."id" = ?)
140
+ update "public"."author" set "name" = "newData_"."name" from "newData_" where "author"."id" = "newData_"."id" returning "name_old__"`,
156
141
  parameters: ['John', testUuid(1)],
157
- response: { rowCount: 1 },
142
+ response: { rows: [{ name_old__: 'Jack' }] },
158
143
  },
159
144
  {
160
145
  sql: SQL`select "root_"."id" as "root_id"
@@ -88,14 +88,10 @@ test('upsert author (exists)', async () => {
88
88
  response: { rows: [{ id: testUuid(2) }] },
89
89
  },
90
90
  {
91
- sql: SQL`
92
- with "newData_" as
93
- (select ? :: text as "name", "root_"."id", "root_"."slug" from "public"."author" as "root_" where "root_"."id" = ?)
94
- update "public"."author" set "name" = "newData_"."name"
95
- from "newData_" where "author"."id" = "newData_"."id"
96
- `,
91
+ sql: SQL`with "newData_" as (select ? :: text as "name", "root_"."name" as "name_old__", "root_"."id", "root_"."slug" from "public"."author" as "root_" where "root_"."id" = ?)
92
+ update "public"."author" set "name" = "newData_"."name" from "newData_" where "author"."id" = "newData_"."id" returning "name_old__"`,
97
93
  parameters: ['John Doe', testUuid(2)],
98
- response: { rowCount: 1 },
94
+ response: { rows: [{ name_old__: 'Foo' }] },
99
95
  },
100
96
  {
101
97
  sql: SQL`select "root_"."id" as "root_id" from "public"."author" as "root_" where "root_"."slug" = ?`,
@@ -68,4 +68,17 @@ describe('order by helper', () => {
68
68
  const newNode = OrderByHelper.appendDefaultOrderBy(entity, objectNode, [])
69
69
  assert.isUndefined(newNode.args.orderBy)
70
70
  })
71
+
72
+ it('set default order by without defined order', () => {
73
+ const objectNode = new ObjectNode('test', 'test', [], {}, {}, [])
74
+
75
+ const newNode = OrderByHelper.appendDefaultOrderBy({
76
+ ...entity,
77
+ orderBy: [{ path: ['lorem', 'ipsum'], direction: Input.OrderDirection.desc }],
78
+ }, objectNode, undefined)
79
+ assert.deepStrictEqual(newNode.args.orderBy, [
80
+ { lorem: { ipsum: Input.OrderDirection.desc } },
81
+ { id: Input.OrderDirection.asc },
82
+ ])
83
+ })
71
84
  })
package/tests/src/test.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import { Acl, Model, Schema, Validation } from '@contember/schema'
2
- import { Authorizator, ExecutionContainerFactory, GraphQlSchemaBuilderFactory } from '../../src'
2
+ import { Authorizator, GraphQlSchemaBuilderFactory, ExecutionContainerFactory } from '../../src'
3
3
  import { AllowAllPermissionFactory, emptySchema } from '@contember/schema-utils'
4
4
  import { executeGraphQlTest } from './testGraphql'
5
5
  import { Client } from '@contember/database'
6
6
  import { createConnectionMock } from '@contember/database-tester'
7
7
  import { createUuidGenerator } from '@contember/engine-api-tester'
8
- import { getArgumentValues } from 'graphql'
9
8
  import { SQL } from './tags'
9
+ import { testUuid } from './testUuid'
10
10
 
11
11
  export interface SqlQuery {
12
12
  sql: string
@@ -36,6 +36,19 @@ const SQL_REPEATABLE_READ = {
36
36
  response: {},
37
37
  }
38
38
 
39
+ export const systemVariableQueries: SqlQuery[] = [
40
+ {
41
+ sql: 'select set_config(?, ?, false)',
42
+ parameters: ['tenant.identity_id', '00000000-0000-0000-0000-000000000000'],
43
+ response: {},
44
+ },
45
+ {
46
+ sql: 'select set_config(?, ?, false)',
47
+ parameters: ['system.transaction_id', testUuid(1)],
48
+ response: {},
49
+ },
50
+ ]
51
+
39
52
  export const sqlTransaction = (executes: SqlQuery[]): SqlQuery[] => {
40
53
  return [
41
54
  SQL_BEGIN,
@@ -72,23 +85,33 @@ export const execute = async (test: Test) => {
72
85
 
73
86
  const db = new Client(connection, 'public', {})
74
87
  const schema: Schema = { ...emptySchema, model: test.schema, validation: test.validation || {} }
88
+ const providers = {
89
+ uuid: createUuidGenerator('a456', 0),
90
+ now: () => new Date('2019-09-04 12:00'),
91
+ }
92
+ const executionContainerFactory = new ExecutionContainerFactory(providers)
93
+ executionContainerFactory.hooks.push(it => {
94
+ return it.setupService('mapperFactory', mapperFactory => {
95
+ mapperFactory.hooks.push(mapper => {
96
+ (mapper as any).systemVariablesSetupDone = Promise.resolve(true)
97
+ })
98
+ })
99
+ })
75
100
  await executeGraphQlTest({
76
101
  context: {
77
102
  db: db,
78
103
  identityVariables: test.variables || {},
79
- executionContainer: new ExecutionContainerFactory(
80
- schema,
81
- permissions,
82
- {
83
- uuid: createUuidGenerator(),
84
- now: () => new Date('2019-09-04 12:00'),
85
- },
86
- getArgumentValues,
87
- () => Promise.resolve(),
88
- ).create({
89
- db,
90
- identityVariables: test.variables || {},
91
- }),
104
+ executionContainer: executionContainerFactory
105
+ .create({
106
+ permissions,
107
+ schema: { ...schema, id: 1 },
108
+ db,
109
+ identityVariables: test.variables || {},
110
+ identityId: '00000000-0000-0000-0000-000000000000',
111
+ systemSchema: 'system',
112
+ stage: { id: '00000000-0000-0000-0000-000000000000', slug: 'live' },
113
+ project: { slug: 'test' },
114
+ }),
92
115
  timer: (label: any, cb: any) => cb(),
93
116
  },
94
117
  query: test.query,
@@ -5,14 +5,8 @@
5
5
  "esModuleInterop": true
6
6
  },
7
7
  "references": [
8
- {
9
- "path": "../src"
10
- },
11
- {
12
- "path": "../../engine-api-tester/src"
13
- },
14
- {
15
- "path": "../../schema-definition/src"
16
- }
8
+ { "path": "../src" },
9
+ { "path": "../../engine-api-tester/src" },
10
+ { "path": "../../schema-definition/src" }
17
11
  ]
18
12
  }
@@ -1,18 +0,0 @@
1
- import { Mapper, MapperFactory } from '../mapper';
2
- import { Acl, Schema } from '@contember/schema';
3
- import { Client } from '@contember/database';
4
- import { Providers } from '@contember/schema-utils';
5
- declare type MapperContainerArgs = {
6
- schema: Schema;
7
- identityVariables: Acl.VariablesMap;
8
- permissions: Acl.Permissions;
9
- providers: Providers;
10
- };
11
- export interface MapperContainer {
12
- mapperFactory: MapperFactory;
13
- }
14
- export declare const createMapperContainer: ({ permissions, schema, identityVariables, providers }: MapperContainerArgs) => import("@contember/dic").Container<{
15
- mapperFactory: (db: Client) => Mapper;
16
- }>;
17
- export {};
18
- //# sourceMappingURL=MapperContainer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapperContainer.d.ts","sourceRoot":"","sources":["../../../src/mapper/MapperContainer.ts"],"names":[],"mappings":"AAYA,OAAO,EAON,MAAM,EACN,aAAa,EAOb,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,GAAG,EAAS,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAoC,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMnD,aAAK,mBAAmB,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,GAAG,CAAC,YAAY,CAAA;IACnC,WAAW,EAAE,GAAG,CAAC,WAAW,CAAA;IAC5B,SAAS,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,MAAM,WAAW,eAAe;IAC/B,aAAa,EAAE,aAAa,CAAA;CAC5B;AAED,eAAO,MAAM,qBAAqB,0DAA2D,mBAAmB;wBA6EjG,MAAM;EAgBpB,CAAA"}
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMapperContainer = void 0;
4
- const acl_1 = require("../acl");
5
- const select_1 = require("./select");
6
- const inputProcessing_1 = require("../inputProcessing");
7
- const extensions_1 = require("../extensions");
8
- const mapper_1 = require("../mapper");
9
- const dic_1 = require("@contember/dic");
10
- const PaginatedHasManyExecutionHandler_1 = require("../extensions/paginatedHasMany/PaginatedHasManyExecutionHandler");
11
- const PaginatedHasManyFieldProvider_1 = require("../extensions/paginatedHasMany/PaginatedHasManyFieldProvider");
12
- const WhereOptimizer_1 = require("./select/optimizer/WhereOptimizer");
13
- const ConditionOptimizer_1 = require("./select/optimizer/ConditionOptimizer");
14
- const createMapperContainer = ({ permissions, schema, identityVariables, providers }) => {
15
- const builder = new dic_1.Builder({})
16
- .addService('providers', () => providers)
17
- .addService('variableInjector', () => new acl_1.VariableInjector(schema.model, identityVariables))
18
- .addService('predicateFactory', ({ variableInjector }) => new acl_1.PredicateFactory(permissions, schema.model, variableInjector))
19
- .addService('predicatesInjector', ({ predicateFactory }) => new acl_1.PredicatesInjector(schema.model, predicateFactory))
20
- .addService('joinBuilder', () => new select_1.JoinBuilder(schema.model))
21
- .addService('conditionBuilder', () => new select_1.ConditionBuilder())
22
- .addService('pathFactory', () => new mapper_1.PathFactory())
23
- .addService('whereOptimized', () => new WhereOptimizer_1.WhereOptimizer(schema.model, new ConditionOptimizer_1.ConditionOptimizer()))
24
- .addService('whereBuilder', ({ joinBuilder, conditionBuilder, pathFactory, whereOptimized }) => new select_1.WhereBuilder(schema.model, joinBuilder, conditionBuilder, pathFactory, whereOptimized, schema.settings.useExistsInHasManyFilter === true))
25
- .addService('orderByBuilder', ({ joinBuilder }) => new select_1.OrderByBuilder(schema.model, joinBuilder))
26
- .addService('relationFetcher', ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) => new select_1.RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory))
27
- .addService('fieldsVisitorFactory', ({ relationFetcher, predicateFactory, whereBuilder }) => new select_1.FieldsVisitorFactory(schema.model, relationFetcher, predicateFactory, whereBuilder))
28
- .addService('metaHandler', ({ whereBuilder, predicateFactory }) => new select_1.MetaHandler(whereBuilder, predicateFactory))
29
- .addService('uniqueWhereExpander', () => new inputProcessing_1.UniqueWhereExpander(schema.model))
30
- .addService('hasManyToHasOneReducer', ({ uniqueWhereExpander }) => new extensions_1.HasManyToHasOneReducerExecutionHandler(schema.model, uniqueWhereExpander))
31
- .addService('paginatedHasManyExecutionHandler', ({ relationFetcher }) => new PaginatedHasManyExecutionHandler_1.PaginatedHasManyExecutionHandler(schema.model, relationFetcher))
32
- .addService('selectHandlers', ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({
33
- [extensions_1.HasManyToHasOneReducer.extensionName]: hasManyToHasOneReducer,
34
- [PaginatedHasManyFieldProvider_1.PaginatedHasManyFieldProvider.extensionName]: paginatedHasManyExecutionHandler,
35
- }))
36
- .addService('selectBuilderFactory', ({ whereBuilder, orderByBuilder, fieldsVisitorFactory, metaHandler, selectHandlers, pathFactory, predicateFactory }) => new (class {
37
- create(qb, hydrator, relationPath) {
38
- return new mapper_1.SelectBuilder(schema.model, whereBuilder, orderByBuilder, metaHandler, qb, hydrator, fieldsVisitorFactory, selectHandlers, pathFactory, relationPath, predicateFactory);
39
- }
40
- })())
41
- .addService('insertBuilderFactory', ({ whereBuilder, pathFactory, predicateFactory }) => new mapper_1.InsertBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))
42
- .addService('updateBuilderFactory', ({ whereBuilder, pathFactory, predicateFactory }) => new mapper_1.UpdateBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))
43
- .addService('connectJunctionHandler', () => new mapper_1.JunctionConnectHandler())
44
- .addService('disconnectJunctionHandler', ({}) => new mapper_1.JunctionDisconnectHandler())
45
- .addService('junctionTableManager', ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory }) => new mapper_1.JunctionTableManager(schema.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory))
46
- .addService('deleteExecutor', ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory }) => new mapper_1.DeleteExecutor(schema.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory))
47
- .addService('updater', ({ predicateFactory, updateBuilderFactory }) => new mapper_1.Updater(schema.model, predicateFactory, updateBuilderFactory))
48
- .addService('inserter', ({ insertBuilderFactory, providers }) => new mapper_1.Inserter(schema.model, insertBuilderFactory, providers))
49
- .addService('mapperFactory', ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory }) => {
50
- return (db) => new mapper_1.Mapper(schema.model, db, predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory);
51
- });
52
- return builder.build().pick('mapperFactory');
53
- };
54
- exports.createMapperContainer = createMapperContainer;
55
- //# sourceMappingURL=MapperContainer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapperContainer.js","sourceRoot":"","sources":["../../../src/mapper/MapperContainer.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { Container } from '@contember/dic';
2
- import { Acl, Schema } from '@contember/schema';
3
- import { Context } from '../types';
4
- import { ReadResolver } from './ReadResolver';
5
- import { MutationResolver } from './MutationResolver';
6
- import { Client } from '@contember/database';
7
- import { ValidationResolver } from './ValidationResolver';
8
- import { Providers } from '@contember/schema-utils';
9
- import { getArgumentValues } from 'graphql';
10
- export interface ExecutionContainer {
11
- readResolver: ReadResolver;
12
- mutationResolver: MutationResolver;
13
- validationResolver: ValidationResolver;
14
- }
15
- export declare class ExecutionContainerFactory {
16
- private readonly schema;
17
- private readonly permissions;
18
- private readonly providers;
19
- private readonly argumentValuesResolver;
20
- private readonly setupSystemVariables;
21
- constructor(schema: Schema, permissions: Acl.Permissions, providers: Providers, argumentValuesResolver: typeof getArgumentValues, setupSystemVariables: (db: Client) => Promise<void>);
22
- create(context: Pick<Context, 'db' | 'identityVariables'>): Container<ExecutionContainer>;
23
- }
24
- //# sourceMappingURL=ExecutionContainerFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExecutionContainerFactory.d.ts","sourceRoot":"","sources":["../../../src/resolvers/ExecutionContainerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAS5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAG3C,MAAM,WAAW,kBAAkB;IAClC,YAAY,EAAE,YAAY,CAAA;IAC1B,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,kBAAkB,EAAE,kBAAkB,CAAA;CACtC;AAED,qBAAa,yBAAyB;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAJpB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,GAAG,CAAC,WAAW,EAC5B,SAAS,EAAE,SAAS,EACpB,sBAAsB,EAAE,OAAO,iBAAiB,EAChD,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;IAG9D,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,mBAAmB,CAAC,GAAG,SAAS,CAAC,kBAAkB,CAAC;CAsChG"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExecutionContainerFactory = void 0;
4
- const dic_1 = require("@contember/dic");
5
- const ReadResolver_1 = require("./ReadResolver");
6
- const MutationResolver_1 = require("./MutationResolver");
7
- const input_validation_1 = require("../input-validation");
8
- const ValidationResolver_1 = require("./ValidationResolver");
9
- const GraphQlQueryAstFactory_1 = require("./GraphQlQueryAstFactory");
10
- const mapper_1 = require("../mapper");
11
- class ExecutionContainerFactory {
12
- constructor(schema, permissions, providers, argumentValuesResolver, setupSystemVariables) {
13
- this.schema = schema;
14
- this.permissions = permissions;
15
- this.providers = providers;
16
- this.argumentValuesResolver = argumentValuesResolver;
17
- this.setupSystemVariables = setupSystemVariables;
18
- }
19
- create(context) {
20
- const mapperContainer = (0, mapper_1.createMapperContainer)({
21
- permissions: this.permissions,
22
- identityVariables: context.identityVariables,
23
- providers: this.providers,
24
- schema: this.schema,
25
- });
26
- const innerDic = new dic_1.Builder({})
27
- .addService('db', () => context.db)
28
- .addService('providers', () => this.providers)
29
- .addService('mapperFactory', () => mapperContainer.mapperFactory)
30
- .addService('queryAstFactory', () => new GraphQlQueryAstFactory_1.GraphQlQueryAstFactory(this.argumentValuesResolver))
31
- .addService('readResolver', ({ db, mapperFactory, queryAstFactory }) => new ReadResolver_1.ReadResolver(db, mapperFactory, queryAstFactory))
32
- .addService('validationDependencyCollector', () => new input_validation_1.DependencyCollector())
33
- .addService('validationQueryAstFactory', () => new input_validation_1.QueryAstFactory(this.schema.model))
34
- .addService('dataSelector', ({ validationQueryAstFactory }) => new input_validation_1.ValidationDataSelector(this.schema.model, validationQueryAstFactory))
35
- .addService('columnValueResolver', ({ providers }) => new input_validation_1.ColumnValueResolver(providers))
36
- .addService('entityRulesResolver', () => new input_validation_1.EntityRulesResolver(this.schema.validation, this.schema.model))
37
- .addService('inputPreValidator', ({ entityRulesResolver, columnValueResolver, dataSelector }) => new input_validation_1.InputPreValidator(this.schema.model, entityRulesResolver, columnValueResolver, dataSelector))
38
- .addService('mutationResolver', ({ db, mapperFactory, inputPreValidator, queryAstFactory }) => new MutationResolver_1.MutationResolver(this.schema.model, db, mapperFactory, this.setupSystemVariables, inputPreValidator, queryAstFactory))
39
- .addService('validationResolver', ({ inputPreValidator, db, mapperFactory }) => new ValidationResolver_1.ValidationResolver(db, mapperFactory, inputPreValidator))
40
- .build();
41
- return innerDic.pick('readResolver', 'mutationResolver', 'validationResolver');
42
- }
43
- }
44
- exports.ExecutionContainerFactory = ExecutionContainerFactory;
45
- //# sourceMappingURL=ExecutionContainerFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExecutionContainerFactory.js","sourceRoot":"","sources":["../../../src/resolvers/ExecutionContainerFactory.ts"],"names":[],"mappings":";;;AAAA,wCAAmD;AAGnD,iDAA6C;AAC7C,yDAAqD;AAErD,0DAO4B;AAC5B,6DAAyD;AAEzD,qEAAiE;AAEjE,sCAAiD;AAQjD,MAAa,yBAAyB;IACrC,YACkB,MAAc,EACd,WAA4B,EAC5B,SAAoB,EACpB,sBAAgD,EAChD,oBAAmD;QAJnD,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAiB;QAC5B,cAAS,GAAT,SAAS,CAAW;QACpB,2BAAsB,GAAtB,sBAAsB,CAA0B;QAChD,yBAAoB,GAApB,oBAAoB,CAA+B;IAClE,CAAC;IAEG,MAAM,CAAC,OAAkD;QAC/D,MAAM,eAAe,GAAG,IAAA,8BAAqB,EAAC;YAC7C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;SACnB,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,IAAI,aAAO,CAAC,EAAE,CAAC;aAC9B,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CACtB,OAAO,CAAC,EAAE,CAAC;aACX,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,CAC7B,IAAI,CAAC,SAAS,CAAC;aACf,UAAU,CAAC,eAAe,EAAE,GAAG,EAAE,CACjC,eAAe,CAAC,aAAa,CAAC;aAC9B,UAAU,CAAC,iBAAiB,EAAE,GAAG,EAAE,CACnC,IAAI,+CAAsB,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;aACxD,UAAU,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,EAAE,CACtE,IAAI,2BAAY,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;aACrD,UAAU,CAAC,+BAA+B,EAAE,GAAG,EAAE,CACjD,IAAI,sCAAmB,EAAE,CAAC;aAC1B,UAAU,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAC7C,IAAI,kCAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACvC,UAAU,CAAC,cAAc,EAAE,CAAC,EAAE,yBAAyB,EAAE,EAAE,EAAE,CAC7D,IAAI,yCAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;aACzE,UAAU,CAAC,qBAAqB,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CACpD,IAAI,sCAAmB,CAAC,SAAS,CAAC,CAAC;aACnC,UAAU,CAAC,qBAAqB,EAAE,GAAG,EAAE,CACvC,IAAI,sCAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACnE,UAAU,CAAC,mBAAmB,EAAE,CAAC,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,YAAY,EAAE,EAAE,EAAE,CAC/F,IAAI,oCAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC;aACjG,UAAU,CAAC,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,EAAE,EAAE,CAC7F,IAAI,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC;aAC1H,UAAU,CAAC,oBAAoB,EAAE,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAC9E,IAAI,uCAAkB,CAAC,EAAE,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;aAC7D,KAAK,EAAE,CAAA;QAET,OAAO,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAA;IAC/E,CAAC;CACD;AA/CD,8DA+CC"}