@contember/engine-content-api 2.0.0-alpha.19 → 2.0.0-alpha.21

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 (330) hide show
  1. package/dist/development/index.cjs +1 -1
  2. package/dist/development/index.js +1 -1
  3. package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs +1 -1
  4. package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
  5. package/dist/development/src/input-validation/preValidation/InputPreValidator.js +1 -1
  6. package/dist/development/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
  7. package/dist/development/src/inputProcessing/CreateInputVisitor.cjs +10 -10
  8. package/dist/development/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
  9. package/dist/development/src/inputProcessing/CreateInputVisitor.js +10 -10
  10. package/dist/development/src/inputProcessing/CreateInputVisitor.js.map +1 -1
  11. package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs +13 -13
  12. package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
  13. package/dist/development/src/inputProcessing/UpdateInputVisitor.js +13 -13
  14. package/dist/development/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  15. package/dist/development/src/mapper/MutationProcessorHelper.cjs +10 -2
  16. package/dist/development/src/mapper/MutationProcessorHelper.cjs.map +1 -1
  17. package/dist/development/src/mapper/MutationProcessorHelper.js +10 -2
  18. package/dist/development/src/mapper/MutationProcessorHelper.js.map +1 -1
  19. package/dist/development/src/mapper/Result.cjs +10 -27
  20. package/dist/development/src/mapper/Result.cjs.map +1 -1
  21. package/dist/development/src/mapper/Result.js +10 -27
  22. package/dist/development/src/mapper/Result.js.map +1 -1
  23. package/dist/development/src/mapper/insert/InsertBuilder.cjs +1 -13
  24. package/dist/development/src/mapper/insert/InsertBuilder.cjs.map +1 -1
  25. package/dist/development/src/mapper/insert/InsertBuilder.js +1 -13
  26. package/dist/development/src/mapper/insert/InsertBuilder.js.map +1 -1
  27. package/dist/development/src/mapper/insert/Inserter.cjs +43 -21
  28. package/dist/development/src/mapper/insert/Inserter.cjs.map +1 -1
  29. package/dist/development/src/mapper/insert/Inserter.js +45 -23
  30. package/dist/development/src/mapper/insert/Inserter.js.map +1 -1
  31. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs +22 -76
  32. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
  33. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js +22 -76
  34. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  35. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs +45 -0
  36. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -0
  37. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js +45 -0
  38. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -0
  39. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs +42 -0
  40. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -0
  41. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js +42 -0
  42. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -0
  43. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs +37 -0
  44. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -0
  45. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js +37 -0
  46. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -0
  47. package/dist/development/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.cjs +25 -32
  48. package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -0
  49. package/dist/development/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.js +25 -32
  50. package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -0
  51. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs +67 -0
  52. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -0
  53. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js +67 -0
  54. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -0
  55. package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs +3 -0
  56. package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  57. package/dist/development/src/mapper/select/handlers/FieldsVisitor.js +3 -0
  58. package/dist/development/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  59. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.cjs +36 -36
  60. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
  61. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.js +36 -36
  62. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
  63. package/dist/development/src/mapper/update/UpdateBuilder.cjs +2 -14
  64. package/dist/development/src/mapper/update/UpdateBuilder.cjs.map +1 -1
  65. package/dist/development/src/mapper/update/UpdateBuilder.js +2 -14
  66. package/dist/development/src/mapper/update/UpdateBuilder.js.map +1 -1
  67. package/dist/development/src/mapper/update/Updater.cjs +45 -17
  68. package/dist/development/src/mapper/update/Updater.cjs.map +1 -1
  69. package/dist/development/src/mapper/update/Updater.js +47 -19
  70. package/dist/development/src/mapper/update/Updater.js.map +1 -1
  71. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs +89 -0
  72. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -0
  73. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js +89 -0
  74. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -0
  75. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs +89 -0
  76. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -0
  77. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js +89 -0
  78. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -0
  79. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs +86 -0
  80. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -0
  81. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js +86 -0
  82. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -0
  83. package/dist/development/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.cjs +83 -66
  84. package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -0
  85. package/dist/development/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.js +83 -66
  86. package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -0
  87. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs +187 -0
  88. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -0
  89. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js +187 -0
  90. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -0
  91. package/dist/development/src/resolvers/MutationResolver.cjs +1 -1
  92. package/dist/development/src/resolvers/MutationResolver.js +1 -1
  93. package/dist/production/index.cjs +1 -1
  94. package/dist/production/index.js +1 -1
  95. package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs +1 -1
  96. package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
  97. package/dist/production/src/input-validation/preValidation/InputPreValidator.js +1 -1
  98. package/dist/production/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
  99. package/dist/production/src/inputProcessing/CreateInputVisitor.cjs +10 -10
  100. package/dist/production/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
  101. package/dist/production/src/inputProcessing/CreateInputVisitor.js +10 -10
  102. package/dist/production/src/inputProcessing/CreateInputVisitor.js.map +1 -1
  103. package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs +13 -13
  104. package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
  105. package/dist/production/src/inputProcessing/UpdateInputVisitor.js +13 -13
  106. package/dist/production/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  107. package/dist/production/src/mapper/MutationProcessorHelper.cjs +10 -2
  108. package/dist/production/src/mapper/MutationProcessorHelper.cjs.map +1 -1
  109. package/dist/production/src/mapper/MutationProcessorHelper.js +10 -2
  110. package/dist/production/src/mapper/MutationProcessorHelper.js.map +1 -1
  111. package/dist/production/src/mapper/Result.cjs +10 -27
  112. package/dist/production/src/mapper/Result.cjs.map +1 -1
  113. package/dist/production/src/mapper/Result.js +10 -27
  114. package/dist/production/src/mapper/Result.js.map +1 -1
  115. package/dist/production/src/mapper/insert/InsertBuilder.cjs +1 -13
  116. package/dist/production/src/mapper/insert/InsertBuilder.cjs.map +1 -1
  117. package/dist/production/src/mapper/insert/InsertBuilder.js +1 -13
  118. package/dist/production/src/mapper/insert/InsertBuilder.js.map +1 -1
  119. package/dist/production/src/mapper/insert/Inserter.cjs +43 -21
  120. package/dist/production/src/mapper/insert/Inserter.cjs.map +1 -1
  121. package/dist/production/src/mapper/insert/Inserter.js +45 -23
  122. package/dist/production/src/mapper/insert/Inserter.js.map +1 -1
  123. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs +22 -76
  124. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
  125. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js +22 -76
  126. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  127. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs +45 -0
  128. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -0
  129. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js +45 -0
  130. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -0
  131. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs +42 -0
  132. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -0
  133. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js +42 -0
  134. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -0
  135. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs +37 -0
  136. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -0
  137. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js +37 -0
  138. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -0
  139. package/dist/production/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.cjs +25 -32
  140. package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -0
  141. package/dist/production/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.js +25 -32
  142. package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -0
  143. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs +67 -0
  144. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -0
  145. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js +67 -0
  146. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -0
  147. package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs +3 -0
  148. package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  149. package/dist/production/src/mapper/select/handlers/FieldsVisitor.js +3 -0
  150. package/dist/production/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  151. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.cjs +36 -36
  152. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
  153. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.js +36 -36
  154. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
  155. package/dist/production/src/mapper/update/UpdateBuilder.cjs +2 -14
  156. package/dist/production/src/mapper/update/UpdateBuilder.cjs.map +1 -1
  157. package/dist/production/src/mapper/update/UpdateBuilder.js +2 -14
  158. package/dist/production/src/mapper/update/UpdateBuilder.js.map +1 -1
  159. package/dist/production/src/mapper/update/Updater.cjs +45 -17
  160. package/dist/production/src/mapper/update/Updater.cjs.map +1 -1
  161. package/dist/production/src/mapper/update/Updater.js +47 -19
  162. package/dist/production/src/mapper/update/Updater.js.map +1 -1
  163. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs +89 -0
  164. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -0
  165. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js +89 -0
  166. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -0
  167. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs +89 -0
  168. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -0
  169. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js +89 -0
  170. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -0
  171. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs +86 -0
  172. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -0
  173. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js +86 -0
  174. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -0
  175. package/dist/production/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.cjs +83 -66
  176. package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -0
  177. package/dist/production/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.js +83 -66
  178. package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -0
  179. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs +187 -0
  180. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -0
  181. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js +187 -0
  182. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -0
  183. package/dist/production/src/resolvers/MutationResolver.cjs +1 -1
  184. package/dist/production/src/resolvers/MutationResolver.js +1 -1
  185. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  186. package/dist/types/input-validation/preValidation/InputPreValidator.d.ts.map +1 -1
  187. package/dist/types/inputProcessing/CreateInputVisitor.d.ts +8 -8
  188. package/dist/types/inputProcessing/CreateInputVisitor.d.ts.map +1 -1
  189. package/dist/types/inputProcessing/UpdateInputVisitor.d.ts +8 -8
  190. package/dist/types/inputProcessing/UpdateInputVisitor.d.ts.map +1 -1
  191. package/dist/types/mapper/MutationProcessorHelper.d.ts +2 -2
  192. package/dist/types/mapper/MutationProcessorHelper.d.ts.map +1 -1
  193. package/dist/types/mapper/Result.d.ts +11 -5
  194. package/dist/types/mapper/Result.d.ts.map +1 -1
  195. package/dist/types/mapper/insert/InsertBuilder.d.ts +3 -7
  196. package/dist/types/mapper/insert/InsertBuilder.d.ts.map +1 -1
  197. package/dist/types/mapper/insert/Inserter.d.ts +0 -1
  198. package/dist/types/mapper/insert/Inserter.d.ts.map +1 -1
  199. package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts +11 -8
  200. package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts.map +1 -1
  201. package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts +24 -0
  202. package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts.map +1 -0
  203. package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts +23 -0
  204. package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts.map +1 -0
  205. package/dist/types/mapper/insert/relations/OneHasManyCreateInputProcessor.d.ts +26 -0
  206. package/dist/types/mapper/insert/relations/OneHasManyCreateInputProcessor.d.ts.map +1 -0
  207. package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts +29 -0
  208. package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +1 -0
  209. package/dist/types/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.d.ts +24 -0
  210. package/dist/types/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +1 -0
  211. package/dist/types/mapper/select/handlers/FieldsVisitor.d.ts.map +1 -1
  212. package/dist/types/mapper/update/SqlUpdateInputProcessor.d.ts +10 -7
  213. package/dist/types/mapper/update/SqlUpdateInputProcessor.d.ts.map +1 -1
  214. package/dist/types/mapper/update/UpdateBuilder.d.ts +2 -6
  215. package/dist/types/mapper/update/UpdateBuilder.d.ts.map +1 -1
  216. package/dist/types/mapper/update/Updater.d.ts +0 -1
  217. package/dist/types/mapper/update/Updater.d.ts.map +1 -1
  218. package/dist/types/mapper/update/relations/ManyHasManyUpdateInputProcessor.d.ts +46 -0
  219. package/dist/types/mapper/update/relations/ManyHasManyUpdateInputProcessor.d.ts.map +1 -0
  220. package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts +40 -0
  221. package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts.map +1 -0
  222. package/dist/types/mapper/update/relations/OneHasManyUpdateInputProcessor.d.ts +46 -0
  223. package/dist/types/mapper/update/relations/OneHasManyUpdateInputProcessor.d.ts.map +1 -0
  224. package/dist/types/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.d.ts +17 -13
  225. package/dist/types/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +1 -0
  226. package/dist/types/mapper/{relations → update/relations}/OneHasOneOwningUpdateInputProcessor.d.ts +19 -16
  227. package/dist/types/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +1 -0
  228. package/dist/types/tsconfig.tsbuildinfo +1 -1
  229. package/package.json +11 -11
  230. package/src/input-validation/preValidation/InputPreValidator.ts +3 -5
  231. package/src/inputProcessing/CreateInputVisitor.ts +14 -14
  232. package/src/inputProcessing/UpdateInputVisitor.ts +17 -17
  233. package/src/mapper/MutationProcessorHelper.ts +16 -8
  234. package/src/mapper/Result.ts +11 -47
  235. package/src/mapper/insert/InsertBuilder.ts +8 -22
  236. package/src/mapper/insert/Inserter.ts +53 -40
  237. package/src/mapper/insert/SqlCreateInputProcessor.ts +35 -88
  238. package/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.ts +59 -0
  239. package/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.ts +57 -0
  240. package/src/mapper/insert/relations/OneHasManyCreateInputProcessor.ts +50 -0
  241. package/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.ts +91 -0
  242. package/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.ts +87 -0
  243. package/src/mapper/select/handlers/FieldsVisitor.ts +3 -0
  244. package/src/mapper/update/SqlUpdateInputProcessor.ts +48 -46
  245. package/src/mapper/update/UpdateBuilder.ts +9 -23
  246. package/src/mapper/update/Updater.ts +53 -34
  247. package/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.ts +116 -0
  248. package/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.ts +125 -0
  249. package/src/mapper/update/relations/OneHasManyUpdateInputProcessor.ts +111 -0
  250. package/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.ts +93 -73
  251. package/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.ts +243 -0
  252. package/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.ts +8 -8
  253. package/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.ts +4 -4
  254. package/dist/development/src/mapper/DataManipulationBuilder.cjs +0 -5
  255. package/dist/development/src/mapper/DataManipulationBuilder.cjs.map +0 -1
  256. package/dist/development/src/mapper/DataManipulationBuilder.js +0 -5
  257. package/dist/development/src/mapper/DataManipulationBuilder.js.map +0 -1
  258. package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.cjs +0 -75
  259. package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.cjs.map +0 -1
  260. package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.js +0 -75
  261. package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.js.map +0 -1
  262. package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.cjs +0 -114
  263. package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.cjs.map +0 -1
  264. package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.js +0 -114
  265. package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.js.map +0 -1
  266. package/dist/development/src/mapper/relations/OneHasManyInputProcessor.cjs +0 -72
  267. package/dist/development/src/mapper/relations/OneHasManyInputProcessor.cjs.map +0 -1
  268. package/dist/development/src/mapper/relations/OneHasManyInputProcessor.js +0 -72
  269. package/dist/development/src/mapper/relations/OneHasManyInputProcessor.js.map +0 -1
  270. package/dist/development/src/mapper/relations/OneHasOneInverseCreateInputProcessor.cjs.map +0 -1
  271. package/dist/development/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js.map +0 -1
  272. package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +0 -1
  273. package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js.map +0 -1
  274. package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs +0 -71
  275. package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs.map +0 -1
  276. package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js +0 -71
  277. package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js.map +0 -1
  278. package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs +0 -200
  279. package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +0 -1
  280. package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js +0 -200
  281. package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js.map +0 -1
  282. package/dist/production/src/mapper/DataManipulationBuilder.cjs +0 -5
  283. package/dist/production/src/mapper/DataManipulationBuilder.cjs.map +0 -1
  284. package/dist/production/src/mapper/DataManipulationBuilder.js +0 -5
  285. package/dist/production/src/mapper/DataManipulationBuilder.js.map +0 -1
  286. package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.cjs +0 -75
  287. package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.cjs.map +0 -1
  288. package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.js +0 -75
  289. package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.js.map +0 -1
  290. package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.cjs +0 -114
  291. package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.cjs.map +0 -1
  292. package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.js +0 -114
  293. package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.js.map +0 -1
  294. package/dist/production/src/mapper/relations/OneHasManyInputProcessor.cjs +0 -72
  295. package/dist/production/src/mapper/relations/OneHasManyInputProcessor.cjs.map +0 -1
  296. package/dist/production/src/mapper/relations/OneHasManyInputProcessor.js +0 -72
  297. package/dist/production/src/mapper/relations/OneHasManyInputProcessor.js.map +0 -1
  298. package/dist/production/src/mapper/relations/OneHasOneInverseCreateInputProcessor.cjs.map +0 -1
  299. package/dist/production/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js.map +0 -1
  300. package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +0 -1
  301. package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js.map +0 -1
  302. package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs +0 -71
  303. package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs.map +0 -1
  304. package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js +0 -71
  305. package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js.map +0 -1
  306. package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs +0 -200
  307. package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +0 -1
  308. package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js +0 -200
  309. package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js.map +0 -1
  310. package/dist/types/mapper/DataManipulationBuilder.d.ts +0 -7
  311. package/dist/types/mapper/DataManipulationBuilder.d.ts.map +0 -1
  312. package/dist/types/mapper/relations/ManyHasManyInputProcessor.d.ts +0 -32
  313. package/dist/types/mapper/relations/ManyHasManyInputProcessor.d.ts.map +0 -1
  314. package/dist/types/mapper/relations/ManyHasOneInputProcessor.d.ts +0 -32
  315. package/dist/types/mapper/relations/ManyHasOneInputProcessor.d.ts.map +0 -1
  316. package/dist/types/mapper/relations/OneHasManyInputProcessor.d.ts +0 -29
  317. package/dist/types/mapper/relations/OneHasManyInputProcessor.d.ts.map +0 -1
  318. package/dist/types/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts +0 -21
  319. package/dist/types/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +0 -1
  320. package/dist/types/mapper/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +0 -1
  321. package/dist/types/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts +0 -21
  322. package/dist/types/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +0 -1
  323. package/dist/types/mapper/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +0 -1
  324. package/src/mapper/DataManipulationBuilder.ts +0 -12
  325. package/src/mapper/relations/ManyHasManyInputProcessor.ts +0 -108
  326. package/src/mapper/relations/ManyHasOneInputProcessor.ts +0 -158
  327. package/src/mapper/relations/OneHasManyInputProcessor.ts +0 -101
  328. package/src/mapper/relations/OneHasOneInverseCreateInputProcessor.ts +0 -99
  329. package/src/mapper/relations/OneHasOneOwningCreateInputProcessor.ts +0 -92
  330. package/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.ts +0 -253
