@contember/engine-content-api 2.0.0-alpha.9 → 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1022) hide show
  1. package/dist/development/index.cjs +3 -2
  2. package/dist/development/index.cjs.map +1 -1
  3. package/dist/development/index.js +3 -2
  4. package/dist/development/index.js.map +1 -1
  5. package/dist/development/src/ExecutionContainer.cjs +2 -2
  6. package/dist/development/src/ExecutionContainer.cjs.map +1 -1
  7. package/dist/development/src/ExecutionContainer.js +2 -2
  8. package/dist/development/src/ExecutionContainer.js.map +1 -1
  9. package/dist/development/src/acl/Authorizator.cjs.map +1 -1
  10. package/dist/development/src/acl/Authorizator.js.map +1 -1
  11. package/dist/development/src/acl/EvaluatedPredicateReplacer.cjs.map +1 -1
  12. package/dist/development/src/acl/EvaluatedPredicateReplacer.js.map +1 -1
  13. package/dist/development/src/acl/PermissionFactory.cjs.map +1 -1
  14. package/dist/development/src/acl/PermissionFactory.js.map +1 -1
  15. package/dist/development/src/acl/PredicateFactory.cjs.map +1 -1
  16. package/dist/development/src/acl/PredicateFactory.js.map +1 -1
  17. package/dist/development/src/acl/PredicatesInjector.cjs.map +1 -1
  18. package/dist/development/src/acl/PredicatesInjector.js.map +1 -1
  19. package/dist/development/src/acl/VariableInjector.cjs.map +1 -1
  20. package/dist/development/src/acl/VariableInjector.js.map +1 -1
  21. package/dist/development/src/acl/VariableUtils.cjs.map +1 -1
  22. package/dist/development/src/acl/VariableUtils.js.map +1 -1
  23. package/dist/development/src/exception.cjs.map +1 -1
  24. package/dist/development/src/exception.js.map +1 -1
  25. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.cjs.map +1 -1
  26. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.js.map +1 -1
  27. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.cjs.map +1 -1
  28. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js.map +1 -1
  29. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs +31 -6
  30. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs.map +1 -1
  31. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js +31 -6
  32. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js.map +1 -1
  33. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.cjs.map +1 -1
  34. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.js.map +1 -1
  35. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.cjs.map +1 -1
  36. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js.map +1 -1
  37. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.cjs.map +1 -1
  38. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.js.map +1 -1
  39. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.cjs.map +1 -1
  40. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.js.map +1 -1
  41. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.cjs.map +1 -1
  42. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.js.map +1 -1
  43. package/dist/development/src/input-validation/ColumnValueResolver.cjs.map +1 -1
  44. package/dist/development/src/input-validation/ColumnValueResolver.js.map +1 -1
  45. package/dist/development/src/input-validation/EntityRulesResolver.cjs.map +1 -1
  46. package/dist/development/src/input-validation/EntityRulesResolver.js.map +1 -1
  47. package/dist/development/src/input-validation/QueryAstFactory.cjs.map +1 -1
  48. package/dist/development/src/input-validation/QueryAstFactory.js.map +1 -1
  49. package/dist/development/src/input-validation/ValidationContext.cjs.map +1 -1
  50. package/dist/development/src/input-validation/ValidationContext.js.map +1 -1
  51. package/dist/development/src/input-validation/ValidationDataSelector.cjs.map +1 -1
  52. package/dist/development/src/input-validation/ValidationDataSelector.js.map +1 -1
  53. package/dist/development/src/input-validation/ValidationEvaluation.cjs.map +1 -1
  54. package/dist/development/src/input-validation/ValidationEvaluation.js.map +1 -1
  55. package/dist/development/src/input-validation/ValidationPath.cjs.map +1 -1
  56. package/dist/development/src/input-validation/ValidationPath.js.map +1 -1
  57. package/dist/development/src/input-validation/dependencies/DependencyCollector.cjs.map +1 -1
  58. package/dist/development/src/input-validation/dependencies/DependencyCollector.js.map +1 -1
  59. package/dist/development/src/input-validation/dependencies/DependencyMerger.cjs.map +1 -1
  60. package/dist/development/src/input-validation/dependencies/DependencyMerger.js.map +1 -1
  61. package/dist/development/src/input-validation/preValidation/CreateInputPreValidationProcessor.cjs.map +1 -1
  62. package/dist/development/src/input-validation/preValidation/CreateInputPreValidationProcessor.js.map +1 -1
  63. package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs +1 -1
  64. package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
  65. package/dist/development/src/input-validation/preValidation/InputPreValidator.js +1 -1
  66. package/dist/development/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
  67. package/dist/development/src/input-validation/preValidation/UpdateInputPreValidationProcessor.cjs.map +1 -1
  68. package/dist/development/src/input-validation/preValidation/UpdateInputPreValidationProcessor.js.map +1 -1
  69. package/dist/development/src/inputProcessing/CreateInputVisitor.cjs +16 -17
  70. package/dist/development/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
  71. package/dist/development/src/inputProcessing/CreateInputVisitor.js +16 -17
  72. package/dist/development/src/inputProcessing/CreateInputVisitor.js.map +1 -1
  73. package/dist/development/src/inputProcessing/FieldNode.cjs.map +1 -1
  74. package/dist/development/src/inputProcessing/FieldNode.js.map +1 -1
  75. package/dist/development/src/inputProcessing/ObjectNode.cjs.map +1 -1
  76. package/dist/development/src/inputProcessing/ObjectNode.js.map +1 -1
  77. package/dist/development/src/inputProcessing/UniqueWhereExpander.cjs.map +1 -1
  78. package/dist/development/src/inputProcessing/UniqueWhereExpander.js.map +1 -1
  79. package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs +29 -27
  80. package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
  81. package/dist/development/src/inputProcessing/UpdateInputVisitor.js +29 -27
  82. package/dist/development/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  83. package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.cjs +6 -163
  84. package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
  85. package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.js +5 -162
  86. package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.js.map +1 -1
  87. package/dist/development/src/introspection/IntrospectionSchemaFactory.cjs.map +1 -1
  88. package/dist/development/src/introspection/IntrospectionSchemaFactory.js.map +1 -1
  89. package/dist/development/src/introspection/introspection.schema.cjs +163 -0
  90. package/dist/development/src/introspection/introspection.schema.cjs.map +1 -0
  91. package/dist/development/src/introspection/introspection.schema.js +163 -0
  92. package/dist/development/src/introspection/introspection.schema.js.map +1 -0
  93. package/dist/development/src/mapper/CheckedPrimary.cjs.map +1 -1
  94. package/dist/development/src/mapper/CheckedPrimary.js.map +1 -1
  95. package/dist/development/src/mapper/ColumnValue.cjs +8 -18
  96. package/dist/development/src/mapper/ColumnValue.cjs.map +1 -1
  97. package/dist/development/src/mapper/ColumnValue.js +8 -18
  98. package/dist/development/src/mapper/ColumnValue.js.map +1 -1
  99. package/dist/development/src/mapper/ErrorUtils.cjs +1 -1
  100. package/dist/development/src/mapper/ErrorUtils.cjs.map +1 -1
  101. package/dist/development/src/mapper/ErrorUtils.js +1 -1
  102. package/dist/development/src/mapper/ErrorUtils.js.map +1 -1
  103. package/dist/development/src/mapper/EventManager.cjs +4 -7
  104. package/dist/development/src/mapper/EventManager.cjs.map +1 -1
  105. package/dist/development/src/mapper/EventManager.js +4 -7
  106. package/dist/development/src/mapper/EventManager.js.map +1 -1
  107. package/dist/development/src/mapper/JunctionTableManager.cjs.map +1 -1
  108. package/dist/development/src/mapper/JunctionTableManager.js.map +1 -1
  109. package/dist/development/src/mapper/Mapper.cjs +8 -28
  110. package/dist/development/src/mapper/Mapper.cjs.map +1 -1
  111. package/dist/development/src/mapper/Mapper.js +8 -28
  112. package/dist/development/src/mapper/Mapper.js.map +1 -1
  113. package/dist/development/src/mapper/MapperFactory.cjs.map +1 -1
  114. package/dist/development/src/mapper/MapperFactory.js.map +1 -1
  115. package/dist/development/src/mapper/MutationProcessorHelper.cjs +10 -2
  116. package/dist/development/src/mapper/MutationProcessorHelper.cjs.map +1 -1
  117. package/dist/development/src/mapper/MutationProcessorHelper.js +10 -2
  118. package/dist/development/src/mapper/MutationProcessorHelper.js.map +1 -1
  119. package/dist/development/src/mapper/Result.cjs +10 -27
  120. package/dist/development/src/mapper/Result.cjs.map +1 -1
  121. package/dist/development/src/mapper/Result.js +10 -27
  122. package/dist/development/src/mapper/Result.js.map +1 -1
  123. package/dist/development/src/mapper/delete/DeleteExecutor.cjs +4 -8
  124. package/dist/development/src/mapper/delete/DeleteExecutor.cjs.map +1 -1
  125. package/dist/development/src/mapper/delete/DeleteExecutor.js +5 -9
  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 +13 -21
  134. package/dist/development/src/mapper/insert/InsertBuilder.cjs.map +1 -1
  135. package/dist/development/src/mapper/insert/InsertBuilder.js +14 -22
  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 +43 -21
  140. package/dist/development/src/mapper/insert/Inserter.cjs.map +1 -1
  141. package/dist/development/src/mapper/insert/Inserter.js +45 -23
  142. package/dist/development/src/mapper/insert/Inserter.js.map +1 -1
  143. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs +23 -79
  144. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
  145. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js +23 -79
  146. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  147. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs +43 -0
  148. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -0
  149. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js +43 -0
  150. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -0
  151. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs +40 -0
  152. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -0
  153. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js +40 -0
  154. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -0
  155. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs +38 -0
  156. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -0
  157. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js +38 -0
  158. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -0
  159. package/dist/development/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.cjs +23 -32
  160. package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -0
  161. package/dist/development/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.js +23 -32
  162. package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -0
  163. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs +65 -0
  164. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -0
  165. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js +65 -0
  166. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -0
  167. package/dist/development/src/mapper/select/ConditionBuilder.cjs.map +1 -1
  168. package/dist/development/src/mapper/select/ConditionBuilder.js.map +1 -1
  169. package/dist/development/src/mapper/select/JoinBuilder.cjs.map +1 -1
  170. package/dist/development/src/mapper/select/JoinBuilder.js.map +1 -1
  171. package/dist/development/src/mapper/select/JoinVisitor.cjs.map +1 -1
  172. package/dist/development/src/mapper/select/JoinVisitor.js.map +1 -1
  173. package/dist/development/src/mapper/select/OrderByBuilder.cjs.map +1 -1
  174. package/dist/development/src/mapper/select/OrderByBuilder.js.map +1 -1
  175. package/dist/development/src/mapper/select/OrderByHelper.cjs.map +1 -1
  176. package/dist/development/src/mapper/select/OrderByHelper.js.map +1 -1
  177. package/dist/development/src/mapper/select/Path.cjs.map +1 -1
  178. package/dist/development/src/mapper/select/Path.js.map +1 -1
  179. package/dist/development/src/mapper/select/RelationFetcher.cjs.map +1 -1
  180. package/dist/development/src/mapper/select/RelationFetcher.js.map +1 -1
  181. package/dist/development/src/mapper/select/SelectBuilder.cjs.map +1 -1
  182. package/dist/development/src/mapper/select/SelectBuilder.js.map +1 -1
  183. package/dist/development/src/mapper/select/SelectHydrator.cjs.map +1 -1
  184. package/dist/development/src/mapper/select/SelectHydrator.js.map +1 -1
  185. package/dist/development/src/mapper/select/WhereBuilder.cjs.map +1 -1
  186. package/dist/development/src/mapper/select/WhereBuilder.js.map +1 -1
  187. package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs +3 -0
  188. package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  189. package/dist/development/src/mapper/select/handlers/FieldsVisitor.js +3 -0
  190. package/dist/development/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  191. package/dist/development/src/mapper/select/handlers/FieldsVisitorFactory.cjs.map +1 -1
  192. package/dist/development/src/mapper/select/handlers/FieldsVisitorFactory.js.map +1 -1
  193. package/dist/development/src/mapper/select/handlers/MetaHandler.cjs.map +1 -1
  194. package/dist/development/src/mapper/select/handlers/MetaHandler.js.map +1 -1
  195. package/dist/development/src/mapper/select/optimizer/ConditionOptimizer.cjs.map +1 -1
  196. package/dist/development/src/mapper/select/optimizer/ConditionOptimizer.js.map +1 -1
  197. package/dist/development/src/mapper/select/optimizer/WhereOptimizer.cjs.map +1 -1
  198. package/dist/development/src/mapper/select/optimizer/WhereOptimizer.js.map +1 -1
  199. package/dist/development/src/mapper/select/optimizer/WhereReplacer.cjs.map +1 -1
  200. package/dist/development/src/mapper/select/optimizer/WhereReplacer.js.map +1 -1
  201. package/dist/development/src/mapper/select/optimizer/helpers.cjs.map +1 -1
  202. package/dist/development/src/mapper/select/optimizer/helpers.js.map +1 -1
  203. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.cjs +36 -36
  204. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
  205. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.js +36 -36
  206. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
  207. package/dist/development/src/mapper/update/UpdateBuilder.cjs +14 -19
  208. package/dist/development/src/mapper/update/UpdateBuilder.cjs.map +1 -1
  209. package/dist/development/src/mapper/update/UpdateBuilder.js +15 -20
  210. package/dist/development/src/mapper/update/UpdateBuilder.js.map +1 -1
  211. package/dist/development/src/mapper/update/UpdateBuilderFactory.cjs.map +1 -1
  212. package/dist/development/src/mapper/update/UpdateBuilderFactory.js.map +1 -1
  213. package/dist/development/src/mapper/update/Updater.cjs +45 -17
  214. package/dist/development/src/mapper/update/Updater.cjs.map +1 -1
  215. package/dist/development/src/mapper/update/Updater.js +47 -19
  216. package/dist/development/src/mapper/update/Updater.js.map +1 -1
  217. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs +84 -0
  218. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -0
  219. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js +84 -0
  220. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -0
  221. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs +88 -0
  222. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -0
  223. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js +88 -0
  224. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -0
  225. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs +87 -0
  226. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -0
  227. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js +87 -0
  228. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -0
  229. package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs +147 -0
  230. package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -0
  231. package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js +147 -0
  232. package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -0
  233. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs +183 -0
  234. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -0
  235. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js +183 -0
  236. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -0
  237. package/dist/development/src/resolvers/GraphQlQueryAstFactory.cjs.map +1 -1
  238. package/dist/development/src/resolvers/GraphQlQueryAstFactory.js.map +1 -1
  239. package/dist/development/src/resolvers/MutationResolver.cjs +8 -4
  240. package/dist/development/src/resolvers/MutationResolver.cjs.map +1 -1
  241. package/dist/development/src/resolvers/MutationResolver.js +8 -4
  242. package/dist/development/src/resolvers/MutationResolver.js.map +1 -1
  243. package/dist/development/src/resolvers/ReadHelpers.cjs.map +1 -1
  244. package/dist/development/src/resolvers/ReadHelpers.js.map +1 -1
  245. package/dist/development/src/resolvers/ReadResolver.cjs.map +1 -1
  246. package/dist/development/src/resolvers/ReadResolver.js.map +1 -1
  247. package/dist/development/src/resolvers/ValidationResolver.cjs.map +1 -1
  248. package/dist/development/src/resolvers/ValidationResolver.js.map +1 -1
  249. package/dist/development/src/schema/ColumnTypeResolver.cjs.map +1 -1
  250. package/dist/development/src/schema/ColumnTypeResolver.js.map +1 -1
  251. package/dist/development/src/schema/ConditionTypeProvider.cjs.map +1 -1
  252. package/dist/development/src/schema/ConditionTypeProvider.js.map +1 -1
  253. package/dist/development/src/schema/CustomTypesProvider.cjs.map +1 -1
  254. package/dist/development/src/schema/CustomTypesProvider.js.map +1 -1
  255. package/dist/development/src/schema/EntityTypeProvider.cjs.map +1 -1
  256. package/dist/development/src/schema/EntityTypeProvider.js.map +1 -1
  257. package/dist/development/src/schema/EnumsProvider.cjs.map +1 -1
  258. package/dist/development/src/schema/EnumsProvider.js.map +1 -1
  259. package/dist/development/src/schema/FieldAccessVisitor.cjs.map +1 -1
  260. package/dist/development/src/schema/FieldAccessVisitor.js.map +1 -1
  261. package/dist/development/src/schema/GraphQlSchemaBuilder.cjs.map +1 -1
  262. package/dist/development/src/schema/GraphQlSchemaBuilder.js.map +1 -1
  263. package/dist/development/src/schema/GraphQlSchemaBuilderFactory.cjs.map +1 -1
  264. package/dist/development/src/schema/GraphQlSchemaBuilderFactory.js.map +1 -1
  265. package/dist/development/src/schema/MutationProvider.cjs.map +1 -1
  266. package/dist/development/src/schema/MutationProvider.js.map +1 -1
  267. package/dist/development/src/schema/OperationExtension.cjs.map +1 -1
  268. package/dist/development/src/schema/OperationExtension.js.map +1 -1
  269. package/dist/development/src/schema/OrderByTypeProvider.cjs.map +1 -1
  270. package/dist/development/src/schema/OrderByTypeProvider.js.map +1 -1
  271. package/dist/development/src/schema/PaginatedFieldConfigFactory.cjs.map +1 -1
  272. package/dist/development/src/schema/PaginatedFieldConfigFactory.js.map +1 -1
  273. package/dist/development/src/schema/QueryProvider.cjs.map +1 -1
  274. package/dist/development/src/schema/QueryProvider.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.map +1 -1
  278. package/dist/development/src/schema/ValidationQueriesProvider.js.map +1 -1
  279. package/dist/development/src/schema/WhereTypeProvider.cjs.map +1 -1
  280. package/dist/development/src/schema/WhereTypeProvider.js.map +1 -1
  281. package/dist/development/src/schema/entities/FieldArgsVisitor.cjs.map +1 -1
  282. package/dist/development/src/schema/entities/FieldArgsVisitor.js.map +1 -1
  283. package/dist/development/src/schema/entities/FieldTypeVisitor.cjs.map +1 -1
  284. package/dist/development/src/schema/entities/FieldTypeVisitor.js.map +1 -1
  285. package/dist/development/src/schema/mutations/ConnectOrCreateRelationInputProvider.cjs.map +1 -1
  286. package/dist/development/src/schema/mutations/ConnectOrCreateRelationInputProvider.js.map +1 -1
  287. package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.cjs.map +1 -1
  288. package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
  289. package/dist/development/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
  290. package/dist/development/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  291. package/dist/development/src/schema/mutations/CreateEntityRelationInputFieldVisitor.cjs.map +1 -1
  292. package/dist/development/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js.map +1 -1
  293. package/dist/development/src/schema/mutations/CreateEntityRelationInputProvider.cjs.map +1 -1
  294. package/dist/development/src/schema/mutations/CreateEntityRelationInputProvider.js.map +1 -1
  295. package/dist/development/src/schema/mutations/EntityInputProvider.cjs.map +1 -1
  296. package/dist/development/src/schema/mutations/EntityInputProvider.js.map +1 -1
  297. package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs.map +1 -1
  298. package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
  299. package/dist/development/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
  300. package/dist/development/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  301. package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs +2 -0
  302. package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
  303. package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +2 -0
  304. package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
  305. package/dist/development/src/schema/mutations/UpdateEntityRelationInputProvider.cjs.map +1 -1
  306. package/dist/development/src/schema/mutations/UpdateEntityRelationInputProvider.js.map +1 -1
  307. package/dist/development/src/schema/utils.cjs.map +1 -1
  308. package/dist/development/src/schema/utils.js.map +1 -1
  309. package/dist/development/src/utils/Mutex.cjs.map +1 -1
  310. package/dist/development/src/utils/Mutex.js.map +1 -1
  311. package/dist/development/src/utils/ResolveInfoUtils.cjs.map +1 -1
  312. package/dist/development/src/utils/ResolveInfoUtils.js.map +1 -1
  313. package/dist/development/src/utils/accessor.cjs.map +1 -1
  314. package/dist/development/src/utils/accessor.js.map +1 -1
  315. package/dist/development/src/utils/isIt.cjs.map +1 -1
  316. package/dist/development/src/utils/isIt.js.map +1 -1
  317. package/dist/development/src/utils/object.cjs.map +1 -1
  318. package/dist/development/src/utils/object.js.map +1 -1
  319. package/dist/development/src/utils/paginationUtils.cjs.map +1 -1
  320. package/dist/development/src/utils/paginationUtils.js.map +1 -1
  321. package/dist/development/src/utils/singletonFactory.cjs.map +1 -1
  322. package/dist/development/src/utils/singletonFactory.js.map +1 -1
  323. package/dist/development/src/utils/uniqueWhereFields.cjs.map +1 -1
  324. package/dist/development/src/utils/uniqueWhereFields.js.map +1 -1
  325. package/dist/production/index.cjs +3 -2
  326. package/dist/production/index.cjs.map +1 -1
  327. package/dist/production/index.js +3 -2
  328. package/dist/production/index.js.map +1 -1
  329. package/dist/production/src/ExecutionContainer.cjs +2 -2
  330. package/dist/production/src/ExecutionContainer.cjs.map +1 -1
  331. package/dist/production/src/ExecutionContainer.js +2 -2
  332. package/dist/production/src/ExecutionContainer.js.map +1 -1
  333. package/dist/production/src/acl/Authorizator.cjs.map +1 -1
  334. package/dist/production/src/acl/Authorizator.js.map +1 -1
  335. package/dist/production/src/acl/EvaluatedPredicateReplacer.cjs.map +1 -1
  336. package/dist/production/src/acl/EvaluatedPredicateReplacer.js.map +1 -1
  337. package/dist/production/src/acl/PermissionFactory.cjs.map +1 -1
  338. package/dist/production/src/acl/PermissionFactory.js.map +1 -1
  339. package/dist/production/src/acl/PredicateFactory.cjs.map +1 -1
  340. package/dist/production/src/acl/PredicateFactory.js.map +1 -1
  341. package/dist/production/src/acl/PredicatesInjector.cjs.map +1 -1
  342. package/dist/production/src/acl/PredicatesInjector.js.map +1 -1
  343. package/dist/production/src/acl/VariableInjector.cjs.map +1 -1
  344. package/dist/production/src/acl/VariableInjector.js.map +1 -1
  345. package/dist/production/src/acl/VariableUtils.cjs.map +1 -1
  346. package/dist/production/src/acl/VariableUtils.js.map +1 -1
  347. package/dist/production/src/exception.cjs.map +1 -1
  348. package/dist/production/src/exception.js.map +1 -1
  349. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.cjs.map +1 -1
  350. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.js.map +1 -1
  351. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.cjs.map +1 -1
  352. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js.map +1 -1
  353. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs +31 -6
  354. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs.map +1 -1
  355. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js +31 -6
  356. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js.map +1 -1
  357. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.cjs.map +1 -1
  358. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.js.map +1 -1
  359. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.cjs.map +1 -1
  360. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js.map +1 -1
  361. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.cjs.map +1 -1
  362. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.js.map +1 -1
  363. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.cjs.map +1 -1
  364. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.js.map +1 -1
  365. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.cjs.map +1 -1
  366. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.js.map +1 -1
  367. package/dist/production/src/input-validation/ColumnValueResolver.cjs.map +1 -1
  368. package/dist/production/src/input-validation/ColumnValueResolver.js.map +1 -1
  369. package/dist/production/src/input-validation/EntityRulesResolver.cjs.map +1 -1
  370. package/dist/production/src/input-validation/EntityRulesResolver.js.map +1 -1
  371. package/dist/production/src/input-validation/QueryAstFactory.cjs.map +1 -1
  372. package/dist/production/src/input-validation/QueryAstFactory.js.map +1 -1
  373. package/dist/production/src/input-validation/ValidationContext.cjs.map +1 -1
  374. package/dist/production/src/input-validation/ValidationContext.js.map +1 -1
  375. package/dist/production/src/input-validation/ValidationDataSelector.cjs.map +1 -1
  376. package/dist/production/src/input-validation/ValidationDataSelector.js.map +1 -1
  377. package/dist/production/src/input-validation/ValidationEvaluation.cjs.map +1 -1
  378. package/dist/production/src/input-validation/ValidationEvaluation.js.map +1 -1
  379. package/dist/production/src/input-validation/ValidationPath.cjs.map +1 -1
  380. package/dist/production/src/input-validation/ValidationPath.js.map +1 -1
  381. package/dist/production/src/input-validation/dependencies/DependencyCollector.cjs.map +1 -1
  382. package/dist/production/src/input-validation/dependencies/DependencyCollector.js.map +1 -1
  383. package/dist/production/src/input-validation/dependencies/DependencyMerger.cjs.map +1 -1
  384. package/dist/production/src/input-validation/dependencies/DependencyMerger.js.map +1 -1
  385. package/dist/production/src/input-validation/preValidation/CreateInputPreValidationProcessor.cjs.map +1 -1
  386. package/dist/production/src/input-validation/preValidation/CreateInputPreValidationProcessor.js.map +1 -1
  387. package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs +1 -1
  388. package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
  389. package/dist/production/src/input-validation/preValidation/InputPreValidator.js +1 -1
  390. package/dist/production/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
  391. package/dist/production/src/input-validation/preValidation/UpdateInputPreValidationProcessor.cjs.map +1 -1
  392. package/dist/production/src/input-validation/preValidation/UpdateInputPreValidationProcessor.js.map +1 -1
  393. package/dist/production/src/inputProcessing/CreateInputVisitor.cjs +16 -17
  394. package/dist/production/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
  395. package/dist/production/src/inputProcessing/CreateInputVisitor.js +16 -17
  396. package/dist/production/src/inputProcessing/CreateInputVisitor.js.map +1 -1
  397. package/dist/production/src/inputProcessing/FieldNode.cjs.map +1 -1
  398. package/dist/production/src/inputProcessing/FieldNode.js.map +1 -1
  399. package/dist/production/src/inputProcessing/ObjectNode.cjs.map +1 -1
  400. package/dist/production/src/inputProcessing/ObjectNode.js.map +1 -1
  401. package/dist/production/src/inputProcessing/UniqueWhereExpander.cjs.map +1 -1
  402. package/dist/production/src/inputProcessing/UniqueWhereExpander.js.map +1 -1
  403. package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs +29 -27
  404. package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
  405. package/dist/production/src/inputProcessing/UpdateInputVisitor.js +29 -27
  406. package/dist/production/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  407. package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.cjs +6 -163
  408. package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
  409. package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.js +5 -162
  410. package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.js.map +1 -1
  411. package/dist/production/src/introspection/IntrospectionSchemaFactory.cjs.map +1 -1
  412. package/dist/production/src/introspection/IntrospectionSchemaFactory.js.map +1 -1
  413. package/dist/production/src/introspection/introspection.schema.cjs +163 -0
  414. package/dist/production/src/introspection/introspection.schema.cjs.map +1 -0
  415. package/dist/production/src/introspection/introspection.schema.js +163 -0
  416. package/dist/production/src/introspection/introspection.schema.js.map +1 -0
  417. package/dist/production/src/mapper/CheckedPrimary.cjs.map +1 -1
  418. package/dist/production/src/mapper/CheckedPrimary.js.map +1 -1
  419. package/dist/production/src/mapper/ColumnValue.cjs +8 -18
  420. package/dist/production/src/mapper/ColumnValue.cjs.map +1 -1
  421. package/dist/production/src/mapper/ColumnValue.js +8 -18
  422. package/dist/production/src/mapper/ColumnValue.js.map +1 -1
  423. package/dist/production/src/mapper/ErrorUtils.cjs +1 -1
  424. package/dist/production/src/mapper/ErrorUtils.cjs.map +1 -1
  425. package/dist/production/src/mapper/ErrorUtils.js +1 -1
  426. package/dist/production/src/mapper/ErrorUtils.js.map +1 -1
  427. package/dist/production/src/mapper/EventManager.cjs +4 -7
  428. package/dist/production/src/mapper/EventManager.cjs.map +1 -1
  429. package/dist/production/src/mapper/EventManager.js +4 -7
  430. package/dist/production/src/mapper/EventManager.js.map +1 -1
  431. package/dist/production/src/mapper/JunctionTableManager.cjs.map +1 -1
  432. package/dist/production/src/mapper/JunctionTableManager.js.map +1 -1
  433. package/dist/production/src/mapper/Mapper.cjs +8 -28
  434. package/dist/production/src/mapper/Mapper.cjs.map +1 -1
  435. package/dist/production/src/mapper/Mapper.js +8 -28
  436. package/dist/production/src/mapper/Mapper.js.map +1 -1
  437. package/dist/production/src/mapper/MapperFactory.cjs.map +1 -1
  438. package/dist/production/src/mapper/MapperFactory.js.map +1 -1
  439. package/dist/production/src/mapper/MutationProcessorHelper.cjs +10 -2
  440. package/dist/production/src/mapper/MutationProcessorHelper.cjs.map +1 -1
  441. package/dist/production/src/mapper/MutationProcessorHelper.js +10 -2
  442. package/dist/production/src/mapper/MutationProcessorHelper.js.map +1 -1
  443. package/dist/production/src/mapper/Result.cjs +10 -27
  444. package/dist/production/src/mapper/Result.cjs.map +1 -1
  445. package/dist/production/src/mapper/Result.js +10 -27
  446. package/dist/production/src/mapper/Result.js.map +1 -1
  447. package/dist/production/src/mapper/delete/DeleteExecutor.cjs +4 -8
  448. package/dist/production/src/mapper/delete/DeleteExecutor.cjs.map +1 -1
  449. package/dist/production/src/mapper/delete/DeleteExecutor.js +5 -9
  450. package/dist/production/src/mapper/delete/DeleteExecutor.js.map +1 -1
  451. package/dist/production/src/mapper/delete/DeleteState.cjs.map +1 -1
  452. package/dist/production/src/mapper/delete/DeleteState.js.map +1 -1
  453. package/dist/production/src/mapper/delete/DeletedEntitiesStorage.cjs.map +1 -1
  454. package/dist/production/src/mapper/delete/DeletedEntitiesStorage.js.map +1 -1
  455. package/dist/production/src/mapper/delete/helpers.cjs.map +1 -1
  456. package/dist/production/src/mapper/delete/helpers.js.map +1 -1
  457. package/dist/production/src/mapper/insert/InsertBuilder.cjs +13 -21
  458. package/dist/production/src/mapper/insert/InsertBuilder.cjs.map +1 -1
  459. package/dist/production/src/mapper/insert/InsertBuilder.js +14 -22
  460. package/dist/production/src/mapper/insert/InsertBuilder.js.map +1 -1
  461. package/dist/production/src/mapper/insert/InsertBuilderFactory.cjs.map +1 -1
  462. package/dist/production/src/mapper/insert/InsertBuilderFactory.js.map +1 -1
  463. package/dist/production/src/mapper/insert/Inserter.cjs +43 -21
  464. package/dist/production/src/mapper/insert/Inserter.cjs.map +1 -1
  465. package/dist/production/src/mapper/insert/Inserter.js +45 -23
  466. package/dist/production/src/mapper/insert/Inserter.js.map +1 -1
  467. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs +23 -79
  468. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
  469. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js +23 -79
  470. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  471. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs +43 -0
  472. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -0
  473. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js +43 -0
  474. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -0
  475. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs +40 -0
  476. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -0
  477. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js +40 -0
  478. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -0
  479. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs +38 -0
  480. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -0
  481. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js +38 -0
  482. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -0
  483. package/dist/production/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.cjs +23 -32
  484. package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -0
  485. package/dist/production/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.js +23 -32
  486. package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -0
  487. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs +65 -0
  488. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -0
  489. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js +65 -0
  490. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -0
  491. package/dist/production/src/mapper/select/ConditionBuilder.cjs.map +1 -1
  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.map +1 -1
  506. package/dist/production/src/mapper/select/SelectBuilder.js.map +1 -1
  507. package/dist/production/src/mapper/select/SelectHydrator.cjs.map +1 -1
  508. package/dist/production/src/mapper/select/SelectHydrator.js.map +1 -1
  509. package/dist/production/src/mapper/select/WhereBuilder.cjs.map +1 -1
  510. package/dist/production/src/mapper/select/WhereBuilder.js.map +1 -1
  511. package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs +3 -0
  512. package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  513. package/dist/production/src/mapper/select/handlers/FieldsVisitor.js +3 -0
  514. package/dist/production/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  515. package/dist/production/src/mapper/select/handlers/FieldsVisitorFactory.cjs.map +1 -1
  516. package/dist/production/src/mapper/select/handlers/FieldsVisitorFactory.js.map +1 -1
  517. package/dist/production/src/mapper/select/handlers/MetaHandler.cjs.map +1 -1
  518. package/dist/production/src/mapper/select/handlers/MetaHandler.js.map +1 -1
  519. package/dist/production/src/mapper/select/optimizer/ConditionOptimizer.cjs.map +1 -1
  520. package/dist/production/src/mapper/select/optimizer/ConditionOptimizer.js.map +1 -1
  521. package/dist/production/src/mapper/select/optimizer/WhereOptimizer.cjs.map +1 -1
  522. package/dist/production/src/mapper/select/optimizer/WhereOptimizer.js.map +1 -1
  523. package/dist/production/src/mapper/select/optimizer/WhereReplacer.cjs.map +1 -1
  524. package/dist/production/src/mapper/select/optimizer/WhereReplacer.js.map +1 -1
  525. package/dist/production/src/mapper/select/optimizer/helpers.cjs.map +1 -1
  526. package/dist/production/src/mapper/select/optimizer/helpers.js.map +1 -1
  527. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.cjs +36 -36
  528. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
  529. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.js +36 -36
  530. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
  531. package/dist/production/src/mapper/update/UpdateBuilder.cjs +14 -19
  532. package/dist/production/src/mapper/update/UpdateBuilder.cjs.map +1 -1
  533. package/dist/production/src/mapper/update/UpdateBuilder.js +15 -20
  534. package/dist/production/src/mapper/update/UpdateBuilder.js.map +1 -1
  535. package/dist/production/src/mapper/update/UpdateBuilderFactory.cjs.map +1 -1
  536. package/dist/production/src/mapper/update/UpdateBuilderFactory.js.map +1 -1
  537. package/dist/production/src/mapper/update/Updater.cjs +45 -17
  538. package/dist/production/src/mapper/update/Updater.cjs.map +1 -1
  539. package/dist/production/src/mapper/update/Updater.js +47 -19
  540. package/dist/production/src/mapper/update/Updater.js.map +1 -1
  541. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs +84 -0
  542. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -0
  543. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js +84 -0
  544. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -0
  545. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs +88 -0
  546. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -0
  547. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js +88 -0
  548. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -0
  549. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs +87 -0
  550. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -0
  551. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js +87 -0
  552. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -0
  553. package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs +147 -0
  554. package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -0
  555. package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js +147 -0
  556. package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -0
  557. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs +183 -0
  558. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -0
  559. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js +183 -0
  560. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -0
  561. package/dist/production/src/resolvers/GraphQlQueryAstFactory.cjs.map +1 -1
  562. package/dist/production/src/resolvers/GraphQlQueryAstFactory.js.map +1 -1
  563. package/dist/production/src/resolvers/MutationResolver.cjs +8 -4
  564. package/dist/production/src/resolvers/MutationResolver.cjs.map +1 -1
  565. package/dist/production/src/resolvers/MutationResolver.js +8 -4
  566. package/dist/production/src/resolvers/MutationResolver.js.map +1 -1
  567. package/dist/production/src/resolvers/ReadHelpers.cjs.map +1 -1
  568. package/dist/production/src/resolvers/ReadHelpers.js.map +1 -1
  569. package/dist/production/src/resolvers/ReadResolver.cjs.map +1 -1
  570. package/dist/production/src/resolvers/ReadResolver.js.map +1 -1
  571. package/dist/production/src/resolvers/ValidationResolver.cjs.map +1 -1
  572. package/dist/production/src/resolvers/ValidationResolver.js.map +1 -1
  573. package/dist/production/src/schema/ColumnTypeResolver.cjs.map +1 -1
  574. package/dist/production/src/schema/ColumnTypeResolver.js.map +1 -1
  575. package/dist/production/src/schema/ConditionTypeProvider.cjs.map +1 -1
  576. package/dist/production/src/schema/ConditionTypeProvider.js.map +1 -1
  577. package/dist/production/src/schema/CustomTypesProvider.cjs.map +1 -1
  578. package/dist/production/src/schema/CustomTypesProvider.js.map +1 -1
  579. package/dist/production/src/schema/EntityTypeProvider.cjs.map +1 -1
  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.map +1 -1
  586. package/dist/production/src/schema/GraphQlSchemaBuilder.js.map +1 -1
  587. package/dist/production/src/schema/GraphQlSchemaBuilderFactory.cjs.map +1 -1
  588. package/dist/production/src/schema/GraphQlSchemaBuilderFactory.js.map +1 -1
  589. package/dist/production/src/schema/MutationProvider.cjs.map +1 -1
  590. package/dist/production/src/schema/MutationProvider.js.map +1 -1
  591. package/dist/production/src/schema/OperationExtension.cjs.map +1 -1
  592. package/dist/production/src/schema/OperationExtension.js.map +1 -1
  593. package/dist/production/src/schema/OrderByTypeProvider.cjs.map +1 -1
  594. package/dist/production/src/schema/OrderByTypeProvider.js.map +1 -1
  595. package/dist/production/src/schema/PaginatedFieldConfigFactory.cjs.map +1 -1
  596. package/dist/production/src/schema/PaginatedFieldConfigFactory.js.map +1 -1
  597. package/dist/production/src/schema/QueryProvider.cjs.map +1 -1
  598. package/dist/production/src/schema/QueryProvider.js.map +1 -1
  599. package/dist/production/src/schema/ResultSchemaTypeProvider.cjs.map +1 -1
  600. package/dist/production/src/schema/ResultSchemaTypeProvider.js.map +1 -1
  601. package/dist/production/src/schema/ValidationQueriesProvider.cjs.map +1 -1
  602. package/dist/production/src/schema/ValidationQueriesProvider.js.map +1 -1
  603. package/dist/production/src/schema/WhereTypeProvider.cjs.map +1 -1
  604. package/dist/production/src/schema/WhereTypeProvider.js.map +1 -1
  605. package/dist/production/src/schema/entities/FieldArgsVisitor.cjs.map +1 -1
  606. package/dist/production/src/schema/entities/FieldArgsVisitor.js.map +1 -1
  607. package/dist/production/src/schema/entities/FieldTypeVisitor.cjs.map +1 -1
  608. package/dist/production/src/schema/entities/FieldTypeVisitor.js.map +1 -1
  609. package/dist/production/src/schema/mutations/ConnectOrCreateRelationInputProvider.cjs.map +1 -1
  610. package/dist/production/src/schema/mutations/ConnectOrCreateRelationInputProvider.js.map +1 -1
  611. package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.cjs.map +1 -1
  612. package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
  613. package/dist/production/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
  614. package/dist/production/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  615. package/dist/production/src/schema/mutations/CreateEntityRelationInputFieldVisitor.cjs.map +1 -1
  616. package/dist/production/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js.map +1 -1
  617. package/dist/production/src/schema/mutations/CreateEntityRelationInputProvider.cjs.map +1 -1
  618. package/dist/production/src/schema/mutations/CreateEntityRelationInputProvider.js.map +1 -1
  619. package/dist/production/src/schema/mutations/EntityInputProvider.cjs.map +1 -1
  620. package/dist/production/src/schema/mutations/EntityInputProvider.js.map +1 -1
  621. package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs.map +1 -1
  622. package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
  623. package/dist/production/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
  624. package/dist/production/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  625. package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs +2 -0
  626. package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
  627. package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +2 -0
  628. package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
  629. package/dist/production/src/schema/mutations/UpdateEntityRelationInputProvider.cjs.map +1 -1
  630. package/dist/production/src/schema/mutations/UpdateEntityRelationInputProvider.js.map +1 -1
  631. package/dist/production/src/schema/utils.cjs.map +1 -1
  632. package/dist/production/src/schema/utils.js.map +1 -1
  633. package/dist/production/src/utils/Mutex.cjs.map +1 -1
  634. package/dist/production/src/utils/Mutex.js.map +1 -1
  635. package/dist/production/src/utils/ResolveInfoUtils.cjs.map +1 -1
  636. package/dist/production/src/utils/ResolveInfoUtils.js.map +1 -1
  637. package/dist/production/src/utils/accessor.cjs.map +1 -1
  638. package/dist/production/src/utils/accessor.js.map +1 -1
  639. package/dist/production/src/utils/isIt.cjs.map +1 -1
  640. package/dist/production/src/utils/isIt.js.map +1 -1
  641. package/dist/production/src/utils/object.cjs.map +1 -1
  642. package/dist/production/src/utils/object.js.map +1 -1
  643. package/dist/production/src/utils/paginationUtils.cjs.map +1 -1
  644. package/dist/production/src/utils/paginationUtils.js.map +1 -1
  645. package/dist/production/src/utils/singletonFactory.cjs.map +1 -1
  646. package/dist/production/src/utils/singletonFactory.js.map +1 -1
  647. package/dist/production/src/utils/uniqueWhereFields.cjs.map +1 -1
  648. package/dist/production/src/utils/uniqueWhereFields.js.map +1 -1
  649. package/dist/tests/cases/integration/graphQlRequests/insert/jsonInsert.test.d.ts +2 -0
  650. package/dist/tests/cases/integration/graphQlRequests/insert/jsonInsert.test.d.ts.map +1 -0
  651. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.d.ts +2 -0
  652. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.d.ts.map +1 -0
  653. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.d.ts +2 -0
  654. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.d.ts.map +1 -0
  655. package/dist/tests/cases/integration/graphQlRequests/validation/conditions.test.d.ts +2 -2
  656. package/dist/tests/cases/integration/graphQlRequests/validation/conditions.test.d.ts.map +1 -1
  657. package/dist/tests/cases/integration/graphQlRequests/validation/requiredWhen.test.d.ts +1 -1
  658. package/dist/tests/cases/integration/graphQlRequests/validation/requiredWhen.test.d.ts.map +1 -1
  659. package/dist/tests/cases/integration/graphQlSchema/model.d.ts +4 -4
  660. package/dist/tests/cases/integration/graphQlSchema/model.d.ts.map +1 -1
  661. package/dist/tests/src/assert.d.ts +5 -0
  662. package/dist/tests/src/assert.d.ts.map +1 -0
  663. package/dist/tests/src/test.d.ts.map +1 -1
  664. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  665. package/dist/types/ExecutionContainer.d.ts +8 -5
  666. package/dist/types/ExecutionContainer.d.ts.map +1 -1
  667. package/dist/types/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.d.ts.map +1 -1
  668. package/dist/types/input-validation/ColumnValueResolver.d.ts +1 -1
  669. package/dist/types/input-validation/ColumnValueResolver.d.ts.map +1 -1
  670. package/dist/types/input-validation/ValidationDataSelector.d.ts +1 -1
  671. package/dist/types/input-validation/preValidation/CreateInputPreValidationProcessor.d.ts +3 -3
  672. package/dist/types/input-validation/preValidation/CreateInputPreValidationProcessor.d.ts.map +1 -1
  673. package/dist/types/input-validation/preValidation/InputPreValidator.d.ts +3 -3
  674. package/dist/types/input-validation/preValidation/InputPreValidator.d.ts.map +1 -1
  675. package/dist/types/input-validation/preValidation/UpdateInputPreValidationProcessor.d.ts +4 -4
  676. package/dist/types/input-validation/preValidation/UpdateInputPreValidationProcessor.d.ts.map +1 -1
  677. package/dist/types/inputProcessing/CreateInputProcessor.d.ts +8 -6
  678. package/dist/types/inputProcessing/CreateInputProcessor.d.ts.map +1 -1
  679. package/dist/types/inputProcessing/CreateInputVisitor.d.ts +11 -10
  680. package/dist/types/inputProcessing/CreateInputVisitor.d.ts.map +1 -1
  681. package/dist/types/inputProcessing/UpdateInputProcessor.d.ts +14 -12
  682. package/dist/types/inputProcessing/UpdateInputProcessor.d.ts.map +1 -1
  683. package/dist/types/inputProcessing/UpdateInputVisitor.d.ts +11 -10
  684. package/dist/types/inputProcessing/UpdateInputVisitor.d.ts.map +1 -1
  685. package/dist/types/introspection/IntrospectionSchemaDefinitionFactory.d.ts +1 -3
  686. package/dist/types/introspection/IntrospectionSchemaDefinitionFactory.d.ts.map +1 -1
  687. package/dist/types/introspection/index.d.ts +2 -1
  688. package/dist/types/introspection/index.d.ts.map +1 -1
  689. package/dist/types/introspection/introspection.schema.d.ts +5 -0
  690. package/dist/types/introspection/introspection.schema.d.ts.map +1 -0
  691. package/dist/types/mapper/ColumnValue.d.ts +4 -8
  692. package/dist/types/mapper/ColumnValue.d.ts.map +1 -1
  693. package/dist/types/mapper/EventManager.d.ts +9 -9
  694. package/dist/types/mapper/EventManager.d.ts.map +1 -1
  695. package/dist/types/mapper/Mapper.d.ts +6 -7
  696. package/dist/types/mapper/Mapper.d.ts.map +1 -1
  697. package/dist/types/mapper/MutationProcessorHelper.d.ts +2 -2
  698. package/dist/types/mapper/MutationProcessorHelper.d.ts.map +1 -1
  699. package/dist/types/mapper/Result.d.ts +16 -9
  700. package/dist/types/mapper/Result.d.ts.map +1 -1
  701. package/dist/types/mapper/delete/DeleteExecutor.d.ts.map +1 -1
  702. package/dist/types/mapper/insert/InsertBuilder.d.ts +4 -9
  703. package/dist/types/mapper/insert/InsertBuilder.d.ts.map +1 -1
  704. package/dist/types/mapper/insert/Inserter.d.ts +3 -3
  705. package/dist/types/mapper/insert/Inserter.d.ts.map +1 -1
  706. package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts +11 -8
  707. package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts.map +1 -1
  708. package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts +26 -0
  709. package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts.map +1 -0
  710. package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts +25 -0
  711. package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts.map +1 -0
  712. package/dist/types/mapper/insert/relations/OneHasManyCreateInputProcessor.d.ts +28 -0
  713. package/dist/types/mapper/insert/relations/OneHasManyCreateInputProcessor.d.ts.map +1 -0
  714. package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts +31 -0
  715. package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +1 -0
  716. package/dist/types/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.d.ts +26 -0
  717. package/dist/types/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +1 -0
  718. package/dist/types/mapper/select/handlers/FieldsVisitor.d.ts.map +1 -1
  719. package/dist/types/mapper/types.d.ts +84 -1
  720. package/dist/types/mapper/types.d.ts.map +1 -1
  721. package/dist/types/mapper/update/SqlUpdateInputProcessor.d.ts +12 -8
  722. package/dist/types/mapper/update/SqlUpdateInputProcessor.d.ts.map +1 -1
  723. package/dist/types/mapper/update/UpdateBuilder.d.ts +4 -8
  724. package/dist/types/mapper/update/UpdateBuilder.d.ts.map +1 -1
  725. package/dist/types/mapper/update/Updater.d.ts +2 -2
  726. package/dist/types/mapper/update/Updater.d.ts.map +1 -1
  727. package/dist/types/mapper/update/relations/ManyHasManyUpdateInputProcessor.d.ts +48 -0
  728. package/dist/types/mapper/update/relations/ManyHasManyUpdateInputProcessor.d.ts.map +1 -0
  729. package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts +42 -0
  730. package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts.map +1 -0
  731. package/dist/types/mapper/update/relations/OneHasManyUpdateInputProcessor.d.ts +48 -0
  732. package/dist/types/mapper/update/relations/OneHasManyUpdateInputProcessor.d.ts.map +1 -0
  733. package/dist/types/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.d.ts +38 -0
  734. package/dist/types/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +1 -0
  735. package/dist/types/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.d.ts +42 -0
  736. package/dist/types/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +1 -0
  737. package/dist/types/resolvers/MutationResolver.d.ts.map +1 -1
  738. package/dist/types/schema/mutations/UpdateEntityRelationInputFieldVisitor.d.ts.map +1 -1
  739. package/dist/types/tsconfig.tsbuildinfo +1 -1
  740. package/graphql.codegen.yml +2 -2
  741. package/package.json +14 -18
  742. package/src/ExecutionContainer.ts +5 -2
  743. package/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.ts +35 -2
  744. package/src/input-validation/ColumnValueResolver.ts +1 -1
  745. package/src/input-validation/preValidation/CreateInputPreValidationProcessor.ts +2 -2
  746. package/src/input-validation/preValidation/InputPreValidator.ts +10 -12
  747. package/src/input-validation/preValidation/UpdateInputPreValidationProcessor.ts +3 -3
  748. package/src/inputProcessing/CreateInputProcessor.ts +8 -6
  749. package/src/inputProcessing/CreateInputVisitor.ts +32 -33
  750. package/src/inputProcessing/UpdateInputProcessor.ts +13 -11
  751. package/src/inputProcessing/UpdateInputVisitor.ts +44 -40
  752. package/src/introspection/IntrospectionSchemaDefinitionFactory.ts +2 -194
  753. package/src/introspection/index.ts +2 -1
  754. package/src/introspection/introspection.schema.ts +194 -0
  755. package/src/mapper/ColumnValue.ts +11 -25
  756. package/src/mapper/ErrorUtils.ts +1 -1
  757. package/src/mapper/EventManager.ts +9 -13
  758. package/src/mapper/Mapper.ts +19 -37
  759. package/src/mapper/MutationProcessorHelper.ts +16 -8
  760. package/src/mapper/Result.ts +14 -49
  761. package/src/mapper/delete/DeleteExecutor.ts +4 -8
  762. package/src/mapper/insert/InsertBuilder.ts +23 -34
  763. package/src/mapper/insert/Inserter.ts +55 -41
  764. package/src/mapper/insert/SqlCreateInputProcessor.ts +36 -91
  765. package/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.ts +59 -0
  766. package/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.ts +57 -0
  767. package/src/mapper/insert/relations/OneHasManyCreateInputProcessor.ts +52 -0
  768. package/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.ts +90 -0
  769. package/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.ts +87 -0
  770. package/src/mapper/select/handlers/FieldsVisitor.ts +3 -0
  771. package/src/mapper/types.ts +115 -1
  772. package/src/mapper/update/SqlUpdateInputProcessor.ts +50 -47
  773. package/src/mapper/update/UpdateBuilder.ts +25 -31
  774. package/src/mapper/update/Updater.ts +55 -35
  775. package/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.ts +112 -0
  776. package/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.ts +125 -0
  777. package/src/mapper/update/relations/OneHasManyUpdateInputProcessor.ts +113 -0
  778. package/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.ts +184 -0
  779. package/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.ts +240 -0
  780. package/src/resolvers/MutationResolver.ts +6 -4
  781. package/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts +5 -0
  782. package/tests/cases/bugs/bug-filter-or.test.ts +1 -1
  783. package/tests/cases/bugs/bug-update-by-nested-unique.test.ts +1 -1
  784. package/tests/cases/bugs/bug102.test.ts +1 -1
  785. package/tests/cases/integration/graphQlRequests/delete/aclDelete.test.ts +1 -1
  786. package/tests/cases/integration/graphQlRequests/delete/additionalDeleteFilter.test.ts +1 -1
  787. package/tests/cases/integration/graphQlRequests/delete/cascadeDelete.test.ts +1 -1
  788. package/tests/cases/integration/graphQlRequests/delete/deleteById.test.ts +1 -1
  789. package/tests/cases/integration/graphQlRequests/delete/orphanRemoval.test.ts +1 -1
  790. package/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.ts +1 -1
  791. package/tests/cases/integration/graphQlRequests/delete/setNullOnDelete.test.ts +1 -1
  792. package/tests/cases/integration/graphQlRequests/insert/acl/setField.test.ts +1 -1
  793. package/tests/cases/integration/graphQlRequests/insert/aclInsert.test.ts +1 -1
  794. package/tests/cases/integration/graphQlRequests/insert/basicInsert.test.ts +1 -1
  795. package/tests/cases/integration/graphQlRequests/insert/insertCustomId.test.ts +1 -1
  796. package/tests/cases/integration/graphQlRequests/insert/jsonInsert.test.ts +37 -0
  797. package/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/create.test.ts +1 -1
  798. package/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/create.test.ts +1 -1
  799. package/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.ts +1 -1
  800. package/tests/cases/integration/graphQlRequests/insert/manyHasOne/create.test.ts +1 -1
  801. package/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.ts +1 -1
  802. package/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.ts +9 -9
  803. package/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/create.test.ts +1 -1
  804. package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/create.test.ts +1 -1
  805. package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/empty.test.ts +1 -1
  806. package/tests/cases/integration/graphQlRequests/insert/validation/toBeFixed.test.ts +1 -1
  807. package/tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.ts +1 -1
  808. package/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.ts +1 -1
  809. package/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.ts +1 -1
  810. package/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.ts +1 -1
  811. package/tests/cases/integration/graphQlRequests/query/acl/orPredicate.test.ts +1 -1
  812. package/tests/cases/integration/graphQlRequests/query/acl/predicateElimination.test.ts +1 -1
  813. package/tests/cases/integration/graphQlRequests/query/acl/relationAcl.test.ts +1 -1
  814. package/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.ts +1 -1
  815. package/tests/cases/integration/graphQlRequests/query/acl/sameRowAndFieldPredicate.test.ts +1 -1
  816. package/tests/cases/integration/graphQlRequests/query/filter/backReferencedFilter.test.ts +1 -1
  817. package/tests/cases/integration/graphQlRequests/query/filter/complexCondition.test.ts +1 -1
  818. package/tests/cases/integration/graphQlRequests/query/filter/composedFilter.test.ts +1 -1
  819. package/tests/cases/integration/graphQlRequests/query/filter/containsQuery.test.ts +1 -1
  820. package/tests/cases/integration/graphQlRequests/query/filter/manyHasManyOwnerRelation.test.ts +1 -1
  821. package/tests/cases/integration/graphQlRequests/query/filter/manyHasOneRelation.test.ts +1 -1
  822. package/tests/cases/integration/graphQlRequests/query/filter/oneHasManyRelation.test.ts +1 -1
  823. package/tests/cases/integration/graphQlRequests/query/formatting/dateFormat.test.ts +1 -1
  824. package/tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.ts +1 -1
  825. package/tests/cases/integration/graphQlRequests/query/graphqlFeatures/fragments.test.ts +1 -1
  826. package/tests/cases/integration/graphQlRequests/query/misc/aliasedType.test.ts +1 -1
  827. package/tests/cases/integration/graphQlRequests/query/misc/longAliasHash.test.ts +1 -1
  828. package/tests/cases/integration/graphQlRequests/query/misc/reducedHasMany.test.ts +70 -1
  829. package/tests/cases/integration/graphQlRequests/query/misc/transaction.test.ts +1 -1
  830. package/tests/cases/integration/graphQlRequests/query/pagination/hasManyLimit.test.ts +1 -1
  831. package/tests/cases/integration/graphQlRequests/query/pagination/paginate.test.ts +1 -1
  832. package/tests/cases/integration/graphQlRequests/query/pagination/paginateAliased.test.ts +1 -1
  833. package/tests/cases/integration/graphQlRequests/query/pagination/simpleLimit.test.ts +1 -1
  834. package/tests/cases/integration/graphQlRequests/query/relations/advanced.test.ts +1 -1
  835. package/tests/cases/integration/graphQlRequests/query/relations/manyHasManyInverse.test.ts +1 -1
  836. package/tests/cases/integration/graphQlRequests/query/relations/manyHasManyOwning.test.ts +2 -2
  837. package/tests/cases/integration/graphQlRequests/query/relations/manyHasOne.test.ts +1 -1
  838. package/tests/cases/integration/graphQlRequests/query/relations/oneHasMany.test.ts +1 -1
  839. package/tests/cases/integration/graphQlRequests/query/relations/oneHasOneInverse.test.ts +1 -1
  840. package/tests/cases/integration/graphQlRequests/query/relations/oneHasOneOwner.test.ts +1 -1
  841. package/tests/cases/integration/graphQlRequests/query/sorting/byRelations.test.ts +1 -1
  842. package/tests/cases/integration/graphQlRequests/query/sorting/defaultOrdering.test.ts +1 -1
  843. package/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.ts +1 -1
  844. package/tests/cases/integration/graphQlRequests/query/sorting/randomSort.test.ts +1 -1
  845. package/tests/cases/integration/graphQlRequests/query/sorting/sortNulls.test.ts +1 -1
  846. package/tests/cases/integration/graphQlRequests/query/sorting/sortedHasMany.test.ts +1 -1
  847. package/tests/cases/integration/graphQlRequests/query/unique/basicQueryById.test.ts +1 -1
  848. package/tests/cases/integration/graphQlRequests/query/unique/composedUnique.test.ts +1 -1
  849. package/tests/cases/integration/graphQlRequests/query/unique/oneHasManyUnique.test.ts +1 -1
  850. package/tests/cases/integration/graphQlRequests/query/unique/uniqueWithFilter.test.ts +1 -1
  851. package/tests/cases/integration/graphQlRequests/query/view/view.test.ts +1 -1
  852. package/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.ts +1 -1
  853. package/tests/cases/integration/graphQlRequests/update/additionalFilter.test.ts +1 -1
  854. package/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.ts +1 -1
  855. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/connect.test.ts +1 -1
  856. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/create.test.ts +1 -1
  857. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/delete.test.ts +1 -1
  858. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/disconnect.test.ts +1 -1
  859. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.ts +1 -1
  860. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.ts +1 -1
  861. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connect.test.ts +1 -1
  862. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.ts +100 -0
  863. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/create.test.ts +1 -1
  864. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/delete.test.ts +1 -1
  865. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/disconnect.test.ts +1 -1
  866. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.ts +1 -1
  867. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.ts +1 -1
  868. package/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.ts +1 -1
  869. package/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.ts +1 -1
  870. package/tests/cases/integration/graphQlRequests/update/manyHasOne/delete.test.ts +1 -1
  871. package/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.ts +1 -1
  872. package/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.ts +1 -6
  873. package/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.ts +1 -6
  874. package/tests/cases/integration/graphQlRequests/update/oneHasMany/combination.test.ts +1 -1
  875. package/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.ts +1 -1
  876. package/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.ts +90 -0
  877. package/tests/cases/integration/graphQlRequests/update/oneHasMany/create.test.ts +1 -1
  878. package/tests/cases/integration/graphQlRequests/update/oneHasMany/delete.test.ts +1 -1
  879. package/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.ts +1 -1
  880. package/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.ts +1 -1
  881. package/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.ts +1 -1
  882. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.ts +1 -1
  883. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.ts +1 -1
  884. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/delete.test.ts +1 -1
  885. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.ts +1 -1
  886. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.ts +1 -1
  887. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.ts +10 -1
  888. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.ts +1 -1
  889. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.ts +1 -1
  890. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.ts +1 -1
  891. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/delete.test.ts +1 -1
  892. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.ts +1 -1
  893. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.ts +1 -6
  894. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.ts +1 -6
  895. package/tests/cases/integration/graphQlRequests/update/queryPortal.test.ts +1 -1
  896. package/tests/cases/integration/graphQlRequests/update/transaction.test.ts +1 -1
  897. package/tests/cases/integration/graphQlRequests/update/validation/toBeFixed.test.ts +1 -1
  898. package/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.ts +1 -1
  899. package/tests/cases/integration/graphQlRequests/validation/conditions.test.ts +1 -1
  900. package/tests/cases/integration/graphQlRequests/validation/nestedValidation.test.ts +1 -1
  901. package/tests/cases/integration/graphQlRequests/validation/optionalAssert.test.ts +1 -1
  902. package/tests/cases/integration/graphQlRequests/validation/required.test.ts +1 -1
  903. package/tests/cases/integration/graphQlRequests/validation/requiredWhen.test.ts +1 -1
  904. package/tests/cases/integration/graphQlRequests/validation/rules/andRule.test.ts +1 -1
  905. package/tests/cases/integration/graphQlRequests/validation/rules/lengthRangeRule.test.ts +1 -1
  906. package/tests/cases/integration/graphQlRequests/validation/rules/maxLengthRule.test.ts +1 -1
  907. package/tests/cases/integration/graphQlRequests/validation/rules/minLength.test.ts +1 -1
  908. package/tests/cases/integration/graphQlRequests/validation/rules/notEmptyRule.test.ts +1 -1
  909. package/tests/cases/integration/graphQlRequests/validation/rules/notRule.test.ts +1 -1
  910. package/tests/cases/integration/graphQlRequests/validation/rules/orRule.test.ts +1 -1
  911. package/tests/cases/integration/graphQlRequests/validation/rules/patternRule.test.ts +1 -2
  912. package/tests/cases/integration/graphQlRequests/validation/rules/rangeRule.test.ts +1 -1
  913. package/tests/cases/integration/graphQlSchema/graphQlSchemaBuilder.test.ts +4 -4
  914. package/tests/cases/integration/graphQlSchema/schema-acl-allowed.gql +6 -0
  915. package/tests/cases/integration/graphQlSchema/schema-acl-create-only.gql +28 -28
  916. package/tests/cases/integration/graphQlSchema/schema-acl-restricted-create.gql +5 -0
  917. package/tests/cases/integration/graphQlSchema/schema-acl-restricted-delete.gql +6 -0
  918. package/tests/cases/integration/graphQlSchema/schema-acl-restricted-update.gql +5 -0
  919. package/tests/cases/integration/graphQlSchema/schema-basic.gql +15 -0
  920. package/tests/cases/integration/graphQlSchema/schema-bug-66.gql +7 -0
  921. package/tests/cases/integration/graphQlSchema/schema-custom-primary.gql +15 -0
  922. package/tests/cases/integration/graphQlSchema/schema-has-many-reduction.gql +7 -0
  923. package/tests/cases/integration/graphQlSchema/schema-new-builder.gql +123 -107
  924. package/tests/cases/unit/aclVariablesFactory.test.ts +5 -5
  925. package/tests/cases/unit/conditionOptimizer.test.ts +7 -1
  926. package/tests/cases/unit/inputPreValidator.test.ts +3 -2
  927. package/tests/cases/unit/inputValidation.test.ts +7 -6
  928. package/tests/cases/unit/orderbyHelper.test.ts +3 -2
  929. package/tests/cases/unit/permissionMerger.test.ts +2 -1
  930. package/tests/cases/unit/predicatesFactory.test.ts +2 -1
  931. package/tests/cases/unit/predicatesInjector.test.ts +2 -1
  932. package/tests/cases/unit/uuidType.test.ts +5 -5
  933. package/tests/cases/unit/variableInjector.test.ts +2 -1
  934. package/tests/cases/unit/whereBuilder.test.ts +2 -1
  935. package/tests/cases/unit/whereOptimizer.test.ts +2 -1
  936. package/tests/src/assert.ts +10 -0
  937. package/tests/src/test.ts +4 -1
  938. package/tests/src/testGraphql.ts +3 -3
  939. package/dist/development/src/mapper/DataManipulationBuilder.cjs +0 -5
  940. package/dist/development/src/mapper/DataManipulationBuilder.cjs.map +0 -1
  941. package/dist/development/src/mapper/DataManipulationBuilder.js +0 -5
  942. package/dist/development/src/mapper/DataManipulationBuilder.js.map +0 -1
  943. package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.cjs +0 -75
  944. package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.cjs.map +0 -1
  945. package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.js +0 -75
  946. package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.js.map +0 -1
  947. package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.cjs +0 -114
  948. package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.cjs.map +0 -1
  949. package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.js +0 -114
  950. package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.js.map +0 -1
  951. package/dist/development/src/mapper/relations/OneHasManyInputProcessor.cjs +0 -72
  952. package/dist/development/src/mapper/relations/OneHasManyInputProcessor.cjs.map +0 -1
  953. package/dist/development/src/mapper/relations/OneHasManyInputProcessor.js +0 -72
  954. package/dist/development/src/mapper/relations/OneHasManyInputProcessor.js.map +0 -1
  955. package/dist/development/src/mapper/relations/OneHasOneInverseCreateInputProcessor.cjs.map +0 -1
  956. package/dist/development/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js.map +0 -1
  957. package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs +0 -131
  958. package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +0 -1
  959. package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js +0 -131
  960. package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js.map +0 -1
  961. package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs +0 -71
  962. package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs.map +0 -1
  963. package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js +0 -71
  964. package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js.map +0 -1
  965. package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs +0 -200
  966. package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +0 -1
  967. package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js +0 -200
  968. package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js.map +0 -1
  969. package/dist/production/src/mapper/DataManipulationBuilder.cjs +0 -5
  970. package/dist/production/src/mapper/DataManipulationBuilder.cjs.map +0 -1
  971. package/dist/production/src/mapper/DataManipulationBuilder.js +0 -5
  972. package/dist/production/src/mapper/DataManipulationBuilder.js.map +0 -1
  973. package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.cjs +0 -75
  974. package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.cjs.map +0 -1
  975. package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.js +0 -75
  976. package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.js.map +0 -1
  977. package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.cjs +0 -114
  978. package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.cjs.map +0 -1
  979. package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.js +0 -114
  980. package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.js.map +0 -1
  981. package/dist/production/src/mapper/relations/OneHasManyInputProcessor.cjs +0 -72
  982. package/dist/production/src/mapper/relations/OneHasManyInputProcessor.cjs.map +0 -1
  983. package/dist/production/src/mapper/relations/OneHasManyInputProcessor.js +0 -72
  984. package/dist/production/src/mapper/relations/OneHasManyInputProcessor.js.map +0 -1
  985. package/dist/production/src/mapper/relations/OneHasOneInverseCreateInputProcessor.cjs.map +0 -1
  986. package/dist/production/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js.map +0 -1
  987. package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs +0 -131
  988. package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +0 -1
  989. package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js +0 -131
  990. package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js.map +0 -1
  991. package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs +0 -71
  992. package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs.map +0 -1
  993. package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js +0 -71
  994. package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js.map +0 -1
  995. package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs +0 -200
  996. package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +0 -1
  997. package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js +0 -200
  998. package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js.map +0 -1
  999. package/dist/types/mapper/DataManipulationBuilder.d.ts +0 -7
  1000. package/dist/types/mapper/DataManipulationBuilder.d.ts.map +0 -1
  1001. package/dist/types/mapper/relations/ManyHasManyInputProcessor.d.ts +0 -32
  1002. package/dist/types/mapper/relations/ManyHasManyInputProcessor.d.ts.map +0 -1
  1003. package/dist/types/mapper/relations/ManyHasOneInputProcessor.d.ts +0 -32
  1004. package/dist/types/mapper/relations/ManyHasOneInputProcessor.d.ts.map +0 -1
  1005. package/dist/types/mapper/relations/OneHasManyInputProcessor.d.ts +0 -29
  1006. package/dist/types/mapper/relations/OneHasManyInputProcessor.d.ts.map +0 -1
  1007. package/dist/types/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts +0 -21
  1008. package/dist/types/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +0 -1
  1009. package/dist/types/mapper/relations/OneHasOneInverseUpdateInputProcessor.d.ts +0 -32
  1010. package/dist/types/mapper/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +0 -1
  1011. package/dist/types/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts +0 -21
  1012. package/dist/types/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +0 -1
  1013. package/dist/types/mapper/relations/OneHasOneOwningUpdateInputProcessor.d.ts +0 -37
  1014. package/dist/types/mapper/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +0 -1
  1015. package/src/mapper/DataManipulationBuilder.ts +0 -12
  1016. package/src/mapper/relations/ManyHasManyInputProcessor.ts +0 -108
  1017. package/src/mapper/relations/ManyHasOneInputProcessor.ts +0 -158
  1018. package/src/mapper/relations/OneHasManyInputProcessor.ts +0 -101
  1019. package/src/mapper/relations/OneHasOneInverseCreateInputProcessor.ts +0 -99
  1020. package/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.ts +0 -164
  1021. package/src/mapper/relations/OneHasOneOwningCreateInputProcessor.ts +0 -92
  1022. package/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.ts +0 -253
