@contember/engine-content-api 1.2.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 (555) 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/input-validation/preValidation/CreateInputPreValidationProcessor.d.ts.map +1 -1
  10. package/dist/src/input-validation/preValidation/CreateInputPreValidationProcessor.js +6 -0
  11. package/dist/src/input-validation/preValidation/CreateInputPreValidationProcessor.js.map +1 -1
  12. package/dist/src/input-validation/preValidation/UpdateInputPreValidationProcessor.d.ts.map +1 -1
  13. package/dist/src/input-validation/preValidation/UpdateInputPreValidationProcessor.js +6 -0
  14. package/dist/src/input-validation/preValidation/UpdateInputPreValidationProcessor.js.map +1 -1
  15. package/dist/src/inputProcessing/CreateInputProcessor.d.ts +27 -9
  16. package/dist/src/inputProcessing/CreateInputProcessor.d.ts.map +1 -1
  17. package/dist/src/inputProcessing/CreateInputVisitor.d.ts.map +1 -1
  18. package/dist/src/inputProcessing/CreateInputVisitor.js +10 -2
  19. package/dist/src/inputProcessing/CreateInputVisitor.js.map +1 -1
  20. package/dist/src/inputProcessing/UniqueWhereExpander.d.ts +2 -1
  21. package/dist/src/inputProcessing/UniqueWhereExpander.d.ts.map +1 -1
  22. package/dist/src/inputProcessing/UniqueWhereExpander.js +4 -0
  23. package/dist/src/inputProcessing/UniqueWhereExpander.js.map +1 -1
  24. package/dist/src/inputProcessing/UpdateInputProcessor.d.ts +41 -16
  25. package/dist/src/inputProcessing/UpdateInputProcessor.d.ts.map +1 -1
  26. package/dist/src/inputProcessing/UpdateInputVisitor.d.ts.map +1 -1
  27. package/dist/src/inputProcessing/UpdateInputVisitor.js +7 -2
  28. package/dist/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  29. package/dist/src/mapper/ColumnValue.d.ts +2 -2
  30. package/dist/src/mapper/ColumnValue.d.ts.map +1 -1
  31. package/dist/src/mapper/DataManipulationBuilder.d.ts +7 -0
  32. package/dist/src/mapper/DataManipulationBuilder.d.ts.map +1 -0
  33. package/dist/src/mapper/DataManipulationBuilder.js +5 -0
  34. package/dist/src/mapper/DataManipulationBuilder.js.map +1 -0
  35. package/dist/src/mapper/EventManager.d.ts +86 -0
  36. package/dist/src/mapper/EventManager.d.ts.map +1 -0
  37. package/dist/src/mapper/EventManager.js +118 -0
  38. package/dist/src/mapper/EventManager.js.map +1 -0
  39. package/dist/src/mapper/JunctionTableManager.d.ts +12 -11
  40. package/dist/src/mapper/JunctionTableManager.d.ts.map +1 -1
  41. package/dist/src/mapper/JunctionTableManager.js +20 -8
  42. package/dist/src/mapper/JunctionTableManager.js.map +1 -1
  43. package/dist/src/mapper/Mapper.d.ts +19 -19
  44. package/dist/src/mapper/Mapper.d.ts.map +1 -1
  45. package/dist/src/mapper/Mapper.js +71 -21
  46. package/dist/src/mapper/Mapper.js.map +1 -1
  47. package/dist/src/mapper/MapperFactory.d.ts +33 -0
  48. package/dist/src/mapper/MapperFactory.d.ts.map +1 -0
  49. package/dist/src/mapper/MapperFactory.js +40 -0
  50. package/dist/src/mapper/MapperFactory.js.map +1 -0
  51. package/dist/src/mapper/Result.d.ts +5 -4
  52. package/dist/src/mapper/Result.d.ts.map +1 -1
  53. package/dist/src/mapper/Result.js +2 -1
  54. package/dist/src/mapper/Result.js.map +1 -1
  55. package/dist/src/mapper/delete/DeleteExecutor.d.ts +12 -5
  56. package/dist/src/mapper/delete/DeleteExecutor.d.ts.map +1 -1
  57. package/dist/src/mapper/delete/DeleteExecutor.js +183 -77
  58. package/dist/src/mapper/delete/DeleteExecutor.js.map +1 -1
  59. package/dist/src/mapper/delete/DeleteState.d.ts +22 -0
  60. package/dist/src/mapper/delete/DeleteState.d.ts.map +1 -0
  61. package/dist/src/mapper/delete/DeleteState.js +68 -0
  62. package/dist/src/mapper/delete/DeleteState.js.map +1 -0
  63. package/dist/src/mapper/delete/DeletedEntitiesStorage.d.ts +1 -0
  64. package/dist/src/mapper/delete/DeletedEntitiesStorage.d.ts.map +1 -1
  65. package/dist/src/mapper/delete/DeletedEntitiesStorage.js +5 -0
  66. package/dist/src/mapper/delete/DeletedEntitiesStorage.js.map +1 -1
  67. package/dist/src/mapper/delete/helpers.d.ts +11 -0
  68. package/dist/src/mapper/delete/helpers.d.ts.map +1 -0
  69. package/dist/src/mapper/delete/helpers.js +49 -0
  70. package/dist/src/mapper/delete/helpers.js.map +1 -0
  71. package/dist/src/mapper/index.d.ts +3 -1
  72. package/dist/src/mapper/index.d.ts.map +1 -1
  73. package/dist/src/mapper/index.js +3 -1
  74. package/dist/src/mapper/index.js.map +1 -1
  75. package/dist/src/mapper/insert/InsertBuilder.d.ts +10 -7
  76. package/dist/src/mapper/insert/InsertBuilder.d.ts.map +1 -1
  77. package/dist/src/mapper/insert/InsertBuilder.js +24 -11
  78. package/dist/src/mapper/insert/InsertBuilder.js.map +1 -1
  79. package/dist/src/mapper/insert/InsertBuilderFactory.d.ts +3 -1
  80. package/dist/src/mapper/insert/InsertBuilderFactory.d.ts.map +1 -1
  81. package/dist/src/mapper/insert/InsertBuilderFactory.js +3 -2
  82. package/dist/src/mapper/insert/InsertBuilderFactory.js.map +1 -1
  83. package/dist/src/mapper/insert/Inserter.d.ts +3 -6
  84. package/dist/src/mapper/insert/Inserter.d.ts.map +1 -1
  85. package/dist/src/mapper/insert/Inserter.js +9 -12
  86. package/dist/src/mapper/insert/Inserter.js.map +1 -1
  87. package/dist/src/mapper/insert/SqlCreateInputProcessor.d.ts +5 -0
  88. package/dist/src/mapper/insert/SqlCreateInputProcessor.d.ts.map +1 -1
  89. package/dist/src/mapper/insert/SqlCreateInputProcessor.js +54 -120
  90. package/dist/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  91. package/dist/src/mapper/relations/ManyHasManyInputProcessor.d.ts +32 -0
  92. package/dist/src/mapper/relations/ManyHasManyInputProcessor.d.ts.map +1 -0
  93. package/dist/src/mapper/relations/ManyHasManyInputProcessor.js +77 -0
  94. package/dist/src/mapper/relations/ManyHasManyInputProcessor.js.map +1 -0
  95. package/dist/src/mapper/relations/ManyHasOneInputProcessor.d.ts +32 -0
  96. package/dist/src/mapper/relations/ManyHasOneInputProcessor.d.ts.map +1 -0
  97. package/dist/src/mapper/relations/ManyHasOneInputProcessor.js +108 -0
  98. package/dist/src/mapper/relations/ManyHasOneInputProcessor.js.map +1 -0
  99. package/dist/src/mapper/relations/OneHasManyInputProcessor.d.ts +29 -0
  100. package/dist/src/mapper/relations/OneHasManyInputProcessor.d.ts.map +1 -0
  101. package/dist/src/mapper/relations/OneHasManyInputProcessor.js +61 -0
  102. package/dist/src/mapper/relations/OneHasManyInputProcessor.js.map +1 -0
  103. package/dist/src/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts +21 -0
  104. package/dist/src/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +1 -0
  105. package/dist/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js +74 -0
  106. package/dist/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -0
  107. package/dist/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.d.ts +32 -0
  108. package/dist/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +1 -0
  109. package/dist/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js +125 -0
  110. package/dist/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -0
  111. package/dist/src/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts +21 -0
  112. package/dist/src/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +1 -0
  113. package/dist/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js +72 -0
  114. package/dist/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -0
  115. package/dist/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.d.ts +37 -0
  116. package/dist/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +1 -0
  117. package/dist/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js +193 -0
  118. package/dist/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -0
  119. package/dist/src/mapper/select/JoinBuilder.d.ts +1 -1
  120. package/dist/src/mapper/select/JoinBuilder.d.ts.map +1 -1
  121. package/dist/src/mapper/select/JoinBuilder.js.map +1 -1
  122. package/dist/src/mapper/select/OrderByHelper.d.ts +1 -1
  123. package/dist/src/mapper/select/OrderByHelper.d.ts.map +1 -1
  124. package/dist/src/mapper/select/OrderByHelper.js +3 -1
  125. package/dist/src/mapper/select/OrderByHelper.js.map +1 -1
  126. package/dist/src/mapper/select/RelationFetcher.js +2 -2
  127. package/dist/src/mapper/select/RelationFetcher.js.map +1 -1
  128. package/dist/src/mapper/select/WhereBuilder.d.ts +2 -2
  129. package/dist/src/mapper/select/WhereBuilder.d.ts.map +1 -1
  130. package/dist/src/mapper/select/WhereBuilder.js.map +1 -1
  131. package/dist/src/mapper/update/SqlUpdateInputProcessor.d.ts +5 -0
  132. package/dist/src/mapper/update/SqlUpdateInputProcessor.d.ts.map +1 -1
  133. package/dist/src/mapper/update/SqlUpdateInputProcessor.js +52 -389
  134. package/dist/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
  135. package/dist/src/mapper/update/UpdateBuilder.d.ts +10 -7
  136. package/dist/src/mapper/update/UpdateBuilder.d.ts.map +1 -1
  137. package/dist/src/mapper/update/UpdateBuilder.js +43 -19
  138. package/dist/src/mapper/update/UpdateBuilder.js.map +1 -1
  139. package/dist/src/mapper/update/UpdateBuilderFactory.d.ts +4 -2
  140. package/dist/src/mapper/update/UpdateBuilderFactory.d.ts.map +1 -1
  141. package/dist/src/mapper/update/UpdateBuilderFactory.js +4 -3
  142. package/dist/src/mapper/update/UpdateBuilderFactory.js.map +1 -1
  143. package/dist/src/mapper/update/Updater.d.ts +1 -4
  144. package/dist/src/mapper/update/Updater.d.ts.map +1 -1
  145. package/dist/src/mapper/update/Updater.js +17 -23
  146. package/dist/src/mapper/update/Updater.js.map +1 -1
  147. package/dist/src/resolvers/GraphQlQueryAstFactory.d.ts +1 -3
  148. package/dist/src/resolvers/GraphQlQueryAstFactory.d.ts.map +1 -1
  149. package/dist/src/resolvers/GraphQlQueryAstFactory.js +1 -4
  150. package/dist/src/resolvers/GraphQlQueryAstFactory.js.map +1 -1
  151. package/dist/src/resolvers/MutationResolver.d.ts +1 -4
  152. package/dist/src/resolvers/MutationResolver.d.ts.map +1 -1
  153. package/dist/src/resolvers/MutationResolver.js +10 -12
  154. package/dist/src/resolvers/MutationResolver.js.map +1 -1
  155. package/dist/src/resolvers/ReadResolver.d.ts +1 -3
  156. package/dist/src/resolvers/ReadResolver.d.ts.map +1 -1
  157. package/dist/src/resolvers/ReadResolver.js +6 -10
  158. package/dist/src/resolvers/ReadResolver.js.map +1 -1
  159. package/dist/src/resolvers/ValidationResolver.d.ts +1 -3
  160. package/dist/src/resolvers/ValidationResolver.d.ts.map +1 -1
  161. package/dist/src/resolvers/ValidationResolver.js +3 -4
  162. package/dist/src/resolvers/ValidationResolver.js.map +1 -1
  163. package/dist/src/resolvers/index.d.ts +0 -1
  164. package/dist/src/resolvers/index.d.ts.map +1 -1
  165. package/dist/src/resolvers/index.js +0 -1
  166. package/dist/src/resolvers/index.js.map +1 -1
  167. package/dist/src/schema/CustomTypesProvider.d.ts.map +1 -1
  168. package/dist/src/schema/CustomTypesProvider.js +1 -23
  169. package/dist/src/schema/CustomTypesProvider.js.map +1 -1
  170. package/dist/src/schema/GraphQlSchemaBuilderFactory.d.ts +3 -0
  171. package/dist/src/schema/GraphQlSchemaBuilderFactory.d.ts.map +1 -1
  172. package/dist/src/schema/GraphQlSchemaBuilderFactory.js +4 -2
  173. package/dist/src/schema/GraphQlSchemaBuilderFactory.js.map +1 -1
  174. package/dist/src/schema/MutationProvider.js +4 -4
  175. package/dist/src/schema/MutationProvider.js.map +1 -1
  176. package/dist/src/schema/QueryProvider.js +3 -3
  177. package/dist/src/schema/QueryProvider.js.map +1 -1
  178. package/dist/src/schema/mutations/ConnectOrCreateRelationInputProvider.d.ts +15 -0
  179. package/dist/src/schema/mutations/ConnectOrCreateRelationInputProvider.d.ts.map +1 -0
  180. package/dist/src/schema/mutations/ConnectOrCreateRelationInputProvider.js +43 -0
  181. package/dist/src/schema/mutations/ConnectOrCreateRelationInputProvider.js.map +1 -0
  182. package/dist/src/schema/mutations/CreateEntityInputFieldVisitor.d.ts.map +1 -1
  183. package/dist/src/schema/mutations/CreateEntityInputFieldVisitor.js +2 -6
  184. package/dist/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
  185. package/dist/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.d.ts.map +1 -1
  186. package/dist/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js +3 -0
  187. package/dist/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  188. package/dist/src/schema/mutations/CreateEntityRelationInputFieldVisitor.d.ts +3 -1
  189. package/dist/src/schema/mutations/CreateEntityRelationInputFieldVisitor.d.ts.map +1 -1
  190. package/dist/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js +15 -8
  191. package/dist/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js.map +1 -1
  192. package/dist/src/schema/mutations/EntityInputProvider.d.ts.map +1 -1
  193. package/dist/src/schema/mutations/EntityInputProvider.js +0 -3
  194. package/dist/src/schema/mutations/EntityInputProvider.js.map +1 -1
  195. package/dist/src/schema/mutations/UpdateEntityInputFieldVisitor.d.ts.map +1 -1
  196. package/dist/src/schema/mutations/UpdateEntityInputFieldVisitor.js +2 -6
  197. package/dist/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
  198. package/dist/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.d.ts.map +1 -1
  199. package/dist/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js +3 -0
  200. package/dist/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  201. package/dist/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.d.ts +3 -1
  202. package/dist/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.d.ts.map +1 -1
  203. package/dist/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +11 -22
  204. package/dist/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
  205. package/dist/src/tsconfig.tsbuildinfo +1 -1
  206. package/dist/src/types.d.ts +2 -3
  207. package/dist/src/types.d.ts.map +1 -1
  208. package/dist/tests/cases/bugs/bug-update-by-nested-unique.test.js +3 -5
  209. package/dist/tests/cases/bugs/bug-update-by-nested-unique.test.js.map +1 -1
  210. package/dist/tests/cases/integration/graphQlDb/insert/insertSequence.test.js +2 -2
  211. package/dist/tests/cases/integration/graphQlDb/insert/insertSequence.test.js.map +1 -1
  212. package/dist/tests/cases/integration/graphQlDb/update/bug-freeze-connect-missing-one.test.js +1 -1
  213. package/dist/tests/cases/integration/graphQlDb/update/bug-freeze-connect-missing-one.test.js.map +1 -1
  214. package/dist/tests/cases/integration/graphQlDb/update/deferedConstraints.test.js +45 -45
  215. package/dist/tests/cases/integration/graphQlDb/update/deferedConstraints.test.js.map +1 -1
  216. package/dist/tests/cases/integration/graphQlDb/update/failedDelete.test.js +5 -5
  217. package/dist/tests/cases/integration/graphQlDb/update/failedDelete.test.js.map +1 -1
  218. package/dist/tests/cases/integration/graphQlDb/update/invalidInput.test.js +2 -2
  219. package/dist/tests/cases/integration/graphQlDb/update/invalidInput.test.js.map +1 -1
  220. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.js +8 -8
  221. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.js.map +1 -1
  222. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.js +7 -10
  223. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.js.map +1 -1
  224. package/dist/tests/cases/integration/graphQlDb/update/uniqueConstraint.test.js +2 -2
  225. package/dist/tests/cases/integration/graphQlDb/update/uniqueConstraint.test.js.map +1 -1
  226. package/dist/tests/cases/integration/graphQlRequests/delete/aclDelete.test.js +13 -32
  227. package/dist/tests/cases/integration/graphQlRequests/delete/aclDelete.test.js.map +1 -1
  228. package/dist/tests/cases/integration/graphQlRequests/delete/additionalDeleteFilter.test.js +11 -30
  229. package/dist/tests/cases/integration/graphQlRequests/delete/additionalDeleteFilter.test.js.map +1 -1
  230. package/dist/tests/cases/integration/graphQlRequests/delete/cascadeDelete.test.js +62 -45
  231. package/dist/tests/cases/integration/graphQlRequests/delete/cascadeDelete.test.js.map +1 -1
  232. package/dist/tests/cases/integration/graphQlRequests/delete/deleteById.test.js +10 -11
  233. package/dist/tests/cases/integration/graphQlRequests/delete/deleteById.test.js.map +1 -1
  234. package/dist/tests/cases/integration/graphQlRequests/delete/orphanRemoval.test.js +29 -18
  235. package/dist/tests/cases/integration/graphQlRequests/delete/orphanRemoval.test.js.map +1 -1
  236. package/dist/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.d.ts +2 -0
  237. package/dist/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.d.ts.map +1 -0
  238. package/dist/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.js +97 -0
  239. package/dist/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.js.map +1 -0
  240. package/dist/tests/cases/integration/graphQlRequests/delete/setNullOnDelete.test.js +58 -22
  241. package/dist/tests/cases/integration/graphQlRequests/delete/setNullOnDelete.test.js.map +1 -1
  242. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/create.test.d.ts +2 -0
  243. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/create.test.d.ts.map +1 -0
  244. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/{insertRelationCreate.test.js → create.test.js} +1 -1
  245. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/create.test.js.map +1 -0
  246. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/create.test.d.ts +2 -0
  247. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/create.test.d.ts.map +1 -0
  248. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/{insertRelationCreate.test.js → create.test.js} +1 -1
  249. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/create.test.js.map +1 -0
  250. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.d.ts +2 -0
  251. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.d.ts.map +1 -0
  252. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.js +99 -0
  253. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.js.map +1 -0
  254. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/create.test.d.ts +2 -0
  255. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/create.test.d.ts.map +1 -0
  256. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/{insertRelationCreate.test.js → create.test.js} +1 -1
  257. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/create.test.js.map +1 -0
  258. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.d.ts +2 -0
  259. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.d.ts.map +1 -0
  260. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/{insertRelationConnect.test.js → connect.test.js} +4 -4
  261. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.js.map +1 -0
  262. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.d.ts +2 -0
  263. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.d.ts.map +1 -0
  264. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/{insertRelationCreate.test.js → create.test.js} +1 -1
  265. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.js.map +1 -0
  266. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/create.test.d.ts +2 -0
  267. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/create.test.d.ts.map +1 -0
  268. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/{insertRelationCreate.test.js → create.test.js} +1 -1
  269. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/create.test.js.map +1 -0
  270. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/create.test.d.ts +2 -0
  271. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/create.test.d.ts.map +1 -0
  272. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/{insertRelationCreate.test.js → create.test.js} +1 -1
  273. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/create.test.js.map +1 -0
  274. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/empty.test.d.ts +2 -0
  275. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/empty.test.d.ts.map +1 -0
  276. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/{insertRelationEmpty.test.js → empty.test.js} +1 -1
  277. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/empty.test.js.map +1 -0
  278. package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.d.ts +2 -0
  279. package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.d.ts.map +1 -0
  280. package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.js +67 -0
  281. package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.js.map +1 -0
  282. package/dist/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.js +6 -18
  283. package/dist/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.js.map +1 -1
  284. package/dist/tests/cases/integration/graphQlRequests/update/additionalFilter.test.js +3 -4
  285. package/dist/tests/cases/integration/graphQlRequests/update/additionalFilter.test.js.map +1 -1
  286. package/dist/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.js +3 -8
  287. package/dist/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.js.map +1 -1
  288. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/delete.test.js +49 -11
  289. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/delete.test.js.map +1 -1
  290. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.js +3 -9
  291. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.js.map +1 -1
  292. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.js +3 -9
  293. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.js.map +1 -1
  294. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/delete.test.js +49 -11
  295. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/delete.test.js.map +1 -1
  296. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.js +3 -9
  297. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.js.map +1 -1
  298. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.js +3 -9
  299. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.js.map +1 -1
  300. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.js +3 -10
  301. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.js.map +1 -1
  302. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.js +3 -10
  303. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.js.map +1 -1
  304. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/delete.test.js +83 -49
  305. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/delete.test.js.map +1 -1
  306. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.js +3 -9
  307. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.js.map +1 -1
  308. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.js +3 -9
  309. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.js.map +1 -1
  310. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.js +6 -18
  311. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.js.map +1 -1
  312. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/combination.test.js +10 -11
  313. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/combination.test.js.map +1 -1
  314. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.js +3 -11
  315. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.js.map +1 -1
  316. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/delete.test.js +49 -11
  317. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/delete.test.js.map +1 -1
  318. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.js +3 -8
  319. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.js.map +1 -1
  320. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.js +3 -6
  321. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.js.map +1 -1
  322. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.js +3 -6
  323. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.js.map +1 -1
  324. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.js +97 -29
  325. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.js.map +1 -1
  326. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.js +14 -15
  327. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.js.map +1 -1
  328. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/delete.test.js +101 -11
  329. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/delete.test.js.map +1 -1
  330. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.js +11 -12
  331. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.js.map +1 -1
  332. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.d.ts +1 -0
  333. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.d.ts.map +1 -1
  334. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.js +9 -1
  335. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.js.map +1 -1
  336. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.js +3 -6
  337. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.js.map +1 -1
  338. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.js +11 -13
  339. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.js.map +1 -1
  340. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.js +85 -29
  341. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.js.map +1 -1
  342. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.d.ts +2 -0
  343. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.d.ts.map +1 -0
  344. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.js +53 -0
  345. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.js.map +1 -0
  346. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.js +75 -9
  347. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.js.map +1 -1
  348. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/delete.test.js +66 -25
  349. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/delete.test.js.map +1 -1
  350. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.js +3 -10
  351. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.js.map +1 -1
  352. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.d.ts +1 -0
  353. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.d.ts.map +1 -1
  354. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.js +10 -2
  355. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.js.map +1 -1
  356. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.js +3 -9
  357. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.js.map +1 -1
  358. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.js +6 -19
  359. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.js.map +1 -1
  360. package/dist/tests/cases/integration/graphQlRequests/update/queryPortal.test.js +6 -8
  361. package/dist/tests/cases/integration/graphQlRequests/update/queryPortal.test.js.map +1 -1
  362. package/dist/tests/cases/integration/graphQlRequests/update/transaction.test.js +9 -24
  363. package/dist/tests/cases/integration/graphQlRequests/update/transaction.test.js.map +1 -1
  364. package/dist/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.js +3 -7
  365. package/dist/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.js.map +1 -1
  366. package/dist/tests/cases/integration/graphQlSchema/schema-acl-allowed.gql +14 -1
  367. package/dist/tests/cases/integration/graphQlSchema/schema-acl-restricted-create.gql +5 -5
  368. package/dist/tests/cases/integration/graphQlSchema/schema-acl-restricted-delete.gql +14 -1
  369. package/dist/tests/cases/integration/graphQlSchema/schema-acl-restricted-update.gql +12 -0
  370. package/dist/tests/cases/integration/graphQlSchema/schema-basic.gql +40 -2
  371. package/dist/tests/cases/integration/graphQlSchema/schema-bug-66.gql +30 -3
  372. package/dist/tests/cases/integration/graphQlSchema/schema-custom-primary.gql +40 -2
  373. package/dist/tests/cases/integration/graphQlSchema/schema-has-many-reduction.gql +14 -1
  374. package/dist/tests/cases/integration/graphQlSchema/schema-new-builder.gql +40 -2
  375. package/dist/tests/cases/unit/orderbyHelper.test.js +11 -0
  376. package/dist/tests/cases/unit/orderbyHelper.test.js.map +1 -1
  377. package/dist/tests/src/test.d.ts +1 -1
  378. package/dist/tests/src/test.d.ts.map +1 -1
  379. package/dist/tests/src/test.js +34 -32
  380. package/dist/tests/src/test.js.map +1 -1
  381. package/dist/tests/src/testGraphql.js +1 -1
  382. package/dist/tests/src/testGraphql.js.map +1 -1
  383. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  384. package/package.json +11 -11
  385. package/src/ExecutionContainer.ts +204 -0
  386. package/src/index.ts +24 -1
  387. package/src/input-validation/preValidation/CreateInputPreValidationProcessor.ts +6 -0
  388. package/src/input-validation/preValidation/UpdateInputPreValidationProcessor.ts +6 -0
  389. package/src/inputProcessing/CreateInputProcessor.ts +8 -11
  390. package/src/inputProcessing/CreateInputVisitor.ts +11 -2
  391. package/src/inputProcessing/UniqueWhereExpander.ts +5 -1
  392. package/src/inputProcessing/UpdateInputProcessor.ts +18 -18
  393. package/src/inputProcessing/UpdateInputVisitor.ts +6 -2
  394. package/src/mapper/ColumnValue.ts +2 -2
  395. package/src/mapper/DataManipulationBuilder.ts +12 -0
  396. package/src/mapper/EventManager.ts +158 -0
  397. package/src/mapper/JunctionTableManager.ts +50 -32
  398. package/src/mapper/Mapper.ts +101 -55
  399. package/src/mapper/MapperFactory.ts +67 -0
  400. package/src/mapper/Result.ts +3 -2
  401. package/src/mapper/delete/DeleteExecutor.ts +262 -95
  402. package/src/mapper/delete/DeleteState.ts +80 -0
  403. package/src/mapper/delete/DeletedEntitiesStorage.ts +6 -0
  404. package/src/mapper/delete/helpers.ts +68 -0
  405. package/src/mapper/index.ts +3 -1
  406. package/src/mapper/insert/InsertBuilder.ts +35 -14
  407. package/src/mapper/insert/InsertBuilderFactory.ts +3 -1
  408. package/src/mapper/insert/Inserter.ts +9 -13
  409. package/src/mapper/insert/SqlCreateInputProcessor.ts +61 -139
  410. package/src/mapper/relations/ManyHasManyInputProcessor.ts +108 -0
  411. package/src/mapper/relations/ManyHasOneInputProcessor.ts +158 -0
  412. package/src/mapper/relations/OneHasManyInputProcessor.ts +101 -0
  413. package/src/mapper/relations/OneHasOneInverseCreateInputProcessor.ts +99 -0
  414. package/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.ts +164 -0
  415. package/src/mapper/relations/OneHasOneOwningCreateInputProcessor.ts +92 -0
  416. package/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.ts +253 -0
  417. package/src/mapper/select/JoinBuilder.ts +4 -4
  418. package/src/mapper/select/OrderByHelper.ts +2 -1
  419. package/src/mapper/select/RelationFetcher.ts +2 -2
  420. package/src/mapper/select/WhereBuilder.ts +11 -11
  421. package/src/mapper/update/SqlUpdateInputProcessor.ts +55 -484
  422. package/src/mapper/update/UpdateBuilder.ts +52 -22
  423. package/src/mapper/update/UpdateBuilderFactory.ts +11 -2
  424. package/src/mapper/update/Updater.ts +16 -30
  425. package/src/resolvers/GraphQlQueryAstFactory.ts +1 -2
  426. package/src/resolvers/MutationResolver.ts +13 -14
  427. package/src/resolvers/ReadResolver.ts +5 -9
  428. package/src/resolvers/ValidationResolver.ts +2 -4
  429. package/src/resolvers/index.ts +0 -1
  430. package/src/schema/CustomTypesProvider.ts +2 -27
  431. package/src/schema/GraphQlSchemaBuilderFactory.ts +7 -4
  432. package/src/schema/MutationProvider.ts +4 -4
  433. package/src/schema/QueryProvider.ts +3 -3
  434. package/src/schema/mutations/ConnectOrCreateRelationInputProvider.ts +54 -0
  435. package/src/schema/mutations/CreateEntityInputFieldVisitor.ts +2 -6
  436. package/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.ts +3 -1
  437. package/src/schema/mutations/CreateEntityRelationInputFieldVisitor.ts +20 -15
  438. package/src/schema/mutations/EntityInputProvider.ts +0 -3
  439. package/src/schema/mutations/UpdateEntityInputFieldVisitor.ts +2 -6
  440. package/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.ts +3 -1
  441. package/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts +52 -57
  442. package/src/tsconfig.json +7 -21
  443. package/src/types.ts +2 -3
  444. package/tests/cases/bugs/bug-update-by-nested-unique.test.ts +3 -5
  445. package/tests/cases/integration/graphQlDb/insert/insertSequence.test.ts +2 -2
  446. package/tests/cases/integration/graphQlDb/update/bug-freeze-connect-missing-one.test.ts +1 -1
  447. package/tests/cases/integration/graphQlDb/update/deferedConstraints.test.ts +9 -9
  448. package/tests/cases/integration/graphQlDb/update/failedDelete.test.ts +3 -3
  449. package/tests/cases/integration/graphQlDb/update/invalidInput.test.ts +2 -2
  450. package/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.ts +8 -8
  451. package/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.ts +7 -10
  452. package/tests/cases/integration/graphQlDb/update/uniqueConstraint.test.ts +2 -2
  453. package/tests/cases/integration/graphQlRequests/delete/aclDelete.test.ts +15 -34
  454. package/tests/cases/integration/graphQlRequests/delete/additionalDeleteFilter.test.ts +12 -31
  455. package/tests/cases/integration/graphQlRequests/delete/cascadeDelete.test.ts +68 -46
  456. package/tests/cases/integration/graphQlRequests/delete/deleteById.test.ts +11 -12
  457. package/tests/cases/integration/graphQlRequests/delete/orphanRemoval.test.ts +30 -19
  458. package/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.ts +102 -0
  459. package/tests/cases/integration/graphQlRequests/delete/setNullOnDelete.test.ts +63 -23
  460. package/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.ts +106 -0
  461. package/tests/cases/integration/graphQlRequests/insert/oneHasMany/{insertRelationConnect.test.ts → connect.test.ts} +3 -3
  462. package/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.ts +67 -0
  463. package/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.ts +6 -18
  464. package/tests/cases/integration/graphQlRequests/update/additionalFilter.test.ts +3 -4
  465. package/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.ts +3 -8
  466. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/delete.test.ts +51 -12
  467. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.ts +3 -9
  468. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.ts +3 -9
  469. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/delete.test.ts +51 -12
  470. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.ts +3 -9
  471. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.ts +3 -9
  472. package/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.ts +3 -10
  473. package/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.ts +3 -10
  474. package/tests/cases/integration/graphQlRequests/update/manyHasOne/delete.test.ts +86 -50
  475. package/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.ts +3 -9
  476. package/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.ts +3 -9
  477. package/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.ts +6 -18
  478. package/tests/cases/integration/graphQlRequests/update/oneHasMany/combination.test.ts +11 -12
  479. package/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.ts +3 -11
  480. package/tests/cases/integration/graphQlRequests/update/oneHasMany/delete.test.ts +51 -12
  481. package/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.ts +3 -8
  482. package/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.ts +3 -6
  483. package/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.ts +3 -6
  484. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.ts +101 -31
  485. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.ts +14 -15
  486. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/delete.test.ts +106 -12
  487. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.ts +11 -12
  488. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.ts +13 -0
  489. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.ts +3 -6
  490. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.ts +11 -13
  491. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.ts +89 -30
  492. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.ts +51 -0
  493. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.ts +77 -11
  494. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/delete.test.ts +69 -26
  495. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.ts +3 -10
  496. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.ts +14 -1
  497. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.ts +3 -9
  498. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.ts +6 -19
  499. package/tests/cases/integration/graphQlRequests/update/queryPortal.test.ts +6 -8
  500. package/tests/cases/integration/graphQlRequests/update/transaction.test.ts +9 -24
  501. package/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.ts +3 -7
  502. package/tests/cases/integration/graphQlSchema/schema-acl-allowed.gql +14 -1
  503. package/tests/cases/integration/graphQlSchema/schema-acl-restricted-create.gql +5 -5
  504. package/tests/cases/integration/graphQlSchema/schema-acl-restricted-delete.gql +14 -1
  505. package/tests/cases/integration/graphQlSchema/schema-acl-restricted-update.gql +12 -0
  506. package/tests/cases/integration/graphQlSchema/schema-basic.gql +40 -2
  507. package/tests/cases/integration/graphQlSchema/schema-bug-66.gql +30 -3
  508. package/tests/cases/integration/graphQlSchema/schema-custom-primary.gql +40 -2
  509. package/tests/cases/integration/graphQlSchema/schema-has-many-reduction.gql +14 -1
  510. package/tests/cases/integration/graphQlSchema/schema-new-builder.gql +40 -2
  511. package/tests/cases/unit/orderbyHelper.test.ts +13 -0
  512. package/tests/src/test.ts +38 -40
  513. package/tests/src/testGraphql.ts +1 -1
  514. package/tests/tsconfig.json +3 -9
  515. package/dist/src/mapper/MapperContainer.d.ts +0 -18
  516. package/dist/src/mapper/MapperContainer.d.ts.map +0 -1
  517. package/dist/src/mapper/MapperContainer.js +0 -55
  518. package/dist/src/mapper/MapperContainer.js.map +0 -1
  519. package/dist/src/resolvers/ExecutionContainerFactory.d.ts +0 -24
  520. package/dist/src/resolvers/ExecutionContainerFactory.d.ts.map +0 -1
  521. package/dist/src/resolvers/ExecutionContainerFactory.js +0 -45
  522. package/dist/src/resolvers/ExecutionContainerFactory.js.map +0 -1
  523. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/insertRelationCreate.test.d.ts +0 -2
  524. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/insertRelationCreate.test.d.ts.map +0 -1
  525. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/insertRelationCreate.test.js.map +0 -1
  526. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/insertRelationCreate.test.d.ts +0 -2
  527. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/insertRelationCreate.test.d.ts.map +0 -1
  528. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/insertRelationCreate.test.js.map +0 -1
  529. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/insertRelationCreate.test.d.ts +0 -2
  530. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/insertRelationCreate.test.d.ts.map +0 -1
  531. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/insertRelationCreate.test.js.map +0 -1
  532. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/insertRelationConnect.test.d.ts +0 -2
  533. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/insertRelationConnect.test.d.ts.map +0 -1
  534. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/insertRelationConnect.test.js.map +0 -1
  535. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/insertRelationCreate.test.d.ts +0 -2
  536. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/insertRelationCreate.test.d.ts.map +0 -1
  537. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/insertRelationCreate.test.js.map +0 -1
  538. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/insertRelationCreate.test.d.ts +0 -2
  539. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/insertRelationCreate.test.d.ts.map +0 -1
  540. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/insertRelationCreate.test.js.map +0 -1
  541. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/insertRelationCreate.test.d.ts +0 -2
  542. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/insertRelationCreate.test.d.ts.map +0 -1
  543. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/insertRelationCreate.test.js.map +0 -1
  544. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/insertRelationEmpty.test.d.ts +0 -2
  545. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/insertRelationEmpty.test.d.ts.map +0 -1
  546. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/insertRelationEmpty.test.js.map +0 -1
  547. package/src/mapper/MapperContainer.ts +0 -138
  548. package/src/resolvers/ExecutionContainerFactory.ts +0 -74
  549. /package/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/{insertRelationCreate.test.ts → create.test.ts} +0 -0
  550. /package/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/{insertRelationCreate.test.ts → create.test.ts} +0 -0
  551. /package/tests/cases/integration/graphQlRequests/insert/manyHasOne/{insertRelationCreate.test.ts → create.test.ts} +0 -0
  552. /package/tests/cases/integration/graphQlRequests/insert/oneHasMany/{insertRelationCreate.test.ts → create.test.ts} +0 -0
  553. /package/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/{insertRelationCreate.test.ts → create.test.ts} +0 -0
  554. /package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/{insertRelationCreate.test.ts → create.test.ts} +0 -0
  555. /package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/{insertRelationEmpty.test.ts → empty.test.ts} +0 -0
