@contember/engine-content-api 2.1.0-alpha.9 → 2.1.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1030) hide show
  1. package/CLAUDE.md +54 -0
  2. package/dist/development/index.cjs +1 -2
  3. package/dist/development/index.cjs.map +1 -1
  4. package/dist/development/index.js +2 -3
  5. package/dist/development/index.js.map +1 -1
  6. package/dist/development/src/ExecutionContainer.cjs +120 -31
  7. package/dist/development/src/ExecutionContainer.cjs.map +1 -1
  8. package/dist/development/src/ExecutionContainer.js +121 -32
  9. package/dist/development/src/ExecutionContainer.js.map +1 -1
  10. package/dist/development/src/acl/Authorizator.cjs.map +1 -1
  11. package/dist/development/src/acl/Authorizator.js.map +1 -1
  12. package/dist/development/src/acl/EvaluatedPredicateReplacer.cjs.map +1 -1
  13. package/dist/development/src/acl/EvaluatedPredicateReplacer.js.map +1 -1
  14. package/dist/development/src/acl/PermissionFactory.cjs +29 -15
  15. package/dist/development/src/acl/PermissionFactory.cjs.map +1 -1
  16. package/dist/development/src/acl/PermissionFactory.js +29 -15
  17. package/dist/development/src/acl/PermissionFactory.js.map +1 -1
  18. package/dist/development/src/acl/PredicateFactory.cjs +33 -13
  19. package/dist/development/src/acl/PredicateFactory.cjs.map +1 -1
  20. package/dist/development/src/acl/PredicateFactory.js +33 -13
  21. package/dist/development/src/acl/PredicateFactory.js.map +1 -1
  22. package/dist/development/src/acl/PredicatesInjector.cjs +105 -13
  23. package/dist/development/src/acl/PredicatesInjector.cjs.map +1 -1
  24. package/dist/development/src/acl/PredicatesInjector.js +105 -13
  25. package/dist/development/src/acl/PredicatesInjector.js.map +1 -1
  26. package/dist/development/src/acl/VariableInjector.cjs.map +1 -1
  27. package/dist/development/src/acl/VariableInjector.js.map +1 -1
  28. package/dist/development/src/acl/VariableUtils.cjs.map +1 -1
  29. package/dist/development/src/acl/VariableUtils.js.map +1 -1
  30. package/dist/development/src/exception.cjs.map +1 -1
  31. package/dist/development/src/exception.js.map +1 -1
  32. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.cjs.map +1 -1
  33. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.js.map +1 -1
  34. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.cjs.map +1 -1
  35. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js.map +1 -1
  36. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs +4 -4
  37. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs.map +1 -1
  38. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js +4 -4
  39. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js.map +1 -1
  40. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.cjs.map +1 -1
  41. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.js.map +1 -1
  42. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.cjs.map +1 -1
  43. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js.map +1 -1
  44. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.cjs.map +1 -1
  45. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.js.map +1 -1
  46. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.cjs.map +1 -1
  47. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.js.map +1 -1
  48. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.cjs.map +1 -1
  49. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.js.map +1 -1
  50. package/dist/development/src/input-validation/ColumnValueResolver.cjs.map +1 -1
  51. package/dist/development/src/input-validation/ColumnValueResolver.js.map +1 -1
  52. package/dist/development/src/input-validation/EntityRulesResolver.cjs.map +1 -1
  53. package/dist/development/src/input-validation/EntityRulesResolver.js.map +1 -1
  54. package/dist/development/src/input-validation/QueryAstFactory.cjs.map +1 -1
  55. package/dist/development/src/input-validation/QueryAstFactory.js.map +1 -1
  56. package/dist/development/src/input-validation/ValidationContext.cjs.map +1 -1
  57. package/dist/development/src/input-validation/ValidationContext.js.map +1 -1
  58. package/dist/development/src/input-validation/ValidationDataSelector.cjs.map +1 -1
  59. package/dist/development/src/input-validation/ValidationDataSelector.js.map +1 -1
  60. package/dist/development/src/input-validation/ValidationEvaluation.cjs.map +1 -1
  61. package/dist/development/src/input-validation/ValidationEvaluation.js.map +1 -1
  62. package/dist/development/src/input-validation/ValidationPath.cjs.map +1 -1
  63. package/dist/development/src/input-validation/ValidationPath.js.map +1 -1
  64. package/dist/development/src/input-validation/dependencies/DependencyCollector.cjs +3 -3
  65. package/dist/development/src/input-validation/dependencies/DependencyCollector.cjs.map +1 -1
  66. package/dist/development/src/input-validation/dependencies/DependencyCollector.js +3 -3
  67. package/dist/development/src/input-validation/dependencies/DependencyCollector.js.map +1 -1
  68. package/dist/development/src/input-validation/dependencies/DependencyMerger.cjs.map +1 -1
  69. package/dist/development/src/input-validation/dependencies/DependencyMerger.js.map +1 -1
  70. package/dist/development/src/input-validation/preValidation/CreateInputPreValidationProcessor.cjs.map +1 -1
  71. package/dist/development/src/input-validation/preValidation/CreateInputPreValidationProcessor.js.map +1 -1
  72. package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs +2 -4
  73. package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
  74. package/dist/development/src/input-validation/preValidation/InputPreValidator.js +2 -4
  75. package/dist/development/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
  76. package/dist/development/src/input-validation/preValidation/UpdateInputPreValidationProcessor.cjs.map +1 -1
  77. package/dist/development/src/input-validation/preValidation/UpdateInputPreValidationProcessor.js.map +1 -1
  78. package/dist/development/src/inputProcessing/CreateInputVisitor.cjs +6 -4
  79. package/dist/development/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
  80. package/dist/development/src/inputProcessing/CreateInputVisitor.js +6 -4
  81. package/dist/development/src/inputProcessing/CreateInputVisitor.js.map +1 -1
  82. package/dist/development/src/inputProcessing/FieldNode.cjs.map +1 -1
  83. package/dist/development/src/inputProcessing/FieldNode.js.map +1 -1
  84. package/dist/development/src/inputProcessing/ObjectNode.cjs.map +1 -1
  85. package/dist/development/src/inputProcessing/ObjectNode.js.map +1 -1
  86. package/dist/development/src/inputProcessing/UniqueWhereExpander.cjs.map +1 -1
  87. package/dist/development/src/inputProcessing/UniqueWhereExpander.js.map +1 -1
  88. package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs +7 -5
  89. package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
  90. package/dist/development/src/inputProcessing/UpdateInputVisitor.js +7 -5
  91. package/dist/development/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  92. package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
  93. package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.js.map +1 -1
  94. package/dist/development/src/introspection/IntrospectionSchemaFactory.cjs.map +1 -1
  95. package/dist/development/src/introspection/IntrospectionSchemaFactory.js.map +1 -1
  96. package/dist/development/src/introspection/content-schema.types.cjs.map +1 -1
  97. package/dist/development/src/introspection/content-schema.types.js.map +1 -1
  98. package/dist/development/src/introspection/introspection.schema.cjs.map +1 -1
  99. package/dist/development/src/introspection/introspection.schema.js.map +1 -1
  100. package/dist/development/src/mapper/CheckedPrimary.cjs.map +1 -1
  101. package/dist/development/src/mapper/CheckedPrimary.js.map +1 -1
  102. package/dist/development/src/mapper/ColumnValue.cjs.map +1 -1
  103. package/dist/development/src/mapper/ColumnValue.js.map +1 -1
  104. package/dist/development/src/mapper/ErrorUtils.cjs.map +1 -1
  105. package/dist/development/src/mapper/ErrorUtils.js +1 -1
  106. package/dist/development/src/mapper/ErrorUtils.js.map +1 -1
  107. package/dist/development/src/mapper/EventManager.cjs.map +1 -1
  108. package/dist/development/src/mapper/EventManager.js.map +1 -1
  109. package/dist/development/src/mapper/JunctionTableManager.cjs +16 -2
  110. package/dist/development/src/mapper/JunctionTableManager.cjs.map +1 -1
  111. package/dist/development/src/mapper/JunctionTableManager.js +17 -3
  112. package/dist/development/src/mapper/JunctionTableManager.js.map +1 -1
  113. package/dist/development/src/mapper/Mapper.cjs +8 -7
  114. package/dist/development/src/mapper/Mapper.cjs.map +1 -1
  115. package/dist/development/src/mapper/Mapper.js +8 -7
  116. package/dist/development/src/mapper/Mapper.js.map +1 -1
  117. package/dist/development/src/mapper/MapperFactory.cjs.map +1 -1
  118. package/dist/development/src/mapper/MapperFactory.js.map +1 -1
  119. package/dist/development/src/mapper/MutationProcessorHelper.cjs.map +1 -1
  120. package/dist/development/src/mapper/MutationProcessorHelper.js.map +1 -1
  121. package/dist/development/src/mapper/Result.cjs +1 -1
  122. package/dist/development/src/mapper/Result.cjs.map +1 -1
  123. package/dist/development/src/mapper/Result.js +1 -1
  124. package/dist/development/src/mapper/Result.js.map +1 -1
  125. package/dist/development/src/mapper/delete/DeleteExecutor.cjs.map +1 -1
  126. package/dist/development/src/mapper/delete/DeleteExecutor.js.map +1 -1
  127. package/dist/development/src/mapper/delete/DeleteState.cjs.map +1 -1
  128. package/dist/development/src/mapper/delete/DeleteState.js.map +1 -1
  129. package/dist/development/src/mapper/delete/DeletedEntitiesStorage.cjs.map +1 -1
  130. package/dist/development/src/mapper/delete/DeletedEntitiesStorage.js.map +1 -1
  131. package/dist/development/src/mapper/delete/helpers.cjs.map +1 -1
  132. package/dist/development/src/mapper/delete/helpers.js.map +1 -1
  133. package/dist/development/src/mapper/insert/InsertBuilder.cjs +27 -31
  134. package/dist/development/src/mapper/insert/InsertBuilder.cjs.map +1 -1
  135. package/dist/development/src/mapper/insert/InsertBuilder.js +27 -31
  136. package/dist/development/src/mapper/insert/InsertBuilder.js.map +1 -1
  137. package/dist/development/src/mapper/insert/InsertBuilderFactory.cjs.map +1 -1
  138. package/dist/development/src/mapper/insert/InsertBuilderFactory.js.map +1 -1
  139. package/dist/development/src/mapper/insert/Inserter.cjs.map +1 -1
  140. package/dist/development/src/mapper/insert/Inserter.js.map +1 -1
  141. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
  142. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  143. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -1
  144. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -1
  145. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -1
  146. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -1
  147. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -1
  148. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -1
  149. package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -1
  150. package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -1
  151. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -1
  152. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -1
  153. package/dist/development/src/mapper/select/ConditionBuilder.cjs +7 -5
  154. package/dist/development/src/mapper/select/ConditionBuilder.cjs.map +1 -1
  155. package/dist/development/src/mapper/select/ConditionBuilder.js +8 -6
  156. package/dist/development/src/mapper/select/ConditionBuilder.js.map +1 -1
  157. package/dist/development/src/mapper/select/JoinBuilder.cjs.map +1 -1
  158. package/dist/development/src/mapper/select/JoinBuilder.js.map +1 -1
  159. package/dist/development/src/mapper/select/JoinVisitor.cjs.map +1 -1
  160. package/dist/development/src/mapper/select/JoinVisitor.js.map +1 -1
  161. package/dist/development/src/mapper/select/OrderByBuilder.cjs.map +1 -1
  162. package/dist/development/src/mapper/select/OrderByBuilder.js.map +1 -1
  163. package/dist/development/src/mapper/select/OrderByHelper.cjs.map +1 -1
  164. package/dist/development/src/mapper/select/OrderByHelper.js.map +1 -1
  165. package/dist/development/src/mapper/select/Path.cjs.map +1 -1
  166. package/dist/development/src/mapper/select/Path.js.map +1 -1
  167. package/dist/development/src/mapper/select/RelationFetcher.cjs.map +1 -1
  168. package/dist/development/src/mapper/select/RelationFetcher.js.map +1 -1
  169. package/dist/development/src/mapper/select/SelectBuilder.cjs +7 -10
  170. package/dist/development/src/mapper/select/SelectBuilder.cjs.map +1 -1
  171. package/dist/development/src/mapper/select/SelectBuilder.js +7 -10
  172. package/dist/development/src/mapper/select/SelectBuilder.js.map +1 -1
  173. package/dist/development/src/mapper/select/SelectHydrator.cjs +1 -1
  174. package/dist/development/src/mapper/select/SelectHydrator.cjs.map +1 -1
  175. package/dist/development/src/mapper/select/SelectHydrator.js +1 -1
  176. package/dist/development/src/mapper/select/SelectHydrator.js.map +1 -1
  177. package/dist/development/src/mapper/select/WhereBuilder.cjs +20 -18
  178. package/dist/development/src/mapper/select/WhereBuilder.cjs.map +1 -1
  179. package/dist/development/src/mapper/select/WhereBuilder.js +20 -18
  180. package/dist/development/src/mapper/select/WhereBuilder.js.map +1 -1
  181. package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs +3 -2
  182. package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  183. package/dist/development/src/mapper/select/handlers/FieldsVisitor.js +3 -2
  184. package/dist/development/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  185. package/dist/development/src/mapper/select/handlers/FieldsVisitorFactory.cjs.map +1 -1
  186. package/dist/development/src/mapper/select/handlers/FieldsVisitorFactory.js.map +1 -1
  187. package/dist/development/src/mapper/select/handlers/MetaHandler.cjs.map +1 -1
  188. package/dist/development/src/mapper/select/handlers/MetaHandler.js.map +1 -1
  189. package/dist/development/src/mapper/select/optimizer/ConditionOptimizer.cjs.map +1 -1
  190. package/dist/development/src/mapper/select/optimizer/ConditionOptimizer.js.map +1 -1
  191. package/dist/development/src/mapper/select/optimizer/WhereOptimizer.cjs +7 -3
  192. package/dist/development/src/mapper/select/optimizer/WhereOptimizer.cjs.map +1 -1
  193. package/dist/development/src/mapper/select/optimizer/WhereOptimizer.js +7 -3
  194. package/dist/development/src/mapper/select/optimizer/WhereOptimizer.js.map +1 -1
  195. package/dist/development/src/mapper/select/optimizer/WhereReplacer.cjs.map +1 -1
  196. package/dist/development/src/mapper/select/optimizer/WhereReplacer.js.map +1 -1
  197. package/dist/development/src/mapper/select/optimizer/helpers.cjs.map +1 -1
  198. package/dist/development/src/mapper/select/optimizer/helpers.js.map +1 -1
  199. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
  200. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
  201. package/dist/development/src/mapper/update/UpdateBuilder.cjs +64 -68
  202. package/dist/development/src/mapper/update/UpdateBuilder.cjs.map +1 -1
  203. package/dist/development/src/mapper/update/UpdateBuilder.js +64 -68
  204. package/dist/development/src/mapper/update/UpdateBuilder.js.map +1 -1
  205. package/dist/development/src/mapper/update/UpdateBuilderFactory.cjs.map +1 -1
  206. package/dist/development/src/mapper/update/UpdateBuilderFactory.js.map +1 -1
  207. package/dist/development/src/mapper/update/Updater.cjs +15 -3
  208. package/dist/development/src/mapper/update/Updater.cjs.map +1 -1
  209. package/dist/development/src/mapper/update/Updater.js +16 -4
  210. package/dist/development/src/mapper/update/Updater.js.map +1 -1
  211. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -1
  212. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -1
  213. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -1
  214. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -1
  215. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -1
  216. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -1
  217. package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -1
  218. package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -1
  219. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -1
  220. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -1
  221. package/dist/development/src/resolvers/GraphQlQueryAstFactory.cjs.map +1 -1
  222. package/dist/development/src/resolvers/GraphQlQueryAstFactory.js.map +1 -1
  223. package/dist/development/src/resolvers/MutationResolver.cjs.map +1 -1
  224. package/dist/development/src/resolvers/MutationResolver.js.map +1 -1
  225. package/dist/development/src/resolvers/ReadHelpers.cjs.map +1 -1
  226. package/dist/development/src/resolvers/ReadHelpers.js.map +1 -1
  227. package/dist/development/src/resolvers/ReadResolver.cjs.map +1 -1
  228. package/dist/development/src/resolvers/ReadResolver.js.map +1 -1
  229. package/dist/development/src/resolvers/RefreshViewResolver.cjs.map +1 -1
  230. package/dist/development/src/resolvers/RefreshViewResolver.js.map +1 -1
  231. package/dist/development/src/resolvers/ValidationResolver.cjs.map +1 -1
  232. package/dist/development/src/resolvers/ValidationResolver.js.map +1 -1
  233. package/dist/development/src/schema/ColumnTypeResolver.cjs.map +1 -1
  234. package/dist/development/src/schema/ColumnTypeResolver.js.map +1 -1
  235. package/dist/development/src/schema/ConditionTypeProvider.cjs +2 -0
  236. package/dist/development/src/schema/ConditionTypeProvider.cjs.map +1 -1
  237. package/dist/development/src/schema/ConditionTypeProvider.js +3 -1
  238. package/dist/development/src/schema/ConditionTypeProvider.js.map +1 -1
  239. package/dist/development/src/schema/CustomTypesProvider.cjs.map +1 -1
  240. package/dist/development/src/schema/CustomTypesProvider.js.map +1 -1
  241. package/dist/development/src/schema/EntityTypeProvider.cjs +1 -3
  242. package/dist/development/src/schema/EntityTypeProvider.cjs.map +1 -1
  243. package/dist/development/src/schema/EntityTypeProvider.js +1 -3
  244. package/dist/development/src/schema/EntityTypeProvider.js.map +1 -1
  245. package/dist/development/src/schema/EnumsProvider.cjs.map +1 -1
  246. package/dist/development/src/schema/EnumsProvider.js.map +1 -1
  247. package/dist/development/src/schema/FieldAccessVisitor.cjs.map +1 -1
  248. package/dist/development/src/schema/FieldAccessVisitor.js.map +1 -1
  249. package/dist/development/src/schema/GraphQlSchemaBuilder.cjs +5 -11
  250. package/dist/development/src/schema/GraphQlSchemaBuilder.cjs.map +1 -1
  251. package/dist/development/src/schema/GraphQlSchemaBuilder.js +5 -11
  252. package/dist/development/src/schema/GraphQlSchemaBuilder.js.map +1 -1
  253. package/dist/development/src/schema/GraphQlSchemaBuilderFactory.cjs +103 -3
  254. package/dist/development/src/schema/GraphQlSchemaBuilderFactory.cjs.map +1 -1
  255. package/dist/development/src/schema/GraphQlSchemaBuilderFactory.js +103 -3
  256. package/dist/development/src/schema/GraphQlSchemaBuilderFactory.js.map +1 -1
  257. package/dist/development/src/schema/MutationProvider.cjs.map +1 -1
  258. package/dist/development/src/schema/MutationProvider.js +2 -2
  259. package/dist/development/src/schema/MutationProvider.js.map +1 -1
  260. package/dist/development/src/schema/OperationExtension.cjs +0 -1
  261. package/dist/development/src/schema/OperationExtension.cjs.map +1 -1
  262. package/dist/development/src/schema/OperationExtension.js +0 -1
  263. package/dist/development/src/schema/OperationExtension.js.map +1 -1
  264. package/dist/development/src/schema/OrderByTypeProvider.cjs.map +1 -1
  265. package/dist/development/src/schema/OrderByTypeProvider.js +1 -1
  266. package/dist/development/src/schema/OrderByTypeProvider.js.map +1 -1
  267. package/dist/development/src/schema/PaginatedFieldConfigFactory.cjs.map +1 -1
  268. package/dist/development/src/schema/PaginatedFieldConfigFactory.js +1 -1
  269. package/dist/development/src/schema/PaginatedFieldConfigFactory.js.map +1 -1
  270. package/dist/development/src/schema/QueryProvider.cjs.map +1 -1
  271. package/dist/development/src/schema/QueryProvider.js +2 -2
  272. package/dist/development/src/schema/QueryProvider.js.map +1 -1
  273. package/dist/development/src/schema/RefreshViewMutationProvider.cjs.map +1 -1
  274. package/dist/development/src/schema/RefreshViewMutationProvider.js.map +1 -1
  275. package/dist/development/src/schema/ResultSchemaTypeProvider.cjs.map +1 -1
  276. package/dist/development/src/schema/ResultSchemaTypeProvider.js.map +1 -1
  277. package/dist/development/src/schema/ValidationQueriesProvider.cjs +2 -8
  278. package/dist/development/src/schema/ValidationQueriesProvider.cjs.map +1 -1
  279. package/dist/development/src/schema/ValidationQueriesProvider.js +2 -8
  280. package/dist/development/src/schema/ValidationQueriesProvider.js.map +1 -1
  281. package/dist/development/src/schema/WhereTypeProvider.cjs +1 -3
  282. package/dist/development/src/schema/WhereTypeProvider.cjs.map +1 -1
  283. package/dist/development/src/schema/WhereTypeProvider.js +1 -3
  284. package/dist/development/src/schema/WhereTypeProvider.js.map +1 -1
  285. package/dist/development/src/schema/entities/FieldArgsVisitor.cjs.map +1 -1
  286. package/dist/development/src/schema/entities/FieldArgsVisitor.js.map +1 -1
  287. package/dist/development/src/schema/entities/FieldTypeVisitor.cjs.map +1 -1
  288. package/dist/development/src/schema/entities/FieldTypeVisitor.js.map +1 -1
  289. package/dist/development/src/schema/mutations/ConnectOrCreateRelationInputProvider.cjs.map +1 -1
  290. package/dist/development/src/schema/mutations/ConnectOrCreateRelationInputProvider.js.map +1 -1
  291. package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.cjs.map +1 -1
  292. package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
  293. package/dist/development/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
  294. package/dist/development/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  295. package/dist/development/src/schema/mutations/CreateEntityRelationInputFieldVisitor.cjs.map +1 -1
  296. package/dist/development/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js.map +1 -1
  297. package/dist/development/src/schema/mutations/CreateEntityRelationInputProvider.cjs.map +1 -1
  298. package/dist/development/src/schema/mutations/CreateEntityRelationInputProvider.js.map +1 -1
  299. package/dist/development/src/schema/mutations/EntityInputProvider.cjs.map +1 -1
  300. package/dist/development/src/schema/mutations/EntityInputProvider.js.map +1 -1
  301. package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs.map +1 -1
  302. package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
  303. package/dist/development/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
  304. package/dist/development/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  305. package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
  306. package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +1 -1
  307. package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
  308. package/dist/development/src/schema/mutations/UpdateEntityRelationInputProvider.cjs.map +1 -1
  309. package/dist/development/src/schema/mutations/UpdateEntityRelationInputProvider.js.map +1 -1
  310. package/dist/development/src/schema/utils.cjs.map +1 -1
  311. package/dist/development/src/schema/utils.js.map +1 -1
  312. package/dist/development/src/utils/Mutex.cjs.map +1 -1
  313. package/dist/development/src/utils/Mutex.js.map +1 -1
  314. package/dist/development/src/utils/ResolveInfoUtils.cjs.map +1 -1
  315. package/dist/development/src/utils/ResolveInfoUtils.js.map +1 -1
  316. package/dist/development/src/utils/accessor.cjs.map +1 -1
  317. package/dist/development/src/utils/accessor.js.map +1 -1
  318. package/dist/development/src/utils/assertNever.cjs.map +1 -1
  319. package/dist/development/src/utils/assertNever.js.map +1 -1
  320. package/dist/development/src/utils/isIt.cjs.map +1 -1
  321. package/dist/development/src/utils/isIt.js.map +1 -1
  322. package/dist/development/src/utils/object.cjs.map +1 -1
  323. package/dist/development/src/utils/object.js.map +1 -1
  324. package/dist/development/src/utils/paginationUtils.cjs.map +1 -1
  325. package/dist/development/src/utils/paginationUtils.js.map +1 -1
  326. package/dist/development/src/utils/promises.cjs.map +1 -1
  327. package/dist/development/src/utils/promises.js.map +1 -1
  328. package/dist/development/src/utils/singletonFactory.cjs.map +1 -1
  329. package/dist/development/src/utils/singletonFactory.js.map +1 -1
  330. package/dist/development/src/utils/strings.cjs.map +1 -1
  331. package/dist/development/src/utils/strings.js.map +1 -1
  332. package/dist/development/src/utils/tuple.cjs.map +1 -1
  333. package/dist/development/src/utils/tuple.js.map +1 -1
  334. package/dist/development/src/utils/uniqueWhereFields.cjs.map +1 -1
  335. package/dist/development/src/utils/uniqueWhereFields.js.map +1 -1
  336. package/dist/development/src/utils/viewComputedId.cjs.map +1 -1
  337. package/dist/development/src/utils/viewComputedId.js.map +1 -1
  338. package/dist/production/index.cjs +1 -2
  339. package/dist/production/index.cjs.map +1 -1
  340. package/dist/production/index.js +2 -3
  341. package/dist/production/index.js.map +1 -1
  342. package/dist/production/src/ExecutionContainer.cjs +120 -31
  343. package/dist/production/src/ExecutionContainer.cjs.map +1 -1
  344. package/dist/production/src/ExecutionContainer.js +121 -32
  345. package/dist/production/src/ExecutionContainer.js.map +1 -1
  346. package/dist/production/src/acl/Authorizator.cjs.map +1 -1
  347. package/dist/production/src/acl/Authorizator.js.map +1 -1
  348. package/dist/production/src/acl/EvaluatedPredicateReplacer.cjs.map +1 -1
  349. package/dist/production/src/acl/EvaluatedPredicateReplacer.js.map +1 -1
  350. package/dist/production/src/acl/PermissionFactory.cjs +29 -15
  351. package/dist/production/src/acl/PermissionFactory.cjs.map +1 -1
  352. package/dist/production/src/acl/PermissionFactory.js +29 -15
  353. package/dist/production/src/acl/PermissionFactory.js.map +1 -1
  354. package/dist/production/src/acl/PredicateFactory.cjs +33 -13
  355. package/dist/production/src/acl/PredicateFactory.cjs.map +1 -1
  356. package/dist/production/src/acl/PredicateFactory.js +33 -13
  357. package/dist/production/src/acl/PredicateFactory.js.map +1 -1
  358. package/dist/production/src/acl/PredicatesInjector.cjs +105 -13
  359. package/dist/production/src/acl/PredicatesInjector.cjs.map +1 -1
  360. package/dist/production/src/acl/PredicatesInjector.js +105 -13
  361. package/dist/production/src/acl/PredicatesInjector.js.map +1 -1
  362. package/dist/production/src/acl/VariableInjector.cjs.map +1 -1
  363. package/dist/production/src/acl/VariableInjector.js.map +1 -1
  364. package/dist/production/src/acl/VariableUtils.cjs.map +1 -1
  365. package/dist/production/src/acl/VariableUtils.js.map +1 -1
  366. package/dist/production/src/exception.cjs.map +1 -1
  367. package/dist/production/src/exception.js.map +1 -1
  368. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.cjs.map +1 -1
  369. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.js.map +1 -1
  370. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.cjs.map +1 -1
  371. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js.map +1 -1
  372. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs +4 -4
  373. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs.map +1 -1
  374. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js +4 -4
  375. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js.map +1 -1
  376. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.cjs.map +1 -1
  377. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.js.map +1 -1
  378. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.cjs.map +1 -1
  379. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js.map +1 -1
  380. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.cjs.map +1 -1
  381. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.js.map +1 -1
  382. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.cjs.map +1 -1
  383. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.js.map +1 -1
  384. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.cjs.map +1 -1
  385. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.js.map +1 -1
  386. package/dist/production/src/input-validation/ColumnValueResolver.cjs.map +1 -1
  387. package/dist/production/src/input-validation/ColumnValueResolver.js.map +1 -1
  388. package/dist/production/src/input-validation/EntityRulesResolver.cjs.map +1 -1
  389. package/dist/production/src/input-validation/EntityRulesResolver.js.map +1 -1
  390. package/dist/production/src/input-validation/QueryAstFactory.cjs.map +1 -1
  391. package/dist/production/src/input-validation/QueryAstFactory.js.map +1 -1
  392. package/dist/production/src/input-validation/ValidationContext.cjs.map +1 -1
  393. package/dist/production/src/input-validation/ValidationContext.js.map +1 -1
  394. package/dist/production/src/input-validation/ValidationDataSelector.cjs.map +1 -1
  395. package/dist/production/src/input-validation/ValidationDataSelector.js.map +1 -1
  396. package/dist/production/src/input-validation/ValidationEvaluation.cjs.map +1 -1
  397. package/dist/production/src/input-validation/ValidationEvaluation.js.map +1 -1
  398. package/dist/production/src/input-validation/ValidationPath.cjs.map +1 -1
  399. package/dist/production/src/input-validation/ValidationPath.js.map +1 -1
  400. package/dist/production/src/input-validation/dependencies/DependencyCollector.cjs +3 -3
  401. package/dist/production/src/input-validation/dependencies/DependencyCollector.cjs.map +1 -1
  402. package/dist/production/src/input-validation/dependencies/DependencyCollector.js +3 -3
  403. package/dist/production/src/input-validation/dependencies/DependencyCollector.js.map +1 -1
  404. package/dist/production/src/input-validation/dependencies/DependencyMerger.cjs.map +1 -1
  405. package/dist/production/src/input-validation/dependencies/DependencyMerger.js.map +1 -1
  406. package/dist/production/src/input-validation/preValidation/CreateInputPreValidationProcessor.cjs.map +1 -1
  407. package/dist/production/src/input-validation/preValidation/CreateInputPreValidationProcessor.js.map +1 -1
  408. package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs +2 -4
  409. package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
  410. package/dist/production/src/input-validation/preValidation/InputPreValidator.js +2 -4
  411. package/dist/production/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
  412. package/dist/production/src/input-validation/preValidation/UpdateInputPreValidationProcessor.cjs.map +1 -1
  413. package/dist/production/src/input-validation/preValidation/UpdateInputPreValidationProcessor.js.map +1 -1
  414. package/dist/production/src/inputProcessing/CreateInputVisitor.cjs +6 -4
  415. package/dist/production/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
  416. package/dist/production/src/inputProcessing/CreateInputVisitor.js +6 -4
  417. package/dist/production/src/inputProcessing/CreateInputVisitor.js.map +1 -1
  418. package/dist/production/src/inputProcessing/FieldNode.cjs.map +1 -1
  419. package/dist/production/src/inputProcessing/FieldNode.js.map +1 -1
  420. package/dist/production/src/inputProcessing/ObjectNode.cjs.map +1 -1
  421. package/dist/production/src/inputProcessing/ObjectNode.js.map +1 -1
  422. package/dist/production/src/inputProcessing/UniqueWhereExpander.cjs.map +1 -1
  423. package/dist/production/src/inputProcessing/UniqueWhereExpander.js.map +1 -1
  424. package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs +7 -5
  425. package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
  426. package/dist/production/src/inputProcessing/UpdateInputVisitor.js +7 -5
  427. package/dist/production/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  428. package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
  429. package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.js.map +1 -1
  430. package/dist/production/src/introspection/IntrospectionSchemaFactory.cjs.map +1 -1
  431. package/dist/production/src/introspection/IntrospectionSchemaFactory.js.map +1 -1
  432. package/dist/production/src/introspection/content-schema.types.cjs.map +1 -1
  433. package/dist/production/src/introspection/content-schema.types.js.map +1 -1
  434. package/dist/production/src/introspection/introspection.schema.cjs.map +1 -1
  435. package/dist/production/src/introspection/introspection.schema.js.map +1 -1
  436. package/dist/production/src/mapper/CheckedPrimary.cjs.map +1 -1
  437. package/dist/production/src/mapper/CheckedPrimary.js.map +1 -1
  438. package/dist/production/src/mapper/ColumnValue.cjs.map +1 -1
  439. package/dist/production/src/mapper/ColumnValue.js.map +1 -1
  440. package/dist/production/src/mapper/ErrorUtils.cjs.map +1 -1
  441. package/dist/production/src/mapper/ErrorUtils.js +1 -1
  442. package/dist/production/src/mapper/ErrorUtils.js.map +1 -1
  443. package/dist/production/src/mapper/EventManager.cjs.map +1 -1
  444. package/dist/production/src/mapper/EventManager.js.map +1 -1
  445. package/dist/production/src/mapper/JunctionTableManager.cjs +16 -2
  446. package/dist/production/src/mapper/JunctionTableManager.cjs.map +1 -1
  447. package/dist/production/src/mapper/JunctionTableManager.js +17 -3
  448. package/dist/production/src/mapper/JunctionTableManager.js.map +1 -1
  449. package/dist/production/src/mapper/Mapper.cjs +8 -7
  450. package/dist/production/src/mapper/Mapper.cjs.map +1 -1
  451. package/dist/production/src/mapper/Mapper.js +8 -7
  452. package/dist/production/src/mapper/Mapper.js.map +1 -1
  453. package/dist/production/src/mapper/MapperFactory.cjs.map +1 -1
  454. package/dist/production/src/mapper/MapperFactory.js.map +1 -1
  455. package/dist/production/src/mapper/MutationProcessorHelper.cjs.map +1 -1
  456. package/dist/production/src/mapper/MutationProcessorHelper.js.map +1 -1
  457. package/dist/production/src/mapper/Result.cjs +1 -1
  458. package/dist/production/src/mapper/Result.cjs.map +1 -1
  459. package/dist/production/src/mapper/Result.js +1 -1
  460. package/dist/production/src/mapper/Result.js.map +1 -1
  461. package/dist/production/src/mapper/delete/DeleteExecutor.cjs.map +1 -1
  462. package/dist/production/src/mapper/delete/DeleteExecutor.js.map +1 -1
  463. package/dist/production/src/mapper/delete/DeleteState.cjs.map +1 -1
  464. package/dist/production/src/mapper/delete/DeleteState.js.map +1 -1
  465. package/dist/production/src/mapper/delete/DeletedEntitiesStorage.cjs.map +1 -1
  466. package/dist/production/src/mapper/delete/DeletedEntitiesStorage.js.map +1 -1
  467. package/dist/production/src/mapper/delete/helpers.cjs.map +1 -1
  468. package/dist/production/src/mapper/delete/helpers.js.map +1 -1
  469. package/dist/production/src/mapper/insert/InsertBuilder.cjs +27 -31
  470. package/dist/production/src/mapper/insert/InsertBuilder.cjs.map +1 -1
  471. package/dist/production/src/mapper/insert/InsertBuilder.js +27 -31
  472. package/dist/production/src/mapper/insert/InsertBuilder.js.map +1 -1
  473. package/dist/production/src/mapper/insert/InsertBuilderFactory.cjs.map +1 -1
  474. package/dist/production/src/mapper/insert/InsertBuilderFactory.js.map +1 -1
  475. package/dist/production/src/mapper/insert/Inserter.cjs.map +1 -1
  476. package/dist/production/src/mapper/insert/Inserter.js.map +1 -1
  477. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
  478. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  479. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -1
  480. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -1
  481. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -1
  482. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -1
  483. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -1
  484. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -1
  485. package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -1
  486. package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -1
  487. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -1
  488. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -1
  489. package/dist/production/src/mapper/select/ConditionBuilder.cjs +7 -5
  490. package/dist/production/src/mapper/select/ConditionBuilder.cjs.map +1 -1
  491. package/dist/production/src/mapper/select/ConditionBuilder.js +8 -6
  492. package/dist/production/src/mapper/select/ConditionBuilder.js.map +1 -1
  493. package/dist/production/src/mapper/select/JoinBuilder.cjs.map +1 -1
  494. package/dist/production/src/mapper/select/JoinBuilder.js.map +1 -1
  495. package/dist/production/src/mapper/select/JoinVisitor.cjs.map +1 -1
  496. package/dist/production/src/mapper/select/JoinVisitor.js.map +1 -1
  497. package/dist/production/src/mapper/select/OrderByBuilder.cjs.map +1 -1
  498. package/dist/production/src/mapper/select/OrderByBuilder.js.map +1 -1
  499. package/dist/production/src/mapper/select/OrderByHelper.cjs.map +1 -1
  500. package/dist/production/src/mapper/select/OrderByHelper.js.map +1 -1
  501. package/dist/production/src/mapper/select/Path.cjs.map +1 -1
  502. package/dist/production/src/mapper/select/Path.js.map +1 -1
  503. package/dist/production/src/mapper/select/RelationFetcher.cjs.map +1 -1
  504. package/dist/production/src/mapper/select/RelationFetcher.js.map +1 -1
  505. package/dist/production/src/mapper/select/SelectBuilder.cjs +7 -10
  506. package/dist/production/src/mapper/select/SelectBuilder.cjs.map +1 -1
  507. package/dist/production/src/mapper/select/SelectBuilder.js +7 -10
  508. package/dist/production/src/mapper/select/SelectBuilder.js.map +1 -1
  509. package/dist/production/src/mapper/select/SelectHydrator.cjs +1 -1
  510. package/dist/production/src/mapper/select/SelectHydrator.cjs.map +1 -1
  511. package/dist/production/src/mapper/select/SelectHydrator.js +1 -1
  512. package/dist/production/src/mapper/select/SelectHydrator.js.map +1 -1
  513. package/dist/production/src/mapper/select/WhereBuilder.cjs +20 -18
  514. package/dist/production/src/mapper/select/WhereBuilder.cjs.map +1 -1
  515. package/dist/production/src/mapper/select/WhereBuilder.js +20 -18
  516. package/dist/production/src/mapper/select/WhereBuilder.js.map +1 -1
  517. package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs +3 -2
  518. package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  519. package/dist/production/src/mapper/select/handlers/FieldsVisitor.js +3 -2
  520. package/dist/production/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  521. package/dist/production/src/mapper/select/handlers/FieldsVisitorFactory.cjs.map +1 -1
  522. package/dist/production/src/mapper/select/handlers/FieldsVisitorFactory.js.map +1 -1
  523. package/dist/production/src/mapper/select/handlers/MetaHandler.cjs.map +1 -1
  524. package/dist/production/src/mapper/select/handlers/MetaHandler.js.map +1 -1
  525. package/dist/production/src/mapper/select/optimizer/ConditionOptimizer.cjs.map +1 -1
  526. package/dist/production/src/mapper/select/optimizer/ConditionOptimizer.js.map +1 -1
  527. package/dist/production/src/mapper/select/optimizer/WhereOptimizer.cjs +7 -3
  528. package/dist/production/src/mapper/select/optimizer/WhereOptimizer.cjs.map +1 -1
  529. package/dist/production/src/mapper/select/optimizer/WhereOptimizer.js +7 -3
  530. package/dist/production/src/mapper/select/optimizer/WhereOptimizer.js.map +1 -1
  531. package/dist/production/src/mapper/select/optimizer/WhereReplacer.cjs.map +1 -1
  532. package/dist/production/src/mapper/select/optimizer/WhereReplacer.js.map +1 -1
  533. package/dist/production/src/mapper/select/optimizer/helpers.cjs.map +1 -1
  534. package/dist/production/src/mapper/select/optimizer/helpers.js.map +1 -1
  535. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
  536. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
  537. package/dist/production/src/mapper/update/UpdateBuilder.cjs +64 -68
  538. package/dist/production/src/mapper/update/UpdateBuilder.cjs.map +1 -1
  539. package/dist/production/src/mapper/update/UpdateBuilder.js +64 -68
  540. package/dist/production/src/mapper/update/UpdateBuilder.js.map +1 -1
  541. package/dist/production/src/mapper/update/UpdateBuilderFactory.cjs.map +1 -1
  542. package/dist/production/src/mapper/update/UpdateBuilderFactory.js.map +1 -1
  543. package/dist/production/src/mapper/update/Updater.cjs +15 -3
  544. package/dist/production/src/mapper/update/Updater.cjs.map +1 -1
  545. package/dist/production/src/mapper/update/Updater.js +16 -4
  546. package/dist/production/src/mapper/update/Updater.js.map +1 -1
  547. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -1
  548. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -1
  549. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -1
  550. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -1
  551. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -1
  552. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -1
  553. package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -1
  554. package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -1
  555. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -1
  556. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -1
  557. package/dist/production/src/resolvers/GraphQlQueryAstFactory.cjs.map +1 -1
  558. package/dist/production/src/resolvers/GraphQlQueryAstFactory.js.map +1 -1
  559. package/dist/production/src/resolvers/MutationResolver.cjs.map +1 -1
  560. package/dist/production/src/resolvers/MutationResolver.js.map +1 -1
  561. package/dist/production/src/resolvers/ReadHelpers.cjs.map +1 -1
  562. package/dist/production/src/resolvers/ReadHelpers.js.map +1 -1
  563. package/dist/production/src/resolvers/ReadResolver.cjs.map +1 -1
  564. package/dist/production/src/resolvers/ReadResolver.js.map +1 -1
  565. package/dist/production/src/resolvers/RefreshViewResolver.cjs.map +1 -1
  566. package/dist/production/src/resolvers/RefreshViewResolver.js.map +1 -1
  567. package/dist/production/src/resolvers/ValidationResolver.cjs.map +1 -1
  568. package/dist/production/src/resolvers/ValidationResolver.js.map +1 -1
  569. package/dist/production/src/schema/ColumnTypeResolver.cjs.map +1 -1
  570. package/dist/production/src/schema/ColumnTypeResolver.js.map +1 -1
  571. package/dist/production/src/schema/ConditionTypeProvider.cjs +2 -0
  572. package/dist/production/src/schema/ConditionTypeProvider.cjs.map +1 -1
  573. package/dist/production/src/schema/ConditionTypeProvider.js +3 -1
  574. package/dist/production/src/schema/ConditionTypeProvider.js.map +1 -1
  575. package/dist/production/src/schema/CustomTypesProvider.cjs.map +1 -1
  576. package/dist/production/src/schema/CustomTypesProvider.js.map +1 -1
  577. package/dist/production/src/schema/EntityTypeProvider.cjs +1 -3
  578. package/dist/production/src/schema/EntityTypeProvider.cjs.map +1 -1
  579. package/dist/production/src/schema/EntityTypeProvider.js +1 -3
  580. package/dist/production/src/schema/EntityTypeProvider.js.map +1 -1
  581. package/dist/production/src/schema/EnumsProvider.cjs.map +1 -1
  582. package/dist/production/src/schema/EnumsProvider.js.map +1 -1
  583. package/dist/production/src/schema/FieldAccessVisitor.cjs.map +1 -1
  584. package/dist/production/src/schema/FieldAccessVisitor.js.map +1 -1
  585. package/dist/production/src/schema/GraphQlSchemaBuilder.cjs +5 -11
  586. package/dist/production/src/schema/GraphQlSchemaBuilder.cjs.map +1 -1
  587. package/dist/production/src/schema/GraphQlSchemaBuilder.js +5 -11
  588. package/dist/production/src/schema/GraphQlSchemaBuilder.js.map +1 -1
  589. package/dist/production/src/schema/GraphQlSchemaBuilderFactory.cjs +103 -3
  590. package/dist/production/src/schema/GraphQlSchemaBuilderFactory.cjs.map +1 -1
  591. package/dist/production/src/schema/GraphQlSchemaBuilderFactory.js +103 -3
  592. package/dist/production/src/schema/GraphQlSchemaBuilderFactory.js.map +1 -1
  593. package/dist/production/src/schema/MutationProvider.cjs.map +1 -1
  594. package/dist/production/src/schema/MutationProvider.js +2 -2
  595. package/dist/production/src/schema/MutationProvider.js.map +1 -1
  596. package/dist/production/src/schema/OperationExtension.cjs +0 -1
  597. package/dist/production/src/schema/OperationExtension.cjs.map +1 -1
  598. package/dist/production/src/schema/OperationExtension.js +0 -1
  599. package/dist/production/src/schema/OperationExtension.js.map +1 -1
  600. package/dist/production/src/schema/OrderByTypeProvider.cjs.map +1 -1
  601. package/dist/production/src/schema/OrderByTypeProvider.js +1 -1
  602. package/dist/production/src/schema/OrderByTypeProvider.js.map +1 -1
  603. package/dist/production/src/schema/PaginatedFieldConfigFactory.cjs.map +1 -1
  604. package/dist/production/src/schema/PaginatedFieldConfigFactory.js +1 -1
  605. package/dist/production/src/schema/PaginatedFieldConfigFactory.js.map +1 -1
  606. package/dist/production/src/schema/QueryProvider.cjs.map +1 -1
  607. package/dist/production/src/schema/QueryProvider.js +2 -2
  608. package/dist/production/src/schema/QueryProvider.js.map +1 -1
  609. package/dist/production/src/schema/RefreshViewMutationProvider.cjs.map +1 -1
  610. package/dist/production/src/schema/RefreshViewMutationProvider.js.map +1 -1
  611. package/dist/production/src/schema/ResultSchemaTypeProvider.cjs.map +1 -1
  612. package/dist/production/src/schema/ResultSchemaTypeProvider.js.map +1 -1
  613. package/dist/production/src/schema/ValidationQueriesProvider.cjs +2 -8
  614. package/dist/production/src/schema/ValidationQueriesProvider.cjs.map +1 -1
  615. package/dist/production/src/schema/ValidationQueriesProvider.js +2 -8
  616. package/dist/production/src/schema/ValidationQueriesProvider.js.map +1 -1
  617. package/dist/production/src/schema/WhereTypeProvider.cjs +1 -3
  618. package/dist/production/src/schema/WhereTypeProvider.cjs.map +1 -1
  619. package/dist/production/src/schema/WhereTypeProvider.js +1 -3
  620. package/dist/production/src/schema/WhereTypeProvider.js.map +1 -1
  621. package/dist/production/src/schema/entities/FieldArgsVisitor.cjs.map +1 -1
  622. package/dist/production/src/schema/entities/FieldArgsVisitor.js.map +1 -1
  623. package/dist/production/src/schema/entities/FieldTypeVisitor.cjs.map +1 -1
  624. package/dist/production/src/schema/entities/FieldTypeVisitor.js.map +1 -1
  625. package/dist/production/src/schema/mutations/ConnectOrCreateRelationInputProvider.cjs.map +1 -1
  626. package/dist/production/src/schema/mutations/ConnectOrCreateRelationInputProvider.js.map +1 -1
  627. package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.cjs.map +1 -1
  628. package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
  629. package/dist/production/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
  630. package/dist/production/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  631. package/dist/production/src/schema/mutations/CreateEntityRelationInputFieldVisitor.cjs.map +1 -1
  632. package/dist/production/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js.map +1 -1
  633. package/dist/production/src/schema/mutations/CreateEntityRelationInputProvider.cjs.map +1 -1
  634. package/dist/production/src/schema/mutations/CreateEntityRelationInputProvider.js.map +1 -1
  635. package/dist/production/src/schema/mutations/EntityInputProvider.cjs.map +1 -1
  636. package/dist/production/src/schema/mutations/EntityInputProvider.js.map +1 -1
  637. package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs.map +1 -1
  638. package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
  639. package/dist/production/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
  640. package/dist/production/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  641. package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
  642. package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +1 -1
  643. package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
  644. package/dist/production/src/schema/mutations/UpdateEntityRelationInputProvider.cjs.map +1 -1
  645. package/dist/production/src/schema/mutations/UpdateEntityRelationInputProvider.js.map +1 -1
  646. package/dist/production/src/schema/utils.cjs.map +1 -1
  647. package/dist/production/src/schema/utils.js.map +1 -1
  648. package/dist/production/src/utils/Mutex.cjs.map +1 -1
  649. package/dist/production/src/utils/Mutex.js.map +1 -1
  650. package/dist/production/src/utils/ResolveInfoUtils.cjs.map +1 -1
  651. package/dist/production/src/utils/ResolveInfoUtils.js.map +1 -1
  652. package/dist/production/src/utils/accessor.cjs.map +1 -1
  653. package/dist/production/src/utils/accessor.js.map +1 -1
  654. package/dist/production/src/utils/assertNever.cjs.map +1 -1
  655. package/dist/production/src/utils/assertNever.js.map +1 -1
  656. package/dist/production/src/utils/isIt.cjs.map +1 -1
  657. package/dist/production/src/utils/isIt.js.map +1 -1
  658. package/dist/production/src/utils/object.cjs.map +1 -1
  659. package/dist/production/src/utils/object.js.map +1 -1
  660. package/dist/production/src/utils/paginationUtils.cjs.map +1 -1
  661. package/dist/production/src/utils/paginationUtils.js.map +1 -1
  662. package/dist/production/src/utils/promises.cjs.map +1 -1
  663. package/dist/production/src/utils/promises.js.map +1 -1
  664. package/dist/production/src/utils/singletonFactory.cjs.map +1 -1
  665. package/dist/production/src/utils/singletonFactory.js.map +1 -1
  666. package/dist/production/src/utils/strings.cjs.map +1 -1
  667. package/dist/production/src/utils/strings.js.map +1 -1
  668. package/dist/production/src/utils/tuple.cjs.map +1 -1
  669. package/dist/production/src/utils/tuple.js.map +1 -1
  670. package/dist/production/src/utils/uniqueWhereFields.cjs.map +1 -1
  671. package/dist/production/src/utils/uniqueWhereFields.js.map +1 -1
  672. package/dist/production/src/utils/viewComputedId.cjs.map +1 -1
  673. package/dist/production/src/utils/viewComputedId.js.map +1 -1
  674. package/dist/tests/cases/integration/graphQlRequests/insert/subOperationFail.test.d.ts +2 -0
  675. package/dist/tests/cases/integration/graphQlRequests/insert/subOperationFail.test.d.ts.map +1 -0
  676. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/schema.d.ts.map +1 -1
  677. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/schema.d.ts.map +1 -1
  678. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/schema.d.ts.map +1 -1
  679. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/schema.d.ts.map +1 -1
  680. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.d.ts.map +1 -1
  681. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.d.ts.map +1 -1
  682. package/dist/tests/cases/integration/graphQlRequests/validation/conditions.test.d.ts.map +1 -1
  683. package/dist/tests/cases/integration/graphQlRequests/validation/requiredWhen.test.d.ts.map +1 -1
  684. package/dist/tests/cases/integration/graphQlRequests/validation/utils.d.ts.map +1 -1
  685. package/dist/tests/src/test.d.ts.map +1 -1
  686. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  687. package/dist/types/ExecutionContainer.d.ts +32 -3
  688. package/dist/types/ExecutionContainer.d.ts.map +1 -1
  689. package/dist/types/acl/Authorizator.d.ts.map +1 -1
  690. package/dist/types/acl/EvaluatedPredicateReplacer.d.ts.map +1 -1
  691. package/dist/types/acl/PermissionFactory.d.ts +6 -0
  692. package/dist/types/acl/PermissionFactory.d.ts.map +1 -1
  693. package/dist/types/acl/PredicateFactory.d.ts +17 -6
  694. package/dist/types/acl/PredicateFactory.d.ts.map +1 -1
  695. package/dist/types/acl/PredicatesInjector.d.ts +15 -1
  696. package/dist/types/acl/PredicatesInjector.d.ts.map +1 -1
  697. package/dist/types/acl/VariableUtils.d.ts.map +1 -1
  698. package/dist/types/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.d.ts.map +1 -1
  699. package/dist/types/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.d.ts.map +1 -1
  700. package/dist/types/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.d.ts.map +1 -1
  701. package/dist/types/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.d.ts.map +1 -1
  702. package/dist/types/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.d.ts.map +1 -1
  703. package/dist/types/index.d.ts +1 -1
  704. package/dist/types/index.d.ts.map +1 -1
  705. package/dist/types/input-validation/preValidation/InputPreValidator.d.ts.map +1 -1
  706. package/dist/types/inputProcessing/CreateInputProcessor.d.ts +1 -1
  707. package/dist/types/inputProcessing/CreateInputProcessor.d.ts.map +1 -1
  708. package/dist/types/inputProcessing/CreateInputVisitor.d.ts.map +1 -1
  709. package/dist/types/inputProcessing/UpdateInputProcessor.d.ts +1 -1
  710. package/dist/types/inputProcessing/UpdateInputProcessor.d.ts.map +1 -1
  711. package/dist/types/inputProcessing/UpdateInputVisitor.d.ts.map +1 -1
  712. package/dist/types/introspection/IntrospectionSchemaFactory.d.ts.map +1 -1
  713. package/dist/types/introspection/introspection.schema.d.ts.map +1 -1
  714. package/dist/types/mapper/ColumnValue.d.ts.map +1 -1
  715. package/dist/types/mapper/ErrorUtils.d.ts.map +1 -1
  716. package/dist/types/mapper/EventManager.d.ts.map +1 -1
  717. package/dist/types/mapper/JunctionTableManager.d.ts.map +1 -1
  718. package/dist/types/mapper/Mapper.d.ts.map +1 -1
  719. package/dist/types/mapper/MapperFactory.d.ts.map +1 -1
  720. package/dist/types/mapper/Result.d.ts +2 -2
  721. package/dist/types/mapper/Result.d.ts.map +1 -1
  722. package/dist/types/mapper/delete/DeleteExecutor.d.ts.map +1 -1
  723. package/dist/types/mapper/delete/DeleteState.d.ts.map +1 -1
  724. package/dist/types/mapper/delete/helpers.d.ts.map +1 -1
  725. package/dist/types/mapper/insert/InsertBuilder.d.ts.map +1 -1
  726. package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts.map +1 -1
  727. package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts +2 -2
  728. package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts.map +1 -1
  729. package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts +2 -2
  730. package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts.map +1 -1
  731. package/dist/types/mapper/insert/relations/OneHasManyCreateInputProcessor.d.ts.map +1 -1
  732. package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts +1 -1
  733. package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +1 -1
  734. package/dist/types/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +1 -1
  735. package/dist/types/mapper/select/ConditionBuilder.d.ts.map +1 -1
  736. package/dist/types/mapper/select/JoinBuilder.d.ts.map +1 -1
  737. package/dist/types/mapper/select/Path.d.ts +0 -1
  738. package/dist/types/mapper/select/Path.d.ts.map +1 -1
  739. package/dist/types/mapper/select/RelationFetcher.d.ts.map +1 -1
  740. package/dist/types/mapper/select/SelectBuilder.d.ts.map +1 -1
  741. package/dist/types/mapper/select/SelectExecutionHandler.d.ts.map +1 -1
  742. package/dist/types/mapper/select/WhereBuilder.d.ts.map +1 -1
  743. package/dist/types/mapper/select/handlers/FieldsVisitor.d.ts.map +1 -1
  744. package/dist/types/mapper/select/optimizer/ConditionOptimizer.d.ts.map +1 -1
  745. package/dist/types/mapper/select/optimizer/WhereOptimizer.d.ts +6 -1
  746. package/dist/types/mapper/select/optimizer/WhereOptimizer.d.ts.map +1 -1
  747. package/dist/types/mapper/select/optimizer/WhereReplacer.d.ts.map +1 -1
  748. package/dist/types/mapper/types.d.ts +1 -1
  749. package/dist/types/mapper/types.d.ts.map +1 -1
  750. package/dist/types/mapper/update/SqlUpdateInputProcessor.d.ts.map +1 -1
  751. package/dist/types/mapper/update/UpdateBuilder.d.ts.map +1 -1
  752. package/dist/types/mapper/update/Updater.d.ts +1 -5
  753. package/dist/types/mapper/update/Updater.d.ts.map +1 -1
  754. package/dist/types/mapper/update/relations/ManyHasManyUpdateInputProcessor.d.ts +7 -7
  755. package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts +5 -5
  756. package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts.map +1 -1
  757. package/dist/types/mapper/update/relations/OneHasManyUpdateInputProcessor.d.ts +7 -7
  758. package/dist/types/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +1 -1
  759. package/dist/types/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.d.ts +3 -3
  760. package/dist/types/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +1 -1
  761. package/dist/types/resolvers/GraphQlQueryAstFactory.d.ts.map +1 -1
  762. package/dist/types/resolvers/MutationResolver.d.ts.map +1 -1
  763. package/dist/types/schema/ConditionTypeProvider.d.ts.map +1 -1
  764. package/dist/types/schema/CustomTypesProvider.d.ts.map +1 -1
  765. package/dist/types/schema/EntityTypeProvider.d.ts.map +1 -1
  766. package/dist/types/schema/GraphQlSchemaBuilder.d.ts.map +1 -1
  767. package/dist/types/schema/GraphQlSchemaBuilderFactory.d.ts +0 -1
  768. package/dist/types/schema/GraphQlSchemaBuilderFactory.d.ts.map +1 -1
  769. package/dist/types/schema/MutationProvider.d.ts.map +1 -1
  770. package/dist/types/schema/OperationExtension.d.ts +1 -1
  771. package/dist/types/schema/OperationExtension.d.ts.map +1 -1
  772. package/dist/types/schema/ValidationQueriesProvider.d.ts.map +1 -1
  773. package/dist/types/schema/WhereTypeProvider.d.ts.map +1 -1
  774. package/dist/types/schema/entities/FieldArgsVisitor.d.ts.map +1 -1
  775. package/dist/types/schema/mutations/ConnectOrCreateRelationInputProvider.d.ts.map +1 -1
  776. package/dist/types/schema/mutations/CreateEntityInputFieldVisitor.d.ts.map +1 -1
  777. package/dist/types/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.d.ts.map +1 -1
  778. package/dist/types/schema/mutations/CreateEntityRelationInputFieldVisitor.d.ts.map +1 -1
  779. package/dist/types/schema/mutations/EntityInputProvider.d.ts.map +1 -1
  780. package/dist/types/schema/mutations/UpdateEntityInputFieldVisitor.d.ts +1 -1
  781. package/dist/types/schema/mutations/UpdateEntityInputFieldVisitor.d.ts.map +1 -1
  782. package/dist/types/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.d.ts.map +1 -1
  783. package/dist/types/schema/mutations/UpdateEntityRelationInputFieldVisitor.d.ts.map +1 -1
  784. package/dist/types/tsconfig.tsbuildinfo +1 -1
  785. package/dist/types/utils/object.d.ts.map +1 -1
  786. package/graphql.codegen.yml +1 -1
  787. package/package.json +20 -16
  788. package/src/ExecutionContainer.ts +191 -123
  789. package/src/acl/Authorizator.ts +5 -3
  790. package/src/acl/EvaluatedPredicateReplacer.ts +0 -5
  791. package/src/acl/PermissionFactory.ts +56 -24
  792. package/src/acl/PredicateFactory.ts +38 -10
  793. package/src/acl/PredicatesInjector.ts +169 -13
  794. package/src/acl/VariableUtils.ts +0 -2
  795. package/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.ts +0 -2
  796. package/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.ts +9 -13
  797. package/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.ts +3 -4
  798. package/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.ts +2 -2
  799. package/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.ts +2 -5
  800. package/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.ts +3 -4
  801. package/src/index.ts +8 -7
  802. package/src/input-validation/ValidationEvaluation.ts +3 -6
  803. package/src/input-validation/dependencies/DependencyCollector.ts +3 -3
  804. package/src/input-validation/preValidation/InputPreValidator.ts +6 -8
  805. package/src/inputProcessing/CreateInputProcessor.ts +1 -2
  806. package/src/inputProcessing/CreateInputVisitor.ts +7 -8
  807. package/src/inputProcessing/UpdateInputProcessor.ts +1 -2
  808. package/src/inputProcessing/UpdateInputVisitor.ts +9 -10
  809. package/src/introspection/IntrospectionSchemaFactory.ts +3 -4
  810. package/src/introspection/content-schema.types.ts +3 -3
  811. package/src/introspection/introspection.schema.ts +0 -2
  812. package/src/mapper/ColumnValue.ts +0 -1
  813. package/src/mapper/ErrorUtils.ts +19 -7
  814. package/src/mapper/EventManager.ts +0 -2
  815. package/src/mapper/JunctionTableManager.ts +19 -17
  816. package/src/mapper/Mapper.ts +13 -6
  817. package/src/mapper/MapperFactory.ts +0 -1
  818. package/src/mapper/Result.ts +2 -2
  819. package/src/mapper/delete/DeleteExecutor.ts +6 -7
  820. package/src/mapper/delete/DeleteState.ts +0 -1
  821. package/src/mapper/delete/helpers.ts +2 -3
  822. package/src/mapper/insert/InsertBuilder.ts +32 -35
  823. package/src/mapper/insert/Inserter.ts +0 -1
  824. package/src/mapper/insert/SqlCreateInputProcessor.ts +3 -6
  825. package/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.ts +0 -1
  826. package/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.ts +1 -2
  827. package/src/mapper/insert/relations/OneHasManyCreateInputProcessor.ts +0 -1
  828. package/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.ts +1 -4
  829. package/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.ts +2 -9
  830. package/src/mapper/select/ConditionBuilder.ts +19 -13
  831. package/src/mapper/select/JoinBuilder.ts +4 -2
  832. package/src/mapper/select/OrderByHelper.ts +2 -2
  833. package/src/mapper/select/Path.ts +0 -2
  834. package/src/mapper/select/RelationFetcher.ts +31 -26
  835. package/src/mapper/select/SelectBuilder.ts +16 -14
  836. package/src/mapper/select/SelectExecutionHandler.ts +30 -28
  837. package/src/mapper/select/SelectHydrator.ts +1 -1
  838. package/src/mapper/select/WhereBuilder.ts +49 -43
  839. package/src/mapper/select/handlers/FieldsVisitor.ts +3 -3
  840. package/src/mapper/select/optimizer/ConditionOptimizer.ts +0 -7
  841. package/src/mapper/select/optimizer/WhereOptimizer.ts +37 -15
  842. package/src/mapper/select/optimizer/WhereReplacer.ts +6 -3
  843. package/src/mapper/select/optimizer/helpers.ts +1 -1
  844. package/src/mapper/types.ts +19 -18
  845. package/src/mapper/update/SqlUpdateInputProcessor.ts +1 -1
  846. package/src/mapper/update/UpdateBuilder.ts +77 -81
  847. package/src/mapper/update/Updater.ts +23 -5
  848. package/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.ts +2 -4
  849. package/src/mapper/update/relations/OneHasManyUpdateInputProcessor.ts +2 -2
  850. package/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.ts +7 -4
  851. package/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.ts +23 -9
  852. package/src/resolvers/GraphQlQueryAstFactory.ts +0 -1
  853. package/src/resolvers/MutationResolver.ts +13 -15
  854. package/src/schema/ColumnTypeResolver.ts +1 -1
  855. package/src/schema/ConditionTypeProvider.ts +3 -1
  856. package/src/schema/CustomTypesProvider.ts +1 -2
  857. package/src/schema/EntityTypeProvider.ts +1 -3
  858. package/src/schema/GraphQlSchemaBuilder.ts +8 -7
  859. package/src/schema/GraphQlSchemaBuilderFactory.ts +150 -68
  860. package/src/schema/MutationProvider.ts +5 -10
  861. package/src/schema/OperationExtension.ts +1 -2
  862. package/src/schema/ValidationQueriesProvider.ts +2 -6
  863. package/src/schema/WhereTypeProvider.ts +1 -3
  864. package/src/schema/entities/FieldArgsVisitor.ts +5 -4
  865. package/src/schema/mutations/ConnectOrCreateRelationInputProvider.ts +0 -2
  866. package/src/schema/mutations/CreateEntityInputFieldVisitor.ts +3 -4
  867. package/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.ts +3 -4
  868. package/src/schema/mutations/CreateEntityRelationInputFieldVisitor.ts +10 -10
  869. package/src/schema/mutations/EntityInputProvider.ts +1 -7
  870. package/src/schema/mutations/UpdateEntityInputFieldVisitor.ts +3 -4
  871. package/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.ts +3 -4
  872. package/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts +6 -13
  873. package/src/utils/object.ts +3 -2
  874. package/tests/cases/bugs/bug-filter-or.test.ts +1 -5
  875. package/tests/cases/bugs/bug-update-by-nested-unique.test.ts +3 -6
  876. package/tests/cases/bugs/bug102.test.ts +2 -9
  877. package/tests/cases/integration/graphQlRequests/delete/aclDelete.test.ts +2 -3
  878. package/tests/cases/integration/graphQlRequests/delete/additionalDeleteFilter.test.ts +1 -2
  879. package/tests/cases/integration/graphQlRequests/delete/cascadeDelete.test.ts +12 -19
  880. package/tests/cases/integration/graphQlRequests/delete/deleteById.test.ts +0 -2
  881. package/tests/cases/integration/graphQlRequests/delete/orphanRemoval.test.ts +4 -5
  882. package/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.ts +6 -13
  883. package/tests/cases/integration/graphQlRequests/delete/setNullOnDelete.test.ts +9 -13
  884. package/tests/cases/integration/graphQlRequests/insert/acl/setField.test.ts +0 -2
  885. package/tests/cases/integration/graphQlRequests/insert/aclInsert.test.ts +0 -1
  886. package/tests/cases/integration/graphQlRequests/insert/basicInsert.test.ts +0 -1
  887. package/tests/cases/integration/graphQlRequests/insert/insertCustomId.test.ts +0 -1
  888. package/tests/cases/integration/graphQlRequests/insert/jsonInsert.test.ts +2 -2
  889. package/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/create.test.ts +1 -3
  890. package/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/create.test.ts +1 -4
  891. package/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.ts +2 -10
  892. package/tests/cases/integration/graphQlRequests/insert/manyHasOne/create.test.ts +1 -5
  893. package/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.ts +3 -4
  894. package/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.ts +2 -5
  895. package/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/create.test.ts +1 -3
  896. package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/create.test.ts +1 -3
  897. package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/empty.test.ts +1 -3
  898. package/tests/cases/integration/graphQlRequests/insert/subOperationFail.test.ts +107 -0
  899. package/tests/cases/integration/graphQlRequests/insert/validation/toBeFixed.test.ts +1 -9
  900. package/tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.ts +0 -4
  901. package/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.ts +1 -4
  902. package/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.ts +0 -4
  903. package/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.ts +1 -6
  904. package/tests/cases/integration/graphQlRequests/query/acl/orPredicate.test.ts +0 -2
  905. package/tests/cases/integration/graphQlRequests/query/acl/predicateElimination.test.ts +676 -2
  906. package/tests/cases/integration/graphQlRequests/query/acl/relationAcl.test.ts +8 -11
  907. package/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.ts +2 -6
  908. package/tests/cases/integration/graphQlRequests/query/acl/sameRowAndFieldPredicate.test.ts +0 -2
  909. package/tests/cases/integration/graphQlRequests/query/filter/backReferencedFilter.test.ts +1 -4
  910. package/tests/cases/integration/graphQlRequests/query/filter/complexCondition.test.ts +0 -1
  911. package/tests/cases/integration/graphQlRequests/query/filter/composedFilter.test.ts +0 -1
  912. package/tests/cases/integration/graphQlRequests/query/filter/containsQuery.test.ts +0 -1
  913. package/tests/cases/integration/graphQlRequests/query/filter/manyHasManyOwnerRelation.test.ts +16 -18
  914. package/tests/cases/integration/graphQlRequests/query/filter/manyHasOneRelation.test.ts +0 -1
  915. package/tests/cases/integration/graphQlRequests/query/filter/oneHasManyRelation.test.ts +1 -3
  916. package/tests/cases/integration/graphQlRequests/query/formatting/dateFormat.test.ts +0 -1
  917. package/tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.ts +0 -1
  918. package/tests/cases/integration/graphQlRequests/query/graphqlFeatures/fragments.test.ts +6 -8
  919. package/tests/cases/integration/graphQlRequests/query/misc/aliasedType.test.ts +0 -1
  920. package/tests/cases/integration/graphQlRequests/query/misc/longAliasHash.test.ts +1 -3
  921. package/tests/cases/integration/graphQlRequests/query/misc/reducedHasMany.test.ts +2 -10
  922. package/tests/cases/integration/graphQlRequests/query/misc/transaction.test.ts +0 -2
  923. package/tests/cases/integration/graphQlRequests/query/pagination/hasManyLimit.test.ts +3 -10
  924. package/tests/cases/integration/graphQlRequests/query/pagination/paginate.test.ts +1 -3
  925. package/tests/cases/integration/graphQlRequests/query/pagination/paginateAliased.test.ts +1 -3
  926. package/tests/cases/integration/graphQlRequests/query/pagination/simpleLimit.test.ts +0 -1
  927. package/tests/cases/integration/graphQlRequests/query/relations/advanced.test.ts +3 -7
  928. package/tests/cases/integration/graphQlRequests/query/relations/manyHasManyInverse.test.ts +4 -9
  929. package/tests/cases/integration/graphQlRequests/query/relations/manyHasManyOwning.test.ts +5 -8
  930. package/tests/cases/integration/graphQlRequests/query/relations/manyHasOne.test.ts +0 -2
  931. package/tests/cases/integration/graphQlRequests/query/relations/oneHasMany.test.ts +2 -5
  932. package/tests/cases/integration/graphQlRequests/query/relations/oneHasOneInverse.test.ts +1 -3
  933. package/tests/cases/integration/graphQlRequests/query/relations/oneHasOneOwner.test.ts +1 -3
  934. package/tests/cases/integration/graphQlRequests/query/sorting/byRelations.test.ts +6 -8
  935. package/tests/cases/integration/graphQlRequests/query/sorting/defaultOrdering.test.ts +8 -8
  936. package/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.ts +0 -1
  937. package/tests/cases/integration/graphQlRequests/query/sorting/randomSort.test.ts +1 -5
  938. package/tests/cases/integration/graphQlRequests/query/sorting/sortNulls.test.ts +0 -1
  939. package/tests/cases/integration/graphQlRequests/query/sorting/sortedHasMany.test.ts +0 -1
  940. package/tests/cases/integration/graphQlRequests/query/unique/basicQueryById.test.ts +0 -1
  941. package/tests/cases/integration/graphQlRequests/query/unique/composedUnique.test.ts +2 -5
  942. package/tests/cases/integration/graphQlRequests/query/unique/oneHasManyUnique.test.ts +2 -5
  943. package/tests/cases/integration/graphQlRequests/query/unique/uniqueWithFilter.test.ts +0 -1
  944. package/tests/cases/integration/graphQlRequests/query/view/view.test.ts +0 -1
  945. package/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.ts +8 -11
  946. package/tests/cases/integration/graphQlRequests/update/additionalFilter.test.ts +53 -3
  947. package/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.ts +2 -3
  948. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/connect.test.ts +0 -1
  949. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/create.test.ts +0 -1
  950. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/delete.test.ts +0 -1
  951. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/disconnect.test.ts +0 -1
  952. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/schema.ts +1 -2
  953. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.ts +2 -2
  954. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.ts +2 -2
  955. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connect.test.ts +0 -1
  956. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.ts +0 -2
  957. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/create.test.ts +0 -1
  958. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/delete.test.ts +0 -1
  959. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/disconnect.test.ts +0 -1
  960. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/schema.ts +1 -2
  961. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.ts +2 -2
  962. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.ts +7 -6
  963. package/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.ts +2 -2
  964. package/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.ts +2 -2
  965. package/tests/cases/integration/graphQlRequests/update/manyHasOne/delete.test.ts +8 -6
  966. package/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.ts +2 -3
  967. package/tests/cases/integration/graphQlRequests/update/manyHasOne/schema.ts +2 -5
  968. package/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.ts +2 -2
  969. package/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.ts +4 -3
  970. package/tests/cases/integration/graphQlRequests/update/oneHasMany/combination.test.ts +0 -1
  971. package/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.ts +2 -2
  972. package/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.ts +2 -2
  973. package/tests/cases/integration/graphQlRequests/update/oneHasMany/create.test.ts +0 -1
  974. package/tests/cases/integration/graphQlRequests/update/oneHasMany/delete.test.ts +0 -1
  975. package/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.ts +2 -2
  976. package/tests/cases/integration/graphQlRequests/update/oneHasMany/schema.ts +2 -8
  977. package/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.ts +7 -8
  978. package/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.ts +2 -2
  979. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.ts +10 -6
  980. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.ts +2 -2
  981. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/delete.test.ts +1 -4
  982. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.ts +2 -2
  983. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.ts +2 -6
  984. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.ts +2 -2
  985. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.ts +2 -2
  986. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.ts +8 -5
  987. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.ts +2 -1
  988. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.ts +4 -2
  989. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/delete.test.ts +5 -5
  990. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.ts +2 -2
  991. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.ts +2 -6
  992. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.ts +2 -2
  993. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.ts +4 -3
  994. package/tests/cases/integration/graphQlRequests/update/queryPortal.test.ts +4 -4
  995. package/tests/cases/integration/graphQlRequests/update/transaction.test.ts +6 -5
  996. package/tests/cases/integration/graphQlRequests/update/validation/toBeFixed.test.ts +9 -10
  997. package/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.ts +5 -9
  998. package/tests/cases/integration/graphQlRequests/validation/conditions.test.ts +1 -1
  999. package/tests/cases/integration/graphQlRequests/validation/nestedValidation.test.ts +0 -2
  1000. package/tests/cases/integration/graphQlRequests/validation/optionalAssert.test.ts +0 -2
  1001. package/tests/cases/integration/graphQlRequests/validation/required.test.ts +0 -2
  1002. package/tests/cases/integration/graphQlRequests/validation/requiredWhen.test.ts +1 -2
  1003. package/tests/cases/integration/graphQlRequests/validation/rules/andRule.test.ts +0 -1
  1004. package/tests/cases/integration/graphQlRequests/validation/rules/lengthRangeRule.test.ts +0 -1
  1005. package/tests/cases/integration/graphQlRequests/validation/rules/maxLengthRule.test.ts +0 -1
  1006. package/tests/cases/integration/graphQlRequests/validation/rules/minLength.test.ts +0 -3
  1007. package/tests/cases/integration/graphQlRequests/validation/rules/notEmptyRule.test.ts +0 -4
  1008. package/tests/cases/integration/graphQlRequests/validation/rules/notRule.test.ts +0 -2
  1009. package/tests/cases/integration/graphQlRequests/validation/rules/orRule.test.ts +0 -3
  1010. package/tests/cases/integration/graphQlRequests/validation/rules/patternRule.test.ts +0 -1
  1011. package/tests/cases/integration/graphQlRequests/validation/rules/rangeRule.test.ts +0 -1
  1012. package/tests/cases/integration/graphQlRequests/validation/utils.ts +2 -6
  1013. package/tests/cases/integration/graphQlSchema/graphQlSchemaBuilder.test.ts +31 -61
  1014. package/tests/cases/integration/graphQlSchema/schema-column-types.gql +1 -0
  1015. package/tests/cases/unit/aclVariablesFactory.test.ts +3 -7
  1016. package/tests/cases/unit/conditionOptimizer.test.ts +122 -77
  1017. package/tests/cases/unit/inputPreValidator.test.ts +5 -17
  1018. package/tests/cases/unit/inputValidation.test.ts +2 -7
  1019. package/tests/cases/unit/orderbyHelper.test.ts +8 -6
  1020. package/tests/cases/unit/permissionMerger.test.ts +163 -7
  1021. package/tests/cases/unit/predicatesFactory.test.ts +75 -1
  1022. package/tests/cases/unit/predicatesInjector.test.ts +1065 -13
  1023. package/tests/cases/unit/uuidType.test.ts +1 -2
  1024. package/tests/cases/unit/variableInjector.test.ts +1 -4
  1025. package/tests/cases/unit/whereBuilder.test.ts +8 -5
  1026. package/tests/cases/unit/whereOptimizer.test.ts +337 -244
  1027. package/tests/src/test.ts +3 -2
  1028. package/tests/src/testGraphql.ts +1 -1
  1029. package/tests/.eslintrc.cjs +0 -5
  1030. package/vitest.config.ts +0 -3