@@ -1,114 +0,0 @@
1
- import { Model } from "@contember/schema";
2
- import { MutationEntryNotFoundError, getInsertPrimary, MutationNothingToDo, NothingToDoReason, MutationConstraintViolationError, ConstraintType } from "../Result.js";
3
- import { AbortDataManipulation } from "../DataManipulationBuilder.js";
4
- class ManyHasOneInputProcessor {
5
- constructor(mapper) {
6
- this.mapper = mapper;
7
- }
8
- async connect({ targetEntity, relation, input }, builder) {
9
- const result = [];
10
- await builder.addFieldValue(relation.name, async () => {
11
- const value = await this.mapper.getPrimaryValue(targetEntity, input);
12
- if (!value) {
13
- result.push(new MutationEntryNotFoundError([], input));
14
- return AbortDataManipulation;
15
- }
16
- return value;
17
- });
18
- return result;
19
- }
20
- async create({ relation, targetEntity, input }, builder) {
21
- const result = [];
22
- await builder.addFieldValue(relation.name, async () => {
23
- const insertResult = await this.mapper.insert(targetEntity, input);
24
- const value = getInsertPrimary(insertResult);
25
- if (!value) {
26
- result.push(...insertResult);
27
- return AbortDataManipulation;
28
- }
29
- return value;
30
- });
31
- return result;
32
- }
33
- async connectOrCreate({ input: { connect, create }, relation, targetEntity }, builder) {
34
- const result = [];
35
- await builder.addFieldValue(relation.name, async () => {
36
- const value = await this.mapper.getPrimaryValue(targetEntity, connect);
37
- if (value) {
38
- return value;
39
- }
40
- const insertPromise = this.mapper.insert(targetEntity, create);
41
- const insertResult = await insertPromise;
42
- const primary = getInsertPrimary(insertResult);
43
- if (!primary) {
44
- result.push(...insertResult);
45
- return AbortDataManipulation;
46
- }
47
- return primary;
48
- });
49
- return result;
50
- }
51
- async update({ entity, relation, targetEntity, targetRelation, input }, primary) {
52
- const inversePrimary = await this.mapper.selectField(
53
- entity,
54
- { [entity.primary]: primary },
55
- relation.name
56
- );
57
- if (!inversePrimary) {
58
- return [new MutationNothingToDo([], NothingToDoReason.emptyRelation)];
59
- }
60
- return await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, input);
61
- }
62
- async upsert({ entity, relation, targetEntity, input: { create, update } }, builder, primary) {
63
- const select = this.mapper.selectField(entity, { [entity.primary]: primary }, relation.name);
64
- const result = [];
65
- await builder.addFieldValue(relation.name, async () => {
66
- const primary2 = await select;
67
- if (primary2) {
68
- return void 0;
69
- }
70
- const insertResult = await this.mapper.insert(targetEntity, create);
71
- const insertPrimary = getInsertPrimary(insertResult);
72
- if (insertPrimary) {
73
- return insertPrimary;
74
- }
75
- result.push(...insertResult);
76
- return AbortDataManipulation;
77
- });
78
- const inversePrimary = await select;
79
- if (inversePrimary) {
80
- return await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, update);
81
- } else {
82
- return result;
83
- }
84
- }
85
- async disconnect({ entity, targetEntity, relation, targetRelation }, builder) {
86
- if (!relation.nullable) {
87
- return [new MutationConstraintViolationError([], ConstraintType.notNull)];
88
- }
89
- builder.addFieldValue(relation.name, null);
90
- return [];
91
- }
92
- async delete({ entity, targetEntity, relation, targetRelation }, builder, primary) {
93
- if (!relation.nullable && relation.joiningColumn.onDelete !== Model.OnDelete.cascade) {
94
- return [new MutationConstraintViolationError([], ConstraintType.notNull)];
95
- }
96
- if (relation.joiningColumn.onDelete === Model.OnDelete.restrict) {
97
- console.error(
98
- "[DEPRECATED] You are deleting an entity over the relation where onDelete behaviour is set to restrict. This will fail in next version."
99
- );
100
- builder.addFieldValue(relation.name, null);
101
- }
102
- const inversePrimary = await this.mapper.selectField(
103
- entity,
104
- { [entity.primary]: primary },
105
- relation.name
106
- );
107
- await builder.update;
108
- return await this.mapper.delete(targetEntity, { [targetEntity.primary]: inversePrimary });
109
- }
110
- }
111
- export {
112
- ManyHasOneInputProcessor
113
- };
114
- //# sourceMappingURL=ManyHasOneInputProcessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ManyHasOneInputProcessor.js","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/ManyHasOneInputProcessor.ts"],"sourcesContent":["import { UpdateInputProcessor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport {\n\tConstraintType,\n\tgetInsertPrimary,\n\tMutationConstraintViolationError,\n\tMutationEntryNotFoundError,\n\tMutationNothingToDo,\n\tMutationResultList,\n\tNothingToDoReason,\n} from '../Result'\nimport { Mapper } from '../Mapper'\nimport { AbortDataManipulation, DataManipulationBuilder } from '../DataManipulationBuilder'\nimport { UpdateBuilder } from '../update'\n\nexport class ManyHasOneInputProcessor {\n\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(\n\t\t{ targetEntity, relation, input }: Model.ManyHasOneContext & { input: Input.UniqueWhere },\n\t\tbuilder: DataManipulationBuilder,\n\t) {\n\t\tconst result: MutationResultList = []\n\t\tawait builder.addFieldValue(relation.name, async () => {\n\t\t\tconst value = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\t\tif (!value) {\n\t\t\t\tresult.push(new MutationEntryNotFoundError([], input))\n\t\t\t\treturn AbortDataManipulation\n\t\t\t}\n\t\t\treturn value\n\t\t})\n\t\treturn result\n\t}\n\n\tpublic async create(\n\t\t{ relation, targetEntity, input }: Model.ManyHasOneContext & { input: Input.CreateDataInput },\n\t\tbuilder: DataManipulationBuilder,\n\t) {\n\t\tconst result: MutationResultList = []\n\t\tawait builder.addFieldValue(relation.name, async () => {\n\t\t\tconst insertResult = await this.mapper.insert(targetEntity, input)\n\t\t\tconst value = getInsertPrimary(insertResult)\n\t\t\tif (!value) {\n\t\t\t\tresult.push(...insertResult)\n\t\t\t\treturn AbortDataManipulation\n\t\t\t}\n\t\t\treturn value\n\t\t})\n\t\treturn result\n\t}\n\n\tpublic async connectOrCreate(\n\t\t{ input: { connect, create }, relation, targetEntity }: Model.ManyHasOneContext & { input: Input.ConnectOrCreateInput },\n\t\tbuilder: DataManipulationBuilder,\n\t) {\n\t\tconst result: MutationResultList = []\n\t\tawait builder.addFieldValue(relation.name, async () => {\n\t\t\tconst value = await this.mapper.getPrimaryValue(targetEntity, connect)\n\t\t\tif (value) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tconst insertPromise = this.mapper.insert(targetEntity, create)\n\t\t\tconst insertResult = await insertPromise\n\t\t\tconst primary = getInsertPrimary(insertResult)\n\t\t\tif (!primary) {\n\t\t\t\tresult.push(...insertResult)\n\t\t\t\treturn AbortDataManipulation\n\t\t\t}\n\t\t\treturn primary\n\t\t})\n\t\treturn result\n\t}\n\n\tpublic async update(\n\t\t{ entity, relation, targetEntity, targetRelation, input }: Model.ManyHasOneContext & { input: Input.UpdateDataInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst inversePrimary = await this.mapper.selectField(\n\t\t\tentity,\n\t\t\t{ [entity.primary]: primary },\n\t\t\trelation.name,\n\t\t)\n\t\tif (!inversePrimary) {\n\t\t\treturn [new MutationNothingToDo([], NothingToDoReason.emptyRelation)]\n\t\t}\n\t\treturn await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, input)\n\t}\n\n\tpublic async upsert(\n\t\t{ entity, relation, targetEntity, input: { create, update } }: Model.ManyHasOneContext & { input: UpdateInputProcessor.UpsertInput },\n\t\tbuilder: DataManipulationBuilder,\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst select = this.mapper.selectField(entity, { [entity.primary]: primary }, relation.name)\n\n\t\tconst result: MutationResultList = []\n\t\t// addFieldValue has to be called immediately\n\t\tawait builder.addFieldValue(relation.name, async () => {\n\t\t\tconst primary = await select\n\t\t\tif (primary) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tconst insertResult = await this.mapper.insert(targetEntity, create)\n\t\t\tconst insertPrimary = getInsertPrimary(insertResult)\n\t\t\tif (insertPrimary) {\n\t\t\t\treturn insertPrimary\n\t\t\t}\n\t\t\tresult.push(...insertResult)\n\t\t\treturn AbortDataManipulation\n\t\t})\n\n\t\tconst inversePrimary = await select\n\t\tif (inversePrimary) {\n\t\t\treturn await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, update)\n\t\t} else {\n\t\t\treturn result\n\t\t}\n\t}\n\n\tpublic async disconnect(\n\t\t{ entity, targetEntity, relation, targetRelation }: Model.ManyHasOneContext & { input: undefined },\n\t\tbuilder: DataManipulationBuilder,\n\t) {\n\t\tif (!relation.nullable) {\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\t\tbuilder.addFieldValue(relation.name, null)\n\t\treturn []\n\t}\n\n\tpublic async delete(\n\t\t{ entity, targetEntity, relation, targetRelation }: Model.ManyHasOneContext & { input: undefined },\n\t\tbuilder: UpdateBuilder,\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tif (!relation.nullable && relation.joiningColumn.onDelete !== Model.OnDelete.cascade) {\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\t\tif (relation.joiningColumn.onDelete === Model.OnDelete.restrict) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t'[DEPRECATED] You are deleting an entity over the relation where onDelete behaviour is set to restrict. This will fail in next version.',\n\t\t\t)\n\t\t\tbuilder.addFieldValue(relation.name, null)\n\t\t}\n\t\tconst inversePrimary = await this.mapper.selectField(\n\t\t\tentity,\n\t\t\t{ [entity.primary]: primary },\n\t\t\trelation.name,\n\t\t)\n\t\tawait builder.update\n\t\treturn await this.mapper.delete(targetEntity, { [targetEntity.primary]: inversePrimary })\n\t}\n}\n"],"names":["primary"],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Result = require("../Result.cjs");
4
- class OneHasManyInputProcessor {
5
- constructor(mapper) {
6
- this.mapper = mapper;
7
- }
8
- async connect({ entity, targetEntity, targetRelation, input }, primary) {
9
- return await this.mapper.update(targetEntity, input, {
10
- [targetRelation.name]: { connect: { [entity.primary]: primary } }
11
- });
12
- }
13
- async create({ entity, targetEntity, targetRelation, input }, primary) {
14
- return await this.mapper.insert(targetEntity, {
15
- ...input,
16
- [targetRelation.name]: { connect: { [entity.primary]: primary } }
17
- });
18
- }
19
- async connectOrCreate({ entity, targetRelation, targetEntity, input: { connect, create } }, primary) {
20
- const connectData = {
21
- [targetRelation.name]: {
22
- connect: { [entity.primary]: primary }
23
- }
24
- };
25
- return await this.mapper.upsert(targetEntity, connect, connectData, {
26
- ...create,
27
- ...connectData
28
- });
29
- }
30
- async update({ entity, targetEntity, targetRelation, input: { data, where } }, primary) {
31
- return await this.mapper.update(
32
- targetEntity,
33
- { ...where, [targetRelation.name]: { [entity.primary]: primary } },
34
- {
35
- ...data
36
- // [targetRelation.name]: {connect: thisPrimary}
37
- }
38
- );
39
- }
40
- async upsert({ entity, targetEntity, targetRelation, input: { create, update, where } }, primary) {
41
- const result = await this.mapper.update(
42
- targetEntity,
43
- { ...where, [targetRelation.name]: { [entity.primary]: primary } },
44
- {
45
- ...update
46
- // [targetRelation.name]: {connect: thisPrimary}
47
- }
48
- );
49
- if (result[0].result === Result.MutationResultType.notFoundError) {
50
- return await this.mapper.insert(targetEntity, {
51
- ...create,
52
- [targetRelation.name]: { connect: { [entity.primary]: primary } }
53
- });
54
- }
55
- return result;
56
- }
57
- async disconnect({ entity, targetEntity, relation, targetRelation, input }, primary) {
58
- return await this.mapper.update(
59
- targetEntity,
60
- { ...input, [targetRelation.name]: { [entity.primary]: primary } },
61
- { [targetRelation.name]: { disconnect: true } }
62
- );
63
- }
64
- async delete({ entity, targetEntity, relation, targetRelation, input }, primary) {
65
- return await this.mapper.delete(targetEntity, {
66
- ...input,
67
- [targetRelation.name]: { [entity.primary]: primary }
68
- });
69
- }
70
- }
71
- exports.OneHasManyInputProcessor = OneHasManyInputProcessor;
72
- //# sourceMappingURL=OneHasManyInputProcessor.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneHasManyInputProcessor.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/OneHasManyInputProcessor.ts"],"sourcesContent":["import { UpdateInputProcessor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { Mapper } from '../Mapper'\nimport { MutationResultType } from '../Result'\n\nexport class OneHasManyInputProcessor {\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(\n\t\t{ entity, targetEntity, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.update(targetEntity, input, {\n\t\t\t[targetRelation.name]: { connect: { [entity.primary]: primary } },\n\t\t})\n\t}\n\n\tpublic async create(\n\t\t{ entity, targetEntity, targetRelation, input }: Model.OneHasManyContext & { input: Input.CreateDataInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.insert(targetEntity, {\n\t\t\t...input,\n\t\t\t[targetRelation.name]: { connect: { [entity.primary]: primary } },\n\t\t})\n\t}\n\n\tpublic async connectOrCreate(\n\t\t{ entity, targetRelation, targetEntity, input: { connect, create } }: Model.OneHasManyContext & { input: Input.ConnectOrCreateInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst connectData = {\n\t\t\t[targetRelation.name]: {\n\t\t\t\tconnect: { [entity.primary]: primary },\n\t\t\t},\n\t\t}\n\t\treturn await this.mapper.upsert(targetEntity, connect, connectData, {\n\t\t\t...create,\n\t\t\t...connectData,\n\t\t})\n\t}\n\n\tpublic async update(\n\t\t{ entity, targetEntity, targetRelation, input: { data, where } }: Model.OneHasManyContext & { input: UpdateInputProcessor.UpdateManyInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ ...where, [targetRelation.name]: { [entity.primary]: primary } },\n\t\t\t{\n\t\t\t\t...data,\n\t\t\t\t// [targetRelation.name]: {connect: thisPrimary}\n\t\t\t},\n\t\t)\n\t}\n\n\tpublic async upsert(\n\t\t{ entity, targetEntity, targetRelation, input: { create, update, where } }: Model.OneHasManyContext & { input: UpdateInputProcessor.UpsertManyInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst result = await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ ...where, [targetRelation.name]: { [entity.primary]: primary } },\n\t\t\t{\n\t\t\t\t...update,\n\t\t\t\t// [targetRelation.name]: {connect: thisPrimary}\n\t\t\t},\n\t\t)\n\t\tif (result[0].result === MutationResultType.notFoundError) {\n\t\t\treturn await this.mapper.insert(targetEntity, {\n\t\t\t\t...create,\n\t\t\t\t[targetRelation.name]: { connect: { [entity.primary]: primary } },\n\t\t\t})\n\t\t}\n\t\treturn result\n\t}\n\n\tpublic async disconnect(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ ...input, [targetRelation.name]: { [entity.primary]: primary } },\n\t\t\t{ [targetRelation.name]: { disconnect: true } },\n\t\t)\n\t}\n\n\tpublic async delete(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.delete(targetEntity, {\n\t\t\t...input,\n\t\t\t[targetRelation.name]: { [entity.primary]: primary },\n\t\t})\n\t}\n}\n"],"names":["MutationResultType"],"mappings":";;;AAKO,MAAM,yBAAyB;AAAA,EACrC,YACkB,QAChB;AADgB,SAAA,SAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QACZ,EAAE,QAAQ,cAAc,gBAAgB,SACxC,SACC;AACD,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc,OAAO;AAAA,MACpD,CAAC,eAAe,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,IAAA,CAChE;AAAA,EACF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,gBAAgB,SACxC,SACC;AACD,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc;AAAA,MAC7C,GAAG;AAAA,MACH,CAAC,eAAe,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,IAAA,CAChE;AAAA,EACF;AAAA,EAEA,MAAa,gBACZ,EAAE,QAAQ,gBAAgB,cAAc,OAAO,EAAE,SAAS,SAAS,GACnE,SACC;AACD,UAAM,cAAc;AAAA,MACnB,CAAC,eAAe,IAAI,GAAG;AAAA,QACtB,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,QAAQ;AAAA,MACtC;AAAA,IAAA;AAED,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc,SAAS,aAAa;AAAA,MACnE,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,CACH;AAAA,EACF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,gBAAgB,OAAO,EAAE,MAAM,QAAQ,GAC/D,SACC;AACM,WAAA,MAAM,KAAK,OAAO;AAAA,MACxB;AAAA,MACA,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MACjE;AAAA,QACC,GAAG;AAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,gBAAgB,OAAO,EAAE,QAAQ,QAAQ,MAAM,EAAA,GACvE,SACC;AACK,UAAA,SAAS,MAAM,KAAK,OAAO;AAAA,MAChC;AAAA,MACA,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MACjE;AAAA,QACC,GAAG;AAAA;AAAA,MAEJ;AAAA,IAAA;AAED,QAAI,OAAO,CAAC,EAAE,WAAWA,OAAAA,mBAAmB,eAAe;AAC1D,aAAO,MAAM,KAAK,OAAO,OAAO,cAAc;AAAA,QAC7C,GAAG;AAAA,QACH,CAAC,eAAe,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MAAA,CAChE;AAAA,IACF;AACO,WAAA;AAAA,EACR;AAAA,EAEA,MAAa,WACZ,EAAE,QAAQ,cAAc,UAAU,gBAAgB,MAAM,GACxD,SACC;AACM,WAAA,MAAM,KAAK,OAAO;AAAA,MACxB;AAAA,MACA,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MACjE,EAAE,CAAC,eAAe,IAAI,GAAG,EAAE,YAAY,OAAO;AAAA,IAAA;AAAA,EAEhD;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,UAAU,gBAAgB,MAAM,GACxD,SACC;AACD,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc;AAAA,MAC7C,GAAG;AAAA,MACH,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,QAAQ;AAAA,IAAA,CACnD;AAAA,EACF;AACD;;"}
@@ -1,72 +0,0 @@
1
- import { MutationResultType } from "../Result.js";
2
- class OneHasManyInputProcessor {
3
- constructor(mapper) {
4
- this.mapper = mapper;
5
- }
6
- async connect({ entity, targetEntity, targetRelation, input }, primary) {
7
- return await this.mapper.update(targetEntity, input, {
8
- [targetRelation.name]: { connect: { [entity.primary]: primary } }
9
- });
10
- }
11
- async create({ entity, targetEntity, targetRelation, input }, primary) {
12
- return await this.mapper.insert(targetEntity, {
13
- ...input,
14
- [targetRelation.name]: { connect: { [entity.primary]: primary } }
15
- });
16
- }
17
- async connectOrCreate({ entity, targetRelation, targetEntity, input: { connect, create } }, primary) {
18
- const connectData = {
19
- [targetRelation.name]: {
20
- connect: { [entity.primary]: primary }
21
- }
22
- };
23
- return await this.mapper.upsert(targetEntity, connect, connectData, {
24
- ...create,
25
- ...connectData
26
- });
27
- }
28
- async update({ entity, targetEntity, targetRelation, input: { data, where } }, primary) {
29
- return await this.mapper.update(
30
- targetEntity,
31
- { ...where, [targetRelation.name]: { [entity.primary]: primary } },
32
- {
33
- ...data
34
- // [targetRelation.name]: {connect: thisPrimary}
35
- }
36
- );
37
- }
38
- async upsert({ entity, targetEntity, targetRelation, input: { create, update, where } }, primary) {
39
- const result = await this.mapper.update(
40
- targetEntity,
41
- { ...where, [targetRelation.name]: { [entity.primary]: primary } },
42
- {
43
- ...update
44
- // [targetRelation.name]: {connect: thisPrimary}
45
- }
46
- );
47
- if (result[0].result === MutationResultType.notFoundError) {
48
- return await this.mapper.insert(targetEntity, {
49
- ...create,
50
- [targetRelation.name]: { connect: { [entity.primary]: primary } }
51
- });
52
- }
53
- return result;
54
- }
55
- async disconnect({ entity, targetEntity, relation, targetRelation, input }, primary) {
56
- return await this.mapper.update(
57
- targetEntity,
58
- { ...input, [targetRelation.name]: { [entity.primary]: primary } },
59
- { [targetRelation.name]: { disconnect: true } }
60
- );
61
- }
62
- async delete({ entity, targetEntity, relation, targetRelation, input }, primary) {
63
- return await this.mapper.delete(targetEntity, {
64
- ...input,
65
- [targetRelation.name]: { [entity.primary]: primary }
66
- });
67
- }
68
- }
69
- export {
70
- OneHasManyInputProcessor
71
- };
72
- //# sourceMappingURL=OneHasManyInputProcessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneHasManyInputProcessor.js","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/OneHasManyInputProcessor.ts"],"sourcesContent":["import { UpdateInputProcessor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { Mapper } from '../Mapper'\nimport { MutationResultType } from '../Result'\n\nexport class OneHasManyInputProcessor {\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(\n\t\t{ entity, targetEntity, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.update(targetEntity, input, {\n\t\t\t[targetRelation.name]: { connect: { [entity.primary]: primary } },\n\t\t})\n\t}\n\n\tpublic async create(\n\t\t{ entity, targetEntity, targetRelation, input }: Model.OneHasManyContext & { input: Input.CreateDataInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.insert(targetEntity, {\n\t\t\t...input,\n\t\t\t[targetRelation.name]: { connect: { [entity.primary]: primary } },\n\t\t})\n\t}\n\n\tpublic async connectOrCreate(\n\t\t{ entity, targetRelation, targetEntity, input: { connect, create } }: Model.OneHasManyContext & { input: Input.ConnectOrCreateInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst connectData = {\n\t\t\t[targetRelation.name]: {\n\t\t\t\tconnect: { [entity.primary]: primary },\n\t\t\t},\n\t\t}\n\t\treturn await this.mapper.upsert(targetEntity, connect, connectData, {\n\t\t\t...create,\n\t\t\t...connectData,\n\t\t})\n\t}\n\n\tpublic async update(\n\t\t{ entity, targetEntity, targetRelation, input: { data, where } }: Model.OneHasManyContext & { input: UpdateInputProcessor.UpdateManyInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ ...where, [targetRelation.name]: { [entity.primary]: primary } },\n\t\t\t{\n\t\t\t\t...data,\n\t\t\t\t// [targetRelation.name]: {connect: thisPrimary}\n\t\t\t},\n\t\t)\n\t}\n\n\tpublic async upsert(\n\t\t{ entity, targetEntity, targetRelation, input: { create, update, where } }: Model.OneHasManyContext & { input: UpdateInputProcessor.UpsertManyInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst result = await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ ...where, [targetRelation.name]: { [entity.primary]: primary } },\n\t\t\t{\n\t\t\t\t...update,\n\t\t\t\t// [targetRelation.name]: {connect: thisPrimary}\n\t\t\t},\n\t\t)\n\t\tif (result[0].result === MutationResultType.notFoundError) {\n\t\t\treturn await this.mapper.insert(targetEntity, {\n\t\t\t\t...create,\n\t\t\t\t[targetRelation.name]: { connect: { [entity.primary]: primary } },\n\t\t\t})\n\t\t}\n\t\treturn result\n\t}\n\n\tpublic async disconnect(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ ...input, [targetRelation.name]: { [entity.primary]: primary } },\n\t\t\t{ [targetRelation.name]: { disconnect: true } },\n\t\t)\n\t}\n\n\tpublic async delete(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.delete(targetEntity, {\n\t\t\t...input,\n\t\t\t[targetRelation.name]: { [entity.primary]: primary },\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";AAKO,MAAM,yBAAyB;AAAA,EACrC,YACkB,QAChB;AADgB,SAAA,SAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QACZ,EAAE,QAAQ,cAAc,gBAAgB,SACxC,SACC;AACD,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc,OAAO;AAAA,MACpD,CAAC,eAAe,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,IAAA,CAChE;AAAA,EACF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,gBAAgB,SACxC,SACC;AACD,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc;AAAA,MAC7C,GAAG;AAAA,MACH,CAAC,eAAe,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,IAAA,CAChE;AAAA,EACF;AAAA,EAEA,MAAa,gBACZ,EAAE,QAAQ,gBAAgB,cAAc,OAAO,EAAE,SAAS,SAAS,GACnE,SACC;AACD,UAAM,cAAc;AAAA,MACnB,CAAC,eAAe,IAAI,GAAG;AAAA,QACtB,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,QAAQ;AAAA,MACtC;AAAA,IAAA;AAED,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc,SAAS,aAAa;AAAA,MACnE,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,CACH;AAAA,EACF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,gBAAgB,OAAO,EAAE,MAAM,QAAQ,GAC/D,SACC;AACM,WAAA,MAAM,KAAK,OAAO;AAAA,MACxB;AAAA,MACA,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MACjE;AAAA,QACC,GAAG;AAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,gBAAgB,OAAO,EAAE,QAAQ,QAAQ,MAAM,EAAA,GACvE,SACC;AACK,UAAA,SAAS,MAAM,KAAK,OAAO;AAAA,MAChC;AAAA,MACA,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MACjE;AAAA,QACC,GAAG;AAAA;AAAA,MAEJ;AAAA,IAAA;AAED,QAAI,OAAO,CAAC,EAAE,WAAW,mBAAmB,eAAe;AAC1D,aAAO,MAAM,KAAK,OAAO,OAAO,cAAc;AAAA,QAC7C,GAAG;AAAA,QACH,CAAC,eAAe,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MAAA,CAChE;AAAA,IACF;AACO,WAAA;AAAA,EACR;AAAA,EAEA,MAAa,WACZ,EAAE,QAAQ,cAAc,UAAU,gBAAgB,MAAM,GACxD,SACC;AACM,WAAA,MAAM,KAAK,OAAO;AAAA,MACxB;AAAA,MACA,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MACjE,EAAE,CAAC,eAAe,IAAI,GAAG,EAAE,YAAY,OAAO;AAAA,IAAA;AAAA,EAEhD;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,UAAU,gBAAgB,MAAM,GACxD,SACC;AACD,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc;AAAA,MAC7C,GAAG;AAAA,MACH,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,QAAQ;AAAA,IAAA,CACnD;AAAA,EACF;AACD;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneHasOneInverseCreateInputProcessor.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/OneHasOneInverseCreateInputProcessor.ts"],"sourcesContent":["import { InsertBuilder } from '../insert'\nimport { Mapper } from '../Mapper'\nimport {\n\tConstraintType,\n\tMutationConstraintViolationError,\n\tMutationEntryNotFoundError,\n\tMutationResultList,\n} from '../Result'\nimport { CheckedPrimary } from '../CheckedPrimary'\nimport { Input, Model } from '@contember/schema'\n\nexport class OneHasOneInverseCreateInputProcessor {\n\tconstructor(\n\t\tprivate readonly insertBuilder: InsertBuilder,\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(context: Model.OneHasOneInverseContext & { input: Input.UniqueWhere }) {\n\t\tconst { targetEntity, input } = context\n\t\tconst primary = await this.insertBuilder.insert\n\t\tif (!primary) {\n\t\t\treturn []\n\t\t}\n\t\tconst owner = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\tif (!owner) {\n\t\t\treturn [new MutationEntryNotFoundError([], input)]\n\t\t}\n\n\t\treturn await this.connectInternal({ ...context, input: new CheckedPrimary(owner) }, primary)\n\t}\n\n\n\tpublic async create(\n\t\tcontext: Model.OneHasOneInverseContext & { input: Input.CreateDataInput },\n\t) {\n\t\tconst primary = await this.insertBuilder.insert\n\t\tif (!primary) {\n\t\t\treturn []\n\t\t}\n\t\treturn await this.mapper.insert(context.targetEntity, context.input, builder => {\n\t\t\tbuilder.addPredicates([context.targetRelation.name])\n\t\t\tbuilder.addFieldValue(context.targetRelation.name, primary)\n\t\t})\n\t}\n\n\tpublic async connectOrCreate(\n\t\t{ input, ...context }: Model.OneHasOneInverseContext & { input: Input.ConnectOrCreateInput },\n\t) {\n\t\tconst primary = await this.insertBuilder.insert\n\t\tif (!primary) {\n\t\t\treturn []\n\t\t}\n\t\tconst owner = await this.mapper.getPrimaryValue(context.targetEntity, input.connect)\n\t\tif (owner) {\n\t\t\treturn await this.connectInternal({ ...context, input: new CheckedPrimary(owner) }, primary)\n\t\t}\n\n\t\treturn await this.createInternal({ input: input.create, ...context }, primary)\n\t}\n\n\tprivate async connectInternal(\n\t\t{ entity, targetEntity, targetRelation, relation, input }: Model.OneHasOneInverseContext & { input: CheckedPrimary },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\n\t\tconst currentInverseSideOfOwner = await this.mapper.selectField(targetEntity, input, targetRelation.name)\n\t\tconst orphanResult: MutationResultList = []\n\t\tif (currentInverseSideOfOwner) {\n\t\t\tif (targetRelation.orphanRemoval) {\n\t\t\t\tconst orphanUnique = { [entity.primary]: currentInverseSideOfOwner }\n\t\t\t\tconst orphanDelete = await this.mapper.delete(entity, orphanUnique)\n\t\t\t\torphanResult.push(...orphanDelete)\n\t\t\t} else if (!relation.nullable) {\n\t\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t\t}\n\t\t}\n\n\t\tconst connectResult = await this.mapper.updateInternal(targetEntity, input, update => {\n\t\t\tupdate.addPredicates([targetRelation.name])\n\t\t\tupdate.addFieldValue(targetRelation.name, primary)\n\t\t})\n\n\t\treturn [\n\t\t\t...connectResult,\n\t\t\t...orphanResult,\n\t\t]\n\t}\n\n\tprivate async createInternal(\n\t\tcontext: Model.OneHasOneInverseContext & { input: Input.CreateDataInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.insert(context.targetEntity, context.input, builder => {\n\t\t\tbuilder.addPredicates([context.targetRelation.name])\n\t\t\tbuilder.addFieldValue(context.targetRelation.name, primary)\n\t\t})\n\t}\n}\n"],"names":["MutationEntryNotFoundError","CheckedPrimary","MutationConstraintViolationError","ConstraintType"],"mappings":";;;;AAWO,MAAM,qCAAqC;AAAA,EACjD,YACkB,eACA,QAChB;AAFgB,SAAA,gBAAA;AACA,SAAA,SAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QAAQ,SAAuE;AACrF,UAAA,EAAE,cAAc,MAAU,IAAA;AAC1B,UAAA,UAAU,MAAM,KAAK,cAAc;AACzC,QAAI,CAAC,SAAS;AACb,aAAO;IACR;AACA,UAAM,QAAQ,MAAM,KAAK,OAAO,gBAAgB,cAAc,KAAK;AACnE,QAAI,CAAC,OAAO;AACX,aAAO,CAAC,IAAIA,OAAA,2BAA2B,IAAI,KAAK,CAAC;AAAA,IAClD;AAEA,WAAO,MAAM,KAAK,gBAAgB,EAAE,GAAG,SAAS,OAAO,IAAIC,8BAAe,KAAK,EAAE,GAAG,OAAO;AAAA,EAC5F;AAAA,EAGA,MAAa,OACZ,SACC;AACK,UAAA,UAAU,MAAM,KAAK,cAAc;AACzC,QAAI,CAAC,SAAS;AACb,aAAO;IACR;AACO,WAAA,MAAM,KAAK,OAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,CAAW,YAAA;AAC/E,cAAQ,cAAc,CAAC,QAAQ,eAAe,IAAI,CAAC;AACnD,cAAQ,cAAc,QAAQ,eAAe,MAAM,OAAO;AAAA,IAAA,CAC1D;AAAA,EACF;AAAA,EAEA,MAAa,gBACZ,EAAE,OAAO,GAAG,WACX;AACK,UAAA,UAAU,MAAM,KAAK,cAAc;AACzC,QAAI,CAAC,SAAS;AACb,aAAO;IACR;AACM,UAAA,QAAQ,MAAM,KAAK,OAAO,gBAAgB,QAAQ,cAAc,MAAM,OAAO;AACnF,QAAI,OAAO;AACV,aAAO,MAAM,KAAK,gBAAgB,EAAE,GAAG,SAAS,OAAO,IAAIA,8BAAe,KAAK,EAAE,GAAG,OAAO;AAAA,IAC5F;AAEO,WAAA,MAAM,KAAK,eAAe,EAAE,OAAO,MAAM,QAAQ,GAAG,WAAW,OAAO;AAAA,EAC9E;AAAA,EAEA,MAAc,gBACb,EAAE,QAAQ,cAAc,gBAAgB,UAAU,MAAM,GACxD,SACC;AAEK,UAAA,4BAA4B,MAAM,KAAK,OAAO,YAAY,cAAc,OAAO,eAAe,IAAI;AACxG,UAAM,eAAmC,CAAA;AACzC,QAAI,2BAA2B;AAC9B,UAAI,eAAe,eAAe;AACjC,cAAM,eAAe,EAAE,CAAC,OAAO,OAAO,GAAG,0BAA0B;AACnE,cAAM,eAAe,MAAM,KAAK,OAAO,OAAO,QAAQ,YAAY;AACrD,qBAAA,KAAK,GAAG,YAAY;AAAA,MAAA,WACvB,CAAC,SAAS,UAAU;AAC9B,eAAO,CAAC,IAAIC,OAAAA,iCAAiC,CAAA,GAAIC,OAAAA,eAAe,OAAO,CAAC;AAAA,MACzE;AAAA,IACD;AAEA,UAAM,gBAAgB,MAAM,KAAK,OAAO,eAAe,cAAc,OAAO,CAAU,WAAA;AACrF,aAAO,cAAc,CAAC,eAAe,IAAI,CAAC;AACnC,aAAA,cAAc,eAAe,MAAM,OAAO;AAAA,IAAA,CACjD;AAEM,WAAA;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,EAEL;AAAA,EAEA,MAAc,eACb,SACA,SACC;AACM,WAAA,MAAM,KAAK,OAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,CAAW,YAAA;AAC/E,cAAQ,cAAc,CAAC,QAAQ,eAAe,IAAI,CAAC;AACnD,cAAQ,cAAc,QAAQ,eAAe,MAAM,OAAO;AAAA,IAAA,CAC1D;AAAA,EACF;AACD;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneHasOneInverseCreateInputProcessor.js","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/OneHasOneInverseCreateInputProcessor.ts"],"sourcesContent":["import { InsertBuilder } from '../insert'\nimport { Mapper } from '../Mapper'\nimport {\n\tConstraintType,\n\tMutationConstraintViolationError,\n\tMutationEntryNotFoundError,\n\tMutationResultList,\n} from '../Result'\nimport { CheckedPrimary } from '../CheckedPrimary'\nimport { Input, Model } from '@contember/schema'\n\nexport class OneHasOneInverseCreateInputProcessor {\n\tconstructor(\n\t\tprivate readonly insertBuilder: InsertBuilder,\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(context: Model.OneHasOneInverseContext & { input: Input.UniqueWhere }) {\n\t\tconst { targetEntity, input } = context\n\t\tconst primary = await this.insertBuilder.insert\n\t\tif (!primary) {\n\t\t\treturn []\n\t\t}\n\t\tconst owner = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\tif (!owner) {\n\t\t\treturn [new MutationEntryNotFoundError([], input)]\n\t\t}\n\n\t\treturn await this.connectInternal({ ...context, input: new CheckedPrimary(owner) }, primary)\n\t}\n\n\n\tpublic async create(\n\t\tcontext: Model.OneHasOneInverseContext & { input: Input.CreateDataInput },\n\t) {\n\t\tconst primary = await this.insertBuilder.insert\n\t\tif (!primary) {\n\t\t\treturn []\n\t\t}\n\t\treturn await this.mapper.insert(context.targetEntity, context.input, builder => {\n\t\t\tbuilder.addPredicates([context.targetRelation.name])\n\t\t\tbuilder.addFieldValue(context.targetRelation.name, primary)\n\t\t})\n\t}\n\n\tpublic async connectOrCreate(\n\t\t{ input, ...context }: Model.OneHasOneInverseContext & { input: Input.ConnectOrCreateInput },\n\t) {\n\t\tconst primary = await this.insertBuilder.insert\n\t\tif (!primary) {\n\t\t\treturn []\n\t\t}\n\t\tconst owner = await this.mapper.getPrimaryValue(context.targetEntity, input.connect)\n\t\tif (owner) {\n\t\t\treturn await this.connectInternal({ ...context, input: new CheckedPrimary(owner) }, primary)\n\t\t}\n\n\t\treturn await this.createInternal({ input: input.create, ...context }, primary)\n\t}\n\n\tprivate async connectInternal(\n\t\t{ entity, targetEntity, targetRelation, relation, input }: Model.OneHasOneInverseContext & { input: CheckedPrimary },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\n\t\tconst currentInverseSideOfOwner = await this.mapper.selectField(targetEntity, input, targetRelation.name)\n\t\tconst orphanResult: MutationResultList = []\n\t\tif (currentInverseSideOfOwner) {\n\t\t\tif (targetRelation.orphanRemoval) {\n\t\t\t\tconst orphanUnique = { [entity.primary]: currentInverseSideOfOwner }\n\t\t\t\tconst orphanDelete = await this.mapper.delete(entity, orphanUnique)\n\t\t\t\torphanResult.push(...orphanDelete)\n\t\t\t} else if (!relation.nullable) {\n\t\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t\t}\n\t\t}\n\n\t\tconst connectResult = await this.mapper.updateInternal(targetEntity, input, update => {\n\t\t\tupdate.addPredicates([targetRelation.name])\n\t\t\tupdate.addFieldValue(targetRelation.name, primary)\n\t\t})\n\n\t\treturn [\n\t\t\t...connectResult,\n\t\t\t...orphanResult,\n\t\t]\n\t}\n\n\tprivate async createInternal(\n\t\tcontext: Model.OneHasOneInverseContext & { input: Input.CreateDataInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.insert(context.targetEntity, context.input, builder => {\n\t\t\tbuilder.addPredicates([context.targetRelation.name])\n\t\t\tbuilder.addFieldValue(context.targetRelation.name, primary)\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AAWO,MAAM,qCAAqC;AAAA,EACjD,YACkB,eACA,QAChB;AAFgB,SAAA,gBAAA;AACA,SAAA,SAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QAAQ,SAAuE;AACrF,UAAA,EAAE,cAAc,MAAU,IAAA;AAC1B,UAAA,UAAU,MAAM,KAAK,cAAc;AACzC,QAAI,CAAC,SAAS;AACb,aAAO;IACR;AACA,UAAM,QAAQ,MAAM,KAAK,OAAO,gBAAgB,cAAc,KAAK;AACnE,QAAI,CAAC,OAAO;AACX,aAAO,CAAC,IAAI,2BAA2B,IAAI,KAAK,CAAC;AAAA,IAClD;AAEA,WAAO,MAAM,KAAK,gBAAgB,EAAE,GAAG,SAAS,OAAO,IAAI,eAAe,KAAK,EAAE,GAAG,OAAO;AAAA,EAC5F;AAAA,EAGA,MAAa,OACZ,SACC;AACK,UAAA,UAAU,MAAM,KAAK,cAAc;AACzC,QAAI,CAAC,SAAS;AACb,aAAO;IACR;AACO,WAAA,MAAM,KAAK,OAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,CAAW,YAAA;AAC/E,cAAQ,cAAc,CAAC,QAAQ,eAAe,IAAI,CAAC;AACnD,cAAQ,cAAc,QAAQ,eAAe,MAAM,OAAO;AAAA,IAAA,CAC1D;AAAA,EACF;AAAA,EAEA,MAAa,gBACZ,EAAE,OAAO,GAAG,WACX;AACK,UAAA,UAAU,MAAM,KAAK,cAAc;AACzC,QAAI,CAAC,SAAS;AACb,aAAO;IACR;AACM,UAAA,QAAQ,MAAM,KAAK,OAAO,gBAAgB,QAAQ,cAAc,MAAM,OAAO;AACnF,QAAI,OAAO;AACV,aAAO,MAAM,KAAK,gBAAgB,EAAE,GAAG,SAAS,OAAO,IAAI,eAAe,KAAK,EAAE,GAAG,OAAO;AAAA,IAC5F;AAEO,WAAA,MAAM,KAAK,eAAe,EAAE,OAAO,MAAM,QAAQ,GAAG,WAAW,OAAO;AAAA,EAC9E;AAAA,EAEA,MAAc,gBACb,EAAE,QAAQ,cAAc,gBAAgB,UAAU,MAAM,GACxD,SACC;AAEK,UAAA,4BAA4B,MAAM,KAAK,OAAO,YAAY,cAAc,OAAO,eAAe,IAAI;AACxG,UAAM,eAAmC,CAAA;AACzC,QAAI,2BAA2B;AAC9B,UAAI,eAAe,eAAe;AACjC,cAAM,eAAe,EAAE,CAAC,OAAO,OAAO,GAAG,0BAA0B;AACnE,cAAM,eAAe,MAAM,KAAK,OAAO,OAAO,QAAQ,YAAY;AACrD,qBAAA,KAAK,GAAG,YAAY;AAAA,MAAA,WACvB,CAAC,SAAS,UAAU;AAC9B,eAAO,CAAC,IAAI,iCAAiC,CAAA,GAAI,eAAe,OAAO,CAAC;AAAA,MACzE;AAAA,IACD;AAEA,UAAM,gBAAgB,MAAM,KAAK,OAAO,eAAe,cAAc,OAAO,CAAU,WAAA;AACrF,aAAO,cAAc,CAAC,eAAe,IAAI,CAAC;AACnC,aAAA,cAAc,eAAe,MAAM,OAAO;AAAA,IAAA,CACjD;AAEM,WAAA;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,EAEL;AAAA,EAEA,MAAc,eACb,SACA,SACC;AACM,WAAA,MAAM,KAAK,OAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,CAAW,YAAA;AAC/E,cAAQ,cAAc,CAAC,QAAQ,eAAe,IAAI,CAAC;AACnD,cAAQ,cAAc,QAAQ,eAAe,MAAM,OAAO;AAAA,IAAA,CAC1D;AAAA,EACF;AACD;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneHasOneInverseUpdateInputProcessor.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.ts"],"sourcesContent":["import {\n\tConstraintType,\n\tMutationConstraintViolationError,\n\tMutationEntryNotFoundError,\n\tMutationNothingToDo,\n\tMutationResultList,\n\tMutationResultType,\n\tNothingToDoReason,\n} from '../Result'\nimport { UpdateInputProcessor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { Mapper } from '../Mapper'\n\nexport class OneHasOneInverseUpdateInputProcessor {\n\tconstructor(\n\t\tprivate readonly primaryValue: Input.PrimaryValue,\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect({ input, ...ctx }: Model.OneHasOneInverseContext & { input: Input.UniqueWhere }) {\n\t\tconst newOwner = await this.mapper.getPrimaryValue(ctx.targetEntity, input)\n\t\tif (!newOwner) {\n\t\t\treturn [new MutationEntryNotFoundError([], input)]\n\t\t}\n\t\treturn await this.connectInternal(ctx, newOwner)\n\t}\n\n\tpublic async connectOrCreate(\n\t\t{ input, ...ctx }: Model.OneHasOneInverseContext & { input: Input.ConnectOrCreateInput },\n\t) {\n\t\tconst newOwner = await this.mapper.getPrimaryValue(ctx.targetEntity, input.connect)\n\t\tif (newOwner) {\n\t\t\treturn await this.connectInternal(ctx, newOwner)\n\t\t}\n\t\treturn await this.create({ ...ctx, input: input.create })\n\t}\n\n\n\tprivate async connectInternal(\n\t\t{ entity, targetEntity, targetRelation }: Model.OneHasOneInverseContext,\n\t\tnewOwner: Input.PrimaryValue,\n\t) {\n\t\tconst currentOwner = await this.mapper.getPrimaryValue(targetEntity, {\n\t\t\t[targetRelation.name]: { [entity.primary]: this.primaryValue },\n\t\t})\n\t\tif (newOwner === currentOwner) {\n\t\t\treturn [new MutationNothingToDo([], NothingToDoReason.alreadyExists)]\n\t\t}\n\t\tconst result: MutationResultList = []\n\t\tif (currentOwner) {\n\t\t\tif (!targetRelation.nullable) {\n\t\t\t\t// todo cascade delete support?\n\t\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t\t}\n\t\t\tconst disconnectFromCurrentOwner = await this.mapper.updateInternal(targetEntity, { [targetEntity.primary]: currentOwner }, builder => {\n\t\t\t\tbuilder.addPredicates([targetRelation.name])\n\t\t\t\tbuilder.addFieldValue(targetRelation.name, null)\n\t\t\t})\n\t\t\tresult.push(...disconnectFromCurrentOwner)\n\t\t}\n\t\tconst orphanedInverseSide = targetRelation.orphanRemoval\n\t\t\t? await this.mapper.selectField(targetEntity, { [targetEntity.primary]: newOwner }, targetRelation.name)\n\t\t\t: null\n\n\t\tconst connectToNewOwner = await this.mapper.updateInternal(targetEntity, { [targetEntity.primary]: newOwner }, builder => {\n\t\t\tbuilder.addPredicates([targetRelation.name])\n\t\t\tbuilder.addFieldValue(targetRelation.name, this.primaryValue)\n\t\t})\n\t\tresult.push(...connectToNewOwner)\n\n\t\tif (orphanedInverseSide) {\n\t\t\tconst deleteOrphanedInverseSide = await this.mapper.delete(entity, { [entity.primary]: orphanedInverseSide })\n\t\t\tresult.push(...deleteOrphanedInverseSide)\n\t\t}\n\t\treturn result\n\t}\n\n\tpublic async create({ entity, targetEntity, targetRelation, input }: Model.OneHasOneInverseContext & { input: Input.CreateDataInput }) {\n\t\tconst currentOwner = await this.mapper.getPrimaryValue(targetEntity, {\n\t\t\t[targetRelation.name]: { [entity.primary]: this.primaryValue },\n\t\t})\n\t\tif (currentOwner && !targetRelation.nullable) {\n\t\t\t// todo cascade delete support?\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\t\tconst result: MutationResultList = []\n\t\tif (currentOwner) {\n\t\t\tconst disconnectFromCurrentOwner = await this.mapper.updateInternal(targetEntity, { [targetEntity.primary]: currentOwner }, builder => {\n\t\t\t\tbuilder.addPredicates([targetRelation.name])\n\t\t\t\tbuilder.addFieldValue(targetRelation.name, null)\n\t\t\t})\n\t\t\tresult.push(...disconnectFromCurrentOwner)\n\t\t}\n\n\t\tconst connectToNewlyCreatedOwner = await this.mapper.insert(targetEntity, input, builder => {\n\t\t\tbuilder.addFieldValue(targetRelation.name, this.primaryValue)\n\t\t\tbuilder.addPredicates([targetRelation.name])\n\t\t})\n\t\tresult.push(...connectToNewlyCreatedOwner)\n\n\t\treturn result\n\t}\n\n\tpublic async update({ entity, targetEntity, targetRelation, input }: Model.OneHasOneInverseContext & { input: Input.UpdateDataInput }) {\n\t\treturn await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ [targetRelation.name]: { [entity.primary]: this.primaryValue } },\n\t\t\tinput,\n\t\t)\n\t}\n\n\tpublic async upsert(context: Model.OneHasOneInverseContext & { input: UpdateInputProcessor.UpsertInput }) {\n\t\tconst { targetEntity, targetRelation, entity, input: { update, create } } = context\n\t\tconst result = await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ [targetRelation.name]: { [entity.primary]: this.primaryValue } },\n\t\t\tupdate,\n\t\t)\n\t\tif (result[0].result === MutationResultType.notFoundError) {\n\t\t\treturn await this.create({\n\t\t\t\t...context,\n\t\t\t\tinput: create,\n\t\t\t})\n\t\t}\n\t\treturn result\n\t}\n\n\tpublic async disconnect({ entity, targetEntity, relation, targetRelation }: Model.OneHasOneInverseContext & { input: undefined }) {\n\t\tif (!relation.nullable && !targetRelation.orphanRemoval) {\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\t\tconst currentOwner = await this.mapper.getPrimaryValue(targetEntity, {\n\t\t\t[targetRelation.name]: { [entity.primary]: this.primaryValue },\n\t\t})\n\t\tif (!currentOwner) {\n\t\t\treturn [new MutationNothingToDo([], NothingToDoReason.emptyRelation)]\n\t\t}\n\t\tif (currentOwner && !targetRelation.nullable) {\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\n\t\tconst result = await this.mapper.updateInternal(\n\t\t\ttargetEntity,\n\t\t\t{ [targetEntity.primary]: currentOwner },\n\t\t\tbuilder => {\n\t\t\t\tbuilder.addPredicates([targetRelation.name])\n\t\t\t\tbuilder.addFieldValue(targetRelation.name, null)\n\t\t\t},\n\t\t)\n\t\tif (targetRelation.orphanRemoval) {\n\t\t\tresult.push(...(await this.mapper.delete(entity, { [entity.primary]: this.primaryValue })))\n\t\t}\n\t\treturn result\n\t}\n\n\tpublic async delete({ entity, targetEntity, relation, targetRelation }: Model.OneHasOneInverseContext & { input: undefined }) {\n\t\tif (!relation.nullable && !targetRelation.orphanRemoval) {\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\t\t// orphan removal is handled in mapper.delete\n\t\treturn await this.mapper.delete(targetEntity, { [targetRelation.name]: { [entity.primary]: this.primaryValue } })\n\t}\n}\n"],"names":["MutationEntryNotFoundError","MutationNothingToDo","NothingToDoReason","MutationConstraintViolationError","ConstraintType","MutationResultType"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneHasOneInverseUpdateInputProcessor.js","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.ts"],"sourcesContent":["import {\n\tConstraintType,\n\tMutationConstraintViolationError,\n\tMutationEntryNotFoundError,\n\tMutationNothingToDo,\n\tMutationResultList,\n\tMutationResultType,\n\tNothingToDoReason,\n} from '../Result'\nimport { UpdateInputProcessor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { Mapper } from '../Mapper'\n\nexport class OneHasOneInverseUpdateInputProcessor {\n\tconstructor(\n\t\tprivate readonly primaryValue: Input.PrimaryValue,\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect({ input, ...ctx }: Model.OneHasOneInverseContext & { input: Input.UniqueWhere }) {\n\t\tconst newOwner = await this.mapper.getPrimaryValue(ctx.targetEntity, input)\n\t\tif (!newOwner) {\n\t\t\treturn [new MutationEntryNotFoundError([], input)]\n\t\t}\n\t\treturn await this.connectInternal(ctx, newOwner)\n\t}\n\n\tpublic async connectOrCreate(\n\t\t{ input, ...ctx }: Model.OneHasOneInverseContext & { input: Input.ConnectOrCreateInput },\n\t) {\n\t\tconst newOwner = await this.mapper.getPrimaryValue(ctx.targetEntity, input.connect)\n\t\tif (newOwner) {\n\t\t\treturn await this.connectInternal(ctx, newOwner)\n\t\t}\n\t\treturn await this.create({ ...ctx, input: input.create })\n\t}\n\n\n\tprivate async connectInternal(\n\t\t{ entity, targetEntity, targetRelation }: Model.OneHasOneInverseContext,\n\t\tnewOwner: Input.PrimaryValue,\n\t) {\n\t\tconst currentOwner = await this.mapper.getPrimaryValue(targetEntity, {\n\t\t\t[targetRelation.name]: { [entity.primary]: this.primaryValue },\n\t\t})\n\t\tif (newOwner === currentOwner) {\n\t\t\treturn [new MutationNothingToDo([], NothingToDoReason.alreadyExists)]\n\t\t}\n\t\tconst result: MutationResultList = []\n\t\tif (currentOwner) {\n\t\t\tif (!targetRelation.nullable) {\n\t\t\t\t// todo cascade delete support?\n\t\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t\t}\n\t\t\tconst disconnectFromCurrentOwner = await this.mapper.updateInternal(targetEntity, { [targetEntity.primary]: currentOwner }, builder => {\n\t\t\t\tbuilder.addPredicates([targetRelation.name])\n\t\t\t\tbuilder.addFieldValue(targetRelation.name, null)\n\t\t\t})\n\t\t\tresult.push(...disconnectFromCurrentOwner)\n\t\t}\n\t\tconst orphanedInverseSide = targetRelation.orphanRemoval\n\t\t\t? await this.mapper.selectField(targetEntity, { [targetEntity.primary]: newOwner }, targetRelation.name)\n\t\t\t: null\n\n\t\tconst connectToNewOwner = await this.mapper.updateInternal(targetEntity, { [targetEntity.primary]: newOwner }, builder => {\n\t\t\tbuilder.addPredicates([targetRelation.name])\n\t\t\tbuilder.addFieldValue(targetRelation.name, this.primaryValue)\n\t\t})\n\t\tresult.push(...connectToNewOwner)\n\n\t\tif (orphanedInverseSide) {\n\t\t\tconst deleteOrphanedInverseSide = await this.mapper.delete(entity, { [entity.primary]: orphanedInverseSide })\n\t\t\tresult.push(...deleteOrphanedInverseSide)\n\t\t}\n\t\treturn result\n\t}\n\n\tpublic async create({ entity, targetEntity, targetRelation, input }: Model.OneHasOneInverseContext & { input: Input.CreateDataInput }) {\n\t\tconst currentOwner = await this.mapper.getPrimaryValue(targetEntity, {\n\t\t\t[targetRelation.name]: { [entity.primary]: this.primaryValue },\n\t\t})\n\t\tif (currentOwner && !targetRelation.nullable) {\n\t\t\t// todo cascade delete support?\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\t\tconst result: MutationResultList = []\n\t\tif (currentOwner) {\n\t\t\tconst disconnectFromCurrentOwner = await this.mapper.updateInternal(targetEntity, { [targetEntity.primary]: currentOwner }, builder => {\n\t\t\t\tbuilder.addPredicates([targetRelation.name])\n\t\t\t\tbuilder.addFieldValue(targetRelation.name, null)\n\t\t\t})\n\t\t\tresult.push(...disconnectFromCurrentOwner)\n\t\t}\n\n\t\tconst connectToNewlyCreatedOwner = await this.mapper.insert(targetEntity, input, builder => {\n\t\t\tbuilder.addFieldValue(targetRelation.name, this.primaryValue)\n\t\t\tbuilder.addPredicates([targetRelation.name])\n\t\t})\n\t\tresult.push(...connectToNewlyCreatedOwner)\n\n\t\treturn result\n\t}\n\n\tpublic async update({ entity, targetEntity, targetRelation, input }: Model.OneHasOneInverseContext & { input: Input.UpdateDataInput }) {\n\t\treturn await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ [targetRelation.name]: { [entity.primary]: this.primaryValue } },\n\t\t\tinput,\n\t\t)\n\t}\n\n\tpublic async upsert(context: Model.OneHasOneInverseContext & { input: UpdateInputProcessor.UpsertInput }) {\n\t\tconst { targetEntity, targetRelation, entity, input: { update, create } } = context\n\t\tconst result = await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ [targetRelation.name]: { [entity.primary]: this.primaryValue } },\n\t\t\tupdate,\n\t\t)\n\t\tif (result[0].result === MutationResultType.notFoundError) {\n\t\t\treturn await this.create({\n\t\t\t\t...context,\n\t\t\t\tinput: create,\n\t\t\t})\n\t\t}\n\t\treturn result\n\t}\n\n\tpublic async disconnect({ entity, targetEntity, relation, targetRelation }: Model.OneHasOneInverseContext & { input: undefined }) {\n\t\tif (!relation.nullable && !targetRelation.orphanRemoval) {\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\t\tconst currentOwner = await this.mapper.getPrimaryValue(targetEntity, {\n\t\t\t[targetRelation.name]: { [entity.primary]: this.primaryValue },\n\t\t})\n\t\tif (!currentOwner) {\n\t\t\treturn [new MutationNothingToDo([], NothingToDoReason.emptyRelation)]\n\t\t}\n\t\tif (currentOwner && !targetRelation.nullable) {\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\n\t\tconst result = await this.mapper.updateInternal(\n\t\t\ttargetEntity,\n\t\t\t{ [targetEntity.primary]: currentOwner },\n\t\t\tbuilder => {\n\t\t\t\tbuilder.addPredicates([targetRelation.name])\n\t\t\t\tbuilder.addFieldValue(targetRelation.name, null)\n\t\t\t},\n\t\t)\n\t\tif (targetRelation.orphanRemoval) {\n\t\t\tresult.push(...(await this.mapper.delete(entity, { [entity.primary]: this.primaryValue })))\n\t\t}\n\t\treturn result\n\t}\n\n\tpublic async delete({ entity, targetEntity, relation, targetRelation }: Model.OneHasOneInverseContext & { input: undefined }) {\n\t\tif (!relation.nullable && !targetRelation.orphanRemoval) {\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\t\t// orphan removal is handled in mapper.delete\n\t\treturn await this.mapper.delete(targetEntity, { [targetRelation.name]: { [entity.primary]: this.primaryValue } })\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Result = require("../Result.cjs");
4
- const DataManipulationBuilder = require("../DataManipulationBuilder.cjs");
5
- class OneHasOneOwningCreateInputProcessor {
6
- constructor(insertBuilder, mapper) {
7
- this.insertBuilder = insertBuilder;
8
- this.mapper = mapper;
9
- }
10
- async connect(context) {
11
- const { input, relation, targetEntity } = context;
12
- const result = [];
13
- await this.insertBuilder.addFieldValue(relation.name, async () => {
14
- const inverseSide = await this.mapper.getPrimaryValue(targetEntity, input);
15
- if (!inverseSide) {
16
- result.push(new Result.MutationEntryNotFoundError([], input));
17
- return DataManipulationBuilder.AbortDataManipulation;
18
- }
19
- return this.connectInternal({ ...context, input: inverseSide }, result);
20
- });
21
- return result;
22
- }
23
- async create(context) {
24
- const result = [];
25
- await this.insertBuilder.addFieldValue(context.relation.name, async () => {
26
- return await this.createInternal(context, result);
27
- });
28
- return result;
29
- }
30
- async connectOrCreate({ input, ...context }) {
31
- const result = [];
32
- await this.insertBuilder.addFieldValue(context.relation.name, async () => {
33
- const inverseSide = await this.mapper.getPrimaryValue(context.targetEntity, input.connect);
34
- if (inverseSide) {
35
- return await this.connectInternal({ ...context, input: inverseSide }, result);
36
- }
37
- return await this.createInternal({ ...context, input: input.create }, result);
38
- });
39
- return result;
40
- }
41
- async createInternal(context, result) {
42
- const insertResult = await this.mapper.insert(context.targetEntity, context.input);
43
- result.push(...insertResult);
44
- const primary = Result.getInsertPrimary(insertResult);
45
- if (!primary) {
46
- return DataManipulationBuilder.AbortDataManipulation;
47
- }
48
- return primary;
49
- }
50
- async connectInternal({ entity, relation, targetEntity, input }, result) {
51
- const currentOwnerOfInverseSide = await this.mapper.getPrimaryValue(entity, {
52
- [relation.name]: { [targetEntity.primary]: input }
53
- });
54
- if (!currentOwnerOfInverseSide) {
55
- return input;
56
- }
57
- if (!relation.nullable) {
58
- result.push(new Result.MutationConstraintViolationError([], Result.ConstraintType.notNull));
59
- return DataManipulationBuilder.AbortDataManipulation;
60
- }
61
- const currentOwnerUnique = { [entity.primary]: currentOwnerOfInverseSide };
62
- const currentOwnerDisconnectResult = await this.mapper.updateInternal(entity, currentOwnerUnique, (builder) => {
63
- builder.addPredicates([relation.name]);
64
- builder.addFieldValue(relation.name, null);
65
- });
66
- result.push(...currentOwnerDisconnectResult);
67
- return input;
68
- }
69
- }
70
- exports.OneHasOneOwningCreateInputProcessor = OneHasOneOwningCreateInputProcessor;
71
- //# sourceMappingURL=OneHasOneOwningCreateInputProcessor.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneHasOneOwningCreateInputProcessor.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/OneHasOneOwningCreateInputProcessor.ts"],"sourcesContent":["import {\n\tConstraintType,\n\tgetInsertPrimary,\n\tMutationConstraintViolationError,\n\tMutationEntryNotFoundError,\n\tMutationResultList,\n} from '../Result'\nimport { InsertBuilder } from '../insert'\nimport { Mapper } from '../Mapper'\nimport { Input, Model } from '@contember/schema'\nimport { AbortDataManipulation } from '../DataManipulationBuilder'\n\nexport class OneHasOneOwningCreateInputProcessor {\n\tconstructor(\n\t\tprivate readonly insertBuilder: InsertBuilder,\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(context: Model.OneHasOneOwningContext & { input: Input.UniqueWhere }) {\n\t\tconst { input, relation, targetEntity } = context\n\t\tconst result: MutationResultList = []\n\t\tawait this.insertBuilder.addFieldValue(relation.name, async () => {\n\t\t\tconst inverseSide = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\t\tif (!inverseSide) {\n\t\t\t\tresult.push(new MutationEntryNotFoundError([], input))\n\t\t\t\treturn AbortDataManipulation\n\t\t\t}\n\t\t\treturn this.connectInternal({ ...context, input: inverseSide }, result)\n\t\t})\n\t\treturn result\n\t}\n\n\tpublic async create(context: Model.OneHasOneOwningContext & { input: Input.CreateDataInput }) {\n\t\tconst result: MutationResultList = []\n\t\tawait this.insertBuilder.addFieldValue(context.relation.name, async () => {\n\t\t\treturn await this.createInternal(context, result)\n\t\t})\n\t\treturn result\n\t}\n\n\tpublic async connectOrCreate({ input, ...context }: Model.OneHasOneOwningContext & { input: Input.ConnectOrCreateInput }) {\n\t\tconst result: MutationResultList = []\n\t\tawait this.insertBuilder.addFieldValue(context.relation.name, async () => {\n\t\t\tconst inverseSide = await this.mapper.getPrimaryValue(context.targetEntity, input.connect)\n\t\t\tif (inverseSide) {\n\t\t\t\treturn await this.connectInternal({ ...context, input: inverseSide }, result)\n\t\t\t}\n\t\t\treturn await this.createInternal({ ...context, input: input.create }, result)\n\t\t})\n\t\treturn result\n\t}\n\n\tprivate async createInternal(\n\t\tcontext: Model.OneHasOneOwningContext & { input: Input.CreateDataInput },\n\t\tresult: MutationResultList,\n\t) {\n\t\tconst insertResult = await this.mapper.insert(context.targetEntity, context.input)\n\t\tresult.push(...insertResult)\n\t\tconst primary = getInsertPrimary(insertResult)\n\t\tif (!primary) {\n\t\t\treturn AbortDataManipulation\n\t\t}\n\t\treturn primary\n\t}\n\n\tprivate async connectInternal(\n\t\t{ entity, relation, targetEntity, input }: Model.OneHasOneOwningContext & { input: Input.PrimaryValue },\n\t\tresult: MutationResultList,\n\t) {\n\t\tconst currentOwnerOfInverseSide = await this.mapper.getPrimaryValue(entity, {\n\t\t\t[relation.name]: { [targetEntity.primary]: input },\n\t\t})\n\t\tif (!currentOwnerOfInverseSide) {\n\t\t\treturn input\n\t\t}\n\n\t\tif (!relation.nullable) {\n\t\t\tresult.push(new MutationConstraintViolationError([], ConstraintType.notNull))\n\t\t\treturn AbortDataManipulation\n\t\t}\n\n\t\tconst currentOwnerUnique = { [entity.primary]: currentOwnerOfInverseSide }\n\t\tconst currentOwnerDisconnectResult = await this.mapper.updateInternal(entity, currentOwnerUnique, builder => {\n\t\t\tbuilder.addPredicates([relation.name])\n\t\t\tbuilder.addFieldValue(relation.name, null)\n\t\t})\n\t\tresult.push(...currentOwnerDisconnectResult)\n\n\t\treturn input\n\t}\n}\n"],"names":["MutationEntryNotFoundError","AbortDataManipulation","getInsertPrimary","MutationConstraintViolationError","ConstraintType"],"mappings":";;;;AAYO,MAAM,oCAAoC;AAAA,EAChD,YACkB,eACA,QAChB;AAFgB,SAAA,gBAAA;AACA,SAAA,SAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QAAQ,SAAsE;AAC1F,UAAM,EAAE,OAAO,UAAU,aAAA,IAAiB;AAC1C,UAAM,SAA6B,CAAA;AACnC,UAAM,KAAK,cAAc,cAAc,SAAS,MAAM,YAAY;AACjE,YAAM,cAAc,MAAM,KAAK,OAAO,gBAAgB,cAAc,KAAK;AACzE,UAAI,CAAC,aAAa;AACjB,eAAO,KAAK,IAAIA,OAAAA,2BAA2B,CAAA,GAAI,KAAK,CAAC;AAC9C,eAAAC;MACR;AACO,aAAA,KAAK,gBAAgB,EAAE,GAAG,SAAS,OAAO,YAAA,GAAe,MAAM;AAAA,IAAA,CACtE;AACM,WAAA;AAAA,EACR;AAAA,EAEA,MAAa,OAAO,SAA0E;AAC7F,UAAM,SAA6B,CAAA;AACnC,UAAM,KAAK,cAAc,cAAc,QAAQ,SAAS,MAAM,YAAY;AACzE,aAAO,MAAM,KAAK,eAAe,SAAS,MAAM;AAAA,IAAA,CAChD;AACM,WAAA;AAAA,EACR;AAAA,EAEA,MAAa,gBAAgB,EAAE,OAAO,GAAG,WAAiF;AACzH,UAAM,SAA6B,CAAA;AACnC,UAAM,KAAK,cAAc,cAAc,QAAQ,SAAS,MAAM,YAAY;AACnE,YAAA,cAAc,MAAM,KAAK,OAAO,gBAAgB,QAAQ,cAAc,MAAM,OAAO;AACzF,UAAI,aAAa;AACT,eAAA,MAAM,KAAK,gBAAgB,EAAE,GAAG,SAAS,OAAO,eAAe,MAAM;AAAA,MAC7E;AACO,aAAA,MAAM,KAAK,eAAe,EAAE,GAAG,SAAS,OAAO,MAAM,UAAU,MAAM;AAAA,IAAA,CAC5E;AACM,WAAA;AAAA,EACR;AAAA,EAEA,MAAc,eACb,SACA,QACC;AACK,UAAA,eAAe,MAAM,KAAK,OAAO,OAAO,QAAQ,cAAc,QAAQ,KAAK;AAC1E,WAAA,KAAK,GAAG,YAAY;AACrB,UAAA,UAAUC,wBAAiB,YAAY;AAC7C,QAAI,CAAC,SAAS;AACN,aAAAD;IACR;AACO,WAAA;AAAA,EACR;AAAA,EAEA,MAAc,gBACb,EAAE,QAAQ,UAAU,cAAc,SAClC,QACC;AACD,UAAM,4BAA4B,MAAM,KAAK,OAAO,gBAAgB,QAAQ;AAAA,MAC3E,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC,aAAa,OAAO,GAAG,MAAM;AAAA,IAAA,CACjD;AACD,QAAI,CAAC,2BAA2B;AACxB,aAAA;AAAA,IACR;AAEI,QAAA,CAAC,SAAS,UAAU;AACvB,aAAO,KAAK,IAAIE,OAAA,iCAAiC,CAAI,GAAAC,OAAA,eAAe,OAAO,CAAC;AACrE,aAAAH;IACR;AAEA,UAAM,qBAAqB,EAAE,CAAC,OAAO,OAAO,GAAG,0BAA0B;AACzE,UAAM,+BAA+B,MAAM,KAAK,OAAO,eAAe,QAAQ,oBAAoB,CAAW,YAAA;AAC5G,cAAQ,cAAc,CAAC,SAAS,IAAI,CAAC;AAC7B,cAAA,cAAc,SAAS,MAAM,IAAI;AAAA,IAAA,CACzC;AACM,WAAA,KAAK,GAAG,4BAA4B;AAEpC,WAAA;AAAA,EACR;AACD;;"}
@@ -1,71 +0,0 @@
1
- import { MutationEntryNotFoundError, getInsertPrimary, MutationConstraintViolationError, ConstraintType } from "../Result.js";
2
- import { AbortDataManipulation } from "../DataManipulationBuilder.js";
3
- class OneHasOneOwningCreateInputProcessor {
4
- constructor(insertBuilder, mapper) {
5
- this.insertBuilder = insertBuilder;
6
- this.mapper = mapper;
7
- }
8
- async connect(context) {
9
- const { input, relation, targetEntity } = context;
10
- const result = [];
11
- await this.insertBuilder.addFieldValue(relation.name, async () => {
12
- const inverseSide = await this.mapper.getPrimaryValue(targetEntity, input);
13
- if (!inverseSide) {
14
- result.push(new MutationEntryNotFoundError([], input));
15
- return AbortDataManipulation;
16
- }
17
- return this.connectInternal({ ...context, input: inverseSide }, result);
18
- });
19
- return result;
20
- }
21
- async create(context) {
22
- const result = [];
23
- await this.insertBuilder.addFieldValue(context.relation.name, async () => {
24
- return await this.createInternal(context, result);
25
- });
26
- return result;
27
- }
28
- async connectOrCreate({ input, ...context }) {
29
- const result = [];
30
- await this.insertBuilder.addFieldValue(context.relation.name, async () => {
31
- const inverseSide = await this.mapper.getPrimaryValue(context.targetEntity, input.connect);
32
- if (inverseSide) {
33
- return await this.connectInternal({ ...context, input: inverseSide }, result);
34
- }
35
- return await this.createInternal({ ...context, input: input.create }, result);
36
- });
37
- return result;
38
- }
39
- async createInternal(context, result) {
40
- const insertResult = await this.mapper.insert(context.targetEntity, context.input);
41
- result.push(...insertResult);
42
- const primary = getInsertPrimary(insertResult);
43
- if (!primary) {
44
- return AbortDataManipulation;
45
- }
46
- return primary;
47
- }
48
- async connectInternal({ entity, relation, targetEntity, input }, result) {
49
- const currentOwnerOfInverseSide = await this.mapper.getPrimaryValue(entity, {
50
- [relation.name]: { [targetEntity.primary]: input }
51
- });
52
- if (!currentOwnerOfInverseSide) {
53
- return input;
54
- }
55
- if (!relation.nullable) {
56
- result.push(new MutationConstraintViolationError([], ConstraintType.notNull));
57
- return AbortDataManipulation;
58
- }
59
- const currentOwnerUnique = { [entity.primary]: currentOwnerOfInverseSide };
60
- const currentOwnerDisconnectResult = await this.mapper.updateInternal(entity, currentOwnerUnique, (builder) => {
61
- builder.addPredicates([relation.name]);
62
- builder.addFieldValue(relation.name, null);
63
- });
64
- result.push(...currentOwnerDisconnectResult);
65
- return input;
66
- }
67
- }
68
- export {
69
- OneHasOneOwningCreateInputProcessor
70
- };
71
- //# sourceMappingURL=OneHasOneOwningCreateInputProcessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneHasOneOwningCreateInputProcessor.js","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/OneHasOneOwningCreateInputProcessor.ts"],"sourcesContent":["import {\n\tConstraintType,\n\tgetInsertPrimary,\n\tMutationConstraintViolationError,\n\tMutationEntryNotFoundError,\n\tMutationResultList,\n} from '../Result'\nimport { InsertBuilder } from '../insert'\nimport { Mapper } from '../Mapper'\nimport { Input, Model } from '@contember/schema'\nimport { AbortDataManipulation } from '../DataManipulationBuilder'\n\nexport class OneHasOneOwningCreateInputProcessor {\n\tconstructor(\n\t\tprivate readonly insertBuilder: InsertBuilder,\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(context: Model.OneHasOneOwningContext & { input: Input.UniqueWhere }) {\n\t\tconst { input, relation, targetEntity } = context\n\t\tconst result: MutationResultList = []\n\t\tawait this.insertBuilder.addFieldValue(relation.name, async () => {\n\t\t\tconst inverseSide = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\t\tif (!inverseSide) {\n\t\t\t\tresult.push(new MutationEntryNotFoundError([], input))\n\t\t\t\treturn AbortDataManipulation\n\t\t\t}\n\t\t\treturn this.connectInternal({ ...context, input: inverseSide }, result)\n\t\t})\n\t\treturn result\n\t}\n\n\tpublic async create(context: Model.OneHasOneOwningContext & { input: Input.CreateDataInput }) {\n\t\tconst result: MutationResultList = []\n\t\tawait this.insertBuilder.addFieldValue(context.relation.name, async () => {\n\t\t\treturn await this.createInternal(context, result)\n\t\t})\n\t\treturn result\n\t}\n\n\tpublic async connectOrCreate({ input, ...context }: Model.OneHasOneOwningContext & { input: Input.ConnectOrCreateInput }) {\n\t\tconst result: MutationResultList = []\n\t\tawait this.insertBuilder.addFieldValue(context.relation.name, async () => {\n\t\t\tconst inverseSide = await this.mapper.getPrimaryValue(context.targetEntity, input.connect)\n\t\t\tif (inverseSide) {\n\t\t\t\treturn await this.connectInternal({ ...context, input: inverseSide }, result)\n\t\t\t}\n\t\t\treturn await this.createInternal({ ...context, input: input.create }, result)\n\t\t})\n\t\treturn result\n\t}\n\n\tprivate async createInternal(\n\t\tcontext: Model.OneHasOneOwningContext & { input: Input.CreateDataInput },\n\t\tresult: MutationResultList,\n\t) {\n\t\tconst insertResult = await this.mapper.insert(context.targetEntity, context.input)\n\t\tresult.push(...insertResult)\n\t\tconst primary = getInsertPrimary(insertResult)\n\t\tif (!primary) {\n\t\t\treturn AbortDataManipulation\n\t\t}\n\t\treturn primary\n\t}\n\n\tprivate async connectInternal(\n\t\t{ entity, relation, targetEntity, input }: Model.OneHasOneOwningContext & { input: Input.PrimaryValue },\n\t\tresult: MutationResultList,\n\t) {\n\t\tconst currentOwnerOfInverseSide = await this.mapper.getPrimaryValue(entity, {\n\t\t\t[relation.name]: { [targetEntity.primary]: input },\n\t\t})\n\t\tif (!currentOwnerOfInverseSide) {\n\t\t\treturn input\n\t\t}\n\n\t\tif (!relation.nullable) {\n\t\t\tresult.push(new MutationConstraintViolationError([], ConstraintType.notNull))\n\t\t\treturn AbortDataManipulation\n\t\t}\n\n\t\tconst currentOwnerUnique = { [entity.primary]: currentOwnerOfInverseSide }\n\t\tconst currentOwnerDisconnectResult = await this.mapper.updateInternal(entity, currentOwnerUnique, builder => {\n\t\t\tbuilder.addPredicates([relation.name])\n\t\t\tbuilder.addFieldValue(relation.name, null)\n\t\t})\n\t\tresult.push(...currentOwnerDisconnectResult)\n\n\t\treturn input\n\t}\n}\n"],"names":[],"mappings":";;AAYO,MAAM,oCAAoC;AAAA,EAChD,YACkB,eACA,QAChB;AAFgB,SAAA,gBAAA;AACA,SAAA,SAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QAAQ,SAAsE;AAC1F,UAAM,EAAE,OAAO,UAAU,aAAA,IAAiB;AAC1C,UAAM,SAA6B,CAAA;AACnC,UAAM,KAAK,cAAc,cAAc,SAAS,MAAM,YAAY;AACjE,YAAM,cAAc,MAAM,KAAK,OAAO,gBAAgB,cAAc,KAAK;AACzE,UAAI,CAAC,aAAa;AACjB,eAAO,KAAK,IAAI,2BAA2B,CAAA,GAAI,KAAK,CAAC;AAC9C,eAAA;AAAA,MACR;AACO,aAAA,KAAK,gBAAgB,EAAE,GAAG,SAAS,OAAO,YAAA,GAAe,MAAM;AAAA,IAAA,CACtE;AACM,WAAA;AAAA,EACR;AAAA,EAEA,MAAa,OAAO,SAA0E;AAC7F,UAAM,SAA6B,CAAA;AACnC,UAAM,KAAK,cAAc,cAAc,QAAQ,SAAS,MAAM,YAAY;AACzE,aAAO,MAAM,KAAK,eAAe,SAAS,MAAM;AAAA,IAAA,CAChD;AACM,WAAA;AAAA,EACR;AAAA,EAEA,MAAa,gBAAgB,EAAE,OAAO,GAAG,WAAiF;AACzH,UAAM,SAA6B,CAAA;AACnC,UAAM,KAAK,cAAc,cAAc,QAAQ,SAAS,MAAM,YAAY;AACnE,YAAA,cAAc,MAAM,KAAK,OAAO,gBAAgB,QAAQ,cAAc,MAAM,OAAO;AACzF,UAAI,aAAa;AACT,eAAA,MAAM,KAAK,gBAAgB,EAAE,GAAG,SAAS,OAAO,eAAe,MAAM;AAAA,MAC7E;AACO,aAAA,MAAM,KAAK,eAAe,EAAE,GAAG,SAAS,OAAO,MAAM,UAAU,MAAM;AAAA,IAAA,CAC5E;AACM,WAAA;AAAA,EACR;AAAA,EAEA,MAAc,eACb,SACA,QACC;AACK,UAAA,eAAe,MAAM,KAAK,OAAO,OAAO,QAAQ,cAAc,QAAQ,KAAK;AAC1E,WAAA,KAAK,GAAG,YAAY;AACrB,UAAA,UAAU,iBAAiB,YAAY;AAC7C,QAAI,CAAC,SAAS;AACN,aAAA;AAAA,IACR;AACO,WAAA;AAAA,EACR;AAAA,EAEA,MAAc,gBACb,EAAE,QAAQ,UAAU,cAAc,SAClC,QACC;AACD,UAAM,4BAA4B,MAAM,KAAK,OAAO,gBAAgB,QAAQ;AAAA,MAC3E,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC,aAAa,OAAO,GAAG,MAAM;AAAA,IAAA,CACjD;AACD,QAAI,CAAC,2BAA2B;AACxB,aAAA;AAAA,IACR;AAEI,QAAA,CAAC,SAAS,UAAU;AACvB,aAAO,KAAK,IAAI,iCAAiC,CAAI,GAAA,eAAe,OAAO,CAAC;AACrE,aAAA;AAAA,IACR;AAEA,UAAM,qBAAqB,EAAE,CAAC,OAAO,OAAO,GAAG,0BAA0B;AACzE,UAAM,+BAA+B,MAAM,KAAK,OAAO,eAAe,QAAQ,oBAAoB,CAAW,YAAA;AAC5G,cAAQ,cAAc,CAAC,SAAS,IAAI,CAAC;AAC7B,cAAA,cAAc,SAAS,MAAM,IAAI;AAAA,IAAA,CACzC;AACM,WAAA,KAAK,GAAG,4BAA4B;AAEpC,WAAA;AAAA,EACR;AACD;"}