@contember/engine-content-api 1.2.0-rc.4 → 1.3.0-alpha.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 (378) hide show
  1. package/dist/src/input-validation/preValidation/CreateInputPreValidationProcessor.d.ts.map +1 -1
  2. package/dist/src/input-validation/preValidation/CreateInputPreValidationProcessor.js +6 -0
  3. package/dist/src/input-validation/preValidation/CreateInputPreValidationProcessor.js.map +1 -1
  4. package/dist/src/input-validation/preValidation/UpdateInputPreValidationProcessor.d.ts.map +1 -1
  5. package/dist/src/input-validation/preValidation/UpdateInputPreValidationProcessor.js +6 -0
  6. package/dist/src/input-validation/preValidation/UpdateInputPreValidationProcessor.js.map +1 -1
  7. package/dist/src/inputProcessing/CreateInputProcessor.d.ts +27 -9
  8. package/dist/src/inputProcessing/CreateInputProcessor.d.ts.map +1 -1
  9. package/dist/src/inputProcessing/CreateInputVisitor.d.ts.map +1 -1
  10. package/dist/src/inputProcessing/CreateInputVisitor.js +10 -2
  11. package/dist/src/inputProcessing/CreateInputVisitor.js.map +1 -1
  12. package/dist/src/inputProcessing/UniqueWhereExpander.d.ts +2 -1
  13. package/dist/src/inputProcessing/UniqueWhereExpander.d.ts.map +1 -1
  14. package/dist/src/inputProcessing/UniqueWhereExpander.js +4 -0
  15. package/dist/src/inputProcessing/UniqueWhereExpander.js.map +1 -1
  16. package/dist/src/inputProcessing/UpdateInputProcessor.d.ts +41 -16
  17. package/dist/src/inputProcessing/UpdateInputProcessor.d.ts.map +1 -1
  18. package/dist/src/inputProcessing/UpdateInputVisitor.d.ts.map +1 -1
  19. package/dist/src/inputProcessing/UpdateInputVisitor.js +7 -2
  20. package/dist/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  21. package/dist/src/mapper/DataManipulationBuilder.d.ts +7 -0
  22. package/dist/src/mapper/DataManipulationBuilder.d.ts.map +1 -0
  23. package/dist/src/mapper/DataManipulationBuilder.js +5 -0
  24. package/dist/src/mapper/DataManipulationBuilder.js.map +1 -0
  25. package/dist/src/mapper/Mapper.d.ts +9 -14
  26. package/dist/src/mapper/Mapper.d.ts.map +1 -1
  27. package/dist/src/mapper/Mapper.js +48 -15
  28. package/dist/src/mapper/Mapper.js.map +1 -1
  29. package/dist/src/mapper/MapperContainer.d.ts.map +1 -1
  30. package/dist/src/mapper/MapperContainer.js +3 -3
  31. package/dist/src/mapper/MapperContainer.js.map +1 -1
  32. package/dist/src/mapper/Result.d.ts +2 -2
  33. package/dist/src/mapper/Result.d.ts.map +1 -1
  34. package/dist/src/mapper/Result.js.map +1 -1
  35. package/dist/src/mapper/delete/DeleteExecutor.d.ts +12 -5
  36. package/dist/src/mapper/delete/DeleteExecutor.d.ts.map +1 -1
  37. package/dist/src/mapper/delete/DeleteExecutor.js +143 -77
  38. package/dist/src/mapper/delete/DeleteExecutor.js.map +1 -1
  39. package/dist/src/mapper/delete/DeleteState.d.ts +22 -0
  40. package/dist/src/mapper/delete/DeleteState.d.ts.map +1 -0
  41. package/dist/src/mapper/delete/DeleteState.js +68 -0
  42. package/dist/src/mapper/delete/DeleteState.js.map +1 -0
  43. package/dist/src/mapper/delete/DeletedEntitiesStorage.d.ts +1 -0
  44. package/dist/src/mapper/delete/DeletedEntitiesStorage.d.ts.map +1 -1
  45. package/dist/src/mapper/delete/DeletedEntitiesStorage.js +5 -0
  46. package/dist/src/mapper/delete/DeletedEntitiesStorage.js.map +1 -1
  47. package/dist/src/mapper/delete/helpers.d.ts +11 -0
  48. package/dist/src/mapper/delete/helpers.d.ts.map +1 -0
  49. package/dist/src/mapper/delete/helpers.js +49 -0
  50. package/dist/src/mapper/delete/helpers.js.map +1 -0
  51. package/dist/src/mapper/insert/InsertBuilder.d.ts +8 -5
  52. package/dist/src/mapper/insert/InsertBuilder.d.ts.map +1 -1
  53. package/dist/src/mapper/insert/InsertBuilder.js +16 -9
  54. package/dist/src/mapper/insert/InsertBuilder.js.map +1 -1
  55. package/dist/src/mapper/insert/InsertBuilderFactory.d.ts +3 -1
  56. package/dist/src/mapper/insert/InsertBuilderFactory.d.ts.map +1 -1
  57. package/dist/src/mapper/insert/InsertBuilderFactory.js +3 -2
  58. package/dist/src/mapper/insert/InsertBuilderFactory.js.map +1 -1
  59. package/dist/src/mapper/insert/Inserter.d.ts +3 -6
  60. package/dist/src/mapper/insert/Inserter.d.ts.map +1 -1
  61. package/dist/src/mapper/insert/Inserter.js +6 -9
  62. package/dist/src/mapper/insert/Inserter.js.map +1 -1
  63. package/dist/src/mapper/insert/SqlCreateInputProcessor.d.ts +5 -0
  64. package/dist/src/mapper/insert/SqlCreateInputProcessor.d.ts.map +1 -1
  65. package/dist/src/mapper/insert/SqlCreateInputProcessor.js +54 -120
  66. package/dist/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  67. package/dist/src/mapper/relations/ManyHasManyInputProcessor.d.ts +32 -0
  68. package/dist/src/mapper/relations/ManyHasManyInputProcessor.d.ts.map +1 -0
  69. package/dist/src/mapper/relations/ManyHasManyInputProcessor.js +77 -0
  70. package/dist/src/mapper/relations/ManyHasManyInputProcessor.js.map +1 -0
  71. package/dist/src/mapper/relations/ManyHasOneInputProcessor.d.ts +32 -0
  72. package/dist/src/mapper/relations/ManyHasOneInputProcessor.d.ts.map +1 -0
  73. package/dist/src/mapper/relations/ManyHasOneInputProcessor.js +108 -0
  74. package/dist/src/mapper/relations/ManyHasOneInputProcessor.js.map +1 -0
  75. package/dist/src/mapper/relations/OneHasManyInputProcessor.d.ts +29 -0
  76. package/dist/src/mapper/relations/OneHasManyInputProcessor.d.ts.map +1 -0
  77. package/dist/src/mapper/relations/OneHasManyInputProcessor.js +61 -0
  78. package/dist/src/mapper/relations/OneHasManyInputProcessor.js.map +1 -0
  79. package/dist/src/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts +21 -0
  80. package/dist/src/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +1 -0
  81. package/dist/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js +74 -0
  82. package/dist/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -0
  83. package/dist/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.d.ts +32 -0
  84. package/dist/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +1 -0
  85. package/dist/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js +125 -0
  86. package/dist/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -0
  87. package/dist/src/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts +21 -0
  88. package/dist/src/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +1 -0
  89. package/dist/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js +72 -0
  90. package/dist/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -0
  91. package/dist/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.d.ts +37 -0
  92. package/dist/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +1 -0
  93. package/dist/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js +193 -0
  94. package/dist/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -0
  95. package/dist/src/mapper/select/JoinBuilder.d.ts +1 -1
  96. package/dist/src/mapper/select/JoinBuilder.d.ts.map +1 -1
  97. package/dist/src/mapper/select/JoinBuilder.js.map +1 -1
  98. package/dist/src/mapper/select/WhereBuilder.d.ts +2 -2
  99. package/dist/src/mapper/select/WhereBuilder.d.ts.map +1 -1
  100. package/dist/src/mapper/select/WhereBuilder.js.map +1 -1
  101. package/dist/src/mapper/update/SqlUpdateInputProcessor.d.ts +5 -0
  102. package/dist/src/mapper/update/SqlUpdateInputProcessor.d.ts.map +1 -1
  103. package/dist/src/mapper/update/SqlUpdateInputProcessor.js +52 -389
  104. package/dist/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
  105. package/dist/src/mapper/update/UpdateBuilder.d.ts +7 -4
  106. package/dist/src/mapper/update/UpdateBuilder.d.ts.map +1 -1
  107. package/dist/src/mapper/update/UpdateBuilder.js +18 -12
  108. package/dist/src/mapper/update/UpdateBuilder.js.map +1 -1
  109. package/dist/src/mapper/update/UpdateBuilderFactory.d.ts +3 -1
  110. package/dist/src/mapper/update/UpdateBuilderFactory.d.ts.map +1 -1
  111. package/dist/src/mapper/update/UpdateBuilderFactory.js +3 -2
  112. package/dist/src/mapper/update/UpdateBuilderFactory.js.map +1 -1
  113. package/dist/src/mapper/update/Updater.d.ts +1 -4
  114. package/dist/src/mapper/update/Updater.d.ts.map +1 -1
  115. package/dist/src/mapper/update/Updater.js +11 -13
  116. package/dist/src/mapper/update/Updater.js.map +1 -1
  117. package/dist/src/resolvers/MutationResolver.js +1 -1
  118. package/dist/src/resolvers/MutationResolver.js.map +1 -1
  119. package/dist/src/schema/GraphQlSchemaBuilderFactory.d.ts +3 -0
  120. package/dist/src/schema/GraphQlSchemaBuilderFactory.d.ts.map +1 -1
  121. package/dist/src/schema/GraphQlSchemaBuilderFactory.js +4 -2
  122. package/dist/src/schema/GraphQlSchemaBuilderFactory.js.map +1 -1
  123. package/dist/src/schema/mutations/ConnectOrCreateRelationInputProvider.d.ts +15 -0
  124. package/dist/src/schema/mutations/ConnectOrCreateRelationInputProvider.d.ts.map +1 -0
  125. package/dist/src/schema/mutations/ConnectOrCreateRelationInputProvider.js +43 -0
  126. package/dist/src/schema/mutations/ConnectOrCreateRelationInputProvider.js.map +1 -0
  127. package/dist/src/schema/mutations/CreateEntityInputFieldVisitor.d.ts.map +1 -1
  128. package/dist/src/schema/mutations/CreateEntityInputFieldVisitor.js +2 -6
  129. package/dist/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
  130. package/dist/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.d.ts.map +1 -1
  131. package/dist/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js +3 -0
  132. package/dist/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  133. package/dist/src/schema/mutations/CreateEntityRelationInputFieldVisitor.d.ts +3 -1
  134. package/dist/src/schema/mutations/CreateEntityRelationInputFieldVisitor.d.ts.map +1 -1
  135. package/dist/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js +15 -8
  136. package/dist/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js.map +1 -1
  137. package/dist/src/schema/mutations/EntityInputProvider.d.ts.map +1 -1
  138. package/dist/src/schema/mutations/EntityInputProvider.js +0 -3
  139. package/dist/src/schema/mutations/EntityInputProvider.js.map +1 -1
  140. package/dist/src/schema/mutations/UpdateEntityInputFieldVisitor.d.ts.map +1 -1
  141. package/dist/src/schema/mutations/UpdateEntityInputFieldVisitor.js +2 -6
  142. package/dist/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
  143. package/dist/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.d.ts.map +1 -1
  144. package/dist/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js +3 -0
  145. package/dist/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  146. package/dist/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.d.ts +3 -1
  147. package/dist/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.d.ts.map +1 -1
  148. package/dist/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +11 -22
  149. package/dist/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
  150. package/dist/src/tsconfig.tsbuildinfo +1 -1
  151. package/dist/tests/cases/integration/graphQlDb/update/deferedConstraints.test.js +2 -2
  152. package/dist/tests/cases/integration/graphQlDb/update/deferedConstraints.test.js.map +1 -1
  153. package/dist/tests/cases/integration/graphQlDb/update/failedDelete.test.js +1 -1
  154. package/dist/tests/cases/integration/graphQlDb/update/failedDelete.test.js.map +1 -1
  155. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.js +1 -1
  156. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.js.map +1 -1
  157. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.js +0 -3
  158. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.js.map +1 -1
  159. package/dist/tests/cases/integration/graphQlRequests/delete/aclDelete.test.js +13 -32
  160. package/dist/tests/cases/integration/graphQlRequests/delete/aclDelete.test.js.map +1 -1
  161. package/dist/tests/cases/integration/graphQlRequests/delete/additionalDeleteFilter.test.js +11 -30
  162. package/dist/tests/cases/integration/graphQlRequests/delete/additionalDeleteFilter.test.js.map +1 -1
  163. package/dist/tests/cases/integration/graphQlRequests/delete/cascadeDelete.test.js +62 -45
  164. package/dist/tests/cases/integration/graphQlRequests/delete/cascadeDelete.test.js.map +1 -1
  165. package/dist/tests/cases/integration/graphQlRequests/delete/deleteById.test.js +10 -11
  166. package/dist/tests/cases/integration/graphQlRequests/delete/deleteById.test.js.map +1 -1
  167. package/dist/tests/cases/integration/graphQlRequests/delete/orphanRemoval.test.js +29 -18
  168. package/dist/tests/cases/integration/graphQlRequests/delete/orphanRemoval.test.js.map +1 -1
  169. package/dist/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.d.ts +2 -0
  170. package/dist/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.d.ts.map +1 -0
  171. package/dist/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.js +97 -0
  172. package/dist/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.js.map +1 -0
  173. package/dist/tests/cases/integration/graphQlRequests/delete/setNullOnDelete.test.js +58 -22
  174. package/dist/tests/cases/integration/graphQlRequests/delete/setNullOnDelete.test.js.map +1 -1
  175. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/create.test.d.ts +2 -0
  176. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/create.test.d.ts.map +1 -0
  177. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/{insertRelationCreate.test.js → create.test.js} +1 -1
  178. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/create.test.js.map +1 -0
  179. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/create.test.d.ts +2 -0
  180. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/create.test.d.ts.map +1 -0
  181. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/{insertRelationCreate.test.js → create.test.js} +1 -1
  182. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/create.test.js.map +1 -0
  183. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.d.ts +2 -0
  184. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.d.ts.map +1 -0
  185. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.js +99 -0
  186. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.js.map +1 -0
  187. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/create.test.d.ts +2 -0
  188. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/create.test.d.ts.map +1 -0
  189. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/{insertRelationCreate.test.js → create.test.js} +1 -1
  190. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/create.test.js.map +1 -0
  191. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.d.ts +2 -0
  192. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.d.ts.map +1 -0
  193. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/{insertRelationConnect.test.js → connect.test.js} +1 -1
  194. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.js.map +1 -0
  195. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.d.ts +2 -0
  196. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.d.ts.map +1 -0
  197. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/{insertRelationCreate.test.js → create.test.js} +1 -1
  198. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.js.map +1 -0
  199. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/create.test.d.ts +2 -0
  200. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/create.test.d.ts.map +1 -0
  201. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/{insertRelationCreate.test.js → create.test.js} +1 -1
  202. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/create.test.js.map +1 -0
  203. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/create.test.d.ts +2 -0
  204. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/create.test.d.ts.map +1 -0
  205. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/{insertRelationCreate.test.js → create.test.js} +1 -1
  206. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/create.test.js.map +1 -0
  207. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/empty.test.d.ts +2 -0
  208. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/empty.test.d.ts.map +1 -0
  209. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/{insertRelationEmpty.test.js → empty.test.js} +1 -1
  210. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/empty.test.js.map +1 -0
  211. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/delete.test.js +49 -11
  212. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/delete.test.js.map +1 -1
  213. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/delete.test.js +49 -11
  214. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/delete.test.js.map +1 -1
  215. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/delete.test.js +83 -49
  216. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/delete.test.js.map +1 -1
  217. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/combination.test.js +10 -11
  218. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/combination.test.js.map +1 -1
  219. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/delete.test.js +49 -11
  220. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/delete.test.js.map +1 -1
  221. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.js +103 -0
  222. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.js.map +1 -1
  223. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.js +20 -14
  224. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.js.map +1 -1
  225. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/delete.test.js +101 -11
  226. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/delete.test.js.map +1 -1
  227. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.js +17 -11
  228. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.js.map +1 -1
  229. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.d.ts +1 -0
  230. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.d.ts.map +1 -1
  231. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.js +9 -1
  232. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.js.map +1 -1
  233. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.js +8 -6
  234. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.js.map +1 -1
  235. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.js +76 -0
  236. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.js.map +1 -1
  237. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.d.ts +2 -0
  238. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.d.ts.map +1 -0
  239. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.js +53 -0
  240. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.js.map +1 -0
  241. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.js +80 -0
  242. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.js.map +1 -1
  243. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/delete.test.js +66 -25
  244. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/delete.test.js.map +1 -1
  245. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.d.ts +1 -0
  246. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.d.ts.map +1 -1
  247. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.js +10 -2
  248. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.js.map +1 -1
  249. package/dist/tests/cases/integration/graphQlSchema/schema-acl-allowed.gql +14 -1
  250. package/dist/tests/cases/integration/graphQlSchema/schema-acl-restricted-create.gql +5 -5
  251. package/dist/tests/cases/integration/graphQlSchema/schema-acl-restricted-delete.gql +14 -1
  252. package/dist/tests/cases/integration/graphQlSchema/schema-acl-restricted-update.gql +12 -0
  253. package/dist/tests/cases/integration/graphQlSchema/schema-basic.gql +40 -2
  254. package/dist/tests/cases/integration/graphQlSchema/schema-bug-66.gql +30 -3
  255. package/dist/tests/cases/integration/graphQlSchema/schema-custom-primary.gql +40 -2
  256. package/dist/tests/cases/integration/graphQlSchema/schema-has-many-reduction.gql +14 -1
  257. package/dist/tests/cases/integration/graphQlSchema/schema-new-builder.gql +40 -2
  258. package/dist/tests/src/test.d.ts +0 -1
  259. package/dist/tests/src/test.d.ts.map +1 -1
  260. package/dist/tests/src/test.js +1 -27
  261. package/dist/tests/src/test.js.map +1 -1
  262. package/dist/tests/src/testGraphql.js +1 -1
  263. package/dist/tests/src/testGraphql.js.map +1 -1
  264. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  265. package/package.json +11 -11
  266. package/src/input-validation/preValidation/CreateInputPreValidationProcessor.ts +6 -0
  267. package/src/input-validation/preValidation/UpdateInputPreValidationProcessor.ts +6 -0
  268. package/src/inputProcessing/CreateInputProcessor.ts +8 -11
  269. package/src/inputProcessing/CreateInputVisitor.ts +11 -2
  270. package/src/inputProcessing/UniqueWhereExpander.ts +5 -1
  271. package/src/inputProcessing/UpdateInputProcessor.ts +18 -18
  272. package/src/inputProcessing/UpdateInputVisitor.ts +6 -2
  273. package/src/mapper/DataManipulationBuilder.ts +12 -0
  274. package/src/mapper/Mapper.ts +75 -47
  275. package/src/mapper/MapperContainer.ts +10 -6
  276. package/src/mapper/Result.ts +1 -1
  277. package/src/mapper/delete/DeleteExecutor.ts +221 -95
  278. package/src/mapper/delete/DeleteState.ts +80 -0
  279. package/src/mapper/delete/DeletedEntitiesStorage.ts +6 -0
  280. package/src/mapper/delete/helpers.ts +68 -0
  281. package/src/mapper/insert/InsertBuilder.ts +23 -12
  282. package/src/mapper/insert/InsertBuilderFactory.ts +3 -1
  283. package/src/mapper/insert/Inserter.ts +6 -10
  284. package/src/mapper/insert/SqlCreateInputProcessor.ts +61 -139
  285. package/src/mapper/relations/ManyHasManyInputProcessor.ts +108 -0
  286. package/src/mapper/relations/ManyHasOneInputProcessor.ts +158 -0
  287. package/src/mapper/relations/OneHasManyInputProcessor.ts +101 -0
  288. package/src/mapper/relations/OneHasOneInverseCreateInputProcessor.ts +99 -0
  289. package/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.ts +164 -0
  290. package/src/mapper/relations/OneHasOneOwningCreateInputProcessor.ts +92 -0
  291. package/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.ts +253 -0
  292. package/src/mapper/select/JoinBuilder.ts +4 -4
  293. package/src/mapper/select/WhereBuilder.ts +11 -11
  294. package/src/mapper/update/SqlUpdateInputProcessor.ts +55 -484
  295. package/src/mapper/update/UpdateBuilder.ts +22 -15
  296. package/src/mapper/update/UpdateBuilderFactory.ts +10 -1
  297. package/src/mapper/update/Updater.ts +10 -19
  298. package/src/resolvers/MutationResolver.ts +1 -1
  299. package/src/schema/GraphQlSchemaBuilderFactory.ts +7 -4
  300. package/src/schema/mutations/ConnectOrCreateRelationInputProvider.ts +54 -0
  301. package/src/schema/mutations/CreateEntityInputFieldVisitor.ts +2 -6
  302. package/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.ts +3 -1
  303. package/src/schema/mutations/CreateEntityRelationInputFieldVisitor.ts +20 -15
  304. package/src/schema/mutations/EntityInputProvider.ts +0 -3
  305. package/src/schema/mutations/UpdateEntityInputFieldVisitor.ts +2 -6
  306. package/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.ts +3 -1
  307. package/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts +52 -57
  308. package/tests/cases/integration/graphQlDb/update/deferedConstraints.test.ts +2 -2
  309. package/tests/cases/integration/graphQlDb/update/failedDelete.test.ts +1 -1
  310. package/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.ts +1 -1
  311. package/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.ts +0 -3
  312. package/tests/cases/integration/graphQlRequests/delete/aclDelete.test.ts +15 -34
  313. package/tests/cases/integration/graphQlRequests/delete/additionalDeleteFilter.test.ts +12 -31
  314. package/tests/cases/integration/graphQlRequests/delete/cascadeDelete.test.ts +68 -46
  315. package/tests/cases/integration/graphQlRequests/delete/deleteById.test.ts +11 -12
  316. package/tests/cases/integration/graphQlRequests/delete/orphanRemoval.test.ts +30 -19
  317. package/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.ts +102 -0
  318. package/tests/cases/integration/graphQlRequests/delete/setNullOnDelete.test.ts +63 -23
  319. package/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/{insertRelationCreate.test.ts → create.test.ts} +0 -0
  320. package/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/{insertRelationCreate.test.ts → create.test.ts} +0 -0
  321. package/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.ts +106 -0
  322. package/tests/cases/integration/graphQlRequests/insert/manyHasOne/{insertRelationCreate.test.ts → create.test.ts} +0 -0
  323. package/tests/cases/integration/graphQlRequests/insert/oneHasMany/{insertRelationConnect.test.ts → connect.test.ts} +0 -0
  324. package/tests/cases/integration/graphQlRequests/insert/oneHasMany/{insertRelationCreate.test.ts → create.test.ts} +0 -0
  325. package/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/{insertRelationCreate.test.ts → create.test.ts} +0 -0
  326. package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/{insertRelationCreate.test.ts → create.test.ts} +0 -0
  327. package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/{insertRelationEmpty.test.ts → empty.test.ts} +0 -0
  328. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/delete.test.ts +51 -12
  329. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/delete.test.ts +51 -12
  330. package/tests/cases/integration/graphQlRequests/update/manyHasOne/delete.test.ts +86 -50
  331. package/tests/cases/integration/graphQlRequests/update/oneHasMany/combination.test.ts +11 -12
  332. package/tests/cases/integration/graphQlRequests/update/oneHasMany/delete.test.ts +51 -12
  333. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.ts +106 -1
  334. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.ts +20 -14
  335. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/delete.test.ts +106 -12
  336. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.ts +17 -11
  337. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/schema.ts +13 -0
  338. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.ts +8 -6
  339. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.ts +80 -1
  340. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.ts +51 -0
  341. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.ts +81 -1
  342. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/delete.test.ts +69 -26
  343. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/schema.ts +14 -1
  344. package/tests/cases/integration/graphQlSchema/schema-acl-allowed.gql +14 -1
  345. package/tests/cases/integration/graphQlSchema/schema-acl-restricted-create.gql +5 -5
  346. package/tests/cases/integration/graphQlSchema/schema-acl-restricted-delete.gql +14 -1
  347. package/tests/cases/integration/graphQlSchema/schema-acl-restricted-update.gql +12 -0
  348. package/tests/cases/integration/graphQlSchema/schema-basic.gql +40 -2
  349. package/tests/cases/integration/graphQlSchema/schema-bug-66.gql +30 -3
  350. package/tests/cases/integration/graphQlSchema/schema-custom-primary.gql +40 -2
  351. package/tests/cases/integration/graphQlSchema/schema-has-many-reduction.gql +14 -1
  352. package/tests/cases/integration/graphQlSchema/schema-new-builder.gql +40 -2
  353. package/tests/src/test.ts +0 -25
  354. package/tests/src/testGraphql.ts +1 -1
  355. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/insertRelationCreate.test.d.ts +0 -2
  356. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/insertRelationCreate.test.d.ts.map +0 -1
  357. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/insertRelationCreate.test.js.map +0 -1
  358. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/insertRelationCreate.test.d.ts +0 -2
  359. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/insertRelationCreate.test.d.ts.map +0 -1
  360. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/insertRelationCreate.test.js.map +0 -1
  361. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/insertRelationCreate.test.d.ts +0 -2
  362. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/insertRelationCreate.test.d.ts.map +0 -1
  363. package/dist/tests/cases/integration/graphQlRequests/insert/manyHasOne/insertRelationCreate.test.js.map +0 -1
  364. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/insertRelationConnect.test.d.ts +0 -2
  365. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/insertRelationConnect.test.d.ts.map +0 -1
  366. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/insertRelationConnect.test.js.map +0 -1
  367. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/insertRelationCreate.test.d.ts +0 -2
  368. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/insertRelationCreate.test.d.ts.map +0 -1
  369. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/insertRelationCreate.test.js.map +0 -1
  370. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/insertRelationCreate.test.d.ts +0 -2
  371. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/insertRelationCreate.test.d.ts.map +0 -1
  372. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/insertRelationCreate.test.js.map +0 -1
  373. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/insertRelationCreate.test.d.ts +0 -2
  374. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/insertRelationCreate.test.d.ts.map +0 -1
  375. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/insertRelationCreate.test.js.map +0 -1
  376. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/insertRelationEmpty.test.d.ts +0 -2
  377. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/insertRelationEmpty.test.d.ts.map +0 -1
  378. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/insertRelationEmpty.test.js.map +0 -1
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OneHasManyInputProcessor = void 0;
4
+ const Result_1 = require("../Result");
5
+ class OneHasManyInputProcessor {
6
+ constructor(mapper) {
7
+ this.mapper = mapper;
8
+ }
9
+ async connect({ entity, targetEntity, targetRelation, input }, primary) {
10
+ return await this.mapper.update(targetEntity, input, {
11
+ [targetRelation.name]: { connect: { [entity.primary]: primary } },
12
+ });
13
+ }
14
+ async create({ entity, targetEntity, targetRelation, input }, primary) {
15
+ return await this.mapper.insert(targetEntity, {
16
+ ...input,
17
+ [targetRelation.name]: { connect: { [entity.primary]: primary } },
18
+ });
19
+ }
20
+ async connectOrCreate({ entity, targetRelation, targetEntity, input: { connect, create } }, primary) {
21
+ const connectData = {
22
+ [targetRelation.name]: {
23
+ connect: { [entity.primary]: primary },
24
+ },
25
+ };
26
+ return await this.mapper.upsert(targetEntity, connect, connectData, {
27
+ ...create,
28
+ ...connectData,
29
+ });
30
+ }
31
+ async update({ entity, targetEntity, targetRelation, input: { data, where } }, primary) {
32
+ return await this.mapper.update(targetEntity, { ...where, [targetRelation.name]: { [entity.primary]: primary } }, {
33
+ ...data,
34
+ // [targetRelation.name]: {connect: thisPrimary}
35
+ });
36
+ }
37
+ async upsert({ entity, targetEntity, targetRelation, input: { create, update, where } }, primary) {
38
+ const result = await this.mapper.update(targetEntity, { ...where, [targetRelation.name]: { [entity.primary]: primary } }, {
39
+ ...update,
40
+ // [targetRelation.name]: {connect: thisPrimary}
41
+ });
42
+ if (result[0].result === Result_1.MutationResultType.notFoundError) {
43
+ return await this.mapper.insert(targetEntity, {
44
+ ...create,
45
+ [targetRelation.name]: { connect: { [entity.primary]: primary } },
46
+ });
47
+ }
48
+ return result;
49
+ }
50
+ async disconnect({ entity, targetEntity, relation, targetRelation, input }, primary) {
51
+ return await this.mapper.update(targetEntity, { ...input, [targetRelation.name]: { [entity.primary]: primary } }, { [targetRelation.name]: { disconnect: true } });
52
+ }
53
+ async delete({ entity, targetEntity, relation, targetRelation, input }, primary) {
54
+ return await this.mapper.delete(targetEntity, {
55
+ ...input,
56
+ [targetRelation.name]: { [entity.primary]: primary },
57
+ });
58
+ }
59
+ }
60
+ exports.OneHasManyInputProcessor = OneHasManyInputProcessor;
61
+ //# sourceMappingURL=OneHasManyInputProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneHasManyInputProcessor.js","sourceRoot":"","sources":["../../../../src/mapper/relations/OneHasManyInputProcessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { InsertBuilder } from '../insert';
2
+ import { Mapper } from '../Mapper';
3
+ import { MutationResultList } from '../Result';
4
+ import { Input, Model } from '@contember/schema';
5
+ export declare class OneHasOneInverseCreateInputProcessor {
6
+ private readonly insertBuilder;
7
+ private readonly mapper;
8
+ constructor(insertBuilder: InsertBuilder, mapper: Mapper);
9
+ connect(context: Model.OneHasOneInverseContext & {
10
+ input: Input.UniqueWhere;
11
+ }): Promise<import("../Result").MutationResult[]>;
12
+ create(context: Model.OneHasOneInverseContext & {
13
+ input: Input.CreateDataInput;
14
+ }): Promise<MutationResultList>;
15
+ connectOrCreate({ input, ...context }: Model.OneHasOneInverseContext & {
16
+ input: Input.ConnectOrCreateInput;
17
+ }): Promise<MutationResultList>;
18
+ private connectInternal;
19
+ private createInternal;
20
+ }
21
+ //# sourceMappingURL=OneHasOneInverseCreateInputProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneHasOneInverseCreateInputProcessor.d.ts","sourceRoot":"","sources":["../../../../src/mapper/relations/OneHasOneInverseCreateInputProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAIN,kBAAkB,EAClB,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEhD,qBAAa,oCAAoC;IAE/C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM;IAInB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,uBAAuB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAA;KAAE;IAe7E,MAAM,CAClB,OAAO,EAAE,KAAK,CAAC,uBAAuB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,eAAe,CAAA;KAAE;IAY7D,eAAe,CAC3B,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,EAAE,KAAK,CAAC,uBAAuB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAA;KAAE;YAc/E,eAAe;YA4Bf,cAAc;CAS5B"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OneHasOneInverseCreateInputProcessor = void 0;
4
+ const Result_1 = require("../Result");
5
+ const CheckedPrimary_1 = require("../CheckedPrimary");
6
+ class OneHasOneInverseCreateInputProcessor {
7
+ constructor(insertBuilder, mapper) {
8
+ this.insertBuilder = insertBuilder;
9
+ this.mapper = mapper;
10
+ }
11
+ async connect(context) {
12
+ const { targetEntity, input } = context;
13
+ const primary = await this.insertBuilder.insert;
14
+ if (!primary) {
15
+ return [];
16
+ }
17
+ const owner = await this.mapper.getPrimaryValue(targetEntity, input);
18
+ if (!owner) {
19
+ return [new Result_1.MutationEntryNotFoundError([], input)];
20
+ }
21
+ return await this.connectInternal({ ...context, input: new CheckedPrimary_1.CheckedPrimary(owner) }, primary);
22
+ }
23
+ async create(context) {
24
+ const primary = await this.insertBuilder.insert;
25
+ if (!primary) {
26
+ return [];
27
+ }
28
+ return await this.mapper.insert(context.targetEntity, context.input, builder => {
29
+ builder.addPredicates([context.targetRelation.name]);
30
+ builder.addFieldValue(context.targetRelation.name, primary);
31
+ });
32
+ }
33
+ async connectOrCreate({ input, ...context }) {
34
+ const primary = await this.insertBuilder.insert;
35
+ if (!primary) {
36
+ return [];
37
+ }
38
+ const owner = await this.mapper.getPrimaryValue(context.targetEntity, input.connect);
39
+ if (owner) {
40
+ return await this.connectInternal({ ...context, input: new CheckedPrimary_1.CheckedPrimary(owner) }, primary);
41
+ }
42
+ return await this.createInternal({ input: input.create, ...context }, primary);
43
+ }
44
+ async connectInternal({ entity, targetEntity, targetRelation, relation, input }, primary) {
45
+ const currentInverseSideOfOwner = await this.mapper.selectField(targetEntity, input, targetRelation.name);
46
+ const orphanResult = [];
47
+ if (currentInverseSideOfOwner) {
48
+ if (targetRelation.orphanRemoval) {
49
+ const orphanUnique = { [entity.primary]: currentInverseSideOfOwner };
50
+ const orphanDelete = await this.mapper.delete(entity, orphanUnique);
51
+ orphanResult.push(...orphanDelete);
52
+ }
53
+ else if (!relation.nullable) {
54
+ return [new Result_1.MutationConstraintViolationError([], Result_1.ConstraintType.notNull)];
55
+ }
56
+ }
57
+ const connectResult = await this.mapper.updateInternal(targetEntity, input, update => {
58
+ update.addPredicates([targetRelation.name]);
59
+ update.addFieldValue(targetRelation.name, primary);
60
+ });
61
+ return [
62
+ ...connectResult,
63
+ ...orphanResult,
64
+ ];
65
+ }
66
+ async createInternal(context, primary) {
67
+ return await this.mapper.insert(context.targetEntity, context.input, builder => {
68
+ builder.addPredicates([context.targetRelation.name]);
69
+ builder.addFieldValue(context.targetRelation.name, primary);
70
+ });
71
+ }
72
+ }
73
+ exports.OneHasOneInverseCreateInputProcessor = OneHasOneInverseCreateInputProcessor;
74
+ //# sourceMappingURL=OneHasOneInverseCreateInputProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneHasOneInverseCreateInputProcessor.js","sourceRoot":"","sources":["../../../../src/mapper/relations/OneHasOneInverseCreateInputProcessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { MutationResultList } from '../Result';
2
+ import { UpdateInputProcessor } from '../../inputProcessing';
3
+ import { Input, Model } from '@contember/schema';
4
+ import { Mapper } from '../Mapper';
5
+ export declare class OneHasOneInverseUpdateInputProcessor {
6
+ private readonly primaryValue;
7
+ private readonly mapper;
8
+ constructor(primaryValue: Input.PrimaryValue, mapper: Mapper);
9
+ connect({ input, ...ctx }: Model.OneHasOneInverseContext & {
10
+ input: Input.UniqueWhere;
11
+ }): Promise<MutationResultList>;
12
+ connectOrCreate({ input, ...ctx }: Model.OneHasOneInverseContext & {
13
+ input: Input.ConnectOrCreateInput;
14
+ }): Promise<MutationResultList>;
15
+ private connectInternal;
16
+ create({ entity, targetEntity, targetRelation, input }: Model.OneHasOneInverseContext & {
17
+ input: Input.CreateDataInput;
18
+ }): Promise<MutationResultList>;
19
+ update({ entity, targetEntity, targetRelation, input }: Model.OneHasOneInverseContext & {
20
+ input: Input.UpdateDataInput;
21
+ }): Promise<MutationResultList>;
22
+ upsert(context: Model.OneHasOneInverseContext & {
23
+ input: UpdateInputProcessor.UpsertInput;
24
+ }): Promise<MutationResultList>;
25
+ disconnect({ entity, targetEntity, relation, targetRelation }: Model.OneHasOneInverseContext & {
26
+ input: undefined;
27
+ }): Promise<MutationResultList>;
28
+ delete({ entity, targetEntity, relation, targetRelation }: Model.OneHasOneInverseContext & {
29
+ input: undefined;
30
+ }): Promise<MutationResultList>;
31
+ }
32
+ //# sourceMappingURL=OneHasOneInverseUpdateInputProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneHasOneInverseUpdateInputProcessor.d.ts","sourceRoot":"","sources":["../../../../src/mapper/relations/OneHasOneInverseUpdateInputProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,kBAAkB,EAGlB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,qBAAa,oCAAoC;IAE/C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,MAAM,EAAE,MAAM;IAInB,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,EAAG,EAAE,KAAK,CAAC,uBAAuB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAA;KAAE;IAQxF,eAAe,CAC3B,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,uBAAuB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAA;KAAE;YAU3E,eAAe;IAuChB,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,uBAAuB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,eAAe,CAAA;KAAE;IA0BxH,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,uBAAuB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,eAAe,CAAA;KAAE;IAQxH,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,uBAAuB,GAAG;QAAE,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAA;KAAE;IAgB3F,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,CAAC,uBAAuB,GAAG;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE;IA4BnH,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,CAAC,uBAAuB,GAAG;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE;CAO5H"}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OneHasOneInverseUpdateInputProcessor = void 0;
4
+ const Result_1 = require("../Result");
5
+ class OneHasOneInverseUpdateInputProcessor {
6
+ constructor(primaryValue, mapper) {
7
+ this.primaryValue = primaryValue;
8
+ this.mapper = mapper;
9
+ }
10
+ async connect({ input, ...ctx }) {
11
+ const newOwner = await this.mapper.getPrimaryValue(ctx.targetEntity, input);
12
+ if (!newOwner) {
13
+ return [new Result_1.MutationEntryNotFoundError([], input)];
14
+ }
15
+ return await this.connectInternal(ctx, newOwner);
16
+ }
17
+ async connectOrCreate({ input, ...ctx }) {
18
+ const newOwner = await this.mapper.getPrimaryValue(ctx.targetEntity, input.connect);
19
+ if (newOwner) {
20
+ return await this.connectInternal(ctx, newOwner);
21
+ }
22
+ return await this.create({ ...ctx, input: input.create });
23
+ }
24
+ async connectInternal({ entity, targetEntity, targetRelation }, newOwner) {
25
+ const currentOwner = await this.mapper.getPrimaryValue(targetEntity, {
26
+ [targetRelation.name]: { [entity.primary]: this.primaryValue },
27
+ });
28
+ if (newOwner === currentOwner) {
29
+ return [new Result_1.MutationNothingToDo([], Result_1.NothingToDoReason.alreadyExists)];
30
+ }
31
+ const result = [];
32
+ if (currentOwner) {
33
+ if (!targetRelation.nullable) {
34
+ // todo cascade delete support?
35
+ return [new Result_1.MutationConstraintViolationError([], Result_1.ConstraintType.notNull)];
36
+ }
37
+ const disconnectFromCurrentOwner = await this.mapper.updateInternal(targetEntity, { [targetEntity.primary]: currentOwner }, builder => {
38
+ builder.addPredicates([targetRelation.name]);
39
+ builder.addFieldValue(targetRelation.name, null);
40
+ });
41
+ result.push(...disconnectFromCurrentOwner);
42
+ }
43
+ const orphanedInverseSide = targetRelation.orphanRemoval
44
+ ? await this.mapper.selectField(targetEntity, { [targetEntity.primary]: newOwner }, targetRelation.name)
45
+ : null;
46
+ const connectToNewOwner = await this.mapper.updateInternal(targetEntity, { [targetEntity.primary]: newOwner }, builder => {
47
+ builder.addPredicates([targetRelation.name]);
48
+ builder.addFieldValue(targetRelation.name, this.primaryValue);
49
+ });
50
+ result.push(...connectToNewOwner);
51
+ if (orphanedInverseSide) {
52
+ const deleteOrphanedInverseSide = await this.mapper.delete(entity, { [entity.primary]: orphanedInverseSide });
53
+ result.push(...deleteOrphanedInverseSide);
54
+ }
55
+ return result;
56
+ }
57
+ async create({ entity, targetEntity, targetRelation, input }) {
58
+ const currentOwner = await this.mapper.getPrimaryValue(targetEntity, {
59
+ [targetRelation.name]: { [entity.primary]: this.primaryValue },
60
+ });
61
+ if (currentOwner && !targetRelation.nullable) {
62
+ // todo cascade delete support?
63
+ return [new Result_1.MutationConstraintViolationError([], Result_1.ConstraintType.notNull)];
64
+ }
65
+ const result = [];
66
+ if (currentOwner) {
67
+ const disconnectFromCurrentOwner = await this.mapper.updateInternal(targetEntity, { [targetEntity.primary]: currentOwner }, builder => {
68
+ builder.addPredicates([targetRelation.name]);
69
+ builder.addFieldValue(targetRelation.name, null);
70
+ });
71
+ result.push(...disconnectFromCurrentOwner);
72
+ }
73
+ const connectToNewlyCreatedOwner = await this.mapper.insert(targetEntity, input, builder => {
74
+ builder.addFieldValue(targetRelation.name, this.primaryValue);
75
+ builder.addPredicates([targetRelation.name]);
76
+ });
77
+ result.push(...connectToNewlyCreatedOwner);
78
+ return result;
79
+ }
80
+ async update({ entity, targetEntity, targetRelation, input }) {
81
+ return await this.mapper.update(targetEntity, { [targetRelation.name]: { [entity.primary]: this.primaryValue } }, input);
82
+ }
83
+ async upsert(context) {
84
+ const { targetEntity, targetRelation, entity, input: { update, create } } = context;
85
+ const result = await this.mapper.update(targetEntity, { [targetRelation.name]: { [entity.primary]: this.primaryValue } }, update);
86
+ if (result[0].result === Result_1.MutationResultType.notFoundError) {
87
+ return await this.create({
88
+ ...context,
89
+ input: create,
90
+ });
91
+ }
92
+ return result;
93
+ }
94
+ async disconnect({ entity, targetEntity, relation, targetRelation }) {
95
+ if (!relation.nullable && !targetRelation.orphanRemoval) {
96
+ return [new Result_1.MutationConstraintViolationError([], Result_1.ConstraintType.notNull)];
97
+ }
98
+ const currentOwner = await this.mapper.getPrimaryValue(targetEntity, {
99
+ [targetRelation.name]: { [entity.primary]: this.primaryValue },
100
+ });
101
+ if (!currentOwner) {
102
+ return [new Result_1.MutationNothingToDo([], Result_1.NothingToDoReason.emptyRelation)];
103
+ }
104
+ if (currentOwner && !targetRelation.nullable) {
105
+ return [new Result_1.MutationConstraintViolationError([], Result_1.ConstraintType.notNull)];
106
+ }
107
+ const result = await this.mapper.updateInternal(targetEntity, { [targetEntity.primary]: currentOwner }, builder => {
108
+ builder.addPredicates([targetRelation.name]);
109
+ builder.addFieldValue(targetRelation.name, null);
110
+ });
111
+ if (targetRelation.orphanRemoval) {
112
+ result.push(...(await this.mapper.delete(entity, { [entity.primary]: this.primaryValue })));
113
+ }
114
+ return result;
115
+ }
116
+ async delete({ entity, targetEntity, relation, targetRelation }) {
117
+ if (!relation.nullable && !targetRelation.orphanRemoval) {
118
+ return [new Result_1.MutationConstraintViolationError([], Result_1.ConstraintType.notNull)];
119
+ }
120
+ // orphan removal is handled in mapper.delete
121
+ return await this.mapper.delete(targetEntity, { [targetRelation.name]: { [entity.primary]: this.primaryValue } });
122
+ }
123
+ }
124
+ exports.OneHasOneInverseUpdateInputProcessor = OneHasOneInverseUpdateInputProcessor;
125
+ //# sourceMappingURL=OneHasOneInverseUpdateInputProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneHasOneInverseUpdateInputProcessor.js","sourceRoot":"","sources":["../../../../src/mapper/relations/OneHasOneInverseUpdateInputProcessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { MutationResultList } from '../Result';
2
+ import { InsertBuilder } from '../insert';
3
+ import { Mapper } from '../Mapper';
4
+ import { Input, Model } from '@contember/schema';
5
+ export declare class OneHasOneOwningCreateInputProcessor {
6
+ private readonly insertBuilder;
7
+ private readonly mapper;
8
+ constructor(insertBuilder: InsertBuilder, mapper: Mapper);
9
+ connect(context: Model.OneHasOneOwningContext & {
10
+ input: Input.UniqueWhere;
11
+ }): Promise<MutationResultList>;
12
+ create(context: Model.OneHasOneOwningContext & {
13
+ input: Input.CreateDataInput;
14
+ }): Promise<MutationResultList>;
15
+ connectOrCreate({ input, ...context }: Model.OneHasOneOwningContext & {
16
+ input: Input.ConnectOrCreateInput;
17
+ }): Promise<MutationResultList>;
18
+ private createInternal;
19
+ private connectInternal;
20
+ }
21
+ //# sourceMappingURL=OneHasOneOwningCreateInputProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneHasOneOwningCreateInputProcessor.d.ts","sourceRoot":"","sources":["../../../../src/mapper/relations/OneHasOneOwningCreateInputProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,kBAAkB,EAClB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGhD,qBAAa,mCAAmC;IAE9C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM;IAInB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,sBAAsB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAA;KAAE;IAc5E,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,sBAAsB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,eAAe,CAAA;KAAE;IAQ/E,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,EAAE,KAAK,CAAC,sBAAsB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAA;KAAE;YAY1G,cAAc;YAad,eAAe;CAyB7B"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OneHasOneOwningCreateInputProcessor = void 0;
4
+ const Result_1 = require("../Result");
5
+ const DataManipulationBuilder_1 = require("../DataManipulationBuilder");
6
+ class OneHasOneOwningCreateInputProcessor {
7
+ constructor(insertBuilder, mapper) {
8
+ this.insertBuilder = insertBuilder;
9
+ this.mapper = mapper;
10
+ }
11
+ async connect(context) {
12
+ const { input, relation, targetEntity } = context;
13
+ const result = [];
14
+ await this.insertBuilder.addFieldValue(relation.name, async () => {
15
+ const inverseSide = await this.mapper.getPrimaryValue(targetEntity, input);
16
+ if (!inverseSide) {
17
+ result.push(new Result_1.MutationEntryNotFoundError([], input));
18
+ return DataManipulationBuilder_1.AbortDataManipulation;
19
+ }
20
+ return this.connectInternal({ ...context, input: inverseSide }, result);
21
+ });
22
+ return result;
23
+ }
24
+ async create(context) {
25
+ const result = [];
26
+ await this.insertBuilder.addFieldValue(context.relation.name, async () => {
27
+ return await this.createInternal(context, result);
28
+ });
29
+ return result;
30
+ }
31
+ async connectOrCreate({ input, ...context }) {
32
+ const result = [];
33
+ await this.insertBuilder.addFieldValue(context.relation.name, async () => {
34
+ const inverseSide = await this.mapper.getPrimaryValue(context.targetEntity, input.connect);
35
+ if (inverseSide) {
36
+ return await this.connectInternal({ ...context, input: inverseSide }, result);
37
+ }
38
+ return await this.createInternal({ ...context, input: input.create }, result);
39
+ });
40
+ return result;
41
+ }
42
+ async createInternal(context, result) {
43
+ const insertResult = await this.mapper.insert(context.targetEntity, context.input);
44
+ result.push(...insertResult);
45
+ const primary = (0, Result_1.getInsertPrimary)(insertResult);
46
+ if (!primary) {
47
+ return DataManipulationBuilder_1.AbortDataManipulation;
48
+ }
49
+ return primary;
50
+ }
51
+ async connectInternal({ entity, relation, targetEntity, input }, result) {
52
+ const currentOwnerOfInverseSide = await this.mapper.getPrimaryValue(entity, {
53
+ [relation.name]: { [targetEntity.primary]: input },
54
+ });
55
+ if (!currentOwnerOfInverseSide) {
56
+ return input;
57
+ }
58
+ if (!relation.nullable) {
59
+ result.push(new Result_1.MutationConstraintViolationError([], Result_1.ConstraintType.notNull));
60
+ return DataManipulationBuilder_1.AbortDataManipulation;
61
+ }
62
+ const currentOwnerUnique = { [entity.primary]: currentOwnerOfInverseSide };
63
+ const currentOwnerDisconnectResult = await this.mapper.updateInternal(entity, currentOwnerUnique, builder => {
64
+ builder.addPredicates([relation.name]);
65
+ builder.addFieldValue(relation.name, null);
66
+ });
67
+ result.push(...currentOwnerDisconnectResult);
68
+ return input;
69
+ }
70
+ }
71
+ exports.OneHasOneOwningCreateInputProcessor = OneHasOneOwningCreateInputProcessor;
72
+ //# sourceMappingURL=OneHasOneOwningCreateInputProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneHasOneOwningCreateInputProcessor.js","sourceRoot":"","sources":["../../../../src/mapper/relations/OneHasOneOwningCreateInputProcessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { UpdateInputProcessor } from '../../inputProcessing';
2
+ import { Input, Model } from '@contember/schema';
3
+ import { MutationResultList } from '../Result';
4
+ import { Mapper } from '../Mapper';
5
+ import { UpdateBuilder } from '../update/UpdateBuilder';
6
+ export declare class OneHasOneOwningUpdateInputProcessor {
7
+ private readonly primaryValue;
8
+ private readonly mapper;
9
+ private readonly updateBuilder;
10
+ constructor(primaryValue: Input.PrimaryValue, mapper: Mapper, updateBuilder: UpdateBuilder);
11
+ connect(context: Model.OneHasOneOwningContext & {
12
+ input: Input.UniqueWhere;
13
+ }): Promise<MutationResultList>;
14
+ create(context: Model.OneHasOneOwningContext & {
15
+ input: Input.CreateDataInput;
16
+ }): Promise<MutationResultList>;
17
+ connectOrCreate({ input: { connect, create }, ...context }: Model.OneHasOneOwningContext & {
18
+ input: Input.ConnectOrCreateInput;
19
+ }): Promise<MutationResultList>;
20
+ private createInternal;
21
+ private connectInternal;
22
+ private getCurrentInverseSide;
23
+ private cleanupOrphan;
24
+ update({ entity, relation, targetEntity, input }: Model.OneHasOneOwningContext & {
25
+ input: Input.UpdateDataInput;
26
+ }): Promise<MutationResultList>;
27
+ upsert({ entity, relation, targetEntity, input: { create, update } }: Model.OneHasOneOwningContext & {
28
+ input: UpdateInputProcessor.UpsertInput;
29
+ }): Promise<MutationResultList>;
30
+ disconnect({ entity, targetEntity, relation, targetRelation }: Model.OneHasOneOwningContext & {
31
+ input: undefined;
32
+ }): Promise<MutationResultList>;
33
+ delete({ entity, targetEntity, relation, targetRelation }: Model.OneHasOneOwningContext & {
34
+ input: undefined;
35
+ }): Promise<MutationResultList>;
36
+ }
37
+ //# sourceMappingURL=OneHasOneOwningUpdateInputProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneHasOneOwningUpdateInputProcessor.d.ts","sourceRoot":"","sources":["../../../../src/mapper/relations/OneHasOneOwningUpdateInputProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAMN,kBAAkB,EAElB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAIvD,qBAAa,mCAAmC;IAE9C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa;IAIjC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,sBAAsB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAA;KAAE;IAsB5E,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,sBAAsB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,eAAe,CAAA;KAAE;IAc/E,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,KAAK,CAAC,sBAAsB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAA;KAAE;YAqB/H,cAAc;YAmBd,eAAe;YAgDf,qBAAqB;YAOrB,aAAa;IAQd,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,sBAAsB,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,eAAe,CAAA;KAAE;IAYjH,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,sBAAsB,GAAG;QAAE,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAA;KAAE;IA0BhJ,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,CAAC,sBAAsB,GAAG;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE;IA6BlH,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,CAAC,sBAAsB,GAAG;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE;CAsB3H"}