@@ -4,13 +4,7 @@ import { Input, Model } from '@contember/schema'
4
4
  import { Path, PathFactory } from './Path'
5
5
  import { JoinBuilder } from './JoinBuilder'
6
6
  import { ConditionBuilder } from './ConditionBuilder'
7
- import {
8
- ConditionBuilder as SqlConditionBuilder,
9
- Literal,
10
- Operator,
11
- QueryBuilder,
12
- SelectBuilder, wrapIdentifier,
13
- } from '@contember/database'
7
+ import { ConditionBuilder as SqlConditionBuilder, Literal, Operator, QueryBuilder, SelectBuilder, wrapIdentifier } from '@contember/database'
14
8
  import { WhereOptimizationHints, WhereOptimizer } from './optimizer/WhereOptimizer'
15
9
 
16
10
  export class WhereBuilder {
@@ -40,7 +34,6 @@ export class WhereBuilder {
40
34
  })
41
35
  }
42
36
 
43
-
44
37
  public buildAdvanced<R extends SelectBuilder.Result>(
45
38
  entity: Model.Entity,
46
39
  path: Path,
@@ -61,15 +54,22 @@ export class WhereBuilder {
61
54
  private buildInternal<R extends SelectBuilder.Result>({
62
55
  callback,
63
56
  ...args
64
- }: { entity: Model.Entity; path: Path; where: Input.OptionalWhere; callback: (clauseCb: (clause: SqlConditionBuilder) => SqlConditionBuilder) => SelectBuilder<R>; allowManyJoin: boolean },
65
- ): SelectBuilder<R> {
57
+ }: {
58
+ entity: Model.Entity
59
+ path: Path
60
+ where: Input.OptionalWhere
61
+ callback: (clauseCb: (clause: SqlConditionBuilder) => SqlConditionBuilder) => SelectBuilder<R>
62
+ allowManyJoin: boolean
63
+ }): SelectBuilder<R> {
66
64
  const joinList: WhereJoinDefinition[] = []
67
65
 
68
- const qbWithWhere = callback(clause => this.buildRecursive({
69
- conditionBuilder: clause,
70
- joinList: joinList,
71
- ...args,
72
- }))
66
+ const qbWithWhere = callback(clause =>
67
+ this.buildRecursive({
68
+ conditionBuilder: clause,
69
+ joinList: joinList,
70
+ ...args,
71
+ })
72
+ )
73
73
  return joinList.reduce<SelectBuilder<R>>(
74
74
  (qb, { path, entity, relationName }) => this.joinBuilder.join<R>(qb, path, entity, relationName),
75
75
  qbWithWhere,
@@ -83,8 +83,14 @@ export class WhereBuilder {
83
83
  where,
84
84
  joinList,
85
85
  allowManyJoin,
86
- }: { conditionBuilder: SqlConditionBuilder; entity: Model.Entity; path: Path; where: Input.OptionalWhere; joinList: WhereJoinDefinition[]; allowManyJoin: boolean },
87
- ): SqlConditionBuilder {
86
+ }: {
87
+ conditionBuilder: SqlConditionBuilder
88
+ entity: Model.Entity
89
+ path: Path
90
+ where: Input.OptionalWhere
91
+ joinList: WhereJoinDefinition[]
92
+ allowManyJoin: boolean
93
+ }): SqlConditionBuilder {
88
94
  const tableName = path.alias
89
95
 
90
96
  if (where.and !== undefined && where.and !== null && where.and.length > 0) {
@@ -101,7 +107,7 @@ export class WhereBuilder {
101
107
  allowManyJoin,
102
108
  }),
103
109
  clause,
104
- ),
110
+ )
105
111
  )