@@ -1 +1 @@
1
- {"version":3,"file":"MutationProcessorHelper.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/MutationProcessorHelper.ts"],"sourcesContent":["import { MutationResultList, prependPath } from './Result'\nimport { Model } from '@contember/schema'\n\nexport const hasManyProcessor = <Context extends { relation: Model.AnyRelation; index: number; alias?: string }>(\n\tinnerProcessor: (context: Context) => Promise<MutationResultList>,\n) => {\n\treturn async (context: Context): Promise<MutationResultList> => {\n\t\tconst { relation, index, alias } = context\n\t\tconst path = [{ field: relation.name }, { index, alias }]\n\t\treturn prependPath(path, await innerProcessor(context))\n\t}\n}\n\nexport const hasOneProcessor = <Context extends { relation: Model.AnyRelation }>(\n\tinnerProcessor: (context: Context) => Promise<MutationResultList>,\n) => {\n\treturn async (context: Context): Promise<MutationResultList> => {\n\t\tconst { relation } = context\n\t\tconst path = [{ field: relation.name }]\n\t\treturn prependPath(path, await innerProcessor(context))\n\t}\n}\n"],"names":["prependPath"],"mappings":";;;AAGa,MAAA,mBAAmB,CAC/B,mBACI;AACJ,SAAO,OAAO,YAAkD;AAC/D,UAAM,EAAE,UAAU,OAAO,MAAA,IAAU;AAC7B,UAAA,OAAO,CAAC,EAAE,OAAO,SAAS,QAAQ,EAAE,OAAO,MAAA,CAAO;AACxD,WAAOA,OAAY,YAAA,MAAM,MAAM,eAAe,OAAO,CAAC;AAAA,EAAA;AAExD;AAEa,MAAA,kBAAkB,CAC9B,mBACI;AACJ,SAAO,OAAO,YAAkD;AACzD,UAAA,EAAE,SAAa,IAAA;AACrB,UAAM,OAAO,CAAC,EAAE,OAAO,SAAS,KAAM,CAAA;AACtC,WAAOA,OAAY,YAAA,MAAM,MAAM,eAAe,OAAO,CAAC;AAAA,EAAA;AAExD;;;"}
1
+ {"version":3,"file":"MutationProcessorHelper.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/MutationProcessorHelper.ts"],"sourcesContent":["import { MutationResultList, prependPath } from './Result'\nimport { Model } from '@contember/schema'\n\nexport const hasManyProcessor = <Context extends { relation: Model.AnyRelation; index: number; alias?: string }, Args>(\n\tinnerProcessor: (context: Context) => Promise<MutationResultList | ((args: Args) => Promise<MutationResultList>)>,\n) => {\n\treturn async (context: Context): Promise<MutationResultList | ((args: Args) => Promise<MutationResultList>)> => {\n\t\tconst { relation, index, alias } = context\n\t\tconst path = [{ field: relation.name }, { index, alias }]\n\t\tconst innerResult = await innerProcessor(context)\n\t\tif (typeof innerResult === 'function') {\n\t\t\treturn async (it: Args) => prependPath(path, await innerResult(it))\n\t\t}\n\t\treturn prependPath(path, innerResult)\n\t}\n}\n\nexport const hasOneProcessor = <Context extends { relation: Model.AnyRelation }, Args>(\n\tinnerProcessor: (context: Context) => Promise<MutationResultList | ((args: Args) => Promise<MutationResultList>)>,\n) => {\n\treturn async (context: Context): Promise<MutationResultList | ((args: Args) => Promise<MutationResultList>)> => {\n\t\tconst { relation } = context\n\t\tconst path = [{ field: relation.name }]\n\t\tconst innerResult = await innerProcessor(context)\n\t\tif (typeof innerResult === 'function') {\n\t\t\treturn async (it: Args) => prependPath(path, await innerResult(it))\n\t\t}\n\t\treturn prependPath(path, innerResult)\n\t}\n}\n"],"names":["prependPath"],"mappings":";;;AAGa,MAAA,mBAAmB,CAC/B,mBACI;AACJ,SAAO,OAAO,YAAkG;AAC/G,UAAM,EAAE,UAAU,OAAO,MAAU,IAAA;AAC7B,UAAA,OAAO,CAAC,EAAE,OAAO,SAAS,QAAQ,EAAE,OAAO,OAAO;AAClD,UAAA,cAAc,MAAM,eAAe,OAAO;AAC5C,QAAA,OAAO,gBAAgB,YAAY;AACtC,aAAO,OAAO,OAAaA,OAAA,YAAY,MAAM,MAAM,YAAY,EAAE,CAAC;AAAA,IAAA;AAE5D,WAAAA,OAAA,YAAY,MAAM,WAAW;AAAA,EACrC;AACD;AAEa,MAAA,kBAAkB,CAC9B,mBACI;AACJ,SAAO,OAAO,YAAkG;AACzG,UAAA,EAAE,aAAa;AACrB,UAAM,OAAO,CAAC,EAAE,OAAO,SAAS,MAAM;AAChC,UAAA,cAAc,MAAM,eAAe,OAAO;AAC5C,QAAA,OAAO,gBAAgB,YAAY;AACtC,aAAO,OAAO,OAAaA,OAAA,YAAY,MAAM,MAAM,YAAY,EAAE,CAAC;AAAA,IAAA;AAE5D,WAAAA,OAAA,YAAY,MAAM,WAAW;AAAA,EACrC;AACD;;;"}
@@ -3,14 +3,22 @@ const hasManyProcessor = (innerProcessor) => {
3
3
  return async (context) => {
4
4
  const { relation, index, alias } = context;
5
5
  const path = [{ field: relation.name }, { index, alias }];
6
- return prependPath(path, await innerProcessor(context));
6
+ const innerResult = await innerProcessor(context);
7
+ if (typeof innerResult === "function") {
8
+ return async (it) => prependPath(path, await innerResult(it));
9
+ }
10
+ return prependPath(path, innerResult);
7
11
  };
8
12
  };