@@ -3,9 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DeleteExecutor = void 0;
4
4
  const schema_1 = require("@contember/schema");
5
5
  const utils_1 = require("../../utils");
6
- const schema_utils_1 = require("@contember/schema-utils");
7
6
  const database_1 = require("@contember/database");
8
7
  const Result_1 = require("../Result");
8
+ const DeleteState_1 = require("./DeleteState");
9
+ const helpers_1 = require("./helpers");
10
+ const schema_utils_1 = require("@contember/schema-utils");
11
+ const EventManager_1 = require("../EventManager");
12
+ const exception_1 = require("../../exception");
9
13
  class DeleteExecutor {
10
14
  constructor(schema, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory) {
11
15
  this.schema = schema;
@@ -16,6 +20,7 @@ class DeleteExecutor {
16
20
  }
17
21
  async execute(mapper, entity, by, filter) {
18
22
  return mapper.mutex.execute(async () => {
23
+ var _a;
19
24
  const primaryValue = await mapper.getPrimaryValue(entity, by);
20
25
  if (!primaryValue) {
21
26
  return [new Result_1.MutationEntryNotFoundError([], by)];
@@ -23,100 +28,201 @@ class DeleteExecutor {
23
28
  if (mapper.deletedEntities.isDeleted(entity.name, primaryValue)) {
24
29
  return [new Result_1.MutationNothingToDo([], Result_1.NothingToDoReason.alreadyDeleted)];
25
30
  }
26
- await mapper.constraintHelper.setFkConstraintsDeferred();
27
31
  const primaryWhere = { [entity.primary]: { eq: primaryValue } };
28
- const result = await this.delete(mapper, entity, filter ? { and: [primaryWhere, filter] } : primaryWhere);
29
- await mapper.constraintHelper.setFkConstraintsImmediate();
30
- if (result.length === 0) {
31
- return [new Result_1.MutationNoResultError([])];
32
+ const where = filter ? { and: [primaryWhere, filter] } : primaryWhere;
33
+ const state = new DeleteState_1.DeleteState(mapper.deletedEntities);
34
+ const deletePrimary = await this.collectDeleteInfo(state, mapper, entity, where);
35
+ const deleteQueue = [[entity, deletePrimary]];
36
+ await this.collectOrphanRemovals(state, mapper, deleteQueue);
37
+ if (!state.isOk()) {
38
+ return state.getResult();
39
+ }
40
+ const result = state.getResult();
41
+ const entryToEventMap = new Map();
42
+ for (const entry of result) {
43
+ if (entry instanceof Result_1.MutationDeleteOk) {
44
+ await mapper.eventManager.fire(new EventManager_1.BeforeDeleteEvent(entry.entity, entry.primary));
45
+ }
46
+ else if (entry instanceof Result_1.MutationUpdateOk) {
47
+ const beforeUpdateEvent = new EventManager_1.BeforeUpdateEvent(entry.entity, [{
48
+ columnName: Object.keys(entry.values)[0],
49
+ fieldName: Object.keys(entry.input)[0],
50
+ columnType: 'text',
51
+ resolvedValue: null,
52
+ value: Promise.resolve(null),
53
+ }], entry.primary);
54
+ entryToEventMap.set(entry, beforeUpdateEvent);
55
+ await mapper.eventManager.fire(beforeUpdateEvent);
56
+ }
32
57
  }
33
- return [new Result_1.MutationDeleteOk([], entity, primaryValue)];
58
+ await this.executeDeletes(deleteQueue, mapper.db);
59
+ for (const entry of result) {
60
+ if (entry instanceof Result_1.MutationUpdateOk) {
61
+ const beforeEvent = entryToEventMap.get(entry);
62
+ if (!beforeEvent) {
63
+ throw new exception_1.ImplementationException();
64
+ }
65
+ const data = [{
66
+ columnName: Object.keys(entry.values)[0],
67
+ fieldName: Object.keys(entry.input)[0],
68
+ columnType: 'text',
69
+ resolvedValue: null,
70
+ value: Promise.resolve(null),
71
+ old: Object.values((_a = entry.oldValues) !== null && _a !== void 0 ? _a : {})[0],
72
+ }];
73
+ const afterEvent = new EventManager_1.AfterUpdateEvent(entry.entity, data, entry.primary);
74
+ beforeEvent.afterEvent = afterEvent;
75
+ await mapper.eventManager.fire(afterEvent);
76
+ }
77
+ }
78
+ state.confirmDeleted();
79
+ return state.getResult();
34
80
  });
35
81
  }
36
- async delete(mapper, entity, where) {
37
- const db = mapper.db;
82
+ async executeDeletes(deleteQueue, db) {
83
+ for (const [entity, ids] of deleteQueue) {
84
+ if (ids.length === 0) {
85
+ continue;
86
+ }
87
+ await database_1.DeleteBuilder.create()
88
+ .from(entity.tableName)
89
+ .where(expr => expr.in(entity.primaryColumn, ids))
90
+ .execute(db);
91
+ }
92
+ }
93
+ async collectDeleteInfo(state, mapper, entity, where) {
38
94
  const predicate = this.predicateFactory.createDeletePredicate(entity);
39
- const inQb = database_1.SelectBuilder.create() //
95
+ const orphanRemovals = (0, helpers_1.findRelationsWithOrphanRemoval)(this.schema, entity);
96
+ const qb = database_1.SelectBuilder.create()
40
97
  .from(entity.tableName, 'root_')
41
- .select(['root_', entity.primaryColumn]);
42
- const inQbWithWhere = this.whereBuilder.build(inQb, entity, this.pathFactory.create([]), {
43
- and: [where, predicate],
44
- });
45
- const orphanRemovals = this.findRelationsWithOrphanRemoval(entity);
46
- const orphanColumns = orphanRemovals.map(([, rel]) => rel.joiningColumn.columnName);
47
- const qb = database_1.DeleteBuilder.create()
48
- .from(entity.tableName)
49
- .where(condition => condition.in(entity.primaryColumn, inQbWithWhere))
50
- .returning(entity.primaryColumn, ...orphanColumns);
51
- const result = await qb.execute(db);
52
- const ids = result.map(it => it[entity.primaryColumn]);
53
- for (const id of ids) {
54
- mapper.deletedEntities.markDeleted(entity.name, id);
98
+ .select(['root_', entity.primaryColumn], 'id');
99
+ const qbWithOrphanColumns = this.qbOrphanColumns(qb, orphanRemovals);
100
+ const qbWithAllowedFlag = this.qbWithAllowed(entity, predicate, qbWithOrphanColumns);
101
+ const qbWithWhere = this.whereBuilder.build(qbWithAllowedFlag, entity, this.pathFactory.create([]), where);
102
+ const fullResult = await qbWithWhere.getResult(mapper.db);
103
+ if (fullResult.length === 0) {
104
+ state.pushFailResult(new Result_1.MutationNoResultError([]));
105
+ return [];
55
106
  }
56
- await this.executeOnDelete(mapper, entity, ids);
57
- for (const [entity, relation] of orphanRemovals) {
58
- const ids = result.map(it => it[relation.joiningColumn.columnName]).filter(it => it !== null);
59
- const where = { [entity.primary]: { in: ids } };
60
- await this.delete(mapper, entity, where);
107
+ const result = this.filterPlannedForDelete(state, entity, fullResult);
108
+ const disallowed = result.filter(it => !it.allowed).map(it => it.id);
109
+ if (disallowed.length) {
110
+ state.pushFailResult(new Result_1.MutationEntryNotFoundError([], { [entity.primary]: { in: disallowed } }));
111
+ return [];
61
112
  }
62
- return ids;
113
+ return await this.processDeleteResult(state, mapper, entity, result, orphanRemovals);
63
114
  }
64
- async executeOnDelete(mapper, entity, values) {
115
+ async collectOnDeleteInfo(state, mapper, entity, values) {
65
116
  if (values.length === 0) {
66
117
  return;
67
118
  }
68
- const owningRelations = this.findOwningRelations(entity);
119
+ const owningRelations = (0, helpers_1.findOwningRelations)(this.schema, entity);
69
120
  for (const [owningEntity, relation] of owningRelations) {
70
- const relationWhere = { [relation.name]: { [entity.primary]: { in: values } } };
71
- switch (relation.joiningColumn.onDelete) {
72
- case schema_1.Model.OnDelete.restrict:
73
- break;
74
- case schema_1.Model.OnDelete.cascade:
75
- await this.delete(mapper, owningEntity, relationWhere);
76
- break;
77
- case schema_1.Model.OnDelete.setNull:
78
- await this.setNull(mapper.db, owningEntity, relation, relationWhere);
79
- break;
80
- default:
81
- (0, utils_1.assertNever)(relation.joiningColumn.onDelete);
121
+ if (relation.joiningColumn.onDelete === schema_1.Model.OnDelete.restrict) {
122
+ await this.collectRestrictResult(state, mapper, owningEntity, relation, values);
123
+ }
124
+ else if (relation.joiningColumn.onDelete === schema_1.Model.OnDelete.cascade) {
125
+ await this.collectCascadeResult(state, mapper, owningEntity, relation, values);
126
+ }
127
+ else if (relation.joiningColumn.onDelete === schema_1.Model.OnDelete.setNull) {
128
+ await this.collectSetNullResult(state, mapper, owningEntity, relation, values);
82
129
  }
130
+ else {
131
+ (0, utils_1.assertNever)(relation.joiningColumn.onDelete);
132
+ }
133
+ }
134
+ }
135
+ async collectCascadeResult(state, mapper, entity, relation, values) {
136
+ const predicate = this.predicateFactory.createDeletePredicate(entity);
137
+ const orphanRemovals = (0, helpers_1.findRelationsWithOrphanRemoval)(this.schema, entity);
138
+ const qb = this.createFetchByIdQueryBuilder(entity, relation, values);
139
+ const qbWithOrphanColumns = this.qbOrphanColumns(qb, orphanRemovals);
140
+ const qbWithAllowed = this.qbWithAllowed(entity, predicate, qbWithOrphanColumns);
141
+ const result = this.filterPlannedForDelete(state, entity, await qbWithAllowed.getResult(mapper.db));
142
+ const disallowed = result.filter(it => !it.allowed);
143
+ if (disallowed.length > 0) {
144
+ const message = (0, helpers_1.formatConstraintViolationMessage)(disallowed, entity, relation)
145
+ + ' OnDelete behaviour of this relation is set to "cascade". This is possibly caused by ACL denial.';
146
+ state.pushFailResult(new Result_1.MutationConstraintViolationError([], Result_1.ConstraintType.foreignKey, message));
147
+ return;
148
+ }
149
+ this.processDeleteResult(state, mapper, entity, result, orphanRemovals);
150
+ }
151
+ async collectSetNullResult(state, mapper, entity, relation, values) {
152
+ const predicate = this.predicateFactory.create(entity, schema_1.Acl.Operation.update, [relation.name]);
153
+ const qb = this.createFetchByIdQueryBuilder(entity, relation, values);
154
+ const qbWithAllowed = this.qbWithAllowed(entity, predicate, qb);
155
+ const result = this.filterPlannedForDelete(state, entity, await qbWithAllowed.getResult(mapper.db));
156
+ const disallowed = result.filter(it => !it.allowed);
157
+ if (disallowed.length === 0) {
158
+ const input = { [relation.name]: { disconnect: true } };
159
+ const values = { [relation.joiningColumn.columnName]: null };
160
+ state.pushOkResult(result.map(it => new Result_1.MutationUpdateOk([], entity, it.id, input, values, { [relation.joiningColumn.columnName]: it.ref })));
161
+ return;
162
+ }
163
+ const message = (0, helpers_1.formatConstraintViolationMessage)(disallowed, entity, relation)
164
+ + ' OnDelete behaviour of this relation is set to "set null". This is possibly caused by ACL denial.';
165
+ state.pushFailResult(new Result_1.MutationConstraintViolationError([], Result_1.ConstraintType.foreignKey, message));
166
+ }
167
+ async collectRestrictResult(state, mapper, entity, relation, values) {
168
+ if (mapper.constraintHelper.areFkConstraintsDeferred()) {
169
+ return;
83
170
  }
171
+ const qb = this.createFetchByIdQueryBuilder(entity, relation, values);
172
+ const result = this.filterPlannedForDelete(state, entity, await qb.getResult(mapper.db));
173
+ if (result.length === 0) {
174
+ return;
175
+ }
176
+ const message = (0, helpers_1.formatConstraintViolationMessage)(result, entity, relation)
177
+ + ' OnDelete behaviour of this relation is set to "restrict". You might consider changing it to "setNull" or "cascade".';
178
+ state.pushFailResult(new Result_1.MutationConstraintViolationError([], Result_1.ConstraintType.foreignKey, message));
84
179
  }
85
- async setNull(db, entity, relation, where) {
86
- const updateBuilder = this.updateBuilderFactory.create(entity, where);
87
- const predicateWhere = this.predicateFactory.create(entity, schema_1.Acl.Operation.update, [relation.name]);
88
- updateBuilder.addOldWhere(predicateWhere);
89
- updateBuilder.addNewWhere(predicateWhere);
90
- updateBuilder.addFieldValue(relation.name, null);
91
- await updateBuilder.execute(db);
180
+ async collectOrphanRemovals(state, mapper, deleteQueue) {
181
+ do {
182
+ if (!state.isOk()) {
183
+ return;
184
+ }
185
+ const orphanRemoval = state.fetchOrphanRemovals();
186
+ if (orphanRemoval === null) {
187
+ break;
188
+ }
189
+ const entity = (0, schema_utils_1.getEntity)(this.schema, orphanRemoval[0]);
190
+ const orphanResult = await this.collectDeleteInfo(state, mapper, entity, { [entity.primary]: { in: orphanRemoval[1] } });
191
+ deleteQueue.push([entity, orphanResult]);
192
+ } while (true);
92
193
  }
93
- findOwningRelations(entity) {
94
- return Object.values(this.schema.entities)
95
- .map(entity => (0, schema_utils_1.acceptEveryFieldVisitor)(this.schema, entity, {
96
- visitColumn: () => null,
97
- visitManyHasManyInverse: () => null,
98
- visitManyHasManyOwning: () => null,
99
- visitOneHasOneInverse: () => null,
100
- visitOneHasMany: () => null,
101
- visitOneHasOneOwning: ({ relation }) => [entity, relation],
102
- visitManyHasOne: ({ relation }) => [entity, relation],
103
- }))
104
- .reduce((acc, value) => [
105
- ...acc,
106
- ...Object.values(value).filter((it) => it !== null),
107
- ], [])
108
- .filter(([{}, relation]) => relation.target === entity.name);
194
+ qbWithAllowed(entity, predicate, selectQb) {
195
+ return this.whereBuilder.buildAdvanced(entity, this.pathFactory.create([]), predicate, cb => {
196
+ const qb = selectQb.select(expr => expr.selectCondition(cb), 'allowed');
197
+ return (qb === selectQb ? qb.select(new database_1.Literal('true'), 'allowed') : qb);
198
+ });
109
199
  }
110
- findRelationsWithOrphanRemoval(entity) {
111
- return Object.values((0, schema_utils_1.acceptEveryFieldVisitor)(this.schema, entity, {
112
- visitColumn: () => null,
113
- visitManyHasManyInverse: () => null,
114
- visitManyHasManyOwning: () => null,
115
- visitOneHasOneInverse: () => null,
116
- visitOneHasMany: () => null,
117
- visitOneHasOneOwning: ({ relation, targetEntity }) => relation.orphanRemoval ? [targetEntity, relation] : null,
118
- visitManyHasOne: () => null,
119
- })).filter((it) => it !== null);
200
+ qbOrphanColumns(qb, orphanRemovals) {
201
+ const orphanColumns = orphanRemovals.map(([, rel]) => rel.joiningColumn.columnName);
202
+ return orphanColumns.reduce((qb, column) => qb.select(['root_', column], `_${column}`), qb);
203
+ }
204
+ createFetchByIdQueryBuilder(entity, relation, values) {
205
+ return database_1.SelectBuilder.create()
206
+ .from(entity.tableName, 'root_')
207
+ .select(['root_', entity.primaryColumn], 'id')
208
+ .select(['root_', relation.joiningColumn.columnName], 'ref')
209
+ .where(expr => expr.in(relation.joiningColumn.columnName, values));
210
+ }
211
+ filterPlannedForDelete(state, entity, values) {
212
+ return values.filter(it => !state.isPlannedDelete(entity.name, it.id));
213
+ }
214
+ async processDeleteResult(state, mapper, entity, result, orphanRemovals) {
215
+ const ids = result.map(it => it.id);
216
+ state.markPlannedDelete(entity.name, ids);
217
+ state.pushOkResult(ids.map(id => new Result_1.MutationDeleteOk([], entity, id)));
218
+ await this.collectOnDeleteInfo(state, mapper, entity, ids);
219
+ for (const [entity, relation] of orphanRemovals) {
220
+ const ids = result.map(it => it[`_${relation.joiningColumn.columnName}`]).filter(it => it !== null);
221
+ if (ids.length) {
222
+ state.addOrphanRemoval(entity.name, ids);
223
+ }
224
+ }
225
+ return ids;
120
226
  }
121
227
  }
122
228
  exports.DeleteExecutor = DeleteExecutor;
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteExecutor.js","sourceRoot":"","sources":["../../../../src/mapper/delete/DeleteExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeleteExecutor.js","sourceRoot":"","sources":["../../../../src/mapper/delete/DeleteExecutor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { DeletedEntitiesStorage } from './DeletedEntitiesStorage';
2
+ import { Input } from '@contember/schema';
3
+ import { MutationResult, MutationResultList } from '../Result';
4
+ export declare class DeleteState {
5
+ private alreadyDeleted;
6
+ private plannedDelete;
7
+ private plannedOrphanRemovals;
8
+ private plannedOrphanRemovalsEntityQueue;
9
+ result: MutationResultList;
10
+ failResult: MutationResultList;
11
+ constructor(alreadyDeleted: DeletedEntitiesStorage);
12
+ isOk(): boolean;
13
+ getResult(): MutationResultList;
14
+ pushOkResult(result: MutationResultList | MutationResult): void;
15
+ pushFailResult(result: MutationResultList | MutationResult): void;
16
+ isPlannedDelete(entityName: string, primary: Input.PrimaryValue): boolean;
17
+ confirmDeleted(): void;
18
+ markPlannedDelete(entityName: string, primaryValues: Input.PrimaryValue[]): void;
19
+ addOrphanRemoval(entityName: string, primaryValues: Input.PrimaryValue[]): void;
20
+ fetchOrphanRemovals(): [entityName: string, ids: Input.PrimaryValue[]] | null;
21
+ }
22
+ //# sourceMappingURL=DeleteState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteState.d.ts","sourceRoot":"","sources":["../../../../src/mapper/delete/DeleteState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9D,qBAAa,WAAW;IAUtB,OAAO,CAAC,cAAc;IATvB,OAAO,CAAC,aAAa,CAA+B;IAEpD,OAAO,CAAC,qBAAqB,CAA6C;IAC1E,OAAO,CAAC,gCAAgC,CAAe;IAEhD,MAAM,EAAE,kBAAkB,CAAK;IAC/B,UAAU,EAAE,kBAAkB,CAAK;gBAGjC,cAAc,EAAE,sBAAsB;IAIxC,IAAI;IAIJ,SAAS,IAAI,kBAAkB;IAI/B,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc;IAIxD,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc;IAK1D,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO;IAIzE,cAAc;IAKd,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,IAAI;IAMhF,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE,GAAG,IAAI;IAY/E,mBAAmB,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,GAAG,IAAI;CAgBpF"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeleteState = void 0;
4
+ const DeletedEntitiesStorage_1 = require("./DeletedEntitiesStorage");
5
+ const exception_1 = require("../../exception");
6
+ class DeleteState {
7
+ constructor(alreadyDeleted) {
8
+ this.alreadyDeleted = alreadyDeleted;
9
+ this.plannedDelete = new DeletedEntitiesStorage_1.DeletedEntitiesStorage();
10
+ this.plannedOrphanRemovals = new Map();
11
+ this.plannedOrphanRemovalsEntityQueue = [];
12
+ this.result = [];
13
+ this.failResult = [];
14
+ }
15
+ isOk() {
16
+ return this.failResult.length === 0;
17
+ }
18
+ getResult() {
19
+ return this.failResult.length > 0 ? this.failResult : this.result;
20
+ }
21
+ pushOkResult(result) {
22
+ this.result.push(...Array.isArray(result) ? result : [result]);
23
+ }
24
+ pushFailResult(result) {
25
+ this.failResult.push(...Array.isArray(result) ? result : [result]);
26
+ }
27
+ isPlannedDelete(entityName, primary) {
28
+ return this.plannedDelete.isDeleted(entityName, primary);
29
+ }
30
+ confirmDeleted() {
31
+ this.alreadyDeleted.merge(this.plannedDelete);
32
+ this.plannedDelete = new DeletedEntitiesStorage_1.DeletedEntitiesStorage();
33
+ }
34
+ markPlannedDelete(entityName, primaryValues) {
35
+ for (const primary of primaryValues) {
36
+ this.plannedDelete.markDeleted(entityName, primary);
37
+ }
38
+ }
39
+ addOrphanRemoval(entityName, primaryValues) {
40
+ let entityIds = this.plannedOrphanRemovals.get(entityName);
41
+ if (!entityIds) {
42
+ entityIds = new Set();
43
+ this.plannedOrphanRemovals.set(entityName, entityIds);
44
+ this.plannedOrphanRemovalsEntityQueue.push(entityName);
45
+ }
46
+ for (const primary of primaryValues) {
47
+ entityIds.add(primary);
48
+ }
49
+ }
50
+ fetchOrphanRemovals() {
51
+ const entityName = this.plannedOrphanRemovalsEntityQueue.shift();
52
+ if (!entityName) {
53
+ return null;
54
+ }
55
+ const ids = this.plannedOrphanRemovals.get(entityName);
56
+ if (!ids) {
57
+ throw new exception_1.ImplementationException(`DeleteState.plannedOrphanRemovals is expected to have ${entityName}`);
58
+ }
59
+ this.plannedOrphanRemovals.delete(entityName);
60
+ const idsToRemove = [...ids.values()].filter(it => !this.isPlannedDelete(entityName, it));
61
+ if (idsToRemove.length > 0) {
62
+ return [entityName, idsToRemove];
63
+ }
64
+ return this.fetchOrphanRemovals();
65
+ }
66
+ }
67
+ exports.DeleteState = DeleteState;
68
+ //# sourceMappingURL=DeleteState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteState.js","sourceRoot":"","sources":["../../../../src/mapper/delete/DeleteState.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { Input } from '@contember/schema';
2
2
  export declare class DeletedEntitiesStorage {
3
3
  private deleted;
4
4
  markDeleted(entityName: string, primary: Input.PrimaryValue): void;
5
+ merge(storage: DeletedEntitiesStorage): void;
5
6
  isDeleted(entityName: string, primary: Input.PrimaryValue): boolean;
6
7
  private getKey;
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DeletedEntitiesStorage.d.ts","sourceRoot":"","sources":["../../../../src/mapper/delete/DeletedEntitiesStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,qBAAa,sBAAsB;IAClC,OAAO,CAAC,OAAO,CAAoB;IAE5B,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI;IAIlE,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO;IAI1E,OAAO,CAAC,MAAM;CAGd"}
1
+ {"version":3,"file":"DeletedEntitiesStorage.d.ts","sourceRoot":"","sources":["../../../../src/mapper/delete/DeletedEntitiesStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,qBAAa,sBAAsB;IAClC,OAAO,CAAC,OAAO,CAAoB;IAE5B,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI;IAIlE,KAAK,CAAC,OAAO,EAAE,sBAAsB;IAMrC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO;IAI1E,OAAO,CAAC,MAAM;CAGd"}
@@ -8,6 +8,11 @@ class DeletedEntitiesStorage {
8
8
  markDeleted(entityName, primary) {
9
9
  this.deleted.add(this.getKey(entityName, primary));
10
10
  }
11
+ merge(storage) {
12
+ for (const key of storage.deleted) {
13
+ this.deleted.add(key);
14
+ }
15
+ }
11
16
  isDeleted(entityName, primary) {
12
17
  return this.deleted.has(this.getKey(entityName, primary));
13
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DeletedEntitiesStorage.js","sourceRoot":"","sources":["../../../../src/mapper/delete/DeletedEntitiesStorage.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IAAnC;QACS,YAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IAapC,CAAC;IAXO,WAAW,CAAC,UAAkB,EAAE,OAA2B;QACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;IACnD,CAAC;IAEM,SAAS,CAAC,UAAkB,EAAE,OAA2B;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1D,CAAC;IAEO,MAAM,CAAC,UAAkB,EAAE,OAA2B;QAC7D,OAAO,GAAG,UAAU,IAAI,OAAO,EAAE,CAAA;IAClC,CAAC;CACD;AAdD,wDAcC"}
1
+ {"version":3,"file":"DeletedEntitiesStorage.js","sourceRoot":"","sources":["../../../../src/mapper/delete/DeletedEntitiesStorage.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IAAnC;QACS,YAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IAmBpC,CAAC;IAjBO,WAAW,CAAC,UAAkB,EAAE,OAA2B;QACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;IACnD,CAAC;IAEM,KAAK,CAAC,OAA+B;QAC3C,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;YAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACrB;IACF,CAAC;IAEM,SAAS,CAAC,UAAkB,EAAE,OAA2B;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;IAC1D,CAAC;IAEO,MAAM,CAAC,UAAkB,EAAE,OAA2B;QAC7D,OAAO,GAAG,UAAU,IAAI,OAAO,EAAE,CAAA;IAClC,CAAC;CACD;AApBD,wDAoBC"}
@@ -0,0 +1,11 @@
1
+ import { Input, Model } from '@contember/schema';
2
+ export declare type OneHasOneOwningRelationTuple = [Model.Entity, Model.OneHasOneOwningRelation];
3
+ export declare const findRelationsWithOrphanRemoval: (schema: Model.Schema, entity: Model.Entity) => OneHasOneOwningRelationTuple[];
4
+ export declare type EntityOwningRelationTuple = [Model.Entity, Model.ManyHasOneRelation | Model.OneHasOneOwningRelation];
5
+ export declare const findOwningRelations: (schema: Model.Schema, entity: Model.Entity) => EntityOwningRelationTuple[];
6
+ export declare type EntityReferenceRow = {
7
+ id: Input.PrimaryValue;
8
+ ref: Input.PrimaryValue;
9
+ };
10
+ export declare const formatConstraintViolationMessage: (rows: Pick<EntityReferenceRow, 'id' | 'ref'>[], entity: Model.Entity, relation: Model.ManyHasOneRelation | Model.OneHasOneOwningRelation) => string;
11
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/mapper/delete/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGhD,oBAAY,4BAA4B,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAA;AAExF,eAAO,MAAM,8BAA8B,WAAY,MAAM,MAAM,UAAU,MAAM,MAAM,KAAG,4BAA4B,EAavH,CAAA;AAED,oBAAY,yBAAyB,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,uBAAuB,CAAC,CAAA;AAEhH,eAAO,MAAM,mBAAmB,WAAY,MAAM,MAAM,UAAU,MAAM,MAAM,KAAG,yBAAyB,EAuBzG,CAAA;AAED,oBAAY,kBAAkB,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC;IAAC,GAAG,EAAE,KAAK,CAAC,YAAY,CAAA;CAAE,CAAA;AAEpF,eAAO,MAAM,gCAAgC,SACtC,KAAK,kBAAkB,EAAE,IAAI,GAAG,KAAK,CAAC,EAAE,UACtC,MAAM,MAAM,YACV,MAAM,kBAAkB,GAAG,MAAM,uBAAuB,WAelE,CAAA"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatConstraintViolationMessage = exports.findOwningRelations = exports.findRelationsWithOrphanRemoval = void 0;
4
+ const schema_utils_1 = require("@contember/schema-utils");
5
+ const findRelationsWithOrphanRemoval = (schema, entity) => {
6
+ return Object.values((0, schema_utils_1.acceptEveryFieldVisitor)(schema, entity, {
7
+ visitColumn: () => null,
8
+ visitManyHasManyInverse: () => null,
9
+ visitManyHasManyOwning: () => null,
10
+ visitOneHasOneInverse: () => null,
11
+ visitOneHasMany: () => null,
12
+ visitOneHasOneOwning: ({ relation, targetEntity }) => relation.orphanRemoval ? [targetEntity, relation] : null,
13
+ visitManyHasOne: () => null,
14
+ })).filter((it) => it !== null);
15
+ };
16
+ exports.findRelationsWithOrphanRemoval = findRelationsWithOrphanRemoval;
17
+ const findOwningRelations = (schema, entity) => {
18
+ return Object.values(schema.entities)
19
+ .map(entity => (0, schema_utils_1.acceptEveryFieldVisitor)(schema, entity, {
20
+ visitColumn: () => null,
21
+ visitManyHasManyInverse: () => null,
22
+ visitManyHasManyOwning: () => null,
23
+ visitOneHasOneInverse: () => null,
24
+ visitOneHasMany: () => null,
25
+ visitOneHasOneOwning: ({ relation }) => [entity, relation],
26
+ visitManyHasOne: ({ relation }) => [entity, relation],
27
+ }))
28
+ .reduce((acc, value) => [
29
+ ...acc,
30
+ ...Object.values(value).filter((it) => it !== null),
31
+ ], [])
32
+ .filter(([{}, relation]) => relation.target === entity.name);
33
+ };
34
+ exports.findOwningRelations = findOwningRelations;
35
+ const formatConstraintViolationMessage = (rows, entity, relation) => {
36
+ const referencedRows = [...new Set(rows.map(it => it.ref))];
37
+ const referencedRowsSample = referencedRows.slice(0, 10);
38
+ const referencedRowsRemaining = referencedRows.length - referencedRowsSample.length;
39
+ const referencingRowsSample = rows.slice(0, 10).map(it => it.id);
40
+ const referencingRowsRemaining = rows.length - referencingRowsSample.length;
41
+ return 'Cannot delete ' + referencedRowsSample.join(', ')
42
+ + (referencedRowsRemaining > 0 ? ` and ${referencedRowsRemaining} more` : '')
43
+ + ` row(s) of entity ${relation.target}, `
44
+ + `because it is still referenced from ` + referencingRowsSample.join(', ')
45
+ + (referencingRowsRemaining > 0 ? ` and ${referencingRowsRemaining} more` : '')
46
+ + ` row(s) of entity ${entity.name} in relation ${relation.name}.`;
47
+ };
48
+ exports.formatConstraintViolationMessage = formatConstraintViolationMessage;
49
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/mapper/delete/helpers.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,11 @@ export * from './update';
5
5
  export * from './ColumnValue';
6
6
  export * from './Constraints';
7
7
  export * from './ErrorUtils';
8
+ export * from './EventManager';
8
9
  export * from './JunctionTableManager';
9
10
  export * from './Mapper';
10
- export * from './MapperContainer';
11
+ export * from '../ExecutionContainer';
12
+ export * from './MapperFactory';
11
13
  export * from './MutationProcessorHelper';
12
14
  export * from './Result';
13
15
  export * from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mapper/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,wBAAwB,CAAA;AACtC,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,2BAA2B,CAAA;AACzC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mapper/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,UAAU,CAAA;AACxB,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA"}
@@ -21,9 +21,11 @@ __exportStar(require("./update"), exports);
21
21
  __exportStar(require("./ColumnValue"), exports);
22
22
  __exportStar(require("./Constraints"), exports);
23
23
  __exportStar(require("./ErrorUtils"), exports);
24
+ __exportStar(require("./EventManager"), exports);
24
25
  __exportStar(require("./JunctionTableManager"), exports);
25
26
  __exportStar(require("./Mapper"), exports);
26
- __exportStar(require("./MapperContainer"), exports);
27
+ __exportStar(require("../ExecutionContainer"), exports);
28
+ __exportStar(require("./MapperFactory"), exports);
27
29
  __exportStar(require("./MutationProcessorHelper"), exports);
28
30
  __exportStar(require("./Result"), exports);
29
31
  __exportStar(require("./types"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mapper/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,2CAAwB;AACxB,2CAAwB;AACxB,2CAAwB;AACxB,gDAA6B;AAC7B,gDAA6B;AAC7B,+CAA4B;AAC5B,yDAAsC;AACtC,2CAAwB;AACxB,oDAAiC;AACjC,4DAAyC;AACzC,2CAAwB;AACxB,0CAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mapper/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,2CAAwB;AACxB,2CAAwB;AACxB,2CAAwB;AACxB,gDAA6B;AAC7B,gDAA6B;AAC7B,+CAA4B;AAC5B,iDAA8B;AAC9B,yDAAsC;AACtC,2CAAwB;AACxB,wDAAqC;AACrC,kDAA+B;AAC/B,4DAAyC;AACzC,2CAAwB;AACxB,0CAAuB"}