106
112
  }
107
113
  if (where.or !== undefined && where.or !== null && where.or.length > 0) {
@@ -111,16 +117,18 @@ export class WhereBuilder {
111
117
  (clause2, where) =>
112
118
  !where
113
119
  ? clause2
114
- : clause2.and(clause3 => this.buildRecursive({
115
- conditionBuilder: clause3,
116
- entity,
117
- path,
118
- where,
119
- joinList,
120
- allowManyJoin,
121
- })),
120
+ : clause2.and(clause3 =>
121
+ this.buildRecursive({
122
+ conditionBuilder: clause3,
123
+ entity,
124
+ path,
125
+ where,
126
+ joinList,
127
+ allowManyJoin,
128
+ })
129
+ ),
122
130
  clause,
123
- ),
131
+ )
124
132
  )
125
133
  }
126
134
  if (where.not !== undefined && where.not !== null) {
@@ -133,7 +141,7 @@ export class WhereBuilder {
133
141
  where: expr,
134
142
  joinList,
135
143
  allowManyJoin,
136
- }),
144
+ })
137
145
  )
138
146
  }
139
147
 
@@ -160,7 +168,7 @@ export class WhereBuilder {
160
168
  conditionBuilder,
161
169
  tableName,
162
170
  relation.joiningColumn.columnName,
163
- (targetEntity.fields[targetEntity.primary] as Model.AnyColumn),
171
+ targetEntity.fields[targetEntity.primary] as Model.AnyColumn,
164
172
  primaryCondition,
165
173
  )
166
174
  }
@@ -178,8 +186,6 @@ export class WhereBuilder {
178
186
  })
179
187
  }
180
188
 
181
-
182
-
183
189
  conditionBuilder = acceptFieldVisitor<SqlConditionBuilder>(this.schema, entity, fieldName, {
184
190
  visitColumn: ({ entity, column }) => {
185
191
  return this.conditionBuilder.build(conditionBuilder, tableName, column.columnName, column, fieldWhere as Input.Condition<Input.ColumnValue>)
@@ -232,8 +238,10 @@ export class WhereBuilder {
232
238
  ? SelectBuilder.create()
233
239
  .select(it => it.raw('1'))
234
240
  .from(new Literal(`(select ${wrapIdentifier(tableName)}.${wrapIdentifier(entity.primaryColumn)})`), targetPath.for('tmp_').alias)
235
- .leftJoin(context.targetEntity.tableName, targetPath.alias, it =>
236
- it.columnsEq([targetPath.for('tmp_').alias, entity.primaryColumn], [targetPath.alias, context.targetRelation.joiningColumn.columnName]),
241
+ .leftJoin(
242
+ context.targetEntity.tableName,
243
+ targetPath.alias,
244
+ it => it.columnsEq([targetPath.for('tmp_').alias, entity.primaryColumn], [targetPath.alias, context.targetRelation.joiningColumn.columnName]),
237
245
  )
238
246
  : SelectBuilder.create()
239
247
  .select(it => it.raw('1'))
@@ -255,7 +263,6 @@ export class WhereBuilder {
255
263
  return conditionBuilder
256
264
  }
257
265
 
258
-
259
266
  private createManyHasManySubquery(
260
267
  outerColumn: QueryBuilder.ColumnIdentifier,
261
268
  relationWhere: Input.OptionalWhere,
@@ -274,16 +281,15 @@ export class WhereBuilder {
274
281
 
275
282
  const primaryCondition = this.transformWhereToPrimaryCondition(relationWhere, targetEntity.primary)
276
283
  if (primaryCondition !== null) {
284
+ const columnType = targetEntity.fields[targetEntity.primary] as Model.AnyColumn
277
285
 
278
- const columnType = (targetEntity.fields[targetEntity.primary] as Model.AnyColumn)
279
-
280
- return qb.where(condition =>
281
- this.conditionBuilder.build(condition, junctionPath.alias, toColumn, columnType, primaryCondition),
282
- )
286
+ return qb.where(condition => this.conditionBuilder.build(condition, junctionPath.alias, toColumn, columnType, primaryCondition))
283
287
  }
284
288
 
285
- const qbJoined = qb.join(targetEntity.tableName, path.alias, clause =>
286
- clause.compareColumns([junctionPath.alias, toColumn], Operator.eq, [path.alias, targetEntity.primary]),
289
+ const qbJoined = qb.join(
290
+ targetEntity.tableName,
291
+ path.alias,
292
+ clause => clause.compareColumns([junctionPath.alias, toColumn], Operator.eq, [path.alias, targetEntity.primary]),
287
293
  )
288
294
  return this.buildInternal({
289
295
  entity: targetEntity,
@@ -359,10 +365,10 @@ export class WhereBuilder {
359
365
  if (cond.isNull !== undefined) {
360
366
  return true
361
367
  }
362
- if (cond.and && cond.and.some(it => this.conditionHasIsNull(it))) {
368
+ if (cond.and?.some(it => this.conditionHasIsNull(it))) {
363
369
  return true
364
370
  }
365
- if (cond.or && cond.or.some(it => this.conditionHasIsNull(it))) {
371
+ if (cond.or?.some(it => this.conditionHasIsNull(it))) {
366
372
  return true
367
373
  }
368
374
  if (cond.not && this.conditionHasIsNull(cond.not)) {
@@ -38,7 +38,7 @@ export class FieldsVisitor implements Model.RelationByTypeVisitor<void>, Model.C
38
38
  selectFrom += '::text[]'
39
39
  }
40
40
 
41
- let columnValueGetter: ColumnValueGetter | undefined = undefined
41
+ let columnValueGetter: ColumnValueGetter | undefined
42
42
  if (entity.view && column.name === entity.primary && column.type === Model.ColumnType.Uuid) {
43
43
  if (entity.view.idSource) {
44
44
  const aliases: string[] = []
@@ -58,7 +58,6 @@ export class FieldsVisitor implements Model.RelationByTypeVisitor<void>, Model.C
58
58
  columnValueGetter = row => {
59
59
  return row[columnAlias] ?? (this.providers.uuid({ version: this.settings.uuidVersion }))
60
60
  }
61
-
62
61
  }
63
62
  }
64
63
 
@@ -221,7 +220,8 @@ export class FieldsVisitor implements Model.RelationByTypeVisitor<void>, Model.C
221
220
  }
222
221
 
223
222
  private getRequiredPredicate(entity: Model.Entity, field: Model.AnyField): Acl.Predicate | undefined {
224
- const fieldPredicate = this.predicateFactory.getFieldPredicate(entity, Acl.Operation.read, field.name)
223
+ const isRoot = this.relationPath.length === 0
224
+ const fieldPredicate = this.predicateFactory.getFieldPredicate(entity, Acl.Operation.read, field.name, isRoot)
225
225
  return fieldPredicate.isSameAsPrimary ? undefined : fieldPredicate.predicate
226
226
  }
227
227
  }
@@ -13,25 +13,18 @@ export class ConditionOptimizer {
13
13
  (Object.entries(condition) as ObjectEntry<typeof condition>[]).map(([key, value]) => {
14
14
  if (value === undefined || value === null) {
15
15
  return undefined
16
-
17
16
  } else if (key === 'always') {
18
17
  return true
19
-
20
18
  } else if (key === 'and') {
21
19
  return optimizeAnd(value.map(it => this.optimize(it)))
22
-
23
20
  } else if (key === 'or') {
24
21
  return optimizeOr(value.map(it => this.optimize(it)))
25
-
26
22
  } else if (key === 'in' && value.length === 0) {
27
23
  return false
28
-
29
24
  } else if (key === 'notIn' && value.length === 0) {
30
25
  return true
31
-
32
26
  } else if (key === 'not') {
33
27
  return optimizeNot(this.optimize(value))
34
-
35
28
  } else {
36
29
  return { [key]: value }
37
30
  }
@@ -4,12 +4,11 @@ import { acceptFieldVisitor } from '@contember/schema-utils'
4
4
  import { optimizeAnd, optimizeNot, optimizeOr } from './helpers'
5
5
  import { replaceWhere } from './WhereReplacer'
6
6
 
7
- type ExtendedRelationContext =
8
- & {
9
- context: Model.AnyRelationContext
10
- canEliminate: boolean
11
- isLast: boolean
12
- }
7
+ type ExtendedRelationContext = {
8
+ context: Model.AnyRelationContext
9
+ canEliminate: boolean
10
+ isLast: boolean
11
+ }
13
12
 
14
13
  export interface WhereOptimizationHints {
15
14
  relationPath?: Model.AnyRelationContext[]
@@ -18,16 +17,29 @@ export interface WhereOptimizationHints {
18
17
 
19
18
  type OptimizedOperand = Input.OptionalWhere | undefined | boolean
20
19
 
20
+ export type WhereOptimizerOptions = {
21
+ disable?: boolean
22
+ maxCrossOptimizationInput?: number
23
+ }
24
+
21
25
  export class WhereOptimizer {
22
26
  private static eliminableRelations = new Set<Model.AnyRelationContext['type']>(['oneHasMany', 'oneHasOneInverse', 'oneHasOneOwning'])
23
27
 
24
28
  constructor(
25
29
  private readonly model: Model.Schema,
26
30
  private readonly conditionOptimizer: ConditionOptimizer,
31
+ private readonly options?: WhereOptimizerOptions,
27
32
  ) {
28
33
  }
29
34
 
30
- public optimize(where: Input.OptionalWhere, entity: Model.Entity, { relationPath = [], evaluatedPredicates = [] }: WhereOptimizationHints = {}): Input.OptionalWhere {
35
+ public optimize(
36
+ where: Input.OptionalWhere,
37
+ entity: Model.Entity,
38
+ { relationPath = [], evaluatedPredicates = [] }: WhereOptimizationHints = {},
39
+ ): Input.OptionalWhere {
40
+ if (this.options?.disable) {
41
+ return where
42
+ }
31
43
  let processedRelationPath: ExtendedRelationContext[] = []
32
44
  for (const i in relationPath) {
33
45
  const el = relationPath[i]
@@ -63,7 +75,7 @@ export class WhereOptimizer {
63
75
 
64
76
  for (const key in where) {
65
77
  const value = where[key]
66
- let operand: OptimizedOperand = undefined
78
+ let operand: OptimizedOperand
67
79
  if (value === undefined || value === null) {
68
80
  continue
69
81
  } else if (key === 'and') {
@@ -89,17 +101,14 @@ export class WhereOptimizer {
89
101
  if (operand !== true) {
90
102
  operand = this.optimizeOr(innerOperands, entity, relationPath)
91
103
  }
92
-
93
104
  } else if (key === 'not') {
94
105
  operand = optimizeNot(this.optimizeWhere(value as Input.OptionalWhere, entity, relationPath))
95
-
96
106
  } else {
97
107
  operand = this.resolveFieldValue(entity, key, value, relationPath)
98
108
  }
99
109
 
100
110
  if (operand === false) {
101
111
  return false
102
-
103
112
  } else if (operand !== undefined) {
104
113
  operands.push(operand)
105
114
  }
@@ -107,7 +116,11 @@ export class WhereOptimizer {
107
116
  return this.optimizeAnd(operands, entity, relationPath)
108
117
  }
109
118
 
110
- private optimizeOr(operands: readonly OptimizedOperand[], entity: Model.Entity, relationPath: ExtendedRelationContext[]): Input.OptionalWhere | boolean {
119
+ private optimizeOr(
120
+ operands: readonly OptimizedOperand[],
121
+ entity: Model.Entity,
122
+ relationPath: ExtendedRelationContext[],
123
+ ): Input.OptionalWhere | boolean {
111
124
  const optimized = optimizeOr(operands)
112
125
  if (typeof optimized === 'boolean' || !Array.isArray(optimized.or)) {
113
126
  return optimized
@@ -119,7 +132,11 @@ export class WhereOptimizer {
119
132
  return optimizeOr(result)
120
133
  }
121
134
 
122
- private optimizeAnd(operands: readonly OptimizedOperand[], entity: Model.Entity, relationPath: ExtendedRelationContext[]): Input.OptionalWhere | boolean {
135
+ private optimizeAnd(
136
+ operands: readonly OptimizedOperand[],
137
+ entity: Model.Entity,
138
+ relationPath: ExtendedRelationContext[],
139
+ ): Input.OptionalWhere | boolean {
123
140
  const optimized = optimizeAnd(operands)
124
141
  if (typeof optimized === 'boolean' || !Array.isArray(optimized.and)) {
125
142
  return optimized
@@ -131,10 +148,15 @@ export class WhereOptimizer {
131
148
  return optimizeAnd(result)
132
149
  }
133
150
 
134
- private crossOptimize(operands: Input.OptionalWhere[], entity: Model.Entity, replacement: Input.Condition, relationPath: ExtendedRelationContext[]): (Input.OptionalWhere | boolean)[] {
151
+ private crossOptimize(
152
+ operands: Input.OptionalWhere[],
153
+ entity: Model.Entity,
154
+ replacement: Input.Condition,
155
+ relationPath: ExtendedRelationContext[],
156
+ ): (Input.OptionalWhere | boolean)[] {
135
157
  let result: (Input.OptionalWhere | boolean)[] = operands
136
158
  let copied = false
137
- const count = result.length
159
+ const count = Math.min(result.length, this.options?.maxCrossOptimizationInput ?? 50)
138
160
  for (let i = 0; i < count; i++) {
139
161
  for (let j = 0; j < count; j++) {
140
162
  const a = result[j]
@@ -1,7 +1,12 @@
1
1
  import { Input, Writable } from '@contember/schema'
2
2
  import deepEqual from 'fast-deep-equal'
3
3
 
4
- export const replaceWhere = (subject: Input.OptionalWhere, find: Input.OptionalWhere, replace: Input.OptionalWhere, opts: { replaceSubOperands?: boolean } = {}): Input.OptionalWhere => {
4
+ export const replaceWhere = (
5
+ subject: Input.OptionalWhere,
6
+ find: Input.OptionalWhere,
7
+ replace: Input.OptionalWhere,
8
+ opts: { replaceSubOperands?: boolean } = {},
9
+ ): Input.OptionalWhere => {
5
10
  if (deepEqual(subject, find)) {
6
11
  return replace
7
12
  }
@@ -42,13 +47,11 @@ export const replaceWhere = (subject: Input.OptionalWhere, find: Input.OptionalW
42
47
  write(key, items)
43
48
  }
44
49
  }
45
-
46
50
  }
47
51
  }
48
52
  return result
49
53
  }
50
54
 
51
-
52
55
  const containsAllOperands = (subjectOperands: Input.OptionalWhere[], findOperands: Input.OptionalWhere[]): boolean => {
53
56
  for (const op1 of findOperands) {
54
57
  let found = false
@@ -6,7 +6,7 @@ export const optimizeOr = <P extends Record<string, unknown>>(operands: readonly
6
6
  return true
7
7
  } else if (operand === false) {
8
8
  hasNever = true
9
- } else if (operand !== undefined) {
9
+ } else if (operand !== undefined) {
10
10
  normalized.push(...Array.isArray(operand.or) ? operand.or : [operand])
11
11
  }
12
12
  }
@@ -1,10 +1,9 @@
1
- import { Model, Input, Value } from '@contember/schema'
1
+ import { Input, Model, Value } from '@contember/schema'
2
2
  import { CheckedPrimary } from './CheckedPrimary'
3
3
 
4
4
  export type JoiningColumns = { sourceColumn: Model.JoiningColumn; targetColumn: Model.JoiningColumn }
5
5
 
6
6
  export namespace MapperInput {
7
-
8
7
  export interface ConnectRelationInput {
9
8
  connect: Input.UniqueWhere | CheckedPrimary
10
9
  }
@@ -58,11 +57,13 @@ export namespace MapperInput {
58
57
  [column: string]: Value.FieldValue | CreateOneRelationInput | CreateManyRelationInput
59
58
  }
60
59
 
61
- export type CreateOneRelationInput = { alias?: string } & (
62
- | ConnectRelationInput
63
- | CreateRelationInput
64
- | ConnectOrCreateRelationInput
65
- )
60
+ export type CreateOneRelationInput =
61
+ & { alias?: string }
62
+ & (
63
+ | ConnectRelationInput
64
+ | CreateRelationInput
65
+ | ConnectOrCreateRelationInput
66
+ )
66
67
 
67
68
  export type CreateManyRelationInput = Array<CreateOneRelationInput>
68
69
 
@@ -92,7 +93,6 @@ export namespace MapperInput {
92
93
  filter?: Input.OptionalWhere
93
94
  }
94
95
 
95
-
96
96
  export type UpdateOneRelationInput =
97
97
  | CreateRelationInput
98
98
  | ConnectRelationInput
@@ -102,16 +102,17 @@ export namespace MapperInput {
102
102
  | UpdateRelationInput
103
103
  | UpsertRelationInput
104
104
 
105
- export type UpdateManyRelationInputItem = { alias?: string } & (
106
- | CreateRelationInput
107
- | ConnectRelationInput
108
- | ConnectOrCreateRelationInput
109
- | DeleteSpecifiedRelationInput
110
- | DisconnectSpecifiedRelationInput
111
- | UpdateSpecifiedRelationInput
112
- | UpsertSpecifiedRelationInput
113
- )
105
+ export type UpdateManyRelationInputItem =
106
+ & { alias?: string }
107
+ & (
108
+ | CreateRelationInput
109
+ | ConnectRelationInput
110
+ | ConnectOrCreateRelationInput
111
+ | DeleteSpecifiedRelationInput
112
+ | DisconnectSpecifiedRelationInput
113
+ | UpdateSpecifiedRelationInput
114
+ | UpsertSpecifiedRelationInput
115
+ )
114
116
 
115
117
  export type UpdateManyRelationInput = Array<UpdateManyRelationInputItem>
116
-
117
118
  }
@@ -11,7 +11,7 @@ import { MutationResultList } from '../Result'
11
11
  import { ManyHasOneUpdateInputProcessor } from './relations/ManyHasOneUpdateInputProcessor'
12
12
  import { MapperInput } from '../types'
13
13
 
14
- export type SqlUpdateInputProcessorResult = MutationResultList | ((ctx: { primary: Input.PrimaryValue}) => Promise<MutationResultList>)
14
+ export type SqlUpdateInputProcessorResult = MutationResultList | ((ctx: { primary: Input.PrimaryValue }) => Promise<MutationResultList>)
15
15
 
16
16
  export class SqlUpdateInputProcessor implements UpdateInputProcessor<SqlUpdateInputProcessorResult> {
17
17
  private oneHasOneInverseUpdateInputProcessor: OneHasOneInverseUpdateInputProcessor
@@ -57,93 +57,89 @@ export class UpdateBuilder {
57
57
  }
58
58
 
59
59
  public async execute(mapper: Mapper): Promise<UpdateResult> {
60
- try {
61
- const resolvedData = [...this.rowData.values()]
62
- if (Object.keys(resolvedData).length === 0) {
63
- return { values: [], affectedRows: null, executed: false }
64
- }
65
- const oldColSuffix = '_old__'
66
-
67
- const qb = DbUpdateBuilder.create()
68
- .with('newData_', qb => {
69
- qb = resolvedData.reduce(
70
- (qb, value) =>
71
- qb
72
- .select(
73
- expr => expr.selectValue(
60
+ const resolvedData = [...this.rowData.values()]
61
+ if (Object.keys(resolvedData).length === 0) {
62
+ return { values: [], affectedRows: null, executed: false }
63
+ }
64
+ const oldColSuffix = '_old__'
65
+
66
+ const qb = DbUpdateBuilder.create()
67
+ .with('newData_', qb => {
68
+ qb = resolvedData.reduce(
69
+ (qb, value) =>
70
+ qb
71
+ .select(
72
+ expr =>
73
+ expr.selectValue(
74
74
  normalizeDbValue(value.value, value.columnType),
75
75
  value.columnType,
76
76
  ),
77
- value.columnName,
78
- )
79
- .select(['root_', value.columnName], value.columnName + oldColSuffix),
80
- qb,
81
- )
82
- const columns = new Set(resolvedData.map(it => it.columnName))
83
- const allColumns: string[] = Object.values(
84
- acceptEveryFieldVisitor(this.schema, this.entity, {
85
- visitColumn: ({ column }) => column.columnName,
86
- visitManyHasOne: ({ relation }) => relation.joiningColumn.columnName,
87
- visitOneHasOneOwning: ({ relation }) => relation.joiningColumn.columnName,
88
- visitManyHasManyInverse: () => null,
89
- visitManyHasManyOwning: () => null,
90
- visitOneHasOneInverse: () => null,
91
- visitOneHasMany: () => null,
92
- }),
93
- ).filter((it): it is string => it !== null)
94
-
95
- const remainingColumns = allColumns.filter(it => !columns.has(it))
96
- qb = qb.from(this.entity.tableName, 'root_')
97
-
98
- qb = remainingColumns.reduce((qb, columnName) => qb.select(['root_', columnName]), qb)
99
-
100
- qb = this.whereBuilder.build(qb, this.entity, this.pathFactory.create([]), {
101
- and: [{
102
- [this.entity.primary]: { eq: this.primary },
103
- }, this.oldWhere],
104
- })
105
-
106
- return qb
107
- })
108
- .table(this.entity.tableName)
109
- .values(
110
- resolvedData.reduce<QueryBuilder.ColumnExpressionMap>(
111
- (result: object, item) => ({
112
- ...result,
113
- [item.columnName]: expr => expr.select(['newData_', item.columnName]),
114
- }),
115
- {},
116
- ),
77
+ value.columnName,
78
+ )
79
+ .select(['root_', value.columnName], value.columnName + oldColSuffix),
80
+ qb,
117
81
  )
118
- .returning(...resolvedData.map(it => it.columnName + oldColSuffix))
119
- .from(qb => {
120
- qb = qb.from('newData_')
121
- const col1 = tuple(this.entity.tableName, this.entity.primaryColumn)
122
- const col2 = tuple('newData_', this.entity.primaryColumn)
123
- qb = qb.where(expr => expr.compareColumns(col1, Operator.eq, col2))
124
- qb = this.whereBuilder.build(qb, this.entity, this.pathFactory.create([], 'newData_'), this.newWhere)
125
- return qb
82
+ const columns = new Set(resolvedData.map(it => it.columnName))
83
+ const allColumns: string[] = Object.values(
84
+ acceptEveryFieldVisitor(this.schema, this.entity, {
85
+ visitColumn: ({ column }) => column.columnName,
86
+ visitManyHasOne: ({ relation }) => relation.joiningColumn.columnName,
87
+ visitOneHasOneOwning: ({ relation }) => relation.joiningColumn.columnName,
88
+ visitManyHasManyInverse: () => null,
89
+ visitManyHasManyOwning: () => null,
90
+ visitOneHasOneInverse: () => null,
91
+ visitOneHasMany: () => null,
92
+ }),
93
+ ).filter((it): it is string => it !== null)
94
+
95
+ const remainingColumns = allColumns.filter(it => !columns.has(it))
96
+ qb = qb.from(this.entity.tableName, 'root_')
97
+
98
+ qb = remainingColumns.reduce((qb, columnName) => qb.select(['root_', columnName]), qb)
99
+
100
+ qb = this.whereBuilder.build(qb, this.entity, this.pathFactory.create([]), {
101
+ and: [{
102
+ [this.entity.primary]: { eq: this.primary },
103
+ }, this.oldWhere],
126
104
  })
127
105
 
128
-
129
- const beforeEvent = new BeforeUpdateEvent(this.entity, resolvedData, this.primary)
130
- await mapper.eventManager.fire(beforeEvent)
131
-
132
- const result = await qb.execute(mapper.db)
133
-
134
- if (result.length === 1) {
135
- const eventData = (resolvedData).map(it => ({
136
- ...it,
137
- old: result[0][it.columnName + oldColSuffix],
138
- }))
139
- const afterUpdateEvent = new AfterUpdateEvent(this.entity, eventData, this.primary)
140
- beforeEvent.afterEvent = afterUpdateEvent
141
- await mapper.eventManager.fire(afterUpdateEvent)
142
- }
143
-
144
- return { values: resolvedData, affectedRows: result.length, executed: true }
145
- } catch (e) {
146
- throw e
106
+ return qb
107
+ })
108
+ .table(this.entity.tableName)
109
+ .values(
110
+ resolvedData.reduce<QueryBuilder.ColumnExpressionMap>(
111
+ (result: object, item) => ({
112
+ ...result,
113
+ [item.columnName]: expr => expr.select(['newData_', item.columnName]),
114
+ }),
115
+ {},
116
+ ),
117
+ )
118
+ .returning(...resolvedData.map(it => it.columnName + oldColSuffix))
119
+ .from(qb => {
120
+ qb = qb.from('newData_')
121
+ const col1 = tuple(this.entity.tableName, this.entity.primaryColumn)
122
+ const col2 = tuple('newData_', this.entity.primaryColumn)
123
+ qb = qb.where(expr => expr.compareColumns(col1, Operator.eq, col2))
124
+ qb = this.whereBuilder.build(qb, this.entity, this.pathFactory.create([], 'newData_'), this.newWhere)
125
+ return qb
126
+ })
127
+
128
+ const beforeEvent = new BeforeUpdateEvent(this.entity, resolvedData, this.primary)
129
+ await mapper.eventManager.fire(beforeEvent)
130
+
131
+ const result = await qb.execute(mapper.db)
132
+
133
+ if (result.length === 1) {
134
+ const eventData = resolvedData.map(it => ({
135
+ ...it,
136
+ old: result[0][it.columnName + oldColSuffix],
137
+ }))
138
+ const afterUpdateEvent = new AfterUpdateEvent(this.entity, eventData, this.primary)
139
+ beforeEvent.afterEvent = afterUpdateEvent
140
+ await mapper.eventManager.fire(afterUpdateEvent)
147
141
  }
142
+
143
+ return { values: resolvedData, affectedRows: result.length, executed: true }
148
144
  }
149
145
  }