@contember/engine-content-api 2.0.2 → 2.1.0-alpha.10

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 (298) hide show
  1. package/dist/development/index.cjs +1 -0
  2. package/dist/development/index.cjs.map +1 -1
  3. package/dist/development/index.js +1 -0
  4. package/dist/development/index.js.map +1 -1
  5. package/dist/development/src/ExecutionContainer.cjs +6 -4
  6. package/dist/development/src/ExecutionContainer.cjs.map +1 -1
  7. package/dist/development/src/ExecutionContainer.js +6 -4
  8. package/dist/development/src/ExecutionContainer.js.map +1 -1
  9. package/dist/development/src/acl/Authorizator.cjs +5 -1
  10. package/dist/development/src/acl/Authorizator.cjs.map +1 -1
  11. package/dist/development/src/acl/Authorizator.js +5 -1
  12. package/dist/development/src/acl/Authorizator.js.map +1 -1
  13. package/dist/development/src/input-validation/ColumnValueResolver.cjs +1 -1
  14. package/dist/development/src/input-validation/ColumnValueResolver.cjs.map +1 -1
  15. package/dist/development/src/input-validation/ColumnValueResolver.js +1 -1
  16. package/dist/development/src/input-validation/ColumnValueResolver.js.map +1 -1
  17. package/dist/development/src/input-validation/dependencies/DependencyCollector.cjs +3 -0
  18. package/dist/development/src/input-validation/dependencies/DependencyCollector.cjs.map +1 -1
  19. package/dist/development/src/input-validation/dependencies/DependencyCollector.js +3 -0
  20. package/dist/development/src/input-validation/dependencies/DependencyCollector.js.map +1 -1
  21. package/dist/development/src/mapper/Mapper.cjs +1 -0
  22. package/dist/development/src/mapper/Mapper.cjs.map +1 -1
  23. package/dist/development/src/mapper/Mapper.js +1 -0
  24. package/dist/development/src/mapper/Mapper.js.map +1 -1
  25. package/dist/development/src/mapper/insert/Inserter.cjs +3 -2
  26. package/dist/development/src/mapper/insert/Inserter.cjs.map +1 -1
  27. package/dist/development/src/mapper/insert/Inserter.js +3 -2
  28. package/dist/development/src/mapper/insert/Inserter.js.map +1 -1
  29. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs +3 -2
  30. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
  31. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js +3 -2
  32. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  33. package/dist/development/src/mapper/select/ConditionBuilder.cjs +9 -2
  34. package/dist/development/src/mapper/select/ConditionBuilder.cjs.map +1 -1
  35. package/dist/development/src/mapper/select/ConditionBuilder.js +10 -3
  36. package/dist/development/src/mapper/select/ConditionBuilder.js.map +1 -1
  37. package/dist/development/src/mapper/select/WhereBuilder.cjs +3 -3
  38. package/dist/development/src/mapper/select/WhereBuilder.cjs.map +1 -1
  39. package/dist/development/src/mapper/select/WhereBuilder.js +3 -3
  40. package/dist/development/src/mapper/select/WhereBuilder.js.map +1 -1
  41. package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs +33 -3
  42. package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  43. package/dist/development/src/mapper/select/handlers/FieldsVisitor.js +33 -3
  44. package/dist/development/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  45. package/dist/development/src/mapper/select/handlers/FieldsVisitorFactory.cjs +6 -2
  46. package/dist/development/src/mapper/select/handlers/FieldsVisitorFactory.cjs.map +1 -1
  47. package/dist/development/src/mapper/select/handlers/FieldsVisitorFactory.js +6 -2
  48. package/dist/development/src/mapper/select/handlers/FieldsVisitorFactory.js.map +1 -1
  49. package/dist/development/src/resolvers/MutationResolver.cjs +1 -0
  50. package/dist/development/src/resolvers/MutationResolver.cjs.map +1 -1
  51. package/dist/development/src/resolvers/MutationResolver.js +1 -0
  52. package/dist/development/src/resolvers/MutationResolver.js.map +1 -1
  53. package/dist/development/src/resolvers/RefreshViewResolver.cjs +21 -0
  54. package/dist/development/src/resolvers/RefreshViewResolver.cjs.map +1 -0
  55. package/dist/development/src/resolvers/RefreshViewResolver.js +21 -0
  56. package/dist/development/src/resolvers/RefreshViewResolver.js.map +1 -0
  57. package/dist/development/src/schema/ColumnTypeResolver.cjs +9 -0
  58. package/dist/development/src/schema/ColumnTypeResolver.cjs.map +1 -1
  59. package/dist/development/src/schema/ColumnTypeResolver.js +10 -1
  60. package/dist/development/src/schema/ColumnTypeResolver.js.map +1 -1
  61. package/dist/development/src/schema/ConditionTypeProvider.cjs +35 -23
  62. package/dist/development/src/schema/ConditionTypeProvider.cjs.map +1 -1
  63. package/dist/development/src/schema/ConditionTypeProvider.js +36 -24
  64. package/dist/development/src/schema/ConditionTypeProvider.js.map +1 -1
  65. package/dist/development/src/schema/CustomTypesProvider.cjs +30 -0
  66. package/dist/development/src/schema/CustomTypesProvider.cjs.map +1 -1
  67. package/dist/development/src/schema/CustomTypesProvider.js +30 -0
  68. package/dist/development/src/schema/CustomTypesProvider.js.map +1 -1
  69. package/dist/development/src/schema/GraphQlSchemaBuilder.cjs +6 -1
  70. package/dist/development/src/schema/GraphQlSchemaBuilder.cjs.map +1 -1
  71. package/dist/development/src/schema/GraphQlSchemaBuilder.js +6 -1
  72. package/dist/development/src/schema/GraphQlSchemaBuilder.js.map +1 -1
  73. package/dist/development/src/schema/GraphQlSchemaBuilderFactory.cjs +2 -1
  74. package/dist/development/src/schema/GraphQlSchemaBuilderFactory.cjs.map +1 -1
  75. package/dist/development/src/schema/GraphQlSchemaBuilderFactory.js +2 -1
  76. package/dist/development/src/schema/GraphQlSchemaBuilderFactory.js.map +1 -1
  77. package/dist/development/src/schema/OrderByTypeProvider.cjs +6 -1
  78. package/dist/development/src/schema/OrderByTypeProvider.cjs.map +1 -1
  79. package/dist/development/src/schema/OrderByTypeProvider.js +6 -1
  80. package/dist/development/src/schema/OrderByTypeProvider.js.map +1 -1
  81. package/dist/development/src/schema/RefreshViewMutationProvider.cjs +42 -0
  82. package/dist/development/src/schema/RefreshViewMutationProvider.cjs.map +1 -0
  83. package/dist/development/src/schema/RefreshViewMutationProvider.js +42 -0
  84. package/dist/development/src/schema/RefreshViewMutationProvider.js.map +1 -0
  85. package/dist/development/src/schema/WhereTypeProvider.cjs +1 -1
  86. package/dist/development/src/schema/WhereTypeProvider.cjs.map +1 -1
  87. package/dist/development/src/schema/WhereTypeProvider.js +1 -1
  88. package/dist/development/src/schema/WhereTypeProvider.js.map +1 -1
  89. package/dist/development/src/schema/entities/FieldTypeVisitor.cjs +3 -3
  90. package/dist/development/src/schema/entities/FieldTypeVisitor.cjs.map +1 -1
  91. package/dist/development/src/schema/entities/FieldTypeVisitor.js +3 -3
  92. package/dist/development/src/schema/entities/FieldTypeVisitor.js.map +1 -1
  93. package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.cjs +1 -1
  94. package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.cjs.map +1 -1
  95. package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.js +1 -1
  96. package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
  97. package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs +1 -1
  98. package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs.map +1 -1
  99. package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.js +1 -1
  100. package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
  101. package/dist/development/src/utils/viewComputedId.cjs +16 -0
  102. package/dist/development/src/utils/viewComputedId.cjs.map +1 -0
  103. package/dist/development/src/utils/viewComputedId.js +16 -0
  104. package/dist/development/src/utils/viewComputedId.js.map +1 -0
  105. package/dist/production/index.cjs +1 -0
  106. package/dist/production/index.cjs.map +1 -1
  107. package/dist/production/index.js +1 -0
  108. package/dist/production/index.js.map +1 -1
  109. package/dist/production/src/ExecutionContainer.cjs +6 -4
  110. package/dist/production/src/ExecutionContainer.cjs.map +1 -1
  111. package/dist/production/src/ExecutionContainer.js +6 -4
  112. package/dist/production/src/ExecutionContainer.js.map +1 -1
  113. package/dist/production/src/acl/Authorizator.cjs +5 -1
  114. package/dist/production/src/acl/Authorizator.cjs.map +1 -1
  115. package/dist/production/src/acl/Authorizator.js +5 -1
  116. package/dist/production/src/acl/Authorizator.js.map +1 -1
  117. package/dist/production/src/input-validation/ColumnValueResolver.cjs +1 -1
  118. package/dist/production/src/input-validation/ColumnValueResolver.cjs.map +1 -1
  119. package/dist/production/src/input-validation/ColumnValueResolver.js +1 -1
  120. package/dist/production/src/input-validation/ColumnValueResolver.js.map +1 -1
  121. package/dist/production/src/input-validation/dependencies/DependencyCollector.cjs +3 -0
  122. package/dist/production/src/input-validation/dependencies/DependencyCollector.cjs.map +1 -1
  123. package/dist/production/src/input-validation/dependencies/DependencyCollector.js +3 -0
  124. package/dist/production/src/input-validation/dependencies/DependencyCollector.js.map +1 -1
  125. package/dist/production/src/mapper/Mapper.cjs +1 -0
  126. package/dist/production/src/mapper/Mapper.cjs.map +1 -1
  127. package/dist/production/src/mapper/Mapper.js +1 -0
  128. package/dist/production/src/mapper/Mapper.js.map +1 -1
  129. package/dist/production/src/mapper/insert/Inserter.cjs +3 -2
  130. package/dist/production/src/mapper/insert/Inserter.cjs.map +1 -1
  131. package/dist/production/src/mapper/insert/Inserter.js +3 -2
  132. package/dist/production/src/mapper/insert/Inserter.js.map +1 -1
  133. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs +3 -2
  134. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
  135. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js +3 -2
  136. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  137. package/dist/production/src/mapper/select/ConditionBuilder.cjs +9 -2
  138. package/dist/production/src/mapper/select/ConditionBuilder.cjs.map +1 -1
  139. package/dist/production/src/mapper/select/ConditionBuilder.js +10 -3
  140. package/dist/production/src/mapper/select/ConditionBuilder.js.map +1 -1
  141. package/dist/production/src/mapper/select/WhereBuilder.cjs +3 -3
  142. package/dist/production/src/mapper/select/WhereBuilder.cjs.map +1 -1
  143. package/dist/production/src/mapper/select/WhereBuilder.js +3 -3
  144. package/dist/production/src/mapper/select/WhereBuilder.js.map +1 -1
  145. package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs +33 -3
  146. package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  147. package/dist/production/src/mapper/select/handlers/FieldsVisitor.js +33 -3
  148. package/dist/production/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  149. package/dist/production/src/mapper/select/handlers/FieldsVisitorFactory.cjs +6 -2
  150. package/dist/production/src/mapper/select/handlers/FieldsVisitorFactory.cjs.map +1 -1
  151. package/dist/production/src/mapper/select/handlers/FieldsVisitorFactory.js +6 -2
  152. package/dist/production/src/mapper/select/handlers/FieldsVisitorFactory.js.map +1 -1
  153. package/dist/production/src/resolvers/MutationResolver.cjs +1 -0
  154. package/dist/production/src/resolvers/MutationResolver.cjs.map +1 -1
  155. package/dist/production/src/resolvers/MutationResolver.js +1 -0
  156. package/dist/production/src/resolvers/MutationResolver.js.map +1 -1
  157. package/dist/production/src/resolvers/RefreshViewResolver.cjs +21 -0
  158. package/dist/production/src/resolvers/RefreshViewResolver.cjs.map +1 -0
  159. package/dist/production/src/resolvers/RefreshViewResolver.js +21 -0
  160. package/dist/production/src/resolvers/RefreshViewResolver.js.map +1 -0
  161. package/dist/production/src/schema/ColumnTypeResolver.cjs +9 -0
  162. package/dist/production/src/schema/ColumnTypeResolver.cjs.map +1 -1
  163. package/dist/production/src/schema/ColumnTypeResolver.js +10 -1
  164. package/dist/production/src/schema/ColumnTypeResolver.js.map +1 -1
  165. package/dist/production/src/schema/ConditionTypeProvider.cjs +35 -23
  166. package/dist/production/src/schema/ConditionTypeProvider.cjs.map +1 -1
  167. package/dist/production/src/schema/ConditionTypeProvider.js +36 -24
  168. package/dist/production/src/schema/ConditionTypeProvider.js.map +1 -1
  169. package/dist/production/src/schema/CustomTypesProvider.cjs +30 -0
  170. package/dist/production/src/schema/CustomTypesProvider.cjs.map +1 -1
  171. package/dist/production/src/schema/CustomTypesProvider.js +30 -0
  172. package/dist/production/src/schema/CustomTypesProvider.js.map +1 -1
  173. package/dist/production/src/schema/GraphQlSchemaBuilder.cjs +6 -1
  174. package/dist/production/src/schema/GraphQlSchemaBuilder.cjs.map +1 -1
  175. package/dist/production/src/schema/GraphQlSchemaBuilder.js +6 -1
  176. package/dist/production/src/schema/GraphQlSchemaBuilder.js.map +1 -1
  177. package/dist/production/src/schema/GraphQlSchemaBuilderFactory.cjs +2 -1
  178. package/dist/production/src/schema/GraphQlSchemaBuilderFactory.cjs.map +1 -1
  179. package/dist/production/src/schema/GraphQlSchemaBuilderFactory.js +2 -1
  180. package/dist/production/src/schema/GraphQlSchemaBuilderFactory.js.map +1 -1
  181. package/dist/production/src/schema/OrderByTypeProvider.cjs +6 -1
  182. package/dist/production/src/schema/OrderByTypeProvider.cjs.map +1 -1
  183. package/dist/production/src/schema/OrderByTypeProvider.js +6 -1
  184. package/dist/production/src/schema/OrderByTypeProvider.js.map +1 -1
  185. package/dist/production/src/schema/RefreshViewMutationProvider.cjs +42 -0
  186. package/dist/production/src/schema/RefreshViewMutationProvider.cjs.map +1 -0
  187. package/dist/production/src/schema/RefreshViewMutationProvider.js +42 -0
  188. package/dist/production/src/schema/RefreshViewMutationProvider.js.map +1 -0
  189. package/dist/production/src/schema/WhereTypeProvider.cjs +1 -1
  190. package/dist/production/src/schema/WhereTypeProvider.cjs.map +1 -1
  191. package/dist/production/src/schema/WhereTypeProvider.js +1 -1
  192. package/dist/production/src/schema/WhereTypeProvider.js.map +1 -1
  193. package/dist/production/src/schema/entities/FieldTypeVisitor.cjs +3 -3
  194. package/dist/production/src/schema/entities/FieldTypeVisitor.cjs.map +1 -1
  195. package/dist/production/src/schema/entities/FieldTypeVisitor.js +3 -3
  196. package/dist/production/src/schema/entities/FieldTypeVisitor.js.map +1 -1
  197. package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.cjs +1 -1
  198. package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.cjs.map +1 -1
  199. package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.js +1 -1
  200. package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
  201. package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs +1 -1
  202. package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs.map +1 -1
  203. package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.js +1 -1
  204. package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
  205. package/dist/production/src/utils/viewComputedId.cjs +16 -0
  206. package/dist/production/src/utils/viewComputedId.cjs.map +1 -0
  207. package/dist/production/src/utils/viewComputedId.js +16 -0
  208. package/dist/production/src/utils/viewComputedId.js.map +1 -0
  209. package/dist/tests/cases/integration/graphQlRequests/validation/utils.d.ts.map +1 -1
  210. package/dist/tests/src/tags.d.ts.map +1 -1
  211. package/dist/tests/src/test.d.ts.map +1 -1
  212. package/dist/tests/src/testGraphql.d.ts.map +1 -1
  213. package/dist/tests/src/testUuid.d.ts.map +1 -1
  214. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  215. package/dist/types/ExecutionContainer.d.ts +8 -2
  216. package/dist/types/ExecutionContainer.d.ts.map +1 -1
  217. package/dist/types/acl/Authorizator.d.ts +3 -1
  218. package/dist/types/acl/Authorizator.d.ts.map +1 -1
  219. package/dist/types/acl/VariableUtils.d.ts.map +1 -1
  220. package/dist/types/input-validation/ValidationContext.d.ts.map +1 -1
  221. package/dist/types/input-validation/ValidationEvaluation.d.ts.map +1 -1
  222. package/dist/types/input-validation/ValidationPath.d.ts.map +1 -1
  223. package/dist/types/introspection/introspection.schema.d.ts.map +1 -1
  224. package/dist/types/mapper/ColumnValue.d.ts.map +1 -1
  225. package/dist/types/mapper/ErrorUtils.d.ts.map +1 -1
  226. package/dist/types/mapper/EventManager.d.ts.map +1 -1
  227. package/dist/types/mapper/MutationProcessorHelper.d.ts.map +1 -1
  228. package/dist/types/mapper/Result.d.ts.map +1 -1
  229. package/dist/types/mapper/delete/helpers.d.ts.map +1 -1
  230. package/dist/types/mapper/insert/Inserter.d.ts +4 -1
  231. package/dist/types/mapper/insert/Inserter.d.ts.map +1 -1
  232. package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts +4 -1
  233. package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts.map +1 -1
  234. package/dist/types/mapper/select/ConditionBuilder.d.ts +2 -2
  235. package/dist/types/mapper/select/ConditionBuilder.d.ts.map +1 -1
  236. package/dist/types/mapper/select/handlers/FieldsVisitor.d.ts +4 -1
  237. package/dist/types/mapper/select/handlers/FieldsVisitor.d.ts.map +1 -1
  238. package/dist/types/mapper/select/handlers/FieldsVisitorFactory.d.ts +5 -2
  239. package/dist/types/mapper/select/handlers/FieldsVisitorFactory.d.ts.map +1 -1
  240. package/dist/types/mapper/select/optimizer/WhereReplacer.d.ts.map +1 -1
  241. package/dist/types/mapper/select/optimizer/helpers.d.ts.map +1 -1
  242. package/dist/types/resolvers/ReadHelpers.d.ts.map +1 -1
  243. package/dist/types/resolvers/RefreshViewResolver.d.ts +13 -0
  244. package/dist/types/resolvers/RefreshViewResolver.d.ts.map +1 -0
  245. package/dist/types/schema/ColumnTypeResolver.d.ts +5 -5
  246. package/dist/types/schema/ColumnTypeResolver.d.ts.map +1 -1
  247. package/dist/types/schema/ConditionTypeProvider.d.ts +1 -0
  248. package/dist/types/schema/ConditionTypeProvider.d.ts.map +1 -1
  249. package/dist/types/schema/CustomTypesProvider.d.ts +1 -0
  250. package/dist/types/schema/CustomTypesProvider.d.ts.map +1 -1
  251. package/dist/types/schema/GraphQlSchemaBuilder.d.ts +3 -1
  252. package/dist/types/schema/GraphQlSchemaBuilder.d.ts.map +1 -1
  253. package/dist/types/schema/GraphQlSchemaBuilderFactory.d.ts +3 -0
  254. package/dist/types/schema/GraphQlSchemaBuilderFactory.d.ts.map +1 -1
  255. package/dist/types/schema/OperationExtension.d.ts.map +1 -1
  256. package/dist/types/schema/OrderByTypeProvider.d.ts.map +1 -1
  257. package/dist/types/schema/RefreshViewMutationProvider.d.ts +11 -0
  258. package/dist/types/schema/RefreshViewMutationProvider.d.ts.map +1 -0
  259. package/dist/types/schema/mutations/UpdateEntityInputFieldVisitor.d.ts +1 -1
  260. package/dist/types/schema/utils.d.ts.map +1 -1
  261. package/dist/types/tsconfig.tsbuildinfo +1 -1
  262. package/dist/types/utils/isIt.d.ts.map +1 -1
  263. package/dist/types/utils/paginationUtils.d.ts.map +1 -1
  264. package/dist/types/utils/promises.d.ts.map +1 -1
  265. package/dist/types/utils/singletonFactory.d.ts.map +1 -1
  266. package/dist/types/utils/strings.d.ts.map +1 -1
  267. package/dist/types/utils/tuple.d.ts.map +1 -1
  268. package/dist/types/utils/uniqueWhereFields.d.ts.map +1 -1
  269. package/dist/types/utils/viewComputedId.d.ts +2 -0
  270. package/dist/types/utils/viewComputedId.d.ts.map +1 -0
  271. package/package.json +11 -11
  272. package/src/ExecutionContainer.ts +9 -5
  273. package/src/acl/Authorizator.ts +5 -0
  274. package/src/input-validation/ColumnValueResolver.ts +1 -1
  275. package/src/mapper/insert/Inserter.ts +2 -1
  276. package/src/mapper/insert/SqlCreateInputProcessor.ts +2 -1
  277. package/src/mapper/select/ConditionBuilder.ts +19 -5
  278. package/src/mapper/select/WhereBuilder.ts +3 -3
  279. package/src/mapper/select/handlers/FieldsVisitor.ts +36 -1
  280. package/src/mapper/select/handlers/FieldsVisitorFactory.ts +6 -1
  281. package/src/resolvers/RefreshViewResolver.ts +23 -0
  282. package/src/schema/ColumnTypeResolver.ts +15 -3
  283. package/src/schema/ConditionTypeProvider.ts +40 -25
  284. package/src/schema/CustomTypesProvider.ts +37 -0
  285. package/src/schema/GraphQlSchemaBuilder.ts +8 -0
  286. package/src/schema/GraphQlSchemaBuilderFactory.ts +5 -2
  287. package/src/schema/OrderByTypeProvider.ts +6 -1
  288. package/src/schema/RefreshViewMutationProvider.ts +47 -0
  289. package/src/schema/WhereTypeProvider.ts +1 -1
  290. package/src/schema/entities/FieldTypeVisitor.ts +3 -3
  291. package/src/schema/mutations/CreateEntityInputFieldVisitor.ts +1 -1
  292. package/src/schema/mutations/UpdateEntityInputFieldVisitor.ts +1 -1
  293. package/src/utils/viewComputedId.ts +23 -0
  294. package/tests/cases/integration/graphQlSchema/graphQlSchemaBuilder.test.ts +38 -2
  295. package/tests/cases/integration/graphQlSchema/schema-aliased-type.gql +6 -0
  296. package/tests/cases/integration/graphQlSchema/schema-array.gql +257 -0
  297. package/tests/cases/integration/graphQlSchema/schema-column-types.gql +420 -0
  298. package/tests/src/test.ts +1 -1
@@ -58,6 +58,7 @@ const ExecutionContainer = require("./src/ExecutionContainer.cjs");
58
58
  const graphql = require("graphql");
59
59
  require("@contember/database");
60
60
  const EventManager = require("./src/mapper/EventManager.cjs");
61
+ require("node:crypto");
61
62
  const Path = require("./src/mapper/select/Path.cjs");
62
63
  require("@contember/logger");
63
64
  const WhereBuilder = require("./src/mapper/select/WhereBuilder.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -56,6 +56,7 @@ import { ExecutionContainerFactory } from "./src/ExecutionContainer.js";
56
56
  import { graphql } from "graphql";
57
57
  import "@contember/database";
58
58
  import { AfterCommitEvent, AfterInsertEvent, AfterJunctionUpdateEvent, AfterUpdateEvent, BeforeCommitEvent, BeforeDeleteEvent, BeforeInsertEvent, BeforeJunctionUpdateEvent, BeforeUpdateEvent, EventManager } from "./src/mapper/EventManager.js";
59
+ import "node:crypto";
59
60
  import { Path, PathFactory } from "./src/mapper/select/Path.js";
60
61
  import "@contember/logger";
61
62
  import { WhereBuilder } from "./src/mapper/select/WhereBuilder.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -6,6 +6,7 @@ const PredicateFactory = require("./acl/PredicateFactory.cjs");
6
6
  const PredicatesInjector = require("./acl/PredicatesInjector.cjs");
7
7
  const VariableInjector = require("./acl/VariableInjector.cjs");
8
8
  require("@contember/database");
9
+ require("node:crypto");
9
10
  const FieldsVisitorFactory = require("./mapper/select/handlers/FieldsVisitorFactory.cjs");
10
11
  const MetaHandler = require("./mapper/select/handlers/MetaHandler.cjs");
11
12
  const ConditionBuilder = require("./mapper/select/ConditionBuilder.cjs");
@@ -44,6 +45,7 @@ const QueryAstFactory = require("./input-validation/QueryAstFactory.cjs");
44
45
  require("./input-validation/ValidationContext.cjs");
45
46
  const ValidationDataSelector = require("./input-validation/ValidationDataSelector.cjs");
46
47
  require("./input-validation/ValidationEvaluation.cjs");
48
+ const RefreshViewResolver = require("./resolvers/RefreshViewResolver.cjs");
47
49
  const MapperFactory = require("./mapper/MapperFactory.cjs");
48
50
  var __defProp = Object.defineProperty;
49
51
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -65,7 +67,7 @@ class ExecutionContainerFactory {
65
67
  pathFactory,
66
68
  whereOptimized,
67
69
  (schema2.settings.content?.useExistsInHasManyFilter ?? schema2.settings.useExistsInHasManyFilter) === true
68
- )).addService("orderByBuilder", ({ joinBuilder, schema: schema2 }) => new OrderByBuilder.OrderByBuilder(schema2.model, joinBuilder)).addService("relationFetcher", ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) => new RelationFetcher.RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory)).addService("fieldsVisitorFactory", ({ relationFetcher, predicateFactory, schema: schema2 }) => new FieldsVisitorFactory.FieldsVisitorFactory(relationFetcher, predicateFactory, schema2.settings.content ?? {})).addService("metaHandler", ({ whereBuilder, predicateFactory }) => new MetaHandler.MetaHandler(whereBuilder, predicateFactory)).addService("uniqueWhereExpander", ({ schema: schema2 }) => new UniqueWhereExpander.UniqueWhereExpander(schema2.model)).addService("hasManyToHasOneReducer", ({ uniqueWhereExpander, schema: schema2 }) => new HasManyToHasOneReducerExecutionHandler.HasManyToHasOneReducerExecutionHandler(schema2.model, uniqueWhereExpander)).addService("paginatedHasManyExecutionHandler", ({ relationFetcher, schema: schema2 }) => new PaginatedHasManyExecutionHandler.PaginatedHasManyExecutionHandler(schema2.model, relationFetcher)).addService("selectHandlers", ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({
70
+ )).addService("orderByBuilder", ({ joinBuilder, schema: schema2 }) => new OrderByBuilder.OrderByBuilder(schema2.model, joinBuilder)).addService("relationFetcher", ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) => new RelationFetcher.RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory)).addService("fieldsVisitorFactory", ({ relationFetcher, predicateFactory, schema: schema2, providers }) => new FieldsVisitorFactory.FieldsVisitorFactory(schema2.model, relationFetcher, predicateFactory, schema2.settings.content ?? {}, providers)).addService("metaHandler", ({ whereBuilder, predicateFactory }) => new MetaHandler.MetaHandler(whereBuilder, predicateFactory)).addService("uniqueWhereExpander", ({ schema: schema2 }) => new UniqueWhereExpander.UniqueWhereExpander(schema2.model)).addService("hasManyToHasOneReducer", ({ uniqueWhereExpander, schema: schema2 }) => new HasManyToHasOneReducerExecutionHandler.HasManyToHasOneReducerExecutionHandler(schema2.model, uniqueWhereExpander)).addService("paginatedHasManyExecutionHandler", ({ relationFetcher, schema: schema2 }) => new PaginatedHasManyExecutionHandler.PaginatedHasManyExecutionHandler(schema2.model, relationFetcher)).addService("selectHandlers", ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({
69
71
  [HasManyToHasOneReducer.HasManyToHasOneReducer.extensionName]: hasManyToHasOneReducer,
70
72
  [PaginatedHasManyFieldProvider.PaginatedHasManyFieldProvider.extensionName]: paginatedHasManyExecutionHandler
71
73
  })).addService("selectBuilderFactory", ({ whereBuilder, orderByBuilder, fieldsVisitorFactory, metaHandler, selectHandlers, pathFactory, predicateFactory, schema: schema2 }) => new class {
@@ -84,7 +86,7 @@ class ExecutionContainerFactory {
84
86
  predicateFactory
85
87
  );
86
88
  }
87
- }()).addService("insertBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new InsertBuilderFactory.InsertBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("updateBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new UpdateBuilderFactory.UpdateBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("connectJunctionHandler", () => new JunctionTableManager.JunctionConnectHandler()).addService("disconnectJunctionHandler", ({}) => new JunctionTableManager.JunctionDisconnectHandler()).addService("junctionTableManager", ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema: schema2 }) => new JunctionTableManager.JunctionTableManager(schema2.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory)).addService("deleteExecutor", ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema: schema2 }) => new DeleteExecutor.DeleteExecutor(schema2.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory)).addService("updater", ({ predicateFactory, updateBuilderFactory, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Updater.Updater(schema2.model, schemaDatabaseMetadata2, predicateFactory, updateBuilderFactory)).addService("inserter", ({ insertBuilderFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Inserter.Inserter(schema2.model, schemaDatabaseMetadata2, insertBuilderFactory, providers)).addService("mapperFactory", ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => {
89
+ }()).addService("insertBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new InsertBuilderFactory.InsertBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("updateBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new UpdateBuilderFactory.UpdateBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("connectJunctionHandler", () => new JunctionTableManager.JunctionConnectHandler()).addService("disconnectJunctionHandler", ({}) => new JunctionTableManager.JunctionDisconnectHandler()).addService("junctionTableManager", ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema: schema2 }) => new JunctionTableManager.JunctionTableManager(schema2.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory)).addService("deleteExecutor", ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema: schema2 }) => new DeleteExecutor.DeleteExecutor(schema2.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory)).addService("updater", ({ predicateFactory, updateBuilderFactory, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Updater.Updater(schema2.model, schemaDatabaseMetadata2, predicateFactory, updateBuilderFactory)).addService("inserter", ({ insertBuilderFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Inserter.Inserter(schema2.model, schemaDatabaseMetadata2, insertBuilderFactory, providers, { uuidVersion: schema2.settings.content?.uuidVersion })).addService("mapperFactory", ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => {
88
90
  return new MapperFactory.MapperFactory(
89
91
  db,
90
92
  identityId,
@@ -101,10 +103,10 @@ class ExecutionContainerFactory {
101
103
  pathFactory,
102
104
  providers
103
105
  );
104
- }).addService("queryAstFactory", () => new GraphQlQueryAstFactory.GraphQlQueryAstFactory()).addService("readResolver", ({ mapperFactory, queryAstFactory }) => new ReadResolver.ReadResolver(mapperFactory, queryAstFactory)).addService("validationDependencyCollector", () => new DependencyCollector.DependencyCollector()).addService("validationQueryAstFactory", ({ schema: schema2 }) => new QueryAstFactory.QueryAstFactory(schema2.model)).addService("dataSelector", ({ validationQueryAstFactory, schema: schema2 }) => new ValidationDataSelector.ValidationDataSelector(schema2.model, validationQueryAstFactory)).addService("columnValueResolver", ({ providers }) => new ColumnValueResolver.ColumnValueResolver(providers)).addService("entityRulesResolver", ({ schema: schema2 }) => new EntityRulesResolver.EntityRulesResolver(schema2.validation, schema2.model)).addService("inputPreValidator", ({ entityRulesResolver, columnValueResolver, dataSelector, schema: schema2 }) => new InputPreValidator.InputPreValidator(schema2.model, entityRulesResolver, columnValueResolver, dataSelector)).addService("mutationResolver", ({ mapperFactory, inputPreValidator, queryAstFactory, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new MutationResolver.MutationResolver(schema2.model, mapperFactory, inputPreValidator, queryAstFactory, schemaDatabaseMetadata2)).addService("validationResolver", ({ inputPreValidator, mapperFactory }) => new ValidationResolver.ValidationResolver(mapperFactory, inputPreValidator));
106
+ }).addService("queryAstFactory", () => new GraphQlQueryAstFactory.GraphQlQueryAstFactory()).addService("readResolver", ({ mapperFactory, queryAstFactory }) => new ReadResolver.ReadResolver(mapperFactory, queryAstFactory)).addService("validationDependencyCollector", () => new DependencyCollector.DependencyCollector()).addService("validationQueryAstFactory", ({ schema: schema2 }) => new QueryAstFactory.QueryAstFactory(schema2.model)).addService("dataSelector", ({ validationQueryAstFactory, schema: schema2 }) => new ValidationDataSelector.ValidationDataSelector(schema2.model, validationQueryAstFactory)).addService("columnValueResolver", ({ providers }) => new ColumnValueResolver.ColumnValueResolver(providers)).addService("entityRulesResolver", ({ schema: schema2 }) => new EntityRulesResolver.EntityRulesResolver(schema2.validation, schema2.model)).addService("inputPreValidator", ({ entityRulesResolver, columnValueResolver, dataSelector, schema: schema2 }) => new InputPreValidator.InputPreValidator(schema2.model, entityRulesResolver, columnValueResolver, dataSelector)).addService("mutationResolver", ({ mapperFactory, inputPreValidator, queryAstFactory, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new MutationResolver.MutationResolver(schema2.model, mapperFactory, inputPreValidator, queryAstFactory, schemaDatabaseMetadata2)).addService("validationResolver", ({ inputPreValidator, mapperFactory }) => new ValidationResolver.ValidationResolver(mapperFactory, inputPreValidator)).addService("refreshViewResolver", ({ schema: schema2, mapperFactory }) => new RefreshViewResolver.RefreshViewResolver(schema2, mapperFactory));
105
107
  }
106
108
  create(args) {
107
- return this.createBuilder(args).build().pick("validationResolver", "readResolver", "mutationResolver");
109
+ return this.createBuilder(args).build().pick("validationResolver", "readResolver", "mutationResolver", "refreshViewResolver");
108
110
  }
109
111
  }
110
112
  exports.ExecutionContainerFactory = ExecutionContainerFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutionContainer.cjs","sources":["../../../../packages/engine-content-api/src/ExecutionContainer.ts"],"sourcesContent":["import { PredicateFactory, PredicatesInjector, VariableInjector } from './acl'\nimport {\n\tConditionBuilder,\n\tFieldsVisitorFactory,\n\tJoinBuilder,\n\tMetaHandler,\n\tOrderByBuilder,\n\tRelationFetcher,\n\tWhereBuilder,\n} from './mapper/select'\nimport { UniqueWhereExpander } from './inputProcessing'\nimport { HasManyToHasOneReducer, HasManyToHasOneReducerExecutionHandler } from './extensions'\nimport {\n\tDeleteExecutor,\n\tInsertBuilderFactory,\n\tInserter,\n\tJunctionConnectHandler,\n\tJunctionDisconnectHandler,\n\tJunctionTableManager,\n\tMapperFactory,\n\tPathFactory,\n\tSelectBuilder,\n\tSelectBuilderFactory,\n\tSelectHydrator,\n\tUpdateBuilderFactory,\n\tUpdater,\n} from './mapper'\nimport { Builder } from '@contember/dic'\nimport { Acl, Model, Schema } from '@contember/schema'\nimport { Client, DatabaseMetadata, SelectBuilder as DbSelectBuilder } from '@contember/database'\nimport { Providers } from '@contember/schema-utils'\nimport { PaginatedHasManyExecutionHandler } from './extensions/paginatedHasMany/PaginatedHasManyExecutionHandler'\nimport { PaginatedHasManyFieldProvider } from './extensions/paginatedHasMany/PaginatedHasManyFieldProvider'\nimport { WhereOptimizer } from './mapper/select/optimizer/WhereOptimizer'\nimport { ConditionOptimizer } from './mapper/select/optimizer/ConditionOptimizer'\nimport { GraphQlQueryAstFactory, MutationResolver, ReadResolver, ValidationResolver } from './resolvers'\nimport {\n\tColumnValueResolver,\n\tDependencyCollector,\n\tEntityRulesResolver, InputPreValidator,\n\tQueryAstFactory,\n\tValidationDataSelector,\n} from './input-validation'\n\nexport type ExecutionContainerArgs = {\n\tschema: Schema\n\tschemaMeta: { id?: number }\n\tschemaDatabaseMetadata: DatabaseMetadata\n\tdb: Client\n\tidentityId: string\n\tidentityVariables: Acl.VariablesMap\n\tpermissions: Acl.Permissions\n\tsystemSchema: string\n\tproject: { slug: string }\n\tstage: { id: string; slug: string }\n}\n\nexport interface ExecutionContainer {\n\treadResolver: ReadResolver\n\tmutationResolver: MutationResolver\n\tvalidationResolver: ValidationResolver\n}\n\nexport type ExecutionContainerBuilder = ReturnType<ExecutionContainerFactory['createBuilderInternal']>\nexport type ExecutionContainerHook = (builder: ExecutionContainerBuilder) => ExecutionContainerBuilder\n\nexport class ExecutionContainerFactory {\n\tpublic readonly hooks: ExecutionContainerHook[] = []\n\n\tconstructor(\n\t\tprivate readonly providers: Providers,\n\t) {\n\t}\n\n\tcreateBuilder(args: ExecutionContainerArgs): ExecutionContainerBuilder {\n\t\tconst builder = this.createBuilderInternal(args)\n\t\treturn this.hooks.reduce((acc, cb) => cb(acc), builder)\n\t}\n\n\tcreateBuilderInternal({ permissions, identityVariables, identityId, db, schema, schemaMeta, systemSchema, stage, project, schemaDatabaseMetadata }: ExecutionContainerArgs) {\n\t\treturn new Builder({})\n\t\t\t.addService('systemSchema', () =>\n\t\t\t\tsystemSchema)\n\t\t\t.addService('db', () =>\n\t\t\t\tdb)\n\t\t\t.addService('project', () =>\n\t\t\t\tproject)\n\t\t\t.addService('stage', () =>\n\t\t\t\tstage)\n\t\t\t.addService('schema', () =>\n\t\t\t\tschema)\n\t\t\t.addService('schemaMeta', () =>\n\t\t\t\tschemaMeta)\n\t\t\t.addService('schemaDatabaseMetadata', () =>\n\t\t\t\tschemaDatabaseMetadata)\n\t\t\t.addService('providers', () =>\n\t\t\t\tthis.providers)\n\t\t\t.addService('variableInjector', ({ schema }) =>\n\t\t\t\tnew VariableInjector(schema.model, identityVariables))\n\t\t\t.addService('predicateFactory', ({ variableInjector, schema }) =>\n\t\t\t\tnew PredicateFactory(permissions, schema.model, variableInjector))\n\t\t\t.addService('predicatesInjector', ({ predicateFactory, schema }) =>\n\t\t\t\tnew PredicatesInjector(schema.model, predicateFactory))\n\t\t\t.addService('joinBuilder', ({ schema }) =>\n\t\t\t\tnew JoinBuilder(schema.model))\n\t\t\t.addService('conditionBuilder', () =>\n\t\t\t\tnew ConditionBuilder())\n\t\t\t.addService('pathFactory', () =>\n\t\t\t\tnew PathFactory())\n\t\t\t.addService('whereOptimized', ({ schema }) =>\n\t\t\t\tnew WhereOptimizer(schema.model, new ConditionOptimizer()))\n\t\t\t.addService('whereBuilder', ({ joinBuilder, conditionBuilder, pathFactory, whereOptimized, schema }) =>\n\t\t\t\tnew WhereBuilder(\n\t\t\t\t\tschema.model,\n\t\t\t\t\tjoinBuilder,\n\t\t\t\t\tconditionBuilder,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\twhereOptimized,\n\t\t\t\t\t(schema.settings.content?.useExistsInHasManyFilter ?? schema.settings.useExistsInHasManyFilter) === true,\n\t\t\t\t))\n\t\t\t.addService('orderByBuilder', ({ joinBuilder, schema }) =>\n\t\t\t\tnew OrderByBuilder(schema.model, joinBuilder))\n\t\t\t.addService('relationFetcher', ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) =>\n\t\t\t\tnew RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory))\n\t\t\t.addService('fieldsVisitorFactory', ({ relationFetcher, predicateFactory, schema }) =>\n\t\t\t\tnew FieldsVisitorFactory(relationFetcher, predicateFactory, schema.settings.content ?? {}))\n\t\t\t.addService('metaHandler', ({ whereBuilder, predicateFactory }) =>\n\t\t\t\tnew MetaHandler(whereBuilder, predicateFactory))\n\t\t\t.addService('uniqueWhereExpander', ({ schema }) =>\n\t\t\t\tnew UniqueWhereExpander(schema.model))\n\t\t\t.addService('hasManyToHasOneReducer', ({ uniqueWhereExpander, schema }) =>\n\t\t\t\tnew HasManyToHasOneReducerExecutionHandler(schema.model, uniqueWhereExpander))\n\t\t\t.addService('paginatedHasManyExecutionHandler', ({ relationFetcher, schema }) =>\n\t\t\t\tnew PaginatedHasManyExecutionHandler(schema.model, relationFetcher))\n\t\t\t.addService('selectHandlers', ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({\n\t\t\t\t[HasManyToHasOneReducer.extensionName]: hasManyToHasOneReducer,\n\t\t\t\t[PaginatedHasManyFieldProvider.extensionName]: paginatedHasManyExecutionHandler,\n\t\t\t}))\n\t\t\t.addService('selectBuilderFactory', ({ whereBuilder, orderByBuilder, fieldsVisitorFactory, metaHandler, selectHandlers, pathFactory, predicateFactory, schema }) =>\n\t\t\t\tnew (class implements SelectBuilderFactory {\n\t\t\t\t\tcreate(qb: DbSelectBuilder, hydrator: SelectHydrator, relationPath: Model.AnyRelationContext[]): SelectBuilder {\n\t\t\t\t\t\treturn new SelectBuilder(\n\t\t\t\t\t\t\tschema.model,\n\t\t\t\t\t\t\twhereBuilder,\n\t\t\t\t\t\t\torderByBuilder,\n\t\t\t\t\t\t\tmetaHandler,\n\t\t\t\t\t\t\tqb,\n\t\t\t\t\t\t\thydrator,\n\t\t\t\t\t\t\tfieldsVisitorFactory,\n\t\t\t\t\t\t\tselectHandlers,\n\t\t\t\t\t\t\tpathFactory,\n\t\t\t\t\t\t\trelationPath,\n\t\t\t\t\t\t\tpredicateFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t})())\n\t\t\t.addService('insertBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew InsertBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('updateBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew UpdateBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('connectJunctionHandler', () =>\n\t\t\t\tnew JunctionConnectHandler())\n\t\t\t.addService('disconnectJunctionHandler', ({}) =>\n\t\t\t\tnew JunctionDisconnectHandler())\n\t\t\t.addService('junctionTableManager', ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema }) =>\n\t\t\t\tnew JunctionTableManager(schema.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory))\n\t\t\t.addService('deleteExecutor', ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema }) =>\n\t\t\t\tnew DeleteExecutor(schema.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory))\n\t\t\t.addService('updater', ({ predicateFactory, updateBuilderFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Updater(schema.model, schemaDatabaseMetadata, predicateFactory, updateBuilderFactory))\n\t\t\t.addService('inserter', ({ insertBuilderFactory, providers, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Inserter(schema.model, schemaDatabaseMetadata, insertBuilderFactory, providers))\n\t\t\t.addService('mapperFactory', ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema, schemaDatabaseMetadata }) => {\n\t\t\t\treturn new MapperFactory(\n\t\t\t\t\tdb,\n\t\t\t\t\tidentityId,\n\t\t\t\t\tschema.model,\n\t\t\t\t\tschemaDatabaseMetadata,\n\t\t\t\t\tpredicatesInjector,\n\t\t\t\t\tselectBuilderFactory,\n\t\t\t\t\tuniqueWhereExpander,\n\t\t\t\t\twhereBuilder,\n\t\t\t\t\tjunctionTableManager,\n\t\t\t\t\tdeleteExecutor,\n\t\t\t\t\tupdater,\n\t\t\t\t\tinserter,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\tproviders,\n\t\t\t\t)\n\t\t\t})\n\n\t\t\t.addService('queryAstFactory', () =>\n\t\t\t\tnew GraphQlQueryAstFactory())\n\t\t\t.addService('readResolver', ({ mapperFactory, queryAstFactory }) =>\n\t\t\t\tnew ReadResolver(mapperFactory, queryAstFactory))\n\t\t\t.addService('validationDependencyCollector', () =>\n\t\t\t\tnew DependencyCollector())\n\t\t\t.addService('validationQueryAstFactory', ({ schema }) =>\n\t\t\t\tnew QueryAstFactory(schema.model))\n\t\t\t.addService('dataSelector', ({ validationQueryAstFactory, schema }) =>\n\t\t\t\tnew ValidationDataSelector(schema.model, validationQueryAstFactory))\n\t\t\t.addService('columnValueResolver', ({ providers }) =>\n\t\t\t\tnew ColumnValueResolver(providers))\n\t\t\t.addService('entityRulesResolver', ({ schema }) =>\n\t\t\t\tnew EntityRulesResolver(schema.validation, schema.model))\n\t\t\t.addService('inputPreValidator', ({ entityRulesResolver, columnValueResolver, dataSelector, schema }) =>\n\t\t\t\tnew InputPreValidator(schema.model, entityRulesResolver, columnValueResolver, dataSelector))\n\t\t\t.addService('mutationResolver', ({ mapperFactory, inputPreValidator, queryAstFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew MutationResolver(schema.model, mapperFactory, inputPreValidator, queryAstFactory, schemaDatabaseMetadata))\n\t\t\t.addService('validationResolver', ({ inputPreValidator, mapperFactory }) =>\n\t\t\t\tnew ValidationResolver(mapperFactory, inputPreValidator))\n\t}\n\n\tpublic create(args: ExecutionContainerArgs): ExecutionContainer {\n\t\treturn this.createBuilder(args).build().pick('validationResolver', 'readResolver', 'mutationResolver')\n\t}\n}\n\n"],"names":["Builder","schema","VariableInjector","PredicateFactory","PredicatesInjector","JoinBuilder","ConditionBuilder","PathFactory","WhereOptimizer","ConditionOptimizer","WhereBuilder","OrderByBuilder","RelationFetcher","FieldsVisitorFactory","MetaHandler","UniqueWhereExpander","HasManyToHasOneReducerExecutionHandler","PaginatedHasManyExecutionHandler","HasManyToHasOneReducer","PaginatedHasManyFieldProvider","SelectBuilder","InsertBuilderFactory","UpdateBuilderFactory","JunctionConnectHandler","JunctionDisconnectHandler","JunctionTableManager","DeleteExecutor","schemaDatabaseMetadata","Updater","Inserter","MapperFactory","GraphQlQueryAstFactory","ReadResolver","DependencyCollector","QueryAstFactory","ValidationDataSelector","ColumnValueResolver","EntityRulesResolver","InputPreValidator","MutationResolver","ValidationResolver"],"mappings":"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"}
1
+ {"version":3,"file":"ExecutionContainer.cjs","sources":["../../../../packages/engine-content-api/src/ExecutionContainer.ts"],"sourcesContent":["import { PredicateFactory, PredicatesInjector, VariableInjector } from './acl'\nimport {\n\tConditionBuilder,\n\tFieldsVisitorFactory,\n\tJoinBuilder,\n\tMetaHandler,\n\tOrderByBuilder,\n\tRelationFetcher,\n\tWhereBuilder,\n} from './mapper/select'\nimport { UniqueWhereExpander } from './inputProcessing'\nimport { HasManyToHasOneReducer, HasManyToHasOneReducerExecutionHandler } from './extensions'\nimport {\n\tDeleteExecutor,\n\tInsertBuilderFactory,\n\tInserter,\n\tJunctionConnectHandler,\n\tJunctionDisconnectHandler,\n\tJunctionTableManager,\n\tMapperFactory,\n\tPathFactory,\n\tSelectBuilder,\n\tSelectBuilderFactory,\n\tSelectHydrator,\n\tUpdateBuilderFactory,\n\tUpdater,\n} from './mapper'\nimport { Builder } from '@contember/dic'\nimport { Acl, Model, Schema } from '@contember/schema'\nimport { Client, DatabaseMetadata, SelectBuilder as DbSelectBuilder } from '@contember/database'\nimport { ParsedMembership, Providers } from '@contember/schema-utils'\nimport { PaginatedHasManyExecutionHandler } from './extensions/paginatedHasMany/PaginatedHasManyExecutionHandler'\nimport { PaginatedHasManyFieldProvider } from './extensions/paginatedHasMany/PaginatedHasManyFieldProvider'\nimport { WhereOptimizer } from './mapper/select/optimizer/WhereOptimizer'\nimport { ConditionOptimizer } from './mapper/select/optimizer/ConditionOptimizer'\nimport { GraphQlQueryAstFactory, MutationResolver, ReadResolver, ValidationResolver } from './resolvers'\nimport {\n\tColumnValueResolver,\n\tDependencyCollector,\n\tEntityRulesResolver, InputPreValidator,\n\tQueryAstFactory,\n\tValidationDataSelector,\n} from './input-validation'\nimport { RefreshViewResolver } from './resolvers/RefreshViewResolver'\n\nexport type ExecutionContainerArgs = {\n\tschema: Schema\n\tschemaMeta: { id?: number }\n\tschemaDatabaseMetadata: DatabaseMetadata\n\tdb: Client\n\tidentityId: string\n\tidentityVariables: Acl.VariablesMap\n\tpermissions: Acl.Permissions\n\tsystemSchema: string\n\tproject: { slug: string }\n\tstage: { id: string; slug: string }\n}\n\nexport interface ExecutionContainer {\n\treadResolver: ReadResolver\n\tmutationResolver: MutationResolver\n\tvalidationResolver: ValidationResolver\n\trefreshViewResolver: RefreshViewResolver\n}\n\nexport type ExecutionContainerBuilder = ReturnType<ExecutionContainerFactory['createBuilderInternal']>\nexport type ExecutionContainerHook = (builder: ExecutionContainerBuilder) => ExecutionContainerBuilder\n\nexport class ExecutionContainerFactory {\n\tpublic readonly hooks: ExecutionContainerHook[] = []\n\n\tconstructor(\n\t\tprivate readonly providers: Providers,\n\t) {\n\t}\n\n\tcreateBuilder(args: ExecutionContainerArgs): ExecutionContainerBuilder {\n\t\tconst builder = this.createBuilderInternal(args)\n\t\treturn this.hooks.reduce((acc, cb) => cb(acc), builder)\n\t}\n\n\tcreateBuilderInternal({ permissions, identityVariables, identityId, db, schema, schemaMeta, systemSchema, stage, project, schemaDatabaseMetadata }: ExecutionContainerArgs) {\n\t\treturn new Builder({})\n\t\t\t.addService('systemSchema', () =>\n\t\t\t\tsystemSchema)\n\t\t\t.addService('db', () =>\n\t\t\t\tdb)\n\t\t\t.addService('project', () =>\n\t\t\t\tproject)\n\t\t\t.addService('stage', () =>\n\t\t\t\tstage)\n\t\t\t.addService('schema', () =>\n\t\t\t\tschema)\n\t\t\t.addService('schemaMeta', () =>\n\t\t\t\tschemaMeta)\n\t\t\t.addService('schemaDatabaseMetadata', () =>\n\t\t\t\tschemaDatabaseMetadata)\n\t\t\t.addService('providers', () =>\n\t\t\t\tthis.providers)\n\t\t\t.addService('variableInjector', ({ schema }) =>\n\t\t\t\tnew VariableInjector(schema.model, identityVariables))\n\t\t\t.addService('predicateFactory', ({ variableInjector, schema }) =>\n\t\t\t\tnew PredicateFactory(permissions, schema.model, variableInjector))\n\t\t\t.addService('predicatesInjector', ({ predicateFactory, schema }) =>\n\t\t\t\tnew PredicatesInjector(schema.model, predicateFactory))\n\t\t\t.addService('joinBuilder', ({ schema }) =>\n\t\t\t\tnew JoinBuilder(schema.model))\n\t\t\t.addService('conditionBuilder', () =>\n\t\t\t\tnew ConditionBuilder())\n\t\t\t.addService('pathFactory', () =>\n\t\t\t\tnew PathFactory())\n\t\t\t.addService('whereOptimized', ({ schema }) =>\n\t\t\t\tnew WhereOptimizer(schema.model, new ConditionOptimizer()))\n\t\t\t.addService('whereBuilder', ({ joinBuilder, conditionBuilder, pathFactory, whereOptimized, schema }) =>\n\t\t\t\tnew WhereBuilder(\n\t\t\t\t\tschema.model,\n\t\t\t\t\tjoinBuilder,\n\t\t\t\t\tconditionBuilder,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\twhereOptimized,\n\t\t\t\t\t(schema.settings.content?.useExistsInHasManyFilter ?? schema.settings.useExistsInHasManyFilter) === true,\n\t\t\t\t))\n\t\t\t.addService('orderByBuilder', ({ joinBuilder, schema }) =>\n\t\t\t\tnew OrderByBuilder(schema.model, joinBuilder))\n\t\t\t.addService('relationFetcher', ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) =>\n\t\t\t\tnew RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory))\n\t\t\t.addService('fieldsVisitorFactory', ({ relationFetcher, predicateFactory, schema, providers }) =>\n\t\t\t\tnew FieldsVisitorFactory(schema.model, relationFetcher, predicateFactory, schema.settings.content ?? {}, providers))\n\t\t\t.addService('metaHandler', ({ whereBuilder, predicateFactory }) =>\n\t\t\t\tnew MetaHandler(whereBuilder, predicateFactory))\n\t\t\t.addService('uniqueWhereExpander', ({ schema }) =>\n\t\t\t\tnew UniqueWhereExpander(schema.model))\n\t\t\t.addService('hasManyToHasOneReducer', ({ uniqueWhereExpander, schema }) =>\n\t\t\t\tnew HasManyToHasOneReducerExecutionHandler(schema.model, uniqueWhereExpander))\n\t\t\t.addService('paginatedHasManyExecutionHandler', ({ relationFetcher, schema }) =>\n\t\t\t\tnew PaginatedHasManyExecutionHandler(schema.model, relationFetcher))\n\t\t\t.addService('selectHandlers', ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({\n\t\t\t\t[HasManyToHasOneReducer.extensionName]: hasManyToHasOneReducer,\n\t\t\t\t[PaginatedHasManyFieldProvider.extensionName]: paginatedHasManyExecutionHandler,\n\t\t\t}))\n\t\t\t.addService('selectBuilderFactory', ({ whereBuilder, orderByBuilder, fieldsVisitorFactory, metaHandler, selectHandlers, pathFactory, predicateFactory, schema }) =>\n\t\t\t\tnew (class implements SelectBuilderFactory {\n\t\t\t\t\tcreate(qb: DbSelectBuilder, hydrator: SelectHydrator, relationPath: Model.AnyRelationContext[]): SelectBuilder {\n\t\t\t\t\t\treturn new SelectBuilder(\n\t\t\t\t\t\t\tschema.model,\n\t\t\t\t\t\t\twhereBuilder,\n\t\t\t\t\t\t\torderByBuilder,\n\t\t\t\t\t\t\tmetaHandler,\n\t\t\t\t\t\t\tqb,\n\t\t\t\t\t\t\thydrator,\n\t\t\t\t\t\t\tfieldsVisitorFactory,\n\t\t\t\t\t\t\tselectHandlers,\n\t\t\t\t\t\t\tpathFactory,\n\t\t\t\t\t\t\trelationPath,\n\t\t\t\t\t\t\tpredicateFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t})())\n\t\t\t.addService('insertBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew InsertBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('updateBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew UpdateBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('connectJunctionHandler', () =>\n\t\t\t\tnew JunctionConnectHandler())\n\t\t\t.addService('disconnectJunctionHandler', ({}) =>\n\t\t\t\tnew JunctionDisconnectHandler())\n\t\t\t.addService('junctionTableManager', ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema }) =>\n\t\t\t\tnew JunctionTableManager(schema.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory))\n\t\t\t.addService('deleteExecutor', ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema }) =>\n\t\t\t\tnew DeleteExecutor(schema.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory))\n\t\t\t.addService('updater', ({ predicateFactory, updateBuilderFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Updater(schema.model, schemaDatabaseMetadata, predicateFactory, updateBuilderFactory))\n\t\t\t.addService('inserter', ({ insertBuilderFactory, providers, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Inserter(schema.model, schemaDatabaseMetadata, insertBuilderFactory, providers, { uuidVersion: schema.settings.content?.uuidVersion }))\n\t\t\t.addService('mapperFactory', ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema, schemaDatabaseMetadata }) => {\n\t\t\t\treturn new MapperFactory(\n\t\t\t\t\tdb,\n\t\t\t\t\tidentityId,\n\t\t\t\t\tschema.model,\n\t\t\t\t\tschemaDatabaseMetadata,\n\t\t\t\t\tpredicatesInjector,\n\t\t\t\t\tselectBuilderFactory,\n\t\t\t\t\tuniqueWhereExpander,\n\t\t\t\t\twhereBuilder,\n\t\t\t\t\tjunctionTableManager,\n\t\t\t\t\tdeleteExecutor,\n\t\t\t\t\tupdater,\n\t\t\t\t\tinserter,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\tproviders,\n\t\t\t\t)\n\t\t\t})\n\n\t\t\t.addService('queryAstFactory', () =>\n\t\t\t\tnew GraphQlQueryAstFactory())\n\t\t\t.addService('readResolver', ({ mapperFactory, queryAstFactory }) =>\n\t\t\t\tnew ReadResolver(mapperFactory, queryAstFactory))\n\t\t\t.addService('validationDependencyCollector', () =>\n\t\t\t\tnew DependencyCollector())\n\t\t\t.addService('validationQueryAstFactory', ({ schema }) =>\n\t\t\t\tnew QueryAstFactory(schema.model))\n\t\t\t.addService('dataSelector', ({ validationQueryAstFactory, schema }) =>\n\t\t\t\tnew ValidationDataSelector(schema.model, validationQueryAstFactory))\n\t\t\t.addService('columnValueResolver', ({ providers }) =>\n\t\t\t\tnew ColumnValueResolver(providers))\n\t\t\t.addService('entityRulesResolver', ({ schema }) =>\n\t\t\t\tnew EntityRulesResolver(schema.validation, schema.model))\n\t\t\t.addService('inputPreValidator', ({ entityRulesResolver, columnValueResolver, dataSelector, schema }) =>\n\t\t\t\tnew InputPreValidator(schema.model, entityRulesResolver, columnValueResolver, dataSelector))\n\t\t\t.addService('mutationResolver', ({ mapperFactory, inputPreValidator, queryAstFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew MutationResolver(schema.model, mapperFactory, inputPreValidator, queryAstFactory, schemaDatabaseMetadata))\n\t\t\t.addService('validationResolver', ({ inputPreValidator, mapperFactory }) =>\n\t\t\t\tnew ValidationResolver(mapperFactory, inputPreValidator))\n\t\t\t.addService('refreshViewResolver', ({ schema, mapperFactory }) =>\n\t\t\t\tnew RefreshViewResolver(schema, mapperFactory))\n\t}\n\n\tpublic create(args: ExecutionContainerArgs): ExecutionContainer {\n\t\treturn this.createBuilder(args).build().pick('validationResolver', 'readResolver', 'mutationResolver', 'refreshViewResolver')\n\t}\n}\n\n"],"names":["Builder","schema","VariableInjector","PredicateFactory","PredicatesInjector","JoinBuilder","ConditionBuilder","PathFactory","WhereOptimizer","ConditionOptimizer","WhereBuilder","OrderByBuilder","RelationFetcher","FieldsVisitorFactory","MetaHandler","UniqueWhereExpander","HasManyToHasOneReducerExecutionHandler","PaginatedHasManyExecutionHandler","HasManyToHasOneReducer","PaginatedHasManyFieldProvider","SelectBuilder","InsertBuilderFactory","UpdateBuilderFactory","JunctionConnectHandler","JunctionDisconnectHandler","JunctionTableManager","DeleteExecutor","schemaDatabaseMetadata","Updater","Inserter","MapperFactory","GraphQlQueryAstFactory","ReadResolver","DependencyCollector","QueryAstFactory","ValidationDataSelector","ColumnValueResolver","EntityRulesResolver","InputPreValidator","MutationResolver","ValidationResolver","RefreshViewResolver"],"mappings":"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"}
@@ -4,6 +4,7 @@ import { PredicateFactory } from "./acl/PredicateFactory.js";
4
4
  import { PredicatesInjector } from "./acl/PredicatesInjector.js";
5
5
  import { VariableInjector } from "./acl/VariableInjector.js";
6
6
  import "@contember/database";
7
+ import "node:crypto";
7
8
  import { FieldsVisitorFactory } from "./mapper/select/handlers/FieldsVisitorFactory.js";
8
9
  import { MetaHandler } from "./mapper/select/handlers/MetaHandler.js";
9
10
  import { ConditionBuilder } from "./mapper/select/ConditionBuilder.js";
@@ -42,6 +43,7 @@ import { QueryAstFactory } from "./input-validation/QueryAstFactory.js";
42
43
  import "./input-validation/ValidationContext.js";
43
44
  import { ValidationDataSelector } from "./input-validation/ValidationDataSelector.js";
44
45
  import "./input-validation/ValidationEvaluation.js";
46
+ import { RefreshViewResolver } from "./resolvers/RefreshViewResolver.js";
45
47
  import { MapperFactory } from "./mapper/MapperFactory.js";
46
48
  var __defProp = Object.defineProperty;
47
49
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -63,7 +65,7 @@ class ExecutionContainerFactory {
63
65
  pathFactory,
64
66
  whereOptimized,
65
67
  (schema2.settings.content?.useExistsInHasManyFilter ?? schema2.settings.useExistsInHasManyFilter) === true
66
- )).addService("orderByBuilder", ({ joinBuilder, schema: schema2 }) => new OrderByBuilder(schema2.model, joinBuilder)).addService("relationFetcher", ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) => new RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory)).addService("fieldsVisitorFactory", ({ relationFetcher, predicateFactory, schema: schema2 }) => new FieldsVisitorFactory(relationFetcher, predicateFactory, schema2.settings.content ?? {})).addService("metaHandler", ({ whereBuilder, predicateFactory }) => new MetaHandler(whereBuilder, predicateFactory)).addService("uniqueWhereExpander", ({ schema: schema2 }) => new UniqueWhereExpander(schema2.model)).addService("hasManyToHasOneReducer", ({ uniqueWhereExpander, schema: schema2 }) => new HasManyToHasOneReducerExecutionHandler(schema2.model, uniqueWhereExpander)).addService("paginatedHasManyExecutionHandler", ({ relationFetcher, schema: schema2 }) => new PaginatedHasManyExecutionHandler(schema2.model, relationFetcher)).addService("selectHandlers", ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({
68
+ )).addService("orderByBuilder", ({ joinBuilder, schema: schema2 }) => new OrderByBuilder(schema2.model, joinBuilder)).addService("relationFetcher", ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) => new RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory)).addService("fieldsVisitorFactory", ({ relationFetcher, predicateFactory, schema: schema2, providers }) => new FieldsVisitorFactory(schema2.model, relationFetcher, predicateFactory, schema2.settings.content ?? {}, providers)).addService("metaHandler", ({ whereBuilder, predicateFactory }) => new MetaHandler(whereBuilder, predicateFactory)).addService("uniqueWhereExpander", ({ schema: schema2 }) => new UniqueWhereExpander(schema2.model)).addService("hasManyToHasOneReducer", ({ uniqueWhereExpander, schema: schema2 }) => new HasManyToHasOneReducerExecutionHandler(schema2.model, uniqueWhereExpander)).addService("paginatedHasManyExecutionHandler", ({ relationFetcher, schema: schema2 }) => new PaginatedHasManyExecutionHandler(schema2.model, relationFetcher)).addService("selectHandlers", ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({
67
69
  [HasManyToHasOneReducer.extensionName]: hasManyToHasOneReducer,
68
70
  [PaginatedHasManyFieldProvider.extensionName]: paginatedHasManyExecutionHandler
69
71
  })).addService("selectBuilderFactory", ({ whereBuilder, orderByBuilder, fieldsVisitorFactory, metaHandler, selectHandlers, pathFactory, predicateFactory, schema: schema2 }) => new class {
@@ -82,7 +84,7 @@ class ExecutionContainerFactory {
82
84
  predicateFactory
83
85
  );
84
86
  }
85
- }()).addService("insertBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new InsertBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("updateBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new UpdateBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("connectJunctionHandler", () => new JunctionConnectHandler()).addService("disconnectJunctionHandler", ({}) => new JunctionDisconnectHandler()).addService("junctionTableManager", ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema: schema2 }) => new JunctionTableManager(schema2.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory)).addService("deleteExecutor", ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema: schema2 }) => new DeleteExecutor(schema2.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory)).addService("updater", ({ predicateFactory, updateBuilderFactory, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Updater(schema2.model, schemaDatabaseMetadata2, predicateFactory, updateBuilderFactory)).addService("inserter", ({ insertBuilderFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Inserter(schema2.model, schemaDatabaseMetadata2, insertBuilderFactory, providers)).addService("mapperFactory", ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => {
87
+ }()).addService("insertBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new InsertBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("updateBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new UpdateBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("connectJunctionHandler", () => new JunctionConnectHandler()).addService("disconnectJunctionHandler", ({}) => new JunctionDisconnectHandler()).addService("junctionTableManager", ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema: schema2 }) => new JunctionTableManager(schema2.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory)).addService("deleteExecutor", ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema: schema2 }) => new DeleteExecutor(schema2.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory)).addService("updater", ({ predicateFactory, updateBuilderFactory, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Updater(schema2.model, schemaDatabaseMetadata2, predicateFactory, updateBuilderFactory)).addService("inserter", ({ insertBuilderFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Inserter(schema2.model, schemaDatabaseMetadata2, insertBuilderFactory, providers, { uuidVersion: schema2.settings.content?.uuidVersion })).addService("mapperFactory", ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => {
86
88
  return new MapperFactory(
87
89
  db,
88
90
  identityId,
@@ -99,10 +101,10 @@ class ExecutionContainerFactory {
99
101
  pathFactory,
100
102
  providers
101
103
  );
102
- }).addService("queryAstFactory", () => new GraphQlQueryAstFactory()).addService("readResolver", ({ mapperFactory, queryAstFactory }) => new ReadResolver(mapperFactory, queryAstFactory)).addService("validationDependencyCollector", () => new DependencyCollector()).addService("validationQueryAstFactory", ({ schema: schema2 }) => new QueryAstFactory(schema2.model)).addService("dataSelector", ({ validationQueryAstFactory, schema: schema2 }) => new ValidationDataSelector(schema2.model, validationQueryAstFactory)).addService("columnValueResolver", ({ providers }) => new ColumnValueResolver(providers)).addService("entityRulesResolver", ({ schema: schema2 }) => new EntityRulesResolver(schema2.validation, schema2.model)).addService("inputPreValidator", ({ entityRulesResolver, columnValueResolver, dataSelector, schema: schema2 }) => new InputPreValidator(schema2.model, entityRulesResolver, columnValueResolver, dataSelector)).addService("mutationResolver", ({ mapperFactory, inputPreValidator, queryAstFactory, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new MutationResolver(schema2.model, mapperFactory, inputPreValidator, queryAstFactory, schemaDatabaseMetadata2)).addService("validationResolver", ({ inputPreValidator, mapperFactory }) => new ValidationResolver(mapperFactory, inputPreValidator));
104
+ }).addService("queryAstFactory", () => new GraphQlQueryAstFactory()).addService("readResolver", ({ mapperFactory, queryAstFactory }) => new ReadResolver(mapperFactory, queryAstFactory)).addService("validationDependencyCollector", () => new DependencyCollector()).addService("validationQueryAstFactory", ({ schema: schema2 }) => new QueryAstFactory(schema2.model)).addService("dataSelector", ({ validationQueryAstFactory, schema: schema2 }) => new ValidationDataSelector(schema2.model, validationQueryAstFactory)).addService("columnValueResolver", ({ providers }) => new ColumnValueResolver(providers)).addService("entityRulesResolver", ({ schema: schema2 }) => new EntityRulesResolver(schema2.validation, schema2.model)).addService("inputPreValidator", ({ entityRulesResolver, columnValueResolver, dataSelector, schema: schema2 }) => new InputPreValidator(schema2.model, entityRulesResolver, columnValueResolver, dataSelector)).addService("mutationResolver", ({ mapperFactory, inputPreValidator, queryAstFactory, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new MutationResolver(schema2.model, mapperFactory, inputPreValidator, queryAstFactory, schemaDatabaseMetadata2)).addService("validationResolver", ({ inputPreValidator, mapperFactory }) => new ValidationResolver(mapperFactory, inputPreValidator)).addService("refreshViewResolver", ({ schema: schema2, mapperFactory }) => new RefreshViewResolver(schema2, mapperFactory));
103
105
  }
104
106
  create(args) {
105
- return this.createBuilder(args).build().pick("validationResolver", "readResolver", "mutationResolver");
107
+ return this.createBuilder(args).build().pick("validationResolver", "readResolver", "mutationResolver", "refreshViewResolver");
106
108
  }
107
109
  }
108
110
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutionContainer.js","sources":["../../../../packages/engine-content-api/src/ExecutionContainer.ts"],"sourcesContent":["import { PredicateFactory, PredicatesInjector, VariableInjector } from './acl'\nimport {\n\tConditionBuilder,\n\tFieldsVisitorFactory,\n\tJoinBuilder,\n\tMetaHandler,\n\tOrderByBuilder,\n\tRelationFetcher,\n\tWhereBuilder,\n} from './mapper/select'\nimport { UniqueWhereExpander } from './inputProcessing'\nimport { HasManyToHasOneReducer, HasManyToHasOneReducerExecutionHandler } from './extensions'\nimport {\n\tDeleteExecutor,\n\tInsertBuilderFactory,\n\tInserter,\n\tJunctionConnectHandler,\n\tJunctionDisconnectHandler,\n\tJunctionTableManager,\n\tMapperFactory,\n\tPathFactory,\n\tSelectBuilder,\n\tSelectBuilderFactory,\n\tSelectHydrator,\n\tUpdateBuilderFactory,\n\tUpdater,\n} from './mapper'\nimport { Builder } from '@contember/dic'\nimport { Acl, Model, Schema } from '@contember/schema'\nimport { Client, DatabaseMetadata, SelectBuilder as DbSelectBuilder } from '@contember/database'\nimport { Providers } from '@contember/schema-utils'\nimport { PaginatedHasManyExecutionHandler } from './extensions/paginatedHasMany/PaginatedHasManyExecutionHandler'\nimport { PaginatedHasManyFieldProvider } from './extensions/paginatedHasMany/PaginatedHasManyFieldProvider'\nimport { WhereOptimizer } from './mapper/select/optimizer/WhereOptimizer'\nimport { ConditionOptimizer } from './mapper/select/optimizer/ConditionOptimizer'\nimport { GraphQlQueryAstFactory, MutationResolver, ReadResolver, ValidationResolver } from './resolvers'\nimport {\n\tColumnValueResolver,\n\tDependencyCollector,\n\tEntityRulesResolver, InputPreValidator,\n\tQueryAstFactory,\n\tValidationDataSelector,\n} from './input-validation'\n\nexport type ExecutionContainerArgs = {\n\tschema: Schema\n\tschemaMeta: { id?: number }\n\tschemaDatabaseMetadata: DatabaseMetadata\n\tdb: Client\n\tidentityId: string\n\tidentityVariables: Acl.VariablesMap\n\tpermissions: Acl.Permissions\n\tsystemSchema: string\n\tproject: { slug: string }\n\tstage: { id: string; slug: string }\n}\n\nexport interface ExecutionContainer {\n\treadResolver: ReadResolver\n\tmutationResolver: MutationResolver\n\tvalidationResolver: ValidationResolver\n}\n\nexport type ExecutionContainerBuilder = ReturnType<ExecutionContainerFactory['createBuilderInternal']>\nexport type ExecutionContainerHook = (builder: ExecutionContainerBuilder) => ExecutionContainerBuilder\n\nexport class ExecutionContainerFactory {\n\tpublic readonly hooks: ExecutionContainerHook[] = []\n\n\tconstructor(\n\t\tprivate readonly providers: Providers,\n\t) {\n\t}\n\n\tcreateBuilder(args: ExecutionContainerArgs): ExecutionContainerBuilder {\n\t\tconst builder = this.createBuilderInternal(args)\n\t\treturn this.hooks.reduce((acc, cb) => cb(acc), builder)\n\t}\n\n\tcreateBuilderInternal({ permissions, identityVariables, identityId, db, schema, schemaMeta, systemSchema, stage, project, schemaDatabaseMetadata }: ExecutionContainerArgs) {\n\t\treturn new Builder({})\n\t\t\t.addService('systemSchema', () =>\n\t\t\t\tsystemSchema)\n\t\t\t.addService('db', () =>\n\t\t\t\tdb)\n\t\t\t.addService('project', () =>\n\t\t\t\tproject)\n\t\t\t.addService('stage', () =>\n\t\t\t\tstage)\n\t\t\t.addService('schema', () =>\n\t\t\t\tschema)\n\t\t\t.addService('schemaMeta', () =>\n\t\t\t\tschemaMeta)\n\t\t\t.addService('schemaDatabaseMetadata', () =>\n\t\t\t\tschemaDatabaseMetadata)\n\t\t\t.addService('providers', () =>\n\t\t\t\tthis.providers)\n\t\t\t.addService('variableInjector', ({ schema }) =>\n\t\t\t\tnew VariableInjector(schema.model, identityVariables))\n\t\t\t.addService('predicateFactory', ({ variableInjector, schema }) =>\n\t\t\t\tnew PredicateFactory(permissions, schema.model, variableInjector))\n\t\t\t.addService('predicatesInjector', ({ predicateFactory, schema }) =>\n\t\t\t\tnew PredicatesInjector(schema.model, predicateFactory))\n\t\t\t.addService('joinBuilder', ({ schema }) =>\n\t\t\t\tnew JoinBuilder(schema.model))\n\t\t\t.addService('conditionBuilder', () =>\n\t\t\t\tnew ConditionBuilder())\n\t\t\t.addService('pathFactory', () =>\n\t\t\t\tnew PathFactory())\n\t\t\t.addService('whereOptimized', ({ schema }) =>\n\t\t\t\tnew WhereOptimizer(schema.model, new ConditionOptimizer()))\n\t\t\t.addService('whereBuilder', ({ joinBuilder, conditionBuilder, pathFactory, whereOptimized, schema }) =>\n\t\t\t\tnew WhereBuilder(\n\t\t\t\t\tschema.model,\n\t\t\t\t\tjoinBuilder,\n\t\t\t\t\tconditionBuilder,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\twhereOptimized,\n\t\t\t\t\t(schema.settings.content?.useExistsInHasManyFilter ?? schema.settings.useExistsInHasManyFilter) === true,\n\t\t\t\t))\n\t\t\t.addService('orderByBuilder', ({ joinBuilder, schema }) =>\n\t\t\t\tnew OrderByBuilder(schema.model, joinBuilder))\n\t\t\t.addService('relationFetcher', ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) =>\n\t\t\t\tnew RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory))\n\t\t\t.addService('fieldsVisitorFactory', ({ relationFetcher, predicateFactory, schema }) =>\n\t\t\t\tnew FieldsVisitorFactory(relationFetcher, predicateFactory, schema.settings.content ?? {}))\n\t\t\t.addService('metaHandler', ({ whereBuilder, predicateFactory }) =>\n\t\t\t\tnew MetaHandler(whereBuilder, predicateFactory))\n\t\t\t.addService('uniqueWhereExpander', ({ schema }) =>\n\t\t\t\tnew UniqueWhereExpander(schema.model))\n\t\t\t.addService('hasManyToHasOneReducer', ({ uniqueWhereExpander, schema }) =>\n\t\t\t\tnew HasManyToHasOneReducerExecutionHandler(schema.model, uniqueWhereExpander))\n\t\t\t.addService('paginatedHasManyExecutionHandler', ({ relationFetcher, schema }) =>\n\t\t\t\tnew PaginatedHasManyExecutionHandler(schema.model, relationFetcher))\n\t\t\t.addService('selectHandlers', ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({\n\t\t\t\t[HasManyToHasOneReducer.extensionName]: hasManyToHasOneReducer,\n\t\t\t\t[PaginatedHasManyFieldProvider.extensionName]: paginatedHasManyExecutionHandler,\n\t\t\t}))\n\t\t\t.addService('selectBuilderFactory', ({ whereBuilder, orderByBuilder, fieldsVisitorFactory, metaHandler, selectHandlers, pathFactory, predicateFactory, schema }) =>\n\t\t\t\tnew (class implements SelectBuilderFactory {\n\t\t\t\t\tcreate(qb: DbSelectBuilder, hydrator: SelectHydrator, relationPath: Model.AnyRelationContext[]): SelectBuilder {\n\t\t\t\t\t\treturn new SelectBuilder(\n\t\t\t\t\t\t\tschema.model,\n\t\t\t\t\t\t\twhereBuilder,\n\t\t\t\t\t\t\torderByBuilder,\n\t\t\t\t\t\t\tmetaHandler,\n\t\t\t\t\t\t\tqb,\n\t\t\t\t\t\t\thydrator,\n\t\t\t\t\t\t\tfieldsVisitorFactory,\n\t\t\t\t\t\t\tselectHandlers,\n\t\t\t\t\t\t\tpathFactory,\n\t\t\t\t\t\t\trelationPath,\n\t\t\t\t\t\t\tpredicateFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t})())\n\t\t\t.addService('insertBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew InsertBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('updateBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew UpdateBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('connectJunctionHandler', () =>\n\t\t\t\tnew JunctionConnectHandler())\n\t\t\t.addService('disconnectJunctionHandler', ({}) =>\n\t\t\t\tnew JunctionDisconnectHandler())\n\t\t\t.addService('junctionTableManager', ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema }) =>\n\t\t\t\tnew JunctionTableManager(schema.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory))\n\t\t\t.addService('deleteExecutor', ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema }) =>\n\t\t\t\tnew DeleteExecutor(schema.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory))\n\t\t\t.addService('updater', ({ predicateFactory, updateBuilderFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Updater(schema.model, schemaDatabaseMetadata, predicateFactory, updateBuilderFactory))\n\t\t\t.addService('inserter', ({ insertBuilderFactory, providers, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Inserter(schema.model, schemaDatabaseMetadata, insertBuilderFactory, providers))\n\t\t\t.addService('mapperFactory', ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema, schemaDatabaseMetadata }) => {\n\t\t\t\treturn new MapperFactory(\n\t\t\t\t\tdb,\n\t\t\t\t\tidentityId,\n\t\t\t\t\tschema.model,\n\t\t\t\t\tschemaDatabaseMetadata,\n\t\t\t\t\tpredicatesInjector,\n\t\t\t\t\tselectBuilderFactory,\n\t\t\t\t\tuniqueWhereExpander,\n\t\t\t\t\twhereBuilder,\n\t\t\t\t\tjunctionTableManager,\n\t\t\t\t\tdeleteExecutor,\n\t\t\t\t\tupdater,\n\t\t\t\t\tinserter,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\tproviders,\n\t\t\t\t)\n\t\t\t})\n\n\t\t\t.addService('queryAstFactory', () =>\n\t\t\t\tnew GraphQlQueryAstFactory())\n\t\t\t.addService('readResolver', ({ mapperFactory, queryAstFactory }) =>\n\t\t\t\tnew ReadResolver(mapperFactory, queryAstFactory))\n\t\t\t.addService('validationDependencyCollector', () =>\n\t\t\t\tnew DependencyCollector())\n\t\t\t.addService('validationQueryAstFactory', ({ schema }) =>\n\t\t\t\tnew QueryAstFactory(schema.model))\n\t\t\t.addService('dataSelector', ({ validationQueryAstFactory, schema }) =>\n\t\t\t\tnew ValidationDataSelector(schema.model, validationQueryAstFactory))\n\t\t\t.addService('columnValueResolver', ({ providers }) =>\n\t\t\t\tnew ColumnValueResolver(providers))\n\t\t\t.addService('entityRulesResolver', ({ schema }) =>\n\t\t\t\tnew EntityRulesResolver(schema.validation, schema.model))\n\t\t\t.addService('inputPreValidator', ({ entityRulesResolver, columnValueResolver, dataSelector, schema }) =>\n\t\t\t\tnew InputPreValidator(schema.model, entityRulesResolver, columnValueResolver, dataSelector))\n\t\t\t.addService('mutationResolver', ({ mapperFactory, inputPreValidator, queryAstFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew MutationResolver(schema.model, mapperFactory, inputPreValidator, queryAstFactory, schemaDatabaseMetadata))\n\t\t\t.addService('validationResolver', ({ inputPreValidator, mapperFactory }) =>\n\t\t\t\tnew ValidationResolver(mapperFactory, inputPreValidator))\n\t}\n\n\tpublic create(args: ExecutionContainerArgs): ExecutionContainer {\n\t\treturn this.createBuilder(args).build().pick('validationResolver', 'readResolver', 'mutationResolver')\n\t}\n}\n\n"],"names":["schema","schemaDatabaseMetadata"],"mappings":"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"}
1
+ {"version":3,"file":"ExecutionContainer.js","sources":["../../../../packages/engine-content-api/src/ExecutionContainer.ts"],"sourcesContent":["import { PredicateFactory, PredicatesInjector, VariableInjector } from './acl'\nimport {\n\tConditionBuilder,\n\tFieldsVisitorFactory,\n\tJoinBuilder,\n\tMetaHandler,\n\tOrderByBuilder,\n\tRelationFetcher,\n\tWhereBuilder,\n} from './mapper/select'\nimport { UniqueWhereExpander } from './inputProcessing'\nimport { HasManyToHasOneReducer, HasManyToHasOneReducerExecutionHandler } from './extensions'\nimport {\n\tDeleteExecutor,\n\tInsertBuilderFactory,\n\tInserter,\n\tJunctionConnectHandler,\n\tJunctionDisconnectHandler,\n\tJunctionTableManager,\n\tMapperFactory,\n\tPathFactory,\n\tSelectBuilder,\n\tSelectBuilderFactory,\n\tSelectHydrator,\n\tUpdateBuilderFactory,\n\tUpdater,\n} from './mapper'\nimport { Builder } from '@contember/dic'\nimport { Acl, Model, Schema } from '@contember/schema'\nimport { Client, DatabaseMetadata, SelectBuilder as DbSelectBuilder } from '@contember/database'\nimport { ParsedMembership, Providers } from '@contember/schema-utils'\nimport { PaginatedHasManyExecutionHandler } from './extensions/paginatedHasMany/PaginatedHasManyExecutionHandler'\nimport { PaginatedHasManyFieldProvider } from './extensions/paginatedHasMany/PaginatedHasManyFieldProvider'\nimport { WhereOptimizer } from './mapper/select/optimizer/WhereOptimizer'\nimport { ConditionOptimizer } from './mapper/select/optimizer/ConditionOptimizer'\nimport { GraphQlQueryAstFactory, MutationResolver, ReadResolver, ValidationResolver } from './resolvers'\nimport {\n\tColumnValueResolver,\n\tDependencyCollector,\n\tEntityRulesResolver, InputPreValidator,\n\tQueryAstFactory,\n\tValidationDataSelector,\n} from './input-validation'\nimport { RefreshViewResolver } from './resolvers/RefreshViewResolver'\n\nexport type ExecutionContainerArgs = {\n\tschema: Schema\n\tschemaMeta: { id?: number }\n\tschemaDatabaseMetadata: DatabaseMetadata\n\tdb: Client\n\tidentityId: string\n\tidentityVariables: Acl.VariablesMap\n\tpermissions: Acl.Permissions\n\tsystemSchema: string\n\tproject: { slug: string }\n\tstage: { id: string; slug: string }\n}\n\nexport interface ExecutionContainer {\n\treadResolver: ReadResolver\n\tmutationResolver: MutationResolver\n\tvalidationResolver: ValidationResolver\n\trefreshViewResolver: RefreshViewResolver\n}\n\nexport type ExecutionContainerBuilder = ReturnType<ExecutionContainerFactory['createBuilderInternal']>\nexport type ExecutionContainerHook = (builder: ExecutionContainerBuilder) => ExecutionContainerBuilder\n\nexport class ExecutionContainerFactory {\n\tpublic readonly hooks: ExecutionContainerHook[] = []\n\n\tconstructor(\n\t\tprivate readonly providers: Providers,\n\t) {\n\t}\n\n\tcreateBuilder(args: ExecutionContainerArgs): ExecutionContainerBuilder {\n\t\tconst builder = this.createBuilderInternal(args)\n\t\treturn this.hooks.reduce((acc, cb) => cb(acc), builder)\n\t}\n\n\tcreateBuilderInternal({ permissions, identityVariables, identityId, db, schema, schemaMeta, systemSchema, stage, project, schemaDatabaseMetadata }: ExecutionContainerArgs) {\n\t\treturn new Builder({})\n\t\t\t.addService('systemSchema', () =>\n\t\t\t\tsystemSchema)\n\t\t\t.addService('db', () =>\n\t\t\t\tdb)\n\t\t\t.addService('project', () =>\n\t\t\t\tproject)\n\t\t\t.addService('stage', () =>\n\t\t\t\tstage)\n\t\t\t.addService('schema', () =>\n\t\t\t\tschema)\n\t\t\t.addService('schemaMeta', () =>\n\t\t\t\tschemaMeta)\n\t\t\t.addService('schemaDatabaseMetadata', () =>\n\t\t\t\tschemaDatabaseMetadata)\n\t\t\t.addService('providers', () =>\n\t\t\t\tthis.providers)\n\t\t\t.addService('variableInjector', ({ schema }) =>\n\t\t\t\tnew VariableInjector(schema.model, identityVariables))\n\t\t\t.addService('predicateFactory', ({ variableInjector, schema }) =>\n\t\t\t\tnew PredicateFactory(permissions, schema.model, variableInjector))\n\t\t\t.addService('predicatesInjector', ({ predicateFactory, schema }) =>\n\t\t\t\tnew PredicatesInjector(schema.model, predicateFactory))\n\t\t\t.addService('joinBuilder', ({ schema }) =>\n\t\t\t\tnew JoinBuilder(schema.model))\n\t\t\t.addService('conditionBuilder', () =>\n\t\t\t\tnew ConditionBuilder())\n\t\t\t.addService('pathFactory', () =>\n\t\t\t\tnew PathFactory())\n\t\t\t.addService('whereOptimized', ({ schema }) =>\n\t\t\t\tnew WhereOptimizer(schema.model, new ConditionOptimizer()))\n\t\t\t.addService('whereBuilder', ({ joinBuilder, conditionBuilder, pathFactory, whereOptimized, schema }) =>\n\t\t\t\tnew WhereBuilder(\n\t\t\t\t\tschema.model,\n\t\t\t\t\tjoinBuilder,\n\t\t\t\t\tconditionBuilder,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\twhereOptimized,\n\t\t\t\t\t(schema.settings.content?.useExistsInHasManyFilter ?? schema.settings.useExistsInHasManyFilter) === true,\n\t\t\t\t))\n\t\t\t.addService('orderByBuilder', ({ joinBuilder, schema }) =>\n\t\t\t\tnew OrderByBuilder(schema.model, joinBuilder))\n\t\t\t.addService('relationFetcher', ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) =>\n\t\t\t\tnew RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory))\n\t\t\t.addService('fieldsVisitorFactory', ({ relationFetcher, predicateFactory, schema, providers }) =>\n\t\t\t\tnew FieldsVisitorFactory(schema.model, relationFetcher, predicateFactory, schema.settings.content ?? {}, providers))\n\t\t\t.addService('metaHandler', ({ whereBuilder, predicateFactory }) =>\n\t\t\t\tnew MetaHandler(whereBuilder, predicateFactory))\n\t\t\t.addService('uniqueWhereExpander', ({ schema }) =>\n\t\t\t\tnew UniqueWhereExpander(schema.model))\n\t\t\t.addService('hasManyToHasOneReducer', ({ uniqueWhereExpander, schema }) =>\n\t\t\t\tnew HasManyToHasOneReducerExecutionHandler(schema.model, uniqueWhereExpander))\n\t\t\t.addService('paginatedHasManyExecutionHandler', ({ relationFetcher, schema }) =>\n\t\t\t\tnew PaginatedHasManyExecutionHandler(schema.model, relationFetcher))\n\t\t\t.addService('selectHandlers', ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({\n\t\t\t\t[HasManyToHasOneReducer.extensionName]: hasManyToHasOneReducer,\n\t\t\t\t[PaginatedHasManyFieldProvider.extensionName]: paginatedHasManyExecutionHandler,\n\t\t\t}))\n\t\t\t.addService('selectBuilderFactory', ({ whereBuilder, orderByBuilder, fieldsVisitorFactory, metaHandler, selectHandlers, pathFactory, predicateFactory, schema }) =>\n\t\t\t\tnew (class implements SelectBuilderFactory {\n\t\t\t\t\tcreate(qb: DbSelectBuilder, hydrator: SelectHydrator, relationPath: Model.AnyRelationContext[]): SelectBuilder {\n\t\t\t\t\t\treturn new SelectBuilder(\n\t\t\t\t\t\t\tschema.model,\n\t\t\t\t\t\t\twhereBuilder,\n\t\t\t\t\t\t\torderByBuilder,\n\t\t\t\t\t\t\tmetaHandler,\n\t\t\t\t\t\t\tqb,\n\t\t\t\t\t\t\thydrator,\n\t\t\t\t\t\t\tfieldsVisitorFactory,\n\t\t\t\t\t\t\tselectHandlers,\n\t\t\t\t\t\t\tpathFactory,\n\t\t\t\t\t\t\trelationPath,\n\t\t\t\t\t\t\tpredicateFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t})())\n\t\t\t.addService('insertBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew InsertBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('updateBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew UpdateBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('connectJunctionHandler', () =>\n\t\t\t\tnew JunctionConnectHandler())\n\t\t\t.addService('disconnectJunctionHandler', ({}) =>\n\t\t\t\tnew JunctionDisconnectHandler())\n\t\t\t.addService('junctionTableManager', ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema }) =>\n\t\t\t\tnew JunctionTableManager(schema.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory))\n\t\t\t.addService('deleteExecutor', ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema }) =>\n\t\t\t\tnew DeleteExecutor(schema.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory))\n\t\t\t.addService('updater', ({ predicateFactory, updateBuilderFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Updater(schema.model, schemaDatabaseMetadata, predicateFactory, updateBuilderFactory))\n\t\t\t.addService('inserter', ({ insertBuilderFactory, providers, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Inserter(schema.model, schemaDatabaseMetadata, insertBuilderFactory, providers, { uuidVersion: schema.settings.content?.uuidVersion }))\n\t\t\t.addService('mapperFactory', ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema, schemaDatabaseMetadata }) => {\n\t\t\t\treturn new MapperFactory(\n\t\t\t\t\tdb,\n\t\t\t\t\tidentityId,\n\t\t\t\t\tschema.model,\n\t\t\t\t\tschemaDatabaseMetadata,\n\t\t\t\t\tpredicatesInjector,\n\t\t\t\t\tselectBuilderFactory,\n\t\t\t\t\tuniqueWhereExpander,\n\t\t\t\t\twhereBuilder,\n\t\t\t\t\tjunctionTableManager,\n\t\t\t\t\tdeleteExecutor,\n\t\t\t\t\tupdater,\n\t\t\t\t\tinserter,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\tproviders,\n\t\t\t\t)\n\t\t\t})\n\n\t\t\t.addService('queryAstFactory', () =>\n\t\t\t\tnew GraphQlQueryAstFactory())\n\t\t\t.addService('readResolver', ({ mapperFactory, queryAstFactory }) =>\n\t\t\t\tnew ReadResolver(mapperFactory, queryAstFactory))\n\t\t\t.addService('validationDependencyCollector', () =>\n\t\t\t\tnew DependencyCollector())\n\t\t\t.addService('validationQueryAstFactory', ({ schema }) =>\n\t\t\t\tnew QueryAstFactory(schema.model))\n\t\t\t.addService('dataSelector', ({ validationQueryAstFactory, schema }) =>\n\t\t\t\tnew ValidationDataSelector(schema.model, validationQueryAstFactory))\n\t\t\t.addService('columnValueResolver', ({ providers }) =>\n\t\t\t\tnew ColumnValueResolver(providers))\n\t\t\t.addService('entityRulesResolver', ({ schema }) =>\n\t\t\t\tnew EntityRulesResolver(schema.validation, schema.model))\n\t\t\t.addService('inputPreValidator', ({ entityRulesResolver, columnValueResolver, dataSelector, schema }) =>\n\t\t\t\tnew InputPreValidator(schema.model, entityRulesResolver, columnValueResolver, dataSelector))\n\t\t\t.addService('mutationResolver', ({ mapperFactory, inputPreValidator, queryAstFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew MutationResolver(schema.model, mapperFactory, inputPreValidator, queryAstFactory, schemaDatabaseMetadata))\n\t\t\t.addService('validationResolver', ({ inputPreValidator, mapperFactory }) =>\n\t\t\t\tnew ValidationResolver(mapperFactory, inputPreValidator))\n\t\t\t.addService('refreshViewResolver', ({ schema, mapperFactory }) =>\n\t\t\t\tnew RefreshViewResolver(schema, mapperFactory))\n\t}\n\n\tpublic create(args: ExecutionContainerArgs): ExecutionContainer {\n\t\treturn this.createBuilder(args).build().pick('validationResolver', 'readResolver', 'mutationResolver', 'refreshViewResolver')\n\t}\n}\n\n"],"names":["schema","schemaDatabaseMetadata"],"mappings":"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"}
@@ -2,9 +2,10 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const schema = require("@contember/schema");
4
4
  class Authorizator {
5
- constructor(permissions, defaultCustomPrimary) {
5
+ constructor(permissions, defaultCustomPrimary, allowRefreshMaterializedView) {
6
6
  this.permissions = permissions;
7
7
  this.defaultCustomPrimary = defaultCustomPrimary;
8
+ this.allowRefreshMaterializedView = allowRefreshMaterializedView;
8
9
  }
9
10
  getEntityPermission(operation, entity) {
10
11
  if (!this.permissions[entity]) {
@@ -45,6 +46,9 @@ class Authorizator {
45
46
  isRootOperationDisallowed(entity, operation) {
46
47
  return this.permissions?.[entity]?.operations?.noRoot?.includes(operation) ?? false;
47
48
  }
49
+ isRefreshMaterializedViewAllowed(entity) {
50
+ return this.permissions?.[entity]?.operations?.refreshMaterializedView ?? this.allowRefreshMaterializedView;
51
+ }
48
52
  }
49
53
  exports.Authorizator = Authorizator;
50
54
  //# sourceMappingURL=Authorizator.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Authorizator.cjs","sources":["../../../../../packages/engine-content-api/src/acl/Authorizator.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\n\n\nexport type AuthorizationResult = 'yes' | 'no' | 'maybe'\n\nexport class Authorizator {\n\tconstructor(\n\t\tprivate readonly permissions: Acl.Permissions,\n\t\tprivate readonly defaultCustomPrimary: boolean,\n\t) {\n\t}\n\n\tgetEntityPermission(operation: Acl.Operation, entity: string): AuthorizationResult {\n\t\tif (!this.permissions[entity]) {\n\t\t\treturn 'no'\n\t\t}\n\t\tconst entityPermissions: Acl.EntityPermissions = this.permissions[entity]\n\n\t\tif (operation === Acl.Operation.delete) {\n\t\t\treturn this.predicateToResult(entityPermissions.operations.delete)\n\t\t}\n\t\tconst fieldPermissions = entityPermissions.operations[operation]\n\t\tif (!fieldPermissions) {\n\t\t\treturn 'no'\n\t\t}\n\t\treturn Object.values(fieldPermissions).filter(it => !!it).length > 0 ? 'yes' : 'no'\n\t}\n\n\tgetFieldPredicate(operation: Acl.Operation.create | Acl.Operation.read | Acl.Operation.update, entity: string, field: string): Acl.Predicate {\n\t\treturn this.permissions[entity]?.operations[operation]?.[field] ?? false\n\t}\n\n\tgetFieldPermissions(operation: Acl.Operation.create | Acl.Operation.read | Acl.Operation.update, entity: string, field: string): AuthorizationResult {\n\t\tconst fieldPermissions = this.getFieldPredicate(operation, entity, field)\n\t\tif (!fieldPermissions) {\n\t\t\treturn 'no'\n\t\t}\n\t\treturn this.predicateToResult(fieldPermissions)\n\t}\n\n\tprivate predicateToResult(predicate: Acl.Predicate | undefined): AuthorizationResult {\n\t\tif (!predicate) {\n\t\t\treturn 'no'\n\t\t}\n\t\tif (predicate === true) {\n\t\t\treturn 'yes'\n\t\t}\n\t\treturn 'maybe'\n\t}\n\n\n\tisCustomPrimaryAllowed(entity: string): boolean {\n\t\treturn this.permissions?.[entity]?.operations?.customPrimary ?? this.defaultCustomPrimary\n\t}\n\n\tisRootOperationDisallowed(entity: string, operation: Acl.Operation): boolean {\n\t\treturn this.permissions?.[entity]?.operations?.noRoot?.includes(operation) ?? false\n\t}\n}\n"],"names":["Acl"],"mappings":";;;AAKO,MAAM,aAAa;AAAA,EACzB,YACkB,aACA,sBAChB;AAFgB,SAAA,cAAA;AACA,SAAA,uBAAA;AAAA,EAAA;AAAA,EAIlB,oBAAoB,WAA0B,QAAqC;AAClF,QAAI,CAAC,KAAK,YAAY,MAAM,GAAG;AACvB,aAAA;AAAA,IAAA;AAEF,UAAA,oBAA2C,KAAK,YAAY,MAAM;AAEpE,QAAA,cAAcA,OAAAA,IAAI,UAAU,QAAQ;AACvC,aAAO,KAAK,kBAAkB,kBAAkB,WAAW,MAAM;AAAA,IAAA;AAE5D,UAAA,mBAAmB,kBAAkB,WAAW,SAAS;AAC/D,QAAI,CAAC,kBAAkB;AACf,aAAA;AAAA,IAAA;AAER,WAAO,OAAO,OAAO,gBAAgB,EAAE,OAAO,CAAA,OAAM,CAAC,CAAC,EAAE,EAAE,SAAS,IAAI,QAAQ;AAAA,EAAA;AAAA,EAGhF,kBAAkB,WAA6E,QAAgB,OAA8B;AACrI,WAAA,KAAK,YAAY,MAAM,GAAG,WAAW,SAAS,IAAI,KAAK,KAAK;AAAA,EAAA;AAAA,EAGpE,oBAAoB,WAA6E,QAAgB,OAAoC;AACpJ,UAAM,mBAAmB,KAAK,kBAAkB,WAAW,QAAQ,KAAK;AACxE,QAAI,CAAC,kBAAkB;AACf,aAAA;AAAA,IAAA;AAED,WAAA,KAAK,kBAAkB,gBAAgB;AAAA,EAAA;AAAA,EAGvC,kBAAkB,WAA2D;AACpF,QAAI,CAAC,WAAW;AACR,aAAA;AAAA,IAAA;AAER,QAAI,cAAc,MAAM;AAChB,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,EAAA;AAAA,EAIR,uBAAuB,QAAyB;AAC/C,WAAO,KAAK,cAAc,MAAM,GAAG,YAAY,iBAAiB,KAAK;AAAA,EAAA;AAAA,EAGtE,0BAA0B,QAAgB,WAAmC;AACrE,WAAA,KAAK,cAAc,MAAM,GAAG,YAAY,QAAQ,SAAS,SAAS,KAAK;AAAA,EAAA;AAEhF;;"}
1
+ {"version":3,"file":"Authorizator.cjs","sources":["../../../../../packages/engine-content-api/src/acl/Authorizator.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\n\n\nexport type AuthorizationResult = 'yes' | 'no' | 'maybe'\n\nexport class Authorizator {\n\tconstructor(\n\t\tprivate readonly permissions: Acl.Permissions,\n\t\tprivate readonly defaultCustomPrimary: boolean,\n\t\tprivate readonly allowRefreshMaterializedView: boolean,\n\t) {\n\t}\n\n\tgetEntityPermission(operation: Acl.Operation, entity: string): AuthorizationResult {\n\t\tif (!this.permissions[entity]) {\n\t\t\treturn 'no'\n\t\t}\n\t\tconst entityPermissions: Acl.EntityPermissions = this.permissions[entity]\n\n\t\tif (operation === Acl.Operation.delete) {\n\t\t\treturn this.predicateToResult(entityPermissions.operations.delete)\n\t\t}\n\t\tconst fieldPermissions = entityPermissions.operations[operation]\n\t\tif (!fieldPermissions) {\n\t\t\treturn 'no'\n\t\t}\n\t\treturn Object.values(fieldPermissions).filter(it => !!it).length > 0 ? 'yes' : 'no'\n\t}\n\n\tgetFieldPredicate(operation: Acl.Operation.create | Acl.Operation.read | Acl.Operation.update, entity: string, field: string): Acl.Predicate {\n\t\treturn this.permissions[entity]?.operations[operation]?.[field] ?? false\n\t}\n\n\tgetFieldPermissions(operation: Acl.Operation.create | Acl.Operation.read | Acl.Operation.update, entity: string, field: string): AuthorizationResult {\n\t\tconst fieldPermissions = this.getFieldPredicate(operation, entity, field)\n\t\tif (!fieldPermissions) {\n\t\t\treturn 'no'\n\t\t}\n\t\treturn this.predicateToResult(fieldPermissions)\n\t}\n\n\tprivate predicateToResult(predicate: Acl.Predicate | undefined): AuthorizationResult {\n\t\tif (!predicate) {\n\t\t\treturn 'no'\n\t\t}\n\t\tif (predicate === true) {\n\t\t\treturn 'yes'\n\t\t}\n\t\treturn 'maybe'\n\t}\n\n\n\tisCustomPrimaryAllowed(entity: string): boolean {\n\t\treturn this.permissions?.[entity]?.operations?.customPrimary ?? this.defaultCustomPrimary\n\t}\n\n\tisRootOperationDisallowed(entity: string, operation: Acl.Operation): boolean {\n\t\treturn this.permissions?.[entity]?.operations?.noRoot?.includes(operation) ?? false\n\t}\n\n\tisRefreshMaterializedViewAllowed(entity: string): boolean {\n\t\treturn this.permissions?.[entity]?.operations?.refreshMaterializedView ?? this.allowRefreshMaterializedView\n\t}\n}\n"],"names":["Acl"],"mappings":";;;AAKO,MAAM,aAAa;AAAA,EACzB,YACkB,aACA,sBACA,8BAChB;AAHgB,SAAA,cAAA;AACA,SAAA,uBAAA;AACA,SAAA,+BAAA;AAAA,EAAA;AAAA,EAIlB,oBAAoB,WAA0B,QAAqC;AAClF,QAAI,CAAC,KAAK,YAAY,MAAM,GAAG;AACvB,aAAA;AAAA,IAAA;AAEF,UAAA,oBAA2C,KAAK,YAAY,MAAM;AAEpE,QAAA,cAAcA,OAAAA,IAAI,UAAU,QAAQ;AACvC,aAAO,KAAK,kBAAkB,kBAAkB,WAAW,MAAM;AAAA,IAAA;AAE5D,UAAA,mBAAmB,kBAAkB,WAAW,SAAS;AAC/D,QAAI,CAAC,kBAAkB;AACf,aAAA;AAAA,IAAA;AAER,WAAO,OAAO,OAAO,gBAAgB,EAAE,OAAO,CAAA,OAAM,CAAC,CAAC,EAAE,EAAE,SAAS,IAAI,QAAQ;AAAA,EAAA;AAAA,EAGhF,kBAAkB,WAA6E,QAAgB,OAA8B;AACrI,WAAA,KAAK,YAAY,MAAM,GAAG,WAAW,SAAS,IAAI,KAAK,KAAK;AAAA,EAAA;AAAA,EAGpE,oBAAoB,WAA6E,QAAgB,OAAoC;AACpJ,UAAM,mBAAmB,KAAK,kBAAkB,WAAW,QAAQ,KAAK;AACxE,QAAI,CAAC,kBAAkB;AACf,aAAA;AAAA,IAAA;AAED,WAAA,KAAK,kBAAkB,gBAAgB;AAAA,EAAA;AAAA,EAGvC,kBAAkB,WAA2D;AACpF,QAAI,CAAC,WAAW;AACR,aAAA;AAAA,IAAA;AAER,QAAI,cAAc,MAAM;AAChB,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,EAAA;AAAA,EAIR,uBAAuB,QAAyB;AAC/C,WAAO,KAAK,cAAc,MAAM,GAAG,YAAY,iBAAiB,KAAK;AAAA,EAAA;AAAA,EAGtE,0BAA0B,QAAgB,WAAmC;AACrE,WAAA,KAAK,cAAc,MAAM,GAAG,YAAY,QAAQ,SAAS,SAAS,KAAK;AAAA,EAAA;AAAA,EAG/E,iCAAiC,QAAyB;AACzD,WAAO,KAAK,cAAc,MAAM,GAAG,YAAY,2BAA2B,KAAK;AAAA,EAAA;AAEjF;;"}
@@ -1,8 +1,9 @@
1
1
  import { Acl } from "@contember/schema";
2
2
  class Authorizator {
3
- constructor(permissions, defaultCustomPrimary) {
3
+ constructor(permissions, defaultCustomPrimary, allowRefreshMaterializedView) {
4
4
  this.permissions = permissions;
5
5
  this.defaultCustomPrimary = defaultCustomPrimary;
6
+ this.allowRefreshMaterializedView = allowRefreshMaterializedView;
6
7
  }
7
8
  getEntityPermission(operation, entity) {
8
9
  if (!this.permissions[entity]) {
@@ -43,6 +44,9 @@ class Authorizator {
43
44
  isRootOperationDisallowed(entity, operation) {
44
45
  return this.permissions?.[entity]?.operations?.noRoot?.includes(operation) ?? false;
45
46
  }
47
+ isRefreshMaterializedViewAllowed(entity) {
48
+ return this.permissions?.[entity]?.operations?.refreshMaterializedView ?? this.allowRefreshMaterializedView;
49
+ }
46
50
  }
47
51
  export {
48
52
  Authorizator
@@ -1 +1 @@
1
- {"version":3,"file":"Authorizator.js","sources":["../../../../../packages/engine-content-api/src/acl/Authorizator.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\n\n\nexport type AuthorizationResult = 'yes' | 'no' | 'maybe'\n\nexport class Authorizator {\n\tconstructor(\n\t\tprivate readonly permissions: Acl.Permissions,\n\t\tprivate readonly defaultCustomPrimary: boolean,\n\t) {\n\t}\n\n\tgetEntityPermission(operation: Acl.Operation, entity: string): AuthorizationResult {\n\t\tif (!this.permissions[entity]) {\n\t\t\treturn 'no'\n\t\t}\n\t\tconst entityPermissions: Acl.EntityPermissions = this.permissions[entity]\n\n\t\tif (operation === Acl.Operation.delete) {\n\t\t\treturn this.predicateToResult(entityPermissions.operations.delete)\n\t\t}\n\t\tconst fieldPermissions = entityPermissions.operations[operation]\n\t\tif (!fieldPermissions) {\n\t\t\treturn 'no'\n\t\t}\n\t\treturn Object.values(fieldPermissions).filter(it => !!it).length > 0 ? 'yes' : 'no'\n\t}\n\n\tgetFieldPredicate(operation: Acl.Operation.create | Acl.Operation.read | Acl.Operation.update, entity: string, field: string): Acl.Predicate {\n\t\treturn this.permissions[entity]?.operations[operation]?.[field] ?? false\n\t}\n\n\tgetFieldPermissions(operation: Acl.Operation.create | Acl.Operation.read | Acl.Operation.update, entity: string, field: string): AuthorizationResult {\n\t\tconst fieldPermissions = this.getFieldPredicate(operation, entity, field)\n\t\tif (!fieldPermissions) {\n\t\t\treturn 'no'\n\t\t}\n\t\treturn this.predicateToResult(fieldPermissions)\n\t}\n\n\tprivate predicateToResult(predicate: Acl.Predicate | undefined): AuthorizationResult {\n\t\tif (!predicate) {\n\t\t\treturn 'no'\n\t\t}\n\t\tif (predicate === true) {\n\t\t\treturn 'yes'\n\t\t}\n\t\treturn 'maybe'\n\t}\n\n\n\tisCustomPrimaryAllowed(entity: string): boolean {\n\t\treturn this.permissions?.[entity]?.operations?.customPrimary ?? this.defaultCustomPrimary\n\t}\n\n\tisRootOperationDisallowed(entity: string, operation: Acl.Operation): boolean {\n\t\treturn this.permissions?.[entity]?.operations?.noRoot?.includes(operation) ?? false\n\t}\n}\n"],"names":[],"mappings":";AAKO,MAAM,aAAa;AAAA,EACzB,YACkB,aACA,sBAChB;AAFgB,SAAA,cAAA;AACA,SAAA,uBAAA;AAAA,EAAA;AAAA,EAIlB,oBAAoB,WAA0B,QAAqC;AAClF,QAAI,CAAC,KAAK,YAAY,MAAM,GAAG;AACvB,aAAA;AAAA,IAAA;AAEF,UAAA,oBAA2C,KAAK,YAAY,MAAM;AAEpE,QAAA,cAAc,IAAI,UAAU,QAAQ;AACvC,aAAO,KAAK,kBAAkB,kBAAkB,WAAW,MAAM;AAAA,IAAA;AAE5D,UAAA,mBAAmB,kBAAkB,WAAW,SAAS;AAC/D,QAAI,CAAC,kBAAkB;AACf,aAAA;AAAA,IAAA;AAER,WAAO,OAAO,OAAO,gBAAgB,EAAE,OAAO,CAAA,OAAM,CAAC,CAAC,EAAE,EAAE,SAAS,IAAI,QAAQ;AAAA,EAAA;AAAA,EAGhF,kBAAkB,WAA6E,QAAgB,OAA8B;AACrI,WAAA,KAAK,YAAY,MAAM,GAAG,WAAW,SAAS,IAAI,KAAK,KAAK;AAAA,EAAA;AAAA,EAGpE,oBAAoB,WAA6E,QAAgB,OAAoC;AACpJ,UAAM,mBAAmB,KAAK,kBAAkB,WAAW,QAAQ,KAAK;AACxE,QAAI,CAAC,kBAAkB;AACf,aAAA;AAAA,IAAA;AAED,WAAA,KAAK,kBAAkB,gBAAgB;AAAA,EAAA;AAAA,EAGvC,kBAAkB,WAA2D;AACpF,QAAI,CAAC,WAAW;AACR,aAAA;AAAA,IAAA;AAER,QAAI,cAAc,MAAM;AAChB,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,EAAA;AAAA,EAIR,uBAAuB,QAAyB;AAC/C,WAAO,KAAK,cAAc,MAAM,GAAG,YAAY,iBAAiB,KAAK;AAAA,EAAA;AAAA,EAGtE,0BAA0B,QAAgB,WAAmC;AACrE,WAAA,KAAK,cAAc,MAAM,GAAG,YAAY,QAAQ,SAAS,SAAS,KAAK;AAAA,EAAA;AAEhF;"}
1
+ {"version":3,"file":"Authorizator.js","sources":["../../../../../packages/engine-content-api/src/acl/Authorizator.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\n\n\nexport type AuthorizationResult = 'yes' | 'no' | 'maybe'\n\nexport class Authorizator {\n\tconstructor(\n\t\tprivate readonly permissions: Acl.Permissions,\n\t\tprivate readonly defaultCustomPrimary: boolean,\n\t\tprivate readonly allowRefreshMaterializedView: boolean,\n\t) {\n\t}\n\n\tgetEntityPermission(operation: Acl.Operation, entity: string): AuthorizationResult {\n\t\tif (!this.permissions[entity]) {\n\t\t\treturn 'no'\n\t\t}\n\t\tconst entityPermissions: Acl.EntityPermissions = this.permissions[entity]\n\n\t\tif (operation === Acl.Operation.delete) {\n\t\t\treturn this.predicateToResult(entityPermissions.operations.delete)\n\t\t}\n\t\tconst fieldPermissions = entityPermissions.operations[operation]\n\t\tif (!fieldPermissions) {\n\t\t\treturn 'no'\n\t\t}\n\t\treturn Object.values(fieldPermissions).filter(it => !!it).length > 0 ? 'yes' : 'no'\n\t}\n\n\tgetFieldPredicate(operation: Acl.Operation.create | Acl.Operation.read | Acl.Operation.update, entity: string, field: string): Acl.Predicate {\n\t\treturn this.permissions[entity]?.operations[operation]?.[field] ?? false\n\t}\n\n\tgetFieldPermissions(operation: Acl.Operation.create | Acl.Operation.read | Acl.Operation.update, entity: string, field: string): AuthorizationResult {\n\t\tconst fieldPermissions = this.getFieldPredicate(operation, entity, field)\n\t\tif (!fieldPermissions) {\n\t\t\treturn 'no'\n\t\t}\n\t\treturn this.predicateToResult(fieldPermissions)\n\t}\n\n\tprivate predicateToResult(predicate: Acl.Predicate | undefined): AuthorizationResult {\n\t\tif (!predicate) {\n\t\t\treturn 'no'\n\t\t}\n\t\tif (predicate === true) {\n\t\t\treturn 'yes'\n\t\t}\n\t\treturn 'maybe'\n\t}\n\n\n\tisCustomPrimaryAllowed(entity: string): boolean {\n\t\treturn this.permissions?.[entity]?.operations?.customPrimary ?? this.defaultCustomPrimary\n\t}\n\n\tisRootOperationDisallowed(entity: string, operation: Acl.Operation): boolean {\n\t\treturn this.permissions?.[entity]?.operations?.noRoot?.includes(operation) ?? false\n\t}\n\n\tisRefreshMaterializedViewAllowed(entity: string): boolean {\n\t\treturn this.permissions?.[entity]?.operations?.refreshMaterializedView ?? this.allowRefreshMaterializedView\n\t}\n}\n"],"names":[],"mappings":";AAKO,MAAM,aAAa;AAAA,EACzB,YACkB,aACA,sBACA,8BAChB;AAHgB,SAAA,cAAA;AACA,SAAA,uBAAA;AACA,SAAA,+BAAA;AAAA,EAAA;AAAA,EAIlB,oBAAoB,WAA0B,QAAqC;AAClF,QAAI,CAAC,KAAK,YAAY,MAAM,GAAG;AACvB,aAAA;AAAA,IAAA;AAEF,UAAA,oBAA2C,KAAK,YAAY,MAAM;AAEpE,QAAA,cAAc,IAAI,UAAU,QAAQ;AACvC,aAAO,KAAK,kBAAkB,kBAAkB,WAAW,MAAM;AAAA,IAAA;AAE5D,UAAA,mBAAmB,kBAAkB,WAAW,SAAS;AAC/D,QAAI,CAAC,kBAAkB;AACf,aAAA;AAAA,IAAA;AAER,WAAO,OAAO,OAAO,gBAAgB,EAAE,OAAO,CAAA,OAAM,CAAC,CAAC,EAAE,EAAE,SAAS,IAAI,QAAQ;AAAA,EAAA;AAAA,EAGhF,kBAAkB,WAA6E,QAAgB,OAA8B;AACrI,WAAA,KAAK,YAAY,MAAM,GAAG,WAAW,SAAS,IAAI,KAAK,KAAK;AAAA,EAAA;AAAA,EAGpE,oBAAoB,WAA6E,QAAgB,OAAoC;AACpJ,UAAM,mBAAmB,KAAK,kBAAkB,WAAW,QAAQ,KAAK;AACxE,QAAI,CAAC,kBAAkB;AACf,aAAA;AAAA,IAAA;AAED,WAAA,KAAK,kBAAkB,gBAAgB;AAAA,EAAA;AAAA,EAGvC,kBAAkB,WAA2D;AACpF,QAAI,CAAC,WAAW;AACR,aAAA;AAAA,IAAA;AAER,QAAI,cAAc,MAAM;AAChB,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,EAAA;AAAA,EAIR,uBAAuB,QAAyB;AAC/C,WAAO,KAAK,cAAc,MAAM,GAAG,YAAY,iBAAiB,KAAK;AAAA,EAAA;AAAA,EAGtE,0BAA0B,QAAgB,WAAmC;AACrE,WAAA,KAAK,cAAc,MAAM,GAAG,YAAY,QAAQ,SAAS,SAAS,KAAK;AAAA,EAAA;AAAA,EAG/E,iCAAiC,QAAyB;AACzD,WAAO,KAAK,cAAc,MAAM,GAAG,YAAY,2BAA2B,KAAK;AAAA,EAAA;AAEjF;"}
@@ -10,7 +10,7 @@ class ColumnValueResolver {
10
10
  return "00000000-0000-0000-0000-000000000000";
11
11
  }
12
12
  try {
13
- return schemaUtils.resolveColumnValue(context, this.providers);
13
+ return schemaUtils.resolveColumnValue(context, this.providers, {});
14
14
  } catch (e) {
15
15
  if (e instanceof schemaUtils.NoDataError) {
16
16
  return void 0;
@@ -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.FieldValue | 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,SAAsG;AAC/H,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
+ {"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.FieldValue | 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,SAAsG;AAC/H,QAAI,QAAQ,OAAO,SAAS,QAAQ,OAAO,SAAS;AAC5C,aAAA;AAAA,IAAA;AAEJ,QAAA;AACH,aAAOA,YAAmB,mBAAA,SAAS,KAAK,WAAW,CAAA,CAAE;AAAA,aAC7C,GAAG;AACX,UAAI,aAAaC,YAAAA,aAAa;AACtB,eAAA;AAAA,MAAA;AAEF,YAAA;AAAA,IAAA;AAAA,EACP;AAEF;;"}
@@ -8,7 +8,7 @@ class ColumnValueResolver {
8
8
  return "00000000-0000-0000-0000-000000000000";
9
9
  }
10
10
  try {
11
- return resolveColumnValue(context, this.providers);
11
+ return resolveColumnValue(context, this.providers, {});
12
12
  } catch (e) {
13
13
  if (e instanceof NoDataError) {
14
14
  return void 0;
@@ -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.FieldValue | 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,SAAsG;AAC/H,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
+ {"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.FieldValue | 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,SAAsG;AAC/H,QAAI,QAAQ,OAAO,SAAS,QAAQ,OAAO,SAAS;AAC5C,aAAA;AAAA,IAAA;AAEJ,QAAA;AACH,aAAO,mBAAmB,SAAS,KAAK,WAAW,CAAA,CAAE;AAAA,aAC7C,GAAG;AACX,UAAI,aAAa,aAAa;AACtB,eAAA;AAAA,MAAA;AAEF,YAAA;AAAA,IAAA;AAAA,EACP;AAEF;"}
@@ -29,6 +29,9 @@ class DependencyCollector {
29
29
  const result = [];
30
30
  for (const arg of validator.args) {
31
31
  switch (arg.type) {
32
+ //case Validation.ArgumentType.path:
33
+ // result.push([...prefix, ...arg.path])
34
+ // break
32
35
  case schema.Validation.ArgumentType.validator:
33
36
  result.push(...DependencyCollector.doCollect(arg.validator, prefix));
34
37
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"DependencyCollector.cjs","sources":["../../../../../../packages/engine-content-api/src/input-validation/dependencies/DependencyCollector.ts"],"sourcesContent":["import { Validation } from '@contember/schema'\nimport { assertNever } from '../../utils'\nimport { InputValidation } from '@contember/schema-definition'\n\nexport class DependencyCollector {\n\tpublic static collect(validator: Validation.Validator): Dependencies {\n\t\tconst dependenciesList = DependencyCollector.doCollect(validator, [])\n\t\treturn dependenciesList.reduce((acc, deps) => this.withDependency(acc, deps), {})\n\t}\n\n\tprivate static withDependency(object: Dependencies, dependency: string[]): Dependencies {\n\t\tconst part = dependency.shift()\n\t\tif (!part) {\n\t\t\treturn object\n\t\t}\n\n\t\treturn {\n\t\t\t...object,\n\t\t\t[part]: this.withDependency(object[part] || {}, [...dependency]),\n\t\t}\n\t}\n\n\tprivate static doCollect(validator: Validation.Validator, prefix: string[]): DependenciesList {\n\t\tif (validator.operation === InputValidation.InContextOperation) {\n\t\t\tconst [pathArg, validatorArg] = validator.args\n\t\t\tconst newPrefix = [...prefix, ...pathArg.path]\n\t\t\tconst dependencies = DependencyCollector.doCollect(validatorArg.validator, newPrefix)\n\n\t\t\treturn [newPrefix, ...dependencies]\n\t\t}\n\n\t\tconst result: DependenciesList = []\n\t\tfor (const arg of validator.args) {\n\t\t\tswitch (arg.type) {\n\t\t\t\t//case Validation.ArgumentType.path:\n\t\t\t\t//\tresult.push([...prefix, ...arg.path])\n\t\t\t\t//\tbreak\n\t\t\t\tcase Validation.ArgumentType.validator:\n\t\t\t\t\tresult.push(...DependencyCollector.doCollect(arg.validator, prefix))\n\t\t\t\t\tbreak\n\t\t\t\tcase Validation.ArgumentType.literal:\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(arg)\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n}\n\nexport type DependenciesList = string[][]\n\nexport interface Dependencies {\n\t[field: string]: Dependencies\n}\n"],"names":["InputValidation","Validation","assertNever"],"mappings":";;;;;;AAIO,MAAM,oBAAoB;AAAA,EAChC,OAAc,QAAQ,WAA+C;AACpE,UAAM,mBAAmB,oBAAoB,UAAU,WAAW,CAAA,CAAE;AAC7D,WAAA,iBAAiB,OAAO,CAAC,KAAK,SAAS,KAAK,eAAe,KAAK,IAAI,GAAG,EAAE;AAAA,EAAA;AAAA,EAGjF,OAAe,eAAe,QAAsB,YAAoC;AACjF,UAAA,OAAO,WAAW,MAAM;AAC9B,QAAI,CAAC,MAAM;AACH,aAAA;AAAA,IAAA;AAGD,WAAA;AAAA,MACN,GAAG;AAAA,MACH,CAAC,IAAI,GAAG,KAAK,eAAe,OAAO,IAAI,KAAK,CAAA,GAAI,CAAC,GAAG,UAAU,CAAC;AAAA,IAChE;AAAA,EAAA;AAAA,EAGD,OAAe,UAAU,WAAiC,QAAoC;AACzF,QAAA,UAAU,cAAcA,iBAAA,gBAAgB,oBAAoB;AAC/D,YAAM,CAAC,SAAS,YAAY,IAAI,UAAU;AAC1C,YAAM,YAAY,CAAC,GAAG,QAAQ,GAAG,QAAQ,IAAI;AAC7C,YAAM,eAAe,oBAAoB,UAAU,aAAa,WAAW,SAAS;AAE7E,aAAA,CAAC,WAAW,GAAG,YAAY;AAAA,IAAA;AAGnC,UAAM,SAA2B,CAAC;AACvB,eAAA,OAAO,UAAU,MAAM;AACjC,cAAQ,IAAI,MAAM;AAAA,QAIjB,KAAKC,OAAAA,WAAW,aAAa;AAC5B,iBAAO,KAAK,GAAG,oBAAoB,UAAU,IAAI,WAAW,MAAM,CAAC;AACnE;AAAA,QACD,KAAKA,OAAAA,WAAW,aAAa;AAC5B;AAAA,QACD;AACCC,sBAAAA,YAAe;AAAA,MAAA;AAAA,IACjB;AAEM,WAAA;AAAA,EAAA;AAET;;"}
1
+ {"version":3,"file":"DependencyCollector.cjs","sources":["../../../../../../packages/engine-content-api/src/input-validation/dependencies/DependencyCollector.ts"],"sourcesContent":["import { Validation } from '@contember/schema'\nimport { assertNever } from '../../utils'\nimport { InputValidation } from '@contember/schema-definition'\n\nexport class DependencyCollector {\n\tpublic static collect(validator: Validation.Validator): Dependencies {\n\t\tconst dependenciesList = DependencyCollector.doCollect(validator, [])\n\t\treturn dependenciesList.reduce((acc, deps) => this.withDependency(acc, deps), {})\n\t}\n\n\tprivate static withDependency(object: Dependencies, dependency: string[]): Dependencies {\n\t\tconst part = dependency.shift()\n\t\tif (!part) {\n\t\t\treturn object\n\t\t}\n\n\t\treturn {\n\t\t\t...object,\n\t\t\t[part]: this.withDependency(object[part] || {}, [...dependency]),\n\t\t}\n\t}\n\n\tprivate static doCollect(validator: Validation.Validator, prefix: string[]): DependenciesList {\n\t\tif (validator.operation === InputValidation.InContextOperation) {\n\t\t\tconst [pathArg, validatorArg] = validator.args\n\t\t\tconst newPrefix = [...prefix, ...pathArg.path]\n\t\t\tconst dependencies = DependencyCollector.doCollect(validatorArg.validator, newPrefix)\n\n\t\t\treturn [newPrefix, ...dependencies]\n\t\t}\n\n\t\tconst result: DependenciesList = []\n\t\tfor (const arg of validator.args) {\n\t\t\tswitch (arg.type) {\n\t\t\t\t//case Validation.ArgumentType.path:\n\t\t\t\t//\tresult.push([...prefix, ...arg.path])\n\t\t\t\t//\tbreak\n\t\t\t\tcase Validation.ArgumentType.validator:\n\t\t\t\t\tresult.push(...DependencyCollector.doCollect(arg.validator, prefix))\n\t\t\t\t\tbreak\n\t\t\t\tcase Validation.ArgumentType.literal:\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(arg)\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n}\n\nexport type DependenciesList = string[][]\n\nexport interface Dependencies {\n\t[field: string]: Dependencies\n}\n"],"names":["InputValidation","Validation","assertNever"],"mappings":";;;;;;AAIO,MAAM,oBAAoB;AAAA,EAChC,OAAc,QAAQ,WAA+C;AACpE,UAAM,mBAAmB,oBAAoB,UAAU,WAAW,CAAA,CAAE;AAC7D,WAAA,iBAAiB,OAAO,CAAC,KAAK,SAAS,KAAK,eAAe,KAAK,IAAI,GAAG,EAAE;AAAA,EAAA;AAAA,EAGjF,OAAe,eAAe,QAAsB,YAAoC;AACjF,UAAA,OAAO,WAAW,MAAM;AAC9B,QAAI,CAAC,MAAM;AACH,aAAA;AAAA,IAAA;AAGD,WAAA;AAAA,MACN,GAAG;AAAA,MACH,CAAC,IAAI,GAAG,KAAK,eAAe,OAAO,IAAI,KAAK,CAAA,GAAI,CAAC,GAAG,UAAU,CAAC;AAAA,IAChE;AAAA,EAAA;AAAA,EAGD,OAAe,UAAU,WAAiC,QAAoC;AACzF,QAAA,UAAU,cAAcA,iBAAA,gBAAgB,oBAAoB;AAC/D,YAAM,CAAC,SAAS,YAAY,IAAI,UAAU;AAC1C,YAAM,YAAY,CAAC,GAAG,QAAQ,GAAG,QAAQ,IAAI;AAC7C,YAAM,eAAe,oBAAoB,UAAU,aAAa,WAAW,SAAS;AAE7E,aAAA,CAAC,WAAW,GAAG,YAAY;AAAA,IAAA;AAGnC,UAAM,SAA2B,CAAC;AACvB,eAAA,OAAO,UAAU,MAAM;AACjC,cAAQ,IAAI,MAAM;AAAA;AAAA;AAAA;AAAA,QAIjB,KAAKC,OAAAA,WAAW,aAAa;AAC5B,iBAAO,KAAK,GAAG,oBAAoB,UAAU,IAAI,WAAW,MAAM,CAAC;AACnE;AAAA,QACD,KAAKA,OAAAA,WAAW,aAAa;AAC5B;AAAA,QACD;AACCC,sBAAAA,YAAe;AAAA,MAAA;AAAA,IACjB;AAEM,WAAA;AAAA,EAAA;AAET;;"}
@@ -27,6 +27,9 @@ class DependencyCollector {
27
27
  const result = [];
28
28
  for (const arg of validator.args) {
29
29
  switch (arg.type) {
30
+ //case Validation.ArgumentType.path:
31
+ // result.push([...prefix, ...arg.path])
32
+ // break
30
33
  case Validation.ArgumentType.validator:
31
34
  result.push(...DependencyCollector.doCollect(arg.validator, prefix));
32
35
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"DependencyCollector.js","sources":["../../../../../../packages/engine-content-api/src/input-validation/dependencies/DependencyCollector.ts"],"sourcesContent":["import { Validation } from '@contember/schema'\nimport { assertNever } from '../../utils'\nimport { InputValidation } from '@contember/schema-definition'\n\nexport class DependencyCollector {\n\tpublic static collect(validator: Validation.Validator): Dependencies {\n\t\tconst dependenciesList = DependencyCollector.doCollect(validator, [])\n\t\treturn dependenciesList.reduce((acc, deps) => this.withDependency(acc, deps), {})\n\t}\n\n\tprivate static withDependency(object: Dependencies, dependency: string[]): Dependencies {\n\t\tconst part = dependency.shift()\n\t\tif (!part) {\n\t\t\treturn object\n\t\t}\n\n\t\treturn {\n\t\t\t...object,\n\t\t\t[part]: this.withDependency(object[part] || {}, [...dependency]),\n\t\t}\n\t}\n\n\tprivate static doCollect(validator: Validation.Validator, prefix: string[]): DependenciesList {\n\t\tif (validator.operation === InputValidation.InContextOperation) {\n\t\t\tconst [pathArg, validatorArg] = validator.args\n\t\t\tconst newPrefix = [...prefix, ...pathArg.path]\n\t\t\tconst dependencies = DependencyCollector.doCollect(validatorArg.validator, newPrefix)\n\n\t\t\treturn [newPrefix, ...dependencies]\n\t\t}\n\n\t\tconst result: DependenciesList = []\n\t\tfor (const arg of validator.args) {\n\t\t\tswitch (arg.type) {\n\t\t\t\t//case Validation.ArgumentType.path:\n\t\t\t\t//\tresult.push([...prefix, ...arg.path])\n\t\t\t\t//\tbreak\n\t\t\t\tcase Validation.ArgumentType.validator:\n\t\t\t\t\tresult.push(...DependencyCollector.doCollect(arg.validator, prefix))\n\t\t\t\t\tbreak\n\t\t\t\tcase Validation.ArgumentType.literal:\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(arg)\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n}\n\nexport type DependenciesList = string[][]\n\nexport interface Dependencies {\n\t[field: string]: Dependencies\n}\n"],"names":[],"mappings":";;;;AAIO,MAAM,oBAAoB;AAAA,EAChC,OAAc,QAAQ,WAA+C;AACpE,UAAM,mBAAmB,oBAAoB,UAAU,WAAW,CAAA,CAAE;AAC7D,WAAA,iBAAiB,OAAO,CAAC,KAAK,SAAS,KAAK,eAAe,KAAK,IAAI,GAAG,EAAE;AAAA,EAAA;AAAA,EAGjF,OAAe,eAAe,QAAsB,YAAoC;AACjF,UAAA,OAAO,WAAW,MAAM;AAC9B,QAAI,CAAC,MAAM;AACH,aAAA;AAAA,IAAA;AAGD,WAAA;AAAA,MACN,GAAG;AAAA,MACH,CAAC,IAAI,GAAG,KAAK,eAAe,OAAO,IAAI,KAAK,CAAA,GAAI,CAAC,GAAG,UAAU,CAAC;AAAA,IAChE;AAAA,EAAA;AAAA,EAGD,OAAe,UAAU,WAAiC,QAAoC;AACzF,QAAA,UAAU,cAAc,gBAAgB,oBAAoB;AAC/D,YAAM,CAAC,SAAS,YAAY,IAAI,UAAU;AAC1C,YAAM,YAAY,CAAC,GAAG,QAAQ,GAAG,QAAQ,IAAI;AAC7C,YAAM,eAAe,oBAAoB,UAAU,aAAa,WAAW,SAAS;AAE7E,aAAA,CAAC,WAAW,GAAG,YAAY;AAAA,IAAA;AAGnC,UAAM,SAA2B,CAAC;AACvB,eAAA,OAAO,UAAU,MAAM;AACjC,cAAQ,IAAI,MAAM;AAAA,QAIjB,KAAK,WAAW,aAAa;AAC5B,iBAAO,KAAK,GAAG,oBAAoB,UAAU,IAAI,WAAW,MAAM,CAAC;AACnE;AAAA,QACD,KAAK,WAAW,aAAa;AAC5B;AAAA,QACD;AACC,sBAAe;AAAA,MAAA;AAAA,IACjB;AAEM,WAAA;AAAA,EAAA;AAET;"}
1
+ {"version":3,"file":"DependencyCollector.js","sources":["../../../../../../packages/engine-content-api/src/input-validation/dependencies/DependencyCollector.ts"],"sourcesContent":["import { Validation } from '@contember/schema'\nimport { assertNever } from '../../utils'\nimport { InputValidation } from '@contember/schema-definition'\n\nexport class DependencyCollector {\n\tpublic static collect(validator: Validation.Validator): Dependencies {\n\t\tconst dependenciesList = DependencyCollector.doCollect(validator, [])\n\t\treturn dependenciesList.reduce((acc, deps) => this.withDependency(acc, deps), {})\n\t}\n\n\tprivate static withDependency(object: Dependencies, dependency: string[]): Dependencies {\n\t\tconst part = dependency.shift()\n\t\tif (!part) {\n\t\t\treturn object\n\t\t}\n\n\t\treturn {\n\t\t\t...object,\n\t\t\t[part]: this.withDependency(object[part] || {}, [...dependency]),\n\t\t}\n\t}\n\n\tprivate static doCollect(validator: Validation.Validator, prefix: string[]): DependenciesList {\n\t\tif (validator.operation === InputValidation.InContextOperation) {\n\t\t\tconst [pathArg, validatorArg] = validator.args\n\t\t\tconst newPrefix = [...prefix, ...pathArg.path]\n\t\t\tconst dependencies = DependencyCollector.doCollect(validatorArg.validator, newPrefix)\n\n\t\t\treturn [newPrefix, ...dependencies]\n\t\t}\n\n\t\tconst result: DependenciesList = []\n\t\tfor (const arg of validator.args) {\n\t\t\tswitch (arg.type) {\n\t\t\t\t//case Validation.ArgumentType.path:\n\t\t\t\t//\tresult.push([...prefix, ...arg.path])\n\t\t\t\t//\tbreak\n\t\t\t\tcase Validation.ArgumentType.validator:\n\t\t\t\t\tresult.push(...DependencyCollector.doCollect(arg.validator, prefix))\n\t\t\t\t\tbreak\n\t\t\t\tcase Validation.ArgumentType.literal:\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(arg)\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n}\n\nexport type DependenciesList = string[][]\n\nexport interface Dependencies {\n\t[field: string]: Dependencies\n}\n"],"names":[],"mappings":";;;;AAIO,MAAM,oBAAoB;AAAA,EAChC,OAAc,QAAQ,WAA+C;AACpE,UAAM,mBAAmB,oBAAoB,UAAU,WAAW,CAAA,CAAE;AAC7D,WAAA,iBAAiB,OAAO,CAAC,KAAK,SAAS,KAAK,eAAe,KAAK,IAAI,GAAG,EAAE;AAAA,EAAA;AAAA,EAGjF,OAAe,eAAe,QAAsB,YAAoC;AACjF,UAAA,OAAO,WAAW,MAAM;AAC9B,QAAI,CAAC,MAAM;AACH,aAAA;AAAA,IAAA;AAGD,WAAA;AAAA,MACN,GAAG;AAAA,MACH,CAAC,IAAI,GAAG,KAAK,eAAe,OAAO,IAAI,KAAK,CAAA,GAAI,CAAC,GAAG,UAAU,CAAC;AAAA,IAChE;AAAA,EAAA;AAAA,EAGD,OAAe,UAAU,WAAiC,QAAoC;AACzF,QAAA,UAAU,cAAc,gBAAgB,oBAAoB;AAC/D,YAAM,CAAC,SAAS,YAAY,IAAI,UAAU;AAC1C,YAAM,YAAY,CAAC,GAAG,QAAQ,GAAG,QAAQ,IAAI;AAC7C,YAAM,eAAe,oBAAoB,UAAU,aAAa,WAAW,SAAS;AAE7E,aAAA,CAAC,WAAW,GAAG,YAAY;AAAA,IAAA;AAGnC,UAAM,SAA2B,CAAC;AACvB,eAAA,OAAO,UAAU,MAAM;AACjC,cAAQ,IAAI,MAAM;AAAA;AAAA;AAAA;AAAA,QAIjB,KAAK,WAAW,aAAa;AAC5B,iBAAO,KAAK,GAAG,oBAAoB,UAAU,IAAI,WAAW,MAAM,CAAC;AACnE;AAAA,QACD,KAAK,WAAW,aAAa;AAC5B;AAAA,QACD;AACC,sBAAe;AAAA,MAAA;AAAA,IACjB;AAEM,WAAA;AAAA,EAAA;AAET;"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const schemaUtils = require("@contember/schema-utils");
4
4
  require("@contember/schema");
5
5
  const Database = require("@contember/database");
6
+ require("node:crypto");
6
7
  const exception = require("../exception.cjs");
7
8
  const OrderByHelper = require("./select/OrderByHelper.cjs");
8
9
  const Mutex = require("../utils/Mutex.cjs");