@contember/engine-system-api 0.12.0-beta.2 → 1.0.0-alpha.3

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 (296) hide show
  1. package/dist/src/SystemContainer.d.ts +15 -14
  2. package/dist/src/SystemContainer.d.ts.map +1 -1
  3. package/dist/src/SystemContainer.js +7 -11
  4. package/dist/src/SystemContainer.js.map +1 -1
  5. package/dist/src/index.d.ts +1 -1
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/index.js +1 -2
  8. package/dist/src/index.js.map +1 -1
  9. package/dist/src/model/ProjectInitializer.d.ts.map +1 -1
  10. package/dist/src/model/ProjectInitializer.js +7 -17
  11. package/dist/src/model/ProjectInitializer.js.map +1 -1
  12. package/dist/src/model/ProjectTruncateExecutor.js +3 -3
  13. package/dist/src/model/ProjectTruncateExecutor.js.map +1 -1
  14. package/dist/src/model/authorization/AuthorizationActions.d.ts +0 -20
  15. package/dist/src/model/authorization/AuthorizationActions.d.ts.map +1 -1
  16. package/dist/src/model/authorization/AuthorizationActions.js +0 -5
  17. package/dist/src/model/authorization/AuthorizationActions.js.map +1 -1
  18. package/dist/src/model/authorization/StagePermissionsFactory.d.ts.map +1 -1
  19. package/dist/src/model/authorization/StagePermissionsFactory.js +1 -21
  20. package/dist/src/model/authorization/StagePermissionsFactory.js.map +1 -1
  21. package/dist/src/model/commands/migrations/ModifyMigrationCommand.js +1 -1
  22. package/dist/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -1
  23. package/dist/src/model/commands/migrations/SaveMigrationCommand.js +1 -1
  24. package/dist/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -1
  25. package/dist/src/model/commands/stages/CreateOrUpdateStageCommand.d.ts.map +1 -1
  26. package/dist/src/model/commands/stages/CreateOrUpdateStageCommand.js +2 -3
  27. package/dist/src/model/commands/stages/CreateOrUpdateStageCommand.js.map +1 -1
  28. package/dist/src/model/commands/stages/index.d.ts +0 -1
  29. package/dist/src/model/commands/stages/index.d.ts.map +1 -1
  30. package/dist/src/model/commands/stages/index.js +0 -1
  31. package/dist/src/model/commands/stages/index.js.map +1 -1
  32. package/dist/src/model/database/DatabaseContext.js +1 -1
  33. package/dist/src/model/database/DatabaseContext.js.map +1 -1
  34. package/dist/src/model/dependencies/content/index.d.ts +0 -1
  35. package/dist/src/model/dependencies/content/index.d.ts.map +1 -1
  36. package/dist/src/model/dependencies/content/index.js +0 -1
  37. package/dist/src/model/dependencies/content/index.js.map +1 -1
  38. package/dist/src/model/dependencies/index.d.ts +1 -0
  39. package/dist/src/model/dependencies/index.d.ts.map +1 -1
  40. package/dist/src/model/dependencies/index.js +1 -0
  41. package/dist/src/model/dependencies/index.js.map +1 -1
  42. package/dist/src/model/dependencies/tenant/IdentityFetcher.d.ts +2 -1
  43. package/dist/src/model/dependencies/tenant/IdentityFetcher.d.ts.map +1 -1
  44. package/dist/src/model/dependencies/tenant/index.d.ts +2 -0
  45. package/dist/src/model/dependencies/tenant/index.d.ts.map +1 -0
  46. package/dist/src/model/{events/dependency → dependencies/tenant}/index.js +1 -5
  47. package/dist/src/model/dependencies/tenant/index.js.map +1 -0
  48. package/dist/src/model/events/EventResponseBuilder.d.ts +11 -0
  49. package/dist/src/model/events/EventResponseBuilder.d.ts.map +1 -0
  50. package/dist/src/model/events/{HistoryEventResponseBuilder.js → EventResponseBuilder.js} +19 -18
  51. package/dist/src/model/events/EventResponseBuilder.js.map +1 -0
  52. package/dist/src/model/events/EventResponseHelper.d.ts +3 -3
  53. package/dist/src/model/events/EventResponseHelper.js +3 -3
  54. package/dist/src/model/events/EventResponseHelper.js.map +1 -1
  55. package/dist/src/model/events/identityUtils.js +1 -1
  56. package/dist/src/model/events/identityUtils.js.map +1 -1
  57. package/dist/src/model/events/index.d.ts +1 -5
  58. package/dist/src/model/events/index.d.ts.map +1 -1
  59. package/dist/src/model/events/index.js +1 -5
  60. package/dist/src/model/events/index.js.map +1 -1
  61. package/dist/src/model/helpers/modelHelpers.js +1 -1
  62. package/dist/src/model/helpers/modelHelpers.js.map +1 -1
  63. package/dist/src/model/migrations/MigrationExecutor.d.ts.map +1 -1
  64. package/dist/src/model/migrations/MigrationExecutor.js +2 -2
  65. package/dist/src/model/migrations/MigrationExecutor.js.map +1 -1
  66. package/dist/src/model/migrations/ProjectMigrator.d.ts.map +1 -1
  67. package/dist/src/model/migrations/ProjectMigrator.js +6 -12
  68. package/dist/src/model/migrations/ProjectMigrator.js.map +1 -1
  69. package/dist/src/model/migrations/SchemaVersionBuilder.js +2 -2
  70. package/dist/src/model/migrations/SchemaVersionBuilder.js.map +1 -1
  71. package/dist/src/model/queries/events/EventQueryHelpers.d.ts +4 -3
  72. package/dist/src/model/queries/events/EventQueryHelpers.d.ts.map +1 -1
  73. package/dist/src/model/queries/events/EventQueryHelpers.js +4 -5
  74. package/dist/src/model/queries/events/EventQueryHelpers.js.map +1 -1
  75. package/dist/src/model/queries/events/EventsQuery.d.ts +12 -0
  76. package/dist/src/model/queries/events/EventsQuery.d.ts.map +1 -0
  77. package/dist/src/model/queries/events/EventsQuery.js +88 -0
  78. package/dist/src/model/queries/events/EventsQuery.js.map +1 -0
  79. package/dist/src/model/queries/events/OldValuesQuery.d.ts +7 -0
  80. package/dist/src/model/queries/events/OldValuesQuery.d.ts.map +1 -0
  81. package/dist/src/model/queries/events/OldValuesQuery.js +25 -0
  82. package/dist/src/model/queries/events/OldValuesQuery.js.map +1 -0
  83. package/dist/src/model/queries/events/index.d.ts +2 -0
  84. package/dist/src/model/queries/events/index.d.ts.map +1 -1
  85. package/dist/src/model/queries/events/index.js +2 -0
  86. package/dist/src/model/queries/events/index.js.map +1 -1
  87. package/dist/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js +2 -2
  88. package/dist/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -1
  89. package/dist/src/model/queries/migrations/ExecutedMigrationsQuery.js +1 -1
  90. package/dist/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -1
  91. package/dist/src/model/queries/stages/StageBySlugQuery.js +1 -1
  92. package/dist/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
  93. package/dist/src/model/queries/stages/StageQueryFactory.d.ts.map +1 -1
  94. package/dist/src/model/queries/stages/StageQueryFactory.js +0 -1
  95. package/dist/src/model/queries/stages/StageQueryFactory.js.map +1 -1
  96. package/dist/src/model/stages/StageCreator.d.ts +1 -2
  97. package/dist/src/model/stages/StageCreator.d.ts.map +1 -1
  98. package/dist/src/model/stages/StageCreator.js +2 -10
  99. package/dist/src/model/stages/StageCreator.js.map +1 -1
  100. package/dist/src/model/stages/index.d.ts +0 -1
  101. package/dist/src/model/stages/index.d.ts.map +1 -1
  102. package/dist/src/model/stages/index.js +0 -1
  103. package/dist/src/model/stages/index.js.map +1 -1
  104. package/dist/src/resolvers/ResolverContext.d.ts +4 -3
  105. package/dist/src/resolvers/ResolverContext.d.ts.map +1 -1
  106. package/dist/src/resolvers/ResolverContext.js +2 -2
  107. package/dist/src/resolvers/ResolverContext.js.map +1 -1
  108. package/dist/src/resolvers/ResolverFactory.d.ts +7 -11
  109. package/dist/src/resolvers/ResolverFactory.d.ts.map +1 -1
  110. package/dist/src/resolvers/ResolverFactory.js +21 -14
  111. package/dist/src/resolvers/ResolverFactory.js.map +1 -1
  112. package/dist/src/resolvers/mutation/MigrateMutationResolver.d.ts.map +1 -1
  113. package/dist/src/resolvers/mutation/MigrateMutationResolver.js +3 -2
  114. package/dist/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
  115. package/dist/src/resolvers/mutation/index.d.ts +1 -0
  116. package/dist/src/resolvers/mutation/index.d.ts.map +1 -1
  117. package/dist/src/resolvers/mutation/index.js +1 -0
  118. package/dist/src/resolvers/mutation/index.js.map +1 -1
  119. package/dist/src/resolvers/query/EventsQueryResolver.d.ts +11 -0
  120. package/dist/src/resolvers/query/EventsQueryResolver.d.ts.map +1 -0
  121. package/dist/src/resolvers/query/EventsQueryResolver.js +26 -0
  122. package/dist/src/resolvers/query/EventsQueryResolver.js.map +1 -0
  123. package/dist/src/resolvers/query/index.d.ts +1 -0
  124. package/dist/src/resolvers/query/index.d.ts.map +1 -1
  125. package/dist/src/resolvers/query/index.js +1 -0
  126. package/dist/src/resolvers/query/index.js.map +1 -1
  127. package/dist/src/resolvers/types/EventOldValuesResolver.d.ts +6 -0
  128. package/dist/src/resolvers/types/EventOldValuesResolver.d.ts.map +1 -0
  129. package/dist/src/resolvers/types/EventOldValuesResolver.js +11 -0
  130. package/dist/src/resolvers/types/EventOldValuesResolver.js.map +1 -0
  131. package/dist/src/resolvers/types/OldValuesHelpers.d.ts +3 -0
  132. package/dist/src/resolvers/types/OldValuesHelpers.d.ts.map +1 -0
  133. package/dist/src/resolvers/types/OldValuesHelpers.js +10 -0
  134. package/dist/src/resolvers/types/OldValuesHelpers.js.map +1 -0
  135. package/dist/src/resolvers/types/index.d.ts +2 -0
  136. package/dist/src/resolvers/types/index.d.ts.map +1 -0
  137. package/dist/src/resolvers/types/index.js +14 -0
  138. package/dist/src/resolvers/types/index.js.map +1 -0
  139. package/dist/src/schema/dev.graphql.js +1 -1
  140. package/dist/src/schema/dev.graphql.js.map +1 -1
  141. package/dist/src/schema/system.graphql.d.ts.map +1 -1
  142. package/dist/src/schema/system.graphql.js +47 -43
  143. package/dist/src/schema/system.graphql.js.map +1 -1
  144. package/dist/src/schema/types.d.ts +146 -170
  145. package/dist/src/schema/types.d.ts.map +1 -1
  146. package/dist/src/schema/types.js +14 -12
  147. package/dist/src/schema/types.js.map +1 -1
  148. package/dist/src/tsconfig.tsbuildinfo +1 -1
  149. package/dist/src/types.d.ts +0 -1
  150. package/dist/src/types.d.ts.map +1 -1
  151. package/dist/src/utils/batchQuery.js +1 -1
  152. package/dist/src/utils/batchQuery.js.map +1 -1
  153. package/dist/tests/cases/integration/systemApi/projectInitializer.test.js +1 -1
  154. package/dist/tests/cases/integration/systemApi/projectInitializer.test.js.map +1 -1
  155. package/dist/tests/src/asserts.js +1 -1
  156. package/dist/tests/src/asserts.js.map +1 -1
  157. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  158. package/migrations/2020-05-06-150000-composed-primary.js +4 -4
  159. package/migrations/2020-05-06-150000-composed-primary.test.js +3 -3
  160. package/migrations/2020-06-01-103000-event-trigger-perf.js +1 -1
  161. package/migrations/2020-06-01-103000-event-trigger-perf.test.js +3 -3
  162. package/migrations/2021-05-07-155800-event-log-rework.js +1 -1
  163. package/migrations/2021-05-19-1232000-event-log-fix-constraint.js +1 -1
  164. package/migrations/2021-12-21-155500-events-up.sql +6 -0
  165. package/migrations/index.js +1 -1
  166. package/migrations/tsconfig.tsbuildinfo +1 -1
  167. package/package.json +14 -14
  168. package/src/SystemContainer.ts +18 -26
  169. package/src/index.ts +0 -1
  170. package/src/model/ProjectInitializer.ts +5 -16
  171. package/src/model/authorization/AuthorizationActions.ts +0 -8
  172. package/src/model/authorization/StagePermissionsFactory.ts +0 -21
  173. package/src/model/commands/stages/CreateOrUpdateStageCommand.ts +1 -2
  174. package/src/model/commands/stages/index.ts +0 -1
  175. package/src/model/dependencies/content/index.ts +0 -1
  176. package/src/model/dependencies/index.ts +1 -0
  177. package/src/model/dependencies/tenant/IdentityFetcher.ts +3 -1
  178. package/src/model/dependencies/tenant/index.ts +1 -0
  179. package/src/model/events/{HistoryEventResponseBuilder.ts → EventResponseBuilder.ts} +13 -17
  180. package/src/model/events/EventResponseHelper.ts +3 -3
  181. package/src/model/events/index.ts +1 -5
  182. package/src/model/migrations/MigrationExecutor.ts +0 -2
  183. package/src/model/migrations/ProjectMigrator.ts +5 -11
  184. package/src/model/migrations/SchemaVersionBuilder.ts +1 -1
  185. package/src/model/queries/events/EventQueryHelpers.ts +15 -12
  186. package/src/model/queries/events/EventsQuery.ts +105 -0
  187. package/src/model/queries/events/OldValuesQuery.ts +23 -0
  188. package/src/model/queries/events/index.ts +2 -0
  189. package/src/model/queries/stages/StageQueryFactory.ts +0 -1
  190. package/src/model/stages/StageCreator.ts +1 -12
  191. package/src/model/stages/index.ts +0 -1
  192. package/src/resolvers/ResolverContext.ts +5 -4
  193. package/src/resolvers/ResolverFactory.ts +27 -37
  194. package/src/resolvers/mutation/MigrateMutationResolver.ts +4 -3
  195. package/src/resolvers/mutation/index.ts +1 -0
  196. package/src/resolvers/query/EventsQueryResolver.ts +42 -0
  197. package/src/resolvers/query/index.ts +1 -0
  198. package/src/resolvers/types/EventOldValuesResolver.ts +13 -0
  199. package/src/resolvers/types/OldValuesHelpers.ts +11 -0
  200. package/src/resolvers/types/index.ts +1 -0
  201. package/src/schema/system.graphql.ts +46 -42
  202. package/src/schema/types.ts +148 -175
  203. package/src/types.ts +0 -1
  204. package/tests/src/asserts.ts +1 -1
  205. package/dist/src/model/commands/stages/UpdateStageEventCommand.d.ts +0 -8
  206. package/dist/src/model/commands/stages/UpdateStageEventCommand.d.ts.map +0 -1
  207. package/dist/src/model/commands/stages/UpdateStageEventCommand.js +0 -21
  208. package/dist/src/model/commands/stages/UpdateStageEventCommand.js.map +0 -1
  209. package/dist/src/model/dependencies/content/ContentEventsApplier.d.ts +0 -23
  210. package/dist/src/model/dependencies/content/ContentEventsApplier.d.ts.map +0 -1
  211. package/dist/src/model/dependencies/content/ContentEventsApplier.js +0 -3
  212. package/dist/src/model/dependencies/content/ContentEventsApplier.js.map +0 -1
  213. package/dist/src/model/events/DependencyBuilder.d.ts +0 -8
  214. package/dist/src/model/events/DependencyBuilder.d.ts.map +0 -1
  215. package/dist/src/model/events/DependencyBuilder.js +0 -3
  216. package/dist/src/model/events/DependencyBuilder.js.map +0 -1
  217. package/dist/src/model/events/DiffBuilder.d.ts +0 -48
  218. package/dist/src/model/events/DiffBuilder.d.ts.map +0 -1
  219. package/dist/src/model/events/DiffBuilder.js +0 -95
  220. package/dist/src/model/events/DiffBuilder.js.map +0 -1
  221. package/dist/src/model/events/EventFilterValidator.d.ts +0 -12
  222. package/dist/src/model/events/EventFilterValidator.d.ts.map +0 -1
  223. package/dist/src/model/events/EventFilterValidator.js +0 -50
  224. package/dist/src/model/events/EventFilterValidator.js.map +0 -1
  225. package/dist/src/model/events/HistoryEventResponseBuilder.d.ts +0 -10
  226. package/dist/src/model/events/HistoryEventResponseBuilder.d.ts.map +0 -1
  227. package/dist/src/model/events/HistoryEventResponseBuilder.js.map +0 -1
  228. package/dist/src/model/events/TableReferencingResolver.d.ts +0 -8
  229. package/dist/src/model/events/TableReferencingResolver.d.ts.map +0 -1
  230. package/dist/src/model/events/TableReferencingResolver.js +0 -31
  231. package/dist/src/model/events/TableReferencingResolver.js.map +0 -1
  232. package/dist/src/model/events/dependency/CreatedRowReferenceDependencyBuilder.d.ts +0 -19
  233. package/dist/src/model/events/dependency/CreatedRowReferenceDependencyBuilder.d.ts.map +0 -1
  234. package/dist/src/model/events/dependency/CreatedRowReferenceDependencyBuilder.js +0 -79
  235. package/dist/src/model/events/dependency/CreatedRowReferenceDependencyBuilder.js.map +0 -1
  236. package/dist/src/model/events/dependency/DeletedRowReferenceDependencyBuilder.d.ts +0 -17
  237. package/dist/src/model/events/dependency/DeletedRowReferenceDependencyBuilder.d.ts.map +0 -1
  238. package/dist/src/model/events/dependency/DeletedRowReferenceDependencyBuilder.js +0 -76
  239. package/dist/src/model/events/dependency/DeletedRowReferenceDependencyBuilder.js.map +0 -1
  240. package/dist/src/model/events/dependency/DependencyBuilderList.d.ts +0 -9
  241. package/dist/src/model/events/dependency/DependencyBuilderList.d.ts.map +0 -1
  242. package/dist/src/model/events/dependency/DependencyBuilderList.js +0 -20
  243. package/dist/src/model/events/dependency/DependencyBuilderList.js.map +0 -1
  244. package/dist/src/model/events/dependency/SameRowDependencyBuilder.d.ts +0 -16
  245. package/dist/src/model/events/dependency/SameRowDependencyBuilder.d.ts.map +0 -1
  246. package/dist/src/model/events/dependency/SameRowDependencyBuilder.js +0 -38
  247. package/dist/src/model/events/dependency/SameRowDependencyBuilder.js.map +0 -1
  248. package/dist/src/model/events/dependency/TransactionDependencyBuilder.d.ts +0 -15
  249. package/dist/src/model/events/dependency/TransactionDependencyBuilder.d.ts.map +0 -1
  250. package/dist/src/model/events/dependency/TransactionDependencyBuilder.js +0 -30
  251. package/dist/src/model/events/dependency/TransactionDependencyBuilder.js.map +0 -1
  252. package/dist/src/model/events/dependency/index.d.ts +0 -6
  253. package/dist/src/model/events/dependency/index.d.ts.map +0 -1
  254. package/dist/src/model/events/dependency/index.js.map +0 -1
  255. package/dist/src/model/stages/StageTree.d.ts +0 -14
  256. package/dist/src/model/stages/StageTree.d.ts.map +0 -1
  257. package/dist/src/model/stages/StageTree.js +0 -38
  258. package/dist/src/model/stages/StageTree.js.map +0 -1
  259. package/dist/src/resolvers/helpers/StageFetchHelper.d.ts +0 -22
  260. package/dist/src/resolvers/helpers/StageFetchHelper.d.ts.map +0 -1
  261. package/dist/src/resolvers/helpers/StageFetchHelper.js +0 -45
  262. package/dist/src/resolvers/helpers/StageFetchHelper.js.map +0 -1
  263. package/dist/tests/cases/unit/events/createdRowReference.test.d.ts +0 -2
  264. package/dist/tests/cases/unit/events/createdRowReference.test.d.ts.map +0 -1
  265. package/dist/tests/cases/unit/events/createdRowReference.test.js +0 -138
  266. package/dist/tests/cases/unit/events/createdRowReference.test.js.map +0 -1
  267. package/dist/tests/cases/unit/events/deletedRowReference.test.d.ts +0 -2
  268. package/dist/tests/cases/unit/events/deletedRowReference.test.d.ts.map +0 -1
  269. package/dist/tests/cases/unit/events/deletedRowReference.test.js +0 -103
  270. package/dist/tests/cases/unit/events/deletedRowReference.test.js.map +0 -1
  271. package/dist/tests/cases/unit/events/sameRowDependency.test.d.ts +0 -2
  272. package/dist/tests/cases/unit/events/sameRowDependency.test.d.ts.map +0 -1
  273. package/dist/tests/cases/unit/events/sameRowDependency.test.js +0 -63
  274. package/dist/tests/cases/unit/events/sameRowDependency.test.js.map +0 -1
  275. package/dist/tests/cases/unit/events/transactionDependency.test.d.ts +0 -2
  276. package/dist/tests/cases/unit/events/transactionDependency.test.d.ts.map +0 -1
  277. package/dist/tests/cases/unit/events/transactionDependency.test.js +0 -62
  278. package/dist/tests/cases/unit/events/transactionDependency.test.js.map +0 -1
  279. package/src/model/commands/stages/UpdateStageEventCommand.ts +0 -16
  280. package/src/model/dependencies/content/ContentEventsApplier.ts +0 -27
  281. package/src/model/events/DependencyBuilder.ts +0 -9
  282. package/src/model/events/DiffBuilder.ts +0 -150
  283. package/src/model/events/EventFilterValidator.ts +0 -52
  284. package/src/model/events/TableReferencingResolver.ts +0 -45
  285. package/src/model/events/dependency/CreatedRowReferenceDependencyBuilder.ts +0 -80
  286. package/src/model/events/dependency/DeletedRowReferenceDependencyBuilder.ts +0 -75
  287. package/src/model/events/dependency/DependencyBuilderList.ts +0 -18
  288. package/src/model/events/dependency/SameRowDependencyBuilder.ts +0 -36
  289. package/src/model/events/dependency/TransactionDependencyBuilder.ts +0 -31
  290. package/src/model/events/dependency/index.ts +0 -5
  291. package/src/model/stages/StageTree.ts +0 -36
  292. package/src/resolvers/helpers/StageFetchHelper.ts +0 -48
  293. package/tests/cases/unit/events/createdRowReference.test.ts +0 -131
  294. package/tests/cases/unit/events/deletedRowReference.test.ts +0 -95
  295. package/tests/cases/unit/events/sameRowDependency.test.ts +0 -48
  296. package/tests/cases/unit/events/transactionDependency.test.ts +0 -47
@@ -1,48 +0,0 @@
1
- import { DependencyBuilder } from './DependencyBuilder';
2
- import { Stage } from '../dtos';
3
- import { ContentEvent } from '@contember/engine-common';
4
- import { DatabaseContext } from '../database';
5
- import { SchemaVersionBuilder } from '../migrations';
6
- import { EntitiesRelationsInput, EntitiesSelector } from '../dependencies';
7
- import { Acl, Input } from '@contember/schema';
8
- import { Identity } from '../authorization';
9
- import { ImmutableSet } from '../../utils/set';
10
- export declare type EventsPermissionsVerifierContext = {
11
- variables: Acl.VariablesMap;
12
- identity: Identity;
13
- };
14
- export declare class DiffBuilder {
15
- private readonly dependencyBuilder;
16
- private readonly schemaVersionBuilder;
17
- private readonly entitiesSelector;
18
- constructor(dependencyBuilder: DependencyBuilder, schemaVersionBuilder: SchemaVersionBuilder, entitiesSelector: EntitiesSelector);
19
- build(db: DatabaseContext, permissionContext: EventsPermissionsVerifierContext, baseStage: Stage, headStage: Stage, filter: ReadonlyArray<EventFilter> | null): Promise<DiffBuilderResponse>;
20
- private filterEvents;
21
- private fetchAffectedEntities;
22
- }
23
- export declare type DiffBuilderResponse = DiffBuilderOkResponse | DiffBuilderErrorResponse;
24
- export declare enum DiffBuilderErrorCode {
25
- notRebased = "notRebased",
26
- invalidFilter = "invalidFilter"
27
- }
28
- export declare class DiffBuilderErrorResponse {
29
- readonly error: DiffBuilderErrorCode;
30
- readonly message: string;
31
- readonly ok: false;
32
- constructor(error: DiffBuilderErrorCode, message: string);
33
- }
34
- export declare type EventWithDependencies = ContentEvent & {
35
- dependencies: ImmutableSet<string>;
36
- };
37
- export declare class DiffBuilderOkResponse {
38
- readonly events: EventWithDependencies[];
39
- readonly ok: true;
40
- constructor(events: EventWithDependencies[]);
41
- }
42
- export declare type EventFilter = {
43
- entity: string;
44
- id?: string;
45
- filter?: Input.Where;
46
- relations: EntitiesRelationsInput;
47
- };
48
- //# sourceMappingURL=DiffBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DiffBuilder.d.ts","sourceRoot":"","sources":["../../../../src/model/events/DiffBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAsB,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAkB,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAC1F,OAAO,EAAE,GAAG,EAAE,KAAK,EAAU,MAAM,mBAAmB,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,oBAAY,gCAAgC,GAAG;IAC9C,SAAS,EAAE,GAAG,CAAC,YAAY,CAAA;IAC3B,QAAQ,EAAE,QAAQ,CAAA;CAClB,CAAA;AAED,qBAAa,WAAW;IAEtB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAFhB,iBAAiB,EAAE,iBAAiB,EACpC,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB;IAGvC,KAAK,CACjB,EAAE,EAAE,eAAe,EACnB,iBAAiB,EAAE,gCAAgC,EACnD,SAAS,EAAE,KAAK,EAChB,SAAS,EAAE,KAAK,EAChB,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,GACvC,OAAO,CAAC,mBAAmB,CAAC;YAIjB,YAAY;YAsCZ,qBAAqB;CAgDnC;AAED,oBAAY,mBAAmB,GAAG,qBAAqB,GAAG,wBAAwB,CAAA;AAElF,oBAAY,oBAAoB;IAC/B,UAAU,eAAe;IACzB,aAAa,kBAAkB;CAC/B;AAED,qBAAa,wBAAwB;aAGR,KAAK,EAAE,oBAAoB;aAAkB,OAAO,EAAE,MAAM;IAFxF,SAAgB,EAAE,EAAE,KAAK,CAAQ;gBAEL,KAAK,EAAE,oBAAoB,EAAkB,OAAO,EAAE,MAAM;CACxF;AAED,oBAAY,qBAAqB,GAAG,YAAY,GAAG;IAAE,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;CAAE,CAAA;AAEzF,qBAAa,qBAAqB;aAGL,MAAM,EAAE,qBAAqB,EAAE;IAF3D,SAAgB,EAAE,EAAE,IAAI,CAAO;gBAEH,MAAM,EAAE,qBAAqB,EAAE;CAC3D;AAED,oBAAY,WAAW,GAAG;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,CAAA;IACpB,SAAS,EAAE,sBAAsB,CAAA;CACjC,CAAA"}
@@ -1,95 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DiffBuilderOkResponse = exports.DiffBuilderErrorResponse = exports.DiffBuilderErrorCode = exports.DiffBuilder = void 0;
4
- const helpers_1 = require("../helpers");
5
- const schema_utils_1 = require("@contember/schema-utils");
6
- const StagingDisabledError_1 = require("../../StagingDisabledError");
7
- class DiffBuilder {
8
- constructor(dependencyBuilder, schemaVersionBuilder, entitiesSelector) {
9
- this.dependencyBuilder = dependencyBuilder;
10
- this.schemaVersionBuilder = schemaVersionBuilder;
11
- this.entitiesSelector = entitiesSelector;
12
- }
13
- async build(db, permissionContext, baseStage, headStage, filter) {
14
- throw new StagingDisabledError_1.StagingDisabledError();
15
- }
16
- async filterEvents(events, eventDependencies, permissionContext, db, schema, baseStage, headStage, filter) {
17
- if (filter.length === 0) {
18
- return [];
19
- }
20
- const baseEntities = await this.fetchAffectedEntities(db, permissionContext, schema, baseStage, filter);
21
- const headEntities = await this.fetchAffectedEntities(db, permissionContext, schema, headStage, filter);
22
- const allIds = [...baseEntities, ...headEntities];
23
- const rootEvents = events.filter(it => it.rowId.some(id => allIds.includes(id)));
24
- const eventIds = new Set([]);
25
- const collectDependencies = (ids) => {
26
- ids.forEach(id => {
27
- if (eventIds.has(id)) {
28
- return;
29
- }
30
- eventIds.add(id);
31
- const deps = eventDependencies.get(id);
32
- if (deps) {
33
- collectDependencies(deps);
34
- }
35
- });
36
- };
37
- const rootEventIds = new Set(rootEvents.map(it => it.id));
38
- collectDependencies(rootEventIds);
39
- return events.filter(it => eventIds.has(it.id));
40
- }
41
- async fetchAffectedEntities(db, permissionContext, schema, stage, filter) {
42
- const affectedEntities = (await Promise.all(filter.map(async (it) => await this.entitiesSelector.getEntities({
43
- db: db.client.forSchema(helpers_1.formatSchemaName(stage)),
44
- schema: schema_utils_1.filterSchemaByStage(schema, stage.slug),
45
- identityVariables: permissionContext.variables,
46
- roles: permissionContext.identity.roles,
47
- }, {
48
- entity: it.entity,
49
- relations: it.relations,
50
- filter: it.id
51
- ? {
52
- [schema_utils_1.getEntity(schema.model, it.entity).primary]: { eq: it.id },
53
- }
54
- : it.filter || {},
55
- })))).flatMap(it => it);
56
- const collectIds = (result) => {
57
- const { id, ...rest } = result;
58
- return [
59
- id,
60
- ...Object.values(rest).flatMap(it => {
61
- if (!it) {
62
- return [];
63
- }
64
- if (Array.isArray(it)) {
65
- return it.flatMap(collectIds);
66
- }
67
- return collectIds(it);
68
- }),
69
- ];
70
- };
71
- return affectedEntities.flatMap(it => (it ? collectIds(it) : [])).filter(it => it !== null);
72
- }
73
- }
74
- exports.DiffBuilder = DiffBuilder;
75
- var DiffBuilderErrorCode;
76
- (function (DiffBuilderErrorCode) {
77
- DiffBuilderErrorCode["notRebased"] = "notRebased";
78
- DiffBuilderErrorCode["invalidFilter"] = "invalidFilter";
79
- })(DiffBuilderErrorCode = exports.DiffBuilderErrorCode || (exports.DiffBuilderErrorCode = {}));
80
- class DiffBuilderErrorResponse {
81
- constructor(error, message) {
82
- this.error = error;
83
- this.message = message;
84
- this.ok = false;
85
- }
86
- }
87
- exports.DiffBuilderErrorResponse = DiffBuilderErrorResponse;
88
- class DiffBuilderOkResponse {
89
- constructor(events) {
90
- this.events = events;
91
- this.ok = true;
92
- }
93
- }
94
- exports.DiffBuilderOkResponse = DiffBuilderOkResponse;
95
- //# sourceMappingURL=DiffBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DiffBuilder.js","sourceRoot":"","sources":["../../../../src/model/events/DiffBuilder.ts"],"names":[],"mappings":";;;AAOA,wCAA6C;AAC7C,0DAAwE;AAGxE,qEAAiE;AAOjE,MAAa,WAAW;IACvB,YACkB,iBAAoC,EACpC,oBAA0C,EAC1C,gBAAkC;QAFlC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,qBAAgB,GAAhB,gBAAgB,CAAkB;IACjD,CAAC;IAEG,KAAK,CAAC,KAAK,CACjB,EAAmB,EACnB,iBAAmD,EACnD,SAAgB,EAChB,SAAgB,EAChB,MAAyC;QAEzC,MAAM,IAAI,2CAAoB,EAAE,CAAA;IACjC,CAAC;IAEO,KAAK,CAAC,YAAY,CACzB,MAAsB,EACtB,iBAAqC,EACrC,iBAAmD,EACnD,EAAmB,EACnB,MAAc,EACd,SAAgB,EAChB,SAAgB,EAChB,MAAkC;QAElC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,EAAE,CAAA;SACT;QACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QACvG,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QACvG,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,YAAY,CAAC,CAAA;QAEjD,MAAM,UAAU,GAAmB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAChG,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,EAAE,CAAC,CAAA;QAEpC,MAAM,mBAAmB,GAAG,CAAC,GAAyB,EAAE,EAAE;YACzD,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBAChB,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACrB,OAAM;iBACN;gBACD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAChB,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACtC,IAAI,IAAI,EAAE;oBACT,mBAAmB,CAAC,IAAI,CAAC,CAAA;iBACzB;YACF,CAAC,CAAC,CAAA;QACH,CAAC,CAAA;QACD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACzD,mBAAmB,CAAC,YAAY,CAAC,CAAA;QAEjC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAChD,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAClC,EAAmB,EACnB,iBAAmD,EACnD,MAAc,EACd,KAAY,EACZ,MAA8B;QAE9B,MAAM,gBAAgB,GAAG,CACxB,MAAM,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,GAAG,CACT,KAAK,EAAC,EAAE,EAAC,EAAE,CACV,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CACtC;YACC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,0BAAgB,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,EAAE,kCAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;YAC/C,iBAAiB,EAAE,iBAAiB,CAAC,SAAS;YAC9C,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAK;SACvC,EACD;YACC,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,MAAM,EAAE,EAAE,CAAC,EAAE;gBACZ,CAAC,CAAC;oBACD,CAAC,wBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;iBACzD;gBACH,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE;SAClB,CACD,CACF,CACD,CACD,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACnB,MAAM,UAAU,GAAG,CAAC,MAAsB,EAAY,EAAE;YACvD,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;YAC9B,OAAO;gBACN,EAAE;gBACF,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACnC,IAAI,CAAC,EAAE,EAAE;wBACR,OAAO,EAAE,CAAA;qBACT;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACtB,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;qBAC7B;oBACD,OAAO,UAAU,CAAC,EAAE,CAAC,CAAA;gBACtB,CAAC,CAAC;aACF,CAAA;QACF,CAAC,CAAA;QACD,OAAO,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAA;IAC5F,CAAC;CACD;AAvGD,kCAuGC;AAID,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC/B,iDAAyB,CAAA;IACzB,uDAA+B,CAAA;AAChC,CAAC,EAHW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAG/B;AAED,MAAa,wBAAwB;IAGpC,YAA4B,KAA2B,EAAkB,OAAe;QAA5D,UAAK,GAAL,KAAK,CAAsB;QAAkB,YAAO,GAAP,OAAO,CAAQ;QAFxE,OAAE,GAAU,KAAK,CAAA;IAE0D,CAAC;CAC5F;AAJD,4DAIC;AAID,MAAa,qBAAqB;IAGjC,YAA4B,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;QAF3C,OAAE,GAAS,IAAI,CAAA;IAE+B,CAAC;CAC/D;AAJD,sDAIC"}
@@ -1,12 +0,0 @@
1
- import { Model } from '@contember/schema';
2
- import { EventFilter } from './DiffBuilder';
3
- export declare class InvalidFilterError {
4
- readonly message: string;
5
- constructor(message: string);
6
- }
7
- export declare class EventFilterValidator {
8
- static validateFilter(model: Model.Schema, filter: EventFilter): void;
9
- private static getEntity;
10
- private static validateRelations;
11
- }
12
- //# sourceMappingURL=EventFilterValidator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventFilterValidator.d.ts","sourceRoot":"","sources":["../../../../src/model/events/EventFilterValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAI3C,qBAAa,kBAAkB;aACF,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;CAC3C;AAED,qBAAa,oBAAoB;WAClB,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAK5E,OAAO,CAAC,MAAM,CAAC,SAAS;IAWxB,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAyBhC"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventFilterValidator = exports.InvalidFilterError = void 0;
4
- const schema_utils_1 = require("@contember/schema-utils");
5
- class InvalidFilterError {
6
- constructor(message) {
7
- this.message = message;
8
- }
9
- }
10
- exports.InvalidFilterError = InvalidFilterError;
11
- class EventFilterValidator {
12
- static validateFilter(model, filter) {
13
- const entity = EventFilterValidator.getEntity(model, filter.entity);
14
- EventFilterValidator.validateRelations(model, entity, filter.relations, [entity.name]);
15
- }
16
- static getEntity(model, entityName) {
17
- try {
18
- return schema_utils_1.getEntity(model, entityName);
19
- }
20
- catch (e) {
21
- if (e instanceof schema_utils_1.ModelError && e.code === schema_utils_1.ModelErrorCode.ENTITY_NOT_FOUND) {
22
- throw new InvalidFilterError(`${entityName}: entity not found`);
23
- }
24
- throw e;
25
- }
26
- }
27
- static validateRelations(model, entity, relations, path) {
28
- for (const relation of relations) {
29
- const newPath = [...path, relation.name];
30
- try {
31
- const targetEntity = schema_utils_1.acceptFieldVisitor(model, entity, relation.name, {
32
- visitColumn: () => {
33
- throw new InvalidFilterError(`${newPath.join('.')}: not a relation`);
34
- },
35
- visitRelation: ({}, {}, targetEntity) => {
36
- return targetEntity;
37
- },
38
- });
39
- EventFilterValidator.validateRelations(model, targetEntity, relation.relations, newPath);
40
- }
41
- catch (e) {
42
- if (e instanceof schema_utils_1.ModelError && e.code === schema_utils_1.ModelErrorCode.FIELD_NOT_FOUND) {
43
- throw new InvalidFilterError(`${newPath.join('.')}: field not found`);
44
- }
45
- }
46
- }
47
- }
48
- }
49
- exports.EventFilterValidator = EventFilterValidator;
50
- //# sourceMappingURL=EventFilterValidator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventFilterValidator.js","sourceRoot":"","sources":["../../../../src/model/events/EventFilterValidator.ts"],"names":[],"mappings":";;;AAEA,0DAAmG;AAGnG,MAAa,kBAAkB;IAC9B,YAA4B,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;CAC/C;AAFD,gDAEC;AAED,MAAa,oBAAoB;IACzB,MAAM,CAAC,cAAc,CAAC,KAAmB,EAAE,MAAmB;QACpE,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACnE,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IACvF,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,KAAmB,EAAE,UAAkB;QAC/D,IAAI;YACH,OAAO,wBAAS,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;SACnC;QAAC,OAAO,CAAC,EAAE;YACX,IAAI,CAAC,YAAY,yBAAU,IAAI,CAAC,CAAC,IAAI,KAAK,6BAAc,CAAC,gBAAgB,EAAE;gBAC1E,MAAM,IAAI,kBAAkB,CAAC,GAAG,UAAU,oBAAoB,CAAC,CAAA;aAC/D;YACD,MAAM,CAAC,CAAA;SACP;IACF,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAC/B,KAAmB,EACnB,MAAoB,EACpB,SAAiC,EACjC,IAAc;QAEd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YACjC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;YACxC,IAAI;gBACH,MAAM,YAAY,GAAG,iCAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;oBACrE,WAAW,EAAE,GAAG,EAAE;wBACjB,MAAM,IAAI,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;oBACrE,CAAC;oBACD,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;wBACvC,OAAO,YAAY,CAAA;oBACpB,CAAC;iBACD,CAAC,CAAA;gBACF,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;aACxF;YAAC,OAAO,CAAC,EAAE;gBACX,IAAI,CAAC,YAAY,yBAAU,IAAI,CAAC,CAAC,IAAI,KAAK,6BAAc,CAAC,eAAe,EAAE;oBACzE,MAAM,IAAI,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;iBACrE;aACD;SACD;IACF,CAAC;CACD;AA1CD,oDA0CC"}
@@ -1,10 +0,0 @@
1
- import { AnyEvent } from '@contember/engine-common';
2
- import { HistoryEvent as ApiEvent } from '../../schema';
3
- import { IdentityFetcher } from '../dependencies/tenant/IdentityFetcher';
4
- export declare class HistoryEventResponseBuilder {
5
- private readonly identityFetcher;
6
- constructor(identityFetcher: IdentityFetcher);
7
- buildResponse(events: AnyEvent[]): Promise<ApiEvent[]>;
8
- private formatDescription;
9
- }
10
- //# sourceMappingURL=HistoryEventResponseBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HistoryEventResponseBuilder.d.ts","sourceRoot":"","sources":["../../../../src/model/events/HistoryEventResponseBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAGN,YAAY,IAAI,QAAQ,EAGxB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAIxE,qBAAa,2BAA2B;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe;IAEhD,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAgCnE,OAAO,CAAC,iBAAiB;CAYzB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HistoryEventResponseBuilder.js","sourceRoot":"","sources":["../../../../src/model/events/HistoryEventResponseBuilder.ts"],"names":[],"mappings":";;;AAAA,4DAA8D;AAC9D,yCAMqB;AACrB,uCAAyC;AAEzC,mDAAgD;AAChD,+DAAoH;AAEpH,MAAa,2BAA2B;IACvC,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAE1D,KAAK,CAAC,aAAa,CAAC,MAAkB;QAC5C,MAAM,mBAAmB,GAAG;YAC3B,CAAC,yBAAS,CAAC,MAAM,CAAC,EAAE,yBAAY,CAAC,MAAM;YACvC,CAAC,yBAAS,CAAC,MAAM,CAAC,EAAE,yBAAY,CAAC,MAAM;YACvC,CAAC,yBAAS,CAAC,MAAM,CAAC,EAAE,yBAAY,CAAC,MAAM;SACvC,CAAA;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAA;QACzG,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QAC1E,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAEnF,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACtB,MAAM,UAAU,GAAG;gBAClB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,IAAI,EAAE,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC;gBAClC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACvC,aAAa,EAAE,EAAE,CAAC,aAAa;gBAC/B,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,mBAAmB,EAAE,8BAAc,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;aACjE,CAAA;YACD,QAAQ,EAAE,CAAC,IAAI,EAAE;gBAChB,KAAK,yBAAS,CAAC,MAAM;oBACpB,OAAO,CAAC,GAAuB,EAAE,CAAC,8CAAwB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;gBAC9E,KAAK,yBAAS,CAAC,MAAM;oBACpB,OAAO,CAAC,GAAuB,EAAE,CAAC,8CAAwB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;gBAC9E,KAAK,yBAAS,CAAC,MAAM;oBACpB,OAAO,CAAC,GAAuB,EAAE,CAAC,8CAAwB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;aAC9E;YACD,mBAAW,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC,CAAC,CAAA;IACH,CAAC;IAEO,iBAAiB,CAAC,KAAe;QACxC,QAAQ,KAAK,CAAC,IAAI,EAAE;YACnB,KAAK,yBAAS,CAAC,MAAM;gBACpB,OAAO,YAAY,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAA;YACpD,KAAK,yBAAS,CAAC,MAAM;gBACpB,OAAO,YAAY,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAA;YACpD,KAAK,yBAAS,CAAC,MAAM;gBACpB,OAAO,YAAY,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAA;YACpD;gBACC,OAAO,mBAAW,CAAC,KAAK,CAAC,CAAA;SAC1B;IACF,CAAC;CACD;AA/CD,kEA+CC"}
@@ -1,8 +0,0 @@
1
- import { Model } from '@contember/schema';
2
- export declare const getTableReferencing: (schema: Model.Schema) => TableReferencingResolverResult;
3
- export declare type TableReferencingResolverResult = {
4
- [tableName: string]: {
5
- [column: string]: string;
6
- };
7
- };
8
- //# sourceMappingURL=TableReferencingResolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableReferencingResolver.d.ts","sourceRoot":"","sources":["../../../../src/model/events/TableReferencingResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGzC,eAAO,MAAM,mBAAmB,WAAY,MAAM,MAAM,KAAG,8BAuC1D,CAAA;AAED,oBAAY,8BAA8B,GAAG;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTableReferencing = void 0;
4
- const schema_utils_1 = require("@contember/schema-utils");
5
- const getTableReferencing = (schema) => {
6
- const result = {};
7
- for (let entity of Object.values(schema.entities)) {
8
- result[entity.tableName] = {};
9
- schema_utils_1.acceptEveryFieldVisitor(schema, entity, new (class {
10
- visitManyHasOne({}, relation, targetEntity) {
11
- result[entity.tableName][relation.joiningColumn.columnName] = targetEntity.tableName;
12
- }
13
- visitOneHasOneOwning({}, relation, targetEntity) {
14
- result[entity.tableName][relation.joiningColumn.columnName] = targetEntity.tableName;
15
- }
16
- visitManyHasManyOwning(entity, relation, targetEntity) {
17
- result[relation.joiningTable.tableName] = {
18
- [relation.joiningTable.joiningColumn.columnName]: entity.tableName,
19
- [relation.joiningTable.inverseJoiningColumn.columnName]: targetEntity.tableName,
20
- };
21
- }
22
- visitColumn() { }
23
- visitManyHasManyInverse() { }
24
- visitOneHasMany() { }
25
- visitOneHasOneInverse() { }
26
- })());
27
- }
28
- return result;
29
- };
30
- exports.getTableReferencing = getTableReferencing;
31
- //# sourceMappingURL=TableReferencingResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableReferencingResolver.js","sourceRoot":"","sources":["../../../../src/model/events/TableReferencingResolver.ts"],"names":[],"mappings":";;;AACA,0DAAiE;AAE1D,MAAM,mBAAmB,GAAG,CAAC,MAAoB,EAAkC,EAAE;IAC3F,MAAM,MAAM,GAAmC,EAAE,CAAA;IAEjD,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QAClD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAA;QAC7B,sCAAuB,CACtB,MAAM,EACN,MAAM,EACN,IAAI,CAAC;YACJ,eAAe,CAAC,EAAE,EAAE,QAAkC,EAAE,YAA0B;gBACjF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,SAAS,CAAA;YACrF,CAAC;YAED,oBAAoB,CAAC,EAAE,EAAE,QAAuC,EAAE,YAA0B;gBAC3F,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,SAAS,CAAA;YACrF,CAAC;YAED,sBAAsB,CACrB,MAAoB,EACpB,QAAyC,EACzC,YAA0B;gBAE1B,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG;oBACzC,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,SAAS;oBAClE,CAAC,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,SAAS;iBAC/E,CAAA;YACF,CAAC;YAED,WAAW,KAAI,CAAC;YAEhB,uBAAuB,KAAI,CAAC;YAE5B,eAAe,KAAI,CAAC;YAEpB,qBAAqB,KAAI,CAAC;SAC1B,CAAC,EAAE,CACJ,CAAA;KACD;IACD,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAvCY,QAAA,mBAAmB,uBAuC/B"}
@@ -1,19 +0,0 @@
1
- import { ContentEvent } from '@contember/engine-common';
2
- import { DependencyBuilder, EventsDependencies } from '../DependencyBuilder';
3
- import { Schema } from '@contember/schema';
4
- /**
5
- * Events that references a row depends on creation of such event (or its following update)
6
- *
7
- * A1 - A row creation
8
- * A2 - A row update
9
- * B1 - some update on B row
10
- * B2 - some update on B row that references A row
11
- *
12
- * v----\
13
- * A1 A2 B1 B2
14
- *
15
- */
16
- export declare class CreatedRowReferenceDependencyBuilder implements DependencyBuilder {
17
- build(schema: Schema, events: ContentEvent[]): Promise<EventsDependencies>;
18
- }
19
- //# sourceMappingURL=CreatedRowReferenceDependencyBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CreatedRowReferenceDependencyBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/model/events/dependency/CreatedRowReferenceDependencyBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAa,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK1C;;;;;;;;;;;GAWG;AACH,qBAAa,oCAAqC,YAAW,iBAAiB;IACvE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA0DhF"}
@@ -1,79 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CreatedRowReferenceDependencyBuilder = void 0;
7
- const engine_common_1 = require("@contember/engine-common");
8
- const TableReferencingResolver_1 = require("../TableReferencingResolver");
9
- const helpers_1 = require("../../helpers");
10
- const assert_1 = __importDefault(require("assert"));
11
- const utils_1 = require("../../../utils");
12
- /**
13
- * Events that references a row depends on creation of such event (or its following update)
14
- *
15
- * A1 - A row creation
16
- * A2 - A row update
17
- * B1 - some update on B row
18
- * B2 - some update on B row that references A row
19
- *
20
- * v----\
21
- * A1 A2 B1 B2
22
- *
23
- */
24
- class CreatedRowReferenceDependencyBuilder {
25
- async build(schema, events) {
26
- if (events.length === 0) {
27
- return new utils_1.MapSet();
28
- }
29
- const tableReferencing = TableReferencingResolver_1.getTableReferencing(schema.model);
30
- const dependencies = new utils_1.MapSet();
31
- const formatRef = (id, table) => `${table}#${id}`;
32
- const createdRows = new Map();
33
- const junctionTables = helpers_1.getJunctionTables(schema.model);
34
- const junctionTableMap = new Map(junctionTables.map(it => utils_1.tuple(it.tableName, it)));
35
- for (const event of events) {
36
- const junctionTable = junctionTableMap.get(event.tableName);
37
- if (!junctionTable) {
38
- assert_1.default.strictEqual(event.rowId.length, 1);
39
- const ref = formatRef(event.rowId[0], event.tableName);
40
- if (event.type === engine_common_1.EventType.create) {
41
- createdRows.set(ref, event.id);
42
- }
43
- else if (createdRows.has(ref)) {
44
- // update event reference to latest event
45
- createdRows.set(ref, event.id);
46
- }
47
- }
48
- if (event.type !== engine_common_1.EventType.create && event.type !== engine_common_1.EventType.update) {
49
- continue;
50
- }
51
- for (let column in event.values) {
52
- const referencedTable = tableReferencing[event.tableName][column];
53
- if (!referencedTable) {
54
- continue;
55
- }
56
- const ref = formatRef(event.values[column], referencedTable);
57
- const createEventId = createdRows.get(ref);
58
- if (createEventId !== undefined) {
59
- dependencies.add(event.id, createEventId);
60
- }
61
- }
62
- if (junctionTable) {
63
- event.rowId.forEach((id, index) => {
64
- assert_1.default.ok(index === 0 || index === 1);
65
- const columnName = index === 0 ? junctionTable.joiningColumn.columnName : junctionTable.inverseJoiningColumn.columnName;
66
- const table = tableReferencing[junctionTable.tableName][columnName];
67
- const ref = formatRef(id, table);
68
- const createdEventId = createdRows.get(ref);
69
- if (createdEventId) {
70
- dependencies.add(event.id, createdEventId);
71
- }
72
- });
73
- }
74
- }
75
- return dependencies;
76
- }
77
- }
78
- exports.CreatedRowReferenceDependencyBuilder = CreatedRowReferenceDependencyBuilder;
79
- //# sourceMappingURL=CreatedRowReferenceDependencyBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CreatedRowReferenceDependencyBuilder.js","sourceRoot":"","sources":["../../../../../src/model/events/dependency/CreatedRowReferenceDependencyBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { ContentEvent } from '@contember/engine-common';
2
- import { DependencyBuilder, EventsDependencies } from '../DependencyBuilder';
3
- import { Schema } from '@contember/schema';
4
- /**
5
- * Delete event depends on all previous events which references this row
6
- *
7
- * A1 - update event which references X row
8
- * A2 - another event which does not reference X row
9
- *
10
- * v----\
11
- * A1 A2 X1
12
- *
13
- */
14
- export declare class DeletedRowReferenceDependencyBuilder implements DependencyBuilder {
15
- build(schema: Schema, events: ContentEvent[]): Promise<EventsDependencies>;
16
- }
17
- //# sourceMappingURL=DeletedRowReferenceDependencyBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeletedRowReferenceDependencyBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/model/events/dependency/DeletedRowReferenceDependencyBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAa,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK1C;;;;;;;;;GASG;AACH,qBAAa,oCAAqC,YAAW,iBAAiB;IACvE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAuDhF"}
@@ -1,76 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DeletedRowReferenceDependencyBuilder = void 0;
7
- const engine_common_1 = require("@contember/engine-common");
8
- const TableReferencingResolver_1 = require("../TableReferencingResolver");
9
- const helpers_1 = require("../../helpers");
10
- const assert_1 = __importDefault(require("assert"));
11
- const utils_1 = require("../../../utils");
12
- /**
13
- * Delete event depends on all previous events which references this row
14
- *
15
- * A1 - update event which references X row
16
- * A2 - another event which does not reference X row
17
- *
18
- * v----\
19
- * A1 A2 X1
20
- *
21
- */
22
- class DeletedRowReferenceDependencyBuilder {
23
- async build(schema, events) {
24
- if (events.length === 0) {
25
- return new utils_1.MapSet();
26
- }
27
- const tableReferencing = TableReferencingResolver_1.getTableReferencing(schema.model);
28
- const formatRef = (id, table) => `${table}#${id}`;
29
- const dependencies = new utils_1.MapSet();
30
- const deletedRows = new Map();
31
- const junctionTables = helpers_1.getJunctionTables(schema.model);
32
- const junctionTableMap = new Map(junctionTables.map(it => utils_1.tuple(it.tableName, it)));
33
- for (const event of events) {
34
- if (!junctionTableMap.has(event.tableName)) {
35
- assert_1.default.strictEqual(event.rowId.length, 1);
36
- if (event.type === engine_common_1.EventType.delete) {
37
- deletedRows.set(formatRef(event.rowId[0], event.tableName), event.id);
38
- }
39
- }
40
- }
41
- for (const event of events) {
42
- if (event.type !== engine_common_1.EventType.create && event.type !== engine_common_1.EventType.update) {
43
- continue;
44
- }
45
- const junctionTable = junctionTableMap.get(event.tableName);
46
- if (junctionTable) {
47
- event.rowId.forEach((id, index) => {
48
- assert_1.default.ok(index === 0 || index === 1);
49
- const columnName = index === 0 ? junctionTable.joiningColumn.columnName : junctionTable.inverseJoiningColumn.columnName;
50
- const table = tableReferencing[junctionTable.tableName][columnName];
51
- const ref = formatRef(id, table);
52
- const deleteEventId = deletedRows.get(ref);
53
- if (deleteEventId) {
54
- dependencies.add(deleteEventId, event.id);
55
- }
56
- });
57
- }
58
- else {
59
- for (let column in event.values) {
60
- const referencedTable = tableReferencing[event.tableName][column];
61
- if (!referencedTable) {
62
- continue;
63
- }
64
- const ref = formatRef(event.values[column], referencedTable);
65
- const deleteEventId = deletedRows.get(ref);
66
- if (deleteEventId) {
67
- dependencies.add(deleteEventId, event.id);
68
- }
69
- }
70
- }
71
- }
72
- return dependencies;
73
- }
74
- }
75
- exports.DeletedRowReferenceDependencyBuilder = DeletedRowReferenceDependencyBuilder;
76
- //# sourceMappingURL=DeletedRowReferenceDependencyBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeletedRowReferenceDependencyBuilder.js","sourceRoot":"","sources":["../../../../../src/model/events/dependency/DeletedRowReferenceDependencyBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAkE;AAElE,0EAAiG;AAEjG,2CAAiD;AACjD,oDAA2B;AAC3B,0CAA8C;AAE9C;;;;;;;;;GASG;AACH,MAAa,oCAAoC;IAChD,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAsB;QACjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,IAAI,cAAM,EAAE,CAAA;SACnB;QAED,MAAM,gBAAgB,GAAmC,8CAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC1F,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,EAAE,EAAE,CAAA;QACjE,MAAM,YAAY,GAAuB,IAAI,cAAM,EAAE,CAAA;QACrD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAA;QAC7B,MAAM,cAAc,GAAG,2BAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACtD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,aAAK,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAEnF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC3B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;gBAC3C,gBAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;gBACzC,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAS,CAAC,MAAM,EAAE;oBACpC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;iBACrE;aACD;SACD;QAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAS,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAS,CAAC,MAAM,EAAE;gBACvE,SAAQ;aACR;YACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAC3D,IAAI,aAAa,EAAE;gBAClB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;oBACjC,gBAAM,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAA;oBACrC,MAAM,UAAU,GACf,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,oBAAoB,CAAC,UAAU,CAAA;oBACrG,MAAM,KAAK,GAAG,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAA;oBACnE,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;oBAChC,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBAC1C,IAAI,aAAa,EAAE;wBAClB,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;qBACzC;gBACF,CAAC,CAAC,CAAA;aACF;iBAAM;gBACN,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;oBAChC,MAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;oBACjE,IAAI,CAAC,eAAe,EAAE;wBACrB,SAAQ;qBACR;oBACD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,CAAA;oBAC5D,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBAC1C,IAAI,aAAa,EAAE;wBAClB,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;qBACzC;iBACD;aACD;SACD;QAED,OAAO,YAAY,CAAA;IACpB,CAAC;CACD;AAxDD,oFAwDC"}
@@ -1,9 +0,0 @@
1
- import { DependencyBuilder, EventsDependencies } from '../DependencyBuilder';
2
- import { ContentEvent } from '@contember/engine-common';
3
- import { Schema } from '@contember/schema';
4
- export declare class DependencyBuilderList implements DependencyBuilder {
5
- private readonly builders;
6
- constructor(builders: DependencyBuilder[]);
7
- build(schema: Schema, events: ContentEvent[]): Promise<EventsDependencies>;
8
- }
9
- //# sourceMappingURL=DependencyBuilderList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DependencyBuilderList.d.ts","sourceRoot":"","sources":["../../../../../src/model/events/dependency/DependencyBuilderList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,qBAAa,qBAAsB,YAAW,iBAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,iBAAiB,EAAE;IAEpD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAShF"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DependencyBuilderList = void 0;
4
- const utils_1 = require("../../../utils");
5
- class DependencyBuilderList {
6
- constructor(builders) {
7
- this.builders = builders;
8
- }
9
- async build(schema, events) {
10
- const deps = new utils_1.MapSet();
11
- for (const event of events) {
12
- deps.add(event.id);
13
- }
14
- const buildersDeps = await Promise.all(this.builders.map(builder => builder.build(schema, events)));
15
- deps.merge(...buildersDeps);
16
- return deps;
17
- }
18
- }
19
- exports.DependencyBuilderList = DependencyBuilderList;
20
- //# sourceMappingURL=DependencyBuilderList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DependencyBuilderList.js","sourceRoot":"","sources":["../../../../../src/model/events/dependency/DependencyBuilderList.ts"],"names":[],"mappings":";;;AAGA,0CAAuC;AAEvC,MAAa,qBAAqB;IACjC,YAA6B,QAA6B;QAA7B,aAAQ,GAAR,QAAQ,CAAqB;IAAG,CAAC;IAE9D,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAsB;QACjD,MAAM,IAAI,GAAuB,IAAI,cAAM,EAAE,CAAA;QAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;SAClB;QACD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;QACnG,IAAI,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,CAAA;QAC3B,OAAO,IAAI,CAAA;IACZ,CAAC;CACD;AAZD,sDAYC"}
@@ -1,16 +0,0 @@
1
- import { ContentEvent } from '@contember/engine-common';
2
- import { DependencyBuilder, EventsDependencies } from '../DependencyBuilder';
3
- import { Schema } from '@contember/schema';
4
- /**
5
- * Events on a same row are depending on each other. Meaning that
6
- * a) all previous events has to be executed
7
- * b) all following events has to be executed (todo rethink)
8
- *
9
- * v-----v-----v
10
- * A1 B1 A2 B2 A3
11
- * ^-----^
12
- */
13
- export declare class SameRowDependencyBuilder implements DependencyBuilder {
14
- build(schema: Schema, events: ContentEvent[]): Promise<EventsDependencies>;
15
- }
16
- //# sourceMappingURL=SameRowDependencyBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SameRowDependencyBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/model/events/dependency/SameRowDependencyBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK1C;;;;;;;;GAQG;AACH,qBAAa,wBAAyB,YAAW,iBAAiB;IAC3D,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAkBhF"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SameRowDependencyBuilder = void 0;
7
- const helpers_1 = require("../../helpers");
8
- const assert_1 = __importDefault(require("assert"));
9
- const utils_1 = require("../../../utils");
10
- /**
11
- * Events on a same row are depending on each other. Meaning that
12
- * a) all previous events has to be executed
13
- * b) all following events has to be executed (todo rethink)
14
- *
15
- * v-----v-----v
16
- * A1 B1 A2 B2 A3
17
- * ^-----^
18
- */
19
- class SameRowDependencyBuilder {
20
- async build(schema, events) {
21
- const rows = new utils_1.MapSet();
22
- const dependencies = new utils_1.MapSet();
23
- const junctionTables = new Set(helpers_1.getJunctionTables(schema.model).map(it => it.tableName));
24
- const formatRef = (id, table) => `${table}#${id}`;
25
- for (const event of events) {
26
- if (junctionTables.has(event.tableName)) {
27
- continue;
28
- }
29
- assert_1.default.strictEqual(event.rowId.length, 1);
30
- const ref = formatRef(event.rowId[0], event.tableName);
31
- const events = rows.add(ref, event.id);
32
- dependencies.set(event.id, events);
33
- }
34
- return dependencies;
35
- }
36
- }
37
- exports.SameRowDependencyBuilder = SameRowDependencyBuilder;
38
- //# sourceMappingURL=SameRowDependencyBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SameRowDependencyBuilder.js","sourceRoot":"","sources":["../../../../../src/model/events/dependency/SameRowDependencyBuilder.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAiD;AACjD,oDAA2B;AAC3B,0CAAuC;AAEvC;;;;;;;;GAQG;AACH,MAAa,wBAAwB;IACpC,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAsB;QACjD,MAAM,IAAI,GAAG,IAAI,cAAM,EAAkB,CAAA;QACzC,MAAM,YAAY,GAAuB,IAAI,cAAM,EAAE,CAAA;QACrD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,2BAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;QACvF,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,EAAE,EAAE,CAAA;QACjE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC3B,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;gBACxC,SAAQ;aACR;YACD,gBAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACzC,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;YAEtD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;YACtC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;SAClC;QAED,OAAO,YAAY,CAAA;IACpB,CAAC;CACD;AAnBD,4DAmBC"}