9
13
  const hasOneProcessor = (innerProcessor) => {
10
14
  return async (context) => {
11
15
  const { relation } = context;
12
16
  const path = [{ field: relation.name }];
13
- return prependPath(path, await innerProcessor(context));
17
+ const innerResult = await innerProcessor(context);
18
+ if (typeof innerResult === "function") {
19
+ return async (it) => prependPath(path, await innerResult(it));
20
+ }
21
+ return prependPath(path, innerResult);
14
22
  };
15
23
  };
16
24
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"MutationProcessorHelper.js","sources":["../../../../../packages/engine-content-api/src/mapper/MutationProcessorHelper.ts"],"sourcesContent":["import { MutationResultList, prependPath } from './Result'\nimport { Model } from '@contember/schema'\n\nexport const hasManyProcessor = <Context extends { relation: Model.AnyRelation; index: number; alias?: string }>(\n\tinnerProcessor: (context: Context) => Promise<MutationResultList>,\n) => {\n\treturn async (context: Context): Promise<MutationResultList> => {\n\t\tconst { relation, index, alias } = context\n\t\tconst path = [{ field: relation.name }, { index, alias }]\n\t\treturn prependPath(path, await innerProcessor(context))\n\t}\n}\n\nexport const hasOneProcessor = <Context extends { relation: Model.AnyRelation }>(\n\tinnerProcessor: (context: Context) => Promise<MutationResultList>,\n) => {\n\treturn async (context: Context): Promise<MutationResultList> => {\n\t\tconst { relation } = context\n\t\tconst path = [{ field: relation.name }]\n\t\treturn prependPath(path, await innerProcessor(context))\n\t}\n}\n"],"names":[],"mappings":";AAGa,MAAA,mBAAmB,CAC/B,mBACI;AACJ,SAAO,OAAO,YAAkD;AAC/D,UAAM,EAAE,UAAU,OAAO,MAAA,IAAU;AAC7B,UAAA,OAAO,CAAC,EAAE,OAAO,SAAS,QAAQ,EAAE,OAAO,MAAA,CAAO;AACxD,WAAO,YAAY,MAAM,MAAM,eAAe,OAAO,CAAC;AAAA,EAAA;AAExD;AAEa,MAAA,kBAAkB,CAC9B,mBACI;AACJ,SAAO,OAAO,YAAkD;AACzD,UAAA,EAAE,SAAa,IAAA;AACrB,UAAM,OAAO,CAAC,EAAE,OAAO,SAAS,KAAM,CAAA;AACtC,WAAO,YAAY,MAAM,MAAM,eAAe,OAAO,CAAC;AAAA,EAAA;AAExD;"}
1
+ {"version":3,"file":"MutationProcessorHelper.js","sources":["../../../../../packages/engine-content-api/src/mapper/MutationProcessorHelper.ts"],"sourcesContent":["import { MutationResultList, prependPath } from './Result'\nimport { Model } from '@contember/schema'\n\nexport const hasManyProcessor = <Context extends { relation: Model.AnyRelation; index: number; alias?: string }, Args>(\n\tinnerProcessor: (context: Context) => Promise<MutationResultList | ((args: Args) => Promise<MutationResultList>)>,\n) => {\n\treturn async (context: Context): Promise<MutationResultList | ((args: Args) => Promise<MutationResultList>)> => {\n\t\tconst { relation, index, alias } = context\n\t\tconst path = [{ field: relation.name }, { index, alias }]\n\t\tconst innerResult = await innerProcessor(context)\n\t\tif (typeof innerResult === 'function') {\n\t\t\treturn async (it: Args) => prependPath(path, await innerResult(it))\n\t\t}\n\t\treturn prependPath(path, innerResult)\n\t}\n}\n\nexport const hasOneProcessor = <Context extends { relation: Model.AnyRelation }, Args>(\n\tinnerProcessor: (context: Context) => Promise<MutationResultList | ((args: Args) => Promise<MutationResultList>)>,\n) => {\n\treturn async (context: Context): Promise<MutationResultList | ((args: Args) => Promise<MutationResultList>)> => {\n\t\tconst { relation } = context\n\t\tconst path = [{ field: relation.name }]\n\t\tconst innerResult = await innerProcessor(context)\n\t\tif (typeof innerResult === 'function') {\n\t\t\treturn async (it: Args) => prependPath(path, await innerResult(it))\n\t\t}\n\t\treturn prependPath(path, innerResult)\n\t}\n}\n"],"names":[],"mappings":";AAGa,MAAA,mBAAmB,CAC/B,mBACI;AACJ,SAAO,OAAO,YAAkG;AAC/G,UAAM,EAAE,UAAU,OAAO,MAAU,IAAA;AAC7B,UAAA,OAAO,CAAC,EAAE,OAAO,SAAS,QAAQ,EAAE,OAAO,OAAO;AAClD,UAAA,cAAc,MAAM,eAAe,OAAO;AAC5C,QAAA,OAAO,gBAAgB,YAAY;AACtC,aAAO,OAAO,OAAa,YAAY,MAAM,MAAM,YAAY,EAAE,CAAC;AAAA,IAAA;AAE5D,WAAA,YAAY,MAAM,WAAW;AAAA,EACrC;AACD;AAEa,MAAA,kBAAkB,CAC9B,mBACI;AACJ,SAAO,OAAO,YAAkG;AACzG,UAAA,EAAE,aAAa;AACrB,UAAM,OAAO,CAAC,EAAE,OAAO,SAAS,MAAM;AAChC,UAAA,cAAc,MAAM,eAAe,OAAO;AAC5C,QAAA,OAAO,gBAAgB,YAAY;AACtC,aAAO,OAAO,OAAa,YAAY,MAAM,MAAM,YAAY,EAAE,CAAC;AAAA,IAAA;AAE5D,WAAA,YAAY,MAAM,WAAW;AAAA,EACrC;AACD;"}
@@ -1,10 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const ErrorUtils = require("./ErrorUtils.cjs");
4
- const promises = require("../utils/promises.cjs");
5
- require("@contember/schema-utils");
6
- const Database = require("@contember/database");
7
- const logger = require("@contember/logger");
8
3
  var __defProp = Object.defineProperty;
9
4
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
5
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -32,6 +27,7 @@ class MutationUpdateOk {
32
27
  this.input = input;
33
28
  this.values = values;
34
29
  this.oldValues = oldValues;
30
+ __publicField(this, "error", false);
35
31
  __publicField(
36
32
  this,
37
33
  "result",
@@ -54,6 +50,7 @@ class MutationCreateOk {
54
50
  this.primary = primary;
55
51
  this.input = input;
56
52
  this.values = values;
53
+ __publicField(this, "error", false);
57
54
  __publicField(
58
55
  this,
59
56
  "result",
@@ -74,6 +71,7 @@ class MutationDeleteOk {
74
71
  this.paths = paths;
75
72
  this.entity = entity;
76
73
  this.primary = primary;
74
+ __publicField(this, "error", false);
77
75
  __publicField(
78
76
  this,
79
77
  "result",
@@ -96,6 +94,7 @@ class MutationJunctionUpdateOk {
96
94
  this.relation = relation;
97
95
  this.owningUnique = owningUnique;
98
96
  this.inverseUnique = inverseUnique;
97
+ __publicField(this, "error", false);
99
98
  __publicField(
100
99
  this,
101
100
  "result",
@@ -123,6 +122,7 @@ class MutationNothingToDo {
123
122
  constructor(paths, reason) {
124
123
  this.paths = paths;
125
124
  this.reason = reason;
125
+ __publicField(this, "error", false);
126
126
  __publicField(
127
127
  this,
128
128
  "result",
@@ -143,6 +143,7 @@ class MutationInputError {
143
143
  this.kind = kind;
144
144
  this.message = message;
145
145
  this.hints = hints;
146
+ __publicField(this, "error", true);
146
147
  __publicField(
147
148
  this,
148
149
  "result",
@@ -156,6 +157,7 @@ class MutationSqlError {
156
157
  this.paths = paths;
157
158
  this.message = message;
158
159
  this.hints = hints;
160
+ __publicField(this, "error", true);
159
161
  __publicField(
160
162
  this,
161
163
  "result",
@@ -176,6 +178,7 @@ class MutationConstraintViolationError {
176
178
  this.constraint = constraint;
177
179
  this.message = message;
178
180
  this.hints = hints;
181
+ __publicField(this, "error", true);
179
182
  __publicField(
180
183
  this,
181
184
  "result",
@@ -188,6 +191,7 @@ class MutationEntryNotFoundError {
188
191
  constructor(paths, where) {
189
192
  this.paths = paths;
190
193
  this.where = where;
194
+ __publicField(this, "error", true);
191
195
  __publicField(
192
196
  this,
193
197
  "result",
@@ -204,6 +208,7 @@ class MutationNoResultError {
204
208
  this.paths = paths;
205
209
  this.message = message;
206
210
  this.hints = hints;
211
+ __publicField(this, "error", true);
207
212
  __publicField(
208
213
  this,
209
214
  "result",
@@ -217,26 +222,6 @@ const prependPath = (path, results) => results.map((it) => ({
217
222
  paths: (it.paths.length === 0 ? [[]] : it.paths).map((it2) => [...path, ...it2])
218
223
  }));
219
224
  const getInsertPrimary = (result) => result[0] && result[0].result === "ok" && result[0].type === "create" ? result[0].primary : void 0;
220
- const flattenResult = (result) => result.reduce((acc, it) => [...acc, ...it], []).reduce((acc, it) => Array.isArray(it) ? [...acc, ...it] : [...acc, it], []);
221
- const collectResults = async (schema, schemaDatabaseMetadata, mainPromise, otherPromises) => {
222
- let index = 0;
223
- const allPromises = [mainPromise, ...otherPromises].filter((it) => !!it).map(
224
- (it) => it.catch((e) => [ErrorUtils.convertError(schema, schemaDatabaseMetadata, e)]).then((value) => ({ value, index: index++ }))
225
- );
226
- const results = await Promise.allSettled(allPromises);
227
- const failures = promises.getRejections(results);
228
- if (failures.length > 0) {
229
- if (failures.length > 1 && !failures.every((it) => it instanceof Database.SerializationFailureError)) {
230
- failures.slice(1).map((e) => logger.logger.error(e));
231
- }
232
- throw failures[0];
233
- }
234
- const values = promises.getFulfilledValues(results);
235
- const sortedValues = [values[0], ...values.slice(1).sort((a, b) => a.index - b.index)];
236
- return flattenResult(
237
- sortedValues.map((it) => it.value).filter((it) => !!it)
238
- );
239
- };
240
225
  exports.ConstraintType = ConstraintType;
241
226
  exports.InputErrorKind = InputErrorKind;
242
227
  exports.MutationConstraintViolationError = MutationConstraintViolationError;
@@ -252,8 +237,6 @@ exports.MutationResultType = MutationResultType;
252
237
  exports.MutationSqlError = MutationSqlError;
253
238
  exports.MutationUpdateOk = MutationUpdateOk;
254
239
  exports.NothingToDoReason = NothingToDoReason;
255
- exports.collectResults = collectResults;
256
- exports.flattenResult = flattenResult;
257
240
  exports.getInsertPrimary = getInsertPrimary;
258
241
  exports.prependPath = prependPath;
259
242
  //# sourceMappingURL=Result.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Result.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/Result.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { convertError } from './ErrorUtils'\nimport { getFulfilledValues, getRejections } from '../utils'\nimport { DatabaseMetadata, SerializationFailureError } from '@contember/database'\nimport { logger } from '@contember/logger'\n\nexport enum MutationResultType {\n\tok = 'ok',\n\tnothingToDo = 'nothingToDo',\n\tnotFoundError = 'notFoundError',\n\tconstraintViolationError = 'constraintViolationError',\n\tnoResultError = 'noResultError',\n\tvalidationError = 'validationError',\n\tinputError = 'inputError',\n\tsqlError = 'sqlError',\n}\n\nexport enum MutationResultHint {\n\tsqlError = 'sqlError',\n\tsubSequentSqlError = 'subsequentSqlError',\n}\n\nexport enum ModificationType {\n\tcreate = 'create',\n\tupdate = 'update',\n\tdelete = 'delete',\n\tjunctionUpdate = 'junctionUpdate',\n}\n\nexport type MutationResult =\n\t| MutationUpdateOk\n\t| MutationCreateOk\n\t| MutationDeleteOk\n\t| MutationJunctionUpdateOk\n\t| MutationEntryNotFoundError\n\t| MutationNothingToDo\n\t| MutationConstraintViolationError\n\t| MutationNoResultError\n\t| MutationInputError\n\t| MutationSqlError\n\nexport type MutationResultList = MutationResult[]\n\ntype Path = ({ field: string } | { index: number; alias?: string })[]\n\ninterface MutationResultInterface {\n\tresult: MutationResultType\n\tpaths: Path[]\n\tmessage?: string\n\thints: MutationResultHint[]\n}\n\nexport type RowValues = { [fieldName: string]: Value.FieldValue }\n\nexport class MutationUpdateOk implements MutationResultInterface {\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.update as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly primary: Value.PrimaryValue,\n\t\tpublic readonly input: Input.UpdateDataInput,\n\t\tpublic readonly values: RowValues,\n\t\tpublic readonly oldValues?: RowValues,\n\t) {}\n}\n\nexport class MutationCreateOk implements MutationResultInterface {\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.create as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly primary: Value.PrimaryValue,\n\t\tpublic readonly input: Input.CreateDataInput,\n\t\tpublic readonly values: RowValues,\n\t) {}\n}\n\nexport class MutationDeleteOk implements MutationResultInterface {\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.delete as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly primary: Value.PrimaryValue,\n\t) {}\n}\n\nexport class MutationJunctionUpdateOk implements MutationResultInterface {\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.junctionUpdate as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly relation: Model.ManyHasManyOwningRelation,\n\t\tpublic readonly owningUnique: Input.PrimaryValue,\n\t\tpublic readonly inverseUnique: Input.PrimaryValue,\n\t) {}\n}\n\nexport enum NothingToDoReason {\n\tnoData = 'noData',\n\temptyRelation = 'emptyRelation',\n\talreadyExists = 'alreadyExists',\n\taborted = 'aborted',\n\talreadyDeleted = 'alreadyDeleted',\n}\n\nexport class MutationNothingToDo implements MutationResultInterface {\n\tresult = MutationResultType.nothingToDo as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(public readonly paths: Path[], public readonly reason: NothingToDoReason) {}\n}\n\nexport enum InputErrorKind {\n\tnonUniqueWhere = 'nonUniqueWhere',\n\tinvalidData = 'invalidData',\n}\n\nexport class MutationInputError implements MutationResultInterface {\n\tresult = MutationResultType.inputError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly kind: InputErrorKind,\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\nexport class MutationSqlError implements MutationResultInterface {\n\tresult = MutationResultType.sqlError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\nexport enum ConstraintType {\n\tnotNull = 'notNull',\n\tuniqueKey = 'uniqueKey',\n\tforeignKey = 'foreignKey',\n}\n\nexport class MutationConstraintViolationError implements MutationResultInterface {\n\tresult = MutationResultType.constraintViolationError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly constraint: ConstraintType,\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\n// maybe denied by acl\nexport class MutationEntryNotFoundError implements MutationResultInterface {\n\tresult = MutationResultType.notFoundError as const\n\thints: MutationResultHint[] = []\n\tmessage: string\n\n\tconstructor(public readonly paths: Path[], public readonly where: Input.UniqueWhere | Input.Where) {\n\t\tthis.message = 'for input ' + JSON.stringify(where)\n\t}\n}\n\n// possibly denied by acl\nexport class MutationNoResultError implements MutationResultInterface {\n\tresult = MutationResultType.noResultError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\nexport const prependPath = (path: Path, results: MutationResultList): MutationResultList =>\n\tresults.map(it => ({\n\t\t...it,\n\t\tpaths: (it.paths.length === 0 ? [[]] : it.paths).map(it => [...path, ...it]),\n\t}))\n\nexport const getInsertPrimary = (result: MutationResultList) =>\n\tresult[0] && result[0].result === MutationResultType.ok && result[0].type === ModificationType.create\n\t\t? result[0].primary\n\t\t: undefined\n\nexport const getUpdatePrimary = (result: MutationResultList) =>\n\tresult[0] && result[0].result === MutationResultType.ok && result[0].type === ModificationType.update\n\t\t? result[0].primary\n\t\t: undefined\n\nexport const flattenResult = (result: (MutationResultList | MutationResultList[])[]): MutationResultList =>\n\tresult\n\t\t.reduce<(MutationResult | MutationResult[])[]>((acc, it) => [...acc, ...it], [])\n\t\t.reduce<MutationResultList>((acc, it) => (Array.isArray(it) ? [...acc, ...it] : [...acc, it]), [])\n\nexport type ResultListNotFlatten = MutationResultList | MutationResultList[]\n\nexport const collectResults = async (\n\tschema: Model.Schema,\n\tschemaDatabaseMetadata: DatabaseMetadata,\n\tmainPromise: Promise<ResultListNotFlatten | undefined> | undefined,\n\totherPromises: (Promise<ResultListNotFlatten | undefined> | undefined)[],\n): Promise<MutationResultList> => {\n\tlet index = 0\n\tconst allPromises: Promise<{ index: number; value: ResultListNotFlatten }>[] = [mainPromise, ...otherPromises]\n\t\t.filter((it): it is Promise<ResultListNotFlatten> => !!it)\n\t\t.map(it =>\n\t\t\tit //\n\t\t\t\t.catch(e => [convertError(schema, schemaDatabaseMetadata, e)])\n\t\t\t\t.then(value => ({ value, index: index++ })),\n\t\t)\n\tconst results = await Promise.allSettled(allPromises)\n\tconst failures = getRejections(results)\n\tif (failures.length > 0) {\n\t\tif (failures.length > 1 && !failures.every(it => it instanceof SerializationFailureError)) {\n\t\t\tfailures.slice(1).map(e => logger.error(e))\n\t\t}\n\t\tthrow failures[0]\n\t}\n\n\tconst values = getFulfilledValues(results)\n\tconst sortedValues = [values[0], ...values.slice(1).sort((a, b) => a.index - b.index)]\n\n\treturn flattenResult(\n\t\tsortedValues.map(it => it.value).filter((it): it is MutationResultList | MutationResultList[] => !!it),\n\t)\n}\n"],"names":["MutationResultType","MutationResultHint","NothingToDoReason","InputErrorKind","ConstraintType","it","convertError","getRejections","SerializationFailureError","logger","getFulfilledValues"],"mappings":"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"}
1
+ {"version":3,"file":"Result.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/Result.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { MapperInput } from './types'\n\nexport enum MutationResultType {\n\tok = 'ok',\n\tnothingToDo = 'nothingToDo',\n\tnotFoundError = 'notFoundError',\n\tconstraintViolationError = 'constraintViolationError',\n\tnoResultError = 'noResultError',\n\tvalidationError = 'validationError',\n\tinputError = 'inputError',\n\tsqlError = 'sqlError',\n}\n\nexport enum MutationResultHint {\n\tsqlError = 'sqlError',\n\tsubSequentSqlError = 'subsequentSqlError',\n}\n\nexport enum ModificationType {\n\tcreate = 'create',\n\tupdate = 'update',\n\tdelete = 'delete',\n\tjunctionUpdate = 'junctionUpdate',\n}\n\nexport type MutationResult =\n\t| MutationUpdateOk\n\t| MutationCreateOk\n\t| MutationDeleteOk\n\t| MutationJunctionUpdateOk\n\t| MutationEntryNotFoundError\n\t| MutationNothingToDo\n\t| MutationConstraintViolationError\n\t| MutationNoResultError\n\t| MutationInputError\n\t| MutationSqlError\n\nexport type MutationResultList = MutationResult[]\n\ntype Path = ({ field: string } | { index: number; alias?: string })[]\n\ninterface MutationResultInterface {\n\terror: boolean\n\tresult: MutationResultType\n\tpaths: Path[]\n\tmessage?: string\n\thints: MutationResultHint[]\n}\n\nexport type RowValues = { [fieldName: string]: Value.FieldValue }\n\nexport class MutationUpdateOk implements MutationResultInterface {\n\terror = false\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.update as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly primary: Value.PrimaryValue,\n\t\tpublic readonly input: MapperInput.UpdateDataInput,\n\t\tpublic readonly values: RowValues,\n\t\tpublic readonly oldValues?: RowValues,\n\t) {}\n}\n\nexport class MutationCreateOk implements MutationResultInterface {\n\terror = false\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.create as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly primary: Value.PrimaryValue,\n\t\tpublic readonly input: MapperInput.CreateDataInput,\n\t\tpublic readonly values: RowValues,\n\t) {}\n}\n\nexport class MutationDeleteOk implements MutationResultInterface {\n\terror = false\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.delete as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly primary: Value.PrimaryValue,\n\t) {}\n}\n\nexport class MutationJunctionUpdateOk implements MutationResultInterface {\n\terror = false\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.junctionUpdate as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly relation: Model.ManyHasManyOwningRelation,\n\t\tpublic readonly owningUnique: Input.PrimaryValue,\n\t\tpublic readonly inverseUnique: Input.PrimaryValue,\n\t) {}\n}\n\nexport enum NothingToDoReason {\n\tnoData = 'noData',\n\temptyRelation = 'emptyRelation',\n\talreadyExists = 'alreadyExists',\n\taborted = 'aborted',\n\talreadyDeleted = 'alreadyDeleted',\n}\n\nexport class MutationNothingToDo implements MutationResultInterface {\n\terror = false\n\tresult = MutationResultType.nothingToDo as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(public readonly paths: Path[], public readonly reason: NothingToDoReason) {}\n}\n\nexport enum InputErrorKind {\n\tnonUniqueWhere = 'nonUniqueWhere',\n\tinvalidData = 'invalidData',\n}\n\nexport class MutationInputError implements MutationResultInterface {\n\terror = true\n\tresult = MutationResultType.inputError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly kind: InputErrorKind,\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\nexport class MutationSqlError implements MutationResultInterface {\n\terror = true\n\tresult = MutationResultType.sqlError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\nexport enum ConstraintType {\n\tnotNull = 'notNull',\n\tuniqueKey = 'uniqueKey',\n\tforeignKey = 'foreignKey',\n}\n\nexport class MutationConstraintViolationError implements MutationResultInterface {\n\terror = true\n\tresult = MutationResultType.constraintViolationError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly constraint: ConstraintType,\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\n// maybe denied by acl\nexport class MutationEntryNotFoundError implements MutationResultInterface {\n\terror = true\n\tresult = MutationResultType.notFoundError as const\n\thints: MutationResultHint[] = []\n\tmessage: string\n\n\tconstructor(public readonly paths: Path[], public readonly where: Input.UniqueWhere | Input.Where) {\n\t\tthis.message = 'for input ' + JSON.stringify(where)\n\t}\n}\n\n// possibly denied by acl\nexport class MutationNoResultError implements MutationResultInterface {\n\terror = true\n\tresult = MutationResultType.noResultError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\nexport const prependPath = (path: Path, results: MutationResultList): MutationResultList =>\n\tresults.map(it => ({\n\t\t...it,\n\t\tpaths: (it.paths.length === 0 ? [[]] : it.paths).map(it => [...path, ...it]),\n\t}))\n\nexport const getInsertPrimary = (result: MutationResultList) =>\n\tresult[0] && result[0].result === MutationResultType.ok && result[0].type === ModificationType.create\n\t\t? result[0].primary\n\t\t: undefined\n"],"names":["MutationResultType","MutationResultHint","NothingToDoReason","InputErrorKind","ConstraintType","it"],"mappings":";;;;;AAGY,IAAA,uCAAAA,wBAAL;AACNA,sBAAA,IAAK,IAAA;AACLA,sBAAA,aAAc,IAAA;AACdA,sBAAA,eAAgB,IAAA;AAChBA,sBAAA,0BAA2B,IAAA;AAC3BA,sBAAA,eAAgB,IAAA;AAChBA,sBAAA,iBAAkB,IAAA;AAClBA,sBAAA,YAAa,IAAA;AACbA,sBAAA,UAAW,IAAA;AARAA,SAAAA;AAAA,GAAA,sBAAA,CAAA,CAAA;AAWA,IAAA,uCAAAC,wBAAL;AACNA,sBAAA,UAAW,IAAA;AACXA,sBAAA,oBAAqB,IAAA;AAFVA,SAAAA;AAAA,GAAA,sBAAA,CAAA,CAAA;AAsCL,MAAM,iBAAoD;AAAA,EAMhE,YACiB,OACA,QACA,SACA,OACA,QACA,WACf;AANe,SAAA,QAAA;AACA,SAAA,SAAA;AACA,SAAA,UAAA;AACA,SAAA,QAAA;AACA,SAAA,SAAA;AACA,SAAA,YAAA;AAXT,kBAAA,MAAA,SAAA,KAAA;AACC;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AACF;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AACP,kBAAA,MAAA,SAA8B,EAAC;AAAA,EAAA;AAUhC;AAEO,MAAM,iBAAoD;AAAA,EAMhE,YACiB,OACA,QACA,SACA,OACA,QACf;AALe,SAAA,QAAA;AACA,SAAA,SAAA;AACA,SAAA,UAAA;AACA,SAAA,QAAA;AACA,SAAA,SAAA;AAVT,kBAAA,MAAA,SAAA,KAAA;AACC;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AACF;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AACP,kBAAA,MAAA,SAA8B,EAAC;AAAA,EAAA;AAShC;AAEO,MAAM,iBAAoD;AAAA,EAMhE,YACiB,OACA,QACA,SACf;AAHe,SAAA,QAAA;AACA,SAAA,SAAA;AACA,SAAA,UAAA;AART,kBAAA,MAAA,SAAA,KAAA;AACC;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AACF;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AACP,kBAAA,MAAA,SAA8B,EAAC;AAAA,EAAA;AAOhC;AAEO,MAAM,yBAA4D;AAAA,EAMxE,YACiB,OACA,QACA,UACA,cACA,eACf;AALe,SAAA,QAAA;AACA,SAAA,SAAA;AACA,SAAA,WAAA;AACA,SAAA,eAAA;AACA,SAAA,gBAAA;AAVT,kBAAA,MAAA,SAAA,KAAA;AACC;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AACF;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AACP,kBAAA,MAAA,SAA8B,EAAC;AAAA,EAAA;AAShC;AAEY,IAAA,sCAAAC,uBAAL;AACNA,qBAAA,QAAS,IAAA;AACTA,qBAAA,eAAgB,IAAA;AAChBA,qBAAA,eAAgB,IAAA;AAChBA,qBAAA,SAAU,IAAA;AACVA,qBAAA,gBAAiB,IAAA;AALNA,SAAAA;AAAA,GAAA,qBAAA,CAAA,CAAA;AAQL,MAAM,oBAAuD;AAAA,EAKnE,YAA4B,OAA+B,QAA2B;AAA1D,SAAA,QAAA;AAA+B,SAAA,SAAA;AAJnD,kBAAA,MAAA,SAAA,KAAA;AACC;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AACT,kBAAA,MAAA,SAA8B,EAAC;AAAA,EAAA;AAGhC;AAEY,IAAA,mCAAAC,oBAAL;AACNA,kBAAA,gBAAiB,IAAA;AACjBA,kBAAA,aAAc,IAAA;AAFHA,SAAAA;AAAA,GAAA,kBAAA,CAAA,CAAA;AAKL,MAAM,mBAAsD;AAAA,EAIlE,YACiB,OACA,MACA,SACA,QAA8B,CAAA,GAC7C;AAJe,SAAA,QAAA;AACA,SAAA,OAAA;AACA,SAAA,UAAA;AACA,SAAA,QAAA;AAPT,kBAAA,MAAA,SAAA,IAAA;AACC;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AAAA,EAAA;AAQV;AAEO,MAAM,iBAAoD;AAAA,EAIhE,YACiB,OACA,SACA,QAA8B,CAAA,GAC7C;AAHe,SAAA,QAAA;AACA,SAAA,UAAA;AACA,SAAA,QAAA;AANT,kBAAA,MAAA,SAAA,IAAA;AACC;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AAAA,EAAA;AAOV;AAEY,IAAA,mCAAAC,oBAAL;AACNA,kBAAA,SAAU,IAAA;AACVA,kBAAA,WAAY,IAAA;AACZA,kBAAA,YAAa,IAAA;AAHFA,SAAAA;AAAA,GAAA,kBAAA,CAAA,CAAA;AAML,MAAM,iCAAoE;AAAA,EAIhF,YACiB,OACA,YACA,SACA,QAA8B,CAAA,GAC7C;AAJe,SAAA,QAAA;AACA,SAAA,aAAA;AACA,SAAA,UAAA;AACA,SAAA,QAAA;AAPT,kBAAA,MAAA,SAAA,IAAA;AACC;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AAAA,EAAA;AAQV;AAGO,MAAM,2BAA8D;AAAA,EAM1E,YAA4B,OAA+B,OAAwC;AAAvE,SAAA,QAAA;AAA+B,SAAA,QAAA;AALnD,kBAAA,MAAA,SAAA,IAAA;AACC;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AACT,kBAAA,MAAA,SAA8B,EAAC;AAC/B,kBAAA,MAAA,SAAA;AAGC,SAAK,UAAU,eAAe,KAAK,UAAU,KAAK;AAAA,EAAA;AAEpD;AAGO,MAAM,sBAAyD;AAAA,EAIrE,YACiB,OACA,SACA,QAA8B,CAAA,GAC7C;AAHe,SAAA,QAAA;AACA,SAAA,UAAA;AACA,SAAA,QAAA;AANT,kBAAA,MAAA,SAAA,IAAA;AACC;AAAA,MAAA;AAAA,MAAA;AAAA,MAAA;AAAA;AAAA,IAAA;AAAA,EAAA;AAOV;AAEO,MAAM,cAAc,CAAC,MAAY,YACvC,QAAQ,IAAI,CAAO,QAAA;AAAA,EAClB,GAAG;AAAA,EACH,QAAQ,GAAG,MAAM,WAAW,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,IAAI,CAAAC,QAAM,CAAC,GAAG,MAAM,GAAGA,GAAE,CAAC;AAC5E,EAAE;AAEI,MAAM,mBAAmB,CAAC,WAChC,OAAO,CAAC,KAAK,OAAO,CAAC,EAAE,WAAW,QAAyB,OAAO,CAAC,EAAE,SAAS,WAC3E,OAAO,CAAC,EAAE,UACV;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,3 @@
1
- import { convertError } from "./ErrorUtils.js";
2
- import { getRejections, getFulfilledValues } from "../utils/promises.js";
3
- import "@contember/schema-utils";
4
- import { SerializationFailureError } from "@contember/database";
5
- import { logger } from "@contember/logger";
6
1
  var __defProp = Object.defineProperty;
7
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -30,6 +25,7 @@ class MutationUpdateOk {
30
25
  this.input = input;
31
26
  this.values = values;
32
27
  this.oldValues = oldValues;
28
+ __publicField(this, "error", false);
33
29
  __publicField(
34
30
  this,
35
31
  "result",
@@ -52,6 +48,7 @@ class MutationCreateOk {
52
48
  this.primary = primary;
53
49
  this.input = input;
54
50
  this.values = values;
51
+ __publicField(this, "error", false);
55
52
  __publicField(
56
53
  this,
57
54
  "result",
@@ -72,6 +69,7 @@ class MutationDeleteOk {
72
69
  this.paths = paths;
73
70
  this.entity = entity;
74
71
  this.primary = primary;
72
+ __publicField(this, "error", false);
75
73
  __publicField(
76
74
  this,
77
75
  "result",
@@ -94,6 +92,7 @@ class MutationJunctionUpdateOk {
94
92
  this.relation = relation;
95
93
  this.owningUnique = owningUnique;
96
94
  this.inverseUnique = inverseUnique;
95
+ __publicField(this, "error", false);
97
96
  __publicField(
98
97
  this,
99
98
  "result",
@@ -121,6 +120,7 @@ class MutationNothingToDo {
121
120
  constructor(paths, reason) {
122
121
  this.paths = paths;
123
122
  this.reason = reason;
123
+ __publicField(this, "error", false);
124
124
  __publicField(
125
125
  this,
126
126
  "result",
@@ -141,6 +141,7 @@ class MutationInputError {
141
141
  this.kind = kind;
142
142
  this.message = message;
143
143
  this.hints = hints;
144
+ __publicField(this, "error", true);
144
145
  __publicField(
145
146
  this,
146
147
  "result",
@@ -154,6 +155,7 @@ class MutationSqlError {
154
155
  this.paths = paths;
155
156
  this.message = message;
156
157
  this.hints = hints;
158
+ __publicField(this, "error", true);
157
159
  __publicField(
158
160
  this,
159
161
  "result",
@@ -174,6 +176,7 @@ class MutationConstraintViolationError {
174
176
  this.constraint = constraint;
175
177
  this.message = message;
176
178
  this.hints = hints;
179
+ __publicField(this, "error", true);
177
180
  __publicField(
178
181
  this,
179
182
  "result",
@@ -186,6 +189,7 @@ class MutationEntryNotFoundError {
186
189
  constructor(paths, where) {
187
190
  this.paths = paths;
188
191
  this.where = where;
192
+ __publicField(this, "error", true);
189
193
  __publicField(
190
194
  this,
191
195
  "result",
@@ -202,6 +206,7 @@ class MutationNoResultError {
202
206
  this.paths = paths;
203
207
  this.message = message;
204
208
  this.hints = hints;
209
+ __publicField(this, "error", true);
205
210
  __publicField(
206
211
  this,
207
212
  "result",
@@ -215,26 +220,6 @@ const prependPath = (path, results) => results.map((it) => ({
215
220
  paths: (it.paths.length === 0 ? [[]] : it.paths).map((it2) => [...path, ...it2])
216
221
  }));
217
222
  const getInsertPrimary = (result) => result[0] && result[0].result === "ok" && result[0].type === "create" ? result[0].primary : void 0;
218
- const flattenResult = (result) => result.reduce((acc, it) => [...acc, ...it], []).reduce((acc, it) => Array.isArray(it) ? [...acc, ...it] : [...acc, it], []);
219
- const collectResults = async (schema, schemaDatabaseMetadata, mainPromise, otherPromises) => {
220
- let index = 0;
221
- const allPromises = [mainPromise, ...otherPromises].filter((it) => !!it).map(
222
- (it) => it.catch((e) => [convertError(schema, schemaDatabaseMetadata, e)]).then((value) => ({ value, index: index++ }))
223
- );
224
- const results = await Promise.allSettled(allPromises);
225
- const failures = getRejections(results);
226
- if (failures.length > 0) {
227
- if (failures.length > 1 && !failures.every((it) => it instanceof SerializationFailureError)) {
228
- failures.slice(1).map((e) => logger.error(e));
229
- }
230
- throw failures[0];
231
- }
232
- const values = getFulfilledValues(results);
233
- const sortedValues = [values[0], ...values.slice(1).sort((a, b) => a.index - b.index)];
234
- return flattenResult(
235
- sortedValues.map((it) => it.value).filter((it) => !!it)
236
- );
237
- };
238
223
  export {
239
224
  ConstraintType,
240
225
  InputErrorKind,
@@ -251,8 +236,6 @@ export {
251
236
  MutationSqlError,
252
237
  MutationUpdateOk,
253
238
  NothingToDoReason,
254
- collectResults,
255
- flattenResult,
256
239
  getInsertPrimary,
257
240
  prependPath
258
241
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Result.js","sources":["../../../../../packages/engine-content-api/src/mapper/Result.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { convertError } from './ErrorUtils'\nimport { getFulfilledValues, getRejections } from '../utils'\nimport { DatabaseMetadata, SerializationFailureError } from '@contember/database'\nimport { logger } from '@contember/logger'\n\nexport enum MutationResultType {\n\tok = 'ok',\n\tnothingToDo = 'nothingToDo',\n\tnotFoundError = 'notFoundError',\n\tconstraintViolationError = 'constraintViolationError',\n\tnoResultError = 'noResultError',\n\tvalidationError = 'validationError',\n\tinputError = 'inputError',\n\tsqlError = 'sqlError',\n}\n\nexport enum MutationResultHint {\n\tsqlError = 'sqlError',\n\tsubSequentSqlError = 'subsequentSqlError',\n}\n\nexport enum ModificationType {\n\tcreate = 'create',\n\tupdate = 'update',\n\tdelete = 'delete',\n\tjunctionUpdate = 'junctionUpdate',\n}\n\nexport type MutationResult =\n\t| MutationUpdateOk\n\t| MutationCreateOk\n\t| MutationDeleteOk\n\t| MutationJunctionUpdateOk\n\t| MutationEntryNotFoundError\n\t| MutationNothingToDo\n\t| MutationConstraintViolationError\n\t| MutationNoResultError\n\t| MutationInputError\n\t| MutationSqlError\n\nexport type MutationResultList = MutationResult[]\n\ntype Path = ({ field: string } | { index: number; alias?: string })[]\n\ninterface MutationResultInterface {\n\tresult: MutationResultType\n\tpaths: Path[]\n\tmessage?: string\n\thints: MutationResultHint[]\n}\n\nexport type RowValues = { [fieldName: string]: Value.FieldValue }\n\nexport class MutationUpdateOk implements MutationResultInterface {\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.update as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly primary: Value.PrimaryValue,\n\t\tpublic readonly input: Input.UpdateDataInput,\n\t\tpublic readonly values: RowValues,\n\t\tpublic readonly oldValues?: RowValues,\n\t) {}\n}\n\nexport class MutationCreateOk implements MutationResultInterface {\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.create as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly primary: Value.PrimaryValue,\n\t\tpublic readonly input: Input.CreateDataInput,\n\t\tpublic readonly values: RowValues,\n\t) {}\n}\n\nexport class MutationDeleteOk implements MutationResultInterface {\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.delete as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly primary: Value.PrimaryValue,\n\t) {}\n}\n\nexport class MutationJunctionUpdateOk implements MutationResultInterface {\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.junctionUpdate as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly relation: Model.ManyHasManyOwningRelation,\n\t\tpublic readonly owningUnique: Input.PrimaryValue,\n\t\tpublic readonly inverseUnique: Input.PrimaryValue,\n\t) {}\n}\n\nexport enum NothingToDoReason {\n\tnoData = 'noData',\n\temptyRelation = 'emptyRelation',\n\talreadyExists = 'alreadyExists',\n\taborted = 'aborted',\n\talreadyDeleted = 'alreadyDeleted',\n}\n\nexport class MutationNothingToDo implements MutationResultInterface {\n\tresult = MutationResultType.nothingToDo as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(public readonly paths: Path[], public readonly reason: NothingToDoReason) {}\n}\n\nexport enum InputErrorKind {\n\tnonUniqueWhere = 'nonUniqueWhere',\n\tinvalidData = 'invalidData',\n}\n\nexport class MutationInputError implements MutationResultInterface {\n\tresult = MutationResultType.inputError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly kind: InputErrorKind,\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\nexport class MutationSqlError implements MutationResultInterface {\n\tresult = MutationResultType.sqlError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\nexport enum ConstraintType {\n\tnotNull = 'notNull',\n\tuniqueKey = 'uniqueKey',\n\tforeignKey = 'foreignKey',\n}\n\nexport class MutationConstraintViolationError implements MutationResultInterface {\n\tresult = MutationResultType.constraintViolationError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly constraint: ConstraintType,\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\n// maybe denied by acl\nexport class MutationEntryNotFoundError implements MutationResultInterface {\n\tresult = MutationResultType.notFoundError as const\n\thints: MutationResultHint[] = []\n\tmessage: string\n\n\tconstructor(public readonly paths: Path[], public readonly where: Input.UniqueWhere | Input.Where) {\n\t\tthis.message = 'for input ' + JSON.stringify(where)\n\t}\n}\n\n// possibly denied by acl\nexport class MutationNoResultError implements MutationResultInterface {\n\tresult = MutationResultType.noResultError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\nexport const prependPath = (path: Path, results: MutationResultList): MutationResultList =>\n\tresults.map(it => ({\n\t\t...it,\n\t\tpaths: (it.paths.length === 0 ? [[]] : it.paths).map(it => [...path, ...it]),\n\t}))\n\nexport const getInsertPrimary = (result: MutationResultList) =>\n\tresult[0] && result[0].result === MutationResultType.ok && result[0].type === ModificationType.create\n\t\t? result[0].primary\n\t\t: undefined\n\nexport const getUpdatePrimary = (result: MutationResultList) =>\n\tresult[0] && result[0].result === MutationResultType.ok && result[0].type === ModificationType.update\n\t\t? result[0].primary\n\t\t: undefined\n\nexport const flattenResult = (result: (MutationResultList | MutationResultList[])[]): MutationResultList =>\n\tresult\n\t\t.reduce<(MutationResult | MutationResult[])[]>((acc, it) => [...acc, ...it], [])\n\t\t.reduce<MutationResultList>((acc, it) => (Array.isArray(it) ? [...acc, ...it] : [...acc, it]), [])\n\nexport type ResultListNotFlatten = MutationResultList | MutationResultList[]\n\nexport const collectResults = async (\n\tschema: Model.Schema,\n\tschemaDatabaseMetadata: DatabaseMetadata,\n\tmainPromise: Promise<ResultListNotFlatten | undefined> | undefined,\n\totherPromises: (Promise<ResultListNotFlatten | undefined> | undefined)[],\n): Promise<MutationResultList> => {\n\tlet index = 0\n\tconst allPromises: Promise<{ index: number; value: ResultListNotFlatten }>[] = [mainPromise, ...otherPromises]\n\t\t.filter((it): it is Promise<ResultListNotFlatten> => !!it)\n\t\t.map(it =>\n\t\t\tit //\n\t\t\t\t.catch(e => [convertError(schema, schemaDatabaseMetadata, e)])\n\t\t\t\t.then(value => ({ value, index: index++ })),\n\t\t)\n\tconst results = await Promise.allSettled(allPromises)\n\tconst failures = getRejections(results)\n\tif (failures.length > 0) {\n\t\tif (failures.length > 1 && !failures.every(it => it instanceof SerializationFailureError)) {\n\t\t\tfailures.slice(1).map(e => logger.error(e))\n\t\t}\n\t\tthrow failures[0]\n\t}\n\n\tconst values = getFulfilledValues(results)\n\tconst sortedValues = [values[0], ...values.slice(1).sort((a, b) => a.index - b.index)]\n\n\treturn flattenResult(\n\t\tsortedValues.map(it => it.value).filter((it): it is MutationResultList | MutationResultList[] => !!it),\n\t)\n}\n"],"names":["MutationResultType","MutationResultHint","NothingToDoReason","InputErrorKind","ConstraintType","it"],"mappings":"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"}
1
+ {"version":3,"file":"Result.js","sources":["../../../../../packages/engine-content-api/src/mapper/Result.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { MapperInput } from './types'\n\nexport enum MutationResultType {\n\tok = 'ok',\n\tnothingToDo = 'nothingToDo',\n\tnotFoundError = 'notFoundError',\n\tconstraintViolationError = 'constraintViolationError',\n\tnoResultError = 'noResultError',\n\tvalidationError = 'validationError',\n\tinputError = 'inputError',\n\tsqlError = 'sqlError',\n}\n\nexport enum MutationResultHint {\n\tsqlError = 'sqlError',\n\tsubSequentSqlError = 'subsequentSqlError',\n}\n\nexport enum ModificationType {\n\tcreate = 'create',\n\tupdate = 'update',\n\tdelete = 'delete',\n\tjunctionUpdate = 'junctionUpdate',\n}\n\nexport type MutationResult =\n\t| MutationUpdateOk\n\t| MutationCreateOk\n\t| MutationDeleteOk\n\t| MutationJunctionUpdateOk\n\t| MutationEntryNotFoundError\n\t| MutationNothingToDo\n\t| MutationConstraintViolationError\n\t| MutationNoResultError\n\t| MutationInputError\n\t| MutationSqlError\n\nexport type MutationResultList = MutationResult[]\n\ntype Path = ({ field: string } | { index: number; alias?: string })[]\n\ninterface MutationResultInterface {\n\terror: boolean\n\tresult: MutationResultType\n\tpaths: Path[]\n\tmessage?: string\n\thints: MutationResultHint[]\n}\n\nexport type RowValues = { [fieldName: string]: Value.FieldValue }\n\nexport class MutationUpdateOk implements MutationResultInterface {\n\terror = false\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.update as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly primary: Value.PrimaryValue,\n\t\tpublic readonly input: MapperInput.UpdateDataInput,\n\t\tpublic readonly values: RowValues,\n\t\tpublic readonly oldValues?: RowValues,\n\t) {}\n}\n\nexport class MutationCreateOk implements MutationResultInterface {\n\terror = false\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.create as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly primary: Value.PrimaryValue,\n\t\tpublic readonly input: MapperInput.CreateDataInput,\n\t\tpublic readonly values: RowValues,\n\t) {}\n}\n\nexport class MutationDeleteOk implements MutationResultInterface {\n\terror = false\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.delete as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly primary: Value.PrimaryValue,\n\t) {}\n}\n\nexport class MutationJunctionUpdateOk implements MutationResultInterface {\n\terror = false\n\tresult = MutationResultType.ok as const\n\ttype = ModificationType.junctionUpdate as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly relation: Model.ManyHasManyOwningRelation,\n\t\tpublic readonly owningUnique: Input.PrimaryValue,\n\t\tpublic readonly inverseUnique: Input.PrimaryValue,\n\t) {}\n}\n\nexport enum NothingToDoReason {\n\tnoData = 'noData',\n\temptyRelation = 'emptyRelation',\n\talreadyExists = 'alreadyExists',\n\taborted = 'aborted',\n\talreadyDeleted = 'alreadyDeleted',\n}\n\nexport class MutationNothingToDo implements MutationResultInterface {\n\terror = false\n\tresult = MutationResultType.nothingToDo as const\n\thints: MutationResultHint[] = []\n\n\tconstructor(public readonly paths: Path[], public readonly reason: NothingToDoReason) {}\n}\n\nexport enum InputErrorKind {\n\tnonUniqueWhere = 'nonUniqueWhere',\n\tinvalidData = 'invalidData',\n}\n\nexport class MutationInputError implements MutationResultInterface {\n\terror = true\n\tresult = MutationResultType.inputError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly kind: InputErrorKind,\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\nexport class MutationSqlError implements MutationResultInterface {\n\terror = true\n\tresult = MutationResultType.sqlError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\nexport enum ConstraintType {\n\tnotNull = 'notNull',\n\tuniqueKey = 'uniqueKey',\n\tforeignKey = 'foreignKey',\n}\n\nexport class MutationConstraintViolationError implements MutationResultInterface {\n\terror = true\n\tresult = MutationResultType.constraintViolationError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly constraint: ConstraintType,\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\n// maybe denied by acl\nexport class MutationEntryNotFoundError implements MutationResultInterface {\n\terror = true\n\tresult = MutationResultType.notFoundError as const\n\thints: MutationResultHint[] = []\n\tmessage: string\n\n\tconstructor(public readonly paths: Path[], public readonly where: Input.UniqueWhere | Input.Where) {\n\t\tthis.message = 'for input ' + JSON.stringify(where)\n\t}\n}\n\n// possibly denied by acl\nexport class MutationNoResultError implements MutationResultInterface {\n\terror = true\n\tresult = MutationResultType.noResultError as const\n\n\tconstructor(\n\t\tpublic readonly paths: Path[],\n\t\tpublic readonly message?: string,\n\t\tpublic readonly hints: MutationResultHint[] = [],\n\t) {}\n}\n\nexport const prependPath = (path: Path, results: MutationResultList): MutationResultList =>\n\tresults.map(it => ({\n\t\t...it,\n\t\tpaths: (it.paths.length === 0 ? [[]] : it.paths).map(it => [...path, ...it]),\n\t}))\n\nexport const getInsertPrimary = (result: MutationResultList) =>\n\tresult[0] && result[0].result === MutationResultType.ok && result[0].type === ModificationType.create\n\t\t? result[0].primary\n\t\t: undefined\n"],"names":["MutationResultType","MutationResultHint","NothingToDoReason","InputErrorKind","ConstraintType","it"],"mappings":"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"}
@@ -19,10 +19,8 @@ class DeleteExecutor {
19
19
  }
20
20
  async execute(mapper, entity, by, filter) {
21
21
  return mapper.mutex.execute(async () => {
22
- const primaryValue = await mapper.getPrimaryValue(entity, by);
23
- if (!primaryValue) {
24
- return [new Result.MutationEntryNotFoundError([], by)];
25
- }
22
+ const [primaryValue, err] = await mapper.getPrimaryValue(entity, by);
23
+ if (err) return [err];
26
24
  if (mapper.deletedEntities.isDeleted(entity.name, primaryValue)) {
27
25
  return [new Result.MutationNothingToDo([], Result.NothingToDoReason.alreadyDeleted)];
28
26
  }
@@ -45,8 +43,7 @@ class DeleteExecutor {
45
43
  columnName: Object.keys(entry.values)[0],
46
44
  fieldName: Object.keys(entry.input)[0],
47
45
  columnType: "text",
48
- resolvedValue: null,
49
- value: Promise.resolve(null)
46
+ value: null
50
47
  }], entry.primary);
51
48
  entryToEventMap.set(entry, beforeUpdateEvent);
52
49
  await mapper.eventManager.fire(beforeUpdateEvent);
@@ -63,8 +60,7 @@ class DeleteExecutor {
63
60
  columnName: Object.keys(entry.values)[0],
64
61
  fieldName: Object.keys(entry.input)[0],
65
62
  columnType: "text",
66
- resolvedValue: null,
67
- value: Promise.resolve(null),
63
+ value: null,
68
64
  old: Object.values(entry.oldValues ?? {})[0]
69
65
  }];
70
66
  const afterEvent = new EventManager.AfterUpdateEvent(entry.entity, data, entry.primary);
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteExecutor.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/delete/DeleteExecutor.ts"],"sourcesContent":["import { Acl, Input, Model } from '@contember/schema'\nimport { assertNever } from '../../utils'\nimport { Client, DeleteBuilder, Literal, SelectBuilder } from '@contember/database'\nimport { PathFactory, WhereBuilder } from '../select'\nimport { PredicateFactory } from '../../acl'\nimport { UpdateBuilderFactory } from '../update'\nimport {\n\tConstraintType,\n\tMutationConstraintViolationError,\n\tMutationDeleteOk,\n\tMutationEntryNotFoundError,\n\tMutationNoResultError,\n\tMutationNothingToDo,\n\tMutationResultList,\n\tMutationUpdateOk,\n\tNothingToDoReason,\n} from '../Result'\nimport { Mapper } from '../Mapper'\nimport { CheckedPrimary } from '../CheckedPrimary'\nimport { DeleteState } from './DeleteState'\nimport {\n\tEntityReferenceRow,\n\tfindOwningRelations,\n\tfindRelationsWithOrphanRemoval,\n\tformatConstraintViolationMessage,\n\tOneHasOneOwningRelationTuple,\n} from './helpers'\nimport { getEntity } from '@contember/schema-utils'\nimport { AfterUpdateEvent, BeforeDeleteEvent, BeforeUpdateEvent, EventManager } from '../EventManager'\nimport { ImplementationException } from '../../exception'\n\ntype DeleteQueue = [entity: Model.Entity, ids: Input.PrimaryValue[]][]\n\ntype DeleteInfoRow = { allowed: boolean; id: Input.PrimaryValue } & { [K in `_${string}`]: Input.PrimaryValue }\n\nexport class DeleteExecutor {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly updateBuilderFactory: UpdateBuilderFactory,\n\t\tprivate readonly pathFactory: PathFactory,\n\t) {\n\t}\n\n\tpublic async execute(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\tby: Input.UniqueWhere | CheckedPrimary,\n\t\tfilter?: Input.OptionalWhere,\n\t): Promise<MutationResultList> {\n\t\treturn mapper.mutex.execute(async () => {\n\t\t\tconst primaryValue = await mapper.getPrimaryValue(entity, by)\n\t\t\tif (!primaryValue) {\n\t\t\t\treturn [new MutationEntryNotFoundError([], by as Input.UniqueWhere)]\n\t\t\t}\n\n\t\t\tif (mapper.deletedEntities.isDeleted(entity.name, primaryValue)) {\n\t\t\t\treturn [new MutationNothingToDo([], NothingToDoReason.alreadyDeleted)]\n\t\t\t}\n\n\t\t\tconst primaryWhere = { [entity.primary]: { eq: primaryValue } }\n\t\t\tconst where = filter ? { and: [primaryWhere, filter] } : primaryWhere\n\t\t\tconst state = new DeleteState(mapper.deletedEntities)\n\t\t\tconst deletePrimary = await this.collectDeleteInfo(state, mapper, entity, where)\n\n\t\t\tconst deleteQueue: DeleteQueue = [[entity, deletePrimary]]\n\t\t\tawait this.collectOrphanRemovals(state, mapper, deleteQueue)\n\t\t\tif (!state.isOk()) {\n\t\t\t\treturn state.getResult()\n\t\t\t}\n\t\t\tconst result = state.getResult()\n\t\t\tconst entryToEventMap = new Map<MutationUpdateOk, BeforeUpdateEvent>()\n\t\t\tfor (const entry of result) {\n\t\t\t\tif (entry instanceof MutationDeleteOk) {\n\t\t\t\t\tawait mapper.eventManager.fire(new BeforeDeleteEvent(entry.entity, entry.primary))\n\t\t\t\t} else if (entry instanceof MutationUpdateOk) {\n\t\t\t\t\tconst beforeUpdateEvent = new BeforeUpdateEvent(entry.entity, [{\n\t\t\t\t\t\tcolumnName: Object.keys(entry.values)[0],\n\t\t\t\t\t\tfieldName: Object.keys(entry.input)[0],\n\t\t\t\t\t\tcolumnType: 'text',\n\t\t\t\t\t\tresolvedValue: null,\n\t\t\t\t\t\tvalue: Promise.resolve(null),\n\t\t\t\t\t}], entry.primary)\n\t\t\t\t\tentryToEventMap.set(entry, beforeUpdateEvent)\n\t\t\t\t\tawait mapper.eventManager.fire(beforeUpdateEvent)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait this.executeDeletes(deleteQueue, mapper.db)\n\n\t\t\tfor (const entry of result) {\n\t\t\t\tif (entry instanceof MutationUpdateOk) {\n\t\t\t\t\tconst beforeEvent = entryToEventMap.get(entry)\n\t\t\t\t\tif (!beforeEvent) {\n\t\t\t\t\t\tthrow new ImplementationException()\n\t\t\t\t\t}\n\t\t\t\t\tconst data = [{\n\t\t\t\t\t\tcolumnName: Object.keys(entry.values)[0],\n\t\t\t\t\t\tfieldName: Object.keys(entry.input)[0],\n\t\t\t\t\t\tcolumnType: 'text',\n\t\t\t\t\t\tresolvedValue: null,\n\t\t\t\t\t\tvalue: Promise.resolve(null),\n\t\t\t\t\t\told: Object.values(entry.oldValues ?? {})[0],\n\t\t\t\t\t}]\n\t\t\t\t\tconst afterEvent = new AfterUpdateEvent(entry.entity, data, entry.primary)\n\t\t\t\t\tbeforeEvent.afterEvent = afterEvent\n\t\t\t\t\tawait mapper.eventManager.fire(afterEvent)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstate.confirmDeleted()\n\n\t\t\treturn state.getResult()\n\t\t})\n\t}\n\n\tprivate async executeDeletes(deleteQueue: DeleteQueue, db: Client): Promise<void> {\n\t\tfor (const [entity, ids] of deleteQueue) {\n\t\t\tif (ids.length === 0) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tawait DeleteBuilder.create()\n\t\t\t\t.from(entity.tableName)\n\t\t\t\t.where(expr => expr.in(entity.primaryColumn, ids))\n\t\t\t\t.execute(db)\n\t\t}\n\t}\n\n\tprivate async collectDeleteInfo(\n\t\tstate: DeleteState,\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\twhere: Input.OptionalWhere,\n\t): Promise<Input.PrimaryValue[]> {\n\t\tconst predicate = this.predicateFactory.createDeletePredicate(entity)\n\t\tconst orphanRemovals = findRelationsWithOrphanRemoval(this.schema, entity)\n\n\t\tconst qb = SelectBuilder.create<DeleteInfoRow>()\n\t\t\t.from(entity.tableName, 'root_')\n\t\t\t.select(['root_', entity.primaryColumn], 'id')\n\n\t\tconst qbWithOrphanColumns = this.qbOrphanColumns(qb, orphanRemovals)\n\t\tconst qbWithAllowedFlag = this.qbWithAllowed(entity, predicate, qbWithOrphanColumns)\n\t\tconst qbWithWhere = this.whereBuilder.build(qbWithAllowedFlag, entity, this.pathFactory.create([]), where)\n\n\t\tconst fullResult = await qbWithWhere.getResult(mapper.db)\n\n\t\tif (fullResult.length === 0) {\n\t\t\tstate.pushFailResult(new MutationNoResultError([]))\n\t\t\treturn []\n\t\t}\n\n\t\tconst result = this.filterPlannedForDelete(state, entity, fullResult)\n\n\t\tconst disallowed: Input.PrimaryValue[] = result.filter(it => !it.allowed).map(it => it.id)\n\t\tif (disallowed.length) {\n\t\t\tstate.pushFailResult(new MutationEntryNotFoundError([], { [entity.primary]: { in: disallowed } }))\n\t\t\treturn []\n\t\t}\n\n\t\treturn await this.processDeleteResult(state, mapper, entity, result, orphanRemovals)\n\t}\n\n\n\tprivate async collectOnDeleteInfo(state: DeleteState, mapper: Mapper, entity: Model.Entity, values: Input.PrimaryValue[]): Promise<void> {\n\t\tif (values.length === 0) {\n\t\t\treturn\n\t\t}\n\t\tconst owningRelations = findOwningRelations(this.schema, entity)\n\t\tfor (const [owningEntity, relation] of owningRelations) {\n\t\t\tif (owningEntity.view) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif (relation.joiningColumn.onDelete === Model.OnDelete.restrict) {\n\t\t\t\tawait this.collectRestrictResult(state, mapper, owningEntity, relation, values)\n\t\t\t} else if (relation.joiningColumn.onDelete === Model.OnDelete.cascade) {\n\t\t\t\tawait this.collectCascadeResult(state, mapper, owningEntity, relation, values)\n\t\t\t} else if (relation.joiningColumn.onDelete === Model.OnDelete.setNull) {\n\t\t\t\tawait this.collectSetNullResult(state, mapper, owningEntity, relation, values)\n\t\t\t} else {\n\t\t\t\tassertNever(relation.joiningColumn.onDelete)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async collectCascadeResult(\n\t\tstate: DeleteState,\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\trelation: Model.ManyHasOneRelation | Model.OneHasOneOwningRelation,\n\t\tvalues: Input.PrimaryValue[],\n\t): Promise<void> {\n\t\tconst predicate = this.predicateFactory.createDeletePredicate(entity)\n\t\tconst orphanRemovals = findRelationsWithOrphanRemoval(this.schema, entity)\n\n\t\tconst qb = this.createFetchByIdQueryBuilder(entity, relation, values)\n\t\tconst qbWithOrphanColumns = this.qbOrphanColumns(qb, orphanRemovals)\n\t\tconst qbWithAllowed = this.qbWithAllowed(entity, predicate, qbWithOrphanColumns)\n\n\t\tconst result = this.filterPlannedForDelete(state, entity, await qbWithAllowed.getResult(mapper.db))\n\n\t\tconst disallowed = result.filter(it => !it.allowed)\n\n\t\tif (disallowed.length > 0) {\n\t\t\tconst message = formatConstraintViolationMessage(disallowed, entity, relation)\n\t\t\t\t+ ' OnDelete behaviour of this relation is set to \"cascade\". This is possibly caused by ACL denial.'\n\n\t\t\tstate.pushFailResult(new MutationConstraintViolationError([], ConstraintType.foreignKey, message))\n\t\t\treturn\n\t\t}\n\n\t\tawait this.processDeleteResult(state, mapper, entity, result, orphanRemovals)\n\t}\n\n\n\tprivate async collectSetNullResult(\n\t\tstate: DeleteState,\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\trelation: Model.ManyHasOneRelation | Model.OneHasOneOwningRelation,\n\t\tvalues: Input.PrimaryValue[],\n\t): Promise<void> {\n\t\tconst predicate = this.predicateFactory.create(entity, Acl.Operation.update, [relation.name])\n\n\t\tconst qb = this.createFetchByIdQueryBuilder(entity, relation, values)\n\t\tconst qbWithAllowed = this.qbWithAllowed(entity, predicate, qb)\n\n\t\tconst result = this.filterPlannedForDelete(state, entity, await qbWithAllowed.getResult(mapper.db))\n\n\t\tconst disallowed = result.filter(it => !it.allowed)\n\n\t\tif (disallowed.length === 0) {\n\t\t\tconst input = { [relation.name]: { disconnect: true } }\n\t\t\tconst values = { [relation.joiningColumn.columnName]: null }\n\n\t\t\tstate.pushOkResult(result.map(it => new MutationUpdateOk([], entity, it.id, input, values, { [relation.joiningColumn.columnName]: it.ref })))\n\t\t\treturn\n\t\t}\n\n\t\tconst message = formatConstraintViolationMessage(disallowed, entity, relation)\n\t\t\t+ ' OnDelete behaviour of this relation is set to \"set null\". This is possibly caused by ACL denial.'\n\t\tstate.pushFailResult(new MutationConstraintViolationError([], ConstraintType.foreignKey, message))\n\t}\n\n\n\tprivate async collectRestrictResult(\n\t\tstate: DeleteState,\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\trelation: Model.ManyHasOneRelation | Model.OneHasOneOwningRelation,\n\t\tvalues: Input.PrimaryValue[],\n\t): Promise<void> {\n\t\tif (mapper.constraintHelper.areConstraintsDeferred('foreignKey')) {\n\t\t\treturn\n\t\t}\n\t\tconst qb = this.createFetchByIdQueryBuilder(entity, relation, values)\n\t\tconst result = this.filterPlannedForDelete(state, entity, await qb.getResult(mapper.db))\n\n\t\tif (result.length === 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst message = formatConstraintViolationMessage(result, entity, relation)\n\t\t\t+ ' OnDelete behaviour of this relation is set to \"restrict\". You might consider changing it to \"setNull\" or \"cascade\".'\n\n\t\tstate.pushFailResult(new MutationConstraintViolationError([], ConstraintType.foreignKey, message))\n\t}\n\n\tprivate async collectOrphanRemovals(state: DeleteState, mapper: Mapper, deleteQueue: DeleteQueue) {\n\t\tdo {\n\t\t\tif (!state.isOk()) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst orphanRemoval = state.fetchOrphanRemovals()\n\t\t\tif (orphanRemoval === null) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tconst entity = getEntity(this.schema, orphanRemoval[0])\n\t\t\tconst orphanResult = await this.collectDeleteInfo(state, mapper, entity, { [entity.primary]: { in: orphanRemoval[1] } })\n\t\t\tdeleteQueue.push([entity, orphanResult])\n\n\t\t} while (true)\n\t}\n\n\tprivate qbWithAllowed<R>(entity: Model.Entity, predicate: Input.OptionalWhere, selectQb: SelectBuilder<R>): SelectBuilder<R & { allowed: boolean }> {\n\t\treturn this.whereBuilder.buildAdvanced<R & { allowed: boolean }>(entity, this.pathFactory.create([]), predicate, cb => {\n\t\t\tconst qb = selectQb.select(expr => expr.selectCondition(cb), 'allowed')\n\t\t\treturn (qb === selectQb ? qb.select(new Literal('true'), 'allowed') : qb) as SelectBuilder<R & { allowed: boolean }>\n\t\t})\n\t}\n\n\tprivate qbOrphanColumns<R>(qb: SelectBuilder<R>, orphanRemovals: OneHasOneOwningRelationTuple[]): SelectBuilder<R> {\n\t\tconst orphanColumns = orphanRemovals.map(([, rel]) => rel.joiningColumn.columnName)\n\t\treturn orphanColumns.reduce((qb, column) => qb.select(['root_', column], `_${column}`), qb)\n\t}\n\n\tprivate createFetchByIdQueryBuilder(entity: Model.Entity, relation: Model.ManyHasOneRelation | Model.OneHasOneOwningRelation, values: Input.PrimaryValue[]) {\n\t\treturn SelectBuilder.create<EntityReferenceRow>()\n\t\t\t.from(entity.tableName, 'root_')\n\t\t\t.select(['root_', entity.primaryColumn], 'id')\n\t\t\t.select(['root_', relation.joiningColumn.columnName], 'ref')\n\t\t\t.where(expr => expr.in(relation.joiningColumn.columnName, values))\n\t}\n\n\tprivate filterPlannedForDelete<R extends {id: Input.PrimaryValue}>(state: DeleteState, entity: Model.Entity, values: R[]): R[] {\n\t\treturn values.filter(it => !state.isPlannedDelete(entity.name, it.id))\n\t}\n\n\n\tprivate async processDeleteResult(\n\t\tstate: DeleteState,\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\tresult: DeleteInfoRow[],\n\t\torphanRemovals: OneHasOneOwningRelationTuple[],\n\t): Promise<Input.PrimaryValue[]> {\n\t\tconst ids = result.map(it => it.id)\n\t\tstate.markPlannedDelete(entity.name, ids)\n\t\tstate.pushOkResult(ids.map(id => new MutationDeleteOk([], entity, id)))\n\n\t\tawait this.collectOnDeleteInfo(state, mapper, entity, ids)\n\n\t\tfor (const [entity, relation] of orphanRemovals) {\n\t\t\tconst ids = result.map(it => it[`_${relation.joiningColumn.columnName}`]).filter(it => it !== null)\n\t\t\tif (ids.length) {\n\t\t\t\tstate.addOrphanRemoval(entity.name, ids)\n\t\t\t}\n\t\t}\n\t\treturn ids\n\t}\n}\n"],"names":["schema","MutationEntryNotFoundError","MutationNothingToDo","NothingToDoReason","DeleteState","MutationDeleteOk","BeforeDeleteEvent","MutationUpdateOk","BeforeUpdateEvent","ImplementationException","AfterUpdateEvent","DeleteBuilder","findRelationsWithOrphanRemoval","SelectBuilder","MutationNoResultError","findOwningRelations","Model","assertNever","formatConstraintViolationMessage","MutationConstraintViolationError","ConstraintType","Acl","values","getEntity","Literal","qb","entity","ids"],"mappings":"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"}
1
+ {"version":3,"file":"DeleteExecutor.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/delete/DeleteExecutor.ts"],"sourcesContent":["import { Acl, Input, Model } from '@contember/schema'\nimport { assertNever } from '../../utils'\nimport { Client, DeleteBuilder, Literal, SelectBuilder } from '@contember/database'\nimport { PathFactory, WhereBuilder } from '../select'\nimport { PredicateFactory } from '../../acl'\nimport { UpdateBuilderFactory } from '../update'\nimport {\n\tConstraintType,\n\tMutationConstraintViolationError,\n\tMutationDeleteOk,\n\tMutationEntryNotFoundError,\n\tMutationNoResultError,\n\tMutationNothingToDo,\n\tMutationResultList,\n\tMutationUpdateOk,\n\tNothingToDoReason,\n} from '../Result'\nimport { Mapper } from '../Mapper'\nimport { CheckedPrimary } from '../CheckedPrimary'\nimport { DeleteState } from './DeleteState'\nimport {\n\tEntityReferenceRow,\n\tfindOwningRelations,\n\tfindRelationsWithOrphanRemoval,\n\tformatConstraintViolationMessage,\n\tOneHasOneOwningRelationTuple,\n} from './helpers'\nimport { getEntity } from '@contember/schema-utils'\nimport { AfterUpdateEvent, BeforeDeleteEvent, BeforeUpdateEvent, EventManager } from '../EventManager'\nimport { ImplementationException } from '../../exception'\n\ntype DeleteQueue = [entity: Model.Entity, ids: Input.PrimaryValue[]][]\n\ntype DeleteInfoRow = { allowed: boolean; id: Input.PrimaryValue } & { [K in `_${string}`]: Input.PrimaryValue }\n\nexport class DeleteExecutor {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly predicateFactory: PredicateFactory,\n\t\tprivate readonly whereBuilder: WhereBuilder,\n\t\tprivate readonly updateBuilderFactory: UpdateBuilderFactory,\n\t\tprivate readonly pathFactory: PathFactory,\n\t) {\n\t}\n\n\tpublic async execute(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\tby: Input.UniqueWhere | CheckedPrimary,\n\t\tfilter?: Input.OptionalWhere,\n\t): Promise<MutationResultList> {\n\t\treturn mapper.mutex.execute(async () => {\n\t\t\tconst [primaryValue, err] = await mapper.getPrimaryValue(entity, by)\n\t\t\tif (err) return [err]\n\n\t\t\tif (mapper.deletedEntities.isDeleted(entity.name, primaryValue)) {\n\t\t\t\treturn [new MutationNothingToDo([], NothingToDoReason.alreadyDeleted)]\n\t\t\t}\n\n\t\t\tconst primaryWhere = { [entity.primary]: { eq: primaryValue } }\n\t\t\tconst where = filter ? { and: [primaryWhere, filter] } : primaryWhere\n\t\t\tconst state = new DeleteState(mapper.deletedEntities)\n\t\t\tconst deletePrimary = await this.collectDeleteInfo(state, mapper, entity, where)\n\n\t\t\tconst deleteQueue: DeleteQueue = [[entity, deletePrimary]]\n\t\t\tawait this.collectOrphanRemovals(state, mapper, deleteQueue)\n\t\t\tif (!state.isOk()) {\n\t\t\t\treturn state.getResult()\n\t\t\t}\n\t\t\tconst result = state.getResult()\n\t\t\tconst entryToEventMap = new Map<MutationUpdateOk, BeforeUpdateEvent>()\n\t\t\tfor (const entry of result) {\n\t\t\t\tif (entry instanceof MutationDeleteOk) {\n\t\t\t\t\tawait mapper.eventManager.fire(new BeforeDeleteEvent(entry.entity, entry.primary))\n\t\t\t\t} else if (entry instanceof MutationUpdateOk) {\n\t\t\t\t\tconst beforeUpdateEvent = new BeforeUpdateEvent(entry.entity, [{\n\t\t\t\t\t\tcolumnName: Object.keys(entry.values)[0],\n\t\t\t\t\t\tfieldName: Object.keys(entry.input)[0],\n\t\t\t\t\t\tcolumnType: 'text',\n\t\t\t\t\t\tvalue: null,\n\t\t\t\t\t}], entry.primary)\n\t\t\t\t\tentryToEventMap.set(entry, beforeUpdateEvent)\n\t\t\t\t\tawait mapper.eventManager.fire(beforeUpdateEvent)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait this.executeDeletes(deleteQueue, mapper.db)\n\n\t\t\tfor (const entry of result) {\n\t\t\t\tif (entry instanceof MutationUpdateOk) {\n\t\t\t\t\tconst beforeEvent = entryToEventMap.get(entry)\n\t\t\t\t\tif (!beforeEvent) {\n\t\t\t\t\t\tthrow new ImplementationException()\n\t\t\t\t\t}\n\t\t\t\t\tconst data = [{\n\t\t\t\t\t\tcolumnName: Object.keys(entry.values)[0],\n\t\t\t\t\t\tfieldName: Object.keys(entry.input)[0],\n\t\t\t\t\t\tcolumnType: 'text',\n\t\t\t\t\t\tvalue: null,\n\t\t\t\t\t\told: Object.values(entry.oldValues ?? {})[0],\n\t\t\t\t\t}]\n\t\t\t\t\tconst afterEvent = new AfterUpdateEvent(entry.entity, data, entry.primary)\n\t\t\t\t\tbeforeEvent.afterEvent = afterEvent\n\t\t\t\t\tawait mapper.eventManager.fire(afterEvent)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstate.confirmDeleted()\n\n\t\t\treturn state.getResult()\n\t\t})\n\t}\n\n\tprivate async executeDeletes(deleteQueue: DeleteQueue, db: Client): Promise<void> {\n\t\tfor (const [entity, ids] of deleteQueue) {\n\t\t\tif (ids.length === 0) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tawait DeleteBuilder.create()\n\t\t\t\t.from(entity.tableName)\n\t\t\t\t.where(expr => expr.in(entity.primaryColumn, ids))\n\t\t\t\t.execute(db)\n\t\t}\n\t}\n\n\tprivate async collectDeleteInfo(\n\t\tstate: DeleteState,\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\twhere: Input.OptionalWhere,\n\t): Promise<Input.PrimaryValue[]> {\n\t\tconst predicate = this.predicateFactory.createDeletePredicate(entity)\n\t\tconst orphanRemovals = findRelationsWithOrphanRemoval(this.schema, entity)\n\n\t\tconst qb = SelectBuilder.create<DeleteInfoRow>()\n\t\t\t.from(entity.tableName, 'root_')\n\t\t\t.select(['root_', entity.primaryColumn], 'id')\n\n\t\tconst qbWithOrphanColumns = this.qbOrphanColumns(qb, orphanRemovals)\n\t\tconst qbWithAllowedFlag = this.qbWithAllowed(entity, predicate, qbWithOrphanColumns)\n\t\tconst qbWithWhere = this.whereBuilder.build(qbWithAllowedFlag, entity, this.pathFactory.create([]), where)\n\n\t\tconst fullResult = await qbWithWhere.getResult(mapper.db)\n\n\t\tif (fullResult.length === 0) {\n\t\t\tstate.pushFailResult(new MutationNoResultError([]))\n\t\t\treturn []\n\t\t}\n\n\t\tconst result = this.filterPlannedForDelete(state, entity, fullResult)\n\n\t\tconst disallowed: Input.PrimaryValue[] = result.filter(it => !it.allowed).map(it => it.id)\n\t\tif (disallowed.length) {\n\t\t\tstate.pushFailResult(new MutationEntryNotFoundError([], { [entity.primary]: { in: disallowed } }))\n\t\t\treturn []\n\t\t}\n\n\t\treturn await this.processDeleteResult(state, mapper, entity, result, orphanRemovals)\n\t}\n\n\n\tprivate async collectOnDeleteInfo(state: DeleteState, mapper: Mapper, entity: Model.Entity, values: Input.PrimaryValue[]): Promise<void> {\n\t\tif (values.length === 0) {\n\t\t\treturn\n\t\t}\n\t\tconst owningRelations = findOwningRelations(this.schema, entity)\n\t\tfor (const [owningEntity, relation] of owningRelations) {\n\t\t\tif (owningEntity.view) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif (relation.joiningColumn.onDelete === Model.OnDelete.restrict) {\n\t\t\t\tawait this.collectRestrictResult(state, mapper, owningEntity, relation, values)\n\t\t\t} else if (relation.joiningColumn.onDelete === Model.OnDelete.cascade) {\n\t\t\t\tawait this.collectCascadeResult(state, mapper, owningEntity, relation, values)\n\t\t\t} else if (relation.joiningColumn.onDelete === Model.OnDelete.setNull) {\n\t\t\t\tawait this.collectSetNullResult(state, mapper, owningEntity, relation, values)\n\t\t\t} else {\n\t\t\t\tassertNever(relation.joiningColumn.onDelete)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async collectCascadeResult(\n\t\tstate: DeleteState,\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\trelation: Model.ManyHasOneRelation | Model.OneHasOneOwningRelation,\n\t\tvalues: Input.PrimaryValue[],\n\t): Promise<void> {\n\t\tconst predicate = this.predicateFactory.createDeletePredicate(entity)\n\t\tconst orphanRemovals = findRelationsWithOrphanRemoval(this.schema, entity)\n\n\t\tconst qb = this.createFetchByIdQueryBuilder(entity, relation, values)\n\t\tconst qbWithOrphanColumns = this.qbOrphanColumns(qb, orphanRemovals)\n\t\tconst qbWithAllowed = this.qbWithAllowed(entity, predicate, qbWithOrphanColumns)\n\n\t\tconst result = this.filterPlannedForDelete(state, entity, await qbWithAllowed.getResult(mapper.db))\n\n\t\tconst disallowed = result.filter(it => !it.allowed)\n\n\t\tif (disallowed.length > 0) {\n\t\t\tconst message = formatConstraintViolationMessage(disallowed, entity, relation)\n\t\t\t\t+ ' OnDelete behaviour of this relation is set to \"cascade\". This is possibly caused by ACL denial.'\n\n\t\t\tstate.pushFailResult(new MutationConstraintViolationError([], ConstraintType.foreignKey, message))\n\t\t\treturn\n\t\t}\n\n\t\tawait this.processDeleteResult(state, mapper, entity, result, orphanRemovals)\n\t}\n\n\n\tprivate async collectSetNullResult(\n\t\tstate: DeleteState,\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\trelation: Model.ManyHasOneRelation | Model.OneHasOneOwningRelation,\n\t\tvalues: Input.PrimaryValue[],\n\t): Promise<void> {\n\t\tconst predicate = this.predicateFactory.create(entity, Acl.Operation.update, [relation.name])\n\n\t\tconst qb = this.createFetchByIdQueryBuilder(entity, relation, values)\n\t\tconst qbWithAllowed = this.qbWithAllowed(entity, predicate, qb)\n\n\t\tconst result = this.filterPlannedForDelete(state, entity, await qbWithAllowed.getResult(mapper.db))\n\n\t\tconst disallowed = result.filter(it => !it.allowed)\n\n\t\tif (disallowed.length === 0) {\n\t\t\tconst input = { [relation.name]: { disconnect: true } }\n\t\t\tconst values = { [relation.joiningColumn.columnName]: null }\n\n\t\t\tstate.pushOkResult(result.map(it => new MutationUpdateOk([], entity, it.id, input, values, { [relation.joiningColumn.columnName]: it.ref })))\n\t\t\treturn\n\t\t}\n\n\t\tconst message = formatConstraintViolationMessage(disallowed, entity, relation)\n\t\t\t+ ' OnDelete behaviour of this relation is set to \"set null\". This is possibly caused by ACL denial.'\n\t\tstate.pushFailResult(new MutationConstraintViolationError([], ConstraintType.foreignKey, message))\n\t}\n\n\n\tprivate async collectRestrictResult(\n\t\tstate: DeleteState,\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\trelation: Model.ManyHasOneRelation | Model.OneHasOneOwningRelation,\n\t\tvalues: Input.PrimaryValue[],\n\t): Promise<void> {\n\t\tif (mapper.constraintHelper.areConstraintsDeferred('foreignKey')) {\n\t\t\treturn\n\t\t}\n\t\tconst qb = this.createFetchByIdQueryBuilder(entity, relation, values)\n\t\tconst result = this.filterPlannedForDelete(state, entity, await qb.getResult(mapper.db))\n\n\t\tif (result.length === 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst message = formatConstraintViolationMessage(result, entity, relation)\n\t\t\t+ ' OnDelete behaviour of this relation is set to \"restrict\". You might consider changing it to \"setNull\" or \"cascade\".'\n\n\t\tstate.pushFailResult(new MutationConstraintViolationError([], ConstraintType.foreignKey, message))\n\t}\n\n\tprivate async collectOrphanRemovals(state: DeleteState, mapper: Mapper, deleteQueue: DeleteQueue) {\n\t\tdo {\n\t\t\tif (!state.isOk()) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst orphanRemoval = state.fetchOrphanRemovals()\n\t\t\tif (orphanRemoval === null) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tconst entity = getEntity(this.schema, orphanRemoval[0])\n\t\t\tconst orphanResult = await this.collectDeleteInfo(state, mapper, entity, { [entity.primary]: { in: orphanRemoval[1] } })\n\t\t\tdeleteQueue.push([entity, orphanResult])\n\n\t\t} while (true)\n\t}\n\n\tprivate qbWithAllowed<R>(entity: Model.Entity, predicate: Input.OptionalWhere, selectQb: SelectBuilder<R>): SelectBuilder<R & { allowed: boolean }> {\n\t\treturn this.whereBuilder.buildAdvanced<R & { allowed: boolean }>(entity, this.pathFactory.create([]), predicate, cb => {\n\t\t\tconst qb = selectQb.select(expr => expr.selectCondition(cb), 'allowed')\n\t\t\treturn (qb === selectQb ? qb.select(new Literal('true'), 'allowed') : qb) as SelectBuilder<R & { allowed: boolean }>\n\t\t})\n\t}\n\n\tprivate qbOrphanColumns<R>(qb: SelectBuilder<R>, orphanRemovals: OneHasOneOwningRelationTuple[]): SelectBuilder<R> {\n\t\tconst orphanColumns = orphanRemovals.map(([, rel]) => rel.joiningColumn.columnName)\n\t\treturn orphanColumns.reduce((qb, column) => qb.select(['root_', column], `_${column}`), qb)\n\t}\n\n\tprivate createFetchByIdQueryBuilder(entity: Model.Entity, relation: Model.ManyHasOneRelation | Model.OneHasOneOwningRelation, values: Input.PrimaryValue[]) {\n\t\treturn SelectBuilder.create<EntityReferenceRow>()\n\t\t\t.from(entity.tableName, 'root_')\n\t\t\t.select(['root_', entity.primaryColumn], 'id')\n\t\t\t.select(['root_', relation.joiningColumn.columnName], 'ref')\n\t\t\t.where(expr => expr.in(relation.joiningColumn.columnName, values))\n\t}\n\n\tprivate filterPlannedForDelete<R extends {id: Input.PrimaryValue}>(state: DeleteState, entity: Model.Entity, values: R[]): R[] {\n\t\treturn values.filter(it => !state.isPlannedDelete(entity.name, it.id))\n\t}\n\n\n\tprivate async processDeleteResult(\n\t\tstate: DeleteState,\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\tresult: DeleteInfoRow[],\n\t\torphanRemovals: OneHasOneOwningRelationTuple[],\n\t): Promise<Input.PrimaryValue[]> {\n\t\tconst ids = result.map(it => it.id)\n\t\tstate.markPlannedDelete(entity.name, ids)\n\t\tstate.pushOkResult(ids.map(id => new MutationDeleteOk([], entity, id)))\n\n\t\tawait this.collectOnDeleteInfo(state, mapper, entity, ids)\n\n\t\tfor (const [entity, relation] of orphanRemovals) {\n\t\t\tconst ids = result.map(it => it[`_${relation.joiningColumn.columnName}`]).filter(it => it !== null)\n\t\t\tif (ids.length) {\n\t\t\t\tstate.addOrphanRemoval(entity.name, ids)\n\t\t\t}\n\t\t}\n\t\treturn ids\n\t}\n}\n"],"names":["schema","MutationNothingToDo","NothingToDoReason","DeleteState","MutationDeleteOk","BeforeDeleteEvent","MutationUpdateOk","BeforeUpdateEvent","ImplementationException","AfterUpdateEvent","DeleteBuilder","findRelationsWithOrphanRemoval","SelectBuilder","MutationNoResultError","MutationEntryNotFoundError","findOwningRelations","Model","assertNever","formatConstraintViolationMessage","MutationConstraintViolationError","ConstraintType","Acl","values","getEntity","Literal","qb","entity","ids"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { ImplementationException } from "../../exception.js";
3
3
  import { assertNever } from "../../utils/assertNever.js";
4
4
  import { getEntity } from "@contember/schema-utils";
5
5
  import { DeleteBuilder, SelectBuilder, Literal } from "@contember/database";
6
- import { MutationEntryNotFoundError, MutationNothingToDo, NothingToDoReason, MutationDeleteOk, MutationUpdateOk, MutationNoResultError, MutationConstraintViolationError, ConstraintType } from "../Result.js";
6
+ import { MutationNothingToDo, NothingToDoReason, MutationDeleteOk, MutationUpdateOk, MutationNoResultError, MutationEntryNotFoundError, MutationConstraintViolationError, ConstraintType } from "../Result.js";
7
7
  import { DeleteState } from "./DeleteState.js";
8
8
  import { findRelationsWithOrphanRemoval, findOwningRelations, formatConstraintViolationMessage } from "./helpers.js";
9
9
  import { BeforeDeleteEvent, BeforeUpdateEvent, AfterUpdateEvent } from "../EventManager.js";
@@ -17,10 +17,8 @@ class DeleteExecutor {
17
17
  }
18
18
  async execute(mapper, entity, by, filter) {
19
19
  return mapper.mutex.execute(async () => {
20
- const primaryValue = await mapper.getPrimaryValue(entity, by);
21
- if (!primaryValue) {
22
- return [new MutationEntryNotFoundError([], by)];
23
- }
20
+ const [primaryValue, err] = await mapper.getPrimaryValue(entity, by);
21
+ if (err) return [err];
24
22
  if (mapper.deletedEntities.isDeleted(entity.name, primaryValue)) {
25
23
  return [new MutationNothingToDo([], NothingToDoReason.alreadyDeleted)];
26
24
  }
@@ -43,8 +41,7 @@ class DeleteExecutor {
43
41
  columnName: Object.keys(entry.values)[0],
44
42
  fieldName: Object.keys(entry.input)[0],
45
43
  columnType: "text",
46
- resolvedValue: null,
47
- value: Promise.resolve(null)
44
+ value: null
48
45
  }], entry.primary);
49
46
  entryToEventMap.set(entry, beforeUpdateEvent);
50
47
  await mapper.eventManager.fire(beforeUpdateEvent);
@@ -61,8 +58,7 @@ class DeleteExecutor {
61
58
  columnName: Object.keys(entry.values)[0],
62
59
  fieldName: Object.keys(entry.input)[0],
63
60
  columnType: "text",
64
- resolvedValue: null,
65
- value: Promise.resolve(null),
61
+ value: null,
66
62
  old: Object.values(entry.oldValues ?? {})[0]
67
63
  }];
68
64
  const afterEvent = new AfterUpdateEvent(entry.entity, data, entry.primary);