@contember/engine-content-api 2.0.0-alpha.31 → 2.0.0-alpha.35

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 (661) hide show
  1. package/dist/development/src/ExecutionContainer.cjs.map +1 -1
  2. package/dist/development/src/ExecutionContainer.js.map +1 -1
  3. package/dist/development/src/acl/Authorizator.cjs.map +1 -1
  4. package/dist/development/src/acl/Authorizator.js.map +1 -1
  5. package/dist/development/src/acl/EvaluatedPredicateReplacer.cjs.map +1 -1
  6. package/dist/development/src/acl/EvaluatedPredicateReplacer.js.map +1 -1
  7. package/dist/development/src/acl/PermissionFactory.cjs.map +1 -1
  8. package/dist/development/src/acl/PermissionFactory.js.map +1 -1
  9. package/dist/development/src/acl/PredicateFactory.cjs.map +1 -1
  10. package/dist/development/src/acl/PredicateFactory.js.map +1 -1
  11. package/dist/development/src/acl/PredicatesInjector.cjs.map +1 -1
  12. package/dist/development/src/acl/PredicatesInjector.js.map +1 -1
  13. package/dist/development/src/acl/VariableInjector.cjs.map +1 -1
  14. package/dist/development/src/acl/VariableInjector.js.map +1 -1
  15. package/dist/development/src/acl/VariableUtils.cjs.map +1 -1
  16. package/dist/development/src/acl/VariableUtils.js.map +1 -1
  17. package/dist/development/src/exception.cjs.map +1 -1
  18. package/dist/development/src/exception.js.map +1 -1
  19. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.cjs.map +1 -1
  20. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.js.map +1 -1
  21. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.cjs.map +1 -1
  22. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js.map +1 -1
  23. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs.map +1 -1
  24. package/dist/development/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js.map +1 -1
  25. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.cjs.map +1 -1
  26. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.js.map +1 -1
  27. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.cjs.map +1 -1
  28. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js.map +1 -1
  29. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.cjs.map +1 -1
  30. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.js.map +1 -1
  31. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.cjs.map +1 -1
  32. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.js.map +1 -1
  33. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.cjs.map +1 -1
  34. package/dist/development/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.js.map +1 -1
  35. package/dist/development/src/input-validation/ColumnValueResolver.cjs.map +1 -1
  36. package/dist/development/src/input-validation/ColumnValueResolver.js.map +1 -1
  37. package/dist/development/src/input-validation/EntityRulesResolver.cjs.map +1 -1
  38. package/dist/development/src/input-validation/EntityRulesResolver.js.map +1 -1
  39. package/dist/development/src/input-validation/QueryAstFactory.cjs.map +1 -1
  40. package/dist/development/src/input-validation/QueryAstFactory.js.map +1 -1
  41. package/dist/development/src/input-validation/ValidationContext.cjs.map +1 -1
  42. package/dist/development/src/input-validation/ValidationContext.js.map +1 -1
  43. package/dist/development/src/input-validation/ValidationDataSelector.cjs.map +1 -1
  44. package/dist/development/src/input-validation/ValidationDataSelector.js.map +1 -1
  45. package/dist/development/src/input-validation/ValidationEvaluation.cjs.map +1 -1
  46. package/dist/development/src/input-validation/ValidationEvaluation.js.map +1 -1
  47. package/dist/development/src/input-validation/ValidationPath.cjs.map +1 -1
  48. package/dist/development/src/input-validation/ValidationPath.js.map +1 -1
  49. package/dist/development/src/input-validation/dependencies/DependencyCollector.cjs.map +1 -1
  50. package/dist/development/src/input-validation/dependencies/DependencyCollector.js.map +1 -1
  51. package/dist/development/src/input-validation/dependencies/DependencyMerger.cjs.map +1 -1
  52. package/dist/development/src/input-validation/dependencies/DependencyMerger.js.map +1 -1
  53. package/dist/development/src/input-validation/preValidation/CreateInputPreValidationProcessor.cjs.map +1 -1
  54. package/dist/development/src/input-validation/preValidation/CreateInputPreValidationProcessor.js.map +1 -1
  55. package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
  56. package/dist/development/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
  57. package/dist/development/src/input-validation/preValidation/UpdateInputPreValidationProcessor.cjs.map +1 -1
  58. package/dist/development/src/input-validation/preValidation/UpdateInputPreValidationProcessor.js.map +1 -1
  59. package/dist/development/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
  60. package/dist/development/src/inputProcessing/CreateInputVisitor.js.map +1 -1
  61. package/dist/development/src/inputProcessing/FieldNode.cjs.map +1 -1
  62. package/dist/development/src/inputProcessing/FieldNode.js.map +1 -1
  63. package/dist/development/src/inputProcessing/ObjectNode.cjs.map +1 -1
  64. package/dist/development/src/inputProcessing/ObjectNode.js.map +1 -1
  65. package/dist/development/src/inputProcessing/UniqueWhereExpander.cjs.map +1 -1
  66. package/dist/development/src/inputProcessing/UniqueWhereExpander.js.map +1 -1
  67. package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
  68. package/dist/development/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  69. package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
  70. package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.js.map +1 -1
  71. package/dist/development/src/introspection/IntrospectionSchemaFactory.cjs.map +1 -1
  72. package/dist/development/src/introspection/IntrospectionSchemaFactory.js.map +1 -1
  73. package/dist/development/src/introspection/introspection.schema.cjs.map +1 -1
  74. package/dist/development/src/introspection/introspection.schema.js.map +1 -1
  75. package/dist/development/src/mapper/CheckedPrimary.cjs.map +1 -1
  76. package/dist/development/src/mapper/CheckedPrimary.js.map +1 -1
  77. package/dist/development/src/mapper/ColumnValue.cjs.map +1 -1
  78. package/dist/development/src/mapper/ColumnValue.js.map +1 -1
  79. package/dist/development/src/mapper/ErrorUtils.cjs.map +1 -1
  80. package/dist/development/src/mapper/ErrorUtils.js.map +1 -1
  81. package/dist/development/src/mapper/EventManager.cjs.map +1 -1
  82. package/dist/development/src/mapper/EventManager.js.map +1 -1
  83. package/dist/development/src/mapper/JunctionTableManager.cjs.map +1 -1
  84. package/dist/development/src/mapper/JunctionTableManager.js.map +1 -1
  85. package/dist/development/src/mapper/Mapper.cjs.map +1 -1
  86. package/dist/development/src/mapper/Mapper.js.map +1 -1
  87. package/dist/development/src/mapper/MapperFactory.cjs.map +1 -1
  88. package/dist/development/src/mapper/MapperFactory.js.map +1 -1
  89. package/dist/development/src/mapper/MutationProcessorHelper.cjs.map +1 -1
  90. package/dist/development/src/mapper/MutationProcessorHelper.js.map +1 -1
  91. package/dist/development/src/mapper/Result.cjs.map +1 -1
  92. package/dist/development/src/mapper/Result.js.map +1 -1
  93. package/dist/development/src/mapper/delete/DeleteExecutor.cjs.map +1 -1
  94. package/dist/development/src/mapper/delete/DeleteExecutor.js.map +1 -1
  95. package/dist/development/src/mapper/delete/DeleteState.cjs.map +1 -1
  96. package/dist/development/src/mapper/delete/DeleteState.js.map +1 -1
  97. package/dist/development/src/mapper/delete/DeletedEntitiesStorage.cjs.map +1 -1
  98. package/dist/development/src/mapper/delete/DeletedEntitiesStorage.js.map +1 -1
  99. package/dist/development/src/mapper/delete/helpers.cjs.map +1 -1
  100. package/dist/development/src/mapper/delete/helpers.js.map +1 -1
  101. package/dist/development/src/mapper/insert/InsertBuilder.cjs.map +1 -1
  102. package/dist/development/src/mapper/insert/InsertBuilder.js.map +1 -1
  103. package/dist/development/src/mapper/insert/InsertBuilderFactory.cjs.map +1 -1
  104. package/dist/development/src/mapper/insert/InsertBuilderFactory.js.map +1 -1
  105. package/dist/development/src/mapper/insert/Inserter.cjs.map +1 -1
  106. package/dist/development/src/mapper/insert/Inserter.js.map +1 -1
  107. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
  108. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  109. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -1
  110. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -1
  111. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -1
  112. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -1
  113. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -1
  114. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -1
  115. package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -1
  116. package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -1
  117. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -1
  118. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -1
  119. package/dist/development/src/mapper/select/ConditionBuilder.cjs.map +1 -1
  120. package/dist/development/src/mapper/select/ConditionBuilder.js.map +1 -1
  121. package/dist/development/src/mapper/select/JoinBuilder.cjs.map +1 -1
  122. package/dist/development/src/mapper/select/JoinBuilder.js.map +1 -1
  123. package/dist/development/src/mapper/select/JoinVisitor.cjs.map +1 -1
  124. package/dist/development/src/mapper/select/JoinVisitor.js.map +1 -1
  125. package/dist/development/src/mapper/select/OrderByBuilder.cjs.map +1 -1
  126. package/dist/development/src/mapper/select/OrderByBuilder.js.map +1 -1
  127. package/dist/development/src/mapper/select/OrderByHelper.cjs.map +1 -1
  128. package/dist/development/src/mapper/select/OrderByHelper.js.map +1 -1
  129. package/dist/development/src/mapper/select/Path.cjs.map +1 -1
  130. package/dist/development/src/mapper/select/Path.js.map +1 -1
  131. package/dist/development/src/mapper/select/RelationFetcher.cjs.map +1 -1
  132. package/dist/development/src/mapper/select/RelationFetcher.js.map +1 -1
  133. package/dist/development/src/mapper/select/SelectBuilder.cjs.map +1 -1
  134. package/dist/development/src/mapper/select/SelectBuilder.js.map +1 -1
  135. package/dist/development/src/mapper/select/SelectHydrator.cjs.map +1 -1
  136. package/dist/development/src/mapper/select/SelectHydrator.js.map +1 -1
  137. package/dist/development/src/mapper/select/WhereBuilder.cjs.map +1 -1
  138. package/dist/development/src/mapper/select/WhereBuilder.js.map +1 -1
  139. package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  140. package/dist/development/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  141. package/dist/development/src/mapper/select/handlers/FieldsVisitorFactory.cjs.map +1 -1
  142. package/dist/development/src/mapper/select/handlers/FieldsVisitorFactory.js.map +1 -1
  143. package/dist/development/src/mapper/select/handlers/MetaHandler.cjs.map +1 -1
  144. package/dist/development/src/mapper/select/handlers/MetaHandler.js.map +1 -1
  145. package/dist/development/src/mapper/select/optimizer/ConditionOptimizer.cjs.map +1 -1
  146. package/dist/development/src/mapper/select/optimizer/ConditionOptimizer.js.map +1 -1
  147. package/dist/development/src/mapper/select/optimizer/WhereOptimizer.cjs.map +1 -1
  148. package/dist/development/src/mapper/select/optimizer/WhereOptimizer.js.map +1 -1
  149. package/dist/development/src/mapper/select/optimizer/WhereReplacer.cjs.map +1 -1
  150. package/dist/development/src/mapper/select/optimizer/WhereReplacer.js.map +1 -1
  151. package/dist/development/src/mapper/select/optimizer/helpers.cjs.map +1 -1
  152. package/dist/development/src/mapper/select/optimizer/helpers.js.map +1 -1
  153. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
  154. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
  155. package/dist/development/src/mapper/update/UpdateBuilder.cjs.map +1 -1
  156. package/dist/development/src/mapper/update/UpdateBuilder.js.map +1 -1
  157. package/dist/development/src/mapper/update/UpdateBuilderFactory.cjs.map +1 -1
  158. package/dist/development/src/mapper/update/UpdateBuilderFactory.js.map +1 -1
  159. package/dist/development/src/mapper/update/Updater.cjs.map +1 -1
  160. package/dist/development/src/mapper/update/Updater.js.map +1 -1
  161. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -1
  162. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -1
  163. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -1
  164. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -1
  165. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -1
  166. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -1
  167. package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -1
  168. package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -1
  169. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -1
  170. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -1
  171. package/dist/development/src/resolvers/GraphQlQueryAstFactory.cjs.map +1 -1
  172. package/dist/development/src/resolvers/GraphQlQueryAstFactory.js.map +1 -1
  173. package/dist/development/src/resolvers/MutationResolver.cjs.map +1 -1
  174. package/dist/development/src/resolvers/MutationResolver.js.map +1 -1
  175. package/dist/development/src/resolvers/ReadHelpers.cjs.map +1 -1
  176. package/dist/development/src/resolvers/ReadHelpers.js.map +1 -1
  177. package/dist/development/src/resolvers/ReadResolver.cjs.map +1 -1
  178. package/dist/development/src/resolvers/ReadResolver.js.map +1 -1
  179. package/dist/development/src/resolvers/ValidationResolver.cjs.map +1 -1
  180. package/dist/development/src/resolvers/ValidationResolver.js.map +1 -1
  181. package/dist/development/src/schema/ColumnTypeResolver.cjs.map +1 -1
  182. package/dist/development/src/schema/ColumnTypeResolver.js.map +1 -1
  183. package/dist/development/src/schema/ConditionTypeProvider.cjs.map +1 -1
  184. package/dist/development/src/schema/ConditionTypeProvider.js.map +1 -1
  185. package/dist/development/src/schema/CustomTypesProvider.cjs.map +1 -1
  186. package/dist/development/src/schema/CustomTypesProvider.js.map +1 -1
  187. package/dist/development/src/schema/EntityTypeProvider.cjs.map +1 -1
  188. package/dist/development/src/schema/EntityTypeProvider.js.map +1 -1
  189. package/dist/development/src/schema/EnumsProvider.cjs.map +1 -1
  190. package/dist/development/src/schema/EnumsProvider.js.map +1 -1
  191. package/dist/development/src/schema/FieldAccessVisitor.cjs.map +1 -1
  192. package/dist/development/src/schema/FieldAccessVisitor.js.map +1 -1
  193. package/dist/development/src/schema/GraphQlSchemaBuilder.cjs.map +1 -1
  194. package/dist/development/src/schema/GraphQlSchemaBuilder.js.map +1 -1
  195. package/dist/development/src/schema/GraphQlSchemaBuilderFactory.cjs.map +1 -1
  196. package/dist/development/src/schema/GraphQlSchemaBuilderFactory.js.map +1 -1
  197. package/dist/development/src/schema/MutationProvider.cjs.map +1 -1
  198. package/dist/development/src/schema/MutationProvider.js.map +1 -1
  199. package/dist/development/src/schema/OperationExtension.cjs.map +1 -1
  200. package/dist/development/src/schema/OperationExtension.js.map +1 -1
  201. package/dist/development/src/schema/OrderByTypeProvider.cjs.map +1 -1
  202. package/dist/development/src/schema/OrderByTypeProvider.js.map +1 -1
  203. package/dist/development/src/schema/PaginatedFieldConfigFactory.cjs.map +1 -1
  204. package/dist/development/src/schema/PaginatedFieldConfigFactory.js.map +1 -1
  205. package/dist/development/src/schema/QueryProvider.cjs.map +1 -1
  206. package/dist/development/src/schema/QueryProvider.js.map +1 -1
  207. package/dist/development/src/schema/ResultSchemaTypeProvider.cjs.map +1 -1
  208. package/dist/development/src/schema/ResultSchemaTypeProvider.js.map +1 -1
  209. package/dist/development/src/schema/ValidationQueriesProvider.cjs.map +1 -1
  210. package/dist/development/src/schema/ValidationQueriesProvider.js.map +1 -1
  211. package/dist/development/src/schema/WhereTypeProvider.cjs.map +1 -1
  212. package/dist/development/src/schema/WhereTypeProvider.js.map +1 -1
  213. package/dist/development/src/schema/entities/FieldArgsVisitor.cjs.map +1 -1
  214. package/dist/development/src/schema/entities/FieldArgsVisitor.js.map +1 -1
  215. package/dist/development/src/schema/entities/FieldTypeVisitor.cjs.map +1 -1
  216. package/dist/development/src/schema/entities/FieldTypeVisitor.js.map +1 -1
  217. package/dist/development/src/schema/mutations/ConnectOrCreateRelationInputProvider.cjs.map +1 -1
  218. package/dist/development/src/schema/mutations/ConnectOrCreateRelationInputProvider.js.map +1 -1
  219. package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.cjs.map +1 -1
  220. package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
  221. package/dist/development/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
  222. package/dist/development/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  223. package/dist/development/src/schema/mutations/CreateEntityRelationInputFieldVisitor.cjs.map +1 -1
  224. package/dist/development/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js.map +1 -1
  225. package/dist/development/src/schema/mutations/CreateEntityRelationInputProvider.cjs.map +1 -1
  226. package/dist/development/src/schema/mutations/CreateEntityRelationInputProvider.js.map +1 -1
  227. package/dist/development/src/schema/mutations/EntityInputProvider.cjs.map +1 -1
  228. package/dist/development/src/schema/mutations/EntityInputProvider.js.map +1 -1
  229. package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs.map +1 -1
  230. package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
  231. package/dist/development/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
  232. package/dist/development/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  233. package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
  234. package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
  235. package/dist/development/src/schema/mutations/UpdateEntityRelationInputProvider.cjs.map +1 -1
  236. package/dist/development/src/schema/mutations/UpdateEntityRelationInputProvider.js.map +1 -1
  237. package/dist/development/src/schema/utils.cjs.map +1 -1
  238. package/dist/development/src/schema/utils.js.map +1 -1
  239. package/dist/development/src/utils/Mutex.cjs.map +1 -1
  240. package/dist/development/src/utils/Mutex.js.map +1 -1
  241. package/dist/development/src/utils/ResolveInfoUtils.cjs.map +1 -1
  242. package/dist/development/src/utils/ResolveInfoUtils.js.map +1 -1
  243. package/dist/development/src/utils/accessor.cjs.map +1 -1
  244. package/dist/development/src/utils/accessor.js.map +1 -1
  245. package/dist/development/src/utils/isIt.cjs.map +1 -1
  246. package/dist/development/src/utils/isIt.js.map +1 -1
  247. package/dist/development/src/utils/object.cjs.map +1 -1
  248. package/dist/development/src/utils/object.js.map +1 -1
  249. package/dist/development/src/utils/paginationUtils.cjs.map +1 -1
  250. package/dist/development/src/utils/paginationUtils.js.map +1 -1
  251. package/dist/development/src/utils/singletonFactory.cjs.map +1 -1
  252. package/dist/development/src/utils/singletonFactory.js.map +1 -1
  253. package/dist/development/src/utils/uniqueWhereFields.cjs.map +1 -1
  254. package/dist/development/src/utils/uniqueWhereFields.js.map +1 -1
  255. package/dist/production/src/ExecutionContainer.cjs.map +1 -1
  256. package/dist/production/src/ExecutionContainer.js.map +1 -1
  257. package/dist/production/src/acl/Authorizator.cjs.map +1 -1
  258. package/dist/production/src/acl/Authorizator.js.map +1 -1
  259. package/dist/production/src/acl/EvaluatedPredicateReplacer.cjs.map +1 -1
  260. package/dist/production/src/acl/EvaluatedPredicateReplacer.js.map +1 -1
  261. package/dist/production/src/acl/PermissionFactory.cjs.map +1 -1
  262. package/dist/production/src/acl/PermissionFactory.js.map +1 -1
  263. package/dist/production/src/acl/PredicateFactory.cjs.map +1 -1
  264. package/dist/production/src/acl/PredicateFactory.js.map +1 -1
  265. package/dist/production/src/acl/PredicatesInjector.cjs.map +1 -1
  266. package/dist/production/src/acl/PredicatesInjector.js.map +1 -1
  267. package/dist/production/src/acl/VariableInjector.cjs.map +1 -1
  268. package/dist/production/src/acl/VariableInjector.js.map +1 -1
  269. package/dist/production/src/acl/VariableUtils.cjs.map +1 -1
  270. package/dist/production/src/acl/VariableUtils.js.map +1 -1
  271. package/dist/production/src/exception.cjs.map +1 -1
  272. package/dist/production/src/exception.js.map +1 -1
  273. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.cjs.map +1 -1
  274. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducer.js.map +1 -1
  275. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.cjs.map +1 -1
  276. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneReducerExecutionHandler.js.map +1 -1
  277. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.cjs.map +1 -1
  278. package/dist/production/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.js.map +1 -1
  279. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.cjs.map +1 -1
  280. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.js.map +1 -1
  281. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.cjs.map +1 -1
  282. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.js.map +1 -1
  283. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.cjs.map +1 -1
  284. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.js.map +1 -1
  285. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.cjs.map +1 -1
  286. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.js.map +1 -1
  287. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.cjs.map +1 -1
  288. package/dist/production/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.js.map +1 -1
  289. package/dist/production/src/input-validation/ColumnValueResolver.cjs.map +1 -1
  290. package/dist/production/src/input-validation/ColumnValueResolver.js.map +1 -1
  291. package/dist/production/src/input-validation/EntityRulesResolver.cjs.map +1 -1
  292. package/dist/production/src/input-validation/EntityRulesResolver.js.map +1 -1
  293. package/dist/production/src/input-validation/QueryAstFactory.cjs.map +1 -1
  294. package/dist/production/src/input-validation/QueryAstFactory.js.map +1 -1
  295. package/dist/production/src/input-validation/ValidationContext.cjs.map +1 -1
  296. package/dist/production/src/input-validation/ValidationContext.js.map +1 -1
  297. package/dist/production/src/input-validation/ValidationDataSelector.cjs.map +1 -1
  298. package/dist/production/src/input-validation/ValidationDataSelector.js.map +1 -1
  299. package/dist/production/src/input-validation/ValidationEvaluation.cjs.map +1 -1
  300. package/dist/production/src/input-validation/ValidationEvaluation.js.map +1 -1
  301. package/dist/production/src/input-validation/ValidationPath.cjs.map +1 -1
  302. package/dist/production/src/input-validation/ValidationPath.js.map +1 -1
  303. package/dist/production/src/input-validation/dependencies/DependencyCollector.cjs.map +1 -1
  304. package/dist/production/src/input-validation/dependencies/DependencyCollector.js.map +1 -1
  305. package/dist/production/src/input-validation/dependencies/DependencyMerger.cjs.map +1 -1
  306. package/dist/production/src/input-validation/dependencies/DependencyMerger.js.map +1 -1
  307. package/dist/production/src/input-validation/preValidation/CreateInputPreValidationProcessor.cjs.map +1 -1
  308. package/dist/production/src/input-validation/preValidation/CreateInputPreValidationProcessor.js.map +1 -1
  309. package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
  310. package/dist/production/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
  311. package/dist/production/src/input-validation/preValidation/UpdateInputPreValidationProcessor.cjs.map +1 -1
  312. package/dist/production/src/input-validation/preValidation/UpdateInputPreValidationProcessor.js.map +1 -1
  313. package/dist/production/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
  314. package/dist/production/src/inputProcessing/CreateInputVisitor.js.map +1 -1
  315. package/dist/production/src/inputProcessing/FieldNode.cjs.map +1 -1
  316. package/dist/production/src/inputProcessing/FieldNode.js.map +1 -1
  317. package/dist/production/src/inputProcessing/ObjectNode.cjs.map +1 -1
  318. package/dist/production/src/inputProcessing/ObjectNode.js.map +1 -1
  319. package/dist/production/src/inputProcessing/UniqueWhereExpander.cjs.map +1 -1
  320. package/dist/production/src/inputProcessing/UniqueWhereExpander.js.map +1 -1
  321. package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
  322. package/dist/production/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  323. package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
  324. package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.js.map +1 -1
  325. package/dist/production/src/introspection/IntrospectionSchemaFactory.cjs.map +1 -1
  326. package/dist/production/src/introspection/IntrospectionSchemaFactory.js.map +1 -1
  327. package/dist/production/src/introspection/introspection.schema.cjs.map +1 -1
  328. package/dist/production/src/introspection/introspection.schema.js.map +1 -1
  329. package/dist/production/src/mapper/CheckedPrimary.cjs.map +1 -1
  330. package/dist/production/src/mapper/CheckedPrimary.js.map +1 -1
  331. package/dist/production/src/mapper/ColumnValue.cjs.map +1 -1
  332. package/dist/production/src/mapper/ColumnValue.js.map +1 -1
  333. package/dist/production/src/mapper/ErrorUtils.cjs.map +1 -1
  334. package/dist/production/src/mapper/ErrorUtils.js.map +1 -1
  335. package/dist/production/src/mapper/EventManager.cjs.map +1 -1
  336. package/dist/production/src/mapper/EventManager.js.map +1 -1
  337. package/dist/production/src/mapper/JunctionTableManager.cjs.map +1 -1
  338. package/dist/production/src/mapper/JunctionTableManager.js.map +1 -1
  339. package/dist/production/src/mapper/Mapper.cjs.map +1 -1
  340. package/dist/production/src/mapper/Mapper.js.map +1 -1
  341. package/dist/production/src/mapper/MapperFactory.cjs.map +1 -1
  342. package/dist/production/src/mapper/MapperFactory.js.map +1 -1
  343. package/dist/production/src/mapper/MutationProcessorHelper.cjs.map +1 -1
  344. package/dist/production/src/mapper/MutationProcessorHelper.js.map +1 -1
  345. package/dist/production/src/mapper/Result.cjs.map +1 -1
  346. package/dist/production/src/mapper/Result.js.map +1 -1
  347. package/dist/production/src/mapper/delete/DeleteExecutor.cjs.map +1 -1
  348. package/dist/production/src/mapper/delete/DeleteExecutor.js.map +1 -1
  349. package/dist/production/src/mapper/delete/DeleteState.cjs.map +1 -1
  350. package/dist/production/src/mapper/delete/DeleteState.js.map +1 -1
  351. package/dist/production/src/mapper/delete/DeletedEntitiesStorage.cjs.map +1 -1
  352. package/dist/production/src/mapper/delete/DeletedEntitiesStorage.js.map +1 -1
  353. package/dist/production/src/mapper/delete/helpers.cjs.map +1 -1
  354. package/dist/production/src/mapper/delete/helpers.js.map +1 -1
  355. package/dist/production/src/mapper/insert/InsertBuilder.cjs.map +1 -1
  356. package/dist/production/src/mapper/insert/InsertBuilder.js.map +1 -1
  357. package/dist/production/src/mapper/insert/InsertBuilderFactory.cjs.map +1 -1
  358. package/dist/production/src/mapper/insert/InsertBuilderFactory.js.map +1 -1
  359. package/dist/production/src/mapper/insert/Inserter.cjs.map +1 -1
  360. package/dist/production/src/mapper/insert/Inserter.js.map +1 -1
  361. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
  362. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  363. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -1
  364. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -1
  365. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -1
  366. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -1
  367. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -1
  368. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -1
  369. package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -1
  370. package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -1
  371. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -1
  372. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -1
  373. package/dist/production/src/mapper/select/ConditionBuilder.cjs.map +1 -1
  374. package/dist/production/src/mapper/select/ConditionBuilder.js.map +1 -1
  375. package/dist/production/src/mapper/select/JoinBuilder.cjs.map +1 -1
  376. package/dist/production/src/mapper/select/JoinBuilder.js.map +1 -1
  377. package/dist/production/src/mapper/select/JoinVisitor.cjs.map +1 -1
  378. package/dist/production/src/mapper/select/JoinVisitor.js.map +1 -1
  379. package/dist/production/src/mapper/select/OrderByBuilder.cjs.map +1 -1
  380. package/dist/production/src/mapper/select/OrderByBuilder.js.map +1 -1
  381. package/dist/production/src/mapper/select/OrderByHelper.cjs.map +1 -1
  382. package/dist/production/src/mapper/select/OrderByHelper.js.map +1 -1
  383. package/dist/production/src/mapper/select/Path.cjs.map +1 -1
  384. package/dist/production/src/mapper/select/Path.js.map +1 -1
  385. package/dist/production/src/mapper/select/RelationFetcher.cjs.map +1 -1
  386. package/dist/production/src/mapper/select/RelationFetcher.js.map +1 -1
  387. package/dist/production/src/mapper/select/SelectBuilder.cjs.map +1 -1
  388. package/dist/production/src/mapper/select/SelectBuilder.js.map +1 -1
  389. package/dist/production/src/mapper/select/SelectHydrator.cjs.map +1 -1
  390. package/dist/production/src/mapper/select/SelectHydrator.js.map +1 -1
  391. package/dist/production/src/mapper/select/WhereBuilder.cjs.map +1 -1
  392. package/dist/production/src/mapper/select/WhereBuilder.js.map +1 -1
  393. package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  394. package/dist/production/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  395. package/dist/production/src/mapper/select/handlers/FieldsVisitorFactory.cjs.map +1 -1
  396. package/dist/production/src/mapper/select/handlers/FieldsVisitorFactory.js.map +1 -1
  397. package/dist/production/src/mapper/select/handlers/MetaHandler.cjs.map +1 -1
  398. package/dist/production/src/mapper/select/handlers/MetaHandler.js.map +1 -1
  399. package/dist/production/src/mapper/select/optimizer/ConditionOptimizer.cjs.map +1 -1
  400. package/dist/production/src/mapper/select/optimizer/ConditionOptimizer.js.map +1 -1
  401. package/dist/production/src/mapper/select/optimizer/WhereOptimizer.cjs.map +1 -1
  402. package/dist/production/src/mapper/select/optimizer/WhereOptimizer.js.map +1 -1
  403. package/dist/production/src/mapper/select/optimizer/WhereReplacer.cjs.map +1 -1
  404. package/dist/production/src/mapper/select/optimizer/WhereReplacer.js.map +1 -1
  405. package/dist/production/src/mapper/select/optimizer/helpers.cjs.map +1 -1
  406. package/dist/production/src/mapper/select/optimizer/helpers.js.map +1 -1
  407. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
  408. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
  409. package/dist/production/src/mapper/update/UpdateBuilder.cjs.map +1 -1
  410. package/dist/production/src/mapper/update/UpdateBuilder.js.map +1 -1
  411. package/dist/production/src/mapper/update/UpdateBuilderFactory.cjs.map +1 -1
  412. package/dist/production/src/mapper/update/UpdateBuilderFactory.js.map +1 -1
  413. package/dist/production/src/mapper/update/Updater.cjs.map +1 -1
  414. package/dist/production/src/mapper/update/Updater.js.map +1 -1
  415. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -1
  416. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -1
  417. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -1
  418. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -1
  419. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -1
  420. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -1
  421. package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -1
  422. package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -1
  423. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -1
  424. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -1
  425. package/dist/production/src/resolvers/GraphQlQueryAstFactory.cjs.map +1 -1
  426. package/dist/production/src/resolvers/GraphQlQueryAstFactory.js.map +1 -1
  427. package/dist/production/src/resolvers/MutationResolver.cjs.map +1 -1
  428. package/dist/production/src/resolvers/MutationResolver.js.map +1 -1
  429. package/dist/production/src/resolvers/ReadHelpers.cjs.map +1 -1
  430. package/dist/production/src/resolvers/ReadHelpers.js.map +1 -1
  431. package/dist/production/src/resolvers/ReadResolver.cjs.map +1 -1
  432. package/dist/production/src/resolvers/ReadResolver.js.map +1 -1
  433. package/dist/production/src/resolvers/ValidationResolver.cjs.map +1 -1
  434. package/dist/production/src/resolvers/ValidationResolver.js.map +1 -1
  435. package/dist/production/src/schema/ColumnTypeResolver.cjs.map +1 -1
  436. package/dist/production/src/schema/ColumnTypeResolver.js.map +1 -1
  437. package/dist/production/src/schema/ConditionTypeProvider.cjs.map +1 -1
  438. package/dist/production/src/schema/ConditionTypeProvider.js.map +1 -1
  439. package/dist/production/src/schema/CustomTypesProvider.cjs.map +1 -1
  440. package/dist/production/src/schema/CustomTypesProvider.js.map +1 -1
  441. package/dist/production/src/schema/EntityTypeProvider.cjs.map +1 -1
  442. package/dist/production/src/schema/EntityTypeProvider.js.map +1 -1
  443. package/dist/production/src/schema/EnumsProvider.cjs.map +1 -1
  444. package/dist/production/src/schema/EnumsProvider.js.map +1 -1
  445. package/dist/production/src/schema/FieldAccessVisitor.cjs.map +1 -1
  446. package/dist/production/src/schema/FieldAccessVisitor.js.map +1 -1
  447. package/dist/production/src/schema/GraphQlSchemaBuilder.cjs.map +1 -1
  448. package/dist/production/src/schema/GraphQlSchemaBuilder.js.map +1 -1
  449. package/dist/production/src/schema/GraphQlSchemaBuilderFactory.cjs.map +1 -1
  450. package/dist/production/src/schema/GraphQlSchemaBuilderFactory.js.map +1 -1
  451. package/dist/production/src/schema/MutationProvider.cjs.map +1 -1
  452. package/dist/production/src/schema/MutationProvider.js.map +1 -1
  453. package/dist/production/src/schema/OperationExtension.cjs.map +1 -1
  454. package/dist/production/src/schema/OperationExtension.js.map +1 -1
  455. package/dist/production/src/schema/OrderByTypeProvider.cjs.map +1 -1
  456. package/dist/production/src/schema/OrderByTypeProvider.js.map +1 -1
  457. package/dist/production/src/schema/PaginatedFieldConfigFactory.cjs.map +1 -1
  458. package/dist/production/src/schema/PaginatedFieldConfigFactory.js.map +1 -1
  459. package/dist/production/src/schema/QueryProvider.cjs.map +1 -1
  460. package/dist/production/src/schema/QueryProvider.js.map +1 -1
  461. package/dist/production/src/schema/ResultSchemaTypeProvider.cjs.map +1 -1
  462. package/dist/production/src/schema/ResultSchemaTypeProvider.js.map +1 -1
  463. package/dist/production/src/schema/ValidationQueriesProvider.cjs.map +1 -1
  464. package/dist/production/src/schema/ValidationQueriesProvider.js.map +1 -1
  465. package/dist/production/src/schema/WhereTypeProvider.cjs.map +1 -1
  466. package/dist/production/src/schema/WhereTypeProvider.js.map +1 -1
  467. package/dist/production/src/schema/entities/FieldArgsVisitor.cjs.map +1 -1
  468. package/dist/production/src/schema/entities/FieldArgsVisitor.js.map +1 -1
  469. package/dist/production/src/schema/entities/FieldTypeVisitor.cjs.map +1 -1
  470. package/dist/production/src/schema/entities/FieldTypeVisitor.js.map +1 -1
  471. package/dist/production/src/schema/mutations/ConnectOrCreateRelationInputProvider.cjs.map +1 -1
  472. package/dist/production/src/schema/mutations/ConnectOrCreateRelationInputProvider.js.map +1 -1
  473. package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.cjs.map +1 -1
  474. package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
  475. package/dist/production/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
  476. package/dist/production/src/schema/mutations/CreateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  477. package/dist/production/src/schema/mutations/CreateEntityRelationInputFieldVisitor.cjs.map +1 -1
  478. package/dist/production/src/schema/mutations/CreateEntityRelationInputFieldVisitor.js.map +1 -1
  479. package/dist/production/src/schema/mutations/CreateEntityRelationInputProvider.cjs.map +1 -1
  480. package/dist/production/src/schema/mutations/CreateEntityRelationInputProvider.js.map +1 -1
  481. package/dist/production/src/schema/mutations/EntityInputProvider.cjs.map +1 -1
  482. package/dist/production/src/schema/mutations/EntityInputProvider.js.map +1 -1
  483. package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs.map +1 -1
  484. package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
  485. package/dist/production/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.cjs.map +1 -1
  486. package/dist/production/src/schema/mutations/UpdateEntityRelationAllowedOperationsVisitor.js.map +1 -1
  487. package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
  488. package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
  489. package/dist/production/src/schema/mutations/UpdateEntityRelationInputProvider.cjs.map +1 -1
  490. package/dist/production/src/schema/mutations/UpdateEntityRelationInputProvider.js.map +1 -1
  491. package/dist/production/src/schema/utils.cjs.map +1 -1
  492. package/dist/production/src/schema/utils.js.map +1 -1
  493. package/dist/production/src/utils/Mutex.cjs.map +1 -1
  494. package/dist/production/src/utils/Mutex.js.map +1 -1
  495. package/dist/production/src/utils/ResolveInfoUtils.cjs.map +1 -1
  496. package/dist/production/src/utils/ResolveInfoUtils.js.map +1 -1
  497. package/dist/production/src/utils/accessor.cjs.map +1 -1
  498. package/dist/production/src/utils/accessor.js.map +1 -1
  499. package/dist/production/src/utils/isIt.cjs.map +1 -1
  500. package/dist/production/src/utils/isIt.js.map +1 -1
  501. package/dist/production/src/utils/object.cjs.map +1 -1
  502. package/dist/production/src/utils/object.js.map +1 -1
  503. package/dist/production/src/utils/paginationUtils.cjs.map +1 -1
  504. package/dist/production/src/utils/paginationUtils.js.map +1 -1
  505. package/dist/production/src/utils/singletonFactory.cjs.map +1 -1
  506. package/dist/production/src/utils/singletonFactory.js.map +1 -1
  507. package/dist/production/src/utils/uniqueWhereFields.cjs.map +1 -1
  508. package/dist/production/src/utils/uniqueWhereFields.js.map +1 -1
  509. package/dist/tests/src/assert.d.ts +5 -0
  510. package/dist/tests/src/assert.d.ts.map +1 -0
  511. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  512. package/dist/types/tsconfig.tsbuildinfo +1 -1
  513. package/graphql.codegen.yml +1 -1
  514. package/package.json +11 -11
  515. package/tests/cases/bugs/bug-filter-or.test.ts +1 -1
  516. package/tests/cases/bugs/bug-update-by-nested-unique.test.ts +1 -1
  517. package/tests/cases/bugs/bug102.test.ts +1 -1
  518. package/tests/cases/integration/graphQlRequests/delete/aclDelete.test.ts +1 -1
  519. package/tests/cases/integration/graphQlRequests/delete/additionalDeleteFilter.test.ts +1 -1
  520. package/tests/cases/integration/graphQlRequests/delete/cascadeDelete.test.ts +1 -1
  521. package/tests/cases/integration/graphQlRequests/delete/deleteById.test.ts +1 -1
  522. package/tests/cases/integration/graphQlRequests/delete/orphanRemoval.test.ts +1 -1
  523. package/tests/cases/integration/graphQlRequests/delete/restrictOnDelete.test.ts +1 -1
  524. package/tests/cases/integration/graphQlRequests/delete/setNullOnDelete.test.ts +1 -1
  525. package/tests/cases/integration/graphQlRequests/insert/acl/setField.test.ts +1 -1
  526. package/tests/cases/integration/graphQlRequests/insert/aclInsert.test.ts +1 -1
  527. package/tests/cases/integration/graphQlRequests/insert/basicInsert.test.ts +1 -1
  528. package/tests/cases/integration/graphQlRequests/insert/insertCustomId.test.ts +1 -1
  529. package/tests/cases/integration/graphQlRequests/insert/manyHasManyInverse/create.test.ts +1 -1
  530. package/tests/cases/integration/graphQlRequests/insert/manyHasManyOwning/create.test.ts +1 -1
  531. package/tests/cases/integration/graphQlRequests/insert/manyHasOne/connectOrCreate.test.ts +1 -1
  532. package/tests/cases/integration/graphQlRequests/insert/manyHasOne/create.test.ts +1 -1
  533. package/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.ts +1 -1
  534. package/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.ts +1 -1
  535. package/tests/cases/integration/graphQlRequests/insert/oneHasOneInverse/create.test.ts +1 -1
  536. package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/create.test.ts +1 -1
  537. package/tests/cases/integration/graphQlRequests/insert/oneHasOneOwning/empty.test.ts +1 -1
  538. package/tests/cases/integration/graphQlRequests/insert/validation/toBeFixed.test.ts +1 -1
  539. package/tests/cases/integration/graphQlRequests/query/acl/differentRowAndFieldPredicate.test.ts +1 -1
  540. package/tests/cases/integration/graphQlRequests/query/acl/fieldRestrictedByLocale.test.ts +1 -1
  541. package/tests/cases/integration/graphQlRequests/query/acl/isNullAcl.test.ts +1 -1
  542. package/tests/cases/integration/graphQlRequests/query/acl/nestedPredicate.test.ts +1 -1
  543. package/tests/cases/integration/graphQlRequests/query/acl/orPredicate.test.ts +1 -1
  544. package/tests/cases/integration/graphQlRequests/query/acl/predicateElimination.test.ts +1 -1
  545. package/tests/cases/integration/graphQlRequests/query/acl/relationAcl.test.ts +1 -1
  546. package/tests/cases/integration/graphQlRequests/query/acl/rowPredicateSubset.test.ts +1 -1
  547. package/tests/cases/integration/graphQlRequests/query/acl/sameRowAndFieldPredicate.test.ts +1 -1
  548. package/tests/cases/integration/graphQlRequests/query/filter/backReferencedFilter.test.ts +1 -1
  549. package/tests/cases/integration/graphQlRequests/query/filter/complexCondition.test.ts +1 -1
  550. package/tests/cases/integration/graphQlRequests/query/filter/composedFilter.test.ts +1 -1
  551. package/tests/cases/integration/graphQlRequests/query/filter/containsQuery.test.ts +1 -1
  552. package/tests/cases/integration/graphQlRequests/query/filter/manyHasManyOwnerRelation.test.ts +1 -1
  553. package/tests/cases/integration/graphQlRequests/query/filter/manyHasOneRelation.test.ts +1 -1
  554. package/tests/cases/integration/graphQlRequests/query/filter/oneHasManyRelation.test.ts +1 -1
  555. package/tests/cases/integration/graphQlRequests/query/formatting/dateFormat.test.ts +1 -1
  556. package/tests/cases/integration/graphQlRequests/query/graphqlFeatures/alias.test.ts +1 -1
  557. package/tests/cases/integration/graphQlRequests/query/graphqlFeatures/fragments.test.ts +1 -1
  558. package/tests/cases/integration/graphQlRequests/query/misc/aliasedType.test.ts +1 -1
  559. package/tests/cases/integration/graphQlRequests/query/misc/longAliasHash.test.ts +1 -1
  560. package/tests/cases/integration/graphQlRequests/query/misc/reducedHasMany.test.ts +1 -1
  561. package/tests/cases/integration/graphQlRequests/query/misc/transaction.test.ts +1 -1
  562. package/tests/cases/integration/graphQlRequests/query/pagination/hasManyLimit.test.ts +1 -1
  563. package/tests/cases/integration/graphQlRequests/query/pagination/paginate.test.ts +1 -1
  564. package/tests/cases/integration/graphQlRequests/query/pagination/paginateAliased.test.ts +1 -1
  565. package/tests/cases/integration/graphQlRequests/query/pagination/simpleLimit.test.ts +1 -1
  566. package/tests/cases/integration/graphQlRequests/query/relations/advanced.test.ts +1 -1
  567. package/tests/cases/integration/graphQlRequests/query/relations/manyHasManyInverse.test.ts +1 -1
  568. package/tests/cases/integration/graphQlRequests/query/relations/manyHasManyOwning.test.ts +2 -2
  569. package/tests/cases/integration/graphQlRequests/query/relations/manyHasOne.test.ts +1 -1
  570. package/tests/cases/integration/graphQlRequests/query/relations/oneHasMany.test.ts +1 -1
  571. package/tests/cases/integration/graphQlRequests/query/relations/oneHasOneInverse.test.ts +1 -1
  572. package/tests/cases/integration/graphQlRequests/query/relations/oneHasOneOwner.test.ts +1 -1
  573. package/tests/cases/integration/graphQlRequests/query/sorting/byRelations.test.ts +1 -1
  574. package/tests/cases/integration/graphQlRequests/query/sorting/defaultOrdering.test.ts +1 -1
  575. package/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.ts +1 -1
  576. package/tests/cases/integration/graphQlRequests/query/sorting/randomSort.test.ts +1 -1
  577. package/tests/cases/integration/graphQlRequests/query/sorting/sortNulls.test.ts +1 -1
  578. package/tests/cases/integration/graphQlRequests/query/sorting/sortedHasMany.test.ts +1 -1
  579. package/tests/cases/integration/graphQlRequests/query/unique/basicQueryById.test.ts +1 -1
  580. package/tests/cases/integration/graphQlRequests/query/unique/composedUnique.test.ts +1 -1
  581. package/tests/cases/integration/graphQlRequests/query/unique/oneHasManyUnique.test.ts +1 -1
  582. package/tests/cases/integration/graphQlRequests/query/unique/uniqueWithFilter.test.ts +1 -1
  583. package/tests/cases/integration/graphQlRequests/query/view/view.test.ts +1 -1
  584. package/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.ts +1 -1
  585. package/tests/cases/integration/graphQlRequests/update/additionalFilter.test.ts +1 -1
  586. package/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.ts +1 -1
  587. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/connect.test.ts +1 -1
  588. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/create.test.ts +1 -1
  589. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/delete.test.ts +1 -1
  590. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/disconnect.test.ts +1 -1
  591. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.ts +1 -1
  592. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.ts +1 -1
  593. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connect.test.ts +1 -1
  594. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.ts +1 -1
  595. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/create.test.ts +1 -1
  596. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/delete.test.ts +1 -1
  597. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/disconnect.test.ts +1 -1
  598. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.ts +1 -1
  599. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.ts +1 -1
  600. package/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.ts +1 -1
  601. package/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.ts +1 -1
  602. package/tests/cases/integration/graphQlRequests/update/manyHasOne/delete.test.ts +1 -1
  603. package/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.ts +1 -1
  604. package/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.ts +1 -1
  605. package/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.ts +1 -1
  606. package/tests/cases/integration/graphQlRequests/update/oneHasMany/combination.test.ts +1 -1
  607. package/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.ts +1 -1
  608. package/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.ts +1 -1
  609. package/tests/cases/integration/graphQlRequests/update/oneHasMany/create.test.ts +1 -1
  610. package/tests/cases/integration/graphQlRequests/update/oneHasMany/delete.test.ts +1 -1
  611. package/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.ts +1 -1
  612. package/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.ts +1 -1
  613. package/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.ts +1 -1
  614. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.ts +1 -1
  615. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.ts +1 -1
  616. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/delete.test.ts +1 -1
  617. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.ts +1 -1
  618. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.ts +1 -1
  619. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.ts +1 -1
  620. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.ts +1 -1
  621. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.ts +1 -1
  622. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.ts +1 -1
  623. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/delete.test.ts +1 -1
  624. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.ts +1 -1
  625. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.ts +1 -1
  626. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.ts +1 -1
  627. package/tests/cases/integration/graphQlRequests/update/queryPortal.test.ts +1 -1
  628. package/tests/cases/integration/graphQlRequests/update/transaction.test.ts +1 -1
  629. package/tests/cases/integration/graphQlRequests/update/validation/toBeFixed.test.ts +1 -1
  630. package/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.ts +1 -1
  631. package/tests/cases/integration/graphQlRequests/validation/conditions.test.ts +1 -1
  632. package/tests/cases/integration/graphQlRequests/validation/nestedValidation.test.ts +1 -1
  633. package/tests/cases/integration/graphQlRequests/validation/optionalAssert.test.ts +1 -1
  634. package/tests/cases/integration/graphQlRequests/validation/required.test.ts +1 -1
  635. package/tests/cases/integration/graphQlRequests/validation/requiredWhen.test.ts +1 -1
  636. package/tests/cases/integration/graphQlRequests/validation/rules/andRule.test.ts +1 -1
  637. package/tests/cases/integration/graphQlRequests/validation/rules/lengthRangeRule.test.ts +1 -1
  638. package/tests/cases/integration/graphQlRequests/validation/rules/maxLengthRule.test.ts +1 -1
  639. package/tests/cases/integration/graphQlRequests/validation/rules/minLength.test.ts +1 -1
  640. package/tests/cases/integration/graphQlRequests/validation/rules/notEmptyRule.test.ts +1 -1
  641. package/tests/cases/integration/graphQlRequests/validation/rules/notRule.test.ts +1 -1
  642. package/tests/cases/integration/graphQlRequests/validation/rules/orRule.test.ts +1 -1
  643. package/tests/cases/integration/graphQlRequests/validation/rules/patternRule.test.ts +1 -2
  644. package/tests/cases/integration/graphQlRequests/validation/rules/rangeRule.test.ts +1 -1
  645. package/tests/cases/integration/graphQlSchema/graphQlSchemaBuilder.test.ts +4 -4
  646. package/tests/cases/integration/graphQlSchema/schema-acl-create-only.gql +28 -28
  647. package/tests/cases/integration/graphQlSchema/schema-new-builder.gql +108 -108
  648. package/tests/cases/unit/aclVariablesFactory.test.ts +5 -5
  649. package/tests/cases/unit/conditionOptimizer.test.ts +7 -1
  650. package/tests/cases/unit/inputPreValidator.test.ts +2 -1
  651. package/tests/cases/unit/inputValidation.test.ts +7 -6
  652. package/tests/cases/unit/orderbyHelper.test.ts +3 -2
  653. package/tests/cases/unit/permissionMerger.test.ts +2 -1
  654. package/tests/cases/unit/predicatesFactory.test.ts +2 -1
  655. package/tests/cases/unit/predicatesInjector.test.ts +2 -1
  656. package/tests/cases/unit/uuidType.test.ts +5 -5
  657. package/tests/cases/unit/variableInjector.test.ts +2 -1
  658. package/tests/cases/unit/whereBuilder.test.ts +2 -1
  659. package/tests/cases/unit/whereOptimizer.test.ts +2 -1
  660. package/tests/src/assert.ts +10 -0
  661. package/tests/src/testGraphql.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"UniqueWhereExpander.js","sources":["../../../../../packages/engine-content-api/src/inputProcessing/UniqueWhereExpander.ts"],"sourcesContent":["import { Input, Model, Writable } from '@contember/schema'\nimport { getTargetEntity } from '@contember/schema-utils'\nimport { UserError } from '../exception'\nimport { getFieldsForUniqueWhere } from '../utils'\nimport { CheckedPrimary } from '../mapper/CheckedPrimary'\n\ntype ExtendedUniqueWhere = Input.UniqueWhere<Input.PrimaryValue[]>\n\nexport class UniqueWhereExpander {\n\tconstructor(private readonly schema: Model.Schema) {}\n\n\texpand(entity: Model.Entity, where: ExtendedUniqueWhere | CheckedPrimary, path: string[] = []): Input.Where {\n\t\tif (where instanceof CheckedPrimary) {\n\t\t\treturn { [entity.primary]: { eq: where.primaryValue } }\n\t\t}\n\t\tconst isFilled = (field: string) => where[field] !== undefined && where[field] !== null\n\n\t\tconst isUnique = (() => {\n\t\t\tif (isFilled(entity.primary)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tuniqueKeys: for (const fields of getFieldsForUniqueWhere(this.schema, entity)) {\n\t\t\t\tfor (const field of fields) {\n\t\t\t\t\tif (!isFilled(field)) {\n\t\t\t\t\t\tcontinue uniqueKeys\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t})()\n\n\t\tif (!isUnique) {\n\t\t\tthrow new UniqueWhereError(this.formatErrorMessage(entity, where, path))\n\t\t}\n\n\t\tconst whereExpanded: Writable<Input.Where> = {}\n\t\tfor (const field in where) {\n\t\t\tif (!isFilled(field)) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst target = getTargetEntity(this.schema, entity, field)\n\t\t\tif (!target) {\n\t\t\t\twhereExpanded[field] = Array.isArray(where[field]) ? { in: where[field] as any } : { eq: where[field] }\n\t\t\t} else {\n\t\t\t\twhereExpanded[field] = this.expand(target, where[field] as Input.UniqueWhere, [...path, field])\n\t\t\t}\n\t\t}\n\n\t\treturn whereExpanded\n\t}\n\n\tprivate formatErrorMessage(entity: Model.Entity, where: ExtendedUniqueWhere, path: string[]): string {\n\t\tconst knownUniqueKeys = getFieldsForUniqueWhere(this.schema, entity)\n\t\t\t.map(it => it.join(', '))\n\t\t\t.map(it => `\\t - ${it}`)\n\t\t\t.join('\\n')\n\t\treturn `Provided where is not unique for entity ${entity.name}:\nProvided value${path.length ? ` in path $.${path.join('.')}` : ''}: ${JSON.stringify(where)}\nKnown unique key combinations:\n${knownUniqueKeys}`\n\t}\n}\n\nexport class UniqueWhereError extends UserError {}\n"],"names":[],"mappings":";;;;AAQO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,QAAsB;AAAtB,SAAA,SAAA;AAAA,EAAuB;AAAA,EAEpD,OAAO,QAAsB,OAA6C,OAAiB,CAAA,GAAiB;AAC3G,QAAI,iBAAiB,gBAAgB;AAC7B,aAAA,EAAE,CAAC,OAAO,OAAO,GAAG,EAAE,IAAI,MAAM,aAAA;IACxC;AACM,UAAA,WAAW,CAAC,UAAkB,MAAM,KAAK,MAAM,UAAa,MAAM,KAAK,MAAM;AAEnF,UAAM,YAAY,MAAM;AACnB,UAAA,SAAS,OAAO,OAAO,GAAG;AACtB,eAAA;AAAA,MACR;AACA,6BAAuB,UAAU,wBAAwB,KAAK,QAAQ,MAAM,GAAG;AAC9E,mBAAW,SAAS,QAAQ;AACvB,cAAA,CAAC,SAAS,KAAK,GAAG;AACZ,qBAAA;AAAA,UACV;AAAA,QACD;AACO,eAAA;AAAA,MACR;AACO,aAAA;AAAA,IAAA;AAGR,QAAI,CAAC,UAAU;AACd,YAAM,IAAI,iBAAiB,KAAK,mBAAmB,QAAQ,OAAO,IAAI,CAAC;AAAA,IACxE;AAEA,UAAM,gBAAuC,CAAA;AAC7C,eAAW,SAAS,OAAO;AACtB,UAAA,CAAC,SAAS,KAAK,GAAG;AACrB;AAAA,MACD;AACA,YAAM,SAAS,gBAAgB,KAAK,QAAQ,QAAQ,KAAK;AACzD,UAAI,CAAC,QAAQ;AACZ,sBAAc,KAAK,IAAI,MAAM,QAAQ,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,MAAM,KAAK,MAAa,EAAE,IAAI,MAAM,KAAK;MAAE,OAChG;AACN,sBAAc,KAAK,IAAI,KAAK,OAAO,QAAQ,MAAM,KAAK,GAAwB,CAAC,GAAG,MAAM,KAAK,CAAC;AAAA,MAC/F;AAAA,IACD;AAEO,WAAA;AAAA,EACR;AAAA,EAEQ,mBAAmB,QAAsB,OAA4B,MAAwB;AAC9F,UAAA,kBAAkB,wBAAwB,KAAK,QAAQ,MAAM,EACjE,IAAI,QAAM,GAAG,KAAK,IAAI,CAAC,EACvB,IAAI,CAAM,OAAA,OAAQ,EAAE,EAAE,EACtB,KAAK,IAAI;AACJ,WAAA,2CAA2C,OAAO,IAAI;AAAA,gBAC/C,KAAK,SAAS,cAAc,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA;AAAA,EAEzF,eAAe;AAAA,EAChB;AACD;AAEO,MAAM,yBAAyB,UAAU;AAAC;"}
1
+ {"version":3,"file":"UniqueWhereExpander.js","sources":["../../../../../packages/engine-content-api/src/inputProcessing/UniqueWhereExpander.ts"],"sourcesContent":["import { Input, Model, Writable } from '@contember/schema'\nimport { getTargetEntity } from '@contember/schema-utils'\nimport { UserError } from '../exception'\nimport { getFieldsForUniqueWhere } from '../utils'\nimport { CheckedPrimary } from '../mapper/CheckedPrimary'\n\ntype ExtendedUniqueWhere = Input.UniqueWhere<Input.PrimaryValue[]>\n\nexport class UniqueWhereExpander {\n\tconstructor(private readonly schema: Model.Schema) {}\n\n\texpand(entity: Model.Entity, where: ExtendedUniqueWhere | CheckedPrimary, path: string[] = []): Input.Where {\n\t\tif (where instanceof CheckedPrimary) {\n\t\t\treturn { [entity.primary]: { eq: where.primaryValue } }\n\t\t}\n\t\tconst isFilled = (field: string) => where[field] !== undefined && where[field] !== null\n\n\t\tconst isUnique = (() => {\n\t\t\tif (isFilled(entity.primary)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tuniqueKeys: for (const fields of getFieldsForUniqueWhere(this.schema, entity)) {\n\t\t\t\tfor (const field of fields) {\n\t\t\t\t\tif (!isFilled(field)) {\n\t\t\t\t\t\tcontinue uniqueKeys\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t})()\n\n\t\tif (!isUnique) {\n\t\t\tthrow new UniqueWhereError(this.formatErrorMessage(entity, where, path))\n\t\t}\n\n\t\tconst whereExpanded: Writable<Input.Where> = {}\n\t\tfor (const field in where) {\n\t\t\tif (!isFilled(field)) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst target = getTargetEntity(this.schema, entity, field)\n\t\t\tif (!target) {\n\t\t\t\twhereExpanded[field] = Array.isArray(where[field]) ? { in: where[field] as any } : { eq: where[field] }\n\t\t\t} else {\n\t\t\t\twhereExpanded[field] = this.expand(target, where[field] as Input.UniqueWhere, [...path, field])\n\t\t\t}\n\t\t}\n\n\t\treturn whereExpanded\n\t}\n\n\tprivate formatErrorMessage(entity: Model.Entity, where: ExtendedUniqueWhere, path: string[]): string {\n\t\tconst knownUniqueKeys = getFieldsForUniqueWhere(this.schema, entity)\n\t\t\t.map(it => it.join(', '))\n\t\t\t.map(it => `\\t - ${it}`)\n\t\t\t.join('\\n')\n\t\treturn `Provided where is not unique for entity ${entity.name}:\nProvided value${path.length ? ` in path $.${path.join('.')}` : ''}: ${JSON.stringify(where)}\nKnown unique key combinations:\n${knownUniqueKeys}`\n\t}\n}\n\nexport class UniqueWhereError extends UserError {}\n"],"names":[],"mappings":";;;;AAQO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,QAAsB;AAAtB,SAAA,SAAA;AAAA,EAAA;AAAA,EAE7B,OAAO,QAAsB,OAA6C,OAAiB,CAAA,GAAiB;AAC3G,QAAI,iBAAiB,gBAAgB;AAC7B,aAAA,EAAE,CAAC,OAAO,OAAO,GAAG,EAAE,IAAI,MAAM,eAAe;AAAA,IAAA;AAEjD,UAAA,WAAW,CAAC,UAAkB,MAAM,KAAK,MAAM,UAAa,MAAM,KAAK,MAAM;AAEnF,UAAM,YAAY,MAAM;AACnB,UAAA,SAAS,OAAO,OAAO,GAAG;AACtB,eAAA;AAAA,MAAA;AAER,6BAAuB,UAAU,wBAAwB,KAAK,QAAQ,MAAM,GAAG;AAC9E,mBAAW,SAAS,QAAQ;AACvB,cAAA,CAAC,SAAS,KAAK,GAAG;AACZ,qBAAA;AAAA,UAAA;AAAA,QACV;AAEM,eAAA;AAAA,MAAA;AAED,aAAA;AAAA,IAAA,GACL;AAEH,QAAI,CAAC,UAAU;AACd,YAAM,IAAI,iBAAiB,KAAK,mBAAmB,QAAQ,OAAO,IAAI,CAAC;AAAA,IAAA;AAGxE,UAAM,gBAAuC,CAAC;AAC9C,eAAW,SAAS,OAAO;AACtB,UAAA,CAAC,SAAS,KAAK,GAAG;AACrB;AAAA,MAAA;AAED,YAAM,SAAS,gBAAgB,KAAK,QAAQ,QAAQ,KAAK;AACzD,UAAI,CAAC,QAAQ;AACZ,sBAAc,KAAK,IAAI,MAAM,QAAQ,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,MAAM,KAAK,EAAS,IAAI,EAAE,IAAI,MAAM,KAAK,EAAE;AAAA,MAAA,OAChG;AACN,sBAAc,KAAK,IAAI,KAAK,OAAO,QAAQ,MAAM,KAAK,GAAwB,CAAC,GAAG,MAAM,KAAK,CAAC;AAAA,MAAA;AAAA,IAC/F;AAGM,WAAA;AAAA,EAAA;AAAA,EAGA,mBAAmB,QAAsB,OAA4B,MAAwB;AAC9F,UAAA,kBAAkB,wBAAwB,KAAK,QAAQ,MAAM,EACjE,IAAI,QAAM,GAAG,KAAK,IAAI,CAAC,EACvB,IAAI,CAAM,OAAA,OAAQ,EAAE,EAAE,EACtB,KAAK,IAAI;AACJ,WAAA,2CAA2C,OAAO,IAAI;AAAA,gBAC/C,KAAK,SAAS,cAAc,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA;AAAA,EAEzF,eAAe;AAAA,EAAA;AAEjB;AAEO,MAAM,yBAAyB,UAAU;AAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateInputVisitor.cjs","sources":["../../../../../packages/engine-content-api/src/inputProcessing/UpdateInputVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { filterObject, isIt } from '../utils'\nimport { UpdateInputProcessor } from './UpdateInputProcessor'\nimport { ImplementationException, UserError } from '../exception'\n\nexport class UpdateInputVisitor<Result> implements\n\tModel.ColumnVisitor<Promise<Result[]>>,\n\tModel.RelationByTypeVisitor<Promise<Result[]>> {\n\n\tconstructor(\n\t\tprivate readonly updateInputProcessor: UpdateInputProcessor<Result>,\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly data: Input.UpdateDataInput,\n\t) {}\n\n\tpublic async visitColumn({ entity, column }: Model.ColumnContext): Promise<Result[]> {\n\t\treturn [await this.updateInputProcessor.column({\n\t\t\tentity,\n\t\t\tcolumn,\n\t\t\tinput: this.data[column.name] as Input.ColumnValue,\n\t\t})]\n\t}\n\n\tpublic visitManyHasManyInverse(context: Model.ManyHasManyInverseContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasManyInverse,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitManyHasManyOwning(context: Model.ManyHasManyOwningContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasManyOwning,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitManyHasOne(context: Model.ManyHasOneContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasOne,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasMany(context: Model.OneHasManyContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasMany,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasOneInverse(context: Model.OneHasOneInverseContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasOneInverse,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasOneOwning(context: Model.OneHasOneOwningContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasOneOwning,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tprivate async processRelationInput<Context>(\n\t\tprocessor: UpdateInputProcessor.HasOneRelationInputProcessor<Context, Result>,\n\t\tcontext: Context,\n\t\tinput: Input.UpdateOneRelationInput | undefined,\n\t): Promise< Result[]> {\n\t\tif (input === undefined || input === null) {\n\t\t\treturn Promise.resolve([])\n\t\t}\n\t\tinput = filterObject(input, (k, v) => v !== null && v !== undefined)\n\t\tthis.verifyOperations(input)\n\t\tif (isIt<Input.ConnectRelationInput>(input, 'connect')) {\n\t\t\treturn [await processor.connect({ ...context, input: input.connect })]\n\t\t}\n\t\tif (isIt<Input.CreateRelationInput>(input, 'create')) {\n\t\t\treturn [await processor.create({ ...context, input: input.create })]\n\t\t}\n\t\tif (isIt<Input.ConnectOrCreateRelationInput>(input, 'connectOrCreate')) {\n\t\t\treturn [await processor.connectOrCreate({ ...context, input: input.connectOrCreate })]\n\t\t}\n\t\tif (isIt<Input.DeleteRelationInput>(input, 'delete')) {\n\t\t\treturn [await processor.delete({ ...context, input: undefined })]\n\t\t}\n\t\tif (isIt<Input.DisconnectRelationInput>(input, 'disconnect')) {\n\t\t\treturn [await processor.disconnect({ ...context, input: undefined })]\n\t\t}\n\t\tif (isIt<Input.UpdateRelationInput>(input, 'update')) {\n\t\t\treturn [await processor.update({ ...context, input: input.update })]\n\t\t}\n\t\tif (isIt<Input.UpsertRelationInput>(input, 'upsert')) {\n\t\t\treturn [await processor.upsert({ ...context, input: input.upsert })]\n\t\t}\n\t\tthrow new ImplementationException()\n\t}\n\n\tprivate async processManyRelationInput<Context>(\n\t\tprocessor: UpdateInputProcessor.HasManyRelationInputProcessor<Context, Result>,\n\t\tcontext: Context,\n\t\tinput: Input.UpdateManyRelationInput | undefined,\n\t): Promise<Result[]> {\n\t\tif (input === undefined || input === null) {\n\t\t\treturn Promise.resolve([])\n\t\t}\n\t\tconst results: Array<Result> = []\n\t\tlet i = 0\n\t\tfor (let element of input) {\n\t\t\tconst alias = element.alias\n\t\t\telement = filterObject(element, (k, v) => v !== null && v !== undefined)\n\t\t\tthis.verifyOperations(element)\n\t\t\tlet result\n\t\t\tif (isIt<Input.ConnectRelationInput>(element, 'connect')) {\n\t\t\t\tresult = processor.connect({ ...context, input: element.connect, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.CreateRelationInput>(element, 'create')) {\n\t\t\t\tresult = processor.create({ ...context, input: element.create, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.ConnectOrCreateRelationInput>(element, 'connectOrCreate')) {\n\t\t\t\tresult = processor.connectOrCreate({ ...context, input: element.connectOrCreate, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.DeleteSpecifiedRelationInput>(element, 'delete')) {\n\t\t\t\tresult = processor.delete({ ...context, input: element.delete, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.DisconnectSpecifiedRelationInput>(element, 'disconnect')) {\n\t\t\t\tresult = processor.disconnect({ ...context, input: element.disconnect, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.UpdateSpecifiedRelationInput>(element, 'update')) {\n\t\t\t\tresult = processor.update({\n\t\t\t\t\t...context,\n\t\t\t\t\tinput: { where: element.update.by, data: element.update.data },\n\t\t\t\t\tindex: i,\n\t\t\t\t\talias,\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (isIt<Input.UpsertSpecifiedRelationInput>(element, 'upsert')) {\n\t\t\t\tresult = processor.upsert({\n\t\t\t\t\t...context,\n\t\t\t\t\tinput: { where: element.upsert.by, update: element.upsert.update, create: element.upsert.create },\n\t\t\t\t\tindex: i,\n\t\t\t\t\talias,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (result !== undefined) {\n\t\t\t\tresults.push(await result)\n\t\t\t}\n\t\t}\n\t\treturn results\n\t}\n\n\tprivate verifyOperations(input: object) {\n\t\tconst keys = Object.keys(input).filter(it => it !== 'alias')\n\t\tconst ops = Object.values(Input.UpdateRelationOperation) as string[]\n\t\tif (keys.length !== 1 || !ops.includes(keys[0])) {\n\t\t\tconst found = keys.length === 0 ? 'none' : keys.join(', ')\n\t\t\tthrow new UserError(\n\t\t\t\t`Expected exactly one of: ${ops.join(', ')}. ${found} found.`,\n\t\t\t)\n\t\t}\n\t}\n}\n"],"names":["schema","filterObject","isIt","ImplementationException","Input","UserError"],"mappings":"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"}
1
+ {"version":3,"file":"UpdateInputVisitor.cjs","sources":["../../../../../packages/engine-content-api/src/inputProcessing/UpdateInputVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { filterObject, isIt } from '../utils'\nimport { UpdateInputProcessor } from './UpdateInputProcessor'\nimport { ImplementationException, UserError } from '../exception'\n\nexport class UpdateInputVisitor<Result> implements\n\tModel.ColumnVisitor<Promise<Result[]>>,\n\tModel.RelationByTypeVisitor<Promise<Result[]>> {\n\n\tconstructor(\n\t\tprivate readonly updateInputProcessor: UpdateInputProcessor<Result>,\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly data: Input.UpdateDataInput,\n\t) {}\n\n\tpublic async visitColumn({ entity, column }: Model.ColumnContext): Promise<Result[]> {\n\t\treturn [await this.updateInputProcessor.column({\n\t\t\tentity,\n\t\t\tcolumn,\n\t\t\tinput: this.data[column.name] as Input.ColumnValue,\n\t\t})]\n\t}\n\n\tpublic visitManyHasManyInverse(context: Model.ManyHasManyInverseContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasManyInverse,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitManyHasManyOwning(context: Model.ManyHasManyOwningContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasManyOwning,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitManyHasOne(context: Model.ManyHasOneContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasOne,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasMany(context: Model.OneHasManyContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasMany,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasOneInverse(context: Model.OneHasOneInverseContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasOneInverse,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasOneOwning(context: Model.OneHasOneOwningContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasOneOwning,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tprivate async processRelationInput<Context>(\n\t\tprocessor: UpdateInputProcessor.HasOneRelationInputProcessor<Context, Result>,\n\t\tcontext: Context,\n\t\tinput: Input.UpdateOneRelationInput | undefined,\n\t): Promise< Result[]> {\n\t\tif (input === undefined || input === null) {\n\t\t\treturn Promise.resolve([])\n\t\t}\n\t\tinput = filterObject(input, (k, v) => v !== null && v !== undefined)\n\t\tthis.verifyOperations(input)\n\t\tif (isIt<Input.ConnectRelationInput>(input, 'connect')) {\n\t\t\treturn [await processor.connect({ ...context, input: input.connect })]\n\t\t}\n\t\tif (isIt<Input.CreateRelationInput>(input, 'create')) {\n\t\t\treturn [await processor.create({ ...context, input: input.create })]\n\t\t}\n\t\tif (isIt<Input.ConnectOrCreateRelationInput>(input, 'connectOrCreate')) {\n\t\t\treturn [await processor.connectOrCreate({ ...context, input: input.connectOrCreate })]\n\t\t}\n\t\tif (isIt<Input.DeleteRelationInput>(input, 'delete')) {\n\t\t\treturn [await processor.delete({ ...context, input: undefined })]\n\t\t}\n\t\tif (isIt<Input.DisconnectRelationInput>(input, 'disconnect')) {\n\t\t\treturn [await processor.disconnect({ ...context, input: undefined })]\n\t\t}\n\t\tif (isIt<Input.UpdateRelationInput>(input, 'update')) {\n\t\t\treturn [await processor.update({ ...context, input: input.update })]\n\t\t}\n\t\tif (isIt<Input.UpsertRelationInput>(input, 'upsert')) {\n\t\t\treturn [await processor.upsert({ ...context, input: input.upsert })]\n\t\t}\n\t\tthrow new ImplementationException()\n\t}\n\n\tprivate async processManyRelationInput<Context>(\n\t\tprocessor: UpdateInputProcessor.HasManyRelationInputProcessor<Context, Result>,\n\t\tcontext: Context,\n\t\tinput: Input.UpdateManyRelationInput | undefined,\n\t): Promise<Result[]> {\n\t\tif (input === undefined || input === null) {\n\t\t\treturn Promise.resolve([])\n\t\t}\n\t\tconst results: Array<Result> = []\n\t\tlet i = 0\n\t\tfor (let element of input) {\n\t\t\tconst alias = element.alias\n\t\t\telement = filterObject(element, (k, v) => v !== null && v !== undefined)\n\t\t\tthis.verifyOperations(element)\n\t\t\tlet result\n\t\t\tif (isIt<Input.ConnectRelationInput>(element, 'connect')) {\n\t\t\t\tresult = processor.connect({ ...context, input: element.connect, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.CreateRelationInput>(element, 'create')) {\n\t\t\t\tresult = processor.create({ ...context, input: element.create, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.ConnectOrCreateRelationInput>(element, 'connectOrCreate')) {\n\t\t\t\tresult = processor.connectOrCreate({ ...context, input: element.connectOrCreate, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.DeleteSpecifiedRelationInput>(element, 'delete')) {\n\t\t\t\tresult = processor.delete({ ...context, input: element.delete, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.DisconnectSpecifiedRelationInput>(element, 'disconnect')) {\n\t\t\t\tresult = processor.disconnect({ ...context, input: element.disconnect, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.UpdateSpecifiedRelationInput>(element, 'update')) {\n\t\t\t\tresult = processor.update({\n\t\t\t\t\t...context,\n\t\t\t\t\tinput: { where: element.update.by, data: element.update.data },\n\t\t\t\t\tindex: i,\n\t\t\t\t\talias,\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (isIt<Input.UpsertSpecifiedRelationInput>(element, 'upsert')) {\n\t\t\t\tresult = processor.upsert({\n\t\t\t\t\t...context,\n\t\t\t\t\tinput: { where: element.upsert.by, update: element.upsert.update, create: element.upsert.create },\n\t\t\t\t\tindex: i,\n\t\t\t\t\talias,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (result !== undefined) {\n\t\t\t\tresults.push(await result)\n\t\t\t}\n\t\t}\n\t\treturn results\n\t}\n\n\tprivate verifyOperations(input: object) {\n\t\tconst keys = Object.keys(input).filter(it => it !== 'alias')\n\t\tconst ops = Object.values(Input.UpdateRelationOperation) as string[]\n\t\tif (keys.length !== 1 || !ops.includes(keys[0])) {\n\t\t\tconst found = keys.length === 0 ? 'none' : keys.join(', ')\n\t\t\tthrow new UserError(\n\t\t\t\t`Expected exactly one of: ${ops.join(', ')}. ${found} found.`,\n\t\t\t)\n\t\t}\n\t}\n}\n"],"names":["schema","filterObject","isIt","ImplementationException","Input","UserError"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateInputVisitor.js","sources":["../../../../../packages/engine-content-api/src/inputProcessing/UpdateInputVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { filterObject, isIt } from '../utils'\nimport { UpdateInputProcessor } from './UpdateInputProcessor'\nimport { ImplementationException, UserError } from '../exception'\n\nexport class UpdateInputVisitor<Result> implements\n\tModel.ColumnVisitor<Promise<Result[]>>,\n\tModel.RelationByTypeVisitor<Promise<Result[]>> {\n\n\tconstructor(\n\t\tprivate readonly updateInputProcessor: UpdateInputProcessor<Result>,\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly data: Input.UpdateDataInput,\n\t) {}\n\n\tpublic async visitColumn({ entity, column }: Model.ColumnContext): Promise<Result[]> {\n\t\treturn [await this.updateInputProcessor.column({\n\t\t\tentity,\n\t\t\tcolumn,\n\t\t\tinput: this.data[column.name] as Input.ColumnValue,\n\t\t})]\n\t}\n\n\tpublic visitManyHasManyInverse(context: Model.ManyHasManyInverseContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasManyInverse,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitManyHasManyOwning(context: Model.ManyHasManyOwningContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasManyOwning,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitManyHasOne(context: Model.ManyHasOneContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasOne,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasMany(context: Model.OneHasManyContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasMany,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasOneInverse(context: Model.OneHasOneInverseContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasOneInverse,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasOneOwning(context: Model.OneHasOneOwningContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasOneOwning,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tprivate async processRelationInput<Context>(\n\t\tprocessor: UpdateInputProcessor.HasOneRelationInputProcessor<Context, Result>,\n\t\tcontext: Context,\n\t\tinput: Input.UpdateOneRelationInput | undefined,\n\t): Promise< Result[]> {\n\t\tif (input === undefined || input === null) {\n\t\t\treturn Promise.resolve([])\n\t\t}\n\t\tinput = filterObject(input, (k, v) => v !== null && v !== undefined)\n\t\tthis.verifyOperations(input)\n\t\tif (isIt<Input.ConnectRelationInput>(input, 'connect')) {\n\t\t\treturn [await processor.connect({ ...context, input: input.connect })]\n\t\t}\n\t\tif (isIt<Input.CreateRelationInput>(input, 'create')) {\n\t\t\treturn [await processor.create({ ...context, input: input.create })]\n\t\t}\n\t\tif (isIt<Input.ConnectOrCreateRelationInput>(input, 'connectOrCreate')) {\n\t\t\treturn [await processor.connectOrCreate({ ...context, input: input.connectOrCreate })]\n\t\t}\n\t\tif (isIt<Input.DeleteRelationInput>(input, 'delete')) {\n\t\t\treturn [await processor.delete({ ...context, input: undefined })]\n\t\t}\n\t\tif (isIt<Input.DisconnectRelationInput>(input, 'disconnect')) {\n\t\t\treturn [await processor.disconnect({ ...context, input: undefined })]\n\t\t}\n\t\tif (isIt<Input.UpdateRelationInput>(input, 'update')) {\n\t\t\treturn [await processor.update({ ...context, input: input.update })]\n\t\t}\n\t\tif (isIt<Input.UpsertRelationInput>(input, 'upsert')) {\n\t\t\treturn [await processor.upsert({ ...context, input: input.upsert })]\n\t\t}\n\t\tthrow new ImplementationException()\n\t}\n\n\tprivate async processManyRelationInput<Context>(\n\t\tprocessor: UpdateInputProcessor.HasManyRelationInputProcessor<Context, Result>,\n\t\tcontext: Context,\n\t\tinput: Input.UpdateManyRelationInput | undefined,\n\t): Promise<Result[]> {\n\t\tif (input === undefined || input === null) {\n\t\t\treturn Promise.resolve([])\n\t\t}\n\t\tconst results: Array<Result> = []\n\t\tlet i = 0\n\t\tfor (let element of input) {\n\t\t\tconst alias = element.alias\n\t\t\telement = filterObject(element, (k, v) => v !== null && v !== undefined)\n\t\t\tthis.verifyOperations(element)\n\t\t\tlet result\n\t\t\tif (isIt<Input.ConnectRelationInput>(element, 'connect')) {\n\t\t\t\tresult = processor.connect({ ...context, input: element.connect, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.CreateRelationInput>(element, 'create')) {\n\t\t\t\tresult = processor.create({ ...context, input: element.create, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.ConnectOrCreateRelationInput>(element, 'connectOrCreate')) {\n\t\t\t\tresult = processor.connectOrCreate({ ...context, input: element.connectOrCreate, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.DeleteSpecifiedRelationInput>(element, 'delete')) {\n\t\t\t\tresult = processor.delete({ ...context, input: element.delete, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.DisconnectSpecifiedRelationInput>(element, 'disconnect')) {\n\t\t\t\tresult = processor.disconnect({ ...context, input: element.disconnect, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.UpdateSpecifiedRelationInput>(element, 'update')) {\n\t\t\t\tresult = processor.update({\n\t\t\t\t\t...context,\n\t\t\t\t\tinput: { where: element.update.by, data: element.update.data },\n\t\t\t\t\tindex: i,\n\t\t\t\t\talias,\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (isIt<Input.UpsertSpecifiedRelationInput>(element, 'upsert')) {\n\t\t\t\tresult = processor.upsert({\n\t\t\t\t\t...context,\n\t\t\t\t\tinput: { where: element.upsert.by, update: element.upsert.update, create: element.upsert.create },\n\t\t\t\t\tindex: i,\n\t\t\t\t\talias,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (result !== undefined) {\n\t\t\t\tresults.push(await result)\n\t\t\t}\n\t\t}\n\t\treturn results\n\t}\n\n\tprivate verifyOperations(input: object) {\n\t\tconst keys = Object.keys(input).filter(it => it !== 'alias')\n\t\tconst ops = Object.values(Input.UpdateRelationOperation) as string[]\n\t\tif (keys.length !== 1 || !ops.includes(keys[0])) {\n\t\t\tconst found = keys.length === 0 ? 'none' : keys.join(', ')\n\t\t\tthrow new UserError(\n\t\t\t\t`Expected exactly one of: ${ops.join(', ')}. ${found} found.`,\n\t\t\t)\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UpdateInputVisitor.js","sources":["../../../../../packages/engine-content-api/src/inputProcessing/UpdateInputVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { filterObject, isIt } from '../utils'\nimport { UpdateInputProcessor } from './UpdateInputProcessor'\nimport { ImplementationException, UserError } from '../exception'\n\nexport class UpdateInputVisitor<Result> implements\n\tModel.ColumnVisitor<Promise<Result[]>>,\n\tModel.RelationByTypeVisitor<Promise<Result[]>> {\n\n\tconstructor(\n\t\tprivate readonly updateInputProcessor: UpdateInputProcessor<Result>,\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly data: Input.UpdateDataInput,\n\t) {}\n\n\tpublic async visitColumn({ entity, column }: Model.ColumnContext): Promise<Result[]> {\n\t\treturn [await this.updateInputProcessor.column({\n\t\t\tentity,\n\t\t\tcolumn,\n\t\t\tinput: this.data[column.name] as Input.ColumnValue,\n\t\t})]\n\t}\n\n\tpublic visitManyHasManyInverse(context: Model.ManyHasManyInverseContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasManyInverse,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitManyHasManyOwning(context: Model.ManyHasManyOwningContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasManyOwning,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitManyHasOne(context: Model.ManyHasOneContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasOne,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasMany(context: Model.OneHasManyContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasMany,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasOneInverse(context: Model.OneHasOneInverseContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasOneInverse,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasOneOwning(context: Model.OneHasOneOwningContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasOneOwning,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tprivate async processRelationInput<Context>(\n\t\tprocessor: UpdateInputProcessor.HasOneRelationInputProcessor<Context, Result>,\n\t\tcontext: Context,\n\t\tinput: Input.UpdateOneRelationInput | undefined,\n\t): Promise< Result[]> {\n\t\tif (input === undefined || input === null) {\n\t\t\treturn Promise.resolve([])\n\t\t}\n\t\tinput = filterObject(input, (k, v) => v !== null && v !== undefined)\n\t\tthis.verifyOperations(input)\n\t\tif (isIt<Input.ConnectRelationInput>(input, 'connect')) {\n\t\t\treturn [await processor.connect({ ...context, input: input.connect })]\n\t\t}\n\t\tif (isIt<Input.CreateRelationInput>(input, 'create')) {\n\t\t\treturn [await processor.create({ ...context, input: input.create })]\n\t\t}\n\t\tif (isIt<Input.ConnectOrCreateRelationInput>(input, 'connectOrCreate')) {\n\t\t\treturn [await processor.connectOrCreate({ ...context, input: input.connectOrCreate })]\n\t\t}\n\t\tif (isIt<Input.DeleteRelationInput>(input, 'delete')) {\n\t\t\treturn [await processor.delete({ ...context, input: undefined })]\n\t\t}\n\t\tif (isIt<Input.DisconnectRelationInput>(input, 'disconnect')) {\n\t\t\treturn [await processor.disconnect({ ...context, input: undefined })]\n\t\t}\n\t\tif (isIt<Input.UpdateRelationInput>(input, 'update')) {\n\t\t\treturn [await processor.update({ ...context, input: input.update })]\n\t\t}\n\t\tif (isIt<Input.UpsertRelationInput>(input, 'upsert')) {\n\t\t\treturn [await processor.upsert({ ...context, input: input.upsert })]\n\t\t}\n\t\tthrow new ImplementationException()\n\t}\n\n\tprivate async processManyRelationInput<Context>(\n\t\tprocessor: UpdateInputProcessor.HasManyRelationInputProcessor<Context, Result>,\n\t\tcontext: Context,\n\t\tinput: Input.UpdateManyRelationInput | undefined,\n\t): Promise<Result[]> {\n\t\tif (input === undefined || input === null) {\n\t\t\treturn Promise.resolve([])\n\t\t}\n\t\tconst results: Array<Result> = []\n\t\tlet i = 0\n\t\tfor (let element of input) {\n\t\t\tconst alias = element.alias\n\t\t\telement = filterObject(element, (k, v) => v !== null && v !== undefined)\n\t\t\tthis.verifyOperations(element)\n\t\t\tlet result\n\t\t\tif (isIt<Input.ConnectRelationInput>(element, 'connect')) {\n\t\t\t\tresult = processor.connect({ ...context, input: element.connect, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.CreateRelationInput>(element, 'create')) {\n\t\t\t\tresult = processor.create({ ...context, input: element.create, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.ConnectOrCreateRelationInput>(element, 'connectOrCreate')) {\n\t\t\t\tresult = processor.connectOrCreate({ ...context, input: element.connectOrCreate, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.DeleteSpecifiedRelationInput>(element, 'delete')) {\n\t\t\t\tresult = processor.delete({ ...context, input: element.delete, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.DisconnectSpecifiedRelationInput>(element, 'disconnect')) {\n\t\t\t\tresult = processor.disconnect({ ...context, input: element.disconnect, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.UpdateSpecifiedRelationInput>(element, 'update')) {\n\t\t\t\tresult = processor.update({\n\t\t\t\t\t...context,\n\t\t\t\t\tinput: { where: element.update.by, data: element.update.data },\n\t\t\t\t\tindex: i,\n\t\t\t\t\talias,\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (isIt<Input.UpsertSpecifiedRelationInput>(element, 'upsert')) {\n\t\t\t\tresult = processor.upsert({\n\t\t\t\t\t...context,\n\t\t\t\t\tinput: { where: element.upsert.by, update: element.upsert.update, create: element.upsert.create },\n\t\t\t\t\tindex: i,\n\t\t\t\t\talias,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (result !== undefined) {\n\t\t\t\tresults.push(await result)\n\t\t\t}\n\t\t}\n\t\treturn results\n\t}\n\n\tprivate verifyOperations(input: object) {\n\t\tconst keys = Object.keys(input).filter(it => it !== 'alias')\n\t\tconst ops = Object.values(Input.UpdateRelationOperation) as string[]\n\t\tif (keys.length !== 1 || !ops.includes(keys[0])) {\n\t\t\tconst found = keys.length === 0 ? 'none' : keys.join(', ')\n\t\t\tthrow new UserError(\n\t\t\t\t`Expected exactly one of: ${ops.join(', ')}. ${found} found.`,\n\t\t\t)\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IntrospectionSchemaDefinitionFactory.cjs","sources":["../../../../../packages/engine-content-api/src/introspection/IntrospectionSchemaDefinitionFactory.ts"],"sourcesContent":["import { GraphQLSchema, GraphQLSchemaConfig } from 'graphql'\nimport * as ContentSchema from './content-schema.types'\nimport { IntrospectionSchemaFactory } from './IntrospectionSchemaFactory'\nimport { createSchemaConfig } from './introspection.schema'\n\nexport class IntrospectionSchemaDefinitionFactory {\n\tconstructor(private readonly introspectionSchemaFactory: IntrospectionSchemaFactory) {}\n\n\tpublic create(): GraphQLSchema {\n\t\treturn new GraphQLSchema(this.createConfig())\n\t}\n\n\tpublic createConfig(): GraphQLSchemaConfig {\n\t\treturn createSchemaConfig((): ContentSchema._Schema => {\n\t\t\treturn this.introspectionSchemaFactory.create()\n\t\t})\n\t}\n}\n"],"names":["GraphQLSchema","createSchemaConfig"],"mappings":";;;;AAKO,MAAM,qCAAqC;AAAA,EACjD,YAA6B,4BAAwD;AAAxD,SAAA,6BAAA;AAAA,EAAyD;AAAA,EAE/E,SAAwB;AAC9B,WAAO,IAAIA,QAAA,cAAc,KAAK,aAAc,CAAA;AAAA,EAC7C;AAAA,EAEO,eAAoC;AAC1C,WAAOC,wCAAmB,MAA6B;AAC/C,aAAA,KAAK,2BAA2B;IAAO,CAC9C;AAAA,EACF;AACD;;"}
1
+ {"version":3,"file":"IntrospectionSchemaDefinitionFactory.cjs","sources":["../../../../../packages/engine-content-api/src/introspection/IntrospectionSchemaDefinitionFactory.ts"],"sourcesContent":["import { GraphQLSchema, GraphQLSchemaConfig } from 'graphql'\nimport * as ContentSchema from './content-schema.types'\nimport { IntrospectionSchemaFactory } from './IntrospectionSchemaFactory'\nimport { createSchemaConfig } from './introspection.schema'\n\nexport class IntrospectionSchemaDefinitionFactory {\n\tconstructor(private readonly introspectionSchemaFactory: IntrospectionSchemaFactory) {}\n\n\tpublic create(): GraphQLSchema {\n\t\treturn new GraphQLSchema(this.createConfig())\n\t}\n\n\tpublic createConfig(): GraphQLSchemaConfig {\n\t\treturn createSchemaConfig((): ContentSchema._Schema => {\n\t\t\treturn this.introspectionSchemaFactory.create()\n\t\t})\n\t}\n}\n"],"names":["GraphQLSchema","createSchemaConfig"],"mappings":";;;;AAKO,MAAM,qCAAqC;AAAA,EACjD,YAA6B,4BAAwD;AAAxD,SAAA,6BAAA;AAAA,EAAA;AAAA,EAEtB,SAAwB;AAC9B,WAAO,IAAIA,QAAA,cAAc,KAAK,cAAc;AAAA,EAAA;AAAA,EAGtC,eAAoC;AAC1C,WAAOC,wCAAmB,MAA6B;AAC/C,aAAA,KAAK,2BAA2B,OAAO;AAAA,IAAA,CAC9C;AAAA,EAAA;AAEH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IntrospectionSchemaDefinitionFactory.js","sources":["../../../../../packages/engine-content-api/src/introspection/IntrospectionSchemaDefinitionFactory.ts"],"sourcesContent":["import { GraphQLSchema, GraphQLSchemaConfig } from 'graphql'\nimport * as ContentSchema from './content-schema.types'\nimport { IntrospectionSchemaFactory } from './IntrospectionSchemaFactory'\nimport { createSchemaConfig } from './introspection.schema'\n\nexport class IntrospectionSchemaDefinitionFactory {\n\tconstructor(private readonly introspectionSchemaFactory: IntrospectionSchemaFactory) {}\n\n\tpublic create(): GraphQLSchema {\n\t\treturn new GraphQLSchema(this.createConfig())\n\t}\n\n\tpublic createConfig(): GraphQLSchemaConfig {\n\t\treturn createSchemaConfig((): ContentSchema._Schema => {\n\t\t\treturn this.introspectionSchemaFactory.create()\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AAKO,MAAM,qCAAqC;AAAA,EACjD,YAA6B,4BAAwD;AAAxD,SAAA,6BAAA;AAAA,EAAyD;AAAA,EAE/E,SAAwB;AAC9B,WAAO,IAAI,cAAc,KAAK,aAAc,CAAA;AAAA,EAC7C;AAAA,EAEO,eAAoC;AAC1C,WAAO,mBAAmB,MAA6B;AAC/C,aAAA,KAAK,2BAA2B;IAAO,CAC9C;AAAA,EACF;AACD;"}
1
+ {"version":3,"file":"IntrospectionSchemaDefinitionFactory.js","sources":["../../../../../packages/engine-content-api/src/introspection/IntrospectionSchemaDefinitionFactory.ts"],"sourcesContent":["import { GraphQLSchema, GraphQLSchemaConfig } from 'graphql'\nimport * as ContentSchema from './content-schema.types'\nimport { IntrospectionSchemaFactory } from './IntrospectionSchemaFactory'\nimport { createSchemaConfig } from './introspection.schema'\n\nexport class IntrospectionSchemaDefinitionFactory {\n\tconstructor(private readonly introspectionSchemaFactory: IntrospectionSchemaFactory) {}\n\n\tpublic create(): GraphQLSchema {\n\t\treturn new GraphQLSchema(this.createConfig())\n\t}\n\n\tpublic createConfig(): GraphQLSchemaConfig {\n\t\treturn createSchemaConfig((): ContentSchema._Schema => {\n\t\t\treturn this.introspectionSchemaFactory.create()\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AAKO,MAAM,qCAAqC;AAAA,EACjD,YAA6B,4BAAwD;AAAxD,SAAA,6BAAA;AAAA,EAAA;AAAA,EAEtB,SAAwB;AAC9B,WAAO,IAAI,cAAc,KAAK,cAAc;AAAA,EAAA;AAAA,EAGtC,eAAoC;AAC1C,WAAO,mBAAmB,MAA6B;AAC/C,aAAA,KAAK,2BAA2B,OAAO;AAAA,IAAA,CAC9C;AAAA,EAAA;AAEH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"IntrospectionSchemaFactory.cjs","sources":["../../../../../packages/engine-content-api/src/introspection/IntrospectionSchemaFactory.ts"],"sourcesContent":["import { Acl, Model, Validation } from '@contember/schema'\nimport { EntityRulesResolver } from '../input-validation'\nimport { Authorizator } from '../acl'\nimport * as ContentSchema from './content-schema.types'\nimport { assertNever } from '../utils'\nimport { acceptEveryFieldVisitor, getEntity } from '@contember/schema-utils'\n\ntype AdditionalFieldInfo =\n\t| Omit<ContentSchema._Relation, 'name' | 'type' | 'rules' | 'validators'>\n\t| Omit<ContentSchema._Column, 'name' | 'type' | 'rules' | 'validators'>\n\nexport class IntrospectionSchemaFactory {\n\tconstructor(\n\t\tprivate readonly model: Model.Schema,\n\t\tprivate readonly rulesResolver: EntityRulesResolver,\n\t\tprivate readonly authorizator: Authorizator,\n\t) {}\n\n\tcreateFieldsSchema(entityName: string): readonly (ContentSchema._Column | ContentSchema._Relation)[] {\n\t\tconst entityRules = this.rulesResolver.getEntityRules(entityName)\n\t\tconst convertOnDelete = (onDelete: Model.OnDelete): ContentSchema._OnDeleteBehaviour => {\n\t\t\tswitch (onDelete) {\n\t\t\t\tcase Model.OnDelete.cascade:\n\t\t\t\t\treturn ContentSchema._OnDeleteBehaviour.Cascade\n\t\t\t\tcase Model.OnDelete.restrict:\n\t\t\t\t\treturn ContentSchema._OnDeleteBehaviour.Restrict\n\t\t\t\tcase Model.OnDelete.setNull:\n\t\t\t\t\treturn ContentSchema._OnDeleteBehaviour.SetNull\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(onDelete)\n\t\t\t}\n\t\t}\n\t\tconst convertOrderBy = ({ path, direction }: Model.OrderBy): ContentSchema._OrderBy => {\n\t\t\treturn {\n\t\t\t\tpath,\n\t\t\t\tdirection:\n\t\t\t\t\tdirection === Model.OrderDirection.desc\n\t\t\t\t\t\t? ContentSchema._OrderByDirection.Desc\n\t\t\t\t\t\t: ContentSchema._OrderByDirection.Asc,\n\t\t\t}\n\t\t}\n\t\tconst additionalInfo = acceptEveryFieldVisitor<AdditionalFieldInfo>(this.model, entityName, {\n\t\t\tvisitManyHasManyInverse({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Inverse,\n\t\t\t\t\townedBy: relation.ownedBy,\n\t\t\t\t\torderBy: relation.orderBy?.map(convertOrderBy),\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitManyHasManyOwning({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Owning,\n\t\t\t\t\tinversedBy: relation.inversedBy,\n\t\t\t\t\torderBy: relation.orderBy?.map(convertOrderBy),\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitManyHasOne({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Owning,\n\t\t\t\t\tinversedBy: relation.inversedBy,\n\t\t\t\t\tonDelete: convertOnDelete(relation.joiningColumn.onDelete),\n\t\t\t\t\tnullable: relation.nullable,\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitOneHasMany({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Inverse,\n\t\t\t\t\townedBy: relation.ownedBy,\n\t\t\t\t\torderBy: relation.orderBy?.map(convertOrderBy),\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitOneHasOneInverse({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Inverse,\n\t\t\t\t\townedBy: relation.ownedBy,\n\t\t\t\t\tnullable: relation.nullable,\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitOneHasOneOwning({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Owning,\n\t\t\t\t\tinversedBy: relation.inversedBy,\n\t\t\t\t\tonDelete: convertOnDelete(relation.joiningColumn.onDelete),\n\t\t\t\t\tnullable: relation.nullable,\n\t\t\t\t\torphanRemoval: relation.orphanRemoval === true,\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitColumn({ column }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Column',\n\t\t\t\t\tdefaultValue: column.default ?? undefined,\n\t\t\t\t\tenumName: column.type === Model.ColumnType.Enum ? column.columnType : null,\n\t\t\t\t\tnullable: column.nullable,\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\t\treturn Object.values(getEntity(this.model, entityName).fields)\n\t\t\t.filter(it => this.authorizator.getFieldPermissions(Acl.Operation.read, entityName, it.name) !== 'no')\n\t\t\t.map((it): ContentSchema._Column | ContentSchema._Relation => ({\n\t\t\t\t...additionalInfo[it.name],\n\t\t\t\tname: it.name,\n\t\t\t\ttype: it.type,\n\t\t\t\t...this.createValidationSchema(entityRules[it.name] || []),\n\t\t\t}))\n\t}\n\n\tcreateValidationSchema(rules: readonly Validation.ValidationRule[]): Pick<ContentSchema._Field, 'rules' | 'validators'> {\n\t\tconst validators: ContentSchema._Validator[] = []\n\n\t\tconst processValidator = (validator: Validation.Validator) => {\n\t\t\tconst i = validators.length\n\t\t\tconst args: (ContentSchema._Argument & { __typename: string })[] = []\n\t\t\tconst apiValidator: ContentSchema._Validator = { operation: validator.operation, arguments: args }\n\t\t\tvalidators.push(apiValidator)\n\t\t\tfor (const arg of validator.args) {\n\t\t\t\tswitch (arg.type) {\n\t\t\t\t\tcase Validation.ArgumentType.path:\n\t\t\t\t\t\targs.push({ __typename: '_PathArgument', path: arg.path })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase Validation.ArgumentType.literal:\n\t\t\t\t\t\targs.push({ __typename: '_LiteralArgument', value: arg.value })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase Validation.ArgumentType.validator:\n\t\t\t\t\t\targs.push({ __typename: '_ValidatorArgument', validator: processValidator(arg.validator) })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tassertNever(arg)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn i\n\t\t}\n\n\t\tconst processedRules = rules.map(\n\t\t\t(it): ContentSchema._Rule => ({ message: it.message, validator: processValidator(it.validator) }),\n\t\t)\n\t\treturn {\n\t\t\trules: processedRules,\n\t\t\tvalidators: validators,\n\t\t}\n\t}\n\n\tpublic create(): ContentSchema._Schema {\n\t\tconst entities = Object.values(this.model.entities)\n\t\t\t.filter(it => this.authorizator.getEntityPermission(Acl.Operation.read, it.name) !== 'no')\n\t\t\t.map(entity => ({\n\t\t\t\tname: entity.name,\n\t\t\t\tcustomPrimaryAllowed: this.authorizator.isCustomPrimaryAllowed(entity.name),\n\t\t\t\tfields: this.createFieldsSchema(entity.name),\n\t\t\t\tunique: Object.values(entity.unique).map(({ fields }) => ({ fields })),\n\t\t\t}))\n\t\tconst usedEnums = new Set(\n\t\t\tentities\n\t\t\t\t.flatMap(it => it.fields)\n\t\t\t\t.map(it => (it.__typename === '_Column' ? it.enumName : undefined))\n\t\t\t\t.filter((it): it is string => !!it),\n\t\t)\n\t\tconst enums = Object.entries(this.model.enums)\n\t\t\t.filter(([name]) => usedEnums.has(name))\n\t\t\t.map(([name, values]) => ({ name, values }))\n\t\treturn {\n\t\t\tenums,\n\t\t\tentities,\n\t\t}\n\t}\n}\n"],"names":["Model","ContentSchema._OnDeleteBehaviour","assertNever","ContentSchema._OrderByDirection","acceptEveryFieldVisitor","ContentSchema._RelationSide","getEntity","Acl","Validation"],"mappings":"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"}
1
+ {"version":3,"file":"IntrospectionSchemaFactory.cjs","sources":["../../../../../packages/engine-content-api/src/introspection/IntrospectionSchemaFactory.ts"],"sourcesContent":["import { Acl, Model, Validation } from '@contember/schema'\nimport { EntityRulesResolver } from '../input-validation'\nimport { Authorizator } from '../acl'\nimport * as ContentSchema from './content-schema.types'\nimport { assertNever } from '../utils'\nimport { acceptEveryFieldVisitor, getEntity } from '@contember/schema-utils'\n\ntype AdditionalFieldInfo =\n\t| Omit<ContentSchema._Relation, 'name' | 'type' | 'rules' | 'validators'>\n\t| Omit<ContentSchema._Column, 'name' | 'type' | 'rules' | 'validators'>\n\nexport class IntrospectionSchemaFactory {\n\tconstructor(\n\t\tprivate readonly model: Model.Schema,\n\t\tprivate readonly rulesResolver: EntityRulesResolver,\n\t\tprivate readonly authorizator: Authorizator,\n\t) {}\n\n\tcreateFieldsSchema(entityName: string): readonly (ContentSchema._Column | ContentSchema._Relation)[] {\n\t\tconst entityRules = this.rulesResolver.getEntityRules(entityName)\n\t\tconst convertOnDelete = (onDelete: Model.OnDelete): ContentSchema._OnDeleteBehaviour => {\n\t\t\tswitch (onDelete) {\n\t\t\t\tcase Model.OnDelete.cascade:\n\t\t\t\t\treturn ContentSchema._OnDeleteBehaviour.Cascade\n\t\t\t\tcase Model.OnDelete.restrict:\n\t\t\t\t\treturn ContentSchema._OnDeleteBehaviour.Restrict\n\t\t\t\tcase Model.OnDelete.setNull:\n\t\t\t\t\treturn ContentSchema._OnDeleteBehaviour.SetNull\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(onDelete)\n\t\t\t}\n\t\t}\n\t\tconst convertOrderBy = ({ path, direction }: Model.OrderBy): ContentSchema._OrderBy => {\n\t\t\treturn {\n\t\t\t\tpath,\n\t\t\t\tdirection:\n\t\t\t\t\tdirection === Model.OrderDirection.desc\n\t\t\t\t\t\t? ContentSchema._OrderByDirection.Desc\n\t\t\t\t\t\t: ContentSchema._OrderByDirection.Asc,\n\t\t\t}\n\t\t}\n\t\tconst additionalInfo = acceptEveryFieldVisitor<AdditionalFieldInfo>(this.model, entityName, {\n\t\t\tvisitManyHasManyInverse({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Inverse,\n\t\t\t\t\townedBy: relation.ownedBy,\n\t\t\t\t\torderBy: relation.orderBy?.map(convertOrderBy),\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitManyHasManyOwning({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Owning,\n\t\t\t\t\tinversedBy: relation.inversedBy,\n\t\t\t\t\torderBy: relation.orderBy?.map(convertOrderBy),\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitManyHasOne({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Owning,\n\t\t\t\t\tinversedBy: relation.inversedBy,\n\t\t\t\t\tonDelete: convertOnDelete(relation.joiningColumn.onDelete),\n\t\t\t\t\tnullable: relation.nullable,\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitOneHasMany({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Inverse,\n\t\t\t\t\townedBy: relation.ownedBy,\n\t\t\t\t\torderBy: relation.orderBy?.map(convertOrderBy),\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitOneHasOneInverse({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Inverse,\n\t\t\t\t\townedBy: relation.ownedBy,\n\t\t\t\t\tnullable: relation.nullable,\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitOneHasOneOwning({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Owning,\n\t\t\t\t\tinversedBy: relation.inversedBy,\n\t\t\t\t\tonDelete: convertOnDelete(relation.joiningColumn.onDelete),\n\t\t\t\t\tnullable: relation.nullable,\n\t\t\t\t\torphanRemoval: relation.orphanRemoval === true,\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitColumn({ column }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Column',\n\t\t\t\t\tdefaultValue: column.default ?? undefined,\n\t\t\t\t\tenumName: column.type === Model.ColumnType.Enum ? column.columnType : null,\n\t\t\t\t\tnullable: column.nullable,\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\t\treturn Object.values(getEntity(this.model, entityName).fields)\n\t\t\t.filter(it => this.authorizator.getFieldPermissions(Acl.Operation.read, entityName, it.name) !== 'no')\n\t\t\t.map((it): ContentSchema._Column | ContentSchema._Relation => ({\n\t\t\t\t...additionalInfo[it.name],\n\t\t\t\tname: it.name,\n\t\t\t\ttype: it.type,\n\t\t\t\t...this.createValidationSchema(entityRules[it.name] || []),\n\t\t\t}))\n\t}\n\n\tcreateValidationSchema(rules: readonly Validation.ValidationRule[]): Pick<ContentSchema._Field, 'rules' | 'validators'> {\n\t\tconst validators: ContentSchema._Validator[] = []\n\n\t\tconst processValidator = (validator: Validation.Validator) => {\n\t\t\tconst i = validators.length\n\t\t\tconst args: (ContentSchema._Argument & { __typename: string })[] = []\n\t\t\tconst apiValidator: ContentSchema._Validator = { operation: validator.operation, arguments: args }\n\t\t\tvalidators.push(apiValidator)\n\t\t\tfor (const arg of validator.args) {\n\t\t\t\tswitch (arg.type) {\n\t\t\t\t\tcase Validation.ArgumentType.path:\n\t\t\t\t\t\targs.push({ __typename: '_PathArgument', path: arg.path })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase Validation.ArgumentType.literal:\n\t\t\t\t\t\targs.push({ __typename: '_LiteralArgument', value: arg.value })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase Validation.ArgumentType.validator:\n\t\t\t\t\t\targs.push({ __typename: '_ValidatorArgument', validator: processValidator(arg.validator) })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tassertNever(arg)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn i\n\t\t}\n\n\t\tconst processedRules = rules.map(\n\t\t\t(it): ContentSchema._Rule => ({ message: it.message, validator: processValidator(it.validator) }),\n\t\t)\n\t\treturn {\n\t\t\trules: processedRules,\n\t\t\tvalidators: validators,\n\t\t}\n\t}\n\n\tpublic create(): ContentSchema._Schema {\n\t\tconst entities = Object.values(this.model.entities)\n\t\t\t.filter(it => this.authorizator.getEntityPermission(Acl.Operation.read, it.name) !== 'no')\n\t\t\t.map(entity => ({\n\t\t\t\tname: entity.name,\n\t\t\t\tcustomPrimaryAllowed: this.authorizator.isCustomPrimaryAllowed(entity.name),\n\t\t\t\tfields: this.createFieldsSchema(entity.name),\n\t\t\t\tunique: Object.values(entity.unique).map(({ fields }) => ({ fields })),\n\t\t\t}))\n\t\tconst usedEnums = new Set(\n\t\t\tentities\n\t\t\t\t.flatMap(it => it.fields)\n\t\t\t\t.map(it => (it.__typename === '_Column' ? it.enumName : undefined))\n\t\t\t\t.filter((it): it is string => !!it),\n\t\t)\n\t\tconst enums = Object.entries(this.model.enums)\n\t\t\t.filter(([name]) => usedEnums.has(name))\n\t\t\t.map(([name, values]) => ({ name, values }))\n\t\treturn {\n\t\t\tenums,\n\t\t\tentities,\n\t\t}\n\t}\n}\n"],"names":["Model","ContentSchema._OnDeleteBehaviour","assertNever","ContentSchema._OrderByDirection","acceptEveryFieldVisitor","ContentSchema._RelationSide","getEntity","Acl","Validation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IntrospectionSchemaFactory.js","sources":["../../../../../packages/engine-content-api/src/introspection/IntrospectionSchemaFactory.ts"],"sourcesContent":["import { Acl, Model, Validation } from '@contember/schema'\nimport { EntityRulesResolver } from '../input-validation'\nimport { Authorizator } from '../acl'\nimport * as ContentSchema from './content-schema.types'\nimport { assertNever } from '../utils'\nimport { acceptEveryFieldVisitor, getEntity } from '@contember/schema-utils'\n\ntype AdditionalFieldInfo =\n\t| Omit<ContentSchema._Relation, 'name' | 'type' | 'rules' | 'validators'>\n\t| Omit<ContentSchema._Column, 'name' | 'type' | 'rules' | 'validators'>\n\nexport class IntrospectionSchemaFactory {\n\tconstructor(\n\t\tprivate readonly model: Model.Schema,\n\t\tprivate readonly rulesResolver: EntityRulesResolver,\n\t\tprivate readonly authorizator: Authorizator,\n\t) {}\n\n\tcreateFieldsSchema(entityName: string): readonly (ContentSchema._Column | ContentSchema._Relation)[] {\n\t\tconst entityRules = this.rulesResolver.getEntityRules(entityName)\n\t\tconst convertOnDelete = (onDelete: Model.OnDelete): ContentSchema._OnDeleteBehaviour => {\n\t\t\tswitch (onDelete) {\n\t\t\t\tcase Model.OnDelete.cascade:\n\t\t\t\t\treturn ContentSchema._OnDeleteBehaviour.Cascade\n\t\t\t\tcase Model.OnDelete.restrict:\n\t\t\t\t\treturn ContentSchema._OnDeleteBehaviour.Restrict\n\t\t\t\tcase Model.OnDelete.setNull:\n\t\t\t\t\treturn ContentSchema._OnDeleteBehaviour.SetNull\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(onDelete)\n\t\t\t}\n\t\t}\n\t\tconst convertOrderBy = ({ path, direction }: Model.OrderBy): ContentSchema._OrderBy => {\n\t\t\treturn {\n\t\t\t\tpath,\n\t\t\t\tdirection:\n\t\t\t\t\tdirection === Model.OrderDirection.desc\n\t\t\t\t\t\t? ContentSchema._OrderByDirection.Desc\n\t\t\t\t\t\t: ContentSchema._OrderByDirection.Asc,\n\t\t\t}\n\t\t}\n\t\tconst additionalInfo = acceptEveryFieldVisitor<AdditionalFieldInfo>(this.model, entityName, {\n\t\t\tvisitManyHasManyInverse({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Inverse,\n\t\t\t\t\townedBy: relation.ownedBy,\n\t\t\t\t\torderBy: relation.orderBy?.map(convertOrderBy),\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitManyHasManyOwning({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Owning,\n\t\t\t\t\tinversedBy: relation.inversedBy,\n\t\t\t\t\torderBy: relation.orderBy?.map(convertOrderBy),\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitManyHasOne({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Owning,\n\t\t\t\t\tinversedBy: relation.inversedBy,\n\t\t\t\t\tonDelete: convertOnDelete(relation.joiningColumn.onDelete),\n\t\t\t\t\tnullable: relation.nullable,\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitOneHasMany({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Inverse,\n\t\t\t\t\townedBy: relation.ownedBy,\n\t\t\t\t\torderBy: relation.orderBy?.map(convertOrderBy),\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitOneHasOneInverse({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Inverse,\n\t\t\t\t\townedBy: relation.ownedBy,\n\t\t\t\t\tnullable: relation.nullable,\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitOneHasOneOwning({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Owning,\n\t\t\t\t\tinversedBy: relation.inversedBy,\n\t\t\t\t\tonDelete: convertOnDelete(relation.joiningColumn.onDelete),\n\t\t\t\t\tnullable: relation.nullable,\n\t\t\t\t\torphanRemoval: relation.orphanRemoval === true,\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitColumn({ column }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Column',\n\t\t\t\t\tdefaultValue: column.default ?? undefined,\n\t\t\t\t\tenumName: column.type === Model.ColumnType.Enum ? column.columnType : null,\n\t\t\t\t\tnullable: column.nullable,\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\t\treturn Object.values(getEntity(this.model, entityName).fields)\n\t\t\t.filter(it => this.authorizator.getFieldPermissions(Acl.Operation.read, entityName, it.name) !== 'no')\n\t\t\t.map((it): ContentSchema._Column | ContentSchema._Relation => ({\n\t\t\t\t...additionalInfo[it.name],\n\t\t\t\tname: it.name,\n\t\t\t\ttype: it.type,\n\t\t\t\t...this.createValidationSchema(entityRules[it.name] || []),\n\t\t\t}))\n\t}\n\n\tcreateValidationSchema(rules: readonly Validation.ValidationRule[]): Pick<ContentSchema._Field, 'rules' | 'validators'> {\n\t\tconst validators: ContentSchema._Validator[] = []\n\n\t\tconst processValidator = (validator: Validation.Validator) => {\n\t\t\tconst i = validators.length\n\t\t\tconst args: (ContentSchema._Argument & { __typename: string })[] = []\n\t\t\tconst apiValidator: ContentSchema._Validator = { operation: validator.operation, arguments: args }\n\t\t\tvalidators.push(apiValidator)\n\t\t\tfor (const arg of validator.args) {\n\t\t\t\tswitch (arg.type) {\n\t\t\t\t\tcase Validation.ArgumentType.path:\n\t\t\t\t\t\targs.push({ __typename: '_PathArgument', path: arg.path })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase Validation.ArgumentType.literal:\n\t\t\t\t\t\targs.push({ __typename: '_LiteralArgument', value: arg.value })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase Validation.ArgumentType.validator:\n\t\t\t\t\t\targs.push({ __typename: '_ValidatorArgument', validator: processValidator(arg.validator) })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tassertNever(arg)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn i\n\t\t}\n\n\t\tconst processedRules = rules.map(\n\t\t\t(it): ContentSchema._Rule => ({ message: it.message, validator: processValidator(it.validator) }),\n\t\t)\n\t\treturn {\n\t\t\trules: processedRules,\n\t\t\tvalidators: validators,\n\t\t}\n\t}\n\n\tpublic create(): ContentSchema._Schema {\n\t\tconst entities = Object.values(this.model.entities)\n\t\t\t.filter(it => this.authorizator.getEntityPermission(Acl.Operation.read, it.name) !== 'no')\n\t\t\t.map(entity => ({\n\t\t\t\tname: entity.name,\n\t\t\t\tcustomPrimaryAllowed: this.authorizator.isCustomPrimaryAllowed(entity.name),\n\t\t\t\tfields: this.createFieldsSchema(entity.name),\n\t\t\t\tunique: Object.values(entity.unique).map(({ fields }) => ({ fields })),\n\t\t\t}))\n\t\tconst usedEnums = new Set(\n\t\t\tentities\n\t\t\t\t.flatMap(it => it.fields)\n\t\t\t\t.map(it => (it.__typename === '_Column' ? it.enumName : undefined))\n\t\t\t\t.filter((it): it is string => !!it),\n\t\t)\n\t\tconst enums = Object.entries(this.model.enums)\n\t\t\t.filter(([name]) => usedEnums.has(name))\n\t\t\t.map(([name, values]) => ({ name, values }))\n\t\treturn {\n\t\t\tenums,\n\t\t\tentities,\n\t\t}\n\t}\n}\n"],"names":["ContentSchema._OnDeleteBehaviour","ContentSchema._OrderByDirection","ContentSchema._RelationSide"],"mappings":"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"}
1
+ {"version":3,"file":"IntrospectionSchemaFactory.js","sources":["../../../../../packages/engine-content-api/src/introspection/IntrospectionSchemaFactory.ts"],"sourcesContent":["import { Acl, Model, Validation } from '@contember/schema'\nimport { EntityRulesResolver } from '../input-validation'\nimport { Authorizator } from '../acl'\nimport * as ContentSchema from './content-schema.types'\nimport { assertNever } from '../utils'\nimport { acceptEveryFieldVisitor, getEntity } from '@contember/schema-utils'\n\ntype AdditionalFieldInfo =\n\t| Omit<ContentSchema._Relation, 'name' | 'type' | 'rules' | 'validators'>\n\t| Omit<ContentSchema._Column, 'name' | 'type' | 'rules' | 'validators'>\n\nexport class IntrospectionSchemaFactory {\n\tconstructor(\n\t\tprivate readonly model: Model.Schema,\n\t\tprivate readonly rulesResolver: EntityRulesResolver,\n\t\tprivate readonly authorizator: Authorizator,\n\t) {}\n\n\tcreateFieldsSchema(entityName: string): readonly (ContentSchema._Column | ContentSchema._Relation)[] {\n\t\tconst entityRules = this.rulesResolver.getEntityRules(entityName)\n\t\tconst convertOnDelete = (onDelete: Model.OnDelete): ContentSchema._OnDeleteBehaviour => {\n\t\t\tswitch (onDelete) {\n\t\t\t\tcase Model.OnDelete.cascade:\n\t\t\t\t\treturn ContentSchema._OnDeleteBehaviour.Cascade\n\t\t\t\tcase Model.OnDelete.restrict:\n\t\t\t\t\treturn ContentSchema._OnDeleteBehaviour.Restrict\n\t\t\t\tcase Model.OnDelete.setNull:\n\t\t\t\t\treturn ContentSchema._OnDeleteBehaviour.SetNull\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(onDelete)\n\t\t\t}\n\t\t}\n\t\tconst convertOrderBy = ({ path, direction }: Model.OrderBy): ContentSchema._OrderBy => {\n\t\t\treturn {\n\t\t\t\tpath,\n\t\t\t\tdirection:\n\t\t\t\t\tdirection === Model.OrderDirection.desc\n\t\t\t\t\t\t? ContentSchema._OrderByDirection.Desc\n\t\t\t\t\t\t: ContentSchema._OrderByDirection.Asc,\n\t\t\t}\n\t\t}\n\t\tconst additionalInfo = acceptEveryFieldVisitor<AdditionalFieldInfo>(this.model, entityName, {\n\t\t\tvisitManyHasManyInverse({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Inverse,\n\t\t\t\t\townedBy: relation.ownedBy,\n\t\t\t\t\torderBy: relation.orderBy?.map(convertOrderBy),\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitManyHasManyOwning({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Owning,\n\t\t\t\t\tinversedBy: relation.inversedBy,\n\t\t\t\t\torderBy: relation.orderBy?.map(convertOrderBy),\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitManyHasOne({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Owning,\n\t\t\t\t\tinversedBy: relation.inversedBy,\n\t\t\t\t\tonDelete: convertOnDelete(relation.joiningColumn.onDelete),\n\t\t\t\t\tnullable: relation.nullable,\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitOneHasMany({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Inverse,\n\t\t\t\t\townedBy: relation.ownedBy,\n\t\t\t\t\torderBy: relation.orderBy?.map(convertOrderBy),\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitOneHasOneInverse({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Inverse,\n\t\t\t\t\townedBy: relation.ownedBy,\n\t\t\t\t\tnullable: relation.nullable,\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitOneHasOneOwning({ relation }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Relation',\n\t\t\t\t\ttargetEntity: relation.target,\n\t\t\t\t\tside: ContentSchema._RelationSide.Owning,\n\t\t\t\t\tinversedBy: relation.inversedBy,\n\t\t\t\t\tonDelete: convertOnDelete(relation.joiningColumn.onDelete),\n\t\t\t\t\tnullable: relation.nullable,\n\t\t\t\t\torphanRemoval: relation.orphanRemoval === true,\n\t\t\t\t}\n\t\t\t},\n\t\t\tvisitColumn({ column }) {\n\t\t\t\treturn {\n\t\t\t\t\t__typename: '_Column',\n\t\t\t\t\tdefaultValue: column.default ?? undefined,\n\t\t\t\t\tenumName: column.type === Model.ColumnType.Enum ? column.columnType : null,\n\t\t\t\t\tnullable: column.nullable,\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\t\treturn Object.values(getEntity(this.model, entityName).fields)\n\t\t\t.filter(it => this.authorizator.getFieldPermissions(Acl.Operation.read, entityName, it.name) !== 'no')\n\t\t\t.map((it): ContentSchema._Column | ContentSchema._Relation => ({\n\t\t\t\t...additionalInfo[it.name],\n\t\t\t\tname: it.name,\n\t\t\t\ttype: it.type,\n\t\t\t\t...this.createValidationSchema(entityRules[it.name] || []),\n\t\t\t}))\n\t}\n\n\tcreateValidationSchema(rules: readonly Validation.ValidationRule[]): Pick<ContentSchema._Field, 'rules' | 'validators'> {\n\t\tconst validators: ContentSchema._Validator[] = []\n\n\t\tconst processValidator = (validator: Validation.Validator) => {\n\t\t\tconst i = validators.length\n\t\t\tconst args: (ContentSchema._Argument & { __typename: string })[] = []\n\t\t\tconst apiValidator: ContentSchema._Validator = { operation: validator.operation, arguments: args }\n\t\t\tvalidators.push(apiValidator)\n\t\t\tfor (const arg of validator.args) {\n\t\t\t\tswitch (arg.type) {\n\t\t\t\t\tcase Validation.ArgumentType.path:\n\t\t\t\t\t\targs.push({ __typename: '_PathArgument', path: arg.path })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase Validation.ArgumentType.literal:\n\t\t\t\t\t\targs.push({ __typename: '_LiteralArgument', value: arg.value })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase Validation.ArgumentType.validator:\n\t\t\t\t\t\targs.push({ __typename: '_ValidatorArgument', validator: processValidator(arg.validator) })\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tassertNever(arg)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn i\n\t\t}\n\n\t\tconst processedRules = rules.map(\n\t\t\t(it): ContentSchema._Rule => ({ message: it.message, validator: processValidator(it.validator) }),\n\t\t)\n\t\treturn {\n\t\t\trules: processedRules,\n\t\t\tvalidators: validators,\n\t\t}\n\t}\n\n\tpublic create(): ContentSchema._Schema {\n\t\tconst entities = Object.values(this.model.entities)\n\t\t\t.filter(it => this.authorizator.getEntityPermission(Acl.Operation.read, it.name) !== 'no')\n\t\t\t.map(entity => ({\n\t\t\t\tname: entity.name,\n\t\t\t\tcustomPrimaryAllowed: this.authorizator.isCustomPrimaryAllowed(entity.name),\n\t\t\t\tfields: this.createFieldsSchema(entity.name),\n\t\t\t\tunique: Object.values(entity.unique).map(({ fields }) => ({ fields })),\n\t\t\t}))\n\t\tconst usedEnums = new Set(\n\t\t\tentities\n\t\t\t\t.flatMap(it => it.fields)\n\t\t\t\t.map(it => (it.__typename === '_Column' ? it.enumName : undefined))\n\t\t\t\t.filter((it): it is string => !!it),\n\t\t)\n\t\tconst enums = Object.entries(this.model.enums)\n\t\t\t.filter(([name]) => usedEnums.has(name))\n\t\t\t.map(([name, values]) => ({ name, values }))\n\t\treturn {\n\t\t\tenums,\n\t\t\tentities,\n\t\t}\n\t}\n}\n"],"names":["ContentSchema._OnDeleteBehaviour","ContentSchema._OrderByDirection","ContentSchema._RelationSide"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"introspection.schema.cjs","sources":["../../../../../packages/engine-content-api/src/introspection/introspection.schema.ts"],"sourcesContent":["import { JSONType } from '@contember/graphql-utils'\n\nimport {\n\tGraphQLBoolean,\n\tGraphQLEnumType,\n\tGraphQLFieldResolver,\n\tGraphQLInt,\n\tGraphQLInterfaceType,\n\tGraphQLList,\n\tGraphQLNonNull,\n\tGraphQLObjectType,\n\tGraphQLSchema,\n\tGraphQLSchemaConfig,\n\tGraphQLString,\n\tGraphQLUnionType,\n} from 'graphql'\n\nconst _RuleMessage = new GraphQLObjectType({\n\tname: '_RuleMessage',\n\tfields: {\n\t\ttext: { type: GraphQLString },\n\t},\n})\n\nconst _ValidatorArgument = new GraphQLObjectType({\n\tname: '_ValidatorArgument',\n\tfields: {\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _PathArgument = new GraphQLObjectType({\n\tname: '_PathArgument',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _LiteralArgument = new GraphQLObjectType({\n\tname: '_LiteralArgument',\n\tfields: {\n\t\tvalue: { type: JSONType },\n\t},\n})\n\nconst _Argument = new GraphQLUnionType({\n\tname: '_Argument',\n\ttypes: [_ValidatorArgument, _PathArgument, _LiteralArgument],\n})\n\nconst _Validator = new GraphQLObjectType({\n\tname: '_Validator',\n\tfields: {\n\t\toperation: { type: new GraphQLNonNull(GraphQLString) },\n\t\targuments: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Argument))) },\n\t},\n})\n\nconst _Rule = new GraphQLObjectType({\n\tname: '_Rule',\n\tfields: {\n\t\tmessage: { type: _RuleMessage },\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _FieldInterface = new GraphQLInterfaceType({\n\tname: '_Field',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tnullable: { type: GraphQLBoolean },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _OrderByDirection = new GraphQLEnumType({\n\tname: '_OrderByDirection',\n\tvalues: {\n\t\tasc: {},\n\t\tdesc: {},\n\t},\n})\n\nconst _OrderBy = new GraphQLObjectType({\n\tname: '_OrderBy',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t\tdirection: { type: new GraphQLNonNull(_OrderByDirection) },\n\t},\n})\n\nconst _OnDeleteBehaviour = new GraphQLEnumType({\n\tname: '_OnDeleteBehaviour',\n\tvalues: {\n\t\trestrict: {},\n\t\tcascade: {},\n\t\tsetNull: {},\n\t},\n})\n\nconst _RelationSide = new GraphQLEnumType({\n\tname: '_RelationSide',\n\tvalues: {\n\t\towning: {},\n\t\tinverse: {},\n\t},\n})\n\nconst _Relation = new GraphQLObjectType({\n\tname: '_Relation',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tside: { type: new GraphQLNonNull(_RelationSide) },\n\t\ttargetEntity: { type: new GraphQLNonNull(GraphQLString) },\n\t\townedBy: { type: GraphQLString },\n\t\tinversedBy: { type: GraphQLString },\n\t\tnullable: { type: GraphQLBoolean },\n\t\tonDelete: { type: _OnDeleteBehaviour },\n\t\torphanRemoval: { type: GraphQLBoolean },\n\t\torderBy: { type: new GraphQLList(new GraphQLNonNull(_OrderBy)) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _Column = new GraphQLObjectType({\n\tname: '_Column',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tenumName: { type: GraphQLString },\n\t\tdefaultValue: { type: JSONType },\n\t\tnullable: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _UniqueConstraint = new GraphQLObjectType({\n\tname: '_UniqueConstraint',\n\tfields: {\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Entity = new GraphQLObjectType({\n\tname: '_Entity',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tcustomPrimaryAllowed: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_FieldInterface))) },\n\t\tunique: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_UniqueConstraint))) },\n\t},\n})\n\nconst _Enum = new GraphQLObjectType({\n\tname: '_Enum',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tvalues: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Schema = new GraphQLObjectType({\n\tname: '_Schema',\n\tfields: {\n\t\tenums: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Enum))) },\n\t\tentities: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Entity))) },\n\t},\n})\n\n\nexport const createSchemaConfig = (resolver?: GraphQLFieldResolver<any, any>): GraphQLSchemaConfig => {\n\treturn {\n\t\tquery: new GraphQLObjectType({\n\t\t\tname: 'Query',\n\t\t\tfields: {\n\t\t\t\tschema: {\n\t\t\t\t\ttype: _Schema,\n\t\t\t\t\tresolve: resolver,\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\ttypes: [_Column, _Relation],\n\t}\n}\n\n\nexport default new GraphQLSchema(createSchemaConfig())\n"],"names":["GraphQLObjectType","GraphQLString","GraphQLNonNull","GraphQLInt","GraphQLList","JSONType","GraphQLUnionType","GraphQLInterfaceType","GraphQLBoolean","GraphQLEnumType","GraphQLSchema"],"mappings":"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"}
1
+ {"version":3,"file":"introspection.schema.cjs","sources":["../../../../../packages/engine-content-api/src/introspection/introspection.schema.ts"],"sourcesContent":["import { JSONType } from '@contember/graphql-utils'\n\nimport {\n\tGraphQLBoolean,\n\tGraphQLEnumType,\n\tGraphQLFieldResolver,\n\tGraphQLInt,\n\tGraphQLInterfaceType,\n\tGraphQLList,\n\tGraphQLNonNull,\n\tGraphQLObjectType,\n\tGraphQLSchema,\n\tGraphQLSchemaConfig,\n\tGraphQLString,\n\tGraphQLUnionType,\n} from 'graphql'\n\nconst _RuleMessage = new GraphQLObjectType({\n\tname: '_RuleMessage',\n\tfields: {\n\t\ttext: { type: GraphQLString },\n\t},\n})\n\nconst _ValidatorArgument = new GraphQLObjectType({\n\tname: '_ValidatorArgument',\n\tfields: {\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _PathArgument = new GraphQLObjectType({\n\tname: '_PathArgument',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _LiteralArgument = new GraphQLObjectType({\n\tname: '_LiteralArgument',\n\tfields: {\n\t\tvalue: { type: JSONType },\n\t},\n})\n\nconst _Argument = new GraphQLUnionType({\n\tname: '_Argument',\n\ttypes: [_ValidatorArgument, _PathArgument, _LiteralArgument],\n})\n\nconst _Validator = new GraphQLObjectType({\n\tname: '_Validator',\n\tfields: {\n\t\toperation: { type: new GraphQLNonNull(GraphQLString) },\n\t\targuments: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Argument))) },\n\t},\n})\n\nconst _Rule = new GraphQLObjectType({\n\tname: '_Rule',\n\tfields: {\n\t\tmessage: { type: _RuleMessage },\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _FieldInterface = new GraphQLInterfaceType({\n\tname: '_Field',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tnullable: { type: GraphQLBoolean },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _OrderByDirection = new GraphQLEnumType({\n\tname: '_OrderByDirection',\n\tvalues: {\n\t\tasc: {},\n\t\tdesc: {},\n\t},\n})\n\nconst _OrderBy = new GraphQLObjectType({\n\tname: '_OrderBy',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t\tdirection: { type: new GraphQLNonNull(_OrderByDirection) },\n\t},\n})\n\nconst _OnDeleteBehaviour = new GraphQLEnumType({\n\tname: '_OnDeleteBehaviour',\n\tvalues: {\n\t\trestrict: {},\n\t\tcascade: {},\n\t\tsetNull: {},\n\t},\n})\n\nconst _RelationSide = new GraphQLEnumType({\n\tname: '_RelationSide',\n\tvalues: {\n\t\towning: {},\n\t\tinverse: {},\n\t},\n})\n\nconst _Relation = new GraphQLObjectType({\n\tname: '_Relation',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tside: { type: new GraphQLNonNull(_RelationSide) },\n\t\ttargetEntity: { type: new GraphQLNonNull(GraphQLString) },\n\t\townedBy: { type: GraphQLString },\n\t\tinversedBy: { type: GraphQLString },\n\t\tnullable: { type: GraphQLBoolean },\n\t\tonDelete: { type: _OnDeleteBehaviour },\n\t\torphanRemoval: { type: GraphQLBoolean },\n\t\torderBy: { type: new GraphQLList(new GraphQLNonNull(_OrderBy)) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _Column = new GraphQLObjectType({\n\tname: '_Column',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tenumName: { type: GraphQLString },\n\t\tdefaultValue: { type: JSONType },\n\t\tnullable: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _UniqueConstraint = new GraphQLObjectType({\n\tname: '_UniqueConstraint',\n\tfields: {\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Entity = new GraphQLObjectType({\n\tname: '_Entity',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tcustomPrimaryAllowed: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_FieldInterface))) },\n\t\tunique: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_UniqueConstraint))) },\n\t},\n})\n\nconst _Enum = new GraphQLObjectType({\n\tname: '_Enum',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tvalues: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Schema = new GraphQLObjectType({\n\tname: '_Schema',\n\tfields: {\n\t\tenums: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Enum))) },\n\t\tentities: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Entity))) },\n\t},\n})\n\n\nexport const createSchemaConfig = (resolver?: GraphQLFieldResolver<any, any>): GraphQLSchemaConfig => {\n\treturn {\n\t\tquery: new GraphQLObjectType({\n\t\t\tname: 'Query',\n\t\t\tfields: {\n\t\t\t\tschema: {\n\t\t\t\t\ttype: _Schema,\n\t\t\t\t\tresolve: resolver,\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\ttypes: [_Column, _Relation],\n\t}\n}\n\n\nexport default new GraphQLSchema(createSchemaConfig())\n"],"names":["GraphQLObjectType","GraphQLString","GraphQLNonNull","GraphQLInt","GraphQLList","JSONType","GraphQLUnionType","GraphQLInterfaceType","GraphQLBoolean","GraphQLEnumType","GraphQLSchema"],"mappings":";;;;AAiBA,MAAM,eAAe,IAAIA,QAAAA,kBAAkB;AAAA,EAC1C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAMC,QAAc,cAAA;AAAA,EAAA;AAE9B,CAAC;AAED,MAAM,qBAAqB,IAAID,QAAAA,kBAAkB;AAAA,EAChD,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,WAAW,EAAE,MAAM,IAAIE,QAAAA,eAAeC,QAAAA,UAAU,EAAE;AAAA,EAAA;AAEpD,CAAC;AAED,MAAM,gBAAgB,IAAIH,QAAAA,kBAAkB;AAAA,EAC3C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAeD,QAAa,aAAA,CAAC,CAAC,EAAE;AAAA,EAAA;AAEvF,CAAC;AAED,MAAM,mBAAmB,IAAID,QAAAA,kBAAkB;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,OAAO,EAAE,MAAMK,aAAS,SAAA;AAAA,EAAA;AAE1B,CAAC;AAED,MAAM,YAAY,IAAIC,QAAAA,iBAAiB;AAAA,EACtC,MAAM;AAAA,EACN,OAAO,CAAC,oBAAoB,eAAe,gBAAgB;AAC5D,CAAC;AAED,MAAM,aAAa,IAAIN,QAAAA,kBAAkB;AAAA,EACxC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,WAAW,EAAE,MAAM,IAAIE,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IACrD,WAAW,EAAE,MAAM,IAAIC,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,SAAS,CAAC,CAAC,EAAE;AAAA,EAAA;AAExF,CAAC;AAED,MAAM,QAAQ,IAAIF,QAAAA,kBAAkB;AAAA,EACnC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,SAAS,EAAE,MAAM,aAAa;AAAA,IAC9B,WAAW,EAAE,MAAM,IAAIE,QAAAA,eAAeC,QAAAA,UAAU,EAAE;AAAA,EAAA;AAEpD,CAAC;AAED,MAAM,kBAAkB,IAAII,QAAAA,qBAAqB;AAAA,EAChD,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIL,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,MAAM,EAAE,MAAM,IAAIC,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,UAAU,EAAE,MAAMO,uBAAe;AAAA,IACjC,OAAO,EAAE,MAAM,IAAIN,uBAAe,IAAIE,QAAY,YAAA,IAAIF,QAAe,eAAA,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9E,YAAY,EAAE,MAAM,IAAIA,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,UAAU,CAAC,CAAC,EAAE;AAAA,EAAA;AAE1F,CAAC;AAED,MAAM,oBAAoB,IAAIO,QAAAA,gBAAgB;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,KAAK,CAAC;AAAA,IACN,MAAM,CAAA;AAAA,EAAC;AAET,CAAC;AAED,MAAM,WAAW,IAAIT,QAAAA,kBAAkB;AAAA,EACtC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,uBAAe,IAAIE,QAAY,YAAA,IAAIF,QAAe,eAAAD,qBAAa,CAAC,CAAC,EAAE;AAAA,IACrF,WAAW,EAAE,MAAM,IAAIC,QAAAA,eAAe,iBAAiB,EAAE;AAAA,EAAA;AAE3D,CAAC;AAED,MAAM,qBAAqB,IAAIO,QAAAA,gBAAgB;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,UAAU,CAAC;AAAA,IACX,SAAS,CAAC;AAAA,IACV,SAAS,CAAA;AAAA,EAAC;AAEZ,CAAC;AAED,MAAM,gBAAgB,IAAIA,QAAAA,gBAAgB;AAAA,EACzC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,QAAQ,CAAC;AAAA,IACT,SAAS,CAAA;AAAA,EAAC;AAEZ,CAAC;AAED,MAAM,YAAY,IAAIT,QAAAA,kBAAkB;AAAA,EACvC,MAAM;AAAA,EACN,YAAY,CAAC,eAAe;AAAA,EAC5B,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,MAAM,EAAE,MAAM,IAAIC,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,MAAM,EAAE,MAAM,IAAIC,QAAA,eAAe,aAAa,EAAE;AAAA,IAChD,cAAc,EAAE,MAAM,IAAIA,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IACxD,SAAS,EAAE,MAAMA,sBAAc;AAAA,IAC/B,YAAY,EAAE,MAAMA,sBAAc;AAAA,IAClC,UAAU,EAAE,MAAMO,uBAAe;AAAA,IACjC,UAAU,EAAE,MAAM,mBAAmB;AAAA,IACrC,eAAe,EAAE,MAAMA,uBAAe;AAAA,IACtC,SAAS,EAAE,MAAM,IAAIJ,QAAAA,YAAY,IAAIF,QAAA,eAAe,QAAQ,CAAC,EAAE;AAAA,IAC/D,OAAO,EAAE,MAAM,IAAIA,uBAAe,IAAIE,QAAY,YAAA,IAAIF,QAAe,eAAA,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9E,YAAY,EAAE,MAAM,IAAIA,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,UAAU,CAAC,CAAC,EAAE;AAAA,EAAA;AAE1F,CAAC;AAED,MAAM,UAAU,IAAIF,QAAAA,kBAAkB;AAAA,EACrC,MAAM;AAAA,EACN,YAAY,CAAC,eAAe;AAAA,EAC5B,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,MAAM,EAAE,MAAM,IAAIC,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,UAAU,EAAE,MAAMA,sBAAc;AAAA,IAChC,cAAc,EAAE,MAAMI,sBAAS;AAAA,IAC/B,UAAU,EAAE,MAAM,IAAIH,QAAA,eAAeM,QAAc,cAAA,EAAE;AAAA,IACrD,OAAO,EAAE,MAAM,IAAIN,uBAAe,IAAIE,QAAY,YAAA,IAAIF,QAAe,eAAA,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9E,YAAY,EAAE,MAAM,IAAIA,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,UAAU,CAAC,CAAC,EAAE;AAAA,EAAA;AAE1F,CAAC;AAED,MAAM,oBAAoB,IAAIF,QAAAA,kBAAkB;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,QAAQ,EAAE,MAAM,IAAIE,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAeD,QAAa,aAAA,CAAC,CAAC,EAAE;AAAA,EAAA;AAEzF,CAAC;AAED,MAAM,UAAU,IAAID,QAAAA,kBAAkB;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,sBAAsB,EAAE,MAAM,IAAIC,QAAA,eAAeM,QAAc,cAAA,EAAE;AAAA,IACjE,QAAQ,EAAE,MAAM,IAAIN,uBAAe,IAAIE,QAAY,YAAA,IAAIF,QAAe,eAAA,eAAe,CAAC,CAAC,EAAE;AAAA,IACzF,QAAQ,EAAE,MAAM,IAAIA,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,iBAAiB,CAAC,CAAC,EAAE;AAAA,EAAA;AAE7F,CAAC;AAED,MAAM,QAAQ,IAAIF,QAAAA,kBAAkB;AAAA,EACnC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAIE,QAAA,eAAeD,QAAa,aAAA,EAAE;AAAA,IAChD,QAAQ,EAAE,MAAM,IAAIC,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAeD,QAAa,aAAA,CAAC,CAAC,EAAE;AAAA,EAAA;AAEzF,CAAC;AAED,MAAM,UAAU,IAAID,QAAAA,kBAAkB;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,OAAO,EAAE,MAAM,IAAIE,uBAAe,IAAIE,QAAY,YAAA,IAAIF,QAAe,eAAA,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9E,UAAU,EAAE,MAAM,IAAIA,QAAe,eAAA,IAAIE,QAAAA,YAAY,IAAIF,QAAAA,eAAe,OAAO,CAAC,CAAC,EAAE;AAAA,EAAA;AAErF,CAAC;AAGY,MAAA,qBAAqB,CAAC,aAAmE;AAC9F,SAAA;AAAA,IACN,OAAO,IAAIF,QAAAA,kBAAkB;AAAA,MAC5B,MAAM;AAAA,MACN,QAAQ;AAAA,QACP,QAAQ;AAAA,UACP,MAAM;AAAA,UACN,SAAS;AAAA,QAAA;AAAA,MACV;AAAA,IACD,CACA;AAAA,IACD,OAAO,CAAC,SAAS,SAAS;AAAA,EAC3B;AACD;AAGA,MAAA,uBAAe,IAAIU,QAAAA,cAAc,oBAAoB;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"introspection.schema.js","sources":["../../../../../packages/engine-content-api/src/introspection/introspection.schema.ts"],"sourcesContent":["import { JSONType } from '@contember/graphql-utils'\n\nimport {\n\tGraphQLBoolean,\n\tGraphQLEnumType,\n\tGraphQLFieldResolver,\n\tGraphQLInt,\n\tGraphQLInterfaceType,\n\tGraphQLList,\n\tGraphQLNonNull,\n\tGraphQLObjectType,\n\tGraphQLSchema,\n\tGraphQLSchemaConfig,\n\tGraphQLString,\n\tGraphQLUnionType,\n} from 'graphql'\n\nconst _RuleMessage = new GraphQLObjectType({\n\tname: '_RuleMessage',\n\tfields: {\n\t\ttext: { type: GraphQLString },\n\t},\n})\n\nconst _ValidatorArgument = new GraphQLObjectType({\n\tname: '_ValidatorArgument',\n\tfields: {\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _PathArgument = new GraphQLObjectType({\n\tname: '_PathArgument',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _LiteralArgument = new GraphQLObjectType({\n\tname: '_LiteralArgument',\n\tfields: {\n\t\tvalue: { type: JSONType },\n\t},\n})\n\nconst _Argument = new GraphQLUnionType({\n\tname: '_Argument',\n\ttypes: [_ValidatorArgument, _PathArgument, _LiteralArgument],\n})\n\nconst _Validator = new GraphQLObjectType({\n\tname: '_Validator',\n\tfields: {\n\t\toperation: { type: new GraphQLNonNull(GraphQLString) },\n\t\targuments: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Argument))) },\n\t},\n})\n\nconst _Rule = new GraphQLObjectType({\n\tname: '_Rule',\n\tfields: {\n\t\tmessage: { type: _RuleMessage },\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _FieldInterface = new GraphQLInterfaceType({\n\tname: '_Field',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tnullable: { type: GraphQLBoolean },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _OrderByDirection = new GraphQLEnumType({\n\tname: '_OrderByDirection',\n\tvalues: {\n\t\tasc: {},\n\t\tdesc: {},\n\t},\n})\n\nconst _OrderBy = new GraphQLObjectType({\n\tname: '_OrderBy',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t\tdirection: { type: new GraphQLNonNull(_OrderByDirection) },\n\t},\n})\n\nconst _OnDeleteBehaviour = new GraphQLEnumType({\n\tname: '_OnDeleteBehaviour',\n\tvalues: {\n\t\trestrict: {},\n\t\tcascade: {},\n\t\tsetNull: {},\n\t},\n})\n\nconst _RelationSide = new GraphQLEnumType({\n\tname: '_RelationSide',\n\tvalues: {\n\t\towning: {},\n\t\tinverse: {},\n\t},\n})\n\nconst _Relation = new GraphQLObjectType({\n\tname: '_Relation',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tside: { type: new GraphQLNonNull(_RelationSide) },\n\t\ttargetEntity: { type: new GraphQLNonNull(GraphQLString) },\n\t\townedBy: { type: GraphQLString },\n\t\tinversedBy: { type: GraphQLString },\n\t\tnullable: { type: GraphQLBoolean },\n\t\tonDelete: { type: _OnDeleteBehaviour },\n\t\torphanRemoval: { type: GraphQLBoolean },\n\t\torderBy: { type: new GraphQLList(new GraphQLNonNull(_OrderBy)) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _Column = new GraphQLObjectType({\n\tname: '_Column',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tenumName: { type: GraphQLString },\n\t\tdefaultValue: { type: JSONType },\n\t\tnullable: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _UniqueConstraint = new GraphQLObjectType({\n\tname: '_UniqueConstraint',\n\tfields: {\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Entity = new GraphQLObjectType({\n\tname: '_Entity',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tcustomPrimaryAllowed: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_FieldInterface))) },\n\t\tunique: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_UniqueConstraint))) },\n\t},\n})\n\nconst _Enum = new GraphQLObjectType({\n\tname: '_Enum',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tvalues: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Schema = new GraphQLObjectType({\n\tname: '_Schema',\n\tfields: {\n\t\tenums: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Enum))) },\n\t\tentities: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Entity))) },\n\t},\n})\n\n\nexport const createSchemaConfig = (resolver?: GraphQLFieldResolver<any, any>): GraphQLSchemaConfig => {\n\treturn {\n\t\tquery: new GraphQLObjectType({\n\t\t\tname: 'Query',\n\t\t\tfields: {\n\t\t\t\tschema: {\n\t\t\t\t\ttype: _Schema,\n\t\t\t\t\tresolve: resolver,\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\ttypes: [_Column, _Relation],\n\t}\n}\n\n\nexport default new GraphQLSchema(createSchemaConfig())\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"introspection.schema.js","sources":["../../../../../packages/engine-content-api/src/introspection/introspection.schema.ts"],"sourcesContent":["import { JSONType } from '@contember/graphql-utils'\n\nimport {\n\tGraphQLBoolean,\n\tGraphQLEnumType,\n\tGraphQLFieldResolver,\n\tGraphQLInt,\n\tGraphQLInterfaceType,\n\tGraphQLList,\n\tGraphQLNonNull,\n\tGraphQLObjectType,\n\tGraphQLSchema,\n\tGraphQLSchemaConfig,\n\tGraphQLString,\n\tGraphQLUnionType,\n} from 'graphql'\n\nconst _RuleMessage = new GraphQLObjectType({\n\tname: '_RuleMessage',\n\tfields: {\n\t\ttext: { type: GraphQLString },\n\t},\n})\n\nconst _ValidatorArgument = new GraphQLObjectType({\n\tname: '_ValidatorArgument',\n\tfields: {\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _PathArgument = new GraphQLObjectType({\n\tname: '_PathArgument',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _LiteralArgument = new GraphQLObjectType({\n\tname: '_LiteralArgument',\n\tfields: {\n\t\tvalue: { type: JSONType },\n\t},\n})\n\nconst _Argument = new GraphQLUnionType({\n\tname: '_Argument',\n\ttypes: [_ValidatorArgument, _PathArgument, _LiteralArgument],\n})\n\nconst _Validator = new GraphQLObjectType({\n\tname: '_Validator',\n\tfields: {\n\t\toperation: { type: new GraphQLNonNull(GraphQLString) },\n\t\targuments: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Argument))) },\n\t},\n})\n\nconst _Rule = new GraphQLObjectType({\n\tname: '_Rule',\n\tfields: {\n\t\tmessage: { type: _RuleMessage },\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _FieldInterface = new GraphQLInterfaceType({\n\tname: '_Field',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tnullable: { type: GraphQLBoolean },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _OrderByDirection = new GraphQLEnumType({\n\tname: '_OrderByDirection',\n\tvalues: {\n\t\tasc: {},\n\t\tdesc: {},\n\t},\n})\n\nconst _OrderBy = new GraphQLObjectType({\n\tname: '_OrderBy',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t\tdirection: { type: new GraphQLNonNull(_OrderByDirection) },\n\t},\n})\n\nconst _OnDeleteBehaviour = new GraphQLEnumType({\n\tname: '_OnDeleteBehaviour',\n\tvalues: {\n\t\trestrict: {},\n\t\tcascade: {},\n\t\tsetNull: {},\n\t},\n})\n\nconst _RelationSide = new GraphQLEnumType({\n\tname: '_RelationSide',\n\tvalues: {\n\t\towning: {},\n\t\tinverse: {},\n\t},\n})\n\nconst _Relation = new GraphQLObjectType({\n\tname: '_Relation',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tside: { type: new GraphQLNonNull(_RelationSide) },\n\t\ttargetEntity: { type: new GraphQLNonNull(GraphQLString) },\n\t\townedBy: { type: GraphQLString },\n\t\tinversedBy: { type: GraphQLString },\n\t\tnullable: { type: GraphQLBoolean },\n\t\tonDelete: { type: _OnDeleteBehaviour },\n\t\torphanRemoval: { type: GraphQLBoolean },\n\t\torderBy: { type: new GraphQLList(new GraphQLNonNull(_OrderBy)) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _Column = new GraphQLObjectType({\n\tname: '_Column',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tenumName: { type: GraphQLString },\n\t\tdefaultValue: { type: JSONType },\n\t\tnullable: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _UniqueConstraint = new GraphQLObjectType({\n\tname: '_UniqueConstraint',\n\tfields: {\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Entity = new GraphQLObjectType({\n\tname: '_Entity',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tcustomPrimaryAllowed: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_FieldInterface))) },\n\t\tunique: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_UniqueConstraint))) },\n\t},\n})\n\nconst _Enum = new GraphQLObjectType({\n\tname: '_Enum',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tvalues: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Schema = new GraphQLObjectType({\n\tname: '_Schema',\n\tfields: {\n\t\tenums: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Enum))) },\n\t\tentities: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Entity))) },\n\t},\n})\n\n\nexport const createSchemaConfig = (resolver?: GraphQLFieldResolver<any, any>): GraphQLSchemaConfig => {\n\treturn {\n\t\tquery: new GraphQLObjectType({\n\t\t\tname: 'Query',\n\t\t\tfields: {\n\t\t\t\tschema: {\n\t\t\t\t\ttype: _Schema,\n\t\t\t\t\tresolve: resolver,\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\ttypes: [_Column, _Relation],\n\t}\n}\n\n\nexport default new GraphQLSchema(createSchemaConfig())\n"],"names":[],"mappings":";;AAiBA,MAAM,eAAe,IAAI,kBAAkB;AAAA,EAC1C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,cAAc;AAAA,EAAA;AAE9B,CAAC;AAED,MAAM,qBAAqB,IAAI,kBAAkB;AAAA,EAChD,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,WAAW,EAAE,MAAM,IAAI,eAAe,UAAU,EAAE;AAAA,EAAA;AAEpD,CAAC;AAED,MAAM,gBAAgB,IAAI,kBAAkB;AAAA,EAC3C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,aAAa,CAAC,CAAC,EAAE;AAAA,EAAA;AAEvF,CAAC;AAED,MAAM,mBAAmB,IAAI,kBAAkB;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,OAAO,EAAE,MAAM,SAAS;AAAA,EAAA;AAE1B,CAAC;AAED,MAAM,YAAY,IAAI,iBAAiB;AAAA,EACtC,MAAM;AAAA,EACN,OAAO,CAAC,oBAAoB,eAAe,gBAAgB;AAC5D,CAAC;AAED,MAAM,aAAa,IAAI,kBAAkB;AAAA,EACxC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,WAAW,EAAE,MAAM,IAAI,eAAe,aAAa,EAAE;AAAA,IACrD,WAAW,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,SAAS,CAAC,CAAC,EAAE;AAAA,EAAA;AAExF,CAAC;AAED,MAAM,QAAQ,IAAI,kBAAkB;AAAA,EACnC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,SAAS,EAAE,MAAM,aAAa;AAAA,IAC9B,WAAW,EAAE,MAAM,IAAI,eAAe,UAAU,EAAE;AAAA,EAAA;AAEpD,CAAC;AAED,MAAM,kBAAkB,IAAI,qBAAqB;AAAA,EAChD,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAI,eAAe,aAAa,EAAE;AAAA,IAChD,MAAM,EAAE,MAAM,IAAI,eAAe,aAAa,EAAE;AAAA,IAChD,UAAU,EAAE,MAAM,eAAe;AAAA,IACjC,OAAO,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9E,YAAY,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,UAAU,CAAC,CAAC,EAAE;AAAA,EAAA;AAE1F,CAAC;AAED,MAAM,oBAAoB,IAAI,gBAAgB;AAAA,EAC7C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,KAAK,CAAC;AAAA,IACN,MAAM,CAAA;AAAA,EAAC;AAET,CAAC;AAED,MAAM,WAAW,IAAI,kBAAkB;AAAA,EACtC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,aAAa,CAAC,CAAC,EAAE;AAAA,IACrF,WAAW,EAAE,MAAM,IAAI,eAAe,iBAAiB,EAAE;AAAA,EAAA;AAE3D,CAAC;AAED,MAAM,qBAAqB,IAAI,gBAAgB;AAAA,EAC9C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,UAAU,CAAC;AAAA,IACX,SAAS,CAAC;AAAA,IACV,SAAS,CAAA;AAAA,EAAC;AAEZ,CAAC;AAED,MAAM,gBAAgB,IAAI,gBAAgB;AAAA,EACzC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,QAAQ,CAAC;AAAA,IACT,SAAS,CAAA;AAAA,EAAC;AAEZ,CAAC;AAED,MAAM,YAAY,IAAI,kBAAkB;AAAA,EACvC,MAAM;AAAA,EACN,YAAY,CAAC,eAAe;AAAA,EAC5B,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAI,eAAe,aAAa,EAAE;AAAA,IAChD,MAAM,EAAE,MAAM,IAAI,eAAe,aAAa,EAAE;AAAA,IAChD,MAAM,EAAE,MAAM,IAAI,eAAe,aAAa,EAAE;AAAA,IAChD,cAAc,EAAE,MAAM,IAAI,eAAe,aAAa,EAAE;AAAA,IACxD,SAAS,EAAE,MAAM,cAAc;AAAA,IAC/B,YAAY,EAAE,MAAM,cAAc;AAAA,IAClC,UAAU,EAAE,MAAM,eAAe;AAAA,IACjC,UAAU,EAAE,MAAM,mBAAmB;AAAA,IACrC,eAAe,EAAE,MAAM,eAAe;AAAA,IACtC,SAAS,EAAE,MAAM,IAAI,YAAY,IAAI,eAAe,QAAQ,CAAC,EAAE;AAAA,IAC/D,OAAO,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9E,YAAY,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,UAAU,CAAC,CAAC,EAAE;AAAA,EAAA;AAE1F,CAAC;AAED,MAAM,UAAU,IAAI,kBAAkB;AAAA,EACrC,MAAM;AAAA,EACN,YAAY,CAAC,eAAe;AAAA,EAC5B,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAI,eAAe,aAAa,EAAE;AAAA,IAChD,MAAM,EAAE,MAAM,IAAI,eAAe,aAAa,EAAE;AAAA,IAChD,UAAU,EAAE,MAAM,cAAc;AAAA,IAChC,cAAc,EAAE,MAAM,SAAS;AAAA,IAC/B,UAAU,EAAE,MAAM,IAAI,eAAe,cAAc,EAAE;AAAA,IACrD,OAAO,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9E,YAAY,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,UAAU,CAAC,CAAC,EAAE;AAAA,EAAA;AAE1F,CAAC;AAED,MAAM,oBAAoB,IAAI,kBAAkB;AAAA,EAC/C,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,QAAQ,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,aAAa,CAAC,CAAC,EAAE;AAAA,EAAA;AAEzF,CAAC;AAED,MAAM,UAAU,IAAI,kBAAkB;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAI,eAAe,aAAa,EAAE;AAAA,IAChD,sBAAsB,EAAE,MAAM,IAAI,eAAe,cAAc,EAAE;AAAA,IACjE,QAAQ,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,eAAe,CAAC,CAAC,EAAE;AAAA,IACzF,QAAQ,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,iBAAiB,CAAC,CAAC,EAAE;AAAA,EAAA;AAE7F,CAAC;AAED,MAAM,QAAQ,IAAI,kBAAkB;AAAA,EACnC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,MAAM,EAAE,MAAM,IAAI,eAAe,aAAa,EAAE;AAAA,IAChD,QAAQ,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,aAAa,CAAC,CAAC,EAAE;AAAA,EAAA;AAEzF,CAAC;AAED,MAAM,UAAU,IAAI,kBAAkB;AAAA,EACrC,MAAM;AAAA,EACN,QAAQ;AAAA,IACP,OAAO,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9E,UAAU,EAAE,MAAM,IAAI,eAAe,IAAI,YAAY,IAAI,eAAe,OAAO,CAAC,CAAC,EAAE;AAAA,EAAA;AAErF,CAAC;AAGY,MAAA,qBAAqB,CAAC,aAAmE;AAC9F,SAAA;AAAA,IACN,OAAO,IAAI,kBAAkB;AAAA,MAC5B,MAAM;AAAA,MACN,QAAQ;AAAA,QACP,QAAQ;AAAA,UACP,MAAM;AAAA,UACN,SAAS;AAAA,QAAA;AAAA,MACV;AAAA,IACD,CACA;AAAA,IACD,OAAO,CAAC,SAAS,SAAS;AAAA,EAC3B;AACD;AAGA,MAAA,uBAAe,IAAI,cAAc,oBAAoB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckedPrimary.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/CheckedPrimary.ts"],"sourcesContent":["import { Input } from '@contember/schema'\n\nexport class CheckedPrimary {\n\tpublic constructor(public readonly primaryValue: Input.PrimaryValue) {}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,eAAe;AAAA,EACpB,YAA4B,cAAkC;AAAlC,SAAA,eAAA;AAAA,EAAmC;AACvE;;"}
1
+ {"version":3,"file":"CheckedPrimary.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/CheckedPrimary.ts"],"sourcesContent":["import { Input } from '@contember/schema'\n\nexport class CheckedPrimary {\n\tpublic constructor(public readonly primaryValue: Input.PrimaryValue) {}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,eAAe;AAAA,EACpB,YAA4B,cAAkC;AAAlC,SAAA,eAAA;AAAA,EAAA;AACpC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckedPrimary.js","sources":["../../../../../packages/engine-content-api/src/mapper/CheckedPrimary.ts"],"sourcesContent":["import { Input } from '@contember/schema'\n\nexport class CheckedPrimary {\n\tpublic constructor(public readonly primaryValue: Input.PrimaryValue) {}\n}\n"],"names":[],"mappings":"AAEO,MAAM,eAAe;AAAA,EACpB,YAA4B,cAAkC;AAAlC,SAAA,eAAA;AAAA,EAAmC;AACvE;"}
1
+ {"version":3,"file":"CheckedPrimary.js","sources":["../../../../../packages/engine-content-api/src/mapper/CheckedPrimary.ts"],"sourcesContent":["import { Input } from '@contember/schema'\n\nexport class CheckedPrimary {\n\tpublic constructor(public readonly primaryValue: Input.PrimaryValue) {}\n}\n"],"names":[],"mappings":"AAEO,MAAM,eAAe;AAAA,EACpB,YAA4B,cAAkC;AAAlC,SAAA,eAAA;AAAA,EAAA;AACpC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnValue.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/ColumnValue.ts"],"sourcesContent":["import { Value } from '@contember/schema'\nimport { getFulfilledValues, getRejections } from '../utils'\n\nexport type ColumnValue<E = never> = {\n\tvalue: PromiseLike<Value.FieldValue<E> | undefined>\n\tfieldName: string\n\tcolumnName: string\n\tcolumnType: string\n}\n\nexport type ResolvedColumnValue<E = never> = ColumnValue<E> & {\n\tresolvedValue: Value.FieldValue<E>\n}\n\nexport const resolveGenericValue = <T>(value: Value.GenericValueLike<T>): Promise<T> => {\n\tif (value instanceof Function) {\n\t\tvalue = value()\n\t}\n\treturn Promise.resolve(value)\n}\n\nexport const resolveRowData = async <E>(\n\tvalues: ColumnValue<E>[],\n): Promise<ResolvedColumnValue<Exclude<E, undefined>>[]> => {\n\tconst valuePromises = values.map(async (it): Promise<ResolvedColumnValue<E | undefined>> => ({ ...it, resolvedValue: await it.value }))\n\tconst settledValues = await Promise.allSettled(valuePromises)\n\tconst failed = getRejections(settledValues)\n\tif (failed.length > 0) {\n\t\tthrow failed[0]\n\t}\n\tconst fulfilled = getFulfilledValues(settledValues)\n\treturn fulfilled.filter((it): it is ResolvedColumnValue<Exclude<E, undefined>> => it.resolvedValue !== undefined)\n}\n\nexport const rowDataToFieldValues = (values: ResolvedColumnValue[]): Record<string, Value.AtomicValue> =>\n\tvalues.reduce((acc, { fieldName, value }) => ({ ...acc, [fieldName]: value }), {})\n"],"names":["getRejections","getFulfilledValues"],"mappings":";;;;AAca,MAAA,sBAAsB,CAAI,UAAiD;AACvF,MAAI,iBAAiB,UAAU;AAC9B,YAAQ,MAAM;AAAA,EACf;AACO,SAAA,QAAQ,QAAQ,KAAK;AAC7B;AAEa,MAAA,iBAAiB,OAC7B,WAC2D;AAC3D,QAAM,gBAAgB,OAAO,IAAI,OAAO,QAAqD,EAAE,GAAG,IAAI,eAAe,MAAM,GAAG,MAAA,EAAQ;AACtI,QAAM,gBAAgB,MAAM,QAAQ,WAAW,aAAa;AACtD,QAAA,SAASA,uBAAc,aAAa;AACtC,MAAA,OAAO,SAAS,GAAG;AACtB,UAAM,OAAO,CAAC;AAAA,EACf;AACM,QAAA,YAAYC,4BAAmB,aAAa;AAClD,SAAO,UAAU,OAAO,CAAC,OAAyD,GAAG,kBAAkB,MAAS;AACjH;AAEa,MAAA,uBAAuB,CAAC,WACpC,OAAO,OAAO,CAAC,KAAK,EAAE,WAAW,aAAa,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,MAAM,IAAI,CAAE,CAAA;;;;"}
1
+ {"version":3,"file":"ColumnValue.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/ColumnValue.ts"],"sourcesContent":["import { Value } from '@contember/schema'\nimport { getFulfilledValues, getRejections } from '../utils'\n\nexport type ColumnValue<E = never> = {\n\tvalue: PromiseLike<Value.FieldValue<E> | undefined>\n\tfieldName: string\n\tcolumnName: string\n\tcolumnType: string\n}\n\nexport type ResolvedColumnValue<E = never> = ColumnValue<E> & {\n\tresolvedValue: Value.FieldValue<E>\n}\n\nexport const resolveGenericValue = <T>(value: Value.GenericValueLike<T>): Promise<T> => {\n\tif (value instanceof Function) {\n\t\tvalue = value()\n\t}\n\treturn Promise.resolve(value)\n}\n\nexport const resolveRowData = async <E>(\n\tvalues: ColumnValue<E>[],\n): Promise<ResolvedColumnValue<Exclude<E, undefined>>[]> => {\n\tconst valuePromises = values.map(async (it): Promise<ResolvedColumnValue<E | undefined>> => ({ ...it, resolvedValue: await it.value }))\n\tconst settledValues = await Promise.allSettled(valuePromises)\n\tconst failed = getRejections(settledValues)\n\tif (failed.length > 0) {\n\t\tthrow failed[0]\n\t}\n\tconst fulfilled = getFulfilledValues(settledValues)\n\treturn fulfilled.filter((it): it is ResolvedColumnValue<Exclude<E, undefined>> => it.resolvedValue !== undefined)\n}\n\nexport const rowDataToFieldValues = (values: ResolvedColumnValue[]): Record<string, Value.AtomicValue> =>\n\tvalues.reduce((acc, { fieldName, value }) => ({ ...acc, [fieldName]: value }), {})\n"],"names":["getRejections","getFulfilledValues"],"mappings":";;;;AAca,MAAA,sBAAsB,CAAI,UAAiD;AACvF,MAAI,iBAAiB,UAAU;AAC9B,YAAQ,MAAM;AAAA,EAAA;AAER,SAAA,QAAQ,QAAQ,KAAK;AAC7B;AAEa,MAAA,iBAAiB,OAC7B,WAC2D;AAC3D,QAAM,gBAAgB,OAAO,IAAI,OAAO,QAAqD,EAAE,GAAG,IAAI,eAAe,MAAM,GAAG,MAAQ,EAAA;AACtI,QAAM,gBAAgB,MAAM,QAAQ,WAAW,aAAa;AACtD,QAAA,SAASA,uBAAc,aAAa;AACtC,MAAA,OAAO,SAAS,GAAG;AACtB,UAAM,OAAO,CAAC;AAAA,EAAA;AAET,QAAA,YAAYC,4BAAmB,aAAa;AAClD,SAAO,UAAU,OAAO,CAAC,OAAyD,GAAG,kBAAkB,MAAS;AACjH;AAEa,MAAA,uBAAuB,CAAC,WACpC,OAAO,OAAO,CAAC,KAAK,EAAE,WAAW,aAAa,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,MAAM,IAAI,CAAE,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnValue.js","sources":["../../../../../packages/engine-content-api/src/mapper/ColumnValue.ts"],"sourcesContent":["import { Value } from '@contember/schema'\nimport { getFulfilledValues, getRejections } from '../utils'\n\nexport type ColumnValue<E = never> = {\n\tvalue: PromiseLike<Value.FieldValue<E> | undefined>\n\tfieldName: string\n\tcolumnName: string\n\tcolumnType: string\n}\n\nexport type ResolvedColumnValue<E = never> = ColumnValue<E> & {\n\tresolvedValue: Value.FieldValue<E>\n}\n\nexport const resolveGenericValue = <T>(value: Value.GenericValueLike<T>): Promise<T> => {\n\tif (value instanceof Function) {\n\t\tvalue = value()\n\t}\n\treturn Promise.resolve(value)\n}\n\nexport const resolveRowData = async <E>(\n\tvalues: ColumnValue<E>[],\n): Promise<ResolvedColumnValue<Exclude<E, undefined>>[]> => {\n\tconst valuePromises = values.map(async (it): Promise<ResolvedColumnValue<E | undefined>> => ({ ...it, resolvedValue: await it.value }))\n\tconst settledValues = await Promise.allSettled(valuePromises)\n\tconst failed = getRejections(settledValues)\n\tif (failed.length > 0) {\n\t\tthrow failed[0]\n\t}\n\tconst fulfilled = getFulfilledValues(settledValues)\n\treturn fulfilled.filter((it): it is ResolvedColumnValue<Exclude<E, undefined>> => it.resolvedValue !== undefined)\n}\n\nexport const rowDataToFieldValues = (values: ResolvedColumnValue[]): Record<string, Value.AtomicValue> =>\n\tvalues.reduce((acc, { fieldName, value }) => ({ ...acc, [fieldName]: value }), {})\n"],"names":[],"mappings":";;AAca,MAAA,sBAAsB,CAAI,UAAiD;AACvF,MAAI,iBAAiB,UAAU;AAC9B,YAAQ,MAAM;AAAA,EACf;AACO,SAAA,QAAQ,QAAQ,KAAK;AAC7B;AAEa,MAAA,iBAAiB,OAC7B,WAC2D;AAC3D,QAAM,gBAAgB,OAAO,IAAI,OAAO,QAAqD,EAAE,GAAG,IAAI,eAAe,MAAM,GAAG,MAAA,EAAQ;AACtI,QAAM,gBAAgB,MAAM,QAAQ,WAAW,aAAa;AACtD,QAAA,SAAS,cAAc,aAAa;AACtC,MAAA,OAAO,SAAS,GAAG;AACtB,UAAM,OAAO,CAAC;AAAA,EACf;AACM,QAAA,YAAY,mBAAmB,aAAa;AAClD,SAAO,UAAU,OAAO,CAAC,OAAyD,GAAG,kBAAkB,MAAS;AACjH;AAEa,MAAA,uBAAuB,CAAC,WACpC,OAAO,OAAO,CAAC,KAAK,EAAE,WAAW,aAAa,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,MAAM,IAAI,CAAE,CAAA;"}
1
+ {"version":3,"file":"ColumnValue.js","sources":["../../../../../packages/engine-content-api/src/mapper/ColumnValue.ts"],"sourcesContent":["import { Value } from '@contember/schema'\nimport { getFulfilledValues, getRejections } from '../utils'\n\nexport type ColumnValue<E = never> = {\n\tvalue: PromiseLike<Value.FieldValue<E> | undefined>\n\tfieldName: string\n\tcolumnName: string\n\tcolumnType: string\n}\n\nexport type ResolvedColumnValue<E = never> = ColumnValue<E> & {\n\tresolvedValue: Value.FieldValue<E>\n}\n\nexport const resolveGenericValue = <T>(value: Value.GenericValueLike<T>): Promise<T> => {\n\tif (value instanceof Function) {\n\t\tvalue = value()\n\t}\n\treturn Promise.resolve(value)\n}\n\nexport const resolveRowData = async <E>(\n\tvalues: ColumnValue<E>[],\n): Promise<ResolvedColumnValue<Exclude<E, undefined>>[]> => {\n\tconst valuePromises = values.map(async (it): Promise<ResolvedColumnValue<E | undefined>> => ({ ...it, resolvedValue: await it.value }))\n\tconst settledValues = await Promise.allSettled(valuePromises)\n\tconst failed = getRejections(settledValues)\n\tif (failed.length > 0) {\n\t\tthrow failed[0]\n\t}\n\tconst fulfilled = getFulfilledValues(settledValues)\n\treturn fulfilled.filter((it): it is ResolvedColumnValue<Exclude<E, undefined>> => it.resolvedValue !== undefined)\n}\n\nexport const rowDataToFieldValues = (values: ResolvedColumnValue[]): Record<string, Value.AtomicValue> =>\n\tvalues.reduce((acc, { fieldName, value }) => ({ ...acc, [fieldName]: value }), {})\n"],"names":[],"mappings":";;AAca,MAAA,sBAAsB,CAAI,UAAiD;AACvF,MAAI,iBAAiB,UAAU;AAC9B,YAAQ,MAAM;AAAA,EAAA;AAER,SAAA,QAAQ,QAAQ,KAAK;AAC7B;AAEa,MAAA,iBAAiB,OAC7B,WAC2D;AAC3D,QAAM,gBAAgB,OAAO,IAAI,OAAO,QAAqD,EAAE,GAAG,IAAI,eAAe,MAAM,GAAG,MAAQ,EAAA;AACtI,QAAM,gBAAgB,MAAM,QAAQ,WAAW,aAAa;AACtD,QAAA,SAAS,cAAc,aAAa;AACtC,MAAA,OAAO,SAAS,GAAG;AACtB,UAAM,OAAO,CAAC;AAAA,EAAA;AAET,QAAA,YAAY,mBAAmB,aAAa;AAClD,SAAO,UAAU,OAAO,CAAC,OAAyD,GAAG,kBAAkB,MAAS;AACjH;AAEa,MAAA,uBAAuB,CAAC,WACpC,OAAO,OAAO,CAAC,KAAK,EAAE,WAAW,aAAa,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,MAAM,IAAI,CAAE,CAAA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorUtils.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/ErrorUtils.ts"],"sourcesContent":["import {\n\tConstraintType,\n\tInputErrorKind,\n\tMutationConstraintViolationError,\n\tMutationInputError,\n\tMutationResult,\n\tMutationResultHint,\n\tMutationResultList,\n\tMutationSqlError,\n} from './Result'\nimport * as Database from '@contember/database'\nimport { UniqueWhereError } from '../inputProcessing'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor, tryGetColumnName } from '@contember/schema-utils'\nimport { logger } from '@contember/logger'\nimport { DatabaseMetadata } from '@contember/database'\n\n\ntype UniqueConstraintResult = {\n\tentity: Model.Entity\n\tfields: string[]\n}\n\nconst getEntityByTableName = (model: Model.Schema, tableName: string) => Object.values(model.entities).find(it => it.tableName === tableName)\n\nconst findUniqueConstraint = (model: Model.Schema, databaseMetadata: DatabaseMetadata, tableName: string, constraintName: string): UniqueConstraintResult | null => {\n\tconst constraint = databaseMetadata.uniqueConstraints.filter({ tableName, constraintName }).first()\n\tif (!constraint) {\n\t\treturn null\n\t}\n\tconst entity = getEntityByTableName(model, constraint.tableName)\n\tif (!entity) {\n\t\treturn null\n\t}\n\tconst fieldsInConstraint: string[] = []\n\tfor (const field of Object.values(entity.fields)) {\n\t\tconst columnName = tryGetColumnName(model, entity, field.name)\n\t\tif (columnName && constraint.columnNames.includes(columnName)) {\n\t\t\tfieldsInConstraint.push(field.name)\n\t\t}\n\t}\n\tif (fieldsInConstraint.length === constraint.columnNames.length) {\n\t\treturn { entity, fields: fieldsInConstraint }\n\t}\n\treturn null\n}\n\ntype RelationInfo = {\n\towningEntity: Model.Entity\n\towningRelation: Model.Relation\n\ttargetEntity: Model.Entity\n}\n\nconst findForeignConstraint = (model: Model.Schema, databaseMetadata: DatabaseMetadata, tableName: string, constraintName: string): RelationInfo | null => {\n\tconst constraint = databaseMetadata.foreignKeys.filter({ fromTable: tableName, constraintName }).first()\n\tif (!constraint) {\n\t\treturn null\n\t}\n\tconst owningEntity = getEntityByTableName(model, constraint.fromTable)\n\tif (!owningEntity) {\n\t\t// todo m:n\n\t\treturn null\n\t}\n\n\tconst targetEntity = getEntityByTableName(model, constraint.toTable)\n\tif (!targetEntity) {\n\t\treturn null\n\t}\n\tfor (const field of Object.values(owningEntity.fields)) {\n\t\tconst relation = acceptFieldVisitor<(Model.Relation & Model.JoiningColumnRelation) | null>(model, owningEntity, field, {\n\t\t\tvisitColumn: () => null,\n\t\t\tvisitOneHasOneInverse: () => null,\n\t\t\tvisitManyHasManyInverse: () => null,\n\t\t\tvisitManyHasManyOwning: () => null,\n\t\t\tvisitOneHasMany: () => null,\n\t\t\tvisitOneHasOneOwning: ({ relation }) => relation,\n\t\t\tvisitManyHasOne: ({ relation }) => relation,\n\t\t})\n\t\tif (relation && relation.joiningColumn.columnName === constraint.fromColumn) {\n\t\t\treturn {\n\t\t\t\towningEntity,\n\t\t\t\towningRelation: relation,\n\t\t\t\ttargetEntity,\n\t\t\t}\n\t\t}\n\t}\n\treturn null\n}\n\nexport const convertError = (\n\tschema: Model.Schema,\n\tdatabaseMetadata: DatabaseMetadata,\n\te: any,\n): MutationResult => {\n\n\tif (e instanceof Database.NotNullViolationError) {\n\t\treturn new MutationConstraintViolationError([], ConstraintType.notNull, e.originalMessage, [\n\t\t\tMutationResultHint.sqlError,\n\t\t])\n\t}\n\tif (e instanceof Database.ForeignKeyViolationError) {\n\t\tconst relationInfo = e.constraint && e.table ? findForeignConstraint(schema, databaseMetadata, e.table, e.constraint) : null\n\t\tconst violationDetail: string = 'detail' in e.previous ? e.previous.detail : ''\n\t\tconst matchResult = violationDetail.match(/^Key \\(.+\\)=\\((.+)\\) is still referenced from table/)\n\t\tconst message = relationInfo\n\t\t\t? `Cannot delete ${matchResult ? `row ${matchResult[1]}` : 'unknown row'}`\n\t\t\t\t+ ` of entity ${relationInfo.targetEntity.name},`\n\t\t\t\t+ ` because it is still referenced from ${relationInfo.owningEntity.name}::${relationInfo.owningRelation.name}.`\n\t\t\t\t+ ' This is possibly caused by ACL denial or by missing \"on delete cascade\"'\n\t\t\t: e.originalMessage\n\t\treturn new MutationConstraintViolationError([], ConstraintType.foreignKey, message, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof Database.UniqueViolationError) {\n\t\tconst constraint = e.constraint && e.table ? findUniqueConstraint(schema, databaseMetadata, e.table, e.constraint) : null\n\t\tconst violationDetail: string = 'detail' in e.previous ? e.previous.detail : ''\n\t\tconst matchResult = violationDetail.match(/^Key \\(.+\\)=\\((.+)\\) already exists\\.$/)\n\t\tconst values = matchResult?.[1]\n\t\tconst message = constraint\n\t\t\t? `${values ? `Value (${values})` : 'Unknown value'}` +\n\t\t\t ` already exists in unique columns (${constraint.fields.join(', ')}) on entity ${constraint.entity.name}`\n\t\t\t: e.originalMessage\n\t\tconst paths = constraint ? constraint.fields.map(it => [{ field: it }]) : []\n\t\treturn new MutationConstraintViolationError(paths, ConstraintType.uniqueKey, message, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof UniqueWhereError) {\n\t\treturn new MutationInputError([], InputErrorKind.nonUniqueWhere, e.message)\n\t}\n\tif (e instanceof Database.InvalidDataError) {\n\t\treturn new MutationInputError([], InputErrorKind.invalidData, e.originalMessage, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof Database.SerializationFailureError) {\n\t\tthrow e\n\t}\n\tif (e instanceof Database.TransactionAbortedError) {\n\t\treturn new MutationSqlError([], e.originalMessage, [MutationResultHint.subSequentSqlError])\n\t}\n\tif (e instanceof Database.QueryError || e instanceof Database.CannotCommitError) {\n\t\tlogger.error(e, { loc: 'convertError' })\n\t\treturn new MutationSqlError([], e.originalMessage, [MutationResultHint.sqlError])\n\t}\n\tthrow e\n}\n\nexport const tryMutation = async (schema: Model.Schema, databaseMetadata: DatabaseMetadata, cb: () => Promise<MutationResultList>): Promise<MutationResultList> => {\n\ttry {\n\t\treturn await cb()\n\t} catch (e) {\n\t\treturn [convertError(schema, databaseMetadata, e)]\n\t}\n}\n"],"names":["tryGetColumnName","acceptFieldVisitor","relation","Database","MutationConstraintViolationError","ConstraintType","MutationResultHint","UniqueWhereError","MutationInputError","InputErrorKind","MutationSqlError","logger"],"mappings":"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"}
1
+ {"version":3,"file":"ErrorUtils.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/ErrorUtils.ts"],"sourcesContent":["import {\n\tConstraintType,\n\tInputErrorKind,\n\tMutationConstraintViolationError,\n\tMutationInputError,\n\tMutationResult,\n\tMutationResultHint,\n\tMutationResultList,\n\tMutationSqlError,\n} from './Result'\nimport * as Database from '@contember/database'\nimport { UniqueWhereError } from '../inputProcessing'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor, tryGetColumnName } from '@contember/schema-utils'\nimport { logger } from '@contember/logger'\nimport { DatabaseMetadata } from '@contember/database'\n\n\ntype UniqueConstraintResult = {\n\tentity: Model.Entity\n\tfields: string[]\n}\n\nconst getEntityByTableName = (model: Model.Schema, tableName: string) => Object.values(model.entities).find(it => it.tableName === tableName)\n\nconst findUniqueConstraint = (model: Model.Schema, databaseMetadata: DatabaseMetadata, tableName: string, constraintName: string): UniqueConstraintResult | null => {\n\tconst constraint = databaseMetadata.uniqueConstraints.filter({ tableName, constraintName }).first()\n\tif (!constraint) {\n\t\treturn null\n\t}\n\tconst entity = getEntityByTableName(model, constraint.tableName)\n\tif (!entity) {\n\t\treturn null\n\t}\n\tconst fieldsInConstraint: string[] = []\n\tfor (const field of Object.values(entity.fields)) {\n\t\tconst columnName = tryGetColumnName(model, entity, field.name)\n\t\tif (columnName && constraint.columnNames.includes(columnName)) {\n\t\t\tfieldsInConstraint.push(field.name)\n\t\t}\n\t}\n\tif (fieldsInConstraint.length === constraint.columnNames.length) {\n\t\treturn { entity, fields: fieldsInConstraint }\n\t}\n\treturn null\n}\n\ntype RelationInfo = {\n\towningEntity: Model.Entity\n\towningRelation: Model.Relation\n\ttargetEntity: Model.Entity\n}\n\nconst findForeignConstraint = (model: Model.Schema, databaseMetadata: DatabaseMetadata, tableName: string, constraintName: string): RelationInfo | null => {\n\tconst constraint = databaseMetadata.foreignKeys.filter({ fromTable: tableName, constraintName }).first()\n\tif (!constraint) {\n\t\treturn null\n\t}\n\tconst owningEntity = getEntityByTableName(model, constraint.fromTable)\n\tif (!owningEntity) {\n\t\t// todo m:n\n\t\treturn null\n\t}\n\n\tconst targetEntity = getEntityByTableName(model, constraint.toTable)\n\tif (!targetEntity) {\n\t\treturn null\n\t}\n\tfor (const field of Object.values(owningEntity.fields)) {\n\t\tconst relation = acceptFieldVisitor<(Model.Relation & Model.JoiningColumnRelation) | null>(model, owningEntity, field, {\n\t\t\tvisitColumn: () => null,\n\t\t\tvisitOneHasOneInverse: () => null,\n\t\t\tvisitManyHasManyInverse: () => null,\n\t\t\tvisitManyHasManyOwning: () => null,\n\t\t\tvisitOneHasMany: () => null,\n\t\t\tvisitOneHasOneOwning: ({ relation }) => relation,\n\t\t\tvisitManyHasOne: ({ relation }) => relation,\n\t\t})\n\t\tif (relation && relation.joiningColumn.columnName === constraint.fromColumn) {\n\t\t\treturn {\n\t\t\t\towningEntity,\n\t\t\t\towningRelation: relation,\n\t\t\t\ttargetEntity,\n\t\t\t}\n\t\t}\n\t}\n\treturn null\n}\n\nexport const convertError = (\n\tschema: Model.Schema,\n\tdatabaseMetadata: DatabaseMetadata,\n\te: any,\n): MutationResult => {\n\n\tif (e instanceof Database.NotNullViolationError) {\n\t\treturn new MutationConstraintViolationError([], ConstraintType.notNull, e.originalMessage, [\n\t\t\tMutationResultHint.sqlError,\n\t\t])\n\t}\n\tif (e instanceof Database.ForeignKeyViolationError) {\n\t\tconst relationInfo = e.constraint && e.table ? findForeignConstraint(schema, databaseMetadata, e.table, e.constraint) : null\n\t\tconst violationDetail: string = 'detail' in e.previous ? e.previous.detail : ''\n\t\tconst matchResult = violationDetail.match(/^Key \\(.+\\)=\\((.+)\\) is still referenced from table/)\n\t\tconst message = relationInfo\n\t\t\t? `Cannot delete ${matchResult ? `row ${matchResult[1]}` : 'unknown row'}`\n\t\t\t\t+ ` of entity ${relationInfo.targetEntity.name},`\n\t\t\t\t+ ` because it is still referenced from ${relationInfo.owningEntity.name}::${relationInfo.owningRelation.name}.`\n\t\t\t\t+ ' This is possibly caused by ACL denial or by missing \"on delete cascade\"'\n\t\t\t: e.originalMessage\n\t\treturn new MutationConstraintViolationError([], ConstraintType.foreignKey, message, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof Database.UniqueViolationError) {\n\t\tconst constraint = e.constraint && e.table ? findUniqueConstraint(schema, databaseMetadata, e.table, e.constraint) : null\n\t\tconst violationDetail: string = 'detail' in e.previous ? e.previous.detail : ''\n\t\tconst matchResult = violationDetail.match(/^Key \\(.+\\)=\\((.+)\\) already exists\\.$/)\n\t\tconst values = matchResult?.[1]\n\t\tconst message = constraint\n\t\t\t? `${values ? `Value (${values})` : 'Unknown value'}` +\n\t\t\t ` already exists in unique columns (${constraint.fields.join(', ')}) on entity ${constraint.entity.name}`\n\t\t\t: e.originalMessage\n\t\tconst paths = constraint ? constraint.fields.map(it => [{ field: it }]) : []\n\t\treturn new MutationConstraintViolationError(paths, ConstraintType.uniqueKey, message, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof UniqueWhereError) {\n\t\treturn new MutationInputError([], InputErrorKind.nonUniqueWhere, e.message)\n\t}\n\tif (e instanceof Database.InvalidDataError) {\n\t\treturn new MutationInputError([], InputErrorKind.invalidData, e.originalMessage, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof Database.SerializationFailureError) {\n\t\tthrow e\n\t}\n\tif (e instanceof Database.TransactionAbortedError) {\n\t\treturn new MutationSqlError([], e.originalMessage, [MutationResultHint.subSequentSqlError])\n\t}\n\tif (e instanceof Database.QueryError || e instanceof Database.CannotCommitError) {\n\t\tlogger.error(e, { loc: 'convertError' })\n\t\treturn new MutationSqlError([], e.originalMessage, [MutationResultHint.sqlError])\n\t}\n\tthrow e\n}\n\nexport const tryMutation = async (schema: Model.Schema, databaseMetadata: DatabaseMetadata, cb: () => Promise<MutationResultList>): Promise<MutationResultList> => {\n\ttry {\n\t\treturn await cb()\n\t} catch (e) {\n\t\treturn [convertError(schema, databaseMetadata, e)]\n\t}\n}\n"],"names":["tryGetColumnName","acceptFieldVisitor","relation","Database","MutationConstraintViolationError","ConstraintType","MutationResultHint","UniqueWhereError","MutationInputError","InputErrorKind","MutationSqlError","logger"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorUtils.js","sources":["../../../../../packages/engine-content-api/src/mapper/ErrorUtils.ts"],"sourcesContent":["import {\n\tConstraintType,\n\tInputErrorKind,\n\tMutationConstraintViolationError,\n\tMutationInputError,\n\tMutationResult,\n\tMutationResultHint,\n\tMutationResultList,\n\tMutationSqlError,\n} from './Result'\nimport * as Database from '@contember/database'\nimport { UniqueWhereError } from '../inputProcessing'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor, tryGetColumnName } from '@contember/schema-utils'\nimport { logger } from '@contember/logger'\nimport { DatabaseMetadata } from '@contember/database'\n\n\ntype UniqueConstraintResult = {\n\tentity: Model.Entity\n\tfields: string[]\n}\n\nconst getEntityByTableName = (model: Model.Schema, tableName: string) => Object.values(model.entities).find(it => it.tableName === tableName)\n\nconst findUniqueConstraint = (model: Model.Schema, databaseMetadata: DatabaseMetadata, tableName: string, constraintName: string): UniqueConstraintResult | null => {\n\tconst constraint = databaseMetadata.uniqueConstraints.filter({ tableName, constraintName }).first()\n\tif (!constraint) {\n\t\treturn null\n\t}\n\tconst entity = getEntityByTableName(model, constraint.tableName)\n\tif (!entity) {\n\t\treturn null\n\t}\n\tconst fieldsInConstraint: string[] = []\n\tfor (const field of Object.values(entity.fields)) {\n\t\tconst columnName = tryGetColumnName(model, entity, field.name)\n\t\tif (columnName && constraint.columnNames.includes(columnName)) {\n\t\t\tfieldsInConstraint.push(field.name)\n\t\t}\n\t}\n\tif (fieldsInConstraint.length === constraint.columnNames.length) {\n\t\treturn { entity, fields: fieldsInConstraint }\n\t}\n\treturn null\n}\n\ntype RelationInfo = {\n\towningEntity: Model.Entity\n\towningRelation: Model.Relation\n\ttargetEntity: Model.Entity\n}\n\nconst findForeignConstraint = (model: Model.Schema, databaseMetadata: DatabaseMetadata, tableName: string, constraintName: string): RelationInfo | null => {\n\tconst constraint = databaseMetadata.foreignKeys.filter({ fromTable: tableName, constraintName }).first()\n\tif (!constraint) {\n\t\treturn null\n\t}\n\tconst owningEntity = getEntityByTableName(model, constraint.fromTable)\n\tif (!owningEntity) {\n\t\t// todo m:n\n\t\treturn null\n\t}\n\n\tconst targetEntity = getEntityByTableName(model, constraint.toTable)\n\tif (!targetEntity) {\n\t\treturn null\n\t}\n\tfor (const field of Object.values(owningEntity.fields)) {\n\t\tconst relation = acceptFieldVisitor<(Model.Relation & Model.JoiningColumnRelation) | null>(model, owningEntity, field, {\n\t\t\tvisitColumn: () => null,\n\t\t\tvisitOneHasOneInverse: () => null,\n\t\t\tvisitManyHasManyInverse: () => null,\n\t\t\tvisitManyHasManyOwning: () => null,\n\t\t\tvisitOneHasMany: () => null,\n\t\t\tvisitOneHasOneOwning: ({ relation }) => relation,\n\t\t\tvisitManyHasOne: ({ relation }) => relation,\n\t\t})\n\t\tif (relation && relation.joiningColumn.columnName === constraint.fromColumn) {\n\t\t\treturn {\n\t\t\t\towningEntity,\n\t\t\t\towningRelation: relation,\n\t\t\t\ttargetEntity,\n\t\t\t}\n\t\t}\n\t}\n\treturn null\n}\n\nexport const convertError = (\n\tschema: Model.Schema,\n\tdatabaseMetadata: DatabaseMetadata,\n\te: any,\n): MutationResult => {\n\n\tif (e instanceof Database.NotNullViolationError) {\n\t\treturn new MutationConstraintViolationError([], ConstraintType.notNull, e.originalMessage, [\n\t\t\tMutationResultHint.sqlError,\n\t\t])\n\t}\n\tif (e instanceof Database.ForeignKeyViolationError) {\n\t\tconst relationInfo = e.constraint && e.table ? findForeignConstraint(schema, databaseMetadata, e.table, e.constraint) : null\n\t\tconst violationDetail: string = 'detail' in e.previous ? e.previous.detail : ''\n\t\tconst matchResult = violationDetail.match(/^Key \\(.+\\)=\\((.+)\\) is still referenced from table/)\n\t\tconst message = relationInfo\n\t\t\t? `Cannot delete ${matchResult ? `row ${matchResult[1]}` : 'unknown row'}`\n\t\t\t\t+ ` of entity ${relationInfo.targetEntity.name},`\n\t\t\t\t+ ` because it is still referenced from ${relationInfo.owningEntity.name}::${relationInfo.owningRelation.name}.`\n\t\t\t\t+ ' This is possibly caused by ACL denial or by missing \"on delete cascade\"'\n\t\t\t: e.originalMessage\n\t\treturn new MutationConstraintViolationError([], ConstraintType.foreignKey, message, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof Database.UniqueViolationError) {\n\t\tconst constraint = e.constraint && e.table ? findUniqueConstraint(schema, databaseMetadata, e.table, e.constraint) : null\n\t\tconst violationDetail: string = 'detail' in e.previous ? e.previous.detail : ''\n\t\tconst matchResult = violationDetail.match(/^Key \\(.+\\)=\\((.+)\\) already exists\\.$/)\n\t\tconst values = matchResult?.[1]\n\t\tconst message = constraint\n\t\t\t? `${values ? `Value (${values})` : 'Unknown value'}` +\n\t\t\t ` already exists in unique columns (${constraint.fields.join(', ')}) on entity ${constraint.entity.name}`\n\t\t\t: e.originalMessage\n\t\tconst paths = constraint ? constraint.fields.map(it => [{ field: it }]) : []\n\t\treturn new MutationConstraintViolationError(paths, ConstraintType.uniqueKey, message, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof UniqueWhereError) {\n\t\treturn new MutationInputError([], InputErrorKind.nonUniqueWhere, e.message)\n\t}\n\tif (e instanceof Database.InvalidDataError) {\n\t\treturn new MutationInputError([], InputErrorKind.invalidData, e.originalMessage, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof Database.SerializationFailureError) {\n\t\tthrow e\n\t}\n\tif (e instanceof Database.TransactionAbortedError) {\n\t\treturn new MutationSqlError([], e.originalMessage, [MutationResultHint.subSequentSqlError])\n\t}\n\tif (e instanceof Database.QueryError || e instanceof Database.CannotCommitError) {\n\t\tlogger.error(e, { loc: 'convertError' })\n\t\treturn new MutationSqlError([], e.originalMessage, [MutationResultHint.sqlError])\n\t}\n\tthrow e\n}\n\nexport const tryMutation = async (schema: Model.Schema, databaseMetadata: DatabaseMetadata, cb: () => Promise<MutationResultList>): Promise<MutationResultList> => {\n\ttry {\n\t\treturn await cb()\n\t} catch (e) {\n\t\treturn [convertError(schema, databaseMetadata, e)]\n\t}\n}\n"],"names":["relation"],"mappings":";;;;;;AAuBA,MAAM,uBAAuB,CAAC,OAAqB,cAAsB,OAAO,OAAO,MAAM,QAAQ,EAAE,KAAK,CAAM,OAAA,GAAG,cAAc,SAAS;AAE5I,MAAM,uBAAuB,CAAC,OAAqB,kBAAoC,WAAmB,mBAA0D;AAC7J,QAAA,aAAa,iBAAiB,kBAAkB,OAAO,EAAE,WAAW,eAAA,CAAgB,EAAE;AAC5F,MAAI,CAAC,YAAY;AACT,WAAA;AAAA,EACR;AACA,QAAM,SAAS,qBAAqB,OAAO,WAAW,SAAS;AAC/D,MAAI,CAAC,QAAQ;AACL,WAAA;AAAA,EACR;AACA,QAAM,qBAA+B,CAAA;AACrC,aAAW,SAAS,OAAO,OAAO,OAAO,MAAM,GAAG;AACjD,UAAM,aAAa,iBAAiB,OAAO,QAAQ,MAAM,IAAI;AAC7D,QAAI,cAAc,WAAW,YAAY,SAAS,UAAU,GAAG;AAC3C,yBAAA,KAAK,MAAM,IAAI;AAAA,IACnC;AAAA,EACD;AACA,MAAI,mBAAmB,WAAW,WAAW,YAAY,QAAQ;AACzD,WAAA,EAAE,QAAQ,QAAQ;EAC1B;AACO,SAAA;AACR;AAQA,MAAM,wBAAwB,CAAC,OAAqB,kBAAoC,WAAmB,mBAAgD;AACpJ,QAAA,aAAa,iBAAiB,YAAY,OAAO,EAAE,WAAW,WAAW,eAAA,CAAgB,EAAE;AACjG,MAAI,CAAC,YAAY;AACT,WAAA;AAAA,EACR;AACA,QAAM,eAAe,qBAAqB,OAAO,WAAW,SAAS;AACrE,MAAI,CAAC,cAAc;AAEX,WAAA;AAAA,EACR;AAEA,QAAM,eAAe,qBAAqB,OAAO,WAAW,OAAO;AACnE,MAAI,CAAC,cAAc;AACX,WAAA;AAAA,EACR;AACA,aAAW,SAAS,OAAO,OAAO,aAAa,MAAM,GAAG;AACvD,UAAM,WAAW,mBAA0E,OAAO,cAAc,OAAO;AAAA,MACtH,aAAa,MAAM;AAAA,MACnB,uBAAuB,MAAM;AAAA,MAC7B,yBAAyB,MAAM;AAAA,MAC/B,wBAAwB,MAAM;AAAA,MAC9B,iBAAiB,MAAM;AAAA,MACvB,sBAAsB,CAAC,EAAE,UAAAA,UAAeA,MAAAA;AAAAA,MACxC,iBAAiB,CAAC,EAAE,UAAAA,UAAeA,MAAAA;AAAAA,IAAA,CACnC;AACD,QAAI,YAAY,SAAS,cAAc,eAAe,WAAW,YAAY;AACrE,aAAA;AAAA,QACN;AAAA,QACA,gBAAgB;AAAA,QAChB;AAAA,MAAA;AAAA,IAEF;AAAA,EACD;AACO,SAAA;AACR;AAEO,MAAM,eAAe,CAC3B,QACA,kBACA,MACoB;AAEhB,MAAA,aAAa,SAAS,uBAAuB;AAChD,WAAO,IAAI,iCAAiC,IAAI,eAAe,SAAS,EAAE,iBAAiB;AAAA,MAC1F,mBAAmB;AAAA,IAAA,CACnB;AAAA,EACF;AACI,MAAA,aAAa,SAAS,0BAA0B;AACnD,UAAM,eAAe,EAAE,cAAc,EAAE,QAAQ,sBAAsB,QAAQ,kBAAkB,EAAE,OAAO,EAAE,UAAU,IAAI;AACxH,UAAM,kBAA0B,YAAY,EAAE,WAAW,EAAE,SAAS,SAAS;AACvE,UAAA,cAAc,gBAAgB,MAAM,qDAAqD;AACzF,UAAA,UAAU,eACb,iBAAiB,cAAc,OAAO,YAAY,CAAC,CAAC,KAAK,aAAa,cACvD,aAAa,aAAa,IAAI,yCACJ,aAAa,aAAa,IAAI,KAAK,aAAa,eAAe,IAAI,8EAE5G,EAAE;AACE,WAAA,IAAI,iCAAiC,CAAI,GAAA,eAAe,YAAY,SAAS,CAAC,mBAAmB,QAAQ,CAAC;AAAA,EAClH;AACI,MAAA,aAAa,SAAS,sBAAsB;AAC/C,UAAM,aAAa,EAAE,cAAc,EAAE,QAAQ,qBAAqB,QAAQ,kBAAkB,EAAE,OAAO,EAAE,UAAU,IAAI;AACrH,UAAM,kBAA0B,YAAY,EAAE,WAAW,EAAE,SAAS,SAAS;AACvE,UAAA,cAAc,gBAAgB,MAAM,wCAAwC;AAC5E,UAAA,SAAS,cAAc,CAAC;AAC9B,UAAM,UAAU,aACb,GAAG,SAAS,UAAU,MAAM,MAAM,eAAe,sCACX,WAAW,OAAO,KAAK,IAAI,CAAC,eAAe,WAAW,OAAO,IAAI,KACvG,EAAE;AACL,UAAM,QAAQ,aAAa,WAAW,OAAO,IAAI,CAAA,OAAM,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,CAAA;AACnE,WAAA,IAAI,iCAAiC,OAAO,eAAe,WAAW,SAAS,CAAC,mBAAmB,QAAQ,CAAC;AAAA,EACpH;AACA,MAAI,aAAa,kBAAkB;AAClC,WAAO,IAAI,mBAAmB,IAAI,eAAe,gBAAgB,EAAE,OAAO;AAAA,EAC3E;AACI,MAAA,aAAa,SAAS,kBAAkB;AACpC,WAAA,IAAI,mBAAmB,IAAI,eAAe,aAAa,EAAE,iBAAiB,CAAC,mBAAmB,QAAQ,CAAC;AAAA,EAC/G;AACI,MAAA,aAAa,SAAS,2BAA2B;AAC9C,UAAA;AAAA,EACP;AACI,MAAA,aAAa,SAAS,yBAAyB;AAC3C,WAAA,IAAI,iBAAiB,CAAA,GAAI,EAAE,iBAAiB,CAAC,mBAAmB,kBAAkB,CAAC;AAAA,EAC3F;AACA,MAAI,aAAa,SAAS,cAAc,aAAa,SAAS,mBAAmB;AAChF,WAAO,MAAM,GAAG,EAAE,KAAK,eAAgB,CAAA;AAChC,WAAA,IAAI,iBAAiB,CAAA,GAAI,EAAE,iBAAiB,CAAC,mBAAmB,QAAQ,CAAC;AAAA,EACjF;AACM,QAAA;AACP;AAEO,MAAM,cAAc,OAAO,QAAsB,kBAAoC,OAAuE;AAC9J,MAAA;AACH,WAAO,MAAM,GAAG;AAAA,WACR,GAAG;AACX,WAAO,CAAC,aAAa,QAAQ,kBAAkB,CAAC,CAAC;AAAA,EAClD;AACD;"}
1
+ {"version":3,"file":"ErrorUtils.js","sources":["../../../../../packages/engine-content-api/src/mapper/ErrorUtils.ts"],"sourcesContent":["import {\n\tConstraintType,\n\tInputErrorKind,\n\tMutationConstraintViolationError,\n\tMutationInputError,\n\tMutationResult,\n\tMutationResultHint,\n\tMutationResultList,\n\tMutationSqlError,\n} from './Result'\nimport * as Database from '@contember/database'\nimport { UniqueWhereError } from '../inputProcessing'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor, tryGetColumnName } from '@contember/schema-utils'\nimport { logger } from '@contember/logger'\nimport { DatabaseMetadata } from '@contember/database'\n\n\ntype UniqueConstraintResult = {\n\tentity: Model.Entity\n\tfields: string[]\n}\n\nconst getEntityByTableName = (model: Model.Schema, tableName: string) => Object.values(model.entities).find(it => it.tableName === tableName)\n\nconst findUniqueConstraint = (model: Model.Schema, databaseMetadata: DatabaseMetadata, tableName: string, constraintName: string): UniqueConstraintResult | null => {\n\tconst constraint = databaseMetadata.uniqueConstraints.filter({ tableName, constraintName }).first()\n\tif (!constraint) {\n\t\treturn null\n\t}\n\tconst entity = getEntityByTableName(model, constraint.tableName)\n\tif (!entity) {\n\t\treturn null\n\t}\n\tconst fieldsInConstraint: string[] = []\n\tfor (const field of Object.values(entity.fields)) {\n\t\tconst columnName = tryGetColumnName(model, entity, field.name)\n\t\tif (columnName && constraint.columnNames.includes(columnName)) {\n\t\t\tfieldsInConstraint.push(field.name)\n\t\t}\n\t}\n\tif (fieldsInConstraint.length === constraint.columnNames.length) {\n\t\treturn { entity, fields: fieldsInConstraint }\n\t}\n\treturn null\n}\n\ntype RelationInfo = {\n\towningEntity: Model.Entity\n\towningRelation: Model.Relation\n\ttargetEntity: Model.Entity\n}\n\nconst findForeignConstraint = (model: Model.Schema, databaseMetadata: DatabaseMetadata, tableName: string, constraintName: string): RelationInfo | null => {\n\tconst constraint = databaseMetadata.foreignKeys.filter({ fromTable: tableName, constraintName }).first()\n\tif (!constraint) {\n\t\treturn null\n\t}\n\tconst owningEntity = getEntityByTableName(model, constraint.fromTable)\n\tif (!owningEntity) {\n\t\t// todo m:n\n\t\treturn null\n\t}\n\n\tconst targetEntity = getEntityByTableName(model, constraint.toTable)\n\tif (!targetEntity) {\n\t\treturn null\n\t}\n\tfor (const field of Object.values(owningEntity.fields)) {\n\t\tconst relation = acceptFieldVisitor<(Model.Relation & Model.JoiningColumnRelation) | null>(model, owningEntity, field, {\n\t\t\tvisitColumn: () => null,\n\t\t\tvisitOneHasOneInverse: () => null,\n\t\t\tvisitManyHasManyInverse: () => null,\n\t\t\tvisitManyHasManyOwning: () => null,\n\t\t\tvisitOneHasMany: () => null,\n\t\t\tvisitOneHasOneOwning: ({ relation }) => relation,\n\t\t\tvisitManyHasOne: ({ relation }) => relation,\n\t\t})\n\t\tif (relation && relation.joiningColumn.columnName === constraint.fromColumn) {\n\t\t\treturn {\n\t\t\t\towningEntity,\n\t\t\t\towningRelation: relation,\n\t\t\t\ttargetEntity,\n\t\t\t}\n\t\t}\n\t}\n\treturn null\n}\n\nexport const convertError = (\n\tschema: Model.Schema,\n\tdatabaseMetadata: DatabaseMetadata,\n\te: any,\n): MutationResult => {\n\n\tif (e instanceof Database.NotNullViolationError) {\n\t\treturn new MutationConstraintViolationError([], ConstraintType.notNull, e.originalMessage, [\n\t\t\tMutationResultHint.sqlError,\n\t\t])\n\t}\n\tif (e instanceof Database.ForeignKeyViolationError) {\n\t\tconst relationInfo = e.constraint && e.table ? findForeignConstraint(schema, databaseMetadata, e.table, e.constraint) : null\n\t\tconst violationDetail: string = 'detail' in e.previous ? e.previous.detail : ''\n\t\tconst matchResult = violationDetail.match(/^Key \\(.+\\)=\\((.+)\\) is still referenced from table/)\n\t\tconst message = relationInfo\n\t\t\t? `Cannot delete ${matchResult ? `row ${matchResult[1]}` : 'unknown row'}`\n\t\t\t\t+ ` of entity ${relationInfo.targetEntity.name},`\n\t\t\t\t+ ` because it is still referenced from ${relationInfo.owningEntity.name}::${relationInfo.owningRelation.name}.`\n\t\t\t\t+ ' This is possibly caused by ACL denial or by missing \"on delete cascade\"'\n\t\t\t: e.originalMessage\n\t\treturn new MutationConstraintViolationError([], ConstraintType.foreignKey, message, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof Database.UniqueViolationError) {\n\t\tconst constraint = e.constraint && e.table ? findUniqueConstraint(schema, databaseMetadata, e.table, e.constraint) : null\n\t\tconst violationDetail: string = 'detail' in e.previous ? e.previous.detail : ''\n\t\tconst matchResult = violationDetail.match(/^Key \\(.+\\)=\\((.+)\\) already exists\\.$/)\n\t\tconst values = matchResult?.[1]\n\t\tconst message = constraint\n\t\t\t? `${values ? `Value (${values})` : 'Unknown value'}` +\n\t\t\t ` already exists in unique columns (${constraint.fields.join(', ')}) on entity ${constraint.entity.name}`\n\t\t\t: e.originalMessage\n\t\tconst paths = constraint ? constraint.fields.map(it => [{ field: it }]) : []\n\t\treturn new MutationConstraintViolationError(paths, ConstraintType.uniqueKey, message, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof UniqueWhereError) {\n\t\treturn new MutationInputError([], InputErrorKind.nonUniqueWhere, e.message)\n\t}\n\tif (e instanceof Database.InvalidDataError) {\n\t\treturn new MutationInputError([], InputErrorKind.invalidData, e.originalMessage, [MutationResultHint.sqlError])\n\t}\n\tif (e instanceof Database.SerializationFailureError) {\n\t\tthrow e\n\t}\n\tif (e instanceof Database.TransactionAbortedError) {\n\t\treturn new MutationSqlError([], e.originalMessage, [MutationResultHint.subSequentSqlError])\n\t}\n\tif (e instanceof Database.QueryError || e instanceof Database.CannotCommitError) {\n\t\tlogger.error(e, { loc: 'convertError' })\n\t\treturn new MutationSqlError([], e.originalMessage, [MutationResultHint.sqlError])\n\t}\n\tthrow e\n}\n\nexport const tryMutation = async (schema: Model.Schema, databaseMetadata: DatabaseMetadata, cb: () => Promise<MutationResultList>): Promise<MutationResultList> => {\n\ttry {\n\t\treturn await cb()\n\t} catch (e) {\n\t\treturn [convertError(schema, databaseMetadata, e)]\n\t}\n}\n"],"names":["relation"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EventManager.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/EventManager.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { ResolvedColumnValue } from './ColumnValue'\nimport { Mapper } from './Mapper'\n\nexport class BeforeInsertEvent {\n\tpublic type = 'BeforeInsertEvent' as const\n\n\tpublic afterEvent: AfterInsertEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ResolvedColumnValue[],\n\t) {\n\t}\n}\n\nexport class AfterInsertEvent {\n\tpublic type = 'AfterInsertEvent' as const\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ResolvedColumnValue[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\n\nexport class BeforeUpdateEvent {\n\tpublic type = 'BeforeUpdateEvent' as const\n\n\tpublic afterEvent: AfterUpdateEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ResolvedColumnValue[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\nexport class AfterUpdateEvent {\n\tpublic type = 'AfterUpdateEvent' as const\n\n\tprivate _hasChanges: boolean | undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: (ResolvedColumnValue & { old: Value.FieldValue })[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n\tget hasChanges() {\n\t\t// todo: deep equals\n\t\treturn this._hasChanges = this.data.some(it => it.resolvedValue !== it.old)\n\t}\n}\n\nexport class BeforeDeleteEvent {\n\tpublic type = 'BeforeDeleteEvent' as const\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\nexport class BeforeJunctionUpdateEvent {\n\tpublic type = 'BeforeJunctionUpdateEvent' as const\n\n\tpublic afterEvent: AfterJunctionUpdateEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly owningEntity: Model.Entity,\n\t\tpublic readonly owningRelation: Model.ManyHasManyOwningRelation,\n\t\tpublic readonly owningId: Input.PrimaryValue,\n\t\tpublic readonly inverseId: Input.PrimaryValue,\n\t\tpublic readonly operation: 'connect' | 'disconnect',\n\t) {\n\t}\n}\n\n\nexport class AfterJunctionUpdateEvent {\n\tpublic type = 'AfterJunctionUpdateEvent' as const\n\n\tconstructor(\n\t\tpublic readonly owningEntity: Model.Entity,\n\t\tpublic readonly owningRelation: Model.ManyHasManyOwningRelation,\n\t\tpublic readonly owningId: Input.PrimaryValue,\n\t\tpublic readonly inverseId: Input.PrimaryValue,\n\t\tpublic readonly operation: 'connect' | 'disconnect',\n\t\tpublic readonly hasChanges: boolean,\n\t) {\n\t}\n}\n\nexport class BeforeCommitEvent {\n\tpublic type = 'BeforeCommitEvent' as const\n}\n\nexport class AfterCommitEvent {\n\tpublic type = 'AfterCommitEvent' as const\n}\n\nexport type DataModificationEvent =\n\t| BeforeInsertEvent\n\t| AfterInsertEvent\n\t| BeforeUpdateEvent\n\t| AfterUpdateEvent\n\t| BeforeJunctionUpdateEvent\n\t| AfterJunctionUpdateEvent\n\t| BeforeDeleteEvent\n\nexport type AnyEvent =\n\t| DataModificationEvent\n\t| BeforeCommitEvent\n\t| AfterCommitEvent\n\nexport type EventMap<E extends AnyEvent = AnyEvent> = {\n\t[K in E['type']]: E extends { type: K } ? E : never\n}\n\nexport type EventListener<K extends keyof EventMap> = (event: EventMap[K], mapper: Mapper) => Promise<void>\n\nexport class EventManager {\n\tprivate listeners: { [K in keyof EventMap]: EventListener<K>[] } = {\n\t\tBeforeInsertEvent: [],\n\t\tAfterInsertEvent: [],\n\t\tBeforeUpdateEvent: [],\n\t\tAfterUpdateEvent: [],\n\t\tBeforeDeleteEvent: [],\n\t\tBeforeCommitEvent: [],\n\t\tAfterCommitEvent: [],\n\t\tBeforeJunctionUpdateEvent: [],\n\t\tAfterJunctionUpdateEvent: [],\n\t}\n\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic listen<K extends keyof EventMap>(type: K, cb: EventListener<K>) {\n\t\tthis.listeners[type].push(cb)\n\t}\n\n\tpublic async fire<K extends keyof EventMap>(event: EventMap[K]) {\n\t\tfor (const listener of this.listeners[event.type]) {\n\t\t\tawait listener(event, this.mapper)\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,kBAAkB;AAAA,EAK9B,YACiB,QACA,MACf;AAFe,SAAA,SAAA;AACA,SAAA,OAAA;AANjB,kBAAA,MAAO,QAAO,mBAAA;AAEP,kBAAA,MAAA,YAAA;AAAA,EAMP;AACD;AAEO,MAAM,iBAAiB;AAAA,EAG7B,YACiB,QACA,MACA,IACf;AAHe,SAAA,SAAA;AACA,SAAA,OAAA;AACA,SAAA,KAAA;AALjB,kBAAA,MAAO,QAAO,kBAAA;AAAA,EAOd;AACD;AAGO,MAAM,kBAAkB;AAAA,EAK9B,YACiB,QACA,MACA,IACf;AAHe,SAAA,SAAA;AACA,SAAA,OAAA;AACA,SAAA,KAAA;AAPjB,kBAAA,MAAO,QAAO,mBAAA;AAEP,kBAAA,MAAA,YAAA;AAAA,EAOP;AACD;AAEO,MAAM,iBAAiB;AAAA,EAK7B,YACiB,QACA,MACA,IACf;AAHe,SAAA,SAAA;AACA,SAAA,OAAA;AACA,SAAA,KAAA;AAPjB,kBAAA,MAAO,QAAO,kBAAA;AAEN,kBAAA,MAAA,aAAA;AAAA,EAOR;AAAA,EACA,IAAI,aAAa;AAET,WAAA,KAAK,cAAc,KAAK,KAAK,KAAK,CAAM,OAAA,GAAG,kBAAkB,GAAG,GAAG;AAAA,EAC3E;AACD;AAEO,MAAM,kBAAkB;AAAA,EAG9B,YACiB,QACA,IACf;AAFe,SAAA,SAAA;AACA,SAAA,KAAA;AAJjB,kBAAA,MAAO,QAAO,mBAAA;AAAA,EAMd;AACD;AAEO,MAAM,0BAA0B;AAAA,EAKtC,YACiB,cACA,gBACA,UACA,WACA,WACf;AALe,SAAA,eAAA;AACA,SAAA,iBAAA;AACA,SAAA,WAAA;AACA,SAAA,YAAA;AACA,SAAA,YAAA;AATjB,kBAAA,MAAO,QAAO,2BAAA;AAEP,kBAAA,MAAA,YAAA;AAAA,EASP;AACD;AAGO,MAAM,yBAAyB;AAAA,EAGrC,YACiB,cACA,gBACA,UACA,WACA,WACA,YACf;AANe,SAAA,eAAA;AACA,SAAA,iBAAA;AACA,SAAA,WAAA;AACA,SAAA,YAAA;AACA,SAAA,YAAA;AACA,SAAA,aAAA;AARjB,kBAAA,MAAO,QAAO,0BAAA;AAAA,EAUd;AACD;AAEO,MAAM,kBAAkB;AAAA,EAAxB,cAAA;AACN,kBAAA,MAAO,QAAO,mBAAA;AAAA,EAAA;AACf;AAEO,MAAM,iBAAiB;AAAA,EAAvB,cAAA;AACN,kBAAA,MAAO,QAAO,kBAAA;AAAA,EAAA;AACf;AAsBO,MAAM,aAAa;AAAA,EAazB,YACkB,QAChB;AADgB,SAAA,SAAA;AAblB,kBAAA,MAAQ,aAA2D;AAAA,MAClE,mBAAmB,CAAC;AAAA,MACpB,kBAAkB,CAAC;AAAA,MACnB,mBAAmB,CAAC;AAAA,MACpB,kBAAkB,CAAC;AAAA,MACnB,mBAAmB,CAAC;AAAA,MACpB,mBAAmB,CAAC;AAAA,MACpB,kBAAkB,CAAC;AAAA,MACnB,2BAA2B,CAAC;AAAA,MAC5B,0BAA0B,CAAC;AAAA,IAAA,CAC5B;AAAA,EAKA;AAAA,EAEO,OAAiC,MAAS,IAAsB;AACtE,SAAK,UAAU,IAAI,EAAE,KAAK,EAAE;AAAA,EAC7B;AAAA,EAEA,MAAa,KAA+B,OAAoB;AAC/D,eAAW,YAAY,KAAK,UAAU,MAAM,IAAI,GAAG;AAC5C,YAAA,SAAS,OAAO,KAAK,MAAM;AAAA,IAClC;AAAA,EACD;AACD;;;;;;;;;;;"}
1
+ {"version":3,"file":"EventManager.cjs","sources":["../../../../../packages/engine-content-api/src/mapper/EventManager.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { ResolvedColumnValue } from './ColumnValue'\nimport { Mapper } from './Mapper'\n\nexport class BeforeInsertEvent {\n\tpublic type = 'BeforeInsertEvent' as const\n\n\tpublic afterEvent: AfterInsertEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ResolvedColumnValue[],\n\t) {\n\t}\n}\n\nexport class AfterInsertEvent {\n\tpublic type = 'AfterInsertEvent' as const\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ResolvedColumnValue[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\n\nexport class BeforeUpdateEvent {\n\tpublic type = 'BeforeUpdateEvent' as const\n\n\tpublic afterEvent: AfterUpdateEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: ResolvedColumnValue[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\nexport class AfterUpdateEvent {\n\tpublic type = 'AfterUpdateEvent' as const\n\n\tprivate _hasChanges: boolean | undefined\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly data: (ResolvedColumnValue & { old: Value.FieldValue })[],\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n\tget hasChanges() {\n\t\t// todo: deep equals\n\t\treturn this._hasChanges = this.data.some(it => it.resolvedValue !== it.old)\n\t}\n}\n\nexport class BeforeDeleteEvent {\n\tpublic type = 'BeforeDeleteEvent' as const\n\n\tconstructor(\n\t\tpublic readonly entity: Model.Entity,\n\t\tpublic readonly id: Input.PrimaryValue,\n\t) {\n\t}\n}\n\nexport class BeforeJunctionUpdateEvent {\n\tpublic type = 'BeforeJunctionUpdateEvent' as const\n\n\tpublic afterEvent: AfterJunctionUpdateEvent | undefined = undefined\n\n\tconstructor(\n\t\tpublic readonly owningEntity: Model.Entity,\n\t\tpublic readonly owningRelation: Model.ManyHasManyOwningRelation,\n\t\tpublic readonly owningId: Input.PrimaryValue,\n\t\tpublic readonly inverseId: Input.PrimaryValue,\n\t\tpublic readonly operation: 'connect' | 'disconnect',\n\t) {\n\t}\n}\n\n\nexport class AfterJunctionUpdateEvent {\n\tpublic type = 'AfterJunctionUpdateEvent' as const\n\n\tconstructor(\n\t\tpublic readonly owningEntity: Model.Entity,\n\t\tpublic readonly owningRelation: Model.ManyHasManyOwningRelation,\n\t\tpublic readonly owningId: Input.PrimaryValue,\n\t\tpublic readonly inverseId: Input.PrimaryValue,\n\t\tpublic readonly operation: 'connect' | 'disconnect',\n\t\tpublic readonly hasChanges: boolean,\n\t) {\n\t}\n}\n\nexport class BeforeCommitEvent {\n\tpublic type = 'BeforeCommitEvent' as const\n}\n\nexport class AfterCommitEvent {\n\tpublic type = 'AfterCommitEvent' as const\n}\n\nexport type DataModificationEvent =\n\t| BeforeInsertEvent\n\t| AfterInsertEvent\n\t| BeforeUpdateEvent\n\t| AfterUpdateEvent\n\t| BeforeJunctionUpdateEvent\n\t| AfterJunctionUpdateEvent\n\t| BeforeDeleteEvent\n\nexport type AnyEvent =\n\t| DataModificationEvent\n\t| BeforeCommitEvent\n\t| AfterCommitEvent\n\nexport type EventMap<E extends AnyEvent = AnyEvent> = {\n\t[K in E['type']]: E extends { type: K } ? E : never\n}\n\nexport type EventListener<K extends keyof EventMap> = (event: EventMap[K], mapper: Mapper) => Promise<void>\n\nexport class EventManager {\n\tprivate listeners: { [K in keyof EventMap]: EventListener<K>[] } = {\n\t\tBeforeInsertEvent: [],\n\t\tAfterInsertEvent: [],\n\t\tBeforeUpdateEvent: [],\n\t\tAfterUpdateEvent: [],\n\t\tBeforeDeleteEvent: [],\n\t\tBeforeCommitEvent: [],\n\t\tAfterCommitEvent: [],\n\t\tBeforeJunctionUpdateEvent: [],\n\t\tAfterJunctionUpdateEvent: [],\n\t}\n\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic listen<K extends keyof EventMap>(type: K, cb: EventListener<K>) {\n\t\tthis.listeners[type].push(cb)\n\t}\n\n\tpublic async fire<K extends keyof EventMap>(event: EventMap[K]) {\n\t\tfor (const listener of this.listeners[event.type]) {\n\t\t\tawait listener(event, this.mapper)\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;;;;AAIO,MAAM,kBAAkB;AAAA,EAK9B,YACiB,QACA,MACf;AAFe,SAAA,SAAA;AACA,SAAA,OAAA;AANjB,kBAAA,MAAO,QAAO,mBAAA;AAEP,kBAAA,MAAA,YAAA;AAAA,EAAA;AAOR;AAEO,MAAM,iBAAiB;AAAA,EAG7B,YACiB,QACA,MACA,IACf;AAHe,SAAA,SAAA;AACA,SAAA,OAAA;AACA,SAAA,KAAA;AALjB,kBAAA,MAAO,QAAO,kBAAA;AAAA,EAAA;AAQf;AAGO,MAAM,kBAAkB;AAAA,EAK9B,YACiB,QACA,MACA,IACf;AAHe,SAAA,SAAA;AACA,SAAA,OAAA;AACA,SAAA,KAAA;AAPjB,kBAAA,MAAO,QAAO,mBAAA;AAEP,kBAAA,MAAA,YAAA;AAAA,EAAA;AAQR;AAEO,MAAM,iBAAiB;AAAA,EAK7B,YACiB,QACA,MACA,IACf;AAHe,SAAA,SAAA;AACA,SAAA,OAAA;AACA,SAAA,KAAA;AAPjB,kBAAA,MAAO,QAAO,kBAAA;AAEN,kBAAA,MAAA,aAAA;AAAA,EAAA;AAAA,EAQR,IAAI,aAAa;AAET,WAAA,KAAK,cAAc,KAAK,KAAK,KAAK,CAAM,OAAA,GAAG,kBAAkB,GAAG,GAAG;AAAA,EAAA;AAE5E;AAEO,MAAM,kBAAkB;AAAA,EAG9B,YACiB,QACA,IACf;AAFe,SAAA,SAAA;AACA,SAAA,KAAA;AAJjB,kBAAA,MAAO,QAAO,mBAAA;AAAA,EAAA;AAOf;AAEO,MAAM,0BAA0B;AAAA,EAKtC,YACiB,cACA,gBACA,UACA,WACA,WACf;AALe,SAAA,eAAA;AACA,SAAA,iBAAA;AACA,SAAA,WAAA;AACA,SAAA,YAAA;AACA,SAAA,YAAA;AATjB,kBAAA,MAAO,QAAO,2BAAA;AAEP,kBAAA,MAAA,YAAA;AAAA,EAAA;AAUR;AAGO,MAAM,yBAAyB;AAAA,EAGrC,YACiB,cACA,gBACA,UACA,WACA,WACA,YACf;AANe,SAAA,eAAA;AACA,SAAA,iBAAA;AACA,SAAA,WAAA;AACA,SAAA,YAAA;AACA,SAAA,YAAA;AACA,SAAA,aAAA;AARjB,kBAAA,MAAO,QAAO,0BAAA;AAAA,EAAA;AAWf;AAEO,MAAM,kBAAkB;AAAA,EAAxB,cAAA;AACN,kBAAA,MAAO,QAAO,mBAAA;AAAA,EAAA;AACf;AAEO,MAAM,iBAAiB;AAAA,EAAvB,cAAA;AACN,kBAAA,MAAO,QAAO,kBAAA;AAAA,EAAA;AACf;AAsBO,MAAM,aAAa;AAAA,EAazB,YACkB,QAChB;AADgB,SAAA,SAAA;AAblB,kBAAA,MAAQ,aAA2D;AAAA,MAClE,mBAAmB,CAAC;AAAA,MACpB,kBAAkB,CAAC;AAAA,MACnB,mBAAmB,CAAC;AAAA,MACpB,kBAAkB,CAAC;AAAA,MACnB,mBAAmB,CAAC;AAAA,MACpB,mBAAmB,CAAC;AAAA,MACpB,kBAAkB,CAAC;AAAA,MACnB,2BAA2B,CAAC;AAAA,MAC5B,0BAA0B,CAAA;AAAA,IAAC,CAC5B;AAAA,EAAA;AAAA,EAOO,OAAiC,MAAS,IAAsB;AACtE,SAAK,UAAU,IAAI,EAAE,KAAK,EAAE;AAAA,EAAA;AAAA,EAG7B,MAAa,KAA+B,OAAoB;AAC/D,eAAW,YAAY,KAAK,UAAU,MAAM,IAAI,GAAG;AAC5C,YAAA,SAAS,OAAO,KAAK,MAAM;AAAA,IAAA;AAAA,EAClC;AAEF;;;;;;;;;;;"}