@contember/engine-content-api 2.0.0-alpha.32 → 2.0.0-alpha.36

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":"HasManyToHasOneRelationReducerVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.ts"],"sourcesContent":["import { GraphQLInputObjectType, GraphQLNonNull } from 'graphql'\nimport { Acl, Model } from '@contember/schema'\nimport { aliasAwareResolver, EntityTypeProvider, FieldAccessVisitor, GqlTypeName, WhereTypeProvider } from '../../schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { Authorizator } from '../../acl'\nimport { getFieldsForUniqueWhere } from '../../utils'\nimport { HasManyToHasOneReducer, HasManyToHasOneReducerExtension } from './HasManyToHasOneReducer'\nimport { GraphQLFieldConfig } from 'graphql'\n\ntype Result = [\n\tstring,\n\tGraphQLFieldConfig<any, any> & {\n\t\textensions: HasManyToHasOneReducerExtension\n\t}\n]\n\nexport class HasManyToHasOneRelationReducerFieldVisitor implements\n\tModel.ColumnVisitor<Result[]>,\n\tModel.RelationByTypeVisitor<Result[]> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly entityTypeProvider: EntityTypeProvider,\n\t\tprivate readonly whereTypeProvider: WhereTypeProvider,\n\t) {}\n\n\tpublic visitColumn() {\n\t\treturn []\n\t}\n\n\tpublic visitOneHasOneOwning() {\n\t\treturn []\n\t}\n\n\tpublic visitOneHasOneInverse() {\n\t\treturn []\n\t}\n\n\tpublic visitManyHasOne() {\n\t\treturn []\n\t}\n\n\tpublic visitManyHasManyInverse() {\n\t\treturn []\n\t}\n\n\tpublic visitManyHasManyOwning() {\n\t\treturn []\n\t}\n\n\tpublic visitOneHasMany({ entity, targetEntity, targetRelation, relation }: Model.OneHasManyContext) {\n\t\tif (!targetRelation) {\n\t\t\treturn []\n\t\t}\n\t\tconst uniqueConstraints = getFieldsForUniqueWhere(this.schema, targetEntity)\n\t\tconst composedUnique = uniqueConstraints\n\t\t\t.filter(fields => fields.length === 2) //todo support all uniques\n\t\t\t.filter(fields => fields.includes(targetRelation.name))\n\t\t\t.map(fields => fields.filter(it => it !== targetRelation.name))\n\t\t\t.map(fields => fields[0])\n\t\tconst singleUnique = uniqueConstraints\n\t\t\t.filter(fields => fields.length === 1 && fields[0] !== targetEntity.primary)\n\t\t\t.map(fields => fields[0])\n\t\t\t.filter(it => it !== targetRelation.name)\n\n\n\t\tconst existing = new Set<string>()\n\t\treturn [...composedUnique, ...singleUnique]\n\t\t\t.filter(field =>\n\t\t\t\tacceptFieldVisitor(\n\t\t\t\t\tthis.schema,\n\t\t\t\t\ttargetEntity.name,\n\t\t\t\t\tfield,\n\t\t\t\t\tnew FieldAccessVisitor(Acl.Operation.read, this.authorizator),\n\t\t\t\t),\n\t\t\t)\n\t\t\t.map<Result | null>(fieldName => {\n\t\t\t\tif (existing.has(fieldName)) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\texisting.add(fieldName)\n\t\t\t\tconst graphQlName = relation.name + GqlTypeName`By${fieldName}`\n\t\t\t\tconst uniqueWhere: GraphQLInputObjectType = new GraphQLInputObjectType({\n\t\t\t\t\t//todo this can be simplified to ${targetEntity.name}By${fieldName}, but singleton must be used\n\t\t\t\t\tname: GqlTypeName`${entity.name}${relation.name}By${fieldName}UniqueWhere`,\n\t\t\t\t\tfields: () => {\n\t\t\t\t\t\treturn this.whereTypeProvider.getUniqueWhereFields(targetEntity, [[fieldName]])\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tconst entityType = this.entityTypeProvider.getEntity(targetEntity.name)\n\n\t\t\t\treturn [\n\t\t\t\t\tgraphQlName,\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: entityType,\n\t\t\t\t\t\textensions: {\n\t\t\t\t\t\t\trelationName: relation.name,\n\t\t\t\t\t\t\textensionKey: HasManyToHasOneReducer.extensionName,\n\t\t\t\t\t\t},\n\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\tby: { type: new GraphQLNonNull(uniqueWhere) },\n\t\t\t\t\t\t\tfilter: { type: this.whereTypeProvider.getEntityWhereType(targetEntity.name) },\n\t\t\t\t\t\t},\n\t\t\t\t\t\tresolve: aliasAwareResolver,\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t})\n\t\t\t.filter((it): it is Result => it !== null)\n\t}\n}\n"],"names":["schema","getFieldsForUniqueWhere","acceptFieldVisitor","FieldAccessVisitor","Acl","GqlTypeName","GraphQLInputObjectType","HasManyToHasOneReducer","GraphQLNonNull","aliasAwareResolver"],"mappings":";;;;;;;;;;;;AAgBO,MAAM,2CAE0B;AAAA,EAEtC,YACkBA,SACA,cACA,oBACA,mBAChB;AAJgB,SAAA,SAAAA;AACA,SAAA,eAAA;AACA,SAAA,qBAAA;AACA,SAAA,oBAAA;AAAA,EACf;AAAA,EAEI,cAAc;AACpB,WAAO;EACR;AAAA,EAEO,uBAAuB;AAC7B,WAAO;EACR;AAAA,EAEO,wBAAwB;AAC9B,WAAO;EACR;AAAA,EAEO,kBAAkB;AACxB,WAAO;EACR;AAAA,EAEO,0BAA0B;AAChC,WAAO;EACR;AAAA,EAEO,yBAAyB;AAC/B,WAAO;EACR;AAAA,EAEO,gBAAgB,EAAE,QAAQ,cAAc,gBAAgB,YAAqC;AACnG,QAAI,CAAC,gBAAgB;AACpB,aAAO;IACR;AACA,UAAM,oBAAoBC,kBAAA,wBAAwB,KAAK,QAAQ,YAAY;AAC3E,UAAM,iBAAiB,kBACrB,OAAO,CAAA,WAAU,OAAO,WAAW,CAAC,EACpC,OAAO,CAAA,WAAU,OAAO,SAAS,eAAe,IAAI,CAAC,EACrD,IAAI,CAAU,WAAA,OAAO,OAAO,CAAA,OAAM,OAAO,eAAe,IAAI,CAAC,EAC7D,IAAI,CAAU,WAAA,OAAO,CAAC,CAAC;AACnB,UAAA,eAAe,kBACnB,OAAO,CAAA,WAAU,OAAO,WAAW,KAAK,OAAO,CAAC,MAAM,aAAa,OAAO,EAC1E,IAAI,CAAU,WAAA,OAAO,CAAC,CAAC,EACvB,OAAO,CAAA,OAAM,OAAO,eAAe,IAAI;AAGnC,UAAA,+BAAe;AACrB,WAAO,CAAC,GAAG,gBAAgB,GAAG,YAAY,EACxC;AAAA,MAAO,CACP,UAAAC,YAAA;AAAA,QACC,KAAK;AAAA,QACL,aAAa;AAAA,QACb;AAAA,QACA,IAAIC,mBAAAA,mBAAmBC,OAAAA,IAAI,UAAU,MAAM,KAAK,YAAY;AAAA,MAC7D;AAAA,IAAA,EAEA,IAAmB,CAAa,cAAA;AAC5B,UAAA,SAAS,IAAI,SAAS,GAAG;AACrB,eAAA;AAAA,MACR;AACA,eAAS,IAAI,SAAS;AACtB,YAAM,cAAc,SAAS,OAAOC,MAAA,gBAAgB,SAAS;AACvD,YAAA,cAAsC,IAAIC,+BAAuB;AAAA;AAAA,QAEtE,MAAMD,MAAAA,cAAc,OAAO,IAAI,GAAG,SAAS,IAAI,KAAK,SAAS;AAAA,QAC7D,QAAQ,MAAM;AACN,iBAAA,KAAK,kBAAkB,qBAAqB,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC;AAAA,QAC/E;AAAA,MAAA,CACA;AAED,YAAM,aAAa,KAAK,mBAAmB,UAAU,aAAa,IAAI;AAE/D,aAAA;AAAA,QACN;AAAA,QACA;AAAA,UACC,MAAM;AAAA,UACN,YAAY;AAAA,YACX,cAAc,SAAS;AAAA,YACvB,cAAcE,uBAAuB,uBAAA;AAAA,UACtC;AAAA,UACA,MAAM;AAAA,YACL,IAAI,EAAE,MAAM,IAAIC,QAAA,eAAe,WAAW,EAAE;AAAA,YAC5C,QAAQ,EAAE,MAAM,KAAK,kBAAkB,mBAAmB,aAAa,IAAI,EAAE;AAAA,UAC9E;AAAA,UACA,SAASC,MAAA;AAAA,QACV;AAAA,MAAA;AAAA,IAED,CAAA,EACA,OAAO,CAAC,OAAqB,OAAO,IAAI;AAAA,EAC3C;AACD;;"}
1
+ {"version":3,"file":"HasManyToHasOneRelationReducerVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.ts"],"sourcesContent":["import { GraphQLInputObjectType, GraphQLNonNull } from 'graphql'\nimport { Acl, Model } from '@contember/schema'\nimport { aliasAwareResolver, EntityTypeProvider, FieldAccessVisitor, GqlTypeName, WhereTypeProvider } from '../../schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { Authorizator } from '../../acl'\nimport { getFieldsForUniqueWhere } from '../../utils'\nimport { HasManyToHasOneReducer, HasManyToHasOneReducerExtension } from './HasManyToHasOneReducer'\nimport { GraphQLFieldConfig } from 'graphql'\n\ntype Result = [\n\tstring,\n\tGraphQLFieldConfig<any, any> & {\n\t\textensions: HasManyToHasOneReducerExtension\n\t}\n]\n\nexport class HasManyToHasOneRelationReducerFieldVisitor implements\n\tModel.ColumnVisitor<Result[]>,\n\tModel.RelationByTypeVisitor<Result[]> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly entityTypeProvider: EntityTypeProvider,\n\t\tprivate readonly whereTypeProvider: WhereTypeProvider,\n\t) {}\n\n\tpublic visitColumn() {\n\t\treturn []\n\t}\n\n\tpublic visitOneHasOneOwning() {\n\t\treturn []\n\t}\n\n\tpublic visitOneHasOneInverse() {\n\t\treturn []\n\t}\n\n\tpublic visitManyHasOne() {\n\t\treturn []\n\t}\n\n\tpublic visitManyHasManyInverse() {\n\t\treturn []\n\t}\n\n\tpublic visitManyHasManyOwning() {\n\t\treturn []\n\t}\n\n\tpublic visitOneHasMany({ entity, targetEntity, targetRelation, relation }: Model.OneHasManyContext) {\n\t\tif (!targetRelation) {\n\t\t\treturn []\n\t\t}\n\t\tconst uniqueConstraints = getFieldsForUniqueWhere(this.schema, targetEntity)\n\t\tconst composedUnique = uniqueConstraints\n\t\t\t.filter(fields => fields.length === 2) //todo support all uniques\n\t\t\t.filter(fields => fields.includes(targetRelation.name))\n\t\t\t.map(fields => fields.filter(it => it !== targetRelation.name))\n\t\t\t.map(fields => fields[0])\n\t\tconst singleUnique = uniqueConstraints\n\t\t\t.filter(fields => fields.length === 1 && fields[0] !== targetEntity.primary)\n\t\t\t.map(fields => fields[0])\n\t\t\t.filter(it => it !== targetRelation.name)\n\n\n\t\tconst existing = new Set<string>()\n\t\treturn [...composedUnique, ...singleUnique]\n\t\t\t.filter(field =>\n\t\t\t\tacceptFieldVisitor(\n\t\t\t\t\tthis.schema,\n\t\t\t\t\ttargetEntity.name,\n\t\t\t\t\tfield,\n\t\t\t\t\tnew FieldAccessVisitor(Acl.Operation.read, this.authorizator),\n\t\t\t\t),\n\t\t\t)\n\t\t\t.map<Result | null>(fieldName => {\n\t\t\t\tif (existing.has(fieldName)) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\texisting.add(fieldName)\n\t\t\t\tconst graphQlName = relation.name + GqlTypeName`By${fieldName}`\n\t\t\t\tconst uniqueWhere: GraphQLInputObjectType = new GraphQLInputObjectType({\n\t\t\t\t\t//todo this can be simplified to ${targetEntity.name}By${fieldName}, but singleton must be used\n\t\t\t\t\tname: GqlTypeName`${entity.name}${relation.name}By${fieldName}UniqueWhere`,\n\t\t\t\t\tfields: () => {\n\t\t\t\t\t\treturn this.whereTypeProvider.getUniqueWhereFields(targetEntity, [[fieldName]])\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tconst entityType = this.entityTypeProvider.getEntity(targetEntity.name)\n\n\t\t\t\treturn [\n\t\t\t\t\tgraphQlName,\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: entityType,\n\t\t\t\t\t\textensions: {\n\t\t\t\t\t\t\trelationName: relation.name,\n\t\t\t\t\t\t\textensionKey: HasManyToHasOneReducer.extensionName,\n\t\t\t\t\t\t},\n\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\tby: { type: new GraphQLNonNull(uniqueWhere) },\n\t\t\t\t\t\t\tfilter: { type: this.whereTypeProvider.getEntityWhereType(targetEntity.name) },\n\t\t\t\t\t\t},\n\t\t\t\t\t\tresolve: aliasAwareResolver,\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t})\n\t\t\t.filter((it): it is Result => it !== null)\n\t}\n}\n"],"names":["schema","getFieldsForUniqueWhere","acceptFieldVisitor","FieldAccessVisitor","Acl","GqlTypeName","GraphQLInputObjectType","HasManyToHasOneReducer","GraphQLNonNull","aliasAwareResolver"],"mappings":";;;;;;;;;;;;AAgBO,MAAM,2CAE0B;AAAA,EAEtC,YACkBA,SACA,cACA,oBACA,mBAChB;AAJgB,SAAA,SAAAA;AACA,SAAA,eAAA;AACA,SAAA,qBAAA;AACA,SAAA,oBAAA;AAAA,EAAA;AAAA,EAGX,cAAc;AACpB,WAAO,CAAC;AAAA,EAAA;AAAA,EAGF,uBAAuB;AAC7B,WAAO,CAAC;AAAA,EAAA;AAAA,EAGF,wBAAwB;AAC9B,WAAO,CAAC;AAAA,EAAA;AAAA,EAGF,kBAAkB;AACxB,WAAO,CAAC;AAAA,EAAA;AAAA,EAGF,0BAA0B;AAChC,WAAO,CAAC;AAAA,EAAA;AAAA,EAGF,yBAAyB;AAC/B,WAAO,CAAC;AAAA,EAAA;AAAA,EAGF,gBAAgB,EAAE,QAAQ,cAAc,gBAAgB,YAAqC;AACnG,QAAI,CAAC,gBAAgB;AACpB,aAAO,CAAC;AAAA,IAAA;AAET,UAAM,oBAAoBC,kBAAA,wBAAwB,KAAK,QAAQ,YAAY;AAC3E,UAAM,iBAAiB,kBACrB,OAAO,CAAA,WAAU,OAAO,WAAW,CAAC,EACpC,OAAO,CAAA,WAAU,OAAO,SAAS,eAAe,IAAI,CAAC,EACrD,IAAI,CAAU,WAAA,OAAO,OAAO,CAAA,OAAM,OAAO,eAAe,IAAI,CAAC,EAC7D,IAAI,CAAU,WAAA,OAAO,CAAC,CAAC;AACnB,UAAA,eAAe,kBACnB,OAAO,CAAA,WAAU,OAAO,WAAW,KAAK,OAAO,CAAC,MAAM,aAAa,OAAO,EAC1E,IAAI,CAAU,WAAA,OAAO,CAAC,CAAC,EACvB,OAAO,CAAA,OAAM,OAAO,eAAe,IAAI;AAGnC,UAAA,+BAAe,IAAY;AACjC,WAAO,CAAC,GAAG,gBAAgB,GAAG,YAAY,EACxC;AAAA,MAAO,CACP,UAAAC,YAAA;AAAA,QACC,KAAK;AAAA,QACL,aAAa;AAAA,QACb;AAAA,QACA,IAAIC,mBAAmB,mBAAAC,OAAA,IAAI,UAAU,MAAM,KAAK,YAAY;AAAA,MAAA;AAAA,IAC7D,EAEA,IAAmB,CAAa,cAAA;AAC5B,UAAA,SAAS,IAAI,SAAS,GAAG;AACrB,eAAA;AAAA,MAAA;AAER,eAAS,IAAI,SAAS;AACtB,YAAM,cAAc,SAAS,OAAOC,MAAAA,gBAAgB,SAAS;AACvD,YAAA,cAAsC,IAAIC,+BAAuB;AAAA;AAAA,QAEtE,MAAMD,MAAAA,cAAc,OAAO,IAAI,GAAG,SAAS,IAAI,KAAK,SAAS;AAAA,QAC7D,QAAQ,MAAM;AACN,iBAAA,KAAK,kBAAkB,qBAAqB,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC;AAAA,QAAA;AAAA,MAC/E,CACA;AAED,YAAM,aAAa,KAAK,mBAAmB,UAAU,aAAa,IAAI;AAE/D,aAAA;AAAA,QACN;AAAA,QACA;AAAA,UACC,MAAM;AAAA,UACN,YAAY;AAAA,YACX,cAAc,SAAS;AAAA,YACvB,cAAcE,uBAAAA,uBAAuB;AAAA,UACtC;AAAA,UACA,MAAM;AAAA,YACL,IAAI,EAAE,MAAM,IAAIC,QAAA,eAAe,WAAW,EAAE;AAAA,YAC5C,QAAQ,EAAE,MAAM,KAAK,kBAAkB,mBAAmB,aAAa,IAAI,EAAE;AAAA,UAC9E;AAAA,UACA,SAASC,MAAAA;AAAAA,QAAA;AAAA,MAEX;AAAA,IACA,CAAA,EACA,OAAO,CAAC,OAAqB,OAAO,IAAI;AAAA,EAAA;AAE5C;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"HasManyToHasOneRelationReducerVisitor.js","sources":["../../../../../../packages/engine-content-api/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.ts"],"sourcesContent":["import { GraphQLInputObjectType, GraphQLNonNull } from 'graphql'\nimport { Acl, Model } from '@contember/schema'\nimport { aliasAwareResolver, EntityTypeProvider, FieldAccessVisitor, GqlTypeName, WhereTypeProvider } from '../../schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { Authorizator } from '../../acl'\nimport { getFieldsForUniqueWhere } from '../../utils'\nimport { HasManyToHasOneReducer, HasManyToHasOneReducerExtension } from './HasManyToHasOneReducer'\nimport { GraphQLFieldConfig } from 'graphql'\n\ntype Result = [\n\tstring,\n\tGraphQLFieldConfig<any, any> & {\n\t\textensions: HasManyToHasOneReducerExtension\n\t}\n]\n\nexport class HasManyToHasOneRelationReducerFieldVisitor implements\n\tModel.ColumnVisitor<Result[]>,\n\tModel.RelationByTypeVisitor<Result[]> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly entityTypeProvider: EntityTypeProvider,\n\t\tprivate readonly whereTypeProvider: WhereTypeProvider,\n\t) {}\n\n\tpublic visitColumn() {\n\t\treturn []\n\t}\n\n\tpublic visitOneHasOneOwning() {\n\t\treturn []\n\t}\n\n\tpublic visitOneHasOneInverse() {\n\t\treturn []\n\t}\n\n\tpublic visitManyHasOne() {\n\t\treturn []\n\t}\n\n\tpublic visitManyHasManyInverse() {\n\t\treturn []\n\t}\n\n\tpublic visitManyHasManyOwning() {\n\t\treturn []\n\t}\n\n\tpublic visitOneHasMany({ entity, targetEntity, targetRelation, relation }: Model.OneHasManyContext) {\n\t\tif (!targetRelation) {\n\t\t\treturn []\n\t\t}\n\t\tconst uniqueConstraints = getFieldsForUniqueWhere(this.schema, targetEntity)\n\t\tconst composedUnique = uniqueConstraints\n\t\t\t.filter(fields => fields.length === 2) //todo support all uniques\n\t\t\t.filter(fields => fields.includes(targetRelation.name))\n\t\t\t.map(fields => fields.filter(it => it !== targetRelation.name))\n\t\t\t.map(fields => fields[0])\n\t\tconst singleUnique = uniqueConstraints\n\t\t\t.filter(fields => fields.length === 1 && fields[0] !== targetEntity.primary)\n\t\t\t.map(fields => fields[0])\n\t\t\t.filter(it => it !== targetRelation.name)\n\n\n\t\tconst existing = new Set<string>()\n\t\treturn [...composedUnique, ...singleUnique]\n\t\t\t.filter(field =>\n\t\t\t\tacceptFieldVisitor(\n\t\t\t\t\tthis.schema,\n\t\t\t\t\ttargetEntity.name,\n\t\t\t\t\tfield,\n\t\t\t\t\tnew FieldAccessVisitor(Acl.Operation.read, this.authorizator),\n\t\t\t\t),\n\t\t\t)\n\t\t\t.map<Result | null>(fieldName => {\n\t\t\t\tif (existing.has(fieldName)) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\texisting.add(fieldName)\n\t\t\t\tconst graphQlName = relation.name + GqlTypeName`By${fieldName}`\n\t\t\t\tconst uniqueWhere: GraphQLInputObjectType = new GraphQLInputObjectType({\n\t\t\t\t\t//todo this can be simplified to ${targetEntity.name}By${fieldName}, but singleton must be used\n\t\t\t\t\tname: GqlTypeName`${entity.name}${relation.name}By${fieldName}UniqueWhere`,\n\t\t\t\t\tfields: () => {\n\t\t\t\t\t\treturn this.whereTypeProvider.getUniqueWhereFields(targetEntity, [[fieldName]])\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tconst entityType = this.entityTypeProvider.getEntity(targetEntity.name)\n\n\t\t\t\treturn [\n\t\t\t\t\tgraphQlName,\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: entityType,\n\t\t\t\t\t\textensions: {\n\t\t\t\t\t\t\trelationName: relation.name,\n\t\t\t\t\t\t\textensionKey: HasManyToHasOneReducer.extensionName,\n\t\t\t\t\t\t},\n\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\tby: { type: new GraphQLNonNull(uniqueWhere) },\n\t\t\t\t\t\t\tfilter: { type: this.whereTypeProvider.getEntityWhereType(targetEntity.name) },\n\t\t\t\t\t\t},\n\t\t\t\t\t\tresolve: aliasAwareResolver,\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t})\n\t\t\t.filter((it): it is Result => it !== null)\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;AAgBO,MAAM,2CAE0B;AAAA,EAEtC,YACkB,QACA,cACA,oBACA,mBAChB;AAJgB,SAAA,SAAA;AACA,SAAA,eAAA;AACA,SAAA,qBAAA;AACA,SAAA,oBAAA;AAAA,EACf;AAAA,EAEI,cAAc;AACpB,WAAO;EACR;AAAA,EAEO,uBAAuB;AAC7B,WAAO;EACR;AAAA,EAEO,wBAAwB;AAC9B,WAAO;EACR;AAAA,EAEO,kBAAkB;AACxB,WAAO;EACR;AAAA,EAEO,0BAA0B;AAChC,WAAO;EACR;AAAA,EAEO,yBAAyB;AAC/B,WAAO;EACR;AAAA,EAEO,gBAAgB,EAAE,QAAQ,cAAc,gBAAgB,YAAqC;AACnG,QAAI,CAAC,gBAAgB;AACpB,aAAO;IACR;AACA,UAAM,oBAAoB,wBAAwB,KAAK,QAAQ,YAAY;AAC3E,UAAM,iBAAiB,kBACrB,OAAO,CAAA,WAAU,OAAO,WAAW,CAAC,EACpC,OAAO,CAAA,WAAU,OAAO,SAAS,eAAe,IAAI,CAAC,EACrD,IAAI,CAAU,WAAA,OAAO,OAAO,CAAA,OAAM,OAAO,eAAe,IAAI,CAAC,EAC7D,IAAI,CAAU,WAAA,OAAO,CAAC,CAAC;AACnB,UAAA,eAAe,kBACnB,OAAO,CAAA,WAAU,OAAO,WAAW,KAAK,OAAO,CAAC,MAAM,aAAa,OAAO,EAC1E,IAAI,CAAU,WAAA,OAAO,CAAC,CAAC,EACvB,OAAO,CAAA,OAAM,OAAO,eAAe,IAAI;AAGnC,UAAA,+BAAe;AACrB,WAAO,CAAC,GAAG,gBAAgB,GAAG,YAAY,EACxC;AAAA,MAAO,CACP,UAAA;AAAA,QACC,KAAK;AAAA,QACL,aAAa;AAAA,QACb;AAAA,QACA,IAAI,mBAAmB,IAAI,UAAU,MAAM,KAAK,YAAY;AAAA,MAC7D;AAAA,IAAA,EAEA,IAAmB,CAAa,cAAA;AAC5B,UAAA,SAAS,IAAI,SAAS,GAAG;AACrB,eAAA;AAAA,MACR;AACA,eAAS,IAAI,SAAS;AACtB,YAAM,cAAc,SAAS,OAAO,gBAAgB,SAAS;AACvD,YAAA,cAAsC,IAAI,uBAAuB;AAAA;AAAA,QAEtE,MAAM,cAAc,OAAO,IAAI,GAAG,SAAS,IAAI,KAAK,SAAS;AAAA,QAC7D,QAAQ,MAAM;AACN,iBAAA,KAAK,kBAAkB,qBAAqB,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC;AAAA,QAC/E;AAAA,MAAA,CACA;AAED,YAAM,aAAa,KAAK,mBAAmB,UAAU,aAAa,IAAI;AAE/D,aAAA;AAAA,QACN;AAAA,QACA;AAAA,UACC,MAAM;AAAA,UACN,YAAY;AAAA,YACX,cAAc,SAAS;AAAA,YACvB,cAAc,uBAAuB;AAAA,UACtC;AAAA,UACA,MAAM;AAAA,YACL,IAAI,EAAE,MAAM,IAAI,eAAe,WAAW,EAAE;AAAA,YAC5C,QAAQ,EAAE,MAAM,KAAK,kBAAkB,mBAAmB,aAAa,IAAI,EAAE;AAAA,UAC9E;AAAA,UACA,SAAS;AAAA,QACV;AAAA,MAAA;AAAA,IAED,CAAA,EACA,OAAO,CAAC,OAAqB,OAAO,IAAI;AAAA,EAC3C;AACD;"}
1
+ {"version":3,"file":"HasManyToHasOneRelationReducerVisitor.js","sources":["../../../../../../packages/engine-content-api/src/extensions/hasManyToHasOneReducer/HasManyToHasOneRelationReducerVisitor.ts"],"sourcesContent":["import { GraphQLInputObjectType, GraphQLNonNull } from 'graphql'\nimport { Acl, Model } from '@contember/schema'\nimport { aliasAwareResolver, EntityTypeProvider, FieldAccessVisitor, GqlTypeName, WhereTypeProvider } from '../../schema'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { Authorizator } from '../../acl'\nimport { getFieldsForUniqueWhere } from '../../utils'\nimport { HasManyToHasOneReducer, HasManyToHasOneReducerExtension } from './HasManyToHasOneReducer'\nimport { GraphQLFieldConfig } from 'graphql'\n\ntype Result = [\n\tstring,\n\tGraphQLFieldConfig<any, any> & {\n\t\textensions: HasManyToHasOneReducerExtension\n\t}\n]\n\nexport class HasManyToHasOneRelationReducerFieldVisitor implements\n\tModel.ColumnVisitor<Result[]>,\n\tModel.RelationByTypeVisitor<Result[]> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly entityTypeProvider: EntityTypeProvider,\n\t\tprivate readonly whereTypeProvider: WhereTypeProvider,\n\t) {}\n\n\tpublic visitColumn() {\n\t\treturn []\n\t}\n\n\tpublic visitOneHasOneOwning() {\n\t\treturn []\n\t}\n\n\tpublic visitOneHasOneInverse() {\n\t\treturn []\n\t}\n\n\tpublic visitManyHasOne() {\n\t\treturn []\n\t}\n\n\tpublic visitManyHasManyInverse() {\n\t\treturn []\n\t}\n\n\tpublic visitManyHasManyOwning() {\n\t\treturn []\n\t}\n\n\tpublic visitOneHasMany({ entity, targetEntity, targetRelation, relation }: Model.OneHasManyContext) {\n\t\tif (!targetRelation) {\n\t\t\treturn []\n\t\t}\n\t\tconst uniqueConstraints = getFieldsForUniqueWhere(this.schema, targetEntity)\n\t\tconst composedUnique = uniqueConstraints\n\t\t\t.filter(fields => fields.length === 2) //todo support all uniques\n\t\t\t.filter(fields => fields.includes(targetRelation.name))\n\t\t\t.map(fields => fields.filter(it => it !== targetRelation.name))\n\t\t\t.map(fields => fields[0])\n\t\tconst singleUnique = uniqueConstraints\n\t\t\t.filter(fields => fields.length === 1 && fields[0] !== targetEntity.primary)\n\t\t\t.map(fields => fields[0])\n\t\t\t.filter(it => it !== targetRelation.name)\n\n\n\t\tconst existing = new Set<string>()\n\t\treturn [...composedUnique, ...singleUnique]\n\t\t\t.filter(field =>\n\t\t\t\tacceptFieldVisitor(\n\t\t\t\t\tthis.schema,\n\t\t\t\t\ttargetEntity.name,\n\t\t\t\t\tfield,\n\t\t\t\t\tnew FieldAccessVisitor(Acl.Operation.read, this.authorizator),\n\t\t\t\t),\n\t\t\t)\n\t\t\t.map<Result | null>(fieldName => {\n\t\t\t\tif (existing.has(fieldName)) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\texisting.add(fieldName)\n\t\t\t\tconst graphQlName = relation.name + GqlTypeName`By${fieldName}`\n\t\t\t\tconst uniqueWhere: GraphQLInputObjectType = new GraphQLInputObjectType({\n\t\t\t\t\t//todo this can be simplified to ${targetEntity.name}By${fieldName}, but singleton must be used\n\t\t\t\t\tname: GqlTypeName`${entity.name}${relation.name}By${fieldName}UniqueWhere`,\n\t\t\t\t\tfields: () => {\n\t\t\t\t\t\treturn this.whereTypeProvider.getUniqueWhereFields(targetEntity, [[fieldName]])\n\t\t\t\t\t},\n\t\t\t\t})\n\n\t\t\t\tconst entityType = this.entityTypeProvider.getEntity(targetEntity.name)\n\n\t\t\t\treturn [\n\t\t\t\t\tgraphQlName,\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: entityType,\n\t\t\t\t\t\textensions: {\n\t\t\t\t\t\t\trelationName: relation.name,\n\t\t\t\t\t\t\textensionKey: HasManyToHasOneReducer.extensionName,\n\t\t\t\t\t\t},\n\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\tby: { type: new GraphQLNonNull(uniqueWhere) },\n\t\t\t\t\t\t\tfilter: { type: this.whereTypeProvider.getEntityWhereType(targetEntity.name) },\n\t\t\t\t\t\t},\n\t\t\t\t\t\tresolve: aliasAwareResolver,\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t})\n\t\t\t.filter((it): it is Result => it !== null)\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;AAgBO,MAAM,2CAE0B;AAAA,EAEtC,YACkB,QACA,cACA,oBACA,mBAChB;AAJgB,SAAA,SAAA;AACA,SAAA,eAAA;AACA,SAAA,qBAAA;AACA,SAAA,oBAAA;AAAA,EAAA;AAAA,EAGX,cAAc;AACpB,WAAO,CAAC;AAAA,EAAA;AAAA,EAGF,uBAAuB;AAC7B,WAAO,CAAC;AAAA,EAAA;AAAA,EAGF,wBAAwB;AAC9B,WAAO,CAAC;AAAA,EAAA;AAAA,EAGF,kBAAkB;AACxB,WAAO,CAAC;AAAA,EAAA;AAAA,EAGF,0BAA0B;AAChC,WAAO,CAAC;AAAA,EAAA;AAAA,EAGF,yBAAyB;AAC/B,WAAO,CAAC;AAAA,EAAA;AAAA,EAGF,gBAAgB,EAAE,QAAQ,cAAc,gBAAgB,YAAqC;AACnG,QAAI,CAAC,gBAAgB;AACpB,aAAO,CAAC;AAAA,IAAA;AAET,UAAM,oBAAoB,wBAAwB,KAAK,QAAQ,YAAY;AAC3E,UAAM,iBAAiB,kBACrB,OAAO,CAAA,WAAU,OAAO,WAAW,CAAC,EACpC,OAAO,CAAA,WAAU,OAAO,SAAS,eAAe,IAAI,CAAC,EACrD,IAAI,CAAU,WAAA,OAAO,OAAO,CAAA,OAAM,OAAO,eAAe,IAAI,CAAC,EAC7D,IAAI,CAAU,WAAA,OAAO,CAAC,CAAC;AACnB,UAAA,eAAe,kBACnB,OAAO,CAAA,WAAU,OAAO,WAAW,KAAK,OAAO,CAAC,MAAM,aAAa,OAAO,EAC1E,IAAI,CAAU,WAAA,OAAO,CAAC,CAAC,EACvB,OAAO,CAAA,OAAM,OAAO,eAAe,IAAI;AAGnC,UAAA,+BAAe,IAAY;AACjC,WAAO,CAAC,GAAG,gBAAgB,GAAG,YAAY,EACxC;AAAA,MAAO,CACP,UAAA;AAAA,QACC,KAAK;AAAA,QACL,aAAa;AAAA,QACb;AAAA,QACA,IAAI,mBAAmB,IAAI,UAAU,MAAM,KAAK,YAAY;AAAA,MAAA;AAAA,IAC7D,EAEA,IAAmB,CAAa,cAAA;AAC5B,UAAA,SAAS,IAAI,SAAS,GAAG;AACrB,eAAA;AAAA,MAAA;AAER,eAAS,IAAI,SAAS;AACtB,YAAM,cAAc,SAAS,OAAO,gBAAgB,SAAS;AACvD,YAAA,cAAsC,IAAI,uBAAuB;AAAA;AAAA,QAEtE,MAAM,cAAc,OAAO,IAAI,GAAG,SAAS,IAAI,KAAK,SAAS;AAAA,QAC7D,QAAQ,MAAM;AACN,iBAAA,KAAK,kBAAkB,qBAAqB,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC;AAAA,QAAA;AAAA,MAC/E,CACA;AAED,YAAM,aAAa,KAAK,mBAAmB,UAAU,aAAa,IAAI;AAE/D,aAAA;AAAA,QACN;AAAA,QACA;AAAA,UACC,MAAM;AAAA,UACN,YAAY;AAAA,YACX,cAAc,SAAS;AAAA,YACvB,cAAc,uBAAuB;AAAA,UACtC;AAAA,UACA,MAAM;AAAA,YACL,IAAI,EAAE,MAAM,IAAI,eAAe,WAAW,EAAE;AAAA,YAC5C,QAAQ,EAAE,MAAM,KAAK,kBAAkB,mBAAmB,aAAa,IAAI,EAAE;AAAA,UAC9E;AAAA,UACA,SAAS;AAAA,QAAA;AAAA,MAEX;AAAA,IACA,CAAA,EACA,OAAO,CAAC,OAAqB,OAAO,IAAI;AAAA,EAAA;AAE5C;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaginatedHasManyCountVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { GroupedCounts, Mapper, RelationFetcher } from '../../mapper'\nimport { ObjectNode } from '../../inputProcessing'\n\nexport class PaginatedHasManyCountVisitor implements\n\tModel.ColumnVisitor<Promise<GroupedCounts>>,\n\tModel.RelationByTypeVisitor<Promise<GroupedCounts>> {\n\n\tconstructor(\n\t\tprivate readonly ids: Input.PrimaryValue[],\n\t\tprivate readonly objectNode: ObjectNode<Input.PaginationQueryInput>,\n\t\tprivate readonly relationFetcher: RelationFetcher,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly relationPath: Model.AnyRelationContext[],\n\t) {}\n\n\tasync visitOneHasMany(relationContext: Model.OneHasManyContext): Promise<GroupedCounts> {\n\t\treturn await this.relationFetcher.countOneHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfilter: this.objectNode.args.filter,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyOwning(relationContext: Model.ManyHasManyOwningContext): Promise<GroupedCounts> {\n\t\treturn await this.relationFetcher.countManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfilter: this.objectNode.args.filter,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyInverse(relationContext: Model.ManyHasManyInverseContext): Promise<GroupedCounts> {\n\t\treturn await this.relationFetcher.countManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfilter: this.objectNode.args.filter,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tvisitColumn(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitManyHasOne(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneInverse(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneOwning(): never {\n\t\tthrow new Error()\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,6BAEwC;AAAA,EAEpD,YACkB,KACA,YACA,iBACA,QACA,cAChB;AALgB,SAAA,MAAA;AACA,SAAA,aAAA;AACA,SAAA,kBAAA;AACA,SAAA,SAAA;AACA,SAAA,eAAA;AAAA,EACf;AAAA,EAEH,MAAM,gBAAgB,iBAAkE;AAChF,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK,WAAW,KAAK;AAAA,QAC7B;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MACX;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,MAAM,uBAAuB,iBAAyE;AAC9F,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK,WAAW,KAAK;AAAA,QAC7B;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MACX;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,MAAM,wBAAwB,iBAA0E;AAChG,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK,WAAW,KAAK;AAAA,QAC7B;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MACX;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,cAAqB;AACpB,UAAM,IAAI,MAAM;AAAA,EACjB;AAAA,EAEA,kBAAyB;AACxB,UAAM,IAAI,MAAM;AAAA,EACjB;AAAA,EAEA,wBAA+B;AAC9B,UAAM,IAAI,MAAM;AAAA,EACjB;AAAA,EAEA,uBAA8B;AAC7B,UAAM,IAAI,MAAM;AAAA,EACjB;AACD;;"}
1
+ {"version":3,"file":"PaginatedHasManyCountVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { GroupedCounts, Mapper, RelationFetcher } from '../../mapper'\nimport { ObjectNode } from '../../inputProcessing'\n\nexport class PaginatedHasManyCountVisitor implements\n\tModel.ColumnVisitor<Promise<GroupedCounts>>,\n\tModel.RelationByTypeVisitor<Promise<GroupedCounts>> {\n\n\tconstructor(\n\t\tprivate readonly ids: Input.PrimaryValue[],\n\t\tprivate readonly objectNode: ObjectNode<Input.PaginationQueryInput>,\n\t\tprivate readonly relationFetcher: RelationFetcher,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly relationPath: Model.AnyRelationContext[],\n\t) {}\n\n\tasync visitOneHasMany(relationContext: Model.OneHasManyContext): Promise<GroupedCounts> {\n\t\treturn await this.relationFetcher.countOneHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfilter: this.objectNode.args.filter,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyOwning(relationContext: Model.ManyHasManyOwningContext): Promise<GroupedCounts> {\n\t\treturn await this.relationFetcher.countManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfilter: this.objectNode.args.filter,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyInverse(relationContext: Model.ManyHasManyInverseContext): Promise<GroupedCounts> {\n\t\treturn await this.relationFetcher.countManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfilter: this.objectNode.args.filter,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tvisitColumn(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitManyHasOne(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneInverse(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneOwning(): never {\n\t\tthrow new Error()\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,6BAEwC;AAAA,EAEpD,YACkB,KACA,YACA,iBACA,QACA,cAChB;AALgB,SAAA,MAAA;AACA,SAAA,aAAA;AACA,SAAA,kBAAA;AACA,SAAA,SAAA;AACA,SAAA,eAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,gBAAgB,iBAAkE;AAChF,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK,WAAW,KAAK;AAAA,QAC7B;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAAA,EAGD,MAAM,uBAAuB,iBAAyE;AAC9F,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK,WAAW,KAAK;AAAA,QAC7B;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAAA,EAGD,MAAM,wBAAwB,iBAA0E;AAChG,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK,WAAW,KAAK;AAAA,QAC7B;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAAA,EAGD,cAAqB;AACpB,UAAM,IAAI,MAAM;AAAA,EAAA;AAAA,EAGjB,kBAAyB;AACxB,UAAM,IAAI,MAAM;AAAA,EAAA;AAAA,EAGjB,wBAA+B;AAC9B,UAAM,IAAI,MAAM;AAAA,EAAA;AAAA,EAGjB,uBAA8B;AAC7B,UAAM,IAAI,MAAM;AAAA,EAAA;AAElB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaginatedHasManyCountVisitor.js","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { GroupedCounts, Mapper, RelationFetcher } from '../../mapper'\nimport { ObjectNode } from '../../inputProcessing'\n\nexport class PaginatedHasManyCountVisitor implements\n\tModel.ColumnVisitor<Promise<GroupedCounts>>,\n\tModel.RelationByTypeVisitor<Promise<GroupedCounts>> {\n\n\tconstructor(\n\t\tprivate readonly ids: Input.PrimaryValue[],\n\t\tprivate readonly objectNode: ObjectNode<Input.PaginationQueryInput>,\n\t\tprivate readonly relationFetcher: RelationFetcher,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly relationPath: Model.AnyRelationContext[],\n\t) {}\n\n\tasync visitOneHasMany(relationContext: Model.OneHasManyContext): Promise<GroupedCounts> {\n\t\treturn await this.relationFetcher.countOneHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfilter: this.objectNode.args.filter,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyOwning(relationContext: Model.ManyHasManyOwningContext): Promise<GroupedCounts> {\n\t\treturn await this.relationFetcher.countManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfilter: this.objectNode.args.filter,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyInverse(relationContext: Model.ManyHasManyInverseContext): Promise<GroupedCounts> {\n\t\treturn await this.relationFetcher.countManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfilter: this.objectNode.args.filter,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tvisitColumn(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitManyHasOne(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneInverse(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneOwning(): never {\n\t\tthrow new Error()\n\t}\n}\n"],"names":[],"mappings":"AAIO,MAAM,6BAEwC;AAAA,EAEpD,YACkB,KACA,YACA,iBACA,QACA,cAChB;AALgB,SAAA,MAAA;AACA,SAAA,aAAA;AACA,SAAA,kBAAA;AACA,SAAA,SAAA;AACA,SAAA,eAAA;AAAA,EACf;AAAA,EAEH,MAAM,gBAAgB,iBAAkE;AAChF,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK,WAAW,KAAK;AAAA,QAC7B;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MACX;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,MAAM,uBAAuB,iBAAyE;AAC9F,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK,WAAW,KAAK;AAAA,QAC7B;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MACX;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,MAAM,wBAAwB,iBAA0E;AAChG,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK,WAAW,KAAK;AAAA,QAC7B;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MACX;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,cAAqB;AACpB,UAAM,IAAI,MAAM;AAAA,EACjB;AAAA,EAEA,kBAAyB;AACxB,UAAM,IAAI,MAAM;AAAA,EACjB;AAAA,EAEA,wBAA+B;AAC9B,UAAM,IAAI,MAAM;AAAA,EACjB;AAAA,EAEA,uBAA8B;AAC7B,UAAM,IAAI,MAAM;AAAA,EACjB;AACD;"}
1
+ {"version":3,"file":"PaginatedHasManyCountVisitor.js","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyCountVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { GroupedCounts, Mapper, RelationFetcher } from '../../mapper'\nimport { ObjectNode } from '../../inputProcessing'\n\nexport class PaginatedHasManyCountVisitor implements\n\tModel.ColumnVisitor<Promise<GroupedCounts>>,\n\tModel.RelationByTypeVisitor<Promise<GroupedCounts>> {\n\n\tconstructor(\n\t\tprivate readonly ids: Input.PrimaryValue[],\n\t\tprivate readonly objectNode: ObjectNode<Input.PaginationQueryInput>,\n\t\tprivate readonly relationFetcher: RelationFetcher,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly relationPath: Model.AnyRelationContext[],\n\t) {}\n\n\tasync visitOneHasMany(relationContext: Model.OneHasManyContext): Promise<GroupedCounts> {\n\t\treturn await this.relationFetcher.countOneHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfilter: this.objectNode.args.filter,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyOwning(relationContext: Model.ManyHasManyOwningContext): Promise<GroupedCounts> {\n\t\treturn await this.relationFetcher.countManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfilter: this.objectNode.args.filter,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyInverse(relationContext: Model.ManyHasManyInverseContext): Promise<GroupedCounts> {\n\t\treturn await this.relationFetcher.countManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfilter: this.objectNode.args.filter,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tvisitColumn(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitManyHasOne(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneInverse(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneOwning(): never {\n\t\tthrow new Error()\n\t}\n}\n"],"names":[],"mappings":"AAIO,MAAM,6BAEwC;AAAA,EAEpD,YACkB,KACA,YACA,iBACA,QACA,cAChB;AALgB,SAAA,MAAA;AACA,SAAA,aAAA;AACA,SAAA,kBAAA;AACA,SAAA,SAAA;AACA,SAAA,eAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,gBAAgB,iBAAkE;AAChF,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK,WAAW,KAAK;AAAA,QAC7B;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAAA,EAGD,MAAM,uBAAuB,iBAAyE;AAC9F,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK,WAAW,KAAK;AAAA,QAC7B;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAAA,EAGD,MAAM,wBAAwB,iBAA0E;AAChG,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK,WAAW,KAAK;AAAA,QAC7B;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAAA,EAGD,cAAqB;AACpB,UAAM,IAAI,MAAM;AAAA,EAAA;AAAA,EAGjB,kBAAyB;AACxB,UAAM,IAAI,MAAM;AAAA,EAAA;AAAA,EAGjB,wBAA+B;AAC9B,UAAM,IAAI,MAAM;AAAA,EAAA;AAAA,EAGjB,uBAA8B;AAC7B,UAAM,IAAI,MAAM;AAAA,EAAA;AAElB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaginatedHasManyExecutionHandler.cjs","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { RelationFetcher, SelectExecutionHandler, SelectExecutionHandlerContext } from '../../mapper'\nimport { PaginatedHasManyFieldProviderExtension } from './PaginatedHasManyFieldProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { createPaginationHelper } from '../../utils'\nimport { PaginatedHasManyCountVisitor } from './PaginatedHasManyCountVisitor'\nimport { PaginatedHasManyNodesVisitor } from './PaginatedHasManyNodesVisitor'\n\nexport class PaginatedHasManyExecutionHandler implements SelectExecutionHandler<Input.PaginationQueryInput, PaginatedHasManyFieldProviderExtension> {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly relationFetcher: RelationFetcher,\n\t) {}\n\n\tprocess(\n\t\tcontext: SelectExecutionHandlerContext<Input.PaginationQueryInput, PaginatedHasManyFieldProviderExtension>,\n\t): void {\n\t\tconst { addData, entity, objectNode, mapper } = context\n\t\tif (!objectNode) {\n\t\t\tthrow new Error()\n\t\t}\n\t\tconst pagination = createPaginationHelper(objectNode)\n\t\taddData({\n\t\t\tfield: context.entity.primary,\n\t\t\tdataProvider: async ids => {\n\t\t\t\tconst counts = pagination.requiresTotalCount\n\t\t\t\t\t? await acceptFieldVisitor(\n\t\t\t\t\t\tthis.schema,\n\t\t\t\t\t\tentity,\n\t\t\t\t\t\tobjectNode.extensions.relationName,\n\t\t\t\t\t\tnew PaginatedHasManyCountVisitor(ids, objectNode, this.relationFetcher, mapper, context.relationPath),\n\t\t\t\t\t )\n\t\t\t\t\t: {}\n\n\t\t\t\tconst nodes = pagination.nodeField\n\t\t\t\t\t? await acceptFieldVisitor(\n\t\t\t\t\t\tthis.schema,\n\t\t\t\t\t\tentity,\n\t\t\t\t\t\tobjectNode.extensions.relationName,\n\t\t\t\t\t\tnew PaginatedHasManyNodesVisitor(ids, pagination.nodeField, this.relationFetcher, mapper, context.relationPath),\n\t\t\t\t\t )\n\t\t\t\t\t: undefined\n\t\t\t\tconst result = new Map<Input.PrimaryValue, any>()\n\t\t\t\tfor (const id of ids) {\n\t\t\t\t\tresult.set(id, pagination.createResponse(counts?.[id] ?? 0, nodes?.[id] ?? []))\n\t\t\t\t}\n\t\t\t\treturn Object.fromEntries(result)\n\t\t\t},\n\t\t\tdefaultValue: pagination.createResponse(0, []),\n\t\t})\n\t}\n}\n"],"names":["createPaginationHelper","acceptFieldVisitor","PaginatedHasManyCountVisitor","PaginatedHasManyNodesVisitor"],"mappings":";;;;;;AAQO,MAAM,iCAAuI;AAAA,EACnJ,YACkB,QACA,iBAChB;AAFgB,SAAA,SAAA;AACA,SAAA,kBAAA;AAAA,EACf;AAAA,EAEH,QACC,SACO;AACP,UAAM,EAAE,SAAS,QAAQ,YAAY,WAAW;AAChD,QAAI,CAAC,YAAY;AAChB,YAAM,IAAI,MAAM;AAAA,IACjB;AACM,UAAA,aAAaA,uCAAuB,UAAU;AAC5C,YAAA;AAAA,MACP,OAAO,QAAQ,OAAO;AAAA,MACtB,cAAc,OAAM,QAAO;AACpB,cAAA,SAAS,WAAW,qBACvB,MAAMC,YAAA;AAAA,UACP,KAAK;AAAA,UACL;AAAA,UACA,WAAW,WAAW;AAAA,UACtB,IAAIC,0DAA6B,KAAK,YAAY,KAAK,iBAAiB,QAAQ,QAAQ,YAAY;AAAA,YAEnG;AAEG,cAAA,QAAQ,WAAW,YACtB,MAAMD,YAAA;AAAA,UACP,KAAK;AAAA,UACL;AAAA,UACA,WAAW,WAAW;AAAA,UACtB,IAAIE,0DAA6B,KAAK,WAAW,WAAW,KAAK,iBAAiB,QAAQ,QAAQ,YAAY;AAAA,QAE7G,IAAA;AACG,cAAA,6BAAa;AACnB,mBAAW,MAAM,KAAK;AACrB,iBAAO,IAAI,IAAI,WAAW,eAAe,SAAS,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAA,CAAE,CAAC;AAAA,QAC/E;AACO,eAAA,OAAO,YAAY,MAAM;AAAA,MACjC;AAAA,MACA,cAAc,WAAW,eAAe,GAAG,CAAA,CAAE;AAAA,IAAA,CAC7C;AAAA,EACF;AACD;;"}
1
+ {"version":3,"file":"PaginatedHasManyExecutionHandler.cjs","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { RelationFetcher, SelectExecutionHandler, SelectExecutionHandlerContext } from '../../mapper'\nimport { PaginatedHasManyFieldProviderExtension } from './PaginatedHasManyFieldProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { createPaginationHelper } from '../../utils'\nimport { PaginatedHasManyCountVisitor } from './PaginatedHasManyCountVisitor'\nimport { PaginatedHasManyNodesVisitor } from './PaginatedHasManyNodesVisitor'\n\nexport class PaginatedHasManyExecutionHandler implements SelectExecutionHandler<Input.PaginationQueryInput, PaginatedHasManyFieldProviderExtension> {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly relationFetcher: RelationFetcher,\n\t) {}\n\n\tprocess(\n\t\tcontext: SelectExecutionHandlerContext<Input.PaginationQueryInput, PaginatedHasManyFieldProviderExtension>,\n\t): void {\n\t\tconst { addData, entity, objectNode, mapper } = context\n\t\tif (!objectNode) {\n\t\t\tthrow new Error()\n\t\t}\n\t\tconst pagination = createPaginationHelper(objectNode)\n\t\taddData({\n\t\t\tfield: context.entity.primary,\n\t\t\tdataProvider: async ids => {\n\t\t\t\tconst counts = pagination.requiresTotalCount\n\t\t\t\t\t? await acceptFieldVisitor(\n\t\t\t\t\t\tthis.schema,\n\t\t\t\t\t\tentity,\n\t\t\t\t\t\tobjectNode.extensions.relationName,\n\t\t\t\t\t\tnew PaginatedHasManyCountVisitor(ids, objectNode, this.relationFetcher, mapper, context.relationPath),\n\t\t\t\t\t )\n\t\t\t\t\t: {}\n\n\t\t\t\tconst nodes = pagination.nodeField\n\t\t\t\t\t? await acceptFieldVisitor(\n\t\t\t\t\t\tthis.schema,\n\t\t\t\t\t\tentity,\n\t\t\t\t\t\tobjectNode.extensions.relationName,\n\t\t\t\t\t\tnew PaginatedHasManyNodesVisitor(ids, pagination.nodeField, this.relationFetcher, mapper, context.relationPath),\n\t\t\t\t\t )\n\t\t\t\t\t: undefined\n\t\t\t\tconst result = new Map<Input.PrimaryValue, any>()\n\t\t\t\tfor (const id of ids) {\n\t\t\t\t\tresult.set(id, pagination.createResponse(counts?.[id] ?? 0, nodes?.[id] ?? []))\n\t\t\t\t}\n\t\t\t\treturn Object.fromEntries(result)\n\t\t\t},\n\t\t\tdefaultValue: pagination.createResponse(0, []),\n\t\t})\n\t}\n}\n"],"names":["createPaginationHelper","acceptFieldVisitor","PaginatedHasManyCountVisitor","PaginatedHasManyNodesVisitor"],"mappings":";;;;;;AAQO,MAAM,iCAAuI;AAAA,EACnJ,YACkB,QACA,iBAChB;AAFgB,SAAA,SAAA;AACA,SAAA,kBAAA;AAAA,EAAA;AAAA,EAGlB,QACC,SACO;AACP,UAAM,EAAE,SAAS,QAAQ,YAAY,OAAW,IAAA;AAChD,QAAI,CAAC,YAAY;AAChB,YAAM,IAAI,MAAM;AAAA,IAAA;AAEX,UAAA,aAAaA,uCAAuB,UAAU;AAC5C,YAAA;AAAA,MACP,OAAO,QAAQ,OAAO;AAAA,MACtB,cAAc,OAAM,QAAO;AACpB,cAAA,SAAS,WAAW,qBACvB,MAAMC,YAAA;AAAA,UACP,KAAK;AAAA,UACL;AAAA,UACA,WAAW,WAAW;AAAA,UACtB,IAAIC,6BAAAA,6BAA6B,KAAK,YAAY,KAAK,iBAAiB,QAAQ,QAAQ,YAAY;AAAA,QAAA,IAEnG,CAAC;AAEE,cAAA,QAAQ,WAAW,YACtB,MAAMD,YAAA;AAAA,UACP,KAAK;AAAA,UACL;AAAA,UACA,WAAW,WAAW;AAAA,UACtB,IAAIE,0DAA6B,KAAK,WAAW,WAAW,KAAK,iBAAiB,QAAQ,QAAQ,YAAY;AAAA,QAE7G,IAAA;AACG,cAAA,6BAAa,IAA6B;AAChD,mBAAW,MAAM,KAAK;AACrB,iBAAO,IAAI,IAAI,WAAW,eAAe,SAAS,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAE,CAAA,CAAC;AAAA,QAAA;AAExE,eAAA,OAAO,YAAY,MAAM;AAAA,MACjC;AAAA,MACA,cAAc,WAAW,eAAe,GAAG,CAAE,CAAA;AAAA,IAAA,CAC7C;AAAA,EAAA;AAEH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaginatedHasManyExecutionHandler.js","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { RelationFetcher, SelectExecutionHandler, SelectExecutionHandlerContext } from '../../mapper'\nimport { PaginatedHasManyFieldProviderExtension } from './PaginatedHasManyFieldProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { createPaginationHelper } from '../../utils'\nimport { PaginatedHasManyCountVisitor } from './PaginatedHasManyCountVisitor'\nimport { PaginatedHasManyNodesVisitor } from './PaginatedHasManyNodesVisitor'\n\nexport class PaginatedHasManyExecutionHandler implements SelectExecutionHandler<Input.PaginationQueryInput, PaginatedHasManyFieldProviderExtension> {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly relationFetcher: RelationFetcher,\n\t) {}\n\n\tprocess(\n\t\tcontext: SelectExecutionHandlerContext<Input.PaginationQueryInput, PaginatedHasManyFieldProviderExtension>,\n\t): void {\n\t\tconst { addData, entity, objectNode, mapper } = context\n\t\tif (!objectNode) {\n\t\t\tthrow new Error()\n\t\t}\n\t\tconst pagination = createPaginationHelper(objectNode)\n\t\taddData({\n\t\t\tfield: context.entity.primary,\n\t\t\tdataProvider: async ids => {\n\t\t\t\tconst counts = pagination.requiresTotalCount\n\t\t\t\t\t? await acceptFieldVisitor(\n\t\t\t\t\t\tthis.schema,\n\t\t\t\t\t\tentity,\n\t\t\t\t\t\tobjectNode.extensions.relationName,\n\t\t\t\t\t\tnew PaginatedHasManyCountVisitor(ids, objectNode, this.relationFetcher, mapper, context.relationPath),\n\t\t\t\t\t )\n\t\t\t\t\t: {}\n\n\t\t\t\tconst nodes = pagination.nodeField\n\t\t\t\t\t? await acceptFieldVisitor(\n\t\t\t\t\t\tthis.schema,\n\t\t\t\t\t\tentity,\n\t\t\t\t\t\tobjectNode.extensions.relationName,\n\t\t\t\t\t\tnew PaginatedHasManyNodesVisitor(ids, pagination.nodeField, this.relationFetcher, mapper, context.relationPath),\n\t\t\t\t\t )\n\t\t\t\t\t: undefined\n\t\t\t\tconst result = new Map<Input.PrimaryValue, any>()\n\t\t\t\tfor (const id of ids) {\n\t\t\t\t\tresult.set(id, pagination.createResponse(counts?.[id] ?? 0, nodes?.[id] ?? []))\n\t\t\t\t}\n\t\t\t\treturn Object.fromEntries(result)\n\t\t\t},\n\t\t\tdefaultValue: pagination.createResponse(0, []),\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;AAQO,MAAM,iCAAuI;AAAA,EACnJ,YACkB,QACA,iBAChB;AAFgB,SAAA,SAAA;AACA,SAAA,kBAAA;AAAA,EACf;AAAA,EAEH,QACC,SACO;AACP,UAAM,EAAE,SAAS,QAAQ,YAAY,WAAW;AAChD,QAAI,CAAC,YAAY;AAChB,YAAM,IAAI,MAAM;AAAA,IACjB;AACM,UAAA,aAAa,uBAAuB,UAAU;AAC5C,YAAA;AAAA,MACP,OAAO,QAAQ,OAAO;AAAA,MACtB,cAAc,OAAM,QAAO;AACpB,cAAA,SAAS,WAAW,qBACvB,MAAM;AAAA,UACP,KAAK;AAAA,UACL;AAAA,UACA,WAAW,WAAW;AAAA,UACtB,IAAI,6BAA6B,KAAK,YAAY,KAAK,iBAAiB,QAAQ,QAAQ,YAAY;AAAA,YAEnG;AAEG,cAAA,QAAQ,WAAW,YACtB,MAAM;AAAA,UACP,KAAK;AAAA,UACL;AAAA,UACA,WAAW,WAAW;AAAA,UACtB,IAAI,6BAA6B,KAAK,WAAW,WAAW,KAAK,iBAAiB,QAAQ,QAAQ,YAAY;AAAA,QAE7G,IAAA;AACG,cAAA,6BAAa;AACnB,mBAAW,MAAM,KAAK;AACrB,iBAAO,IAAI,IAAI,WAAW,eAAe,SAAS,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAA,CAAE,CAAC;AAAA,QAC/E;AACO,eAAA,OAAO,YAAY,MAAM;AAAA,MACjC;AAAA,MACA,cAAc,WAAW,eAAe,GAAG,CAAA,CAAE;AAAA,IAAA,CAC7C;AAAA,EACF;AACD;"}
1
+ {"version":3,"file":"PaginatedHasManyExecutionHandler.js","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyExecutionHandler.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { RelationFetcher, SelectExecutionHandler, SelectExecutionHandlerContext } from '../../mapper'\nimport { PaginatedHasManyFieldProviderExtension } from './PaginatedHasManyFieldProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { createPaginationHelper } from '../../utils'\nimport { PaginatedHasManyCountVisitor } from './PaginatedHasManyCountVisitor'\nimport { PaginatedHasManyNodesVisitor } from './PaginatedHasManyNodesVisitor'\n\nexport class PaginatedHasManyExecutionHandler implements SelectExecutionHandler<Input.PaginationQueryInput, PaginatedHasManyFieldProviderExtension> {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly relationFetcher: RelationFetcher,\n\t) {}\n\n\tprocess(\n\t\tcontext: SelectExecutionHandlerContext<Input.PaginationQueryInput, PaginatedHasManyFieldProviderExtension>,\n\t): void {\n\t\tconst { addData, entity, objectNode, mapper } = context\n\t\tif (!objectNode) {\n\t\t\tthrow new Error()\n\t\t}\n\t\tconst pagination = createPaginationHelper(objectNode)\n\t\taddData({\n\t\t\tfield: context.entity.primary,\n\t\t\tdataProvider: async ids => {\n\t\t\t\tconst counts = pagination.requiresTotalCount\n\t\t\t\t\t? await acceptFieldVisitor(\n\t\t\t\t\t\tthis.schema,\n\t\t\t\t\t\tentity,\n\t\t\t\t\t\tobjectNode.extensions.relationName,\n\t\t\t\t\t\tnew PaginatedHasManyCountVisitor(ids, objectNode, this.relationFetcher, mapper, context.relationPath),\n\t\t\t\t\t )\n\t\t\t\t\t: {}\n\n\t\t\t\tconst nodes = pagination.nodeField\n\t\t\t\t\t? await acceptFieldVisitor(\n\t\t\t\t\t\tthis.schema,\n\t\t\t\t\t\tentity,\n\t\t\t\t\t\tobjectNode.extensions.relationName,\n\t\t\t\t\t\tnew PaginatedHasManyNodesVisitor(ids, pagination.nodeField, this.relationFetcher, mapper, context.relationPath),\n\t\t\t\t\t )\n\t\t\t\t\t: undefined\n\t\t\t\tconst result = new Map<Input.PrimaryValue, any>()\n\t\t\t\tfor (const id of ids) {\n\t\t\t\t\tresult.set(id, pagination.createResponse(counts?.[id] ?? 0, nodes?.[id] ?? []))\n\t\t\t\t}\n\t\t\t\treturn Object.fromEntries(result)\n\t\t\t},\n\t\t\tdefaultValue: pagination.createResponse(0, []),\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;AAQO,MAAM,iCAAuI;AAAA,EACnJ,YACkB,QACA,iBAChB;AAFgB,SAAA,SAAA;AACA,SAAA,kBAAA;AAAA,EAAA;AAAA,EAGlB,QACC,SACO;AACP,UAAM,EAAE,SAAS,QAAQ,YAAY,OAAW,IAAA;AAChD,QAAI,CAAC,YAAY;AAChB,YAAM,IAAI,MAAM;AAAA,IAAA;AAEX,UAAA,aAAa,uBAAuB,UAAU;AAC5C,YAAA;AAAA,MACP,OAAO,QAAQ,OAAO;AAAA,MACtB,cAAc,OAAM,QAAO;AACpB,cAAA,SAAS,WAAW,qBACvB,MAAM;AAAA,UACP,KAAK;AAAA,UACL;AAAA,UACA,WAAW,WAAW;AAAA,UACtB,IAAI,6BAA6B,KAAK,YAAY,KAAK,iBAAiB,QAAQ,QAAQ,YAAY;AAAA,QAAA,IAEnG,CAAC;AAEE,cAAA,QAAQ,WAAW,YACtB,MAAM;AAAA,UACP,KAAK;AAAA,UACL;AAAA,UACA,WAAW,WAAW;AAAA,UACtB,IAAI,6BAA6B,KAAK,WAAW,WAAW,KAAK,iBAAiB,QAAQ,QAAQ,YAAY;AAAA,QAE7G,IAAA;AACG,cAAA,6BAAa,IAA6B;AAChD,mBAAW,MAAM,KAAK;AACrB,iBAAO,IAAI,IAAI,WAAW,eAAe,SAAS,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAE,CAAA,CAAC;AAAA,QAAA;AAExE,eAAA,OAAO,YAAY,MAAM;AAAA,MACjC;AAAA,MACA,cAAc,WAAW,eAAe,GAAG,CAAE,CAAA;AAAA,IAAA,CAC7C;AAAA,EAAA;AAEH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaginatedHasManyFieldProvider.cjs","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.ts"],"sourcesContent":["import { EntityFieldsProvider, FieldMap } from '../EntityFieldsProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { Model } from '@contember/schema'\nimport { PaginatedHasManyFieldProviderVisitor } from './PaginatedHasManyFieldProviderVisitor'\n\nexport class PaginatedHasManyFieldProvider implements EntityFieldsProvider<PaginatedHasManyFieldProviderExtension> {\n\tstatic extensionName: string = 'PaginatedHasMany'\n\n\tconstructor(private readonly schema: Model.Schema, private readonly visitor: PaginatedHasManyFieldProviderVisitor) {}\n\n\tgetFields(entity: Model.Entity, accessibleFields: Model.AnyField[]): FieldMap<PaginatedHasManyFieldProviderExtension> {\n\t\tconst fields: FieldMap<PaginatedHasManyFieldProviderExtension> = {}\n\t\tfor (const field of accessibleFields) {\n\t\t\tfor (const [name, fieldConfig] of acceptFieldVisitor(this.schema, entity, field, this.visitor)) {\n\t\t\t\tfields[name] = fieldConfig\n\t\t\t}\n\t\t}\n\t\treturn fields\n\t}\n}\n\nexport interface PaginatedHasManyFieldProviderExtension {\n\trelationName: string\n}\n"],"names":["acceptFieldVisitor"],"mappings":";;;;;;AAKO,MAAM,8BAAsG;AAAA,EAGlH,YAA6B,QAAuC,SAA+C;AAAtF,SAAA,SAAA;AAAuC,SAAA,UAAA;AAAA,EAAgD;AAAA,EAEpH,UAAU,QAAsB,kBAAsF;AACrH,UAAM,SAA2D,CAAA;AACjE,eAAW,SAAS,kBAAkB;AAC1B,iBAAA,CAAC,MAAM,WAAW,KAAKA,YAAAA,mBAAmB,KAAK,QAAQ,QAAQ,OAAO,KAAK,OAAO,GAAG;AAC/F,eAAO,IAAI,IAAI;AAAA,MAChB;AAAA,IACD;AACO,WAAA;AAAA,EACR;AACD;AAbC,cADY,+BACL,iBAAwB,kBAAA;;"}
1
+ {"version":3,"file":"PaginatedHasManyFieldProvider.cjs","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.ts"],"sourcesContent":["import { EntityFieldsProvider, FieldMap } from '../EntityFieldsProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { Model } from '@contember/schema'\nimport { PaginatedHasManyFieldProviderVisitor } from './PaginatedHasManyFieldProviderVisitor'\n\nexport class PaginatedHasManyFieldProvider implements EntityFieldsProvider<PaginatedHasManyFieldProviderExtension> {\n\tstatic extensionName: string = 'PaginatedHasMany'\n\n\tconstructor(private readonly schema: Model.Schema, private readonly visitor: PaginatedHasManyFieldProviderVisitor) {}\n\n\tgetFields(entity: Model.Entity, accessibleFields: Model.AnyField[]): FieldMap<PaginatedHasManyFieldProviderExtension> {\n\t\tconst fields: FieldMap<PaginatedHasManyFieldProviderExtension> = {}\n\t\tfor (const field of accessibleFields) {\n\t\t\tfor (const [name, fieldConfig] of acceptFieldVisitor(this.schema, entity, field, this.visitor)) {\n\t\t\t\tfields[name] = fieldConfig\n\t\t\t}\n\t\t}\n\t\treturn fields\n\t}\n}\n\nexport interface PaginatedHasManyFieldProviderExtension {\n\trelationName: string\n}\n"],"names":["acceptFieldVisitor"],"mappings":";;;;;;AAKO,MAAM,8BAAsG;AAAA,EAGlH,YAA6B,QAAuC,SAA+C;AAAtF,SAAA,SAAA;AAAuC,SAAA,UAAA;AAAA,EAAA;AAAA,EAEpE,UAAU,QAAsB,kBAAsF;AACrH,UAAM,SAA2D,CAAC;AAClE,eAAW,SAAS,kBAAkB;AAC1B,iBAAA,CAAC,MAAM,WAAW,KAAKA,YAAAA,mBAAmB,KAAK,QAAQ,QAAQ,OAAO,KAAK,OAAO,GAAG;AAC/F,eAAO,IAAI,IAAI;AAAA,MAAA;AAAA,IAChB;AAEM,WAAA;AAAA,EAAA;AAET;AAbC,cADY,+BACL,iBAAwB,kBAAA;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaginatedHasManyFieldProvider.js","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.ts"],"sourcesContent":["import { EntityFieldsProvider, FieldMap } from '../EntityFieldsProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { Model } from '@contember/schema'\nimport { PaginatedHasManyFieldProviderVisitor } from './PaginatedHasManyFieldProviderVisitor'\n\nexport class PaginatedHasManyFieldProvider implements EntityFieldsProvider<PaginatedHasManyFieldProviderExtension> {\n\tstatic extensionName: string = 'PaginatedHasMany'\n\n\tconstructor(private readonly schema: Model.Schema, private readonly visitor: PaginatedHasManyFieldProviderVisitor) {}\n\n\tgetFields(entity: Model.Entity, accessibleFields: Model.AnyField[]): FieldMap<PaginatedHasManyFieldProviderExtension> {\n\t\tconst fields: FieldMap<PaginatedHasManyFieldProviderExtension> = {}\n\t\tfor (const field of accessibleFields) {\n\t\t\tfor (const [name, fieldConfig] of acceptFieldVisitor(this.schema, entity, field, this.visitor)) {\n\t\t\t\tfields[name] = fieldConfig\n\t\t\t}\n\t\t}\n\t\treturn fields\n\t}\n}\n\nexport interface PaginatedHasManyFieldProviderExtension {\n\trelationName: string\n}\n"],"names":[],"mappings":";;;;AAKO,MAAM,8BAAsG;AAAA,EAGlH,YAA6B,QAAuC,SAA+C;AAAtF,SAAA,SAAA;AAAuC,SAAA,UAAA;AAAA,EAAgD;AAAA,EAEpH,UAAU,QAAsB,kBAAsF;AACrH,UAAM,SAA2D,CAAA;AACjE,eAAW,SAAS,kBAAkB;AAC1B,iBAAA,CAAC,MAAM,WAAW,KAAK,mBAAmB,KAAK,QAAQ,QAAQ,OAAO,KAAK,OAAO,GAAG;AAC/F,eAAO,IAAI,IAAI;AAAA,MAChB;AAAA,IACD;AACO,WAAA;AAAA,EACR;AACD;AAbC,cADY,+BACL,iBAAwB,kBAAA;"}
1
+ {"version":3,"file":"PaginatedHasManyFieldProvider.js","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyFieldProvider.ts"],"sourcesContent":["import { EntityFieldsProvider, FieldMap } from '../EntityFieldsProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { Model } from '@contember/schema'\nimport { PaginatedHasManyFieldProviderVisitor } from './PaginatedHasManyFieldProviderVisitor'\n\nexport class PaginatedHasManyFieldProvider implements EntityFieldsProvider<PaginatedHasManyFieldProviderExtension> {\n\tstatic extensionName: string = 'PaginatedHasMany'\n\n\tconstructor(private readonly schema: Model.Schema, private readonly visitor: PaginatedHasManyFieldProviderVisitor) {}\n\n\tgetFields(entity: Model.Entity, accessibleFields: Model.AnyField[]): FieldMap<PaginatedHasManyFieldProviderExtension> {\n\t\tconst fields: FieldMap<PaginatedHasManyFieldProviderExtension> = {}\n\t\tfor (const field of accessibleFields) {\n\t\t\tfor (const [name, fieldConfig] of acceptFieldVisitor(this.schema, entity, field, this.visitor)) {\n\t\t\t\tfields[name] = fieldConfig\n\t\t\t}\n\t\t}\n\t\treturn fields\n\t}\n}\n\nexport interface PaginatedHasManyFieldProviderExtension {\n\trelationName: string\n}\n"],"names":[],"mappings":";;;;AAKO,MAAM,8BAAsG;AAAA,EAGlH,YAA6B,QAAuC,SAA+C;AAAtF,SAAA,SAAA;AAAuC,SAAA,UAAA;AAAA,EAAA;AAAA,EAEpE,UAAU,QAAsB,kBAAsF;AACrH,UAAM,SAA2D,CAAC;AAClE,eAAW,SAAS,kBAAkB;AAC1B,iBAAA,CAAC,MAAM,WAAW,KAAK,mBAAmB,KAAK,QAAQ,QAAQ,OAAO,KAAK,OAAO,GAAG;AAC/F,eAAO,IAAI,IAAI;AAAA,MAAA;AAAA,IAChB;AAEM,WAAA;AAAA,EAAA;AAET;AAbC,cADY,+BACL,iBAAwB,kBAAA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaginatedHasManyFieldProviderVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { PaginatedHasManyFieldProvider, PaginatedHasManyFieldProviderExtension } from './PaginatedHasManyFieldProvider'\nimport { capitalizeFirstLetter } from '../../utils'\nimport { PaginatedFieldConfigFactory } from '../../schema/PaginatedFieldConfigFactory'\nimport { aliasAwareResolver } from '../../schema'\nimport { GraphQLFieldConfig } from 'graphql'\n\ntype Result = [\n\tstring,\n\tGraphQLFieldConfig<any, any> & {\n\t\textensions: PaginatedHasManyFieldProviderExtension\n\t}\n]\n\nexport class PaginatedHasManyFieldProviderVisitor implements\n\tModel.ColumnVisitor<Result[]>,\n\tModel.RelationByTypeVisitor<Result[]> {\n\n\tconstructor(private readonly paginatedFieldFactory: PaginatedFieldConfigFactory) {}\n\n\tvisitOneHasMany({ targetEntity, relation }: Model.OneHasManyContext) {\n\t\treturn this.createField(targetEntity, relation)\n\t}\n\n\tvisitManyHasManyOwning({ targetEntity, relation }: Model.ManyHasManyOwningContext) {\n\t\treturn this.createField(targetEntity, relation)\n\t}\n\n\tvisitManyHasManyInverse({ targetEntity, relation }: Model.ManyHasManyInverseContext) {\n\t\treturn this.createField(targetEntity, relation)\n\t}\n\n\tprivate createField(entity: Model.Entity, relation: Model.Relation): Result[] {\n\t\treturn [\n\t\t\t[\n\t\t\t\t`paginate${capitalizeFirstLetter(relation.name)}`,\n\t\t\t\t{\n\t\t\t\t\t...this.paginatedFieldFactory.createFieldConfig(entity),\n\t\t\t\t\textensions: {\n\t\t\t\t\t\trelationName: relation.name,\n\t\t\t\t\t\textensionKey: PaginatedHasManyFieldProvider.extensionName,\n\t\t\t\t\t},\n\t\t\t\t\tresolve: aliasAwareResolver,\n\t\t\t\t},\n\t\t\t],\n\t\t]\n\t}\n\n\tvisitColumn() {\n\t\treturn []\n\t}\n\n\tvisitManyHasOne() {\n\t\treturn []\n\t}\n\n\tvisitOneHasOneInverse() {\n\t\treturn []\n\t}\n\n\tvisitOneHasOneOwning() {\n\t\treturn []\n\t}\n}\n"],"names":["capitalizeFirstLetter","PaginatedHasManyFieldProvider","aliasAwareResolver"],"mappings":";;;;;;;;;;;AAcO,MAAM,qCAE0B;AAAA,EAEtC,YAA6B,uBAAoD;AAApD,SAAA,wBAAA;AAAA,EAAqD;AAAA,EAElF,gBAAgB,EAAE,cAAc,YAAqC;AAC7D,WAAA,KAAK,YAAY,cAAc,QAAQ;AAAA,EAC/C;AAAA,EAEA,uBAAuB,EAAE,cAAc,YAA4C;AAC3E,WAAA,KAAK,YAAY,cAAc,QAAQ;AAAA,EAC/C;AAAA,EAEA,wBAAwB,EAAE,cAAc,YAA6C;AAC7E,WAAA,KAAK,YAAY,cAAc,QAAQ;AAAA,EAC/C;AAAA,EAEQ,YAAY,QAAsB,UAAoC;AACtE,WAAA;AAAA,MACN;AAAA,QACC,WAAWA,QAAA,sBAAsB,SAAS,IAAI,CAAC;AAAA,QAC/C;AAAA,UACC,GAAG,KAAK,sBAAsB,kBAAkB,MAAM;AAAA,UACtD,YAAY;AAAA,YACX,cAAc,SAAS;AAAA,YACvB,cAAcC,8BAA8B,8BAAA;AAAA,UAC7C;AAAA,UACA,SAASC,MAAA;AAAA,QACV;AAAA,MACD;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,cAAc;AACb,WAAO;EACR;AAAA,EAEA,kBAAkB;AACjB,WAAO;EACR;AAAA,EAEA,wBAAwB;AACvB,WAAO;EACR;AAAA,EAEA,uBAAuB;AACtB,WAAO;EACR;AACD;;"}
1
+ {"version":3,"file":"PaginatedHasManyFieldProviderVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { PaginatedHasManyFieldProvider, PaginatedHasManyFieldProviderExtension } from './PaginatedHasManyFieldProvider'\nimport { capitalizeFirstLetter } from '../../utils'\nimport { PaginatedFieldConfigFactory } from '../../schema/PaginatedFieldConfigFactory'\nimport { aliasAwareResolver } from '../../schema'\nimport { GraphQLFieldConfig } from 'graphql'\n\ntype Result = [\n\tstring,\n\tGraphQLFieldConfig<any, any> & {\n\t\textensions: PaginatedHasManyFieldProviderExtension\n\t}\n]\n\nexport class PaginatedHasManyFieldProviderVisitor implements\n\tModel.ColumnVisitor<Result[]>,\n\tModel.RelationByTypeVisitor<Result[]> {\n\n\tconstructor(private readonly paginatedFieldFactory: PaginatedFieldConfigFactory) {}\n\n\tvisitOneHasMany({ targetEntity, relation }: Model.OneHasManyContext) {\n\t\treturn this.createField(targetEntity, relation)\n\t}\n\n\tvisitManyHasManyOwning({ targetEntity, relation }: Model.ManyHasManyOwningContext) {\n\t\treturn this.createField(targetEntity, relation)\n\t}\n\n\tvisitManyHasManyInverse({ targetEntity, relation }: Model.ManyHasManyInverseContext) {\n\t\treturn this.createField(targetEntity, relation)\n\t}\n\n\tprivate createField(entity: Model.Entity, relation: Model.Relation): Result[] {\n\t\treturn [\n\t\t\t[\n\t\t\t\t`paginate${capitalizeFirstLetter(relation.name)}`,\n\t\t\t\t{\n\t\t\t\t\t...this.paginatedFieldFactory.createFieldConfig(entity),\n\t\t\t\t\textensions: {\n\t\t\t\t\t\trelationName: relation.name,\n\t\t\t\t\t\textensionKey: PaginatedHasManyFieldProvider.extensionName,\n\t\t\t\t\t},\n\t\t\t\t\tresolve: aliasAwareResolver,\n\t\t\t\t},\n\t\t\t],\n\t\t]\n\t}\n\n\tvisitColumn() {\n\t\treturn []\n\t}\n\n\tvisitManyHasOne() {\n\t\treturn []\n\t}\n\n\tvisitOneHasOneInverse() {\n\t\treturn []\n\t}\n\n\tvisitOneHasOneOwning() {\n\t\treturn []\n\t}\n}\n"],"names":["capitalizeFirstLetter","PaginatedHasManyFieldProvider","aliasAwareResolver"],"mappings":";;;;;;;;;;;AAcO,MAAM,qCAE0B;AAAA,EAEtC,YAA6B,uBAAoD;AAApD,SAAA,wBAAA;AAAA,EAAA;AAAA,EAE7B,gBAAgB,EAAE,cAAc,YAAqC;AAC7D,WAAA,KAAK,YAAY,cAAc,QAAQ;AAAA,EAAA;AAAA,EAG/C,uBAAuB,EAAE,cAAc,YAA4C;AAC3E,WAAA,KAAK,YAAY,cAAc,QAAQ;AAAA,EAAA;AAAA,EAG/C,wBAAwB,EAAE,cAAc,YAA6C;AAC7E,WAAA,KAAK,YAAY,cAAc,QAAQ;AAAA,EAAA;AAAA,EAGvC,YAAY,QAAsB,UAAoC;AACtE,WAAA;AAAA,MACN;AAAA,QACC,WAAWA,QAAA,sBAAsB,SAAS,IAAI,CAAC;AAAA,QAC/C;AAAA,UACC,GAAG,KAAK,sBAAsB,kBAAkB,MAAM;AAAA,UACtD,YAAY;AAAA,YACX,cAAc,SAAS;AAAA,YACvB,cAAcC,8BAAAA,8BAA8B;AAAA,UAC7C;AAAA,UACA,SAASC,MAAAA;AAAAA,QAAA;AAAA,MACV;AAAA,IAEF;AAAA,EAAA;AAAA,EAGD,cAAc;AACb,WAAO,CAAC;AAAA,EAAA;AAAA,EAGT,kBAAkB;AACjB,WAAO,CAAC;AAAA,EAAA;AAAA,EAGT,wBAAwB;AACvB,WAAO,CAAC;AAAA,EAAA;AAAA,EAGT,uBAAuB;AACtB,WAAO,CAAC;AAAA,EAAA;AAEV;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaginatedHasManyFieldProviderVisitor.js","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { PaginatedHasManyFieldProvider, PaginatedHasManyFieldProviderExtension } from './PaginatedHasManyFieldProvider'\nimport { capitalizeFirstLetter } from '../../utils'\nimport { PaginatedFieldConfigFactory } from '../../schema/PaginatedFieldConfigFactory'\nimport { aliasAwareResolver } from '../../schema'\nimport { GraphQLFieldConfig } from 'graphql'\n\ntype Result = [\n\tstring,\n\tGraphQLFieldConfig<any, any> & {\n\t\textensions: PaginatedHasManyFieldProviderExtension\n\t}\n]\n\nexport class PaginatedHasManyFieldProviderVisitor implements\n\tModel.ColumnVisitor<Result[]>,\n\tModel.RelationByTypeVisitor<Result[]> {\n\n\tconstructor(private readonly paginatedFieldFactory: PaginatedFieldConfigFactory) {}\n\n\tvisitOneHasMany({ targetEntity, relation }: Model.OneHasManyContext) {\n\t\treturn this.createField(targetEntity, relation)\n\t}\n\n\tvisitManyHasManyOwning({ targetEntity, relation }: Model.ManyHasManyOwningContext) {\n\t\treturn this.createField(targetEntity, relation)\n\t}\n\n\tvisitManyHasManyInverse({ targetEntity, relation }: Model.ManyHasManyInverseContext) {\n\t\treturn this.createField(targetEntity, relation)\n\t}\n\n\tprivate createField(entity: Model.Entity, relation: Model.Relation): Result[] {\n\t\treturn [\n\t\t\t[\n\t\t\t\t`paginate${capitalizeFirstLetter(relation.name)}`,\n\t\t\t\t{\n\t\t\t\t\t...this.paginatedFieldFactory.createFieldConfig(entity),\n\t\t\t\t\textensions: {\n\t\t\t\t\t\trelationName: relation.name,\n\t\t\t\t\t\textensionKey: PaginatedHasManyFieldProvider.extensionName,\n\t\t\t\t\t},\n\t\t\t\t\tresolve: aliasAwareResolver,\n\t\t\t\t},\n\t\t\t],\n\t\t]\n\t}\n\n\tvisitColumn() {\n\t\treturn []\n\t}\n\n\tvisitManyHasOne() {\n\t\treturn []\n\t}\n\n\tvisitOneHasOneInverse() {\n\t\treturn []\n\t}\n\n\tvisitOneHasOneOwning() {\n\t\treturn []\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;AAcO,MAAM,qCAE0B;AAAA,EAEtC,YAA6B,uBAAoD;AAApD,SAAA,wBAAA;AAAA,EAAqD;AAAA,EAElF,gBAAgB,EAAE,cAAc,YAAqC;AAC7D,WAAA,KAAK,YAAY,cAAc,QAAQ;AAAA,EAC/C;AAAA,EAEA,uBAAuB,EAAE,cAAc,YAA4C;AAC3E,WAAA,KAAK,YAAY,cAAc,QAAQ;AAAA,EAC/C;AAAA,EAEA,wBAAwB,EAAE,cAAc,YAA6C;AAC7E,WAAA,KAAK,YAAY,cAAc,QAAQ;AAAA,EAC/C;AAAA,EAEQ,YAAY,QAAsB,UAAoC;AACtE,WAAA;AAAA,MACN;AAAA,QACC,WAAW,sBAAsB,SAAS,IAAI,CAAC;AAAA,QAC/C;AAAA,UACC,GAAG,KAAK,sBAAsB,kBAAkB,MAAM;AAAA,UACtD,YAAY;AAAA,YACX,cAAc,SAAS;AAAA,YACvB,cAAc,8BAA8B;AAAA,UAC7C;AAAA,UACA,SAAS;AAAA,QACV;AAAA,MACD;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,cAAc;AACb,WAAO;EACR;AAAA,EAEA,kBAAkB;AACjB,WAAO;EACR;AAAA,EAEA,wBAAwB;AACvB,WAAO;EACR;AAAA,EAEA,uBAAuB;AACtB,WAAO;EACR;AACD;"}
1
+ {"version":3,"file":"PaginatedHasManyFieldProviderVisitor.js","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyFieldProviderVisitor.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { PaginatedHasManyFieldProvider, PaginatedHasManyFieldProviderExtension } from './PaginatedHasManyFieldProvider'\nimport { capitalizeFirstLetter } from '../../utils'\nimport { PaginatedFieldConfigFactory } from '../../schema/PaginatedFieldConfigFactory'\nimport { aliasAwareResolver } from '../../schema'\nimport { GraphQLFieldConfig } from 'graphql'\n\ntype Result = [\n\tstring,\n\tGraphQLFieldConfig<any, any> & {\n\t\textensions: PaginatedHasManyFieldProviderExtension\n\t}\n]\n\nexport class PaginatedHasManyFieldProviderVisitor implements\n\tModel.ColumnVisitor<Result[]>,\n\tModel.RelationByTypeVisitor<Result[]> {\n\n\tconstructor(private readonly paginatedFieldFactory: PaginatedFieldConfigFactory) {}\n\n\tvisitOneHasMany({ targetEntity, relation }: Model.OneHasManyContext) {\n\t\treturn this.createField(targetEntity, relation)\n\t}\n\n\tvisitManyHasManyOwning({ targetEntity, relation }: Model.ManyHasManyOwningContext) {\n\t\treturn this.createField(targetEntity, relation)\n\t}\n\n\tvisitManyHasManyInverse({ targetEntity, relation }: Model.ManyHasManyInverseContext) {\n\t\treturn this.createField(targetEntity, relation)\n\t}\n\n\tprivate createField(entity: Model.Entity, relation: Model.Relation): Result[] {\n\t\treturn [\n\t\t\t[\n\t\t\t\t`paginate${capitalizeFirstLetter(relation.name)}`,\n\t\t\t\t{\n\t\t\t\t\t...this.paginatedFieldFactory.createFieldConfig(entity),\n\t\t\t\t\textensions: {\n\t\t\t\t\t\trelationName: relation.name,\n\t\t\t\t\t\textensionKey: PaginatedHasManyFieldProvider.extensionName,\n\t\t\t\t\t},\n\t\t\t\t\tresolve: aliasAwareResolver,\n\t\t\t\t},\n\t\t\t],\n\t\t]\n\t}\n\n\tvisitColumn() {\n\t\treturn []\n\t}\n\n\tvisitManyHasOne() {\n\t\treturn []\n\t}\n\n\tvisitOneHasOneInverse() {\n\t\treturn []\n\t}\n\n\tvisitOneHasOneOwning() {\n\t\treturn []\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;AAcO,MAAM,qCAE0B;AAAA,EAEtC,YAA6B,uBAAoD;AAApD,SAAA,wBAAA;AAAA,EAAA;AAAA,EAE7B,gBAAgB,EAAE,cAAc,YAAqC;AAC7D,WAAA,KAAK,YAAY,cAAc,QAAQ;AAAA,EAAA;AAAA,EAG/C,uBAAuB,EAAE,cAAc,YAA4C;AAC3E,WAAA,KAAK,YAAY,cAAc,QAAQ;AAAA,EAAA;AAAA,EAG/C,wBAAwB,EAAE,cAAc,YAA6C;AAC7E,WAAA,KAAK,YAAY,cAAc,QAAQ;AAAA,EAAA;AAAA,EAGvC,YAAY,QAAsB,UAAoC;AACtE,WAAA;AAAA,MACN;AAAA,QACC,WAAW,sBAAsB,SAAS,IAAI,CAAC;AAAA,QAC/C;AAAA,UACC,GAAG,KAAK,sBAAsB,kBAAkB,MAAM;AAAA,UACtD,YAAY;AAAA,YACX,cAAc,SAAS;AAAA,YACvB,cAAc,8BAA8B;AAAA,UAC7C;AAAA,UACA,SAAS;AAAA,QAAA;AAAA,MACV;AAAA,IAEF;AAAA,EAAA;AAAA,EAGD,cAAc;AACb,WAAO,CAAC;AAAA,EAAA;AAAA,EAGT,kBAAkB;AACjB,WAAO,CAAC;AAAA,EAAA;AAAA,EAGT,wBAAwB;AACvB,WAAO,CAAC;AAAA,EAAA;AAAA,EAGT,uBAAuB;AACtB,WAAO,CAAC;AAAA,EAAA;AAEV;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaginatedHasManyNodesVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { Mapper, RelationFetcher, SelectGroupedObjects } from '../../mapper'\nimport { ObjectNode } from '../../inputProcessing'\n\nexport class PaginatedHasManyNodesVisitor implements\n\tModel.ColumnVisitor<Promise<SelectGroupedObjects>>,\n\tModel.RelationByTypeVisitor<Promise<SelectGroupedObjects>> {\n\n\tconstructor(\n\t\tprivate readonly ids: Input.PrimaryValue[],\n\t\tprivate readonly objectNode: ObjectNode<Input.PaginationQueryInput>,\n\t\tprivate readonly relationFetcher: RelationFetcher,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly relationPath: Model.AnyRelationContext[],\n\t) {}\n\n\tasync visitOneHasMany(relationContext: Model.OneHasManyContext) {\n\t\treturn await this.relationFetcher.fetchOneHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tobjectNode: this.objectNode,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyOwning(relationContext: Model.ManyHasManyOwningContext) {\n\t\treturn await this.relationFetcher.fetchManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfield: this.objectNode,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyInverse(relationContext: Model.ManyHasManyInverseContext) {\n\t\treturn await this.relationFetcher.fetchManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfield: this.objectNode,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tvisitColumn(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitManyHasOne(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneInverse(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneOwning(): never {\n\t\tthrow new Error()\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,6BAE+C;AAAA,EAE3D,YACkB,KACA,YACA,iBACA,QACA,cAChB;AALgB,SAAA,MAAA;AACA,SAAA,aAAA;AACA,SAAA,kBAAA;AACA,SAAA,SAAA;AACA,SAAA,eAAA;AAAA,EACf;AAAA,EAEH,MAAM,gBAAgB,iBAA0C;AACxD,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,YAAY,KAAK;AAAA,QACjB;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MACX;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,MAAM,uBAAuB,iBAAiD;AACtE,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,OAAO,KAAK;AAAA,QACZ;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MACX;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,MAAM,wBAAwB,iBAAkD;AACxE,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,OAAO,KAAK;AAAA,QACZ;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MACX;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,cAAqB;AACpB,UAAM,IAAI,MAAM;AAAA,EACjB;AAAA,EAEA,kBAAyB;AACxB,UAAM,IAAI,MAAM;AAAA,EACjB;AAAA,EAEA,wBAA+B;AAC9B,UAAM,IAAI,MAAM;AAAA,EACjB;AAAA,EAEA,uBAA8B;AAC7B,UAAM,IAAI,MAAM;AAAA,EACjB;AACD;;"}
1
+ {"version":3,"file":"PaginatedHasManyNodesVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { Mapper, RelationFetcher, SelectGroupedObjects } from '../../mapper'\nimport { ObjectNode } from '../../inputProcessing'\n\nexport class PaginatedHasManyNodesVisitor implements\n\tModel.ColumnVisitor<Promise<SelectGroupedObjects>>,\n\tModel.RelationByTypeVisitor<Promise<SelectGroupedObjects>> {\n\n\tconstructor(\n\t\tprivate readonly ids: Input.PrimaryValue[],\n\t\tprivate readonly objectNode: ObjectNode<Input.PaginationQueryInput>,\n\t\tprivate readonly relationFetcher: RelationFetcher,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly relationPath: Model.AnyRelationContext[],\n\t) {}\n\n\tasync visitOneHasMany(relationContext: Model.OneHasManyContext) {\n\t\treturn await this.relationFetcher.fetchOneHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tobjectNode: this.objectNode,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyOwning(relationContext: Model.ManyHasManyOwningContext) {\n\t\treturn await this.relationFetcher.fetchManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfield: this.objectNode,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyInverse(relationContext: Model.ManyHasManyInverseContext) {\n\t\treturn await this.relationFetcher.fetchManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfield: this.objectNode,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tvisitColumn(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitManyHasOne(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneInverse(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneOwning(): never {\n\t\tthrow new Error()\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,6BAE+C;AAAA,EAE3D,YACkB,KACA,YACA,iBACA,QACA,cAChB;AALgB,SAAA,MAAA;AACA,SAAA,aAAA;AACA,SAAA,kBAAA;AACA,SAAA,SAAA;AACA,SAAA,eAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,gBAAgB,iBAA0C;AACxD,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,YAAY,KAAK;AAAA,QACjB;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAAA,EAGD,MAAM,uBAAuB,iBAAiD;AACtE,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,OAAO,KAAK;AAAA,QACZ;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAAA,EAGD,MAAM,wBAAwB,iBAAkD;AACxE,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,OAAO,KAAK;AAAA,QACZ;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAAA,EAGD,cAAqB;AACpB,UAAM,IAAI,MAAM;AAAA,EAAA;AAAA,EAGjB,kBAAyB;AACxB,UAAM,IAAI,MAAM;AAAA,EAAA;AAAA,EAGjB,wBAA+B;AAC9B,UAAM,IAAI,MAAM;AAAA,EAAA;AAAA,EAGjB,uBAA8B;AAC7B,UAAM,IAAI,MAAM;AAAA,EAAA;AAElB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaginatedHasManyNodesVisitor.js","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { Mapper, RelationFetcher, SelectGroupedObjects } from '../../mapper'\nimport { ObjectNode } from '../../inputProcessing'\n\nexport class PaginatedHasManyNodesVisitor implements\n\tModel.ColumnVisitor<Promise<SelectGroupedObjects>>,\n\tModel.RelationByTypeVisitor<Promise<SelectGroupedObjects>> {\n\n\tconstructor(\n\t\tprivate readonly ids: Input.PrimaryValue[],\n\t\tprivate readonly objectNode: ObjectNode<Input.PaginationQueryInput>,\n\t\tprivate readonly relationFetcher: RelationFetcher,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly relationPath: Model.AnyRelationContext[],\n\t) {}\n\n\tasync visitOneHasMany(relationContext: Model.OneHasManyContext) {\n\t\treturn await this.relationFetcher.fetchOneHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tobjectNode: this.objectNode,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyOwning(relationContext: Model.ManyHasManyOwningContext) {\n\t\treturn await this.relationFetcher.fetchManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfield: this.objectNode,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyInverse(relationContext: Model.ManyHasManyInverseContext) {\n\t\treturn await this.relationFetcher.fetchManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfield: this.objectNode,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tvisitColumn(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitManyHasOne(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneInverse(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneOwning(): never {\n\t\tthrow new Error()\n\t}\n}\n"],"names":[],"mappings":"AAIO,MAAM,6BAE+C;AAAA,EAE3D,YACkB,KACA,YACA,iBACA,QACA,cAChB;AALgB,SAAA,MAAA;AACA,SAAA,aAAA;AACA,SAAA,kBAAA;AACA,SAAA,SAAA;AACA,SAAA,eAAA;AAAA,EACf;AAAA,EAEH,MAAM,gBAAgB,iBAA0C;AACxD,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,YAAY,KAAK;AAAA,QACjB;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MACX;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,MAAM,uBAAuB,iBAAiD;AACtE,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,OAAO,KAAK;AAAA,QACZ;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MACX;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,MAAM,wBAAwB,iBAAkD;AACxE,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,OAAO,KAAK;AAAA,QACZ;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MACX;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,cAAqB;AACpB,UAAM,IAAI,MAAM;AAAA,EACjB;AAAA,EAEA,kBAAyB;AACxB,UAAM,IAAI,MAAM;AAAA,EACjB;AAAA,EAEA,wBAA+B;AAC9B,UAAM,IAAI,MAAM;AAAA,EACjB;AAAA,EAEA,uBAA8B;AAC7B,UAAM,IAAI,MAAM;AAAA,EACjB;AACD;"}
1
+ {"version":3,"file":"PaginatedHasManyNodesVisitor.js","sources":["../../../../../../packages/engine-content-api/src/extensions/paginatedHasMany/PaginatedHasManyNodesVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { Mapper, RelationFetcher, SelectGroupedObjects } from '../../mapper'\nimport { ObjectNode } from '../../inputProcessing'\n\nexport class PaginatedHasManyNodesVisitor implements\n\tModel.ColumnVisitor<Promise<SelectGroupedObjects>>,\n\tModel.RelationByTypeVisitor<Promise<SelectGroupedObjects>> {\n\n\tconstructor(\n\t\tprivate readonly ids: Input.PrimaryValue[],\n\t\tprivate readonly objectNode: ObjectNode<Input.PaginationQueryInput>,\n\t\tprivate readonly relationFetcher: RelationFetcher,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly relationPath: Model.AnyRelationContext[],\n\t) {}\n\n\tasync visitOneHasMany(relationContext: Model.OneHasManyContext) {\n\t\treturn await this.relationFetcher.fetchOneHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tobjectNode: this.objectNode,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyOwning(relationContext: Model.ManyHasManyOwningContext) {\n\t\treturn await this.relationFetcher.fetchManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfield: this.objectNode,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tasync visitManyHasManyInverse(relationContext: Model.ManyHasManyInverseContext) {\n\t\treturn await this.relationFetcher.fetchManyHasManyGroups(\n\t\t\t{\n\t\t\t\tmapper: this.mapper,\n\t\t\t\tfield: this.objectNode,\n\t\t\t\trelationContext,\n\t\t\t\trelationPath: this.relationPath,\n\t\t\t\tids: this.ids,\n\t\t\t},\n\t\t)\n\t}\n\n\tvisitColumn(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitManyHasOne(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneInverse(): never {\n\t\tthrow new Error()\n\t}\n\n\tvisitOneHasOneOwning(): never {\n\t\tthrow new Error()\n\t}\n}\n"],"names":[],"mappings":"AAIO,MAAM,6BAE+C;AAAA,EAE3D,YACkB,KACA,YACA,iBACA,QACA,cAChB;AALgB,SAAA,MAAA;AACA,SAAA,aAAA;AACA,SAAA,kBAAA;AACA,SAAA,SAAA;AACA,SAAA,eAAA;AAAA,EAAA;AAAA,EAGlB,MAAM,gBAAgB,iBAA0C;AACxD,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,YAAY,KAAK;AAAA,QACjB;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAAA,EAGD,MAAM,uBAAuB,iBAAiD;AACtE,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,OAAO,KAAK;AAAA,QACZ;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAAA,EAGD,MAAM,wBAAwB,iBAAkD;AACxE,WAAA,MAAM,KAAK,gBAAgB;AAAA,MACjC;AAAA,QACC,QAAQ,KAAK;AAAA,QACb,OAAO,KAAK;AAAA,QACZ;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,KAAK,KAAK;AAAA,MAAA;AAAA,IAEZ;AAAA,EAAA;AAAA,EAGD,cAAqB;AACpB,UAAM,IAAI,MAAM;AAAA,EAAA;AAAA,EAGjB,kBAAyB;AACxB,UAAM,IAAI,MAAM;AAAA,EAAA;AAAA,EAGjB,wBAA+B;AAC9B,UAAM,IAAI,MAAM;AAAA,EAAA;AAAA,EAGjB,uBAA8B;AAC7B,UAAM,IAAI,MAAM;AAAA,EAAA;AAElB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnValueResolver.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/ColumnValueResolver.ts"],"sourcesContent":["import { NoDataError, Providers, resolveColumnValue } from '@contember/schema-utils'\nimport { Model, Value } from '@contember/schema'\n\nexport class ColumnValueResolver {\n\tconstructor(private readonly providers: Providers) {}\n\n\tgetDefaultValidationValue(context: Model.ColumnContext & { input: Value.FieldValue | undefined }): Value.AtomicValue | undefined {\n\t\tif (context.column.name === context.entity.primary) {\n\t\t\treturn '00000000-0000-0000-0000-000000000000'\n\t\t}\n\t\ttry {\n\t\t\treturn resolveColumnValue(context, this.providers)\n\t\t} catch (e) {\n\t\t\tif (e instanceof NoDataError) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n}\n"],"names":["resolveColumnValue","NoDataError"],"mappings":";;;AAGO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,WAAsB;AAAtB,SAAA,YAAA;AAAA,EAAuB;AAAA,EAEpD,0BAA0B,SAAuG;AAChI,QAAI,QAAQ,OAAO,SAAS,QAAQ,OAAO,SAAS;AAC5C,aAAA;AAAA,IACR;AACI,QAAA;AACI,aAAAA,+BAAmB,SAAS,KAAK,SAAS;AAAA,aACzC,GAAG;AACX,UAAI,aAAaC,YAAAA,aAAa;AACtB,eAAA;AAAA,MACR;AACM,YAAA;AAAA,IACP;AAAA,EACD;AACD;;"}
1
+ {"version":3,"file":"ColumnValueResolver.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/ColumnValueResolver.ts"],"sourcesContent":["import { NoDataError, Providers, resolveColumnValue } from '@contember/schema-utils'\nimport { Model, Value } from '@contember/schema'\n\nexport class ColumnValueResolver {\n\tconstructor(private readonly providers: Providers) {}\n\n\tgetDefaultValidationValue(context: Model.ColumnContext & { input: Value.FieldValue | undefined }): Value.AtomicValue | undefined {\n\t\tif (context.column.name === context.entity.primary) {\n\t\t\treturn '00000000-0000-0000-0000-000000000000'\n\t\t}\n\t\ttry {\n\t\t\treturn resolveColumnValue(context, this.providers)\n\t\t} catch (e) {\n\t\t\tif (e instanceof NoDataError) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n}\n"],"names":["resolveColumnValue","NoDataError"],"mappings":";;;AAGO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,WAAsB;AAAtB,SAAA,YAAA;AAAA,EAAA;AAAA,EAE7B,0BAA0B,SAAuG;AAChI,QAAI,QAAQ,OAAO,SAAS,QAAQ,OAAO,SAAS;AAC5C,aAAA;AAAA,IAAA;AAEJ,QAAA;AACI,aAAAA,+BAAmB,SAAS,KAAK,SAAS;AAAA,aACzC,GAAG;AACX,UAAI,aAAaC,YAAAA,aAAa;AACtB,eAAA;AAAA,MAAA;AAEF,YAAA;AAAA,IAAA;AAAA,EACP;AAEF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnValueResolver.js","sources":["../../../../../packages/engine-content-api/src/input-validation/ColumnValueResolver.ts"],"sourcesContent":["import { NoDataError, Providers, resolveColumnValue } from '@contember/schema-utils'\nimport { Model, Value } from '@contember/schema'\n\nexport class ColumnValueResolver {\n\tconstructor(private readonly providers: Providers) {}\n\n\tgetDefaultValidationValue(context: Model.ColumnContext & { input: Value.FieldValue | undefined }): Value.AtomicValue | undefined {\n\t\tif (context.column.name === context.entity.primary) {\n\t\t\treturn '00000000-0000-0000-0000-000000000000'\n\t\t}\n\t\ttry {\n\t\t\treturn resolveColumnValue(context, this.providers)\n\t\t} catch (e) {\n\t\t\tif (e instanceof NoDataError) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";AAGO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,WAAsB;AAAtB,SAAA,YAAA;AAAA,EAAuB;AAAA,EAEpD,0BAA0B,SAAuG;AAChI,QAAI,QAAQ,OAAO,SAAS,QAAQ,OAAO,SAAS;AAC5C,aAAA;AAAA,IACR;AACI,QAAA;AACI,aAAA,mBAAmB,SAAS,KAAK,SAAS;AAAA,aACzC,GAAG;AACX,UAAI,aAAa,aAAa;AACtB,eAAA;AAAA,MACR;AACM,YAAA;AAAA,IACP;AAAA,EACD;AACD;"}
1
+ {"version":3,"file":"ColumnValueResolver.js","sources":["../../../../../packages/engine-content-api/src/input-validation/ColumnValueResolver.ts"],"sourcesContent":["import { NoDataError, Providers, resolveColumnValue } from '@contember/schema-utils'\nimport { Model, Value } from '@contember/schema'\n\nexport class ColumnValueResolver {\n\tconstructor(private readonly providers: Providers) {}\n\n\tgetDefaultValidationValue(context: Model.ColumnContext & { input: Value.FieldValue | undefined }): Value.AtomicValue | undefined {\n\t\tif (context.column.name === context.entity.primary) {\n\t\t\treturn '00000000-0000-0000-0000-000000000000'\n\t\t}\n\t\ttry {\n\t\t\treturn resolveColumnValue(context, this.providers)\n\t\t} catch (e) {\n\t\t\tif (e instanceof NoDataError) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";AAGO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,WAAsB;AAAtB,SAAA,YAAA;AAAA,EAAA;AAAA,EAE7B,0BAA0B,SAAuG;AAChI,QAAI,QAAQ,OAAO,SAAS,QAAQ,OAAO,SAAS;AAC5C,aAAA;AAAA,IAAA;AAEJ,QAAA;AACI,aAAA,mBAAmB,SAAS,KAAK,SAAS;AAAA,aACzC,GAAG;AACX,UAAI,aAAa,aAAa;AACtB,eAAA;AAAA,MAAA;AAEF,YAAA;AAAA,IAAA;AAAA,EACP;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityRulesResolver.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/EntityRulesResolver.ts"],"sourcesContent":["import { filterObject, mapObject } from '../utils'\nimport { Model, Validation } from '@contember/schema'\nimport { acceptEveryFieldVisitor, acceptFieldVisitor } from '@contember/schema-utils'\nimport { InputValidation } from '@contember/schema-definition'\nimport { DependencyCollector } from './dependencies'\nimport { NotSupportedError } from './exceptions'\n\nexport class EntityRulesResolver {\n\tconstructor(private readonly validationSchema: Validation.Schema, private readonly model: Model.Schema) {}\n\n\tpublic getSimpleRules(entityName: string): Validation.EntityRules {\n\t\treturn mapObject(this.getEntityRules(entityName), (rules, field) => {\n\t\t\tacceptFieldVisitor(this.model, entityName, field, {\n\t\t\t\tvisitColumn: () => null,\n\t\t\t\tvisitHasOne: () => null,\n\t\t\t\tvisitHasMany: () => {\n\t\t\t\t\tthrow new NotSupportedError('Rules on has-many relations are currently not supported.')\n\t\t\t\t},\n\t\t\t})\n\t\t\tfor (const rule of rules) {\n\t\t\t\tconst dependencies = DependencyCollector.collect(rule.validator)\n\t\t\t\tfor (const dep of Object.keys(dependencies)) {\n\t\t\t\t\tconst isRelation = acceptFieldVisitor(this.model, entityName, dep, {\n\t\t\t\t\t\tvisitColumn: () => false,\n\t\t\t\t\t\tvisitRelation: () => true,\n\t\t\t\t\t})\n\t\t\t\t\tif (isRelation) {\n\t\t\t\t\t\tthrow new NotSupportedError('Rules depending on relations are currently not supported.')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rules\n\t\t})\n\t}\n\n\tpublic getEntityRules(entityName: string): Validation.EntityRules {\n\t\tconst definedRules = this.validationSchema[entityName] || {}\n\t\tconst fieldsNotNullFlag = acceptEveryFieldVisitor(this.model, entityName, new RequiredFieldsVisitor())\n\t\tconst notNullFields = Object.keys(filterObject(fieldsNotNullFlag, (field, val) => val))\n\t\treturn notNullFields.reduce(\n\t\t\t(entityRules, field) => ({\n\t\t\t\t...entityRules,\n\t\t\t\t[field]: [\n\t\t\t\t\t...(entityRules[field] || []),\n\t\t\t\t\t{ validator: InputValidation.rules.defined(), message: { text: 'Field is required' } },\n\t\t\t\t],\n\t\t\t}),\n\t\t\tdefinedRules,\n\t\t)\n\t}\n}\n\nclass RequiredFieldsVisitor implements Model.RelationByTypeVisitor<boolean>, Model.ColumnVisitor<boolean> {\n\tvisitColumn({ column }: Model.ColumnContext): boolean {\n\t\treturn !column.nullable && typeof column.default === 'undefined' && !column.sequence\n\t}\n\n\tvisitManyHasManyInverse(): boolean {\n\t\treturn false\n\t}\n\n\tvisitManyHasManyOwning(): boolean {\n\t\treturn false\n\t}\n\n\tvisitManyHasOne({ relation }: Model.ManyHasOneContext): boolean {\n\t\treturn !relation.nullable\n\t}\n\n\tvisitOneHasMany(): boolean {\n\t\treturn false\n\t}\n\n\tvisitOneHasOneInverse({ targetEntity, relation }: Model.OneHasOneInverseContext): boolean {\n\t\treturn !relation.nullable && !targetEntity.view\n\t}\n\n\tvisitOneHasOneOwning({ relation }: Model.OneHasOneOwningContext): boolean {\n\t\treturn !relation.nullable\n\t}\n}\n"],"names":["mapObject","acceptFieldVisitor","NotSupportedError","DependencyCollector","acceptEveryFieldVisitor","filterObject","InputValidation"],"mappings":";;;;;;;AAOO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,kBAAsD,OAAqB;AAA3E,SAAA,mBAAA;AAAsD,SAAA,QAAA;AAAA,EAAsB;AAAA,EAElG,eAAe,YAA4C;AACjE,WAAOA,OAAAA,UAAU,KAAK,eAAe,UAAU,GAAG,CAAC,OAAO,UAAU;AAChDC,kBAAAA,mBAAA,KAAK,OAAO,YAAY,OAAO;AAAA,QACjD,aAAa,MAAM;AAAA,QACnB,aAAa,MAAM;AAAA,QACnB,cAAc,MAAM;AACb,gBAAA,IAAIC,WAAAA,kBAAkB,0DAA0D;AAAA,QACvF;AAAA,MAAA,CACA;AACD,iBAAW,QAAQ,OAAO;AACzB,cAAM,eAAeC,oBAAA,oBAAoB,QAAQ,KAAK,SAAS;AAC/D,mBAAW,OAAO,OAAO,KAAK,YAAY,GAAG;AAC5C,gBAAM,aAAaF,YAAAA,mBAAmB,KAAK,OAAO,YAAY,KAAK;AAAA,YAClE,aAAa,MAAM;AAAA,YACnB,eAAe,MAAM;AAAA,UAAA,CACrB;AACD,cAAI,YAAY;AACT,kBAAA,IAAIC,WAAAA,kBAAkB,2DAA2D;AAAA,UACxF;AAAA,QACD;AAAA,MACD;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AAAA,EAEO,eAAe,YAA4C;AACjE,UAAM,eAAe,KAAK,iBAAiB,UAAU,KAAK,CAAA;AAC1D,UAAM,oBAAoBE,YAAAA,wBAAwB,KAAK,OAAO,YAAY,IAAI,uBAAuB;AAC/F,UAAA,gBAAgB,OAAO,KAAKC,OAAA,aAAa,mBAAmB,CAAC,OAAO,QAAQ,GAAG,CAAC;AACtF,WAAO,cAAc;AAAA,MACpB,CAAC,aAAa,WAAW;AAAA,QACxB,GAAG;AAAA,QACH,CAAC,KAAK,GAAG;AAAA,UACR,GAAI,YAAY,KAAK,KAAK,CAAC;AAAA,UAC3B,EAAE,WAAWC,iBAAA,gBAAgB,MAAM,WAAW,SAAS,EAAE,MAAM,sBAAsB;AAAA,QACtF;AAAA,MAAA;AAAA,MAED;AAAA,IAAA;AAAA,EAEF;AACD;AAEA,MAAM,sBAAoG;AAAA,EACzG,YAAY,EAAE,UAAwC;AAC9C,WAAA,CAAC,OAAO,YAAY,OAAO,OAAO,YAAY,eAAe,CAAC,OAAO;AAAA,EAC7E;AAAA,EAEA,0BAAmC;AAC3B,WAAA;AAAA,EACR;AAAA,EAEA,yBAAkC;AAC1B,WAAA;AAAA,EACR;AAAA,EAEA,gBAAgB,EAAE,YAA8C;AAC/D,WAAO,CAAC,SAAS;AAAA,EAClB;AAAA,EAEA,kBAA2B;AACnB,WAAA;AAAA,EACR;AAAA,EAEA,sBAAsB,EAAE,cAAc,YAAoD;AACzF,WAAO,CAAC,SAAS,YAAY,CAAC,aAAa;AAAA,EAC5C;AAAA,EAEA,qBAAqB,EAAE,YAAmD;AACzE,WAAO,CAAC,SAAS;AAAA,EAClB;AACD;;"}
1
+ {"version":3,"file":"EntityRulesResolver.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/EntityRulesResolver.ts"],"sourcesContent":["import { filterObject, mapObject } from '../utils'\nimport { Model, Validation } from '@contember/schema'\nimport { acceptEveryFieldVisitor, acceptFieldVisitor } from '@contember/schema-utils'\nimport { InputValidation } from '@contember/schema-definition'\nimport { DependencyCollector } from './dependencies'\nimport { NotSupportedError } from './exceptions'\n\nexport class EntityRulesResolver {\n\tconstructor(private readonly validationSchema: Validation.Schema, private readonly model: Model.Schema) {}\n\n\tpublic getSimpleRules(entityName: string): Validation.EntityRules {\n\t\treturn mapObject(this.getEntityRules(entityName), (rules, field) => {\n\t\t\tacceptFieldVisitor(this.model, entityName, field, {\n\t\t\t\tvisitColumn: () => null,\n\t\t\t\tvisitHasOne: () => null,\n\t\t\t\tvisitHasMany: () => {\n\t\t\t\t\tthrow new NotSupportedError('Rules on has-many relations are currently not supported.')\n\t\t\t\t},\n\t\t\t})\n\t\t\tfor (const rule of rules) {\n\t\t\t\tconst dependencies = DependencyCollector.collect(rule.validator)\n\t\t\t\tfor (const dep of Object.keys(dependencies)) {\n\t\t\t\t\tconst isRelation = acceptFieldVisitor(this.model, entityName, dep, {\n\t\t\t\t\t\tvisitColumn: () => false,\n\t\t\t\t\t\tvisitRelation: () => true,\n\t\t\t\t\t})\n\t\t\t\t\tif (isRelation) {\n\t\t\t\t\t\tthrow new NotSupportedError('Rules depending on relations are currently not supported.')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rules\n\t\t})\n\t}\n\n\tpublic getEntityRules(entityName: string): Validation.EntityRules {\n\t\tconst definedRules = this.validationSchema[entityName] || {}\n\t\tconst fieldsNotNullFlag = acceptEveryFieldVisitor(this.model, entityName, new RequiredFieldsVisitor())\n\t\tconst notNullFields = Object.keys(filterObject(fieldsNotNullFlag, (field, val) => val))\n\t\treturn notNullFields.reduce(\n\t\t\t(entityRules, field) => ({\n\t\t\t\t...entityRules,\n\t\t\t\t[field]: [\n\t\t\t\t\t...(entityRules[field] || []),\n\t\t\t\t\t{ validator: InputValidation.rules.defined(), message: { text: 'Field is required' } },\n\t\t\t\t],\n\t\t\t}),\n\t\t\tdefinedRules,\n\t\t)\n\t}\n}\n\nclass RequiredFieldsVisitor implements Model.RelationByTypeVisitor<boolean>, Model.ColumnVisitor<boolean> {\n\tvisitColumn({ column }: Model.ColumnContext): boolean {\n\t\treturn !column.nullable && typeof column.default === 'undefined' && !column.sequence\n\t}\n\n\tvisitManyHasManyInverse(): boolean {\n\t\treturn false\n\t}\n\n\tvisitManyHasManyOwning(): boolean {\n\t\treturn false\n\t}\n\n\tvisitManyHasOne({ relation }: Model.ManyHasOneContext): boolean {\n\t\treturn !relation.nullable\n\t}\n\n\tvisitOneHasMany(): boolean {\n\t\treturn false\n\t}\n\n\tvisitOneHasOneInverse({ targetEntity, relation }: Model.OneHasOneInverseContext): boolean {\n\t\treturn !relation.nullable && !targetEntity.view\n\t}\n\n\tvisitOneHasOneOwning({ relation }: Model.OneHasOneOwningContext): boolean {\n\t\treturn !relation.nullable\n\t}\n}\n"],"names":["mapObject","acceptFieldVisitor","NotSupportedError","DependencyCollector","acceptEveryFieldVisitor","filterObject","InputValidation"],"mappings":";;;;;;;AAOO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,kBAAsD,OAAqB;AAA3E,SAAA,mBAAA;AAAsD,SAAA,QAAA;AAAA,EAAA;AAAA,EAE5E,eAAe,YAA4C;AACjE,WAAOA,OAAAA,UAAU,KAAK,eAAe,UAAU,GAAG,CAAC,OAAO,UAAU;AAChDC,kBAAAA,mBAAA,KAAK,OAAO,YAAY,OAAO;AAAA,QACjD,aAAa,MAAM;AAAA,QACnB,aAAa,MAAM;AAAA,QACnB,cAAc,MAAM;AACb,gBAAA,IAAIC,6BAAkB,0DAA0D;AAAA,QAAA;AAAA,MACvF,CACA;AACD,iBAAW,QAAQ,OAAO;AACzB,cAAM,eAAeC,oBAAA,oBAAoB,QAAQ,KAAK,SAAS;AAC/D,mBAAW,OAAO,OAAO,KAAK,YAAY,GAAG;AAC5C,gBAAM,aAAaF,YAAAA,mBAAmB,KAAK,OAAO,YAAY,KAAK;AAAA,YAClE,aAAa,MAAM;AAAA,YACnB,eAAe,MAAM;AAAA,UAAA,CACrB;AACD,cAAI,YAAY;AACT,kBAAA,IAAIC,6BAAkB,2DAA2D;AAAA,UAAA;AAAA,QACxF;AAAA,MACD;AAEM,aAAA;AAAA,IAAA,CACP;AAAA,EAAA;AAAA,EAGK,eAAe,YAA4C;AACjE,UAAM,eAAe,KAAK,iBAAiB,UAAU,KAAK,CAAC;AAC3D,UAAM,oBAAoBE,YAAAA,wBAAwB,KAAK,OAAO,YAAY,IAAI,uBAAuB;AAC/F,UAAA,gBAAgB,OAAO,KAAKC,OAAA,aAAa,mBAAmB,CAAC,OAAO,QAAQ,GAAG,CAAC;AACtF,WAAO,cAAc;AAAA,MACpB,CAAC,aAAa,WAAW;AAAA,QACxB,GAAG;AAAA,QACH,CAAC,KAAK,GAAG;AAAA,UACR,GAAI,YAAY,KAAK,KAAK,CAAC;AAAA,UAC3B,EAAE,WAAWC,iBAAA,gBAAgB,MAAM,WAAW,SAAS,EAAE,MAAM,oBAAsB,EAAA;AAAA,QAAA;AAAA,MACtF;AAAA,MAED;AAAA,IACD;AAAA,EAAA;AAEF;AAEA,MAAM,sBAAoG;AAAA,EACzG,YAAY,EAAE,UAAwC;AAC9C,WAAA,CAAC,OAAO,YAAY,OAAO,OAAO,YAAY,eAAe,CAAC,OAAO;AAAA,EAAA;AAAA,EAG7E,0BAAmC;AAC3B,WAAA;AAAA,EAAA;AAAA,EAGR,yBAAkC;AAC1B,WAAA;AAAA,EAAA;AAAA,EAGR,gBAAgB,EAAE,YAA8C;AAC/D,WAAO,CAAC,SAAS;AAAA,EAAA;AAAA,EAGlB,kBAA2B;AACnB,WAAA;AAAA,EAAA;AAAA,EAGR,sBAAsB,EAAE,cAAc,YAAoD;AACzF,WAAO,CAAC,SAAS,YAAY,CAAC,aAAa;AAAA,EAAA;AAAA,EAG5C,qBAAqB,EAAE,YAAmD;AACzE,WAAO,CAAC,SAAS;AAAA,EAAA;AAEnB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityRulesResolver.js","sources":["../../../../../packages/engine-content-api/src/input-validation/EntityRulesResolver.ts"],"sourcesContent":["import { filterObject, mapObject } from '../utils'\nimport { Model, Validation } from '@contember/schema'\nimport { acceptEveryFieldVisitor, acceptFieldVisitor } from '@contember/schema-utils'\nimport { InputValidation } from '@contember/schema-definition'\nimport { DependencyCollector } from './dependencies'\nimport { NotSupportedError } from './exceptions'\n\nexport class EntityRulesResolver {\n\tconstructor(private readonly validationSchema: Validation.Schema, private readonly model: Model.Schema) {}\n\n\tpublic getSimpleRules(entityName: string): Validation.EntityRules {\n\t\treturn mapObject(this.getEntityRules(entityName), (rules, field) => {\n\t\t\tacceptFieldVisitor(this.model, entityName, field, {\n\t\t\t\tvisitColumn: () => null,\n\t\t\t\tvisitHasOne: () => null,\n\t\t\t\tvisitHasMany: () => {\n\t\t\t\t\tthrow new NotSupportedError('Rules on has-many relations are currently not supported.')\n\t\t\t\t},\n\t\t\t})\n\t\t\tfor (const rule of rules) {\n\t\t\t\tconst dependencies = DependencyCollector.collect(rule.validator)\n\t\t\t\tfor (const dep of Object.keys(dependencies)) {\n\t\t\t\t\tconst isRelation = acceptFieldVisitor(this.model, entityName, dep, {\n\t\t\t\t\t\tvisitColumn: () => false,\n\t\t\t\t\t\tvisitRelation: () => true,\n\t\t\t\t\t})\n\t\t\t\t\tif (isRelation) {\n\t\t\t\t\t\tthrow new NotSupportedError('Rules depending on relations are currently not supported.')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rules\n\t\t})\n\t}\n\n\tpublic getEntityRules(entityName: string): Validation.EntityRules {\n\t\tconst definedRules = this.validationSchema[entityName] || {}\n\t\tconst fieldsNotNullFlag = acceptEveryFieldVisitor(this.model, entityName, new RequiredFieldsVisitor())\n\t\tconst notNullFields = Object.keys(filterObject(fieldsNotNullFlag, (field, val) => val))\n\t\treturn notNullFields.reduce(\n\t\t\t(entityRules, field) => ({\n\t\t\t\t...entityRules,\n\t\t\t\t[field]: [\n\t\t\t\t\t...(entityRules[field] || []),\n\t\t\t\t\t{ validator: InputValidation.rules.defined(), message: { text: 'Field is required' } },\n\t\t\t\t],\n\t\t\t}),\n\t\t\tdefinedRules,\n\t\t)\n\t}\n}\n\nclass RequiredFieldsVisitor implements Model.RelationByTypeVisitor<boolean>, Model.ColumnVisitor<boolean> {\n\tvisitColumn({ column }: Model.ColumnContext): boolean {\n\t\treturn !column.nullable && typeof column.default === 'undefined' && !column.sequence\n\t}\n\n\tvisitManyHasManyInverse(): boolean {\n\t\treturn false\n\t}\n\n\tvisitManyHasManyOwning(): boolean {\n\t\treturn false\n\t}\n\n\tvisitManyHasOne({ relation }: Model.ManyHasOneContext): boolean {\n\t\treturn !relation.nullable\n\t}\n\n\tvisitOneHasMany(): boolean {\n\t\treturn false\n\t}\n\n\tvisitOneHasOneInverse({ targetEntity, relation }: Model.OneHasOneInverseContext): boolean {\n\t\treturn !relation.nullable && !targetEntity.view\n\t}\n\n\tvisitOneHasOneOwning({ relation }: Model.OneHasOneOwningContext): boolean {\n\t\treturn !relation.nullable\n\t}\n}\n"],"names":[],"mappings":";;;;;AAOO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,kBAAsD,OAAqB;AAA3E,SAAA,mBAAA;AAAsD,SAAA,QAAA;AAAA,EAAsB;AAAA,EAElG,eAAe,YAA4C;AACjE,WAAO,UAAU,KAAK,eAAe,UAAU,GAAG,CAAC,OAAO,UAAU;AAChD,yBAAA,KAAK,OAAO,YAAY,OAAO;AAAA,QACjD,aAAa,MAAM;AAAA,QACnB,aAAa,MAAM;AAAA,QACnB,cAAc,MAAM;AACb,gBAAA,IAAI,kBAAkB,0DAA0D;AAAA,QACvF;AAAA,MAAA,CACA;AACD,iBAAW,QAAQ,OAAO;AACzB,cAAM,eAAe,oBAAoB,QAAQ,KAAK,SAAS;AAC/D,mBAAW,OAAO,OAAO,KAAK,YAAY,GAAG;AAC5C,gBAAM,aAAa,mBAAmB,KAAK,OAAO,YAAY,KAAK;AAAA,YAClE,aAAa,MAAM;AAAA,YACnB,eAAe,MAAM;AAAA,UAAA,CACrB;AACD,cAAI,YAAY;AACT,kBAAA,IAAI,kBAAkB,2DAA2D;AAAA,UACxF;AAAA,QACD;AAAA,MACD;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EACF;AAAA,EAEO,eAAe,YAA4C;AACjE,UAAM,eAAe,KAAK,iBAAiB,UAAU,KAAK,CAAA;AAC1D,UAAM,oBAAoB,wBAAwB,KAAK,OAAO,YAAY,IAAI,uBAAuB;AAC/F,UAAA,gBAAgB,OAAO,KAAK,aAAa,mBAAmB,CAAC,OAAO,QAAQ,GAAG,CAAC;AACtF,WAAO,cAAc;AAAA,MACpB,CAAC,aAAa,WAAW;AAAA,QACxB,GAAG;AAAA,QACH,CAAC,KAAK,GAAG;AAAA,UACR,GAAI,YAAY,KAAK,KAAK,CAAC;AAAA,UAC3B,EAAE,WAAW,gBAAgB,MAAM,WAAW,SAAS,EAAE,MAAM,sBAAsB;AAAA,QACtF;AAAA,MAAA;AAAA,MAED;AAAA,IAAA;AAAA,EAEF;AACD;AAEA,MAAM,sBAAoG;AAAA,EACzG,YAAY,EAAE,UAAwC;AAC9C,WAAA,CAAC,OAAO,YAAY,OAAO,OAAO,YAAY,eAAe,CAAC,OAAO;AAAA,EAC7E;AAAA,EAEA,0BAAmC;AAC3B,WAAA;AAAA,EACR;AAAA,EAEA,yBAAkC;AAC1B,WAAA;AAAA,EACR;AAAA,EAEA,gBAAgB,EAAE,YAA8C;AAC/D,WAAO,CAAC,SAAS;AAAA,EAClB;AAAA,EAEA,kBAA2B;AACnB,WAAA;AAAA,EACR;AAAA,EAEA,sBAAsB,EAAE,cAAc,YAAoD;AACzF,WAAO,CAAC,SAAS,YAAY,CAAC,aAAa;AAAA,EAC5C;AAAA,EAEA,qBAAqB,EAAE,YAAmD;AACzE,WAAO,CAAC,SAAS;AAAA,EAClB;AACD;"}
1
+ {"version":3,"file":"EntityRulesResolver.js","sources":["../../../../../packages/engine-content-api/src/input-validation/EntityRulesResolver.ts"],"sourcesContent":["import { filterObject, mapObject } from '../utils'\nimport { Model, Validation } from '@contember/schema'\nimport { acceptEveryFieldVisitor, acceptFieldVisitor } from '@contember/schema-utils'\nimport { InputValidation } from '@contember/schema-definition'\nimport { DependencyCollector } from './dependencies'\nimport { NotSupportedError } from './exceptions'\n\nexport class EntityRulesResolver {\n\tconstructor(private readonly validationSchema: Validation.Schema, private readonly model: Model.Schema) {}\n\n\tpublic getSimpleRules(entityName: string): Validation.EntityRules {\n\t\treturn mapObject(this.getEntityRules(entityName), (rules, field) => {\n\t\t\tacceptFieldVisitor(this.model, entityName, field, {\n\t\t\t\tvisitColumn: () => null,\n\t\t\t\tvisitHasOne: () => null,\n\t\t\t\tvisitHasMany: () => {\n\t\t\t\t\tthrow new NotSupportedError('Rules on has-many relations are currently not supported.')\n\t\t\t\t},\n\t\t\t})\n\t\t\tfor (const rule of rules) {\n\t\t\t\tconst dependencies = DependencyCollector.collect(rule.validator)\n\t\t\t\tfor (const dep of Object.keys(dependencies)) {\n\t\t\t\t\tconst isRelation = acceptFieldVisitor(this.model, entityName, dep, {\n\t\t\t\t\t\tvisitColumn: () => false,\n\t\t\t\t\t\tvisitRelation: () => true,\n\t\t\t\t\t})\n\t\t\t\t\tif (isRelation) {\n\t\t\t\t\t\tthrow new NotSupportedError('Rules depending on relations are currently not supported.')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn rules\n\t\t})\n\t}\n\n\tpublic getEntityRules(entityName: string): Validation.EntityRules {\n\t\tconst definedRules = this.validationSchema[entityName] || {}\n\t\tconst fieldsNotNullFlag = acceptEveryFieldVisitor(this.model, entityName, new RequiredFieldsVisitor())\n\t\tconst notNullFields = Object.keys(filterObject(fieldsNotNullFlag, (field, val) => val))\n\t\treturn notNullFields.reduce(\n\t\t\t(entityRules, field) => ({\n\t\t\t\t...entityRules,\n\t\t\t\t[field]: [\n\t\t\t\t\t...(entityRules[field] || []),\n\t\t\t\t\t{ validator: InputValidation.rules.defined(), message: { text: 'Field is required' } },\n\t\t\t\t],\n\t\t\t}),\n\t\t\tdefinedRules,\n\t\t)\n\t}\n}\n\nclass RequiredFieldsVisitor implements Model.RelationByTypeVisitor<boolean>, Model.ColumnVisitor<boolean> {\n\tvisitColumn({ column }: Model.ColumnContext): boolean {\n\t\treturn !column.nullable && typeof column.default === 'undefined' && !column.sequence\n\t}\n\n\tvisitManyHasManyInverse(): boolean {\n\t\treturn false\n\t}\n\n\tvisitManyHasManyOwning(): boolean {\n\t\treturn false\n\t}\n\n\tvisitManyHasOne({ relation }: Model.ManyHasOneContext): boolean {\n\t\treturn !relation.nullable\n\t}\n\n\tvisitOneHasMany(): boolean {\n\t\treturn false\n\t}\n\n\tvisitOneHasOneInverse({ targetEntity, relation }: Model.OneHasOneInverseContext): boolean {\n\t\treturn !relation.nullable && !targetEntity.view\n\t}\n\n\tvisitOneHasOneOwning({ relation }: Model.OneHasOneOwningContext): boolean {\n\t\treturn !relation.nullable\n\t}\n}\n"],"names":[],"mappings":";;;;;AAOO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,kBAAsD,OAAqB;AAA3E,SAAA,mBAAA;AAAsD,SAAA,QAAA;AAAA,EAAA;AAAA,EAE5E,eAAe,YAA4C;AACjE,WAAO,UAAU,KAAK,eAAe,UAAU,GAAG,CAAC,OAAO,UAAU;AAChD,yBAAA,KAAK,OAAO,YAAY,OAAO;AAAA,QACjD,aAAa,MAAM;AAAA,QACnB,aAAa,MAAM;AAAA,QACnB,cAAc,MAAM;AACb,gBAAA,IAAI,kBAAkB,0DAA0D;AAAA,QAAA;AAAA,MACvF,CACA;AACD,iBAAW,QAAQ,OAAO;AACzB,cAAM,eAAe,oBAAoB,QAAQ,KAAK,SAAS;AAC/D,mBAAW,OAAO,OAAO,KAAK,YAAY,GAAG;AAC5C,gBAAM,aAAa,mBAAmB,KAAK,OAAO,YAAY,KAAK;AAAA,YAClE,aAAa,MAAM;AAAA,YACnB,eAAe,MAAM;AAAA,UAAA,CACrB;AACD,cAAI,YAAY;AACT,kBAAA,IAAI,kBAAkB,2DAA2D;AAAA,UAAA;AAAA,QACxF;AAAA,MACD;AAEM,aAAA;AAAA,IAAA,CACP;AAAA,EAAA;AAAA,EAGK,eAAe,YAA4C;AACjE,UAAM,eAAe,KAAK,iBAAiB,UAAU,KAAK,CAAC;AAC3D,UAAM,oBAAoB,wBAAwB,KAAK,OAAO,YAAY,IAAI,uBAAuB;AAC/F,UAAA,gBAAgB,OAAO,KAAK,aAAa,mBAAmB,CAAC,OAAO,QAAQ,GAAG,CAAC;AACtF,WAAO,cAAc;AAAA,MACpB,CAAC,aAAa,WAAW;AAAA,QACxB,GAAG;AAAA,QACH,CAAC,KAAK,GAAG;AAAA,UACR,GAAI,YAAY,KAAK,KAAK,CAAC;AAAA,UAC3B,EAAE,WAAW,gBAAgB,MAAM,WAAW,SAAS,EAAE,MAAM,oBAAsB,EAAA;AAAA,QAAA;AAAA,MACtF;AAAA,MAED;AAAA,IACD;AAAA,EAAA;AAEF;AAEA,MAAM,sBAAoG;AAAA,EACzG,YAAY,EAAE,UAAwC;AAC9C,WAAA,CAAC,OAAO,YAAY,OAAO,OAAO,YAAY,eAAe,CAAC,OAAO;AAAA,EAAA;AAAA,EAG7E,0BAAmC;AAC3B,WAAA;AAAA,EAAA;AAAA,EAGR,yBAAkC;AAC1B,WAAA;AAAA,EAAA;AAAA,EAGR,gBAAgB,EAAE,YAA8C;AAC/D,WAAO,CAAC,SAAS;AAAA,EAAA;AAAA,EAGlB,kBAA2B;AACnB,WAAA;AAAA,EAAA;AAAA,EAGR,sBAAsB,EAAE,cAAc,YAAoD;AACzF,WAAO,CAAC,SAAS,YAAY,CAAC,aAAa;AAAA,EAAA;AAAA,EAG5C,qBAAqB,EAAE,YAAmD;AACzE,WAAO,CAAC,SAAS;AAAA,EAAA;AAEnB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryAstFactory.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/QueryAstFactory.ts"],"sourcesContent":["import { acceptFieldVisitor, getEntity } from '@contember/schema-utils'\nimport { Model } from '@contember/schema'\nimport { Dependencies } from './dependencies'\nimport { FieldNode, ObjectNode } from '../inputProcessing'\n\nexport class QueryAstFactory {\n\tconstructor(private readonly model: Model.Schema) {}\n\n\tcreate(entityName: string, dependencies: Dependencies): ObjectNode {\n\t\tconst entity = getEntity(this.model, entityName)\n\t\tlet node = new ObjectNode(entityName, entityName, [], {}, {}, [])\n\t\tfor (const [fieldName, deps] of Object.entries(dependencies)) {\n\t\t\tnode = node.withField(this.createField(entity, fieldName, deps))\n\t\t}\n\t\treturn node\n\t}\n\n\tprivate createField(entity: Model.Entity, fieldName: string, dependency: Dependencies): ObjectNode | FieldNode {\n\t\tlet [targetEntity, newField] = acceptFieldVisitor<[Model.Entity | null, FieldNode | ObjectNode]>(\n\t\t\tthis.model,\n\t\t\tentity,\n\t\t\tfieldName,\n\t\t\t{\n\t\t\t\tvisitColumn: () => [null, new FieldNode(fieldName, fieldName, {})],\n\t\t\t\tvisitRelation: ({ targetEntity }) => [\n\t\t\t\t\ttargetEntity,\n\t\t\t\t\tnew ObjectNode(fieldName, fieldName, [], {}, {}, []).withField(\n\t\t\t\t\t\tnew FieldNode(targetEntity.primary, targetEntity.primary, {}),\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t},\n\t\t)\n\t\tconst dependencyEntries = Object.entries(dependency)\n\t\tif (dependencyEntries.length > 0) {\n\t\t\tif (!(newField instanceof ObjectNode) || !targetEntity) {\n\t\t\t\tthrow new Error(`Invalid path expression, trying to fetch field on non-relation`)\n\t\t\t}\n\t\t\tfor (const [fieldName, deps] of dependencyEntries) {\n\t\t\t\tnewField = (newField as ObjectNode).withField(this.createField(targetEntity, fieldName, deps))\n\t\t\t}\n\t\t}\n\t\treturn newField\n\t}\n}\n"],"names":["getEntity","ObjectNode","acceptFieldVisitor","FieldNode","targetEntity","fieldName"],"mappings":";;;;;;AAKO,MAAM,gBAAgB;AAAA,EAC5B,YAA6B,OAAqB;AAArB,SAAA,QAAA;AAAA,EAAsB;AAAA,EAEnD,OAAO,YAAoB,cAAwC;AAClE,UAAM,SAASA,YAAA,UAAU,KAAK,OAAO,UAAU;AAC/C,QAAI,OAAO,IAAIC,WAAW,WAAA,YAAY,YAAY,CAAA,GAAI,CAAI,GAAA,IAAI,CAAA,CAAE;AAChE,eAAW,CAAC,WAAW,IAAI,KAAK,OAAO,QAAQ,YAAY,GAAG;AAC7D,aAAO,KAAK,UAAU,KAAK,YAAY,QAAQ,WAAW,IAAI,CAAC;AAAA,IAChE;AACO,WAAA;AAAA,EACR;AAAA,EAEQ,YAAY,QAAsB,WAAmB,YAAkD;AAC1G,QAAA,CAAC,cAAc,QAAQ,IAAIC,YAAA;AAAA,MAC9B,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,QACC,aAAa,MAAM,CAAC,MAAM,IAAIC,oBAAU,WAAW,WAAW,CAAA,CAAE,CAAC;AAAA,QACjE,eAAe,CAAC,EAAE,cAAAC,oBAAmB;AAAA,UACpCA;AAAAA,UACA,IAAIH,WAAA,WAAW,WAAW,WAAW,CAAA,GAAI,CAAA,GAAI,CAAC,GAAG,CAAE,CAAA,EAAE;AAAA,YACpD,IAAIE,UAAAA,UAAUC,cAAa,SAASA,cAAa,SAAS,CAAA,CAAE;AAAA,UAC7D;AAAA,QACD;AAAA,MACD;AAAA,IAAA;AAEK,UAAA,oBAAoB,OAAO,QAAQ,UAAU;AAC/C,QAAA,kBAAkB,SAAS,GAAG;AACjC,UAAI,EAAE,oBAAoBH,0BAAe,CAAC,cAAc;AACjD,cAAA,IAAI,MAAM,gEAAgE;AAAA,MACjF;AACA,iBAAW,CAACI,YAAW,IAAI,KAAK,mBAAmB;AAClD,mBAAY,SAAwB,UAAU,KAAK,YAAY,cAAcA,YAAW,IAAI,CAAC;AAAA,MAC9F;AAAA,IACD;AACO,WAAA;AAAA,EACR;AACD;;"}
1
+ {"version":3,"file":"QueryAstFactory.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/QueryAstFactory.ts"],"sourcesContent":["import { acceptFieldVisitor, getEntity } from '@contember/schema-utils'\nimport { Model } from '@contember/schema'\nimport { Dependencies } from './dependencies'\nimport { FieldNode, ObjectNode } from '../inputProcessing'\n\nexport class QueryAstFactory {\n\tconstructor(private readonly model: Model.Schema) {}\n\n\tcreate(entityName: string, dependencies: Dependencies): ObjectNode {\n\t\tconst entity = getEntity(this.model, entityName)\n\t\tlet node = new ObjectNode(entityName, entityName, [], {}, {}, [])\n\t\tfor (const [fieldName, deps] of Object.entries(dependencies)) {\n\t\t\tnode = node.withField(this.createField(entity, fieldName, deps))\n\t\t}\n\t\treturn node\n\t}\n\n\tprivate createField(entity: Model.Entity, fieldName: string, dependency: Dependencies): ObjectNode | FieldNode {\n\t\tlet [targetEntity, newField] = acceptFieldVisitor<[Model.Entity | null, FieldNode | ObjectNode]>(\n\t\t\tthis.model,\n\t\t\tentity,\n\t\t\tfieldName,\n\t\t\t{\n\t\t\t\tvisitColumn: () => [null, new FieldNode(fieldName, fieldName, {})],\n\t\t\t\tvisitRelation: ({ targetEntity }) => [\n\t\t\t\t\ttargetEntity,\n\t\t\t\t\tnew ObjectNode(fieldName, fieldName, [], {}, {}, []).withField(\n\t\t\t\t\t\tnew FieldNode(targetEntity.primary, targetEntity.primary, {}),\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t},\n\t\t)\n\t\tconst dependencyEntries = Object.entries(dependency)\n\t\tif (dependencyEntries.length > 0) {\n\t\t\tif (!(newField instanceof ObjectNode) || !targetEntity) {\n\t\t\t\tthrow new Error(`Invalid path expression, trying to fetch field on non-relation`)\n\t\t\t}\n\t\t\tfor (const [fieldName, deps] of dependencyEntries) {\n\t\t\t\tnewField = (newField as ObjectNode).withField(this.createField(targetEntity, fieldName, deps))\n\t\t\t}\n\t\t}\n\t\treturn newField\n\t}\n}\n"],"names":["getEntity","ObjectNode","acceptFieldVisitor","FieldNode","targetEntity","fieldName"],"mappings":";;;;;;AAKO,MAAM,gBAAgB;AAAA,EAC5B,YAA6B,OAAqB;AAArB,SAAA,QAAA;AAAA,EAAA;AAAA,EAE7B,OAAO,YAAoB,cAAwC;AAClE,UAAM,SAASA,YAAA,UAAU,KAAK,OAAO,UAAU;AAC/C,QAAI,OAAO,IAAIC,WAAAA,WAAW,YAAY,YAAY,IAAI,CAAA,GAAI,CAAI,GAAA,EAAE;AAChE,eAAW,CAAC,WAAW,IAAI,KAAK,OAAO,QAAQ,YAAY,GAAG;AAC7D,aAAO,KAAK,UAAU,KAAK,YAAY,QAAQ,WAAW,IAAI,CAAC;AAAA,IAAA;AAEzD,WAAA;AAAA,EAAA;AAAA,EAGA,YAAY,QAAsB,WAAmB,YAAkD;AAC1G,QAAA,CAAC,cAAc,QAAQ,IAAIC,YAAA;AAAA,MAC9B,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,QACC,aAAa,MAAM,CAAC,MAAM,IAAIC,oBAAU,WAAW,WAAW,CAAA,CAAE,CAAC;AAAA,QACjE,eAAe,CAAC,EAAE,cAAAC,oBAAmB;AAAA,UACpCA;AAAAA,UACA,IAAIH,WAAA,WAAW,WAAW,WAAW,CAAA,GAAI,CAAA,GAAI,CAAC,GAAG,CAAE,CAAA,EAAE;AAAA,YACpD,IAAIE,UAAUC,UAAAA,cAAa,SAASA,cAAa,SAAS,CAAE,CAAA;AAAA,UAAA;AAAA,QAC7D;AAAA,MACD;AAAA,IAEF;AACM,UAAA,oBAAoB,OAAO,QAAQ,UAAU;AAC/C,QAAA,kBAAkB,SAAS,GAAG;AACjC,UAAI,EAAE,oBAAoBH,0BAAe,CAAC,cAAc;AACjD,cAAA,IAAI,MAAM,gEAAgE;AAAA,MAAA;AAEjF,iBAAW,CAACI,YAAW,IAAI,KAAK,mBAAmB;AAClD,mBAAY,SAAwB,UAAU,KAAK,YAAY,cAAcA,YAAW,IAAI,CAAC;AAAA,MAAA;AAAA,IAC9F;AAEM,WAAA;AAAA,EAAA;AAET;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryAstFactory.js","sources":["../../../../../packages/engine-content-api/src/input-validation/QueryAstFactory.ts"],"sourcesContent":["import { acceptFieldVisitor, getEntity } from '@contember/schema-utils'\nimport { Model } from '@contember/schema'\nimport { Dependencies } from './dependencies'\nimport { FieldNode, ObjectNode } from '../inputProcessing'\n\nexport class QueryAstFactory {\n\tconstructor(private readonly model: Model.Schema) {}\n\n\tcreate(entityName: string, dependencies: Dependencies): ObjectNode {\n\t\tconst entity = getEntity(this.model, entityName)\n\t\tlet node = new ObjectNode(entityName, entityName, [], {}, {}, [])\n\t\tfor (const [fieldName, deps] of Object.entries(dependencies)) {\n\t\t\tnode = node.withField(this.createField(entity, fieldName, deps))\n\t\t}\n\t\treturn node\n\t}\n\n\tprivate createField(entity: Model.Entity, fieldName: string, dependency: Dependencies): ObjectNode | FieldNode {\n\t\tlet [targetEntity, newField] = acceptFieldVisitor<[Model.Entity | null, FieldNode | ObjectNode]>(\n\t\t\tthis.model,\n\t\t\tentity,\n\t\t\tfieldName,\n\t\t\t{\n\t\t\t\tvisitColumn: () => [null, new FieldNode(fieldName, fieldName, {})],\n\t\t\t\tvisitRelation: ({ targetEntity }) => [\n\t\t\t\t\ttargetEntity,\n\t\t\t\t\tnew ObjectNode(fieldName, fieldName, [], {}, {}, []).withField(\n\t\t\t\t\t\tnew FieldNode(targetEntity.primary, targetEntity.primary, {}),\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t},\n\t\t)\n\t\tconst dependencyEntries = Object.entries(dependency)\n\t\tif (dependencyEntries.length > 0) {\n\t\t\tif (!(newField instanceof ObjectNode) || !targetEntity) {\n\t\t\t\tthrow new Error(`Invalid path expression, trying to fetch field on non-relation`)\n\t\t\t}\n\t\t\tfor (const [fieldName, deps] of dependencyEntries) {\n\t\t\t\tnewField = (newField as ObjectNode).withField(this.createField(targetEntity, fieldName, deps))\n\t\t\t}\n\t\t}\n\t\treturn newField\n\t}\n}\n"],"names":["targetEntity","fieldName"],"mappings":";;;;AAKO,MAAM,gBAAgB;AAAA,EAC5B,YAA6B,OAAqB;AAArB,SAAA,QAAA;AAAA,EAAsB;AAAA,EAEnD,OAAO,YAAoB,cAAwC;AAClE,UAAM,SAAS,UAAU,KAAK,OAAO,UAAU;AAC/C,QAAI,OAAO,IAAI,WAAW,YAAY,YAAY,CAAA,GAAI,CAAI,GAAA,IAAI,CAAA,CAAE;AAChE,eAAW,CAAC,WAAW,IAAI,KAAK,OAAO,QAAQ,YAAY,GAAG;AAC7D,aAAO,KAAK,UAAU,KAAK,YAAY,QAAQ,WAAW,IAAI,CAAC;AAAA,IAChE;AACO,WAAA;AAAA,EACR;AAAA,EAEQ,YAAY,QAAsB,WAAmB,YAAkD;AAC1G,QAAA,CAAC,cAAc,QAAQ,IAAI;AAAA,MAC9B,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,QACC,aAAa,MAAM,CAAC,MAAM,IAAI,UAAU,WAAW,WAAW,CAAA,CAAE,CAAC;AAAA,QACjE,eAAe,CAAC,EAAE,cAAAA,oBAAmB;AAAA,UACpCA;AAAAA,UACA,IAAI,WAAW,WAAW,WAAW,CAAA,GAAI,CAAA,GAAI,CAAC,GAAG,CAAE,CAAA,EAAE;AAAA,YACpD,IAAI,UAAUA,cAAa,SAASA,cAAa,SAAS,CAAA,CAAE;AAAA,UAC7D;AAAA,QACD;AAAA,MACD;AAAA,IAAA;AAEK,UAAA,oBAAoB,OAAO,QAAQ,UAAU;AAC/C,QAAA,kBAAkB,SAAS,GAAG;AACjC,UAAI,EAAE,oBAAoB,eAAe,CAAC,cAAc;AACjD,cAAA,IAAI,MAAM,gEAAgE;AAAA,MACjF;AACA,iBAAW,CAACC,YAAW,IAAI,KAAK,mBAAmB;AAClD,mBAAY,SAAwB,UAAU,KAAK,YAAY,cAAcA,YAAW,IAAI,CAAC;AAAA,MAC9F;AAAA,IACD;AACO,WAAA;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"QueryAstFactory.js","sources":["../../../../../packages/engine-content-api/src/input-validation/QueryAstFactory.ts"],"sourcesContent":["import { acceptFieldVisitor, getEntity } from '@contember/schema-utils'\nimport { Model } from '@contember/schema'\nimport { Dependencies } from './dependencies'\nimport { FieldNode, ObjectNode } from '../inputProcessing'\n\nexport class QueryAstFactory {\n\tconstructor(private readonly model: Model.Schema) {}\n\n\tcreate(entityName: string, dependencies: Dependencies): ObjectNode {\n\t\tconst entity = getEntity(this.model, entityName)\n\t\tlet node = new ObjectNode(entityName, entityName, [], {}, {}, [])\n\t\tfor (const [fieldName, deps] of Object.entries(dependencies)) {\n\t\t\tnode = node.withField(this.createField(entity, fieldName, deps))\n\t\t}\n\t\treturn node\n\t}\n\n\tprivate createField(entity: Model.Entity, fieldName: string, dependency: Dependencies): ObjectNode | FieldNode {\n\t\tlet [targetEntity, newField] = acceptFieldVisitor<[Model.Entity | null, FieldNode | ObjectNode]>(\n\t\t\tthis.model,\n\t\t\tentity,\n\t\t\tfieldName,\n\t\t\t{\n\t\t\t\tvisitColumn: () => [null, new FieldNode(fieldName, fieldName, {})],\n\t\t\t\tvisitRelation: ({ targetEntity }) => [\n\t\t\t\t\ttargetEntity,\n\t\t\t\t\tnew ObjectNode(fieldName, fieldName, [], {}, {}, []).withField(\n\t\t\t\t\t\tnew FieldNode(targetEntity.primary, targetEntity.primary, {}),\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t},\n\t\t)\n\t\tconst dependencyEntries = Object.entries(dependency)\n\t\tif (dependencyEntries.length > 0) {\n\t\t\tif (!(newField instanceof ObjectNode) || !targetEntity) {\n\t\t\t\tthrow new Error(`Invalid path expression, trying to fetch field on non-relation`)\n\t\t\t}\n\t\t\tfor (const [fieldName, deps] of dependencyEntries) {\n\t\t\t\tnewField = (newField as ObjectNode).withField(this.createField(targetEntity, fieldName, deps))\n\t\t\t}\n\t\t}\n\t\treturn newField\n\t}\n}\n"],"names":["targetEntity","fieldName"],"mappings":";;;;AAKO,MAAM,gBAAgB;AAAA,EAC5B,YAA6B,OAAqB;AAArB,SAAA,QAAA;AAAA,EAAA;AAAA,EAE7B,OAAO,YAAoB,cAAwC;AAClE,UAAM,SAAS,UAAU,KAAK,OAAO,UAAU;AAC/C,QAAI,OAAO,IAAI,WAAW,YAAY,YAAY,IAAI,CAAA,GAAI,CAAI,GAAA,EAAE;AAChE,eAAW,CAAC,WAAW,IAAI,KAAK,OAAO,QAAQ,YAAY,GAAG;AAC7D,aAAO,KAAK,UAAU,KAAK,YAAY,QAAQ,WAAW,IAAI,CAAC;AAAA,IAAA;AAEzD,WAAA;AAAA,EAAA;AAAA,EAGA,YAAY,QAAsB,WAAmB,YAAkD;AAC1G,QAAA,CAAC,cAAc,QAAQ,IAAI;AAAA,MAC9B,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,QACC,aAAa,MAAM,CAAC,MAAM,IAAI,UAAU,WAAW,WAAW,CAAA,CAAE,CAAC;AAAA,QACjE,eAAe,CAAC,EAAE,cAAAA,oBAAmB;AAAA,UACpCA;AAAAA,UACA,IAAI,WAAW,WAAW,WAAW,CAAA,GAAI,CAAA,GAAI,CAAC,GAAG,CAAE,CAAA,EAAE;AAAA,YACpD,IAAI,UAAUA,cAAa,SAASA,cAAa,SAAS,CAAE,CAAA;AAAA,UAAA;AAAA,QAC7D;AAAA,MACD;AAAA,IAEF;AACM,UAAA,oBAAoB,OAAO,QAAQ,UAAU;AAC/C,QAAA,kBAAkB,SAAS,GAAG;AACjC,UAAI,EAAE,oBAAoB,eAAe,CAAC,cAAc;AACjD,cAAA,IAAI,MAAM,gEAAgE;AAAA,MAAA;AAEjF,iBAAW,CAACC,YAAW,IAAI,KAAK,mBAAmB;AAClD,mBAAY,SAAwB,UAAU,KAAK,YAAY,cAAcA,YAAW,IAAI,CAAC;AAAA,MAAA;AAAA,IAC9F;AAEM,WAAA;AAAA,EAAA;AAET;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationContext.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/ValidationContext.ts"],"sourcesContent":["import { Validation, Value } from '@contember/schema'\nimport { assertNever } from '../utils'\n\nnamespace ValidationContext {\n\texport type AnyContext = NodeContext | ValueContext | NodeListContext | UndefinedNodeContext\n\n\tinterface ValidationContext<Type extends NodeContextType> {\n\t\troot: NodeContext\n\t\ttype: Type\n\t}\n\n\texport type NodeType = Value.Object\n\texport type ValueType = Value.FieldValue | undefined\n\n\texport enum NodeContextType {\n\t\tvalue = 'value',\n\t\tnode = 'node',\n\t\tnodeList = 'nodeList',\n\t\tundefined = 'undefined',\n\t}\n\n\texport interface ContextWithNode {\n\t\tnode: NodeType\n\t}\n\n\texport interface NodeContext extends ValidationContext<NodeContextType.node>, ContextWithNode {}\n\n\texport interface UndefinedNodeContext extends ValidationContext<NodeContextType.undefined> {}\n\n\texport interface ValueContext extends ValidationContext<NodeContextType.value>, ContextWithNode {\n\t\tvalue: ValueType\n\t}\n\n\texport interface NodeListContext extends ValidationContext<NodeContextType.nodeList> {\n\t\tnodes: (NodeContext | ValueContext)[]\n\t}\n\n\texport const ensureNodeListContext = (context: AnyContext): NodeListContext => {\n\t\treturn context.type === NodeContextType.nodeList\n\t\t\t? context\n\t\t\t: createNodeListContext(context.root, context.type === NodeContextType.undefined ? [] : [context])\n\t}\n\n\texport const createNodeContext = (root: NodeContext, node: NodeType): NodeContext => ({\n\t\troot,\n\t\tnode,\n\t\ttype: NodeContextType.node,\n\t})\n\texport const createUndefinedNodeContext = (root: NodeContext): UndefinedNodeContext => ({\n\t\troot,\n\t\ttype: NodeContextType.undefined,\n\t})\n\texport const createValueContext = (root: NodeContext, node: NodeType, value: ValueType): ValueContext => ({\n\t\troot,\n\t\tnode,\n\t\tvalue,\n\t\ttype: NodeContextType.value,\n\t})\n\texport const createNodeListContext = (root: NodeContext, nodes: (NodeContext | ValueContext)[]): NodeListContext => ({\n\t\troot,\n\t\tnodes,\n\t\ttype: NodeContextType.nodeList,\n\t})\n\texport const createRootContext = (node: NodeType): NodeContext => {\n\t\tconst context: any = { node }\n\t\tcontext.root = context\n\t\treturn context\n\t}\n\n\texport const createSingleNodeContext = (\n\t\tparent: NodeContext | ValueContext,\n\t\tvalue: ValueType,\n\t): NodeContext | ValueContext => {\n\t\tif (Array.isArray(value)) {\n\t\t\tthrow new Error('Nested arrays are not allowed')\n\t\t}\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\treturn createNodeContext(parent.root, value as NodeType)\n\t\t}\n\t\treturn createValueContext(parent.root, parent.node, value)\n\t}\n\n\texport const createContext = (context: AnyContext, part: string): AnyContext => {\n\t\tif (context.type === NodeContextType.nodeList) {\n\t\t\tconst emptyContext: NodeListContext = {\n\t\t\t\troot: context.root,\n\t\t\t\tnodes: [],\n\t\t\t\ttype: NodeContextType.nodeList,\n\t\t\t}\n\t\t\treturn context.nodes\n\t\t\t\t.map(it => createContext(it, part))\n\t\t\t\t.map(it => ensureNodeListContext(it))\n\t\t\t\t.reduce<NodeListContext>(\n\t\t\t\t\t(acc, context) => createNodeListContext(acc.root, [...acc.nodes, ...context.nodes]),\n\t\t\t\t\temptyContext,\n\t\t\t\t)\n\t\t}\n\t\tif (context.type === NodeContextType.undefined) {\n\t\t\treturn context\n\t\t}\n\t\tif (typeof context.node[part] === 'undefined') {\n\t\t\treturn createUndefinedNodeContext(context.root)\n\t\t}\n\t\tconst value = context.node[part]\n\t\tif (Array.isArray(value)) {\n\t\t\treturn createNodeListContext(\n\t\t\t\tcontext.root,\n\t\t\t\tvalue.map(it => createSingleNodeContext(context, it)),\n\t\t\t)\n\t\t}\n\t\treturn createSingleNodeContext(context, value)\n\t}\n\n\texport const changeContext = (context: AnyContext, path: Validation.ContextPath): AnyContext => {\n\t\treturn path.reduce<AnyContext>((result, part) => {\n\t\t\treturn createContext(result, part)\n\t\t}, context)\n\t}\n\n\texport interface ContextVisitor<R> {\n\t\tvisitNodeListContext(context: NodeListContext): R\n\t\tvisitNodeContext(context: NodeContext): R\n\t\tvisitValueContext(context: ValueContext): R\n\t\tvisitUndefinedContext(context: UndefinedNodeContext): R\n\t}\n\n\texport const acceptContextVisitor = <R>(context: AnyContext, visitor: ContextVisitor<R>): R => {\n\t\tswitch (context.type) {\n\t\t\tcase ValidationContext.NodeContextType.node:\n\t\t\t\treturn visitor.visitNodeContext(context)\n\t\t\tcase ValidationContext.NodeContextType.nodeList:\n\t\t\t\treturn visitor.visitNodeListContext(context)\n\t\t\tcase ValidationContext.NodeContextType.value:\n\t\t\t\treturn visitor.visitValueContext(context)\n\t\t\tcase ValidationContext.NodeContextType.undefined:\n\t\t\t\treturn visitor.visitUndefinedContext(context)\n\t\t\tdefault:\n\t\t\t\tassertNever(context)\n\t\t}\n\t}\n}\n\nexport { ValidationContext }\n"],"names":["ValidationContext","NodeContextType","context","assertNever"],"mappings":"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"}
1
+ {"version":3,"file":"ValidationContext.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/ValidationContext.ts"],"sourcesContent":["import { Validation, Value } from '@contember/schema'\nimport { assertNever } from '../utils'\n\nnamespace ValidationContext {\n\texport type AnyContext = NodeContext | ValueContext | NodeListContext | UndefinedNodeContext\n\n\tinterface ValidationContext<Type extends NodeContextType> {\n\t\troot: NodeContext\n\t\ttype: Type\n\t}\n\n\texport type NodeType = Value.Object\n\texport type ValueType = Value.FieldValue | undefined\n\n\texport enum NodeContextType {\n\t\tvalue = 'value',\n\t\tnode = 'node',\n\t\tnodeList = 'nodeList',\n\t\tundefined = 'undefined',\n\t}\n\n\texport interface ContextWithNode {\n\t\tnode: NodeType\n\t}\n\n\texport interface NodeContext extends ValidationContext<NodeContextType.node>, ContextWithNode {}\n\n\texport interface UndefinedNodeContext extends ValidationContext<NodeContextType.undefined> {}\n\n\texport interface ValueContext extends ValidationContext<NodeContextType.value>, ContextWithNode {\n\t\tvalue: ValueType\n\t}\n\n\texport interface NodeListContext extends ValidationContext<NodeContextType.nodeList> {\n\t\tnodes: (NodeContext | ValueContext)[]\n\t}\n\n\texport const ensureNodeListContext = (context: AnyContext): NodeListContext => {\n\t\treturn context.type === NodeContextType.nodeList\n\t\t\t? context\n\t\t\t: createNodeListContext(context.root, context.type === NodeContextType.undefined ? [] : [context])\n\t}\n\n\texport const createNodeContext = (root: NodeContext, node: NodeType): NodeContext => ({\n\t\troot,\n\t\tnode,\n\t\ttype: NodeContextType.node,\n\t})\n\texport const createUndefinedNodeContext = (root: NodeContext): UndefinedNodeContext => ({\n\t\troot,\n\t\ttype: NodeContextType.undefined,\n\t})\n\texport const createValueContext = (root: NodeContext, node: NodeType, value: ValueType): ValueContext => ({\n\t\troot,\n\t\tnode,\n\t\tvalue,\n\t\ttype: NodeContextType.value,\n\t})\n\texport const createNodeListContext = (root: NodeContext, nodes: (NodeContext | ValueContext)[]): NodeListContext => ({\n\t\troot,\n\t\tnodes,\n\t\ttype: NodeContextType.nodeList,\n\t})\n\texport const createRootContext = (node: NodeType): NodeContext => {\n\t\tconst context: any = { node }\n\t\tcontext.root = context\n\t\treturn context\n\t}\n\n\texport const createSingleNodeContext = (\n\t\tparent: NodeContext | ValueContext,\n\t\tvalue: ValueType,\n\t): NodeContext | ValueContext => {\n\t\tif (Array.isArray(value)) {\n\t\t\tthrow new Error('Nested arrays are not allowed')\n\t\t}\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\treturn createNodeContext(parent.root, value as NodeType)\n\t\t}\n\t\treturn createValueContext(parent.root, parent.node, value)\n\t}\n\n\texport const createContext = (context: AnyContext, part: string): AnyContext => {\n\t\tif (context.type === NodeContextType.nodeList) {\n\t\t\tconst emptyContext: NodeListContext = {\n\t\t\t\troot: context.root,\n\t\t\t\tnodes: [],\n\t\t\t\ttype: NodeContextType.nodeList,\n\t\t\t}\n\t\t\treturn context.nodes\n\t\t\t\t.map(it => createContext(it, part))\n\t\t\t\t.map(it => ensureNodeListContext(it))\n\t\t\t\t.reduce<NodeListContext>(\n\t\t\t\t\t(acc, context) => createNodeListContext(acc.root, [...acc.nodes, ...context.nodes]),\n\t\t\t\t\temptyContext,\n\t\t\t\t)\n\t\t}\n\t\tif (context.type === NodeContextType.undefined) {\n\t\t\treturn context\n\t\t}\n\t\tif (typeof context.node[part] === 'undefined') {\n\t\t\treturn createUndefinedNodeContext(context.root)\n\t\t}\n\t\tconst value = context.node[part]\n\t\tif (Array.isArray(value)) {\n\t\t\treturn createNodeListContext(\n\t\t\t\tcontext.root,\n\t\t\t\tvalue.map(it => createSingleNodeContext(context, it)),\n\t\t\t)\n\t\t}\n\t\treturn createSingleNodeContext(context, value)\n\t}\n\n\texport const changeContext = (context: AnyContext, path: Validation.ContextPath): AnyContext => {\n\t\treturn path.reduce<AnyContext>((result, part) => {\n\t\t\treturn createContext(result, part)\n\t\t}, context)\n\t}\n\n\texport interface ContextVisitor<R> {\n\t\tvisitNodeListContext(context: NodeListContext): R\n\t\tvisitNodeContext(context: NodeContext): R\n\t\tvisitValueContext(context: ValueContext): R\n\t\tvisitUndefinedContext(context: UndefinedNodeContext): R\n\t}\n\n\texport const acceptContextVisitor = <R>(context: AnyContext, visitor: ContextVisitor<R>): R => {\n\t\tswitch (context.type) {\n\t\t\tcase ValidationContext.NodeContextType.node:\n\t\t\t\treturn visitor.visitNodeContext(context)\n\t\t\tcase ValidationContext.NodeContextType.nodeList:\n\t\t\t\treturn visitor.visitNodeListContext(context)\n\t\t\tcase ValidationContext.NodeContextType.value:\n\t\t\t\treturn visitor.visitValueContext(context)\n\t\t\tcase ValidationContext.NodeContextType.undefined:\n\t\t\t\treturn visitor.visitUndefinedContext(context)\n\t\t\tdefault:\n\t\t\t\tassertNever(context)\n\t\t}\n\t}\n}\n\nexport { ValidationContext }\n"],"names":["ValidationContext","NodeContextType","context","assertNever"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationContext.js","sources":["../../../../../packages/engine-content-api/src/input-validation/ValidationContext.ts"],"sourcesContent":["import { Validation, Value } from '@contember/schema'\nimport { assertNever } from '../utils'\n\nnamespace ValidationContext {\n\texport type AnyContext = NodeContext | ValueContext | NodeListContext | UndefinedNodeContext\n\n\tinterface ValidationContext<Type extends NodeContextType> {\n\t\troot: NodeContext\n\t\ttype: Type\n\t}\n\n\texport type NodeType = Value.Object\n\texport type ValueType = Value.FieldValue | undefined\n\n\texport enum NodeContextType {\n\t\tvalue = 'value',\n\t\tnode = 'node',\n\t\tnodeList = 'nodeList',\n\t\tundefined = 'undefined',\n\t}\n\n\texport interface ContextWithNode {\n\t\tnode: NodeType\n\t}\n\n\texport interface NodeContext extends ValidationContext<NodeContextType.node>, ContextWithNode {}\n\n\texport interface UndefinedNodeContext extends ValidationContext<NodeContextType.undefined> {}\n\n\texport interface ValueContext extends ValidationContext<NodeContextType.value>, ContextWithNode {\n\t\tvalue: ValueType\n\t}\n\n\texport interface NodeListContext extends ValidationContext<NodeContextType.nodeList> {\n\t\tnodes: (NodeContext | ValueContext)[]\n\t}\n\n\texport const ensureNodeListContext = (context: AnyContext): NodeListContext => {\n\t\treturn context.type === NodeContextType.nodeList\n\t\t\t? context\n\t\t\t: createNodeListContext(context.root, context.type === NodeContextType.undefined ? [] : [context])\n\t}\n\n\texport const createNodeContext = (root: NodeContext, node: NodeType): NodeContext => ({\n\t\troot,\n\t\tnode,\n\t\ttype: NodeContextType.node,\n\t})\n\texport const createUndefinedNodeContext = (root: NodeContext): UndefinedNodeContext => ({\n\t\troot,\n\t\ttype: NodeContextType.undefined,\n\t})\n\texport const createValueContext = (root: NodeContext, node: NodeType, value: ValueType): ValueContext => ({\n\t\troot,\n\t\tnode,\n\t\tvalue,\n\t\ttype: NodeContextType.value,\n\t})\n\texport const createNodeListContext = (root: NodeContext, nodes: (NodeContext | ValueContext)[]): NodeListContext => ({\n\t\troot,\n\t\tnodes,\n\t\ttype: NodeContextType.nodeList,\n\t})\n\texport const createRootContext = (node: NodeType): NodeContext => {\n\t\tconst context: any = { node }\n\t\tcontext.root = context\n\t\treturn context\n\t}\n\n\texport const createSingleNodeContext = (\n\t\tparent: NodeContext | ValueContext,\n\t\tvalue: ValueType,\n\t): NodeContext | ValueContext => {\n\t\tif (Array.isArray(value)) {\n\t\t\tthrow new Error('Nested arrays are not allowed')\n\t\t}\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\treturn createNodeContext(parent.root, value as NodeType)\n\t\t}\n\t\treturn createValueContext(parent.root, parent.node, value)\n\t}\n\n\texport const createContext = (context: AnyContext, part: string): AnyContext => {\n\t\tif (context.type === NodeContextType.nodeList) {\n\t\t\tconst emptyContext: NodeListContext = {\n\t\t\t\troot: context.root,\n\t\t\t\tnodes: [],\n\t\t\t\ttype: NodeContextType.nodeList,\n\t\t\t}\n\t\t\treturn context.nodes\n\t\t\t\t.map(it => createContext(it, part))\n\t\t\t\t.map(it => ensureNodeListContext(it))\n\t\t\t\t.reduce<NodeListContext>(\n\t\t\t\t\t(acc, context) => createNodeListContext(acc.root, [...acc.nodes, ...context.nodes]),\n\t\t\t\t\temptyContext,\n\t\t\t\t)\n\t\t}\n\t\tif (context.type === NodeContextType.undefined) {\n\t\t\treturn context\n\t\t}\n\t\tif (typeof context.node[part] === 'undefined') {\n\t\t\treturn createUndefinedNodeContext(context.root)\n\t\t}\n\t\tconst value = context.node[part]\n\t\tif (Array.isArray(value)) {\n\t\t\treturn createNodeListContext(\n\t\t\t\tcontext.root,\n\t\t\t\tvalue.map(it => createSingleNodeContext(context, it)),\n\t\t\t)\n\t\t}\n\t\treturn createSingleNodeContext(context, value)\n\t}\n\n\texport const changeContext = (context: AnyContext, path: Validation.ContextPath): AnyContext => {\n\t\treturn path.reduce<AnyContext>((result, part) => {\n\t\t\treturn createContext(result, part)\n\t\t}, context)\n\t}\n\n\texport interface ContextVisitor<R> {\n\t\tvisitNodeListContext(context: NodeListContext): R\n\t\tvisitNodeContext(context: NodeContext): R\n\t\tvisitValueContext(context: ValueContext): R\n\t\tvisitUndefinedContext(context: UndefinedNodeContext): R\n\t}\n\n\texport const acceptContextVisitor = <R>(context: AnyContext, visitor: ContextVisitor<R>): R => {\n\t\tswitch (context.type) {\n\t\t\tcase ValidationContext.NodeContextType.node:\n\t\t\t\treturn visitor.visitNodeContext(context)\n\t\t\tcase ValidationContext.NodeContextType.nodeList:\n\t\t\t\treturn visitor.visitNodeListContext(context)\n\t\t\tcase ValidationContext.NodeContextType.value:\n\t\t\t\treturn visitor.visitValueContext(context)\n\t\t\tcase ValidationContext.NodeContextType.undefined:\n\t\t\t\treturn visitor.visitUndefinedContext(context)\n\t\t\tdefault:\n\t\t\t\tassertNever(context)\n\t\t}\n\t}\n}\n\nexport { ValidationContext }\n"],"names":["ValidationContext","NodeContextType","context"],"mappings":"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"}
1
+ {"version":3,"file":"ValidationContext.js","sources":["../../../../../packages/engine-content-api/src/input-validation/ValidationContext.ts"],"sourcesContent":["import { Validation, Value } from '@contember/schema'\nimport { assertNever } from '../utils'\n\nnamespace ValidationContext {\n\texport type AnyContext = NodeContext | ValueContext | NodeListContext | UndefinedNodeContext\n\n\tinterface ValidationContext<Type extends NodeContextType> {\n\t\troot: NodeContext\n\t\ttype: Type\n\t}\n\n\texport type NodeType = Value.Object\n\texport type ValueType = Value.FieldValue | undefined\n\n\texport enum NodeContextType {\n\t\tvalue = 'value',\n\t\tnode = 'node',\n\t\tnodeList = 'nodeList',\n\t\tundefined = 'undefined',\n\t}\n\n\texport interface ContextWithNode {\n\t\tnode: NodeType\n\t}\n\n\texport interface NodeContext extends ValidationContext<NodeContextType.node>, ContextWithNode {}\n\n\texport interface UndefinedNodeContext extends ValidationContext<NodeContextType.undefined> {}\n\n\texport interface ValueContext extends ValidationContext<NodeContextType.value>, ContextWithNode {\n\t\tvalue: ValueType\n\t}\n\n\texport interface NodeListContext extends ValidationContext<NodeContextType.nodeList> {\n\t\tnodes: (NodeContext | ValueContext)[]\n\t}\n\n\texport const ensureNodeListContext = (context: AnyContext): NodeListContext => {\n\t\treturn context.type === NodeContextType.nodeList\n\t\t\t? context\n\t\t\t: createNodeListContext(context.root, context.type === NodeContextType.undefined ? [] : [context])\n\t}\n\n\texport const createNodeContext = (root: NodeContext, node: NodeType): NodeContext => ({\n\t\troot,\n\t\tnode,\n\t\ttype: NodeContextType.node,\n\t})\n\texport const createUndefinedNodeContext = (root: NodeContext): UndefinedNodeContext => ({\n\t\troot,\n\t\ttype: NodeContextType.undefined,\n\t})\n\texport const createValueContext = (root: NodeContext, node: NodeType, value: ValueType): ValueContext => ({\n\t\troot,\n\t\tnode,\n\t\tvalue,\n\t\ttype: NodeContextType.value,\n\t})\n\texport const createNodeListContext = (root: NodeContext, nodes: (NodeContext | ValueContext)[]): NodeListContext => ({\n\t\troot,\n\t\tnodes,\n\t\ttype: NodeContextType.nodeList,\n\t})\n\texport const createRootContext = (node: NodeType): NodeContext => {\n\t\tconst context: any = { node }\n\t\tcontext.root = context\n\t\treturn context\n\t}\n\n\texport const createSingleNodeContext = (\n\t\tparent: NodeContext | ValueContext,\n\t\tvalue: ValueType,\n\t): NodeContext | ValueContext => {\n\t\tif (Array.isArray(value)) {\n\t\t\tthrow new Error('Nested arrays are not allowed')\n\t\t}\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\treturn createNodeContext(parent.root, value as NodeType)\n\t\t}\n\t\treturn createValueContext(parent.root, parent.node, value)\n\t}\n\n\texport const createContext = (context: AnyContext, part: string): AnyContext => {\n\t\tif (context.type === NodeContextType.nodeList) {\n\t\t\tconst emptyContext: NodeListContext = {\n\t\t\t\troot: context.root,\n\t\t\t\tnodes: [],\n\t\t\t\ttype: NodeContextType.nodeList,\n\t\t\t}\n\t\t\treturn context.nodes\n\t\t\t\t.map(it => createContext(it, part))\n\t\t\t\t.map(it => ensureNodeListContext(it))\n\t\t\t\t.reduce<NodeListContext>(\n\t\t\t\t\t(acc, context) => createNodeListContext(acc.root, [...acc.nodes, ...context.nodes]),\n\t\t\t\t\temptyContext,\n\t\t\t\t)\n\t\t}\n\t\tif (context.type === NodeContextType.undefined) {\n\t\t\treturn context\n\t\t}\n\t\tif (typeof context.node[part] === 'undefined') {\n\t\t\treturn createUndefinedNodeContext(context.root)\n\t\t}\n\t\tconst value = context.node[part]\n\t\tif (Array.isArray(value)) {\n\t\t\treturn createNodeListContext(\n\t\t\t\tcontext.root,\n\t\t\t\tvalue.map(it => createSingleNodeContext(context, it)),\n\t\t\t)\n\t\t}\n\t\treturn createSingleNodeContext(context, value)\n\t}\n\n\texport const changeContext = (context: AnyContext, path: Validation.ContextPath): AnyContext => {\n\t\treturn path.reduce<AnyContext>((result, part) => {\n\t\t\treturn createContext(result, part)\n\t\t}, context)\n\t}\n\n\texport interface ContextVisitor<R> {\n\t\tvisitNodeListContext(context: NodeListContext): R\n\t\tvisitNodeContext(context: NodeContext): R\n\t\tvisitValueContext(context: ValueContext): R\n\t\tvisitUndefinedContext(context: UndefinedNodeContext): R\n\t}\n\n\texport const acceptContextVisitor = <R>(context: AnyContext, visitor: ContextVisitor<R>): R => {\n\t\tswitch (context.type) {\n\t\t\tcase ValidationContext.NodeContextType.node:\n\t\t\t\treturn visitor.visitNodeContext(context)\n\t\t\tcase ValidationContext.NodeContextType.nodeList:\n\t\t\t\treturn visitor.visitNodeListContext(context)\n\t\t\tcase ValidationContext.NodeContextType.value:\n\t\t\t\treturn visitor.visitValueContext(context)\n\t\t\tcase ValidationContext.NodeContextType.undefined:\n\t\t\t\treturn visitor.visitUndefinedContext(context)\n\t\t\tdefault:\n\t\t\t\tassertNever(context)\n\t\t}\n\t}\n}\n\nexport { ValidationContext }\n"],"names":["ValidationContext","NodeContextType","context"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationDataSelector.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/ValidationDataSelector.ts"],"sourcesContent":["import { QueryAstFactory } from './QueryAstFactory'\nimport { Mapper } from '../mapper'\nimport { Dependencies } from './dependencies'\nimport { Input, Model, Value } from '@contember/schema'\n\nexport class ValidationDataSelector {\n\tconstructor(private readonly model: Model.Schema, private readonly queryAstFactory: QueryAstFactory) {}\n\n\tpublic async getPrimaryValue(mapper: Mapper, entity: Model.Entity, where: Input.UniqueWhere) {\n\t\treturn mapper.getPrimaryValue(entity, where)\n\t}\n\n\tpublic async select(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\twhere: Input.UniqueWhere,\n\t\tdependencies: Dependencies,\n\t): Promise<Value.Object | null> {\n\t\tif (Object.keys(dependencies).length === 0) {\n\t\t\treturn {}\n\t\t}\n\t\tconst queryAst = this.queryAstFactory.create(entity.name, dependencies).withArg('by', where)\n\t\tconst node = await mapper.selectUnique(entity, queryAst, [])\n\t\tif (!node) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn node\n\t}\n}\n"],"names":[],"mappings":";;AAKO,MAAM,uBAAuB;AAAA,EACnC,YAA6B,OAAsC,iBAAkC;AAAxE,SAAA,QAAA;AAAsC,SAAA,kBAAA;AAAA,EAAmC;AAAA,EAEtG,MAAa,gBAAgB,QAAgB,QAAsB,OAA0B;AACrF,WAAA,OAAO,gBAAgB,QAAQ,KAAK;AAAA,EAC5C;AAAA,EAEA,MAAa,OACZ,QACA,QACA,OACA,cAC+B;AAC/B,QAAI,OAAO,KAAK,YAAY,EAAE,WAAW,GAAG;AAC3C,aAAO;IACR;AACM,UAAA,WAAW,KAAK,gBAAgB,OAAO,OAAO,MAAM,YAAY,EAAE,QAAQ,MAAM,KAAK;AAC3F,UAAM,OAAO,MAAM,OAAO,aAAa,QAAQ,UAAU,CAAA,CAAE;AAC3D,QAAI,CAAC,MAAM;AACH,aAAA;AAAA,IACR;AAEO,WAAA;AAAA,EACR;AACD;;"}
1
+ {"version":3,"file":"ValidationDataSelector.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/ValidationDataSelector.ts"],"sourcesContent":["import { QueryAstFactory } from './QueryAstFactory'\nimport { Mapper } from '../mapper'\nimport { Dependencies } from './dependencies'\nimport { Input, Model, Value } from '@contember/schema'\n\nexport class ValidationDataSelector {\n\tconstructor(private readonly model: Model.Schema, private readonly queryAstFactory: QueryAstFactory) {}\n\n\tpublic async getPrimaryValue(mapper: Mapper, entity: Model.Entity, where: Input.UniqueWhere) {\n\t\treturn mapper.getPrimaryValue(entity, where)\n\t}\n\n\tpublic async select(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\twhere: Input.UniqueWhere,\n\t\tdependencies: Dependencies,\n\t): Promise<Value.Object | null> {\n\t\tif (Object.keys(dependencies).length === 0) {\n\t\t\treturn {}\n\t\t}\n\t\tconst queryAst = this.queryAstFactory.create(entity.name, dependencies).withArg('by', where)\n\t\tconst node = await mapper.selectUnique(entity, queryAst, [])\n\t\tif (!node) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn node\n\t}\n}\n"],"names":[],"mappings":";;AAKO,MAAM,uBAAuB;AAAA,EACnC,YAA6B,OAAsC,iBAAkC;AAAxE,SAAA,QAAA;AAAsC,SAAA,kBAAA;AAAA,EAAA;AAAA,EAEnE,MAAa,gBAAgB,QAAgB,QAAsB,OAA0B;AACrF,WAAA,OAAO,gBAAgB,QAAQ,KAAK;AAAA,EAAA;AAAA,EAG5C,MAAa,OACZ,QACA,QACA,OACA,cAC+B;AAC/B,QAAI,OAAO,KAAK,YAAY,EAAE,WAAW,GAAG;AAC3C,aAAO,CAAC;AAAA,IAAA;AAEH,UAAA,WAAW,KAAK,gBAAgB,OAAO,OAAO,MAAM,YAAY,EAAE,QAAQ,MAAM,KAAK;AAC3F,UAAM,OAAO,MAAM,OAAO,aAAa,QAAQ,UAAU,EAAE;AAC3D,QAAI,CAAC,MAAM;AACH,aAAA;AAAA,IAAA;AAGD,WAAA;AAAA,EAAA;AAET;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationDataSelector.js","sources":["../../../../../packages/engine-content-api/src/input-validation/ValidationDataSelector.ts"],"sourcesContent":["import { QueryAstFactory } from './QueryAstFactory'\nimport { Mapper } from '../mapper'\nimport { Dependencies } from './dependencies'\nimport { Input, Model, Value } from '@contember/schema'\n\nexport class ValidationDataSelector {\n\tconstructor(private readonly model: Model.Schema, private readonly queryAstFactory: QueryAstFactory) {}\n\n\tpublic async getPrimaryValue(mapper: Mapper, entity: Model.Entity, where: Input.UniqueWhere) {\n\t\treturn mapper.getPrimaryValue(entity, where)\n\t}\n\n\tpublic async select(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\twhere: Input.UniqueWhere,\n\t\tdependencies: Dependencies,\n\t): Promise<Value.Object | null> {\n\t\tif (Object.keys(dependencies).length === 0) {\n\t\t\treturn {}\n\t\t}\n\t\tconst queryAst = this.queryAstFactory.create(entity.name, dependencies).withArg('by', where)\n\t\tconst node = await mapper.selectUnique(entity, queryAst, [])\n\t\tif (!node) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn node\n\t}\n}\n"],"names":[],"mappings":"AAKO,MAAM,uBAAuB;AAAA,EACnC,YAA6B,OAAsC,iBAAkC;AAAxE,SAAA,QAAA;AAAsC,SAAA,kBAAA;AAAA,EAAmC;AAAA,EAEtG,MAAa,gBAAgB,QAAgB,QAAsB,OAA0B;AACrF,WAAA,OAAO,gBAAgB,QAAQ,KAAK;AAAA,EAC5C;AAAA,EAEA,MAAa,OACZ,QACA,QACA,OACA,cAC+B;AAC/B,QAAI,OAAO,KAAK,YAAY,EAAE,WAAW,GAAG;AAC3C,aAAO;IACR;AACM,UAAA,WAAW,KAAK,gBAAgB,OAAO,OAAO,MAAM,YAAY,EAAE,QAAQ,MAAM,KAAK;AAC3F,UAAM,OAAO,MAAM,OAAO,aAAa,QAAQ,UAAU,CAAA,CAAE;AAC3D,QAAI,CAAC,MAAM;AACH,aAAA;AAAA,IACR;AAEO,WAAA;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"ValidationDataSelector.js","sources":["../../../../../packages/engine-content-api/src/input-validation/ValidationDataSelector.ts"],"sourcesContent":["import { QueryAstFactory } from './QueryAstFactory'\nimport { Mapper } from '../mapper'\nimport { Dependencies } from './dependencies'\nimport { Input, Model, Value } from '@contember/schema'\n\nexport class ValidationDataSelector {\n\tconstructor(private readonly model: Model.Schema, private readonly queryAstFactory: QueryAstFactory) {}\n\n\tpublic async getPrimaryValue(mapper: Mapper, entity: Model.Entity, where: Input.UniqueWhere) {\n\t\treturn mapper.getPrimaryValue(entity, where)\n\t}\n\n\tpublic async select(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\twhere: Input.UniqueWhere,\n\t\tdependencies: Dependencies,\n\t): Promise<Value.Object | null> {\n\t\tif (Object.keys(dependencies).length === 0) {\n\t\t\treturn {}\n\t\t}\n\t\tconst queryAst = this.queryAstFactory.create(entity.name, dependencies).withArg('by', where)\n\t\tconst node = await mapper.selectUnique(entity, queryAst, [])\n\t\tif (!node) {\n\t\t\treturn null\n\t\t}\n\n\t\treturn node\n\t}\n}\n"],"names":[],"mappings":"AAKO,MAAM,uBAAuB;AAAA,EACnC,YAA6B,OAAsC,iBAAkC;AAAxE,SAAA,QAAA;AAAsC,SAAA,kBAAA;AAAA,EAAA;AAAA,EAEnE,MAAa,gBAAgB,QAAgB,QAAsB,OAA0B;AACrF,WAAA,OAAO,gBAAgB,QAAQ,KAAK;AAAA,EAAA;AAAA,EAG5C,MAAa,OACZ,QACA,QACA,OACA,cAC+B;AAC/B,QAAI,OAAO,KAAK,YAAY,EAAE,WAAW,GAAG;AAC3C,aAAO,CAAC;AAAA,IAAA;AAEH,UAAA,WAAW,KAAK,gBAAgB,OAAO,OAAO,MAAM,YAAY,EAAE,QAAQ,MAAM,KAAK;AAC3F,UAAM,OAAO,MAAM,OAAO,aAAa,QAAQ,UAAU,EAAE;AAC3D,QAAI,CAAC,MAAM;AACH,aAAA;AAAA,IAAA;AAGD,WAAA;AAAA,EAAA;AAET;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationEvaluation.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/ValidationEvaluation.ts"],"sourcesContent":["import { Validation } from '@contember/schema'\nimport { ValidationContext } from './ValidationContext'\nimport acceptContextVisitor = ValidationContext.acceptContextVisitor\nimport NodeContextType = ValidationContext.NodeContextType\n\nconst getValueOrLiteral = (\n\tcontext: ValidationContext.AnyContext,\n\targument: Validation.PathArgument | Validation.LiteralArgument,\n): any => {\n\tif (argument.type === Validation.ArgumentType.literal) {\n\t\treturn argument.value\n\t}\n\treturn getValueFromContext(argument.path ? ValidationContext.changeContext(context, argument.path) : context)\n}\n\nconst getValueFromContext = (context: ValidationContext.AnyContext): ValidationContext.ValueType | undefined => {\n\tif (context.type === NodeContextType.undefined) {\n\t\treturn undefined\n\t}\n\tif (context.type !== NodeContextType.value) {\n\t\tthrow new Error('ValueContext is required')\n\t}\n\treturn context.value\n}\n\nexport const evaluateValidation = (\n\tcontext: ValidationContext.AnyContext,\n\tvalidator: Validation.Validator,\n): boolean | null => {\n\treturn validatorEvaluators[validator.operation](context, ...(validator.args as any[]))\n}\n\nconst fixedResult = (value: null | boolean) => () => value\n\nconst cannotApplyOnNode = (validationName: string, contextType: string) => () => {\n\tthrow new Error(`Cannot apply ${validationName} in ${contextType} context`)\n}\n\nconst trinaryOr = (values: Iterable<boolean | null>) => {\n\tlet result: null | false = false\n\tfor (const val of values) {\n\t\tif (val === true) {\n\t\t\treturn true\n\t\t}\n\t\tif (val === null) {\n\t\t\tresult = null\n\t\t}\n\t}\n\treturn result\n}\nconst trinaryAnd = (values: Iterable<boolean | null>) => {\n\tlet result: null | true = true\n\tfor (const val of values) {\n\t\tif (val === false) {\n\t\t\treturn false\n\t\t}\n\t\tif (val === null) {\n\t\t\tresult = null\n\t\t}\n\t}\n\treturn result\n}\n\nfunction* validatorListEval(context: ValidationContext.AnyContext, validators: Validation.ValidatorArgument[]) {\n\tfor (const val of validators) {\n\t\tyield evaluateValidation(context, val.validator)\n\t}\n}\n\nfunction* nodeListEval(context: ValidationContext.NodeListContext, { validator }: Validation.ValidatorArgument) {\n\tfor (const node of context.nodes) {\n\t\tyield evaluateValidation(node, validator)\n\t}\n}\n\nconst validatorEvaluators: {\n\t[K in keyof Validation.ValidatorArguments]: (\n\t\tcontext: ValidationContext.AnyContext,\n\t\t...args: Validation.ValidatorArguments[K]\n\t) => boolean | null\n} = {\n\tempty: (context: ValidationContext.AnyContext) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: fixedResult(false),\n\t\t\tvisitNodeListContext: (context: ValidationContext.NodeListContext) => context.nodes.length === 0,\n\t\t\tvisitValueContext: (context: ValidationContext.ValueContext) =>\n\t\t\t\tcontext.value === undefined || context.value === null || context.value === '',\n\t\t\tvisitUndefinedContext: fixedResult(true),\n\t\t})\n\t},\n\tdefined: (context: ValidationContext.AnyContext) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: fixedResult(true),\n\t\t\tvisitNodeListContext: fixedResult(true),\n\t\t\tvisitValueContext: (context: ValidationContext.ValueContext) =>\n\t\t\t\tcontext.value !== undefined && context.value !== null,\n\t\t\tvisitUndefinedContext: fixedResult(false),\n\t\t})\n\t},\n\tpattern: (context: ValidationContext.AnyContext, patternArgument: Validation.LiteralArgument<readonly [string, string]>) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: cannotApplyOnNode('pattern', 'node'),\n\t\t\tvisitNodeListContext: cannotApplyOnNode('pattern', 'node list'),\n\t\t\tvisitValueContext: (context: ValidationContext.ValueContext) => {\n\t\t\t\tif (context.value === undefined || context.value === null) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tif (typeof context.value !== 'string') {\n\t\t\t\t\tthrow new Error(`Cannot apply pattern validation on ${typeof context.value}`)\n\t\t\t\t}\n\t\t\t\treturn new RegExp(patternArgument.value[0], patternArgument.value[1]).test(context.value)\n\t\t\t},\n\t\t\tvisitUndefinedContext: fixedResult(null),\n\t\t})\n\t},\n\tequals: (context: ValidationContext.AnyContext, other: Validation.LiteralArgument | Validation.PathArgument) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: cannotApplyOnNode('equals', 'node'),\n\t\t\tvisitNodeListContext: cannotApplyOnNode('equals', 'node list'),\n\t\t\tvisitValueContext: (context: ValidationContext.ValueContext) => {\n\t\t\t\tconst otherValue = getValueOrLiteral(context, other)\n\t\t\t\tif (otherValue === null) {\n\t\t\t\t\treturn context.value === otherValue\n\t\t\t\t}\n\t\t\t\tif (context.value === null || context.value === undefined) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\treturn context.value === otherValue\n\t\t\t},\n\t\t\tvisitUndefinedContext: fixedResult(null),\n\t\t})\n\t},\n\tlengthRange: (\n\t\tcontext: ValidationContext.AnyContext,\n\t\tmin: Validation.LiteralArgument<number | null>,\n\t\tmax: Validation.LiteralArgument<number | null>,\n\t) => {\n\t\tconst doesMatchRange = (value: number) =>\n\t\t\t(min.value === null || min.value <= value) && (max.value === null || max.value >= value)\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: cannotApplyOnNode('length range', 'node'),\n\t\t\tvisitNodeListContext: (context: ValidationContext.NodeListContext) => {\n\t\t\t\treturn doesMatchRange(context.nodes.length)\n\t\t\t},\n\t\t\tvisitValueContext: (context: ValidationContext.ValueContext) => {\n\t\t\t\tif (context.value === null || context.value === undefined) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\treturn doesMatchRange(String(context.value).length)\n\t\t\t},\n\t\t\tvisitUndefinedContext: fixedResult(null),\n\t\t})\n\t},\n\trange: (\n\t\tcontext: ValidationContext.AnyContext,\n\t\tmin: Validation.LiteralArgument<number | null>,\n\t\tmax: Validation.LiteralArgument<number | null>,\n\t) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: cannotApplyOnNode('range', 'node'),\n\t\t\tvisitNodeListContext: cannotApplyOnNode('range', 'node list'),\n\t\t\tvisitValueContext: (context: ValidationContext.ValueContext) => {\n\t\t\t\tif (context.value === null || context.value === undefined) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tif (typeof context.value !== 'number') {\n\t\t\t\t\tthrow new Error(`Cannot apply range validation on ${typeof context.value}`)\n\t\t\t\t}\n\t\t\t\treturn (min.value === null || min.value <= context.value) && (max.value === null || max.value >= context.value)\n\t\t\t},\n\t\t\tvisitUndefinedContext: fixedResult(null),\n\t\t})\n\t},\n\tnot: (context: ValidationContext.AnyContext, { validator }: Validation.ValidatorArgument) => {\n\t\tconst result = evaluateValidation(context, validator)\n\t\tif (result === null) {\n\t\t\treturn null\n\t\t}\n\t\treturn !result\n\t},\n\tconditional: (\n\t\tcontext: ValidationContext.AnyContext,\n\t\t{ validator: condition }: Validation.ValidatorArgument,\n\t\t{ validator: rule }: Validation.ValidatorArgument,\n\t) => {\n\t\tconst conditionResult = evaluateValidation(context, condition)\n\t\tif (conditionResult === null) {\n\t\t\treturn null\n\t\t}\n\t\tif (!conditionResult) {\n\t\t\treturn true\n\t\t}\n\t\tconst ruleResult = evaluateValidation(context, rule)\n\t\treturn ruleResult\n\t},\n\tand: (context: ValidationContext.AnyContext, ...values: Validation.ValidatorArgument[]) => {\n\t\treturn trinaryAnd(validatorListEval(context, values))\n\t},\n\tor: (context: ValidationContext.AnyContext, ...values: Validation.ValidatorArgument[]) => {\n\t\treturn trinaryOr(validatorListEval(context, values))\n\t},\n\tinContext: (\n\t\tcontext: ValidationContext.AnyContext,\n\t\tcontextArg: Validation.PathArgument,\n\t\t{ validator }: Validation.ValidatorArgument,\n\t) => {\n\t\treturn evaluateValidation(ValidationContext.changeContext(context, contextArg.path), validator)\n\t},\n\n\tevery: (context: ValidationContext.AnyContext, arg: Validation.ValidatorArgument) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: cannotApplyOnNode('every', 'node'),\n\t\t\tvisitNodeListContext: context => trinaryAnd(nodeListEval(context, arg)),\n\t\t\tvisitValueContext: cannotApplyOnNode('every', 'value'),\n\t\t\tvisitUndefinedContext: fixedResult(null),\n\t\t})\n\t},\n\tany: (context: ValidationContext.AnyContext, arg: Validation.ValidatorArgument) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: cannotApplyOnNode('any', 'node'),\n\t\t\tvisitNodeListContext: context => trinaryOr(nodeListEval(context, arg)),\n\t\t\tvisitValueContext: cannotApplyOnNode('any', 'value'),\n\t\t\tvisitUndefinedContext: fixedResult(null),\n\t\t})\n\t},\n\tfilter: (\n\t\tcontext: ValidationContext.AnyContext,\n\t\t{ validator: filter }: Validation.ValidatorArgument,\n\t\t{ validator }: Validation.ValidatorArgument,\n\t) => {\n\t\tif (context.type !== NodeContextType.nodeList) {\n\t\t\tthrow new Error('NodeListContext expected for \"filter\" operation')\n\t\t}\n\t\tconst filteredContext = ValidationContext.createNodeListContext(\n\t\t\tcontext.root,\n\t\t\tcontext.nodes.filter(it => evaluateValidation(it, filter) !== false),\n\t\t)\n\t\treturn evaluateValidation(filteredContext, validator)\n\t},\n}\n"],"names":["ValidationContext","Validation","context"],"mappings":"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"}
1
+ {"version":3,"file":"ValidationEvaluation.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/ValidationEvaluation.ts"],"sourcesContent":["import { Validation } from '@contember/schema'\nimport { ValidationContext } from './ValidationContext'\nimport acceptContextVisitor = ValidationContext.acceptContextVisitor\nimport NodeContextType = ValidationContext.NodeContextType\n\nconst getValueOrLiteral = (\n\tcontext: ValidationContext.AnyContext,\n\targument: Validation.PathArgument | Validation.LiteralArgument,\n): any => {\n\tif (argument.type === Validation.ArgumentType.literal) {\n\t\treturn argument.value\n\t}\n\treturn getValueFromContext(argument.path ? ValidationContext.changeContext(context, argument.path) : context)\n}\n\nconst getValueFromContext = (context: ValidationContext.AnyContext): ValidationContext.ValueType | undefined => {\n\tif (context.type === NodeContextType.undefined) {\n\t\treturn undefined\n\t}\n\tif (context.type !== NodeContextType.value) {\n\t\tthrow new Error('ValueContext is required')\n\t}\n\treturn context.value\n}\n\nexport const evaluateValidation = (\n\tcontext: ValidationContext.AnyContext,\n\tvalidator: Validation.Validator,\n): boolean | null => {\n\treturn validatorEvaluators[validator.operation](context, ...(validator.args as any[]))\n}\n\nconst fixedResult = (value: null | boolean) => () => value\n\nconst cannotApplyOnNode = (validationName: string, contextType: string) => () => {\n\tthrow new Error(`Cannot apply ${validationName} in ${contextType} context`)\n}\n\nconst trinaryOr = (values: Iterable<boolean | null>) => {\n\tlet result: null | false = false\n\tfor (const val of values) {\n\t\tif (val === true) {\n\t\t\treturn true\n\t\t}\n\t\tif (val === null) {\n\t\t\tresult = null\n\t\t}\n\t}\n\treturn result\n}\nconst trinaryAnd = (values: Iterable<boolean | null>) => {\n\tlet result: null | true = true\n\tfor (const val of values) {\n\t\tif (val === false) {\n\t\t\treturn false\n\t\t}\n\t\tif (val === null) {\n\t\t\tresult = null\n\t\t}\n\t}\n\treturn result\n}\n\nfunction* validatorListEval(context: ValidationContext.AnyContext, validators: Validation.ValidatorArgument[]) {\n\tfor (const val of validators) {\n\t\tyield evaluateValidation(context, val.validator)\n\t}\n}\n\nfunction* nodeListEval(context: ValidationContext.NodeListContext, { validator }: Validation.ValidatorArgument) {\n\tfor (const node of context.nodes) {\n\t\tyield evaluateValidation(node, validator)\n\t}\n}\n\nconst validatorEvaluators: {\n\t[K in keyof Validation.ValidatorArguments]: (\n\t\tcontext: ValidationContext.AnyContext,\n\t\t...args: Validation.ValidatorArguments[K]\n\t) => boolean | null\n} = {\n\tempty: (context: ValidationContext.AnyContext) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: fixedResult(false),\n\t\t\tvisitNodeListContext: (context: ValidationContext.NodeListContext) => context.nodes.length === 0,\n\t\t\tvisitValueContext: (context: ValidationContext.ValueContext) =>\n\t\t\t\tcontext.value === undefined || context.value === null || context.value === '',\n\t\t\tvisitUndefinedContext: fixedResult(true),\n\t\t})\n\t},\n\tdefined: (context: ValidationContext.AnyContext) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: fixedResult(true),\n\t\t\tvisitNodeListContext: fixedResult(true),\n\t\t\tvisitValueContext: (context: ValidationContext.ValueContext) =>\n\t\t\t\tcontext.value !== undefined && context.value !== null,\n\t\t\tvisitUndefinedContext: fixedResult(false),\n\t\t})\n\t},\n\tpattern: (context: ValidationContext.AnyContext, patternArgument: Validation.LiteralArgument<readonly [string, string]>) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: cannotApplyOnNode('pattern', 'node'),\n\t\t\tvisitNodeListContext: cannotApplyOnNode('pattern', 'node list'),\n\t\t\tvisitValueContext: (context: ValidationContext.ValueContext) => {\n\t\t\t\tif (context.value === undefined || context.value === null) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tif (typeof context.value !== 'string') {\n\t\t\t\t\tthrow new Error(`Cannot apply pattern validation on ${typeof context.value}`)\n\t\t\t\t}\n\t\t\t\treturn new RegExp(patternArgument.value[0], patternArgument.value[1]).test(context.value)\n\t\t\t},\n\t\t\tvisitUndefinedContext: fixedResult(null),\n\t\t})\n\t},\n\tequals: (context: ValidationContext.AnyContext, other: Validation.LiteralArgument | Validation.PathArgument) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: cannotApplyOnNode('equals', 'node'),\n\t\t\tvisitNodeListContext: cannotApplyOnNode('equals', 'node list'),\n\t\t\tvisitValueContext: (context: ValidationContext.ValueContext) => {\n\t\t\t\tconst otherValue = getValueOrLiteral(context, other)\n\t\t\t\tif (otherValue === null) {\n\t\t\t\t\treturn context.value === otherValue\n\t\t\t\t}\n\t\t\t\tif (context.value === null || context.value === undefined) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\treturn context.value === otherValue\n\t\t\t},\n\t\t\tvisitUndefinedContext: fixedResult(null),\n\t\t})\n\t},\n\tlengthRange: (\n\t\tcontext: ValidationContext.AnyContext,\n\t\tmin: Validation.LiteralArgument<number | null>,\n\t\tmax: Validation.LiteralArgument<number | null>,\n\t) => {\n\t\tconst doesMatchRange = (value: number) =>\n\t\t\t(min.value === null || min.value <= value) && (max.value === null || max.value >= value)\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: cannotApplyOnNode('length range', 'node'),\n\t\t\tvisitNodeListContext: (context: ValidationContext.NodeListContext) => {\n\t\t\t\treturn doesMatchRange(context.nodes.length)\n\t\t\t},\n\t\t\tvisitValueContext: (context: ValidationContext.ValueContext) => {\n\t\t\t\tif (context.value === null || context.value === undefined) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\treturn doesMatchRange(String(context.value).length)\n\t\t\t},\n\t\t\tvisitUndefinedContext: fixedResult(null),\n\t\t})\n\t},\n\trange: (\n\t\tcontext: ValidationContext.AnyContext,\n\t\tmin: Validation.LiteralArgument<number | null>,\n\t\tmax: Validation.LiteralArgument<number | null>,\n\t) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: cannotApplyOnNode('range', 'node'),\n\t\t\tvisitNodeListContext: cannotApplyOnNode('range', 'node list'),\n\t\t\tvisitValueContext: (context: ValidationContext.ValueContext) => {\n\t\t\t\tif (context.value === null || context.value === undefined) {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\tif (typeof context.value !== 'number') {\n\t\t\t\t\tthrow new Error(`Cannot apply range validation on ${typeof context.value}`)\n\t\t\t\t}\n\t\t\t\treturn (min.value === null || min.value <= context.value) && (max.value === null || max.value >= context.value)\n\t\t\t},\n\t\t\tvisitUndefinedContext: fixedResult(null),\n\t\t})\n\t},\n\tnot: (context: ValidationContext.AnyContext, { validator }: Validation.ValidatorArgument) => {\n\t\tconst result = evaluateValidation(context, validator)\n\t\tif (result === null) {\n\t\t\treturn null\n\t\t}\n\t\treturn !result\n\t},\n\tconditional: (\n\t\tcontext: ValidationContext.AnyContext,\n\t\t{ validator: condition }: Validation.ValidatorArgument,\n\t\t{ validator: rule }: Validation.ValidatorArgument,\n\t) => {\n\t\tconst conditionResult = evaluateValidation(context, condition)\n\t\tif (conditionResult === null) {\n\t\t\treturn null\n\t\t}\n\t\tif (!conditionResult) {\n\t\t\treturn true\n\t\t}\n\t\tconst ruleResult = evaluateValidation(context, rule)\n\t\treturn ruleResult\n\t},\n\tand: (context: ValidationContext.AnyContext, ...values: Validation.ValidatorArgument[]) => {\n\t\treturn trinaryAnd(validatorListEval(context, values))\n\t},\n\tor: (context: ValidationContext.AnyContext, ...values: Validation.ValidatorArgument[]) => {\n\t\treturn trinaryOr(validatorListEval(context, values))\n\t},\n\tinContext: (\n\t\tcontext: ValidationContext.AnyContext,\n\t\tcontextArg: Validation.PathArgument,\n\t\t{ validator }: Validation.ValidatorArgument,\n\t) => {\n\t\treturn evaluateValidation(ValidationContext.changeContext(context, contextArg.path), validator)\n\t},\n\n\tevery: (context: ValidationContext.AnyContext, arg: Validation.ValidatorArgument) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: cannotApplyOnNode('every', 'node'),\n\t\t\tvisitNodeListContext: context => trinaryAnd(nodeListEval(context, arg)),\n\t\t\tvisitValueContext: cannotApplyOnNode('every', 'value'),\n\t\t\tvisitUndefinedContext: fixedResult(null),\n\t\t})\n\t},\n\tany: (context: ValidationContext.AnyContext, arg: Validation.ValidatorArgument) => {\n\t\treturn acceptContextVisitor(context, {\n\t\t\tvisitNodeContext: cannotApplyOnNode('any', 'node'),\n\t\t\tvisitNodeListContext: context => trinaryOr(nodeListEval(context, arg)),\n\t\t\tvisitValueContext: cannotApplyOnNode('any', 'value'),\n\t\t\tvisitUndefinedContext: fixedResult(null),\n\t\t})\n\t},\n\tfilter: (\n\t\tcontext: ValidationContext.AnyContext,\n\t\t{ validator: filter }: Validation.ValidatorArgument,\n\t\t{ validator }: Validation.ValidatorArgument,\n\t) => {\n\t\tif (context.type !== NodeContextType.nodeList) {\n\t\t\tthrow new Error('NodeListContext expected for \"filter\" operation')\n\t\t}\n\t\tconst filteredContext = ValidationContext.createNodeListContext(\n\t\t\tcontext.root,\n\t\t\tcontext.nodes.filter(it => evaluateValidation(it, filter) !== false),\n\t\t)\n\t\treturn evaluateValidation(filteredContext, validator)\n\t},\n}\n"],"names":["ValidationContext","Validation","context"],"mappings":"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"}