@contember/engine-system-api 2.0.0-alpha.9 → 2.0.0-beta.2

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 (533) hide show
  1. package/dist/development/index.cjs +2 -2
  2. package/dist/development/index.js +2 -2
  3. package/dist/development/src/SystemContainer.cjs +4 -3
  4. package/dist/development/src/SystemContainer.cjs.map +1 -1
  5. package/dist/development/src/SystemContainer.js +5 -4
  6. package/dist/development/src/SystemContainer.js.map +1 -1
  7. package/dist/development/src/migrations/2020-03-27-130000-project-migrations.cjs.map +1 -1
  8. package/dist/development/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -1
  9. package/dist/development/src/migrations/2020-05-06-150000-composed-primary.cjs +1 -2
  10. package/dist/development/src/migrations/2020-05-06-150000-composed-primary.cjs.map +1 -1
  11. package/dist/development/src/migrations/2020-05-06-150000-composed-primary.js +1 -2
  12. package/dist/development/src/migrations/2020-05-06-150000-composed-primary.js.map +1 -1
  13. package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.cjs +1 -2
  14. package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.cjs.map +1 -1
  15. package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.js +1 -2
  16. package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -1
  17. package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.cjs +1 -2
  18. package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.cjs.map +1 -1
  19. package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.js +1 -2
  20. package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -1
  21. package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs +1 -2
  22. package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs.map +1 -1
  23. package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js +1 -2
  24. package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -1
  25. package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.cjs +1 -1
  26. package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.cjs.map +1 -1
  27. package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.js +1 -1
  28. package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -1
  29. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.cjs +1 -1
  30. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.cjs.map +1 -1
  31. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.js +1 -1
  32. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -1
  33. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.cjs +1 -1
  34. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.cjs.map +1 -1
  35. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.js +1 -1
  36. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -1
  37. package/dist/development/src/migrations/2024-06-28-153000-schema.cjs +18 -0
  38. package/dist/development/src/migrations/2024-06-28-153000-schema.cjs.map +1 -0
  39. package/dist/development/src/migrations/2024-06-28-153000-schema.js +19 -0
  40. package/dist/development/src/migrations/2024-06-28-153000-schema.js.map +1 -0
  41. package/dist/development/src/migrations/2024-06-28-153001-schema-init.cjs +12 -0
  42. package/dist/development/src/migrations/2024-06-28-153001-schema-init.cjs.map +1 -0
  43. package/dist/development/src/migrations/2024-06-28-153001-schema-init.js +13 -0
  44. package/dist/development/src/migrations/2024-06-28-153001-schema-init.js.map +1 -0
  45. package/dist/development/src/migrations/2024-07-29-150000-event-data-index.cjs +11 -0
  46. package/dist/development/src/migrations/2024-07-29-150000-event-data-index.cjs.map +1 -0
  47. package/dist/development/src/migrations/2024-07-29-150000-event-data-index.js +12 -0
  48. package/dist/development/src/migrations/2024-07-29-150000-event-data-index.js.map +1 -0
  49. package/dist/development/src/migrations/runner.cjs +11 -5
  50. package/dist/development/src/migrations/runner.cjs.map +1 -1
  51. package/dist/development/src/migrations/runner.js +11 -5
  52. package/dist/development/src/migrations/runner.js.map +1 -1
  53. package/dist/development/src/migrations/snapshot-factory.cjs +1 -1
  54. package/dist/development/src/migrations/snapshot-factory.cjs.map +1 -1
  55. package/dist/development/src/migrations/snapshot-factory.js +1 -1
  56. package/dist/development/src/migrations/snapshot-factory.js.map +1 -1
  57. package/dist/development/src/migrations/snapshot.cjs +17 -1
  58. package/dist/development/src/migrations/snapshot.cjs.map +1 -1
  59. package/dist/development/src/migrations/snapshot.js +17 -1
  60. package/dist/development/src/migrations/snapshot.js.map +1 -1
  61. package/dist/development/src/model/ProjectInitializer.cjs.map +1 -1
  62. package/dist/development/src/model/ProjectInitializer.js.map +1 -1
  63. package/dist/development/src/model/ProjectTruncateExecutor.cjs.map +1 -1
  64. package/dist/development/src/model/ProjectTruncateExecutor.js.map +1 -1
  65. package/dist/development/src/model/authorization/AuthorizationActions.cjs +1 -0
  66. package/dist/development/src/model/authorization/AuthorizationActions.cjs.map +1 -1
  67. package/dist/development/src/model/authorization/AuthorizationActions.js +1 -0
  68. package/dist/development/src/model/authorization/AuthorizationActions.js.map +1 -1
  69. package/dist/development/src/model/authorization/Identity.cjs.map +1 -1
  70. package/dist/development/src/model/authorization/Identity.js.map +1 -1
  71. package/dist/development/src/model/authorization/PermissionsFactory.cjs +1 -0
  72. package/dist/development/src/model/authorization/PermissionsFactory.cjs.map +1 -1
  73. package/dist/development/src/model/authorization/PermissionsFactory.js +1 -0
  74. package/dist/development/src/model/authorization/PermissionsFactory.js.map +1 -1
  75. package/dist/development/src/model/authorization/StagePermissionsFactory.cjs +4 -5
  76. package/dist/development/src/model/authorization/StagePermissionsFactory.cjs.map +1 -1
  77. package/dist/development/src/model/authorization/StagePermissionsFactory.js +4 -5
  78. package/dist/development/src/model/authorization/StagePermissionsFactory.js.map +1 -1
  79. package/dist/development/src/model/authorization/StageScope.cjs +2 -2
  80. package/dist/development/src/model/authorization/StageScope.cjs.map +1 -1
  81. package/dist/development/src/model/authorization/StageScope.js +2 -2
  82. package/dist/development/src/model/authorization/StageScope.js.map +1 -1
  83. package/dist/development/src/model/authorization/SwitchEvaluatorNode.cjs.map +1 -1
  84. package/dist/development/src/model/authorization/SwitchEvaluatorNode.js.map +1 -1
  85. package/dist/development/src/model/commands/CommandBus.cjs.map +1 -1
  86. package/dist/development/src/model/commands/CommandBus.js.map +1 -1
  87. package/dist/development/src/model/commands/events/TruncateEventsCommand.cjs.map +1 -1
  88. package/dist/development/src/model/commands/events/TruncateEventsCommand.js.map +1 -1
  89. package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.cjs.map +1 -1
  90. package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.js.map +1 -1
  91. package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.cjs.map +1 -1
  92. package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -1
  93. package/dist/development/src/model/commands/migrations/SaveMigrationCommand.cjs.map +1 -1
  94. package/dist/development/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -1
  95. package/dist/development/src/model/commands/schema/SaveSchemaCommand.cjs +28 -0
  96. package/dist/development/src/model/commands/schema/SaveSchemaCommand.cjs.map +1 -0
  97. package/dist/development/src/model/commands/schema/SaveSchemaCommand.js +28 -0
  98. package/dist/development/src/model/commands/schema/SaveSchemaCommand.js.map +1 -0
  99. package/dist/development/src/model/commands/stages/CreateStageCommand.cjs.map +1 -1
  100. package/dist/development/src/model/commands/stages/CreateStageCommand.js.map +1 -1
  101. package/dist/development/src/model/database/DatabaseContext.cjs.map +1 -1
  102. package/dist/development/src/model/database/DatabaseContext.js.map +1 -1
  103. package/dist/development/src/model/dtos/ExecutedMigration.cjs.map +1 -1
  104. package/dist/development/src/model/dtos/ExecutedMigration.js.map +1 -1
  105. package/dist/development/src/model/events/EventResponseBuilder.cjs.map +1 -1
  106. package/dist/development/src/model/events/EventResponseBuilder.js.map +1 -1
  107. package/dist/development/src/model/events/EventResponseHelper.cjs.map +1 -1
  108. package/dist/development/src/model/events/EventResponseHelper.js.map +1 -1
  109. package/dist/development/src/model/events/identityUtils.cjs.map +1 -1
  110. package/dist/development/src/model/events/identityUtils.js.map +1 -1
  111. package/dist/development/src/model/events/types.cjs.map +1 -1
  112. package/dist/development/src/model/events/types.js.map +1 -1
  113. package/dist/development/src/model/helpers/modelHelpers.cjs.map +1 -1
  114. package/dist/development/src/model/helpers/modelHelpers.js.map +1 -1
  115. package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs.map +1 -1
  116. package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -1
  117. package/dist/development/src/model/migrations/ExecutedMigrationsResolver.cjs.map +1 -1
  118. package/dist/development/src/model/migrations/ExecutedMigrationsResolver.js.map +1 -1
  119. package/dist/development/src/model/migrations/MigrationAlterer.cjs +10 -0
  120. package/dist/development/src/model/migrations/MigrationAlterer.cjs.map +1 -1
  121. package/dist/development/src/model/migrations/MigrationAlterer.js +10 -0
  122. package/dist/development/src/model/migrations/MigrationAlterer.js.map +1 -1
  123. package/dist/development/src/model/migrations/ProjectMigrator.cjs +29 -10
  124. package/dist/development/src/model/migrations/ProjectMigrator.cjs.map +1 -1
  125. package/dist/development/src/model/migrations/ProjectMigrator.js +30 -11
  126. package/dist/development/src/model/migrations/ProjectMigrator.js.map +1 -1
  127. package/dist/development/src/model/migrations/SchemaProvider.cjs +58 -0
  128. package/dist/development/src/model/migrations/SchemaProvider.cjs.map +1 -0
  129. package/dist/development/src/model/migrations/SchemaProvider.js +58 -0
  130. package/dist/development/src/model/migrations/SchemaProvider.js.map +1 -0
  131. package/dist/development/src/model/queries/events/EventQueryHelpers.cjs.map +1 -1
  132. package/dist/development/src/model/queries/events/EventQueryHelpers.js.map +1 -1
  133. package/dist/development/src/model/queries/events/EventsQuery.cjs +10 -14
  134. package/dist/development/src/model/queries/events/EventsQuery.cjs.map +1 -1
  135. package/dist/development/src/model/queries/events/EventsQuery.js +10 -14
  136. package/dist/development/src/model/queries/events/EventsQuery.js.map +1 -1
  137. package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.cjs.map +1 -1
  138. package/dist/development/src/model/queries/events/LatestTransactionIdByStageQuery.js.map +1 -1
  139. package/dist/development/src/model/queries/events/OldValuesQuery.cjs.map +1 -1
  140. package/dist/development/src/model/queries/events/OldValuesQuery.js.map +1 -1
  141. package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs.map +1 -1
  142. package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -1
  143. package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.cjs.map +1 -1
  144. package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -1
  145. package/dist/development/src/model/queries/schema/SchemaQuery.cjs +34 -0
  146. package/dist/development/src/model/queries/schema/SchemaQuery.cjs.map +1 -0
  147. package/dist/development/src/model/queries/schema/SchemaQuery.js +34 -0
  148. package/dist/development/src/model/queries/schema/SchemaQuery.js.map +1 -0
  149. package/dist/development/src/model/queries/stages/StageBySlugQuery.cjs.map +1 -1
  150. package/dist/development/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
  151. package/dist/development/src/model/queries/stages/StagesQuery.cjs.map +1 -1
  152. package/dist/development/src/model/queries/stages/StagesQuery.js.map +1 -1
  153. package/dist/development/src/model/stages/StageCreator.cjs.map +1 -1
  154. package/dist/development/src/model/stages/StageCreator.js.map +1 -1
  155. package/dist/development/src/resolvers/ResolverFactory.cjs +6 -2
  156. package/dist/development/src/resolvers/ResolverFactory.cjs.map +1 -1
  157. package/dist/development/src/resolvers/ResolverFactory.js +7 -3
  158. package/dist/development/src/resolvers/ResolverFactory.js.map +1 -1
  159. package/dist/development/src/resolvers/SystemResolverContext.cjs +5 -5
  160. package/dist/development/src/resolvers/SystemResolverContext.cjs.map +1 -1
  161. package/dist/development/src/resolvers/SystemResolverContext.js +5 -5
  162. package/dist/development/src/resolvers/SystemResolverContext.js.map +1 -1
  163. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.cjs +0 -1
  164. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.cjs.map +1 -1
  165. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.js +0 -1
  166. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
  167. package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.cjs +0 -1
  168. package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.cjs.map +1 -1
  169. package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.js +0 -1
  170. package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -1
  171. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.cjs +1 -1
  172. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.cjs.map +1 -1
  173. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.js +1 -1
  174. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -1
  175. package/dist/development/src/resolvers/query/EventsQueryResolver.cjs +0 -1
  176. package/dist/development/src/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  177. package/dist/development/src/resolvers/query/EventsQueryResolver.js +0 -1
  178. package/dist/development/src/resolvers/query/EventsQueryResolver.js.map +1 -1
  179. package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs +0 -1
  180. package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs.map +1 -1
  181. package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.js +0 -1
  182. package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -1
  183. package/dist/development/src/resolvers/query/SchemaQueryResolver.cjs +23 -0
  184. package/dist/development/src/resolvers/query/SchemaQueryResolver.cjs.map +1 -0
  185. package/dist/development/src/resolvers/query/SchemaQueryResolver.js +23 -0
  186. package/dist/development/src/resolvers/query/SchemaQueryResolver.js.map +1 -0
  187. package/dist/development/src/resolvers/query/StagesQueryResolver.cjs +0 -1
  188. package/dist/development/src/resolvers/query/StagesQueryResolver.cjs.map +1 -1
  189. package/dist/development/src/resolvers/query/StagesQueryResolver.js +0 -1
  190. package/dist/development/src/resolvers/query/StagesQueryResolver.js.map +1 -1
  191. package/dist/development/src/resolvers/types/EventOldValuesResolver.cjs.map +1 -1
  192. package/dist/development/src/resolvers/types/EventOldValuesResolver.js.map +1 -1
  193. package/dist/development/src/resolvers/types/OldValuesHelpers.cjs +0 -1
  194. package/dist/development/src/resolvers/types/OldValuesHelpers.cjs.map +1 -1
  195. package/dist/development/src/resolvers/types/OldValuesHelpers.js +0 -1
  196. package/dist/development/src/resolvers/types/OldValuesHelpers.js.map +1 -1
  197. package/dist/development/src/schema/dev.graphql.cjs.map +1 -1
  198. package/dist/development/src/schema/system.graphql.cjs +3 -1
  199. package/dist/development/src/schema/system.graphql.cjs.map +1 -1
  200. package/dist/development/src/schema/system.graphql.js +3 -1
  201. package/dist/development/src/schema/system.graphql.js.map +1 -1
  202. package/dist/development/src/schema/types.cjs.map +1 -1
  203. package/dist/development/src/schema/types.js.map +1 -1
  204. package/dist/development/src/utils/MapSet.cjs.map +1 -1
  205. package/dist/development/src/utils/MapSet.js.map +1 -1
  206. package/dist/development/src/utils/Response.cjs.map +1 -1
  207. package/dist/development/src/utils/Response.js.map +1 -1
  208. package/dist/development/src/utils/batchQuery.cjs.map +1 -1
  209. package/dist/development/src/utils/batchQuery.js.map +1 -1
  210. package/dist/production/index.cjs +2 -2
  211. package/dist/production/index.js +2 -2
  212. package/dist/production/src/SystemContainer.cjs +4 -3
  213. package/dist/production/src/SystemContainer.cjs.map +1 -1
  214. package/dist/production/src/SystemContainer.js +5 -4
  215. package/dist/production/src/SystemContainer.js.map +1 -1
  216. package/dist/production/src/migrations/2020-03-27-130000-project-migrations.cjs.map +1 -1
  217. package/dist/production/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -1
  218. package/dist/production/src/migrations/2020-05-06-150000-composed-primary.cjs +1 -2
  219. package/dist/production/src/migrations/2020-05-06-150000-composed-primary.cjs.map +1 -1
  220. package/dist/production/src/migrations/2020-05-06-150000-composed-primary.js +1 -2
  221. package/dist/production/src/migrations/2020-05-06-150000-composed-primary.js.map +1 -1
  222. package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.cjs +1 -2
  223. package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.cjs.map +1 -1
  224. package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.js +1 -2
  225. package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -1
  226. package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.cjs +1 -2
  227. package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.cjs.map +1 -1
  228. package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.js +1 -2
  229. package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -1
  230. package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs +1 -2
  231. package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs.map +1 -1
  232. package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js +1 -2
  233. package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -1
  234. package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.cjs +1 -1
  235. package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.cjs.map +1 -1
  236. package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.js +1 -1
  237. package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -1
  238. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.cjs +1 -1
  239. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.cjs.map +1 -1
  240. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.js +1 -1
  241. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -1
  242. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.cjs +1 -1
  243. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.cjs.map +1 -1
  244. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.js +1 -1
  245. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -1
  246. package/dist/production/src/migrations/2024-06-28-153000-schema.cjs +18 -0
  247. package/dist/production/src/migrations/2024-06-28-153000-schema.cjs.map +1 -0
  248. package/dist/production/src/migrations/2024-06-28-153000-schema.js +19 -0
  249. package/dist/production/src/migrations/2024-06-28-153000-schema.js.map +1 -0
  250. package/dist/production/src/migrations/2024-06-28-153001-schema-init.cjs +12 -0
  251. package/dist/production/src/migrations/2024-06-28-153001-schema-init.cjs.map +1 -0
  252. package/dist/production/src/migrations/2024-06-28-153001-schema-init.js +13 -0
  253. package/dist/production/src/migrations/2024-06-28-153001-schema-init.js.map +1 -0
  254. package/dist/production/src/migrations/2024-07-29-150000-event-data-index.cjs +11 -0
  255. package/dist/production/src/migrations/2024-07-29-150000-event-data-index.cjs.map +1 -0
  256. package/dist/production/src/migrations/2024-07-29-150000-event-data-index.js +12 -0
  257. package/dist/production/src/migrations/2024-07-29-150000-event-data-index.js.map +1 -0
  258. package/dist/production/src/migrations/runner.cjs +11 -5
  259. package/dist/production/src/migrations/runner.cjs.map +1 -1
  260. package/dist/production/src/migrations/runner.js +11 -5
  261. package/dist/production/src/migrations/runner.js.map +1 -1
  262. package/dist/production/src/migrations/snapshot-factory.cjs +1 -1
  263. package/dist/production/src/migrations/snapshot-factory.cjs.map +1 -1
  264. package/dist/production/src/migrations/snapshot-factory.js +1 -1
  265. package/dist/production/src/migrations/snapshot-factory.js.map +1 -1
  266. package/dist/production/src/migrations/snapshot.cjs +17 -1
  267. package/dist/production/src/migrations/snapshot.cjs.map +1 -1
  268. package/dist/production/src/migrations/snapshot.js +17 -1
  269. package/dist/production/src/migrations/snapshot.js.map +1 -1
  270. package/dist/production/src/model/ProjectInitializer.cjs.map +1 -1
  271. package/dist/production/src/model/ProjectInitializer.js.map +1 -1
  272. package/dist/production/src/model/ProjectTruncateExecutor.cjs.map +1 -1
  273. package/dist/production/src/model/ProjectTruncateExecutor.js.map +1 -1
  274. package/dist/production/src/model/authorization/AuthorizationActions.cjs +1 -0
  275. package/dist/production/src/model/authorization/AuthorizationActions.cjs.map +1 -1
  276. package/dist/production/src/model/authorization/AuthorizationActions.js +1 -0
  277. package/dist/production/src/model/authorization/AuthorizationActions.js.map +1 -1
  278. package/dist/production/src/model/authorization/Identity.cjs.map +1 -1
  279. package/dist/production/src/model/authorization/Identity.js.map +1 -1
  280. package/dist/production/src/model/authorization/PermissionsFactory.cjs +1 -0
  281. package/dist/production/src/model/authorization/PermissionsFactory.cjs.map +1 -1
  282. package/dist/production/src/model/authorization/PermissionsFactory.js +1 -0
  283. package/dist/production/src/model/authorization/PermissionsFactory.js.map +1 -1
  284. package/dist/production/src/model/authorization/StagePermissionsFactory.cjs +4 -5
  285. package/dist/production/src/model/authorization/StagePermissionsFactory.cjs.map +1 -1
  286. package/dist/production/src/model/authorization/StagePermissionsFactory.js +4 -5
  287. package/dist/production/src/model/authorization/StagePermissionsFactory.js.map +1 -1
  288. package/dist/production/src/model/authorization/StageScope.cjs +2 -2
  289. package/dist/production/src/model/authorization/StageScope.cjs.map +1 -1
  290. package/dist/production/src/model/authorization/StageScope.js +2 -2
  291. package/dist/production/src/model/authorization/StageScope.js.map +1 -1
  292. package/dist/production/src/model/authorization/SwitchEvaluatorNode.cjs.map +1 -1
  293. package/dist/production/src/model/authorization/SwitchEvaluatorNode.js.map +1 -1
  294. package/dist/production/src/model/commands/CommandBus.cjs.map +1 -1
  295. package/dist/production/src/model/commands/CommandBus.js.map +1 -1
  296. package/dist/production/src/model/commands/events/TruncateEventsCommand.cjs.map +1 -1
  297. package/dist/production/src/model/commands/events/TruncateEventsCommand.js.map +1 -1
  298. package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.cjs.map +1 -1
  299. package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.js.map +1 -1
  300. package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.cjs.map +1 -1
  301. package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -1
  302. package/dist/production/src/model/commands/migrations/SaveMigrationCommand.cjs.map +1 -1
  303. package/dist/production/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -1
  304. package/dist/production/src/model/commands/schema/SaveSchemaCommand.cjs +28 -0
  305. package/dist/production/src/model/commands/schema/SaveSchemaCommand.cjs.map +1 -0
  306. package/dist/production/src/model/commands/schema/SaveSchemaCommand.js +28 -0
  307. package/dist/production/src/model/commands/schema/SaveSchemaCommand.js.map +1 -0
  308. package/dist/production/src/model/commands/stages/CreateStageCommand.cjs.map +1 -1
  309. package/dist/production/src/model/commands/stages/CreateStageCommand.js.map +1 -1
  310. package/dist/production/src/model/database/DatabaseContext.cjs.map +1 -1
  311. package/dist/production/src/model/database/DatabaseContext.js.map +1 -1
  312. package/dist/production/src/model/dtos/ExecutedMigration.cjs.map +1 -1
  313. package/dist/production/src/model/dtos/ExecutedMigration.js.map +1 -1
  314. package/dist/production/src/model/events/EventResponseBuilder.cjs.map +1 -1
  315. package/dist/production/src/model/events/EventResponseBuilder.js.map +1 -1
  316. package/dist/production/src/model/events/EventResponseHelper.cjs.map +1 -1
  317. package/dist/production/src/model/events/EventResponseHelper.js.map +1 -1
  318. package/dist/production/src/model/events/identityUtils.cjs.map +1 -1
  319. package/dist/production/src/model/events/identityUtils.js.map +1 -1
  320. package/dist/production/src/model/events/types.cjs.map +1 -1
  321. package/dist/production/src/model/events/types.js.map +1 -1
  322. package/dist/production/src/model/helpers/modelHelpers.cjs.map +1 -1
  323. package/dist/production/src/model/helpers/modelHelpers.js.map +1 -1
  324. package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs.map +1 -1
  325. package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -1
  326. package/dist/production/src/model/migrations/ExecutedMigrationsResolver.cjs.map +1 -1
  327. package/dist/production/src/model/migrations/ExecutedMigrationsResolver.js.map +1 -1
  328. package/dist/production/src/model/migrations/MigrationAlterer.cjs +10 -0
  329. package/dist/production/src/model/migrations/MigrationAlterer.cjs.map +1 -1
  330. package/dist/production/src/model/migrations/MigrationAlterer.js +10 -0
  331. package/dist/production/src/model/migrations/MigrationAlterer.js.map +1 -1
  332. package/dist/production/src/model/migrations/ProjectMigrator.cjs +29 -10
  333. package/dist/production/src/model/migrations/ProjectMigrator.cjs.map +1 -1
  334. package/dist/production/src/model/migrations/ProjectMigrator.js +30 -11
  335. package/dist/production/src/model/migrations/ProjectMigrator.js.map +1 -1
  336. package/dist/production/src/model/migrations/SchemaProvider.cjs +58 -0
  337. package/dist/production/src/model/migrations/SchemaProvider.cjs.map +1 -0
  338. package/dist/production/src/model/migrations/SchemaProvider.js +58 -0
  339. package/dist/production/src/model/migrations/SchemaProvider.js.map +1 -0
  340. package/dist/production/src/model/queries/events/EventQueryHelpers.cjs.map +1 -1
  341. package/dist/production/src/model/queries/events/EventQueryHelpers.js.map +1 -1
  342. package/dist/production/src/model/queries/events/EventsQuery.cjs +10 -14
  343. package/dist/production/src/model/queries/events/EventsQuery.cjs.map +1 -1
  344. package/dist/production/src/model/queries/events/EventsQuery.js +10 -14
  345. package/dist/production/src/model/queries/events/EventsQuery.js.map +1 -1
  346. package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.cjs.map +1 -1
  347. package/dist/production/src/model/queries/events/LatestTransactionIdByStageQuery.js.map +1 -1
  348. package/dist/production/src/model/queries/events/OldValuesQuery.cjs.map +1 -1
  349. package/dist/production/src/model/queries/events/OldValuesQuery.js.map +1 -1
  350. package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs.map +1 -1
  351. package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -1
  352. package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.cjs.map +1 -1
  353. package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -1
  354. package/dist/production/src/model/queries/schema/SchemaQuery.cjs +34 -0
  355. package/dist/production/src/model/queries/schema/SchemaQuery.cjs.map +1 -0
  356. package/dist/production/src/model/queries/schema/SchemaQuery.js +34 -0
  357. package/dist/production/src/model/queries/schema/SchemaQuery.js.map +1 -0
  358. package/dist/production/src/model/queries/stages/StageBySlugQuery.cjs.map +1 -1
  359. package/dist/production/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
  360. package/dist/production/src/model/queries/stages/StagesQuery.cjs.map +1 -1
  361. package/dist/production/src/model/queries/stages/StagesQuery.js.map +1 -1
  362. package/dist/production/src/model/stages/StageCreator.cjs.map +1 -1
  363. package/dist/production/src/model/stages/StageCreator.js.map +1 -1
  364. package/dist/production/src/resolvers/ResolverFactory.cjs +6 -2
  365. package/dist/production/src/resolvers/ResolverFactory.cjs.map +1 -1
  366. package/dist/production/src/resolvers/ResolverFactory.js +7 -3
  367. package/dist/production/src/resolvers/ResolverFactory.js.map +1 -1
  368. package/dist/production/src/resolvers/SystemResolverContext.cjs +5 -5
  369. package/dist/production/src/resolvers/SystemResolverContext.cjs.map +1 -1
  370. package/dist/production/src/resolvers/SystemResolverContext.js +5 -5
  371. package/dist/production/src/resolvers/SystemResolverContext.js.map +1 -1
  372. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.cjs +0 -1
  373. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.cjs.map +1 -1
  374. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.js +0 -1
  375. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
  376. package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.cjs +0 -1
  377. package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.cjs.map +1 -1
  378. package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.js +0 -1
  379. package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -1
  380. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.cjs +1 -1
  381. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.cjs.map +1 -1
  382. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.js +1 -1
  383. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -1
  384. package/dist/production/src/resolvers/query/EventsQueryResolver.cjs +0 -1
  385. package/dist/production/src/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  386. package/dist/production/src/resolvers/query/EventsQueryResolver.js +0 -1
  387. package/dist/production/src/resolvers/query/EventsQueryResolver.js.map +1 -1
  388. package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs +0 -1
  389. package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs.map +1 -1
  390. package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.js +0 -1
  391. package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -1
  392. package/dist/production/src/resolvers/query/SchemaQueryResolver.cjs +23 -0
  393. package/dist/production/src/resolvers/query/SchemaQueryResolver.cjs.map +1 -0
  394. package/dist/production/src/resolvers/query/SchemaQueryResolver.js +23 -0
  395. package/dist/production/src/resolvers/query/SchemaQueryResolver.js.map +1 -0
  396. package/dist/production/src/resolvers/query/StagesQueryResolver.cjs +0 -1
  397. package/dist/production/src/resolvers/query/StagesQueryResolver.cjs.map +1 -1
  398. package/dist/production/src/resolvers/query/StagesQueryResolver.js +0 -1
  399. package/dist/production/src/resolvers/query/StagesQueryResolver.js.map +1 -1
  400. package/dist/production/src/resolvers/types/EventOldValuesResolver.cjs.map +1 -1
  401. package/dist/production/src/resolvers/types/EventOldValuesResolver.js.map +1 -1
  402. package/dist/production/src/resolvers/types/OldValuesHelpers.cjs +0 -1
  403. package/dist/production/src/resolvers/types/OldValuesHelpers.cjs.map +1 -1
  404. package/dist/production/src/resolvers/types/OldValuesHelpers.js +0 -1
  405. package/dist/production/src/resolvers/types/OldValuesHelpers.js.map +1 -1
  406. package/dist/production/src/schema/dev.graphql.cjs.map +1 -1
  407. package/dist/production/src/schema/system.graphql.cjs +3 -1
  408. package/dist/production/src/schema/system.graphql.cjs.map +1 -1
  409. package/dist/production/src/schema/system.graphql.js +3 -1
  410. package/dist/production/src/schema/system.graphql.js.map +1 -1
  411. package/dist/production/src/schema/types.cjs.map +1 -1
  412. package/dist/production/src/schema/types.js.map +1 -1
  413. package/dist/production/src/utils/MapSet.cjs.map +1 -1
  414. package/dist/production/src/utils/MapSet.js.map +1 -1
  415. package/dist/production/src/utils/Response.cjs.map +1 -1
  416. package/dist/production/src/utils/Response.js.map +1 -1
  417. package/dist/production/src/utils/batchQuery.cjs.map +1 -1
  418. package/dist/production/src/utils/batchQuery.js.map +1 -1
  419. package/dist/tests/cases/unit/eventsQuery.test.d.ts +2 -0
  420. package/dist/tests/cases/unit/eventsQuery.test.d.ts.map +1 -0
  421. package/dist/tests/src/uuid.d.ts +3 -0
  422. package/dist/tests/src/uuid.d.ts.map +1 -0
  423. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  424. package/dist/types/SystemContainer.d.ts +8 -6
  425. package/dist/types/SystemContainer.d.ts.map +1 -1
  426. package/dist/types/index.d.ts +1 -1
  427. package/dist/types/index.d.ts.map +1 -1
  428. package/dist/types/migrations/2024-06-28-153000-schema.d.ts +3 -0
  429. package/dist/types/migrations/2024-06-28-153000-schema.d.ts.map +1 -0
  430. package/dist/types/migrations/2024-06-28-153001-schema-init.d.ts +4 -0
  431. package/dist/types/migrations/2024-06-28-153001-schema-init.d.ts.map +1 -0
  432. package/dist/types/migrations/2024-07-29-150000-event-data-index.d.ts +3 -0
  433. package/dist/types/migrations/2024-07-29-150000-event-data-index.d.ts.map +1 -0
  434. package/dist/types/migrations/runner.d.ts +3 -3
  435. package/dist/types/migrations/runner.d.ts.map +1 -1
  436. package/dist/types/migrations/snapshot.d.ts.map +1 -1
  437. package/dist/types/migrations/types.d.ts +2 -2
  438. package/dist/types/migrations/types.d.ts.map +1 -1
  439. package/dist/types/model/SchemaGetter.d.ts +6 -0
  440. package/dist/types/model/SchemaGetter.d.ts.map +1 -0
  441. package/dist/types/model/authorization/AuthorizationActions.d.ts +5 -0
  442. package/dist/types/model/authorization/AuthorizationActions.d.ts.map +1 -1
  443. package/dist/types/model/authorization/PermissionsFactory.d.ts.map +1 -1
  444. package/dist/types/model/authorization/StagePermissionsFactory.d.ts +4 -4
  445. package/dist/types/model/authorization/StagePermissionsFactory.d.ts.map +1 -1
  446. package/dist/types/model/authorization/StageScope.d.ts.map +1 -1
  447. package/dist/types/model/commands/schema/SaveSchemaCommand.d.ts +8 -0
  448. package/dist/types/model/commands/schema/SaveSchemaCommand.d.ts.map +1 -0
  449. package/dist/types/model/dependencies/content/ContentQueryExecutor.d.ts +3 -2
  450. package/dist/types/model/dependencies/content/ContentQueryExecutor.d.ts.map +1 -1
  451. package/dist/types/model/migrations/MigrationAlterer.d.ts +4 -0
  452. package/dist/types/model/migrations/MigrationAlterer.d.ts.map +1 -1
  453. package/dist/types/model/migrations/ProjectMigrator.d.ts +3 -3
  454. package/dist/types/model/migrations/ProjectMigrator.d.ts.map +1 -1
  455. package/dist/types/model/migrations/SchemaProvider.d.ts +28 -0
  456. package/dist/types/model/migrations/SchemaProvider.d.ts.map +1 -0
  457. package/dist/types/model/migrations/index.d.ts +1 -1
  458. package/dist/types/model/migrations/index.d.ts.map +1 -1
  459. package/dist/types/model/queries/events/EventsQuery.d.ts.map +1 -1
  460. package/dist/types/model/queries/index.d.ts +1 -0
  461. package/dist/types/model/queries/index.d.ts.map +1 -1
  462. package/dist/types/model/queries/schema/SchemaQuery.d.ts +8 -0
  463. package/dist/types/model/queries/schema/SchemaQuery.d.ts.map +1 -0
  464. package/dist/types/model/queries/schema/index.d.ts +2 -0
  465. package/dist/types/model/queries/schema/index.d.ts.map +1 -0
  466. package/dist/types/resolvers/ResolverFactory.d.ts +3 -1
  467. package/dist/types/resolvers/ResolverFactory.d.ts.map +1 -1
  468. package/dist/types/resolvers/SystemResolverContext.d.ts +4 -4
  469. package/dist/types/resolvers/SystemResolverContext.d.ts.map +1 -1
  470. package/dist/types/resolvers/query/SchemaQueryResolver.d.ts +7 -0
  471. package/dist/types/resolvers/query/SchemaQueryResolver.d.ts.map +1 -0
  472. package/dist/types/schema/system.graphql.d.ts.map +1 -1
  473. package/dist/types/schema/types.d.ts +14 -2
  474. package/dist/types/schema/types.d.ts.map +1 -1
  475. package/dist/types/tsconfig.tsbuildinfo +1 -1
  476. package/graphql.codegen.yml +3 -1
  477. package/package.json +17 -24
  478. package/src/SystemContainer.ts +14 -13
  479. package/src/bin/runMigrations.ts +4 -4
  480. package/src/index.ts +3 -2
  481. package/src/migrations/2020-05-06-150000-composed-primary.ts +1 -1
  482. package/src/migrations/2020-06-01-103000-event-trigger-perf.ts +1 -1
  483. package/src/migrations/2021-05-07-155800-event-log-rework.ts +1 -1
  484. package/src/migrations/2021-05-19-1232000-event-log-fix-constraint.ts +1 -1
  485. package/src/migrations/2022-10-03-110000-table-on-delete.ts +1 -1
  486. package/src/migrations/2023-09-11-174000-fix-on-delete.ts +1 -1
  487. package/src/migrations/2023-10-19-173000-fix-unique.ts +1 -1
  488. package/src/migrations/2024-06-28-153000-schema.ts +20 -0
  489. package/src/migrations/2024-06-28-153001-schema-init.ts +12 -0
  490. package/src/migrations/2024-07-29-150000-event-data-index.ts +11 -0
  491. package/src/migrations/runner.ts +10 -4
  492. package/src/migrations/snapshot-factory.ts +1 -1
  493. package/src/migrations/snapshot.ts +17 -1
  494. package/src/migrations/types.ts +2 -2
  495. package/src/model/SchemaGetter.ts +3 -0
  496. package/src/model/authorization/AuthorizationActions.ts +1 -0
  497. package/src/model/authorization/PermissionsFactory.ts +1 -0
  498. package/src/model/authorization/StagePermissionsFactory.ts +5 -5
  499. package/src/model/authorization/StageScope.ts +2 -2
  500. package/src/model/commands/schema/SaveSchemaCommand.ts +31 -0
  501. package/src/model/dependencies/content/ContentQueryExecutor.ts +3 -2
  502. package/src/model/migrations/MigrationAlterer.ts +14 -0
  503. package/src/model/migrations/ProjectMigrator.ts +34 -12
  504. package/src/model/migrations/SchemaProvider.ts +77 -0
  505. package/src/model/migrations/index.ts +1 -1
  506. package/src/model/queries/events/EventsQuery.ts +15 -17
  507. package/src/model/queries/index.ts +1 -0
  508. package/src/model/queries/schema/SchemaQuery.ts +48 -0
  509. package/src/model/queries/schema/index.ts +1 -0
  510. package/src/resolvers/ResolverFactory.ts +9 -1
  511. package/src/resolvers/SystemResolverContext.ts +8 -13
  512. package/src/resolvers/mutation/TruncateMutationResolver.ts +1 -1
  513. package/src/resolvers/query/SchemaQueryResolver.ts +19 -0
  514. package/src/schema/system.graphql.ts +3 -1
  515. package/src/schema/types.ts +13 -3
  516. package/tests/cases/migrations/2020-05-06-150000-composed-primary.test.ts +12 -3
  517. package/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.ts +12 -3
  518. package/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.ts +20 -8
  519. package/tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.ts +37 -16
  520. package/tests/cases/migrations/2023-10-19-173000-fix-unique.test.ts +12 -3
  521. package/tests/cases/unit/eventsQuery.test.ts +39 -0
  522. package/tests/src/uuid.ts +4 -0
  523. package/dist/development/src/model/migrations/SchemaVersionBuilder.cjs +0 -37
  524. package/dist/development/src/model/migrations/SchemaVersionBuilder.cjs.map +0 -1
  525. package/dist/development/src/model/migrations/SchemaVersionBuilder.js +0 -37
  526. package/dist/development/src/model/migrations/SchemaVersionBuilder.js.map +0 -1
  527. package/dist/production/src/model/migrations/SchemaVersionBuilder.cjs +0 -37
  528. package/dist/production/src/model/migrations/SchemaVersionBuilder.cjs.map +0 -1
  529. package/dist/production/src/model/migrations/SchemaVersionBuilder.js +0 -37
  530. package/dist/production/src/model/migrations/SchemaVersionBuilder.js.map +0 -1
  531. package/dist/types/model/migrations/SchemaVersionBuilder.d.ts +0 -37
  532. package/dist/types/model/migrations/SchemaVersionBuilder.d.ts.map +0 -1
  533. package/src/model/migrations/SchemaVersionBuilder.ts +0 -43
@@ -9,6 +9,9 @@ CREATE TYPE "schema_migration_type" AS ENUM (
9
9
  'schema',
10
10
  'content'
11
11
  );
12
+ CREATE TYPE "schema_single" AS ENUM (
13
+ 'single'
14
+ );
12
15
  CREATE FUNCTION "trigger_event"() RETURNS "trigger"
13
16
  LANGUAGE "plpgsql"
14
17
  AS $$
@@ -116,6 +119,14 @@ CREATE TABLE "event_data" (
116
119
  "identity_id" "uuid" NOT NULL,
117
120
  "transaction_id" "uuid" DEFAULT COALESCE((NULLIF("current_setting"('system.transaction_id'::"text", true), ''::"text"))::"uuid", ("set_config"('system.transaction_id'::"text", ("${randomUuidFn}"())::"text", true))::"uuid") NOT NULL
118
121
  );
122
+ CREATE TABLE "schema" (
123
+ "id" "schema_single" DEFAULT 'single'::"schema_single" NOT NULL,
124
+ "schema" "json" NOT NULL,
125
+ "updated_at" timestamp with time zone DEFAULT "now"() NOT NULL,
126
+ "checksum" character(32) NOT NULL,
127
+ "version" character varying(20) NOT NULL,
128
+ "migration_id" integer NOT NULL
129
+ );
119
130
  CREATE TABLE "schema_migration" (
120
131
  "id" integer NOT NULL,
121
132
  "version" character varying(20) NOT NULL,
@@ -144,6 +155,8 @@ ALTER TABLE ONLY "schema_migration"
144
155
  ADD CONSTRAINT "schema_migration_pkey" PRIMARY KEY ("id");
145
156
  ALTER TABLE ONLY "schema_migration"
146
157
  ADD CONSTRAINT "schema_migration_version_key" UNIQUE ("version");
158
+ ALTER TABLE ONLY "schema"
159
+ ADD CONSTRAINT "schema_pkey" PRIMARY KEY ("id");
147
160
  ALTER TABLE ONLY "stage"
148
161
  ADD CONSTRAINT "stage_pkey" PRIMARY KEY ("id");
149
162
  ALTER TABLE ONLY "stage"
@@ -156,11 +169,14 @@ CREATE INDEX "event_data_created" ON "event_data" USING "btree" ("created_at");
156
169
  CREATE INDEX "system_event2_table_name" ON "event_data" USING "btree" ("table_name");
157
170
  CREATE INDEX "system_event2_transaction" ON "event_data" USING "btree" ("transaction_id");
158
171
  CREATE INDEX "system_event2_type" ON "event_data" USING "btree" ("type");
159
- CREATE INDEX "system_event_row_id" ON "event_data" USING "btree" ("row_ids");
172
+ CREATE INDEX "system_event_data_row_id_0" ON "event_data" USING "btree" ((("row_ids" -> 0)));
173
+ CREATE INDEX "system_event_data_row_id_1" ON "event_data" USING "btree" ((("row_ids" -> 1)));
160
174
  CREATE INDEX "system_schema_migration_version" ON "schema_migration" USING "btree" ("version");
161
175
  CREATE INDEX "transaction_applied" ON "stage_transaction" USING "btree" ("applied_at");
162
176
  ALTER TABLE ONLY "event_data"
163
177
  ADD CONSTRAINT "event_data_schema_id_fkey" FOREIGN KEY ("schema_id") REFERENCES "schema_migration"("id");
178
+ ALTER TABLE ONLY "schema"
179
+ ADD CONSTRAINT "schema_migration_id_fkey" FOREIGN KEY ("migration_id") REFERENCES "schema_migration"("id") DEFERRABLE INITIALLY DEFERRED;
164
180
  ALTER TABLE ONLY "stage_transaction"
165
181
  ADD CONSTRAINT "stage_transaction_stage_id_fkey" FOREIGN KEY ("stage_id") REFERENCES "stage"("id") ON DELETE CASCADE;
166
182
  `);
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/snapshot.ts"],"sourcesContent":["import { snapshotMigration } from './snapshot-factory'\nexport default snapshotMigration(({ randomUuidFn }) => `\nCREATE DOMAIN \"event_data_type\" AS \"text\"\n\tCONSTRAINT \"event_data_type_check\" CHECK ((VALUE = ANY (ARRAY['create'::\"text\", 'update'::\"text\", 'delete'::\"text\"])));\nCREATE DOMAIN \"event_type\" AS \"text\"\n\tCONSTRAINT \"event_type_check\" CHECK ((VALUE = ANY (ARRAY['init'::\"text\", 'create'::\"text\", 'update'::\"text\", 'delete'::\"text\", 'run_migration'::\"text\"])));\nCREATE TYPE \"schema_migration_type\" AS ENUM (\n 'schema',\n 'content'\n);\nCREATE FUNCTION \"trigger_event\"() RETURNS \"trigger\"\n LANGUAGE \"plpgsql\"\n AS $$\n\t\tDECLARE new_event_type TEXT;\n\t\tDECLARE table_name TEXT;\n\t\tDECLARE values JSONB;\n\t\tDECLARE update_diff JSONB;\n\t\tDECLARE primary_values JSONB;\n\t\tDECLARE old_row JSONB;\n\t\tDECLARE new_row JSONB;\n\t\tBEGIN\n\t\t\told_row := CASE WHEN TG_OP = 'DELETE' OR TG_OP = 'UPDATE' THEN TO_JSONB(old) ELSE NULL END;\n\t\t\tnew_row := CASE WHEN TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN TO_JSONB(new) ELSE NULL END;\n\t\t\tprimary_values := (\n\t\t\t\tSELECT JSONB_AGG(value ORDER BY array_position(TG_ARGV, key))\n\t\t\t\tFROM JSONB_EACH(COALESCE(old_row, new_row))\n\t\t\t\tWHERE key = ANY (TG_ARGV)\n\t\t\t);\n\t\t\ttable_name := tg_table_name;\n\t\t\tCASE TG_OP\n\t\t\t\tWHEN 'INSERT' THEN BEGIN\n\t\t\t\t\tnew_event_type := 'create';\n\t\t\t\t\tvalues := COALESCE(\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\tSELECT JSONB_OBJECT_AGG(key, value)\n \t\t\t\t\t\t FROM JSONB_EACH(new_row)\n \t\t\t\t\t\t WHERE NOT (key = ANY (TG_ARGV))\n \t\t\t\t\t\t),\n \t\t\t\t\t\tJSONB_BUILD_OBJECT()\n \t\t\t\t\t);\n\t\t\t\tEND;\n\t\t\t\tWHEN 'UPDATE' THEN BEGIN\n\t\t\t\t\tupdate_diff := (\n\t\t\t\t\t\tSELECT JSONB_OBJECT_AGG(COALESCE(n.key, o.key), n.value)\n\t\t\t\t\t\tFROM JSONB_EACH(old_row) o\n \t\t\t\t\t\tFULL OUTER JOIN JSONB_EACH(new_row) n ON n.key = o.key\n\t\t\t\t\t\tWHERE n.value IS DISTINCT FROM o.value\n\t\t\t\t\t);\n\t\t\t\t\tIF (SELECT COUNT(*) FROM JSONB_OBJECT_KEYS(update_diff)) = 0 THEN\n\t\t\t\t\t\tRETURN NULL;\n\t\t\t\t\tEND IF;\n\t\t\t\t\tnew_event_type := 'update';\n\t\t\t\t\tvalues := update_diff;\n\t\t\t\tEND;\n\t\t\t\tWHEN 'DELETE' THEN BEGIN\n\t\t\t\t\tnew_event_type := 'delete';\n\t\t\t\tEND;\n\t\t\t\tELSE RAISE\n\t\t\t\t\tEXCEPTION 'Unknown TG_OP value %', TG_OP;\n\t\t\tEND CASE;\n\t\t\tCASE WHEN NULLIF(CURRENT_SETTING('system.schema_id', true), '') IS NULL THEN\n\t\t\t\tPERFORM SET_CONFIG('system.schema_id', (select MAX(\"id\")::TEXT from schema_migration), TRUE);\n\t\t\tELSE\n\t\t\t\t-- do nothing\n\t\t\tEND CASE;\n\t\t\tINSERT INTO \"event_data\" (\"id\", \"type\", \"table_name\", \"row_ids\", \"values\", \"created_at\", schema_id, identity_id)\n\t\t\tVALUES (\n\t\t\t\t\"${randomUuidFn}\"(),\n\t\t\t\tnew_event_type,\n\t\t\t\ttable_name,\n\t\t\t\tprimary_values,\n\t\t\t\tvalues,\n\t\t\t\tCLOCK_TIMESTAMP(),\n\t\t\t\tCURRENT_SETTING('system.schema_id')::INT,\n\t\t\t\tCOALESCE(\n\t\t\t\t\tCURRENT_SETTING('tenant.identity_id'::TEXT, TRUE)::UUID,\n \t\t\t\t\t'00000000-0000-0000-0000-000000000000'::UUID)\n \t\t\t\t);\n\t\t\tRETURN NULL;\n\t\tEND;\n\t\t$$;\nCREATE FUNCTION \"trigger_event_commit\"() RETURNS \"trigger\"\n LANGUAGE \"plpgsql\"\n AS $$\nBEGIN\n\tPERFORM PG_ADVISORY_XACT_LOCK(5218230332970456493); -- well-known random number\n\tCASE WHEN\n\t\t\tNULLIF(CURRENT_SETTING('system.transaction_id', TRUE), '') IS NOT NULL\n\t\t\tAND NULLIF(CURRENT_SETTING('system.transaction_inserted', TRUE), '') IS NULL\n\t\tTHEN\n\t\t\tINSERT INTO stage_transaction(transaction_id, stage_id, applied_at)\n\t\t\tVALUES (CURRENT_SETTING('system.transaction_id')::UUID,\n\t\t\t\t\t(\n\t\t\t\t\t\tSELECT id\n\t\t\t\t\t\tFROM stage\n\t\t\t\t\t\tWHERE schema = TG_TABLE_SCHEMA\n\t\t\t\t\t),\n\t\t\t\t\tCLOCK_TIMESTAMP())\n\t\t\tON CONFLICT DO NOTHING;\n\t\t\tPERFORM SET_CONFIG('system.transaction_inserted', '1', TRUE);\n\t\tELSE\n\t\t-- do nothing\n\t\tEND CASE;\n\tRETURN NULL;\nEND\n$$;\nCREATE TABLE \"event_data\" (\n \"id\" \"uuid\" NOT NULL,\n \"type\" \"event_data_type\" NOT NULL,\n \"table_name\" \"text\" NOT NULL,\n \"row_ids\" \"jsonb\" NOT NULL,\n \"values\" \"jsonb\",\n \"created_at\" timestamp with time zone DEFAULT \"clock_timestamp\"() NOT NULL,\n \"schema_id\" integer NOT NULL,\n \"identity_id\" \"uuid\" NOT NULL,\n \"transaction_id\" \"uuid\" DEFAULT COALESCE((NULLIF(\"current_setting\"('system.transaction_id'::\"text\", true), ''::\"text\"))::\"uuid\", (\"set_config\"('system.transaction_id'::\"text\", (\"${randomUuidFn}\"())::\"text\", true))::\"uuid\") NOT NULL\n);\nCREATE TABLE \"schema_migration\" (\n \"id\" integer NOT NULL,\n \"version\" character varying(20) NOT NULL,\n \"name\" character varying(255) NOT NULL,\n \"migration\" \"json\" NOT NULL,\n \"checksum\" character(32),\n \"executed_at\" timestamp with time zone DEFAULT \"now\"() NOT NULL,\n \"type\" \"schema_migration_type\" DEFAULT 'schema'::\"schema_migration_type\" NOT NULL\n);\nCREATE TABLE \"stage\" (\n \"id\" \"uuid\" NOT NULL,\n \"name\" \"text\" NOT NULL,\n \"slug\" \"text\" NOT NULL,\n \"schema\" \"text\" NOT NULL\n);\nCREATE TABLE \"stage_transaction\" (\n \"transaction_id\" \"uuid\" NOT NULL,\n \"stage_id\" \"uuid\" NOT NULL,\n \"applied_at\" timestamp with time zone NOT NULL\n);\nALTER TABLE ONLY \"event_data\"\n ADD CONSTRAINT \"event_data_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_name_key\" UNIQUE (\"name\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_version_key\" UNIQUE (\"version\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_schema_key\" UNIQUE (\"schema\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_slug_key\" UNIQUE (\"slug\");\nALTER TABLE ONLY \"stage_transaction\"\n ADD CONSTRAINT \"stage_transaction_pkey\" PRIMARY KEY (\"transaction_id\", \"stage_id\");\nCREATE INDEX \"event_data_created\" ON \"event_data\" USING \"btree\" (\"created_at\");\nCREATE INDEX \"system_event2_table_name\" ON \"event_data\" USING \"btree\" (\"table_name\");\nCREATE INDEX \"system_event2_transaction\" ON \"event_data\" USING \"btree\" (\"transaction_id\");\nCREATE INDEX \"system_event2_type\" ON \"event_data\" USING \"btree\" (\"type\");\nCREATE INDEX \"system_event_row_id\" ON \"event_data\" USING \"btree\" (\"row_ids\");\nCREATE INDEX \"system_schema_migration_version\" ON \"schema_migration\" USING \"btree\" (\"version\");\nCREATE INDEX \"transaction_applied\" ON \"stage_transaction\" USING \"btree\" (\"applied_at\");\nALTER TABLE ONLY \"event_data\"\n ADD CONSTRAINT \"event_data_schema_id_fkey\" FOREIGN KEY (\"schema_id\") REFERENCES \"schema_migration\"(\"id\");\nALTER TABLE ONLY \"stage_transaction\"\n ADD CONSTRAINT \"stage_transaction_stage_id_fkey\" FOREIGN KEY (\"stage_id\") REFERENCES \"stage\"(\"id\") ON DELETE CASCADE;\n`)\n"],"names":["snapshotMigration"],"mappings":";;AACA,MAAA,WAAeA,kCAAkB,CAAC,EAAE,aAAA,MAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAkEhD,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wLAgDqK,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAiDnM;;"}
1
+ {"version":3,"file":"snapshot.cjs","sources":["../../../../../packages/engine-system-api/src/migrations/snapshot.ts"],"sourcesContent":["import { snapshotMigration } from './snapshot-factory'\nexport default snapshotMigration(({ randomUuidFn }) => `\nCREATE DOMAIN \"event_data_type\" AS \"text\"\n\tCONSTRAINT \"event_data_type_check\" CHECK ((VALUE = ANY (ARRAY['create'::\"text\", 'update'::\"text\", 'delete'::\"text\"])));\nCREATE DOMAIN \"event_type\" AS \"text\"\n\tCONSTRAINT \"event_type_check\" CHECK ((VALUE = ANY (ARRAY['init'::\"text\", 'create'::\"text\", 'update'::\"text\", 'delete'::\"text\", 'run_migration'::\"text\"])));\nCREATE TYPE \"schema_migration_type\" AS ENUM (\n 'schema',\n 'content'\n);\nCREATE TYPE \"schema_single\" AS ENUM (\n 'single'\n);\nCREATE FUNCTION \"trigger_event\"() RETURNS \"trigger\"\n LANGUAGE \"plpgsql\"\n AS $$\n\t\tDECLARE new_event_type TEXT;\n\t\tDECLARE table_name TEXT;\n\t\tDECLARE values JSONB;\n\t\tDECLARE update_diff JSONB;\n\t\tDECLARE primary_values JSONB;\n\t\tDECLARE old_row JSONB;\n\t\tDECLARE new_row JSONB;\n\t\tBEGIN\n\t\t\told_row := CASE WHEN TG_OP = 'DELETE' OR TG_OP = 'UPDATE' THEN TO_JSONB(old) ELSE NULL END;\n\t\t\tnew_row := CASE WHEN TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN TO_JSONB(new) ELSE NULL END;\n\t\t\tprimary_values := (\n\t\t\t\tSELECT JSONB_AGG(value ORDER BY array_position(TG_ARGV, key))\n\t\t\t\tFROM JSONB_EACH(COALESCE(old_row, new_row))\n\t\t\t\tWHERE key = ANY (TG_ARGV)\n\t\t\t);\n\t\t\ttable_name := tg_table_name;\n\t\t\tCASE TG_OP\n\t\t\t\tWHEN 'INSERT' THEN BEGIN\n\t\t\t\t\tnew_event_type := 'create';\n\t\t\t\t\tvalues := COALESCE(\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\tSELECT JSONB_OBJECT_AGG(key, value)\n \t\t\t\t\t\t FROM JSONB_EACH(new_row)\n \t\t\t\t\t\t WHERE NOT (key = ANY (TG_ARGV))\n \t\t\t\t\t\t),\n \t\t\t\t\t\tJSONB_BUILD_OBJECT()\n \t\t\t\t\t);\n\t\t\t\tEND;\n\t\t\t\tWHEN 'UPDATE' THEN BEGIN\n\t\t\t\t\tupdate_diff := (\n\t\t\t\t\t\tSELECT JSONB_OBJECT_AGG(COALESCE(n.key, o.key), n.value)\n\t\t\t\t\t\tFROM JSONB_EACH(old_row) o\n \t\t\t\t\t\tFULL OUTER JOIN JSONB_EACH(new_row) n ON n.key = o.key\n\t\t\t\t\t\tWHERE n.value IS DISTINCT FROM o.value\n\t\t\t\t\t);\n\t\t\t\t\tIF (SELECT COUNT(*) FROM JSONB_OBJECT_KEYS(update_diff)) = 0 THEN\n\t\t\t\t\t\tRETURN NULL;\n\t\t\t\t\tEND IF;\n\t\t\t\t\tnew_event_type := 'update';\n\t\t\t\t\tvalues := update_diff;\n\t\t\t\tEND;\n\t\t\t\tWHEN 'DELETE' THEN BEGIN\n\t\t\t\t\tnew_event_type := 'delete';\n\t\t\t\tEND;\n\t\t\t\tELSE RAISE\n\t\t\t\t\tEXCEPTION 'Unknown TG_OP value %', TG_OP;\n\t\t\tEND CASE;\n\t\t\tCASE WHEN NULLIF(CURRENT_SETTING('system.schema_id', true), '') IS NULL THEN\n\t\t\t\tPERFORM SET_CONFIG('system.schema_id', (select MAX(\"id\")::TEXT from schema_migration), TRUE);\n\t\t\tELSE\n\t\t\t\t-- do nothing\n\t\t\tEND CASE;\n\t\t\tINSERT INTO \"event_data\" (\"id\", \"type\", \"table_name\", \"row_ids\", \"values\", \"created_at\", schema_id, identity_id)\n\t\t\tVALUES (\n\t\t\t\t\"${randomUuidFn}\"(),\n\t\t\t\tnew_event_type,\n\t\t\t\ttable_name,\n\t\t\t\tprimary_values,\n\t\t\t\tvalues,\n\t\t\t\tCLOCK_TIMESTAMP(),\n\t\t\t\tCURRENT_SETTING('system.schema_id')::INT,\n\t\t\t\tCOALESCE(\n\t\t\t\t\tCURRENT_SETTING('tenant.identity_id'::TEXT, TRUE)::UUID,\n \t\t\t\t\t'00000000-0000-0000-0000-000000000000'::UUID)\n \t\t\t\t);\n\t\t\tRETURN NULL;\n\t\tEND;\n\t\t$$;\nCREATE FUNCTION \"trigger_event_commit\"() RETURNS \"trigger\"\n LANGUAGE \"plpgsql\"\n AS $$\nBEGIN\n\tPERFORM PG_ADVISORY_XACT_LOCK(5218230332970456493); -- well-known random number\n\tCASE WHEN\n\t\t\tNULLIF(CURRENT_SETTING('system.transaction_id', TRUE), '') IS NOT NULL\n\t\t\tAND NULLIF(CURRENT_SETTING('system.transaction_inserted', TRUE), '') IS NULL\n\t\tTHEN\n\t\t\tINSERT INTO stage_transaction(transaction_id, stage_id, applied_at)\n\t\t\tVALUES (CURRENT_SETTING('system.transaction_id')::UUID,\n\t\t\t\t\t(\n\t\t\t\t\t\tSELECT id\n\t\t\t\t\t\tFROM stage\n\t\t\t\t\t\tWHERE schema = TG_TABLE_SCHEMA\n\t\t\t\t\t),\n\t\t\t\t\tCLOCK_TIMESTAMP())\n\t\t\tON CONFLICT DO NOTHING;\n\t\t\tPERFORM SET_CONFIG('system.transaction_inserted', '1', TRUE);\n\t\tELSE\n\t\t-- do nothing\n\t\tEND CASE;\n\tRETURN NULL;\nEND\n$$;\nCREATE TABLE \"event_data\" (\n \"id\" \"uuid\" NOT NULL,\n \"type\" \"event_data_type\" NOT NULL,\n \"table_name\" \"text\" NOT NULL,\n \"row_ids\" \"jsonb\" NOT NULL,\n \"values\" \"jsonb\",\n \"created_at\" timestamp with time zone DEFAULT \"clock_timestamp\"() NOT NULL,\n \"schema_id\" integer NOT NULL,\n \"identity_id\" \"uuid\" NOT NULL,\n \"transaction_id\" \"uuid\" DEFAULT COALESCE((NULLIF(\"current_setting\"('system.transaction_id'::\"text\", true), ''::\"text\"))::\"uuid\", (\"set_config\"('system.transaction_id'::\"text\", (\"${randomUuidFn}\"())::\"text\", true))::\"uuid\") NOT NULL\n);\nCREATE TABLE \"schema\" (\n \"id\" \"schema_single\" DEFAULT 'single'::\"schema_single\" NOT NULL,\n \"schema\" \"json\" NOT NULL,\n \"updated_at\" timestamp with time zone DEFAULT \"now\"() NOT NULL,\n \"checksum\" character(32) NOT NULL,\n \"version\" character varying(20) NOT NULL,\n \"migration_id\" integer NOT NULL\n);\nCREATE TABLE \"schema_migration\" (\n \"id\" integer NOT NULL,\n \"version\" character varying(20) NOT NULL,\n \"name\" character varying(255) NOT NULL,\n \"migration\" \"json\" NOT NULL,\n \"checksum\" character(32),\n \"executed_at\" timestamp with time zone DEFAULT \"now\"() NOT NULL,\n \"type\" \"schema_migration_type\" DEFAULT 'schema'::\"schema_migration_type\" NOT NULL\n);\nCREATE TABLE \"stage\" (\n \"id\" \"uuid\" NOT NULL,\n \"name\" \"text\" NOT NULL,\n \"slug\" \"text\" NOT NULL,\n \"schema\" \"text\" NOT NULL\n);\nCREATE TABLE \"stage_transaction\" (\n \"transaction_id\" \"uuid\" NOT NULL,\n \"stage_id\" \"uuid\" NOT NULL,\n \"applied_at\" timestamp with time zone NOT NULL\n);\nALTER TABLE ONLY \"event_data\"\n ADD CONSTRAINT \"event_data_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_name_key\" UNIQUE (\"name\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_version_key\" UNIQUE (\"version\");\nALTER TABLE ONLY \"schema\"\n ADD CONSTRAINT \"schema_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_schema_key\" UNIQUE (\"schema\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_slug_key\" UNIQUE (\"slug\");\nALTER TABLE ONLY \"stage_transaction\"\n ADD CONSTRAINT \"stage_transaction_pkey\" PRIMARY KEY (\"transaction_id\", \"stage_id\");\nCREATE INDEX \"event_data_created\" ON \"event_data\" USING \"btree\" (\"created_at\");\nCREATE INDEX \"system_event2_table_name\" ON \"event_data\" USING \"btree\" (\"table_name\");\nCREATE INDEX \"system_event2_transaction\" ON \"event_data\" USING \"btree\" (\"transaction_id\");\nCREATE INDEX \"system_event2_type\" ON \"event_data\" USING \"btree\" (\"type\");\nCREATE INDEX \"system_event_data_row_id_0\" ON \"event_data\" USING \"btree\" (((\"row_ids\" -> 0)));\nCREATE INDEX \"system_event_data_row_id_1\" ON \"event_data\" USING \"btree\" (((\"row_ids\" -> 1)));\nCREATE INDEX \"system_schema_migration_version\" ON \"schema_migration\" USING \"btree\" (\"version\");\nCREATE INDEX \"transaction_applied\" ON \"stage_transaction\" USING \"btree\" (\"applied_at\");\nALTER TABLE ONLY \"event_data\"\n ADD CONSTRAINT \"event_data_schema_id_fkey\" FOREIGN KEY (\"schema_id\") REFERENCES \"schema_migration\"(\"id\");\nALTER TABLE ONLY \"schema\"\n ADD CONSTRAINT \"schema_migration_id_fkey\" FOREIGN KEY (\"migration_id\") REFERENCES \"schema_migration\"(\"id\") DEFERRABLE INITIALLY DEFERRED;\nALTER TABLE ONLY \"stage_transaction\"\n ADD CONSTRAINT \"stage_transaction_stage_id_fkey\" FOREIGN KEY (\"stage_id\") REFERENCES \"stage\"(\"id\") ON DELETE CASCADE;\n`)\n"],"names":["snapshotMigration"],"mappings":";;AACA,MAAA,WAAeA,kCAAkB,CAAC,EAAE,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAqEhD,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wLAgDqK,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CA8DnM;;"}
@@ -8,6 +8,9 @@ CREATE TYPE "schema_migration_type" AS ENUM (
8
8
  'schema',
9
9
  'content'
10
10
  );
11
+ CREATE TYPE "schema_single" AS ENUM (
12
+ 'single'
13
+ );
11
14
  CREATE FUNCTION "trigger_event"() RETURNS "trigger"
12
15
  LANGUAGE "plpgsql"
13
16
  AS $$
@@ -115,6 +118,14 @@ CREATE TABLE "event_data" (
115
118
  "identity_id" "uuid" NOT NULL,
116
119
  "transaction_id" "uuid" DEFAULT COALESCE((NULLIF("current_setting"('system.transaction_id'::"text", true), ''::"text"))::"uuid", ("set_config"('system.transaction_id'::"text", ("${randomUuidFn}"())::"text", true))::"uuid") NOT NULL
117
120
  );
121
+ CREATE TABLE "schema" (
122
+ "id" "schema_single" DEFAULT 'single'::"schema_single" NOT NULL,
123
+ "schema" "json" NOT NULL,
124
+ "updated_at" timestamp with time zone DEFAULT "now"() NOT NULL,
125
+ "checksum" character(32) NOT NULL,
126
+ "version" character varying(20) NOT NULL,
127
+ "migration_id" integer NOT NULL
128
+ );
118
129
  CREATE TABLE "schema_migration" (
119
130
  "id" integer NOT NULL,
120
131
  "version" character varying(20) NOT NULL,
@@ -143,6 +154,8 @@ ALTER TABLE ONLY "schema_migration"
143
154
  ADD CONSTRAINT "schema_migration_pkey" PRIMARY KEY ("id");
144
155
  ALTER TABLE ONLY "schema_migration"
145
156
  ADD CONSTRAINT "schema_migration_version_key" UNIQUE ("version");
157
+ ALTER TABLE ONLY "schema"
158
+ ADD CONSTRAINT "schema_pkey" PRIMARY KEY ("id");
146
159
  ALTER TABLE ONLY "stage"
147
160
  ADD CONSTRAINT "stage_pkey" PRIMARY KEY ("id");
148
161
  ALTER TABLE ONLY "stage"
@@ -155,11 +168,14 @@ CREATE INDEX "event_data_created" ON "event_data" USING "btree" ("created_at");
155
168
  CREATE INDEX "system_event2_table_name" ON "event_data" USING "btree" ("table_name");
156
169
  CREATE INDEX "system_event2_transaction" ON "event_data" USING "btree" ("transaction_id");
157
170
  CREATE INDEX "system_event2_type" ON "event_data" USING "btree" ("type");
158
- CREATE INDEX "system_event_row_id" ON "event_data" USING "btree" ("row_ids");
171
+ CREATE INDEX "system_event_data_row_id_0" ON "event_data" USING "btree" ((("row_ids" -> 0)));
172
+ CREATE INDEX "system_event_data_row_id_1" ON "event_data" USING "btree" ((("row_ids" -> 1)));
159
173
  CREATE INDEX "system_schema_migration_version" ON "schema_migration" USING "btree" ("version");
160
174
  CREATE INDEX "transaction_applied" ON "stage_transaction" USING "btree" ("applied_at");
161
175
  ALTER TABLE ONLY "event_data"
162
176
  ADD CONSTRAINT "event_data_schema_id_fkey" FOREIGN KEY ("schema_id") REFERENCES "schema_migration"("id");
177
+ ALTER TABLE ONLY "schema"
178
+ ADD CONSTRAINT "schema_migration_id_fkey" FOREIGN KEY ("migration_id") REFERENCES "schema_migration"("id") DEFERRABLE INITIALLY DEFERRED;
163
179
  ALTER TABLE ONLY "stage_transaction"
164
180
  ADD CONSTRAINT "stage_transaction_stage_id_fkey" FOREIGN KEY ("stage_id") REFERENCES "stage"("id") ON DELETE CASCADE;
165
181
  `);
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sources":["../../../../../packages/engine-system-api/src/migrations/snapshot.ts"],"sourcesContent":["import { snapshotMigration } from './snapshot-factory'\nexport default snapshotMigration(({ randomUuidFn }) => `\nCREATE DOMAIN \"event_data_type\" AS \"text\"\n\tCONSTRAINT \"event_data_type_check\" CHECK ((VALUE = ANY (ARRAY['create'::\"text\", 'update'::\"text\", 'delete'::\"text\"])));\nCREATE DOMAIN \"event_type\" AS \"text\"\n\tCONSTRAINT \"event_type_check\" CHECK ((VALUE = ANY (ARRAY['init'::\"text\", 'create'::\"text\", 'update'::\"text\", 'delete'::\"text\", 'run_migration'::\"text\"])));\nCREATE TYPE \"schema_migration_type\" AS ENUM (\n 'schema',\n 'content'\n);\nCREATE FUNCTION \"trigger_event\"() RETURNS \"trigger\"\n LANGUAGE \"plpgsql\"\n AS $$\n\t\tDECLARE new_event_type TEXT;\n\t\tDECLARE table_name TEXT;\n\t\tDECLARE values JSONB;\n\t\tDECLARE update_diff JSONB;\n\t\tDECLARE primary_values JSONB;\n\t\tDECLARE old_row JSONB;\n\t\tDECLARE new_row JSONB;\n\t\tBEGIN\n\t\t\told_row := CASE WHEN TG_OP = 'DELETE' OR TG_OP = 'UPDATE' THEN TO_JSONB(old) ELSE NULL END;\n\t\t\tnew_row := CASE WHEN TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN TO_JSONB(new) ELSE NULL END;\n\t\t\tprimary_values := (\n\t\t\t\tSELECT JSONB_AGG(value ORDER BY array_position(TG_ARGV, key))\n\t\t\t\tFROM JSONB_EACH(COALESCE(old_row, new_row))\n\t\t\t\tWHERE key = ANY (TG_ARGV)\n\t\t\t);\n\t\t\ttable_name := tg_table_name;\n\t\t\tCASE TG_OP\n\t\t\t\tWHEN 'INSERT' THEN BEGIN\n\t\t\t\t\tnew_event_type := 'create';\n\t\t\t\t\tvalues := COALESCE(\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\tSELECT JSONB_OBJECT_AGG(key, value)\n \t\t\t\t\t\t FROM JSONB_EACH(new_row)\n \t\t\t\t\t\t WHERE NOT (key = ANY (TG_ARGV))\n \t\t\t\t\t\t),\n \t\t\t\t\t\tJSONB_BUILD_OBJECT()\n \t\t\t\t\t);\n\t\t\t\tEND;\n\t\t\t\tWHEN 'UPDATE' THEN BEGIN\n\t\t\t\t\tupdate_diff := (\n\t\t\t\t\t\tSELECT JSONB_OBJECT_AGG(COALESCE(n.key, o.key), n.value)\n\t\t\t\t\t\tFROM JSONB_EACH(old_row) o\n \t\t\t\t\t\tFULL OUTER JOIN JSONB_EACH(new_row) n ON n.key = o.key\n\t\t\t\t\t\tWHERE n.value IS DISTINCT FROM o.value\n\t\t\t\t\t);\n\t\t\t\t\tIF (SELECT COUNT(*) FROM JSONB_OBJECT_KEYS(update_diff)) = 0 THEN\n\t\t\t\t\t\tRETURN NULL;\n\t\t\t\t\tEND IF;\n\t\t\t\t\tnew_event_type := 'update';\n\t\t\t\t\tvalues := update_diff;\n\t\t\t\tEND;\n\t\t\t\tWHEN 'DELETE' THEN BEGIN\n\t\t\t\t\tnew_event_type := 'delete';\n\t\t\t\tEND;\n\t\t\t\tELSE RAISE\n\t\t\t\t\tEXCEPTION 'Unknown TG_OP value %', TG_OP;\n\t\t\tEND CASE;\n\t\t\tCASE WHEN NULLIF(CURRENT_SETTING('system.schema_id', true), '') IS NULL THEN\n\t\t\t\tPERFORM SET_CONFIG('system.schema_id', (select MAX(\"id\")::TEXT from schema_migration), TRUE);\n\t\t\tELSE\n\t\t\t\t-- do nothing\n\t\t\tEND CASE;\n\t\t\tINSERT INTO \"event_data\" (\"id\", \"type\", \"table_name\", \"row_ids\", \"values\", \"created_at\", schema_id, identity_id)\n\t\t\tVALUES (\n\t\t\t\t\"${randomUuidFn}\"(),\n\t\t\t\tnew_event_type,\n\t\t\t\ttable_name,\n\t\t\t\tprimary_values,\n\t\t\t\tvalues,\n\t\t\t\tCLOCK_TIMESTAMP(),\n\t\t\t\tCURRENT_SETTING('system.schema_id')::INT,\n\t\t\t\tCOALESCE(\n\t\t\t\t\tCURRENT_SETTING('tenant.identity_id'::TEXT, TRUE)::UUID,\n \t\t\t\t\t'00000000-0000-0000-0000-000000000000'::UUID)\n \t\t\t\t);\n\t\t\tRETURN NULL;\n\t\tEND;\n\t\t$$;\nCREATE FUNCTION \"trigger_event_commit\"() RETURNS \"trigger\"\n LANGUAGE \"plpgsql\"\n AS $$\nBEGIN\n\tPERFORM PG_ADVISORY_XACT_LOCK(5218230332970456493); -- well-known random number\n\tCASE WHEN\n\t\t\tNULLIF(CURRENT_SETTING('system.transaction_id', TRUE), '') IS NOT NULL\n\t\t\tAND NULLIF(CURRENT_SETTING('system.transaction_inserted', TRUE), '') IS NULL\n\t\tTHEN\n\t\t\tINSERT INTO stage_transaction(transaction_id, stage_id, applied_at)\n\t\t\tVALUES (CURRENT_SETTING('system.transaction_id')::UUID,\n\t\t\t\t\t(\n\t\t\t\t\t\tSELECT id\n\t\t\t\t\t\tFROM stage\n\t\t\t\t\t\tWHERE schema = TG_TABLE_SCHEMA\n\t\t\t\t\t),\n\t\t\t\t\tCLOCK_TIMESTAMP())\n\t\t\tON CONFLICT DO NOTHING;\n\t\t\tPERFORM SET_CONFIG('system.transaction_inserted', '1', TRUE);\n\t\tELSE\n\t\t-- do nothing\n\t\tEND CASE;\n\tRETURN NULL;\nEND\n$$;\nCREATE TABLE \"event_data\" (\n \"id\" \"uuid\" NOT NULL,\n \"type\" \"event_data_type\" NOT NULL,\n \"table_name\" \"text\" NOT NULL,\n \"row_ids\" \"jsonb\" NOT NULL,\n \"values\" \"jsonb\",\n \"created_at\" timestamp with time zone DEFAULT \"clock_timestamp\"() NOT NULL,\n \"schema_id\" integer NOT NULL,\n \"identity_id\" \"uuid\" NOT NULL,\n \"transaction_id\" \"uuid\" DEFAULT COALESCE((NULLIF(\"current_setting\"('system.transaction_id'::\"text\", true), ''::\"text\"))::\"uuid\", (\"set_config\"('system.transaction_id'::\"text\", (\"${randomUuidFn}\"())::\"text\", true))::\"uuid\") NOT NULL\n);\nCREATE TABLE \"schema_migration\" (\n \"id\" integer NOT NULL,\n \"version\" character varying(20) NOT NULL,\n \"name\" character varying(255) NOT NULL,\n \"migration\" \"json\" NOT NULL,\n \"checksum\" character(32),\n \"executed_at\" timestamp with time zone DEFAULT \"now\"() NOT NULL,\n \"type\" \"schema_migration_type\" DEFAULT 'schema'::\"schema_migration_type\" NOT NULL\n);\nCREATE TABLE \"stage\" (\n \"id\" \"uuid\" NOT NULL,\n \"name\" \"text\" NOT NULL,\n \"slug\" \"text\" NOT NULL,\n \"schema\" \"text\" NOT NULL\n);\nCREATE TABLE \"stage_transaction\" (\n \"transaction_id\" \"uuid\" NOT NULL,\n \"stage_id\" \"uuid\" NOT NULL,\n \"applied_at\" timestamp with time zone NOT NULL\n);\nALTER TABLE ONLY \"event_data\"\n ADD CONSTRAINT \"event_data_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_name_key\" UNIQUE (\"name\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_version_key\" UNIQUE (\"version\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_schema_key\" UNIQUE (\"schema\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_slug_key\" UNIQUE (\"slug\");\nALTER TABLE ONLY \"stage_transaction\"\n ADD CONSTRAINT \"stage_transaction_pkey\" PRIMARY KEY (\"transaction_id\", \"stage_id\");\nCREATE INDEX \"event_data_created\" ON \"event_data\" USING \"btree\" (\"created_at\");\nCREATE INDEX \"system_event2_table_name\" ON \"event_data\" USING \"btree\" (\"table_name\");\nCREATE INDEX \"system_event2_transaction\" ON \"event_data\" USING \"btree\" (\"transaction_id\");\nCREATE INDEX \"system_event2_type\" ON \"event_data\" USING \"btree\" (\"type\");\nCREATE INDEX \"system_event_row_id\" ON \"event_data\" USING \"btree\" (\"row_ids\");\nCREATE INDEX \"system_schema_migration_version\" ON \"schema_migration\" USING \"btree\" (\"version\");\nCREATE INDEX \"transaction_applied\" ON \"stage_transaction\" USING \"btree\" (\"applied_at\");\nALTER TABLE ONLY \"event_data\"\n ADD CONSTRAINT \"event_data_schema_id_fkey\" FOREIGN KEY (\"schema_id\") REFERENCES \"schema_migration\"(\"id\");\nALTER TABLE ONLY \"stage_transaction\"\n ADD CONSTRAINT \"stage_transaction_stage_id_fkey\" FOREIGN KEY (\"stage_id\") REFERENCES \"stage\"(\"id\") ON DELETE CASCADE;\n`)\n"],"names":[],"mappings":";AACA,MAAA,WAAe,kBAAkB,CAAC,EAAE,aAAA,MAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAkEhD,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wLAgDqK,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAiDnM;"}
1
+ {"version":3,"file":"snapshot.js","sources":["../../../../../packages/engine-system-api/src/migrations/snapshot.ts"],"sourcesContent":["import { snapshotMigration } from './snapshot-factory'\nexport default snapshotMigration(({ randomUuidFn }) => `\nCREATE DOMAIN \"event_data_type\" AS \"text\"\n\tCONSTRAINT \"event_data_type_check\" CHECK ((VALUE = ANY (ARRAY['create'::\"text\", 'update'::\"text\", 'delete'::\"text\"])));\nCREATE DOMAIN \"event_type\" AS \"text\"\n\tCONSTRAINT \"event_type_check\" CHECK ((VALUE = ANY (ARRAY['init'::\"text\", 'create'::\"text\", 'update'::\"text\", 'delete'::\"text\", 'run_migration'::\"text\"])));\nCREATE TYPE \"schema_migration_type\" AS ENUM (\n 'schema',\n 'content'\n);\nCREATE TYPE \"schema_single\" AS ENUM (\n 'single'\n);\nCREATE FUNCTION \"trigger_event\"() RETURNS \"trigger\"\n LANGUAGE \"plpgsql\"\n AS $$\n\t\tDECLARE new_event_type TEXT;\n\t\tDECLARE table_name TEXT;\n\t\tDECLARE values JSONB;\n\t\tDECLARE update_diff JSONB;\n\t\tDECLARE primary_values JSONB;\n\t\tDECLARE old_row JSONB;\n\t\tDECLARE new_row JSONB;\n\t\tBEGIN\n\t\t\told_row := CASE WHEN TG_OP = 'DELETE' OR TG_OP = 'UPDATE' THEN TO_JSONB(old) ELSE NULL END;\n\t\t\tnew_row := CASE WHEN TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN TO_JSONB(new) ELSE NULL END;\n\t\t\tprimary_values := (\n\t\t\t\tSELECT JSONB_AGG(value ORDER BY array_position(TG_ARGV, key))\n\t\t\t\tFROM JSONB_EACH(COALESCE(old_row, new_row))\n\t\t\t\tWHERE key = ANY (TG_ARGV)\n\t\t\t);\n\t\t\ttable_name := tg_table_name;\n\t\t\tCASE TG_OP\n\t\t\t\tWHEN 'INSERT' THEN BEGIN\n\t\t\t\t\tnew_event_type := 'create';\n\t\t\t\t\tvalues := COALESCE(\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\tSELECT JSONB_OBJECT_AGG(key, value)\n \t\t\t\t\t\t FROM JSONB_EACH(new_row)\n \t\t\t\t\t\t WHERE NOT (key = ANY (TG_ARGV))\n \t\t\t\t\t\t),\n \t\t\t\t\t\tJSONB_BUILD_OBJECT()\n \t\t\t\t\t);\n\t\t\t\tEND;\n\t\t\t\tWHEN 'UPDATE' THEN BEGIN\n\t\t\t\t\tupdate_diff := (\n\t\t\t\t\t\tSELECT JSONB_OBJECT_AGG(COALESCE(n.key, o.key), n.value)\n\t\t\t\t\t\tFROM JSONB_EACH(old_row) o\n \t\t\t\t\t\tFULL OUTER JOIN JSONB_EACH(new_row) n ON n.key = o.key\n\t\t\t\t\t\tWHERE n.value IS DISTINCT FROM o.value\n\t\t\t\t\t);\n\t\t\t\t\tIF (SELECT COUNT(*) FROM JSONB_OBJECT_KEYS(update_diff)) = 0 THEN\n\t\t\t\t\t\tRETURN NULL;\n\t\t\t\t\tEND IF;\n\t\t\t\t\tnew_event_type := 'update';\n\t\t\t\t\tvalues := update_diff;\n\t\t\t\tEND;\n\t\t\t\tWHEN 'DELETE' THEN BEGIN\n\t\t\t\t\tnew_event_type := 'delete';\n\t\t\t\tEND;\n\t\t\t\tELSE RAISE\n\t\t\t\t\tEXCEPTION 'Unknown TG_OP value %', TG_OP;\n\t\t\tEND CASE;\n\t\t\tCASE WHEN NULLIF(CURRENT_SETTING('system.schema_id', true), '') IS NULL THEN\n\t\t\t\tPERFORM SET_CONFIG('system.schema_id', (select MAX(\"id\")::TEXT from schema_migration), TRUE);\n\t\t\tELSE\n\t\t\t\t-- do nothing\n\t\t\tEND CASE;\n\t\t\tINSERT INTO \"event_data\" (\"id\", \"type\", \"table_name\", \"row_ids\", \"values\", \"created_at\", schema_id, identity_id)\n\t\t\tVALUES (\n\t\t\t\t\"${randomUuidFn}\"(),\n\t\t\t\tnew_event_type,\n\t\t\t\ttable_name,\n\t\t\t\tprimary_values,\n\t\t\t\tvalues,\n\t\t\t\tCLOCK_TIMESTAMP(),\n\t\t\t\tCURRENT_SETTING('system.schema_id')::INT,\n\t\t\t\tCOALESCE(\n\t\t\t\t\tCURRENT_SETTING('tenant.identity_id'::TEXT, TRUE)::UUID,\n \t\t\t\t\t'00000000-0000-0000-0000-000000000000'::UUID)\n \t\t\t\t);\n\t\t\tRETURN NULL;\n\t\tEND;\n\t\t$$;\nCREATE FUNCTION \"trigger_event_commit\"() RETURNS \"trigger\"\n LANGUAGE \"plpgsql\"\n AS $$\nBEGIN\n\tPERFORM PG_ADVISORY_XACT_LOCK(5218230332970456493); -- well-known random number\n\tCASE WHEN\n\t\t\tNULLIF(CURRENT_SETTING('system.transaction_id', TRUE), '') IS NOT NULL\n\t\t\tAND NULLIF(CURRENT_SETTING('system.transaction_inserted', TRUE), '') IS NULL\n\t\tTHEN\n\t\t\tINSERT INTO stage_transaction(transaction_id, stage_id, applied_at)\n\t\t\tVALUES (CURRENT_SETTING('system.transaction_id')::UUID,\n\t\t\t\t\t(\n\t\t\t\t\t\tSELECT id\n\t\t\t\t\t\tFROM stage\n\t\t\t\t\t\tWHERE schema = TG_TABLE_SCHEMA\n\t\t\t\t\t),\n\t\t\t\t\tCLOCK_TIMESTAMP())\n\t\t\tON CONFLICT DO NOTHING;\n\t\t\tPERFORM SET_CONFIG('system.transaction_inserted', '1', TRUE);\n\t\tELSE\n\t\t-- do nothing\n\t\tEND CASE;\n\tRETURN NULL;\nEND\n$$;\nCREATE TABLE \"event_data\" (\n \"id\" \"uuid\" NOT NULL,\n \"type\" \"event_data_type\" NOT NULL,\n \"table_name\" \"text\" NOT NULL,\n \"row_ids\" \"jsonb\" NOT NULL,\n \"values\" \"jsonb\",\n \"created_at\" timestamp with time zone DEFAULT \"clock_timestamp\"() NOT NULL,\n \"schema_id\" integer NOT NULL,\n \"identity_id\" \"uuid\" NOT NULL,\n \"transaction_id\" \"uuid\" DEFAULT COALESCE((NULLIF(\"current_setting\"('system.transaction_id'::\"text\", true), ''::\"text\"))::\"uuid\", (\"set_config\"('system.transaction_id'::\"text\", (\"${randomUuidFn}\"())::\"text\", true))::\"uuid\") NOT NULL\n);\nCREATE TABLE \"schema\" (\n \"id\" \"schema_single\" DEFAULT 'single'::\"schema_single\" NOT NULL,\n \"schema\" \"json\" NOT NULL,\n \"updated_at\" timestamp with time zone DEFAULT \"now\"() NOT NULL,\n \"checksum\" character(32) NOT NULL,\n \"version\" character varying(20) NOT NULL,\n \"migration_id\" integer NOT NULL\n);\nCREATE TABLE \"schema_migration\" (\n \"id\" integer NOT NULL,\n \"version\" character varying(20) NOT NULL,\n \"name\" character varying(255) NOT NULL,\n \"migration\" \"json\" NOT NULL,\n \"checksum\" character(32),\n \"executed_at\" timestamp with time zone DEFAULT \"now\"() NOT NULL,\n \"type\" \"schema_migration_type\" DEFAULT 'schema'::\"schema_migration_type\" NOT NULL\n);\nCREATE TABLE \"stage\" (\n \"id\" \"uuid\" NOT NULL,\n \"name\" \"text\" NOT NULL,\n \"slug\" \"text\" NOT NULL,\n \"schema\" \"text\" NOT NULL\n);\nCREATE TABLE \"stage_transaction\" (\n \"transaction_id\" \"uuid\" NOT NULL,\n \"stage_id\" \"uuid\" NOT NULL,\n \"applied_at\" timestamp with time zone NOT NULL\n);\nALTER TABLE ONLY \"event_data\"\n ADD CONSTRAINT \"event_data_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_name_key\" UNIQUE (\"name\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"schema_migration\"\n ADD CONSTRAINT \"schema_migration_version_key\" UNIQUE (\"version\");\nALTER TABLE ONLY \"schema\"\n ADD CONSTRAINT \"schema_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_pkey\" PRIMARY KEY (\"id\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_schema_key\" UNIQUE (\"schema\");\nALTER TABLE ONLY \"stage\"\n ADD CONSTRAINT \"stage_slug_key\" UNIQUE (\"slug\");\nALTER TABLE ONLY \"stage_transaction\"\n ADD CONSTRAINT \"stage_transaction_pkey\" PRIMARY KEY (\"transaction_id\", \"stage_id\");\nCREATE INDEX \"event_data_created\" ON \"event_data\" USING \"btree\" (\"created_at\");\nCREATE INDEX \"system_event2_table_name\" ON \"event_data\" USING \"btree\" (\"table_name\");\nCREATE INDEX \"system_event2_transaction\" ON \"event_data\" USING \"btree\" (\"transaction_id\");\nCREATE INDEX \"system_event2_type\" ON \"event_data\" USING \"btree\" (\"type\");\nCREATE INDEX \"system_event_data_row_id_0\" ON \"event_data\" USING \"btree\" (((\"row_ids\" -> 0)));\nCREATE INDEX \"system_event_data_row_id_1\" ON \"event_data\" USING \"btree\" (((\"row_ids\" -> 1)));\nCREATE INDEX \"system_schema_migration_version\" ON \"schema_migration\" USING \"btree\" (\"version\");\nCREATE INDEX \"transaction_applied\" ON \"stage_transaction\" USING \"btree\" (\"applied_at\");\nALTER TABLE ONLY \"event_data\"\n ADD CONSTRAINT \"event_data_schema_id_fkey\" FOREIGN KEY (\"schema_id\") REFERENCES \"schema_migration\"(\"id\");\nALTER TABLE ONLY \"schema\"\n ADD CONSTRAINT \"schema_migration_id_fkey\" FOREIGN KEY (\"migration_id\") REFERENCES \"schema_migration\"(\"id\") DEFERRABLE INITIALLY DEFERRED;\nALTER TABLE ONLY \"stage_transaction\"\n ADD CONSTRAINT \"stage_transaction_stage_id_fkey\" FOREIGN KEY (\"stage_id\") REFERENCES \"stage\"(\"id\") ON DELETE CASCADE;\n`)\n"],"names":[],"mappings":";AACA,MAAA,WAAe,kBAAkB,CAAC,EAAE,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAqEhD,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wLAgDqK,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CA8DnM;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectInitializer.cjs","sources":["../../../../../packages/engine-system-api/src/model/ProjectInitializer.ts"],"sourcesContent":["import { ProjectConfig } from '../types'\nimport { StageCreator } from './stages'\nimport { DatabaseContext } from './database'\nimport { Connection, retryTransaction } from '@contember/database'\nimport { FingerCrossedLoggerHandler, Logger } from '@contember/logger'\nimport { SystemMigrationsRunner } from '../migrations'\n\nexport class ProjectInitializer {\n\tconstructor(\n\t\tprivate readonly stageCreator: StageCreator,\n\t\tprivate readonly migrationsRunner: SystemMigrationsRunner,\n\t\tprivate readonly databaseContext: DatabaseContext,\n\t\tprivate readonly project: ProjectConfig,\n\t) {}\n\n\tpublic async initialize(logger: Logger) {\n\t\treturn await logger.scope(async initLogger => {\n\t\t\tinitLogger.debug('Executing system schema migrations')\n\t\t\tawait this.migrationsRunner.run(initLogger)\n\t\t\tconst dbContext = this.databaseContext\n\t\t\tawait retryTransaction(\n\t\t\t\t() => dbContext.transaction(async trx => {\n\t\t\t\t\tawait this.initStages(trx, logger)\n\t\t\t\t}),\n\t\t\t\tmessage => initLogger.warn(message),\n\t\t\t)\n\t\t\tif (dbContext.client.connection instanceof Connection) {\n\t\t\t\tawait dbContext.client.connection.clearPool()\n\t\t\t}\n\t\t}, {}, { handler: FingerCrossedLoggerHandler.factory() })\n\t}\n\n\tprivate async initStages(db: DatabaseContext<Connection.TransactionLike>, logger: Logger) {\n\t\tlogger.debug(`Creating stages`)\n\t\tfor (const stage of this.project.stages) {\n\t\t\tconst created = await this.stageCreator.createStage(db, stage)\n\t\t\tif (created) {\n\t\t\t\tlogger.warn(`Created stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t} else {\n\t\t\t\tlogger.debug(`Updated stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["logger","retryTransaction","Connection","FingerCrossedLoggerHandler"],"mappings":";;;;AAOO,MAAM,mBAAmB;AAAA,EAC/B,YACkB,cACA,kBACA,iBACA,SAChB;AAJgB,SAAA,eAAA;AACA,SAAA,mBAAA;AACA,SAAA,kBAAA;AACA,SAAA,UAAA;AAAA,EACf;AAAA,EAEH,MAAa,WAAWA,UAAgB;AACvC,WAAO,MAAMA,SAAO,MAAM,OAAM,eAAc;AAC7C,iBAAW,MAAM,oCAAoC;AAC/C,YAAA,KAAK,iBAAiB,IAAI,UAAU;AAC1C,YAAM,YAAY,KAAK;AACjB,YAAAC,SAAA;AAAA,QACL,MAAM,UAAU,YAAY,OAAM,QAAO;AAClC,gBAAA,KAAK,WAAW,KAAKD,QAAM;AAAA,QAAA,CACjC;AAAA,QACD,CAAA,YAAW,WAAW,KAAK,OAAO;AAAA,MAAA;AAE/B,UAAA,UAAU,OAAO,sBAAsBE,qBAAY;AAChD,cAAA,UAAU,OAAO,WAAW,UAAU;AAAA,MAC7C;AAAA,IAAA,GACE,CAAA,GAAI,EAAE,SAASC,OAA2B,2BAAA,QAAA,EAAW,CAAA;AAAA,EACzD;AAAA,EAEA,MAAc,WAAW,IAAiDH,SAAgB;AACzF,IAAAA,QAAO,MAAM,iBAAiB;AACnB,eAAA,SAAS,KAAK,QAAQ,QAAQ;AACxC,YAAM,UAAU,MAAM,KAAK,aAAa,YAAY,IAAI,KAAK;AAC7D,UAAI,SAAS;AACL,QAAAA,QAAA,KAAK,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,KAAM,CAAA;AAAA,MAAA,OAC1D;AACC,QAAAA,QAAA,MAAM,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,KAAM,CAAA;AAAA,MAClE;AAAA,IACD;AAAA,EACD;AACD;;"}
1
+ {"version":3,"file":"ProjectInitializer.cjs","sources":["../../../../../packages/engine-system-api/src/model/ProjectInitializer.ts"],"sourcesContent":["import { ProjectConfig } from '../types'\nimport { StageCreator } from './stages'\nimport { DatabaseContext } from './database'\nimport { Connection, retryTransaction } from '@contember/database'\nimport { FingerCrossedLoggerHandler, Logger } from '@contember/logger'\nimport { SystemMigrationsRunner } from '../migrations'\n\nexport class ProjectInitializer {\n\tconstructor(\n\t\tprivate readonly stageCreator: StageCreator,\n\t\tprivate readonly migrationsRunner: SystemMigrationsRunner,\n\t\tprivate readonly databaseContext: DatabaseContext,\n\t\tprivate readonly project: ProjectConfig,\n\t) {}\n\n\tpublic async initialize(logger: Logger) {\n\t\treturn await logger.scope(async initLogger => {\n\t\t\tinitLogger.debug('Executing system schema migrations')\n\t\t\tawait this.migrationsRunner.run(initLogger)\n\t\t\tconst dbContext = this.databaseContext\n\t\t\tawait retryTransaction(\n\t\t\t\t() => dbContext.transaction(async trx => {\n\t\t\t\t\tawait this.initStages(trx, logger)\n\t\t\t\t}),\n\t\t\t\tmessage => initLogger.warn(message),\n\t\t\t)\n\t\t\tif (dbContext.client.connection instanceof Connection) {\n\t\t\t\tawait dbContext.client.connection.clearPool()\n\t\t\t}\n\t\t}, {}, { handler: FingerCrossedLoggerHandler.factory() })\n\t}\n\n\tprivate async initStages(db: DatabaseContext<Connection.TransactionLike>, logger: Logger) {\n\t\tlogger.debug(`Creating stages`)\n\t\tfor (const stage of this.project.stages) {\n\t\t\tconst created = await this.stageCreator.createStage(db, stage)\n\t\t\tif (created) {\n\t\t\t\tlogger.warn(`Created stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t} else {\n\t\t\t\tlogger.debug(`Updated stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["logger","retryTransaction","Connection","FingerCrossedLoggerHandler"],"mappings":";;;;AAOO,MAAM,mBAAmB;AAAA,EAC/B,YACkB,cACA,kBACA,iBACA,SAChB;AAJgB,SAAA,eAAA;AACA,SAAA,mBAAA;AACA,SAAA,kBAAA;AACA,SAAA,UAAA;AAAA,EAAA;AAAA,EAGlB,MAAa,WAAWA,UAAgB;AACvC,WAAO,MAAMA,SAAO,MAAM,OAAM,eAAc;AAC7C,iBAAW,MAAM,oCAAoC;AAC/C,YAAA,KAAK,iBAAiB,IAAI,UAAU;AAC1C,YAAM,YAAY,KAAK;AACjB,YAAAC,SAAA;AAAA,QACL,MAAM,UAAU,YAAY,OAAM,QAAO;AAClC,gBAAA,KAAK,WAAW,KAAKD,QAAM;AAAA,QAAA,CACjC;AAAA,QACD,CAAA,YAAW,WAAW,KAAK,OAAO;AAAA,MACnC;AACI,UAAA,UAAU,OAAO,sBAAsBE,qBAAY;AAChD,cAAA,UAAU,OAAO,WAAW,UAAU;AAAA,MAAA;AAAA,IAE9C,GAAG,CAAI,GAAA,EAAE,SAASC,OAAAA,2BAA2B,WAAW;AAAA,EAAA;AAAA,EAGzD,MAAc,WAAW,IAAiDH,SAAgB;AACzF,IAAAA,QAAO,MAAM,iBAAiB;AACnB,eAAA,SAAS,KAAK,QAAQ,QAAQ;AACxC,YAAM,UAAU,MAAM,KAAK,aAAa,YAAY,IAAI,KAAK;AAC7D,UAAI,SAAS;AACL,QAAAA,QAAA,KAAK,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,MAAA,OAC1D;AACC,QAAAA,QAAA,MAAM,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,MAAA;AAAA,IAClE;AAAA,EACD;AAEF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectInitializer.js","sources":["../../../../../packages/engine-system-api/src/model/ProjectInitializer.ts"],"sourcesContent":["import { ProjectConfig } from '../types'\nimport { StageCreator } from './stages'\nimport { DatabaseContext } from './database'\nimport { Connection, retryTransaction } from '@contember/database'\nimport { FingerCrossedLoggerHandler, Logger } from '@contember/logger'\nimport { SystemMigrationsRunner } from '../migrations'\n\nexport class ProjectInitializer {\n\tconstructor(\n\t\tprivate readonly stageCreator: StageCreator,\n\t\tprivate readonly migrationsRunner: SystemMigrationsRunner,\n\t\tprivate readonly databaseContext: DatabaseContext,\n\t\tprivate readonly project: ProjectConfig,\n\t) {}\n\n\tpublic async initialize(logger: Logger) {\n\t\treturn await logger.scope(async initLogger => {\n\t\t\tinitLogger.debug('Executing system schema migrations')\n\t\t\tawait this.migrationsRunner.run(initLogger)\n\t\t\tconst dbContext = this.databaseContext\n\t\t\tawait retryTransaction(\n\t\t\t\t() => dbContext.transaction(async trx => {\n\t\t\t\t\tawait this.initStages(trx, logger)\n\t\t\t\t}),\n\t\t\t\tmessage => initLogger.warn(message),\n\t\t\t)\n\t\t\tif (dbContext.client.connection instanceof Connection) {\n\t\t\t\tawait dbContext.client.connection.clearPool()\n\t\t\t}\n\t\t}, {}, { handler: FingerCrossedLoggerHandler.factory() })\n\t}\n\n\tprivate async initStages(db: DatabaseContext<Connection.TransactionLike>, logger: Logger) {\n\t\tlogger.debug(`Creating stages`)\n\t\tfor (const stage of this.project.stages) {\n\t\t\tconst created = await this.stageCreator.createStage(db, stage)\n\t\t\tif (created) {\n\t\t\t\tlogger.warn(`Created stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t} else {\n\t\t\t\tlogger.debug(`Updated stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAOO,MAAM,mBAAmB;AAAA,EAC/B,YACkB,cACA,kBACA,iBACA,SAChB;AAJgB,SAAA,eAAA;AACA,SAAA,mBAAA;AACA,SAAA,kBAAA;AACA,SAAA,UAAA;AAAA,EACf;AAAA,EAEH,MAAa,WAAW,QAAgB;AACvC,WAAO,MAAM,OAAO,MAAM,OAAM,eAAc;AAC7C,iBAAW,MAAM,oCAAoC;AAC/C,YAAA,KAAK,iBAAiB,IAAI,UAAU;AAC1C,YAAM,YAAY,KAAK;AACjB,YAAA;AAAA,QACL,MAAM,UAAU,YAAY,OAAM,QAAO;AAClC,gBAAA,KAAK,WAAW,KAAK,MAAM;AAAA,QAAA,CACjC;AAAA,QACD,CAAA,YAAW,WAAW,KAAK,OAAO;AAAA,MAAA;AAE/B,UAAA,UAAU,OAAO,sBAAsB,YAAY;AAChD,cAAA,UAAU,OAAO,WAAW,UAAU;AAAA,MAC7C;AAAA,IAAA,GACE,CAAA,GAAI,EAAE,SAAS,2BAA2B,QAAA,EAAW,CAAA;AAAA,EACzD;AAAA,EAEA,MAAc,WAAW,IAAiD,QAAgB;AACzF,WAAO,MAAM,iBAAiB;AACnB,eAAA,SAAS,KAAK,QAAQ,QAAQ;AACxC,YAAM,UAAU,MAAM,KAAK,aAAa,YAAY,IAAI,KAAK;AAC7D,UAAI,SAAS;AACL,eAAA,KAAK,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,KAAM,CAAA;AAAA,MAAA,OAC1D;AACC,eAAA,MAAM,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,KAAM,CAAA;AAAA,MAClE;AAAA,IACD;AAAA,EACD;AACD;"}
1
+ {"version":3,"file":"ProjectInitializer.js","sources":["../../../../../packages/engine-system-api/src/model/ProjectInitializer.ts"],"sourcesContent":["import { ProjectConfig } from '../types'\nimport { StageCreator } from './stages'\nimport { DatabaseContext } from './database'\nimport { Connection, retryTransaction } from '@contember/database'\nimport { FingerCrossedLoggerHandler, Logger } from '@contember/logger'\nimport { SystemMigrationsRunner } from '../migrations'\n\nexport class ProjectInitializer {\n\tconstructor(\n\t\tprivate readonly stageCreator: StageCreator,\n\t\tprivate readonly migrationsRunner: SystemMigrationsRunner,\n\t\tprivate readonly databaseContext: DatabaseContext,\n\t\tprivate readonly project: ProjectConfig,\n\t) {}\n\n\tpublic async initialize(logger: Logger) {\n\t\treturn await logger.scope(async initLogger => {\n\t\t\tinitLogger.debug('Executing system schema migrations')\n\t\t\tawait this.migrationsRunner.run(initLogger)\n\t\t\tconst dbContext = this.databaseContext\n\t\t\tawait retryTransaction(\n\t\t\t\t() => dbContext.transaction(async trx => {\n\t\t\t\t\tawait this.initStages(trx, logger)\n\t\t\t\t}),\n\t\t\t\tmessage => initLogger.warn(message),\n\t\t\t)\n\t\t\tif (dbContext.client.connection instanceof Connection) {\n\t\t\t\tawait dbContext.client.connection.clearPool()\n\t\t\t}\n\t\t}, {}, { handler: FingerCrossedLoggerHandler.factory() })\n\t}\n\n\tprivate async initStages(db: DatabaseContext<Connection.TransactionLike>, logger: Logger) {\n\t\tlogger.debug(`Creating stages`)\n\t\tfor (const stage of this.project.stages) {\n\t\t\tconst created = await this.stageCreator.createStage(db, stage)\n\t\t\tif (created) {\n\t\t\t\tlogger.warn(`Created stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t} else {\n\t\t\t\tlogger.debug(`Updated stage ${stage.slug}`, { stage: stage.slug })\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAOO,MAAM,mBAAmB;AAAA,EAC/B,YACkB,cACA,kBACA,iBACA,SAChB;AAJgB,SAAA,eAAA;AACA,SAAA,mBAAA;AACA,SAAA,kBAAA;AACA,SAAA,UAAA;AAAA,EAAA;AAAA,EAGlB,MAAa,WAAW,QAAgB;AACvC,WAAO,MAAM,OAAO,MAAM,OAAM,eAAc;AAC7C,iBAAW,MAAM,oCAAoC;AAC/C,YAAA,KAAK,iBAAiB,IAAI,UAAU;AAC1C,YAAM,YAAY,KAAK;AACjB,YAAA;AAAA,QACL,MAAM,UAAU,YAAY,OAAM,QAAO;AAClC,gBAAA,KAAK,WAAW,KAAK,MAAM;AAAA,QAAA,CACjC;AAAA,QACD,CAAA,YAAW,WAAW,KAAK,OAAO;AAAA,MACnC;AACI,UAAA,UAAU,OAAO,sBAAsB,YAAY;AAChD,cAAA,UAAU,OAAO,WAAW,UAAU;AAAA,MAAA;AAAA,IAE9C,GAAG,CAAI,GAAA,EAAE,SAAS,2BAA2B,WAAW;AAAA,EAAA;AAAA,EAGzD,MAAc,WAAW,IAAiD,QAAgB;AACzF,WAAO,MAAM,iBAAiB;AACnB,eAAA,SAAS,KAAK,QAAQ,QAAQ;AACxC,YAAM,UAAU,MAAM,KAAK,aAAa,YAAY,IAAI,KAAK;AAC7D,UAAI,SAAS;AACL,eAAA,KAAK,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,MAAA,OAC1D;AACC,eAAA,MAAM,iBAAiB,MAAM,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM;AAAA,MAAA;AAAA,IAClE;AAAA,EACD;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTruncateExecutor.cjs","sources":["../../../../../packages/engine-system-api/src/model/ProjectTruncateExecutor.ts"],"sourcesContent":["import { DatabaseContext } from './database'\nimport { ProjectConfig } from '../types'\nimport { TruncateEventsCommand } from './commands'\nimport { getJunctionTables } from './helpers'\nimport { Schema } from '@contember/schema'\nimport { wrapIdentifier } from '@contember/database'\nimport { StagesQuery } from './queries'\n\nexport class ProjectTruncateExecutor {\n\tpublic async truncateProject(db: DatabaseContext, project: ProjectConfig, schema: Schema) {\n\t\tconst tableNames = Object.values(schema.model.entities).filter(it => !it.view).map(it => it.tableName)\n\t\tconst junctionTableNames = getJunctionTables(schema.model).map(it => it.tableName)\n\t\tconst allTableNames = [...tableNames, ...junctionTableNames]\n\t\tif (allTableNames.length === 0) {\n\t\t\treturn\n\t\t}\n\t\tawait db.transaction(async trx => {\n\t\t\tawait trx.client.query('SET CONSTRAINTS ALL DEFERRED')\n\t\t\tconst stages = await db.queryHandler.fetch(new StagesQuery())\n\t\t\tfor (const stage of stages) {\n\t\t\t\tconst wrappedNames = allTableNames.map(it => `${wrapIdentifier(stage.schema)}.${wrapIdentifier(it)}`)\n\t\t\t\tawait trx.client.query(`TRUNCATE ${wrappedNames}`)\n\t\t\t}\n\t\t\tawait trx.client.query('SET CONSTRAINTS ALL IMMEDIATE')\n\t\t\tawait trx.commandBus.execute(new TruncateEventsCommand())\n\t\t})\n\t}\n}\n"],"names":["getJunctionTables","StagesQuery","wrapIdentifier","TruncateEventsCommand"],"mappings":";;;;;;;;;AAQO,MAAM,wBAAwB;AAAA,EACpC,MAAa,gBAAgB,IAAqB,SAAwB,QAAgB;AACzF,UAAM,aAAa,OAAO,OAAO,OAAO,MAAM,QAAQ,EAAE,OAAO,CAAM,OAAA,CAAC,GAAG,IAAI,EAAE,IAAI,CAAA,OAAM,GAAG,SAAS;AAC/F,UAAA,qBAAqBA,+BAAkB,OAAO,KAAK,EAAE,IAAI,CAAA,OAAM,GAAG,SAAS;AACjF,UAAM,gBAAgB,CAAC,GAAG,YAAY,GAAG,kBAAkB;AACvD,QAAA,cAAc,WAAW,GAAG;AAC/B;AAAA,IACD;AACM,UAAA,GAAG,YAAY,OAAM,QAAO;AAC3B,YAAA,IAAI,OAAO,MAAM,8BAA8B;AACrD,YAAM,SAAS,MAAM,GAAG,aAAa,MAAM,IAAIC,yBAAa;AAC5D,iBAAW,SAAS,QAAQ;AAC3B,cAAM,eAAe,cAAc,IAAI,CAAA,OAAM,GAAGC,SAAA,eAAe,MAAM,MAAM,CAAC,IAAIA,SAAAA,eAAe,EAAE,CAAC,EAAE;AACpG,cAAM,IAAI,OAAO,MAAM,YAAY,YAAY,EAAE;AAAA,MAClD;AACM,YAAA,IAAI,OAAO,MAAM,+BAA+B;AACtD,YAAM,IAAI,WAAW,QAAQ,IAAIC,sBAAAA,sBAAuB,CAAA;AAAA,IAAA,CACxD;AAAA,EACF;AACD;;"}
1
+ {"version":3,"file":"ProjectTruncateExecutor.cjs","sources":["../../../../../packages/engine-system-api/src/model/ProjectTruncateExecutor.ts"],"sourcesContent":["import { DatabaseContext } from './database'\nimport { ProjectConfig } from '../types'\nimport { TruncateEventsCommand } from './commands'\nimport { getJunctionTables } from './helpers'\nimport { Schema } from '@contember/schema'\nimport { wrapIdentifier } from '@contember/database'\nimport { StagesQuery } from './queries'\n\nexport class ProjectTruncateExecutor {\n\tpublic async truncateProject(db: DatabaseContext, project: ProjectConfig, schema: Schema) {\n\t\tconst tableNames = Object.values(schema.model.entities).filter(it => !it.view).map(it => it.tableName)\n\t\tconst junctionTableNames = getJunctionTables(schema.model).map(it => it.tableName)\n\t\tconst allTableNames = [...tableNames, ...junctionTableNames]\n\t\tif (allTableNames.length === 0) {\n\t\t\treturn\n\t\t}\n\t\tawait db.transaction(async trx => {\n\t\t\tawait trx.client.query('SET CONSTRAINTS ALL DEFERRED')\n\t\t\tconst stages = await db.queryHandler.fetch(new StagesQuery())\n\t\t\tfor (const stage of stages) {\n\t\t\t\tconst wrappedNames = allTableNames.map(it => `${wrapIdentifier(stage.schema)}.${wrapIdentifier(it)}`)\n\t\t\t\tawait trx.client.query(`TRUNCATE ${wrappedNames}`)\n\t\t\t}\n\t\t\tawait trx.client.query('SET CONSTRAINTS ALL IMMEDIATE')\n\t\t\tawait trx.commandBus.execute(new TruncateEventsCommand())\n\t\t})\n\t}\n}\n"],"names":["getJunctionTables","StagesQuery","wrapIdentifier","TruncateEventsCommand"],"mappings":";;;;;;;;;AAQO,MAAM,wBAAwB;AAAA,EACpC,MAAa,gBAAgB,IAAqB,SAAwB,QAAgB;AACzF,UAAM,aAAa,OAAO,OAAO,OAAO,MAAM,QAAQ,EAAE,OAAO,CAAM,OAAA,CAAC,GAAG,IAAI,EAAE,IAAI,CAAA,OAAM,GAAG,SAAS;AAC/F,UAAA,qBAAqBA,+BAAkB,OAAO,KAAK,EAAE,IAAI,CAAA,OAAM,GAAG,SAAS;AACjF,UAAM,gBAAgB,CAAC,GAAG,YAAY,GAAG,kBAAkB;AACvD,QAAA,cAAc,WAAW,GAAG;AAC/B;AAAA,IAAA;AAEK,UAAA,GAAG,YAAY,OAAM,QAAO;AAC3B,YAAA,IAAI,OAAO,MAAM,8BAA8B;AACrD,YAAM,SAAS,MAAM,GAAG,aAAa,MAAM,IAAIC,YAAAA,aAAa;AAC5D,iBAAW,SAAS,QAAQ;AAC3B,cAAM,eAAe,cAAc,IAAI,CAAA,OAAM,GAAGC,SAAAA,eAAe,MAAM,MAAM,CAAC,IAAIA,SAAe,eAAA,EAAE,CAAC,EAAE;AACpG,cAAM,IAAI,OAAO,MAAM,YAAY,YAAY,EAAE;AAAA,MAAA;AAE5C,YAAA,IAAI,OAAO,MAAM,+BAA+B;AACtD,YAAM,IAAI,WAAW,QAAQ,IAAIC,6CAAuB;AAAA,IAAA,CACxD;AAAA,EAAA;AAEH;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectTruncateExecutor.js","sources":["../../../../../packages/engine-system-api/src/model/ProjectTruncateExecutor.ts"],"sourcesContent":["import { DatabaseContext } from './database'\nimport { ProjectConfig } from '../types'\nimport { TruncateEventsCommand } from './commands'\nimport { getJunctionTables } from './helpers'\nimport { Schema } from '@contember/schema'\nimport { wrapIdentifier } from '@contember/database'\nimport { StagesQuery } from './queries'\n\nexport class ProjectTruncateExecutor {\n\tpublic async truncateProject(db: DatabaseContext, project: ProjectConfig, schema: Schema) {\n\t\tconst tableNames = Object.values(schema.model.entities).filter(it => !it.view).map(it => it.tableName)\n\t\tconst junctionTableNames = getJunctionTables(schema.model).map(it => it.tableName)\n\t\tconst allTableNames = [...tableNames, ...junctionTableNames]\n\t\tif (allTableNames.length === 0) {\n\t\t\treturn\n\t\t}\n\t\tawait db.transaction(async trx => {\n\t\t\tawait trx.client.query('SET CONSTRAINTS ALL DEFERRED')\n\t\t\tconst stages = await db.queryHandler.fetch(new StagesQuery())\n\t\t\tfor (const stage of stages) {\n\t\t\t\tconst wrappedNames = allTableNames.map(it => `${wrapIdentifier(stage.schema)}.${wrapIdentifier(it)}`)\n\t\t\t\tawait trx.client.query(`TRUNCATE ${wrappedNames}`)\n\t\t\t}\n\t\t\tawait trx.client.query('SET CONSTRAINTS ALL IMMEDIATE')\n\t\t\tawait trx.commandBus.execute(new TruncateEventsCommand())\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;;;AAQO,MAAM,wBAAwB;AAAA,EACpC,MAAa,gBAAgB,IAAqB,SAAwB,QAAgB;AACzF,UAAM,aAAa,OAAO,OAAO,OAAO,MAAM,QAAQ,EAAE,OAAO,CAAM,OAAA,CAAC,GAAG,IAAI,EAAE,IAAI,CAAA,OAAM,GAAG,SAAS;AAC/F,UAAA,qBAAqB,kBAAkB,OAAO,KAAK,EAAE,IAAI,CAAA,OAAM,GAAG,SAAS;AACjF,UAAM,gBAAgB,CAAC,GAAG,YAAY,GAAG,kBAAkB;AACvD,QAAA,cAAc,WAAW,GAAG;AAC/B;AAAA,IACD;AACM,UAAA,GAAG,YAAY,OAAM,QAAO;AAC3B,YAAA,IAAI,OAAO,MAAM,8BAA8B;AACrD,YAAM,SAAS,MAAM,GAAG,aAAa,MAAM,IAAI,aAAa;AAC5D,iBAAW,SAAS,QAAQ;AAC3B,cAAM,eAAe,cAAc,IAAI,CAAA,OAAM,GAAG,eAAe,MAAM,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC,EAAE;AACpG,cAAM,IAAI,OAAO,MAAM,YAAY,YAAY,EAAE;AAAA,MAClD;AACM,YAAA,IAAI,OAAO,MAAM,+BAA+B;AACtD,YAAM,IAAI,WAAW,QAAQ,IAAI,sBAAuB,CAAA;AAAA,IAAA,CACxD;AAAA,EACF;AACD;"}
1
+ {"version":3,"file":"ProjectTruncateExecutor.js","sources":["../../../../../packages/engine-system-api/src/model/ProjectTruncateExecutor.ts"],"sourcesContent":["import { DatabaseContext } from './database'\nimport { ProjectConfig } from '../types'\nimport { TruncateEventsCommand } from './commands'\nimport { getJunctionTables } from './helpers'\nimport { Schema } from '@contember/schema'\nimport { wrapIdentifier } from '@contember/database'\nimport { StagesQuery } from './queries'\n\nexport class ProjectTruncateExecutor {\n\tpublic async truncateProject(db: DatabaseContext, project: ProjectConfig, schema: Schema) {\n\t\tconst tableNames = Object.values(schema.model.entities).filter(it => !it.view).map(it => it.tableName)\n\t\tconst junctionTableNames = getJunctionTables(schema.model).map(it => it.tableName)\n\t\tconst allTableNames = [...tableNames, ...junctionTableNames]\n\t\tif (allTableNames.length === 0) {\n\t\t\treturn\n\t\t}\n\t\tawait db.transaction(async trx => {\n\t\t\tawait trx.client.query('SET CONSTRAINTS ALL DEFERRED')\n\t\t\tconst stages = await db.queryHandler.fetch(new StagesQuery())\n\t\t\tfor (const stage of stages) {\n\t\t\t\tconst wrappedNames = allTableNames.map(it => `${wrapIdentifier(stage.schema)}.${wrapIdentifier(it)}`)\n\t\t\t\tawait trx.client.query(`TRUNCATE ${wrappedNames}`)\n\t\t\t}\n\t\t\tawait trx.client.query('SET CONSTRAINTS ALL IMMEDIATE')\n\t\t\tawait trx.commandBus.execute(new TruncateEventsCommand())\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;;;;AAQO,MAAM,wBAAwB;AAAA,EACpC,MAAa,gBAAgB,IAAqB,SAAwB,QAAgB;AACzF,UAAM,aAAa,OAAO,OAAO,OAAO,MAAM,QAAQ,EAAE,OAAO,CAAM,OAAA,CAAC,GAAG,IAAI,EAAE,IAAI,CAAA,OAAM,GAAG,SAAS;AAC/F,UAAA,qBAAqB,kBAAkB,OAAO,KAAK,EAAE,IAAI,CAAA,OAAM,GAAG,SAAS;AACjF,UAAM,gBAAgB,CAAC,GAAG,YAAY,GAAG,kBAAkB;AACvD,QAAA,cAAc,WAAW,GAAG;AAC/B;AAAA,IAAA;AAEK,UAAA,GAAG,YAAY,OAAM,QAAO;AAC3B,YAAA,IAAI,OAAO,MAAM,8BAA8B;AACrD,YAAM,SAAS,MAAM,GAAG,aAAa,MAAM,IAAI,aAAa;AAC5D,iBAAW,SAAS,QAAQ;AAC3B,cAAM,eAAe,cAAc,IAAI,CAAA,OAAM,GAAG,eAAe,MAAM,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC,EAAE;AACpG,cAAM,IAAI,OAAO,MAAM,YAAY,YAAY,EAAE;AAAA,MAAA;AAE5C,YAAA,IAAI,OAAO,MAAM,+BAA+B;AACtD,YAAM,IAAI,WAAW,QAAQ,IAAI,uBAAuB;AAAA,IAAA,CACxD;AAAA,EAAA;AAEH;"}
@@ -9,5 +9,6 @@ exports.AuthorizationActions = void 0;
9
9
  AuthorizationActions2.PROJECT_HISTORY_ANY = authorization.Authorizator.createAction("project", "historyAny");
10
10
  AuthorizationActions2.PROJECT_MIGRATE = authorization.Authorizator.createAction("project", "migrate");
11
11
  AuthorizationActions2.PROJECT_LIST_MIGRATIONS = authorization.Authorizator.createAction("project", "listMigrations");
12
+ AuthorizationActions2.PROJECT_SHOW_SCHEMA = authorization.Authorizator.createAction("project", "showSchema");
12
13
  })(exports.AuthorizationActions || (exports.AuthorizationActions = {}));
13
14
  //# sourceMappingURL=AuthorizationActions.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthorizationActions.cjs","sources":["../../../../../../packages/engine-system-api/src/model/authorization/AuthorizationActions.ts"],"sourcesContent":["import { Authorizator } from '@contember/authorization'\n\nexport namespace AuthorizationActions {\n\texport enum Resources {\n\t\tproject = 'project',\n\t}\n\n\texport const PROJECT_HISTORY_ANY = Authorizator.createAction(Resources.project, 'historyAny')\n\n\texport const PROJECT_MIGRATE = Authorizator.createAction(Resources.project, 'migrate')\n\texport const PROJECT_LIST_MIGRATIONS = Authorizator.createAction(Resources.project, 'listMigrations')\n}\n"],"names":["AuthorizationActions","Resources","Authorizator"],"mappings":";;;AAEiBA,QAAA,uBAAA;AAAA,CAAV,CAAUA,0BAAV;AACC,GAAA,CAAKC,eAAL;AACNA,eAAA,SAAU,IAAA;AAAA,EAAA,GADCD,sBAAA,cAAAA,sBAAA,YAAA,CAAA,EAAA;AAICA,wBAAA,sBAAsBE,cAAa,aAAA,aAAa,WAAmB,YAAY;AAE/EF,wBAAA,kBAAkBE,cAAa,aAAA,aAAa,WAAmB,SAAS;AACxEF,wBAAA,0BAA0BE,cAAa,aAAA,aAAa,WAAmB,gBAAgB;AAAA,GARpFF,QAAA,yBAAAA,+BAAA,CAAA,EAAA;"}
1
+ {"version":3,"file":"AuthorizationActions.cjs","sources":["../../../../../../packages/engine-system-api/src/model/authorization/AuthorizationActions.ts"],"sourcesContent":["import { Authorizator } from '@contember/authorization'\n\nexport namespace AuthorizationActions {\n\texport enum Resources {\n\t\tproject = 'project',\n\t}\n\n\texport const PROJECT_HISTORY_ANY = Authorizator.createAction(Resources.project, 'historyAny')\n\n\texport const PROJECT_MIGRATE = Authorizator.createAction(Resources.project, 'migrate')\n\texport const PROJECT_LIST_MIGRATIONS = Authorizator.createAction(Resources.project, 'listMigrations')\n\texport const PROJECT_SHOW_SCHEMA = Authorizator.createAction(Resources.project, 'showSchema')\n}\n"],"names":["AuthorizationActions","Resources","Authorizator"],"mappings":";;;AAEiBA,QAAAA,uBAAAA;AAAAA,CAAV,CAAUA,0BAAV;AACC,GAAA,CAAKC,eAAL;AACNA,eAAA,SAAU,IAAA;AAAA,EADC,GAAAD,sBAAA,cAAAA,sBAAA,YAAA,CAAA,EAAA;AAICA,wBAAA,sBAAsBE,cAAAA,aAAa,aAAa,WAAmB,YAAY;AAE/EF,wBAAA,kBAAkBE,cAAAA,aAAa,aAAa,WAAmB,SAAS;AACxEF,wBAAA,0BAA0BE,cAAAA,aAAa,aAAa,WAAmB,gBAAgB;AACvFF,wBAAA,sBAAsBE,cAAAA,aAAa,aAAa,WAAmB,YAAY;AAAA,GAT5EF,QAAA,yBAAAA,+BAAA,CAAA,EAAA;"}
@@ -7,6 +7,7 @@ var AuthorizationActions;
7
7
  AuthorizationActions2.PROJECT_HISTORY_ANY = Authorizator.createAction("project", "historyAny");
8
8
  AuthorizationActions2.PROJECT_MIGRATE = Authorizator.createAction("project", "migrate");
9
9
  AuthorizationActions2.PROJECT_LIST_MIGRATIONS = Authorizator.createAction("project", "listMigrations");
10
+ AuthorizationActions2.PROJECT_SHOW_SCHEMA = Authorizator.createAction("project", "showSchema");
10
11
  })(AuthorizationActions || (AuthorizationActions = {}));
11
12
  export {
12
13
  AuthorizationActions
@@ -1 +1 @@
1
- {"version":3,"file":"AuthorizationActions.js","sources":["../../../../../../packages/engine-system-api/src/model/authorization/AuthorizationActions.ts"],"sourcesContent":["import { Authorizator } from '@contember/authorization'\n\nexport namespace AuthorizationActions {\n\texport enum Resources {\n\t\tproject = 'project',\n\t}\n\n\texport const PROJECT_HISTORY_ANY = Authorizator.createAction(Resources.project, 'historyAny')\n\n\texport const PROJECT_MIGRATE = Authorizator.createAction(Resources.project, 'migrate')\n\texport const PROJECT_LIST_MIGRATIONS = Authorizator.createAction(Resources.project, 'listMigrations')\n}\n"],"names":["AuthorizationActions","Resources"],"mappings":";AAEiB,IAAA;AAAA,CAAV,CAAUA,0BAAV;AACC,GAAA,CAAKC,eAAL;AACNA,eAAA,SAAU,IAAA;AAAA,EAAA,GADCD,sBAAA,cAAAA,sBAAA,YAAA,CAAA,EAAA;AAICA,wBAAA,sBAAsB,aAAa,aAAa,WAAmB,YAAY;AAE/EA,wBAAA,kBAAkB,aAAa,aAAa,WAAmB,SAAS;AACxEA,wBAAA,0BAA0B,aAAa,aAAa,WAAmB,gBAAgB;AAAA,GARpF,yBAAA,uBAAA,CAAA,EAAA;"}
1
+ {"version":3,"file":"AuthorizationActions.js","sources":["../../../../../../packages/engine-system-api/src/model/authorization/AuthorizationActions.ts"],"sourcesContent":["import { Authorizator } from '@contember/authorization'\n\nexport namespace AuthorizationActions {\n\texport enum Resources {\n\t\tproject = 'project',\n\t}\n\n\texport const PROJECT_HISTORY_ANY = Authorizator.createAction(Resources.project, 'historyAny')\n\n\texport const PROJECT_MIGRATE = Authorizator.createAction(Resources.project, 'migrate')\n\texport const PROJECT_LIST_MIGRATIONS = Authorizator.createAction(Resources.project, 'listMigrations')\n\texport const PROJECT_SHOW_SCHEMA = Authorizator.createAction(Resources.project, 'showSchema')\n}\n"],"names":["AuthorizationActions","Resources"],"mappings":";AAEiB,IAAA;AAAA,CAAV,CAAUA,0BAAV;AACC,GAAA,CAAKC,eAAL;AACNA,eAAA,SAAU,IAAA;AAAA,EADC,GAAAD,sBAAA,cAAAA,sBAAA,YAAA,CAAA,EAAA;AAICA,wBAAA,sBAAsB,aAAa,aAAa,WAAmB,YAAY;AAE/EA,wBAAA,kBAAkB,aAAa,aAAa,WAAmB,SAAS;AACxEA,wBAAA,0BAA0B,aAAa,aAAa,WAAmB,gBAAgB;AACvFA,wBAAA,sBAAsB,aAAa,aAAa,WAAmB,YAAY;AAAA,GAT5E,yBAAA,uBAAA,CAAA,EAAA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Identity.cjs","sources":["../../../../../../packages/engine-system-api/src/model/authorization/Identity.ts"],"sourcesContent":["export class Identity {\n\tconstructor(public readonly id: string, public readonly roles: string[]) {}\n}\n"],"names":[],"mappings":";;AAAO,MAAM,SAAS;AAAA,EACrB,YAA4B,IAA4B,OAAiB;AAA7C,SAAA,KAAA;AAA4B,SAAA,QAAA;AAAA,EAAkB;AAC3E;;"}
1
+ {"version":3,"file":"Identity.cjs","sources":["../../../../../../packages/engine-system-api/src/model/authorization/Identity.ts"],"sourcesContent":["export class Identity {\n\tconstructor(public readonly id: string, public readonly roles: string[]) {}\n}\n"],"names":[],"mappings":";;AAAO,MAAM,SAAS;AAAA,EACrB,YAA4B,IAA4B,OAAiB;AAA7C,SAAA,KAAA;AAA4B,SAAA,QAAA;AAAA,EAAA;AACzD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Identity.js","sources":["../../../../../../packages/engine-system-api/src/model/authorization/Identity.ts"],"sourcesContent":["export class Identity {\n\tconstructor(public readonly id: string, public readonly roles: string[]) {}\n}\n"],"names":[],"mappings":"AAAO,MAAM,SAAS;AAAA,EACrB,YAA4B,IAA4B,OAAiB;AAA7C,SAAA,KAAA;AAA4B,SAAA,QAAA;AAAA,EAAkB;AAC3E;"}
1
+ {"version":3,"file":"Identity.js","sources":["../../../../../../packages/engine-system-api/src/model/authorization/Identity.ts"],"sourcesContent":["export class Identity {\n\tconstructor(public readonly id: string, public readonly roles: string[]) {}\n}\n"],"names":[],"mappings":"AAAO,MAAM,SAAS;AAAA,EACrB,YAA4B,IAA4B,OAAiB;AAA7C,SAAA,KAAA;AAA4B,SAAA,QAAA;AAAA,EAAA;AACzD;"}
@@ -9,6 +9,7 @@ class PermissionsFactory {
9
9
  permissions.allow(schema.ProjectRole.ADMIN, { resource: authorization.Permissions.ALL, privilege: authorization.Permissions.ALL });
10
10
  permissions.allow(schema.ProjectRole.DEPLOYER, AuthorizationActions.AuthorizationActions.PROJECT_MIGRATE);
11
11
  permissions.allow(schema.ProjectRole.DEPLOYER, AuthorizationActions.AuthorizationActions.PROJECT_LIST_MIGRATIONS);
12
+ permissions.allow(schema.ProjectRole.DEPLOYER, AuthorizationActions.AuthorizationActions.PROJECT_SHOW_SCHEMA);
12
13
  return permissions;
13
14
  }
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionsFactory.cjs","sources":["../../../../../../packages/engine-system-api/src/model/authorization/PermissionsFactory.ts"],"sourcesContent":["import { Permissions } from '@contember/authorization'\nimport { ProjectRole } from '@contember/schema'\nimport { AuthorizationActions } from './AuthorizationActions'\n\nexport class PermissionsFactory {\n\tpublic create(): Permissions {\n\t\tconst permissions = new Permissions()\n\t\tpermissions.allow(ProjectRole.ADMIN, { resource: Permissions.ALL, privilege: Permissions.ALL })\n\t\tpermissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_MIGRATE)\n\t\tpermissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_LIST_MIGRATIONS)\n\n\t\treturn permissions\n\t}\n}\n"],"names":["Permissions","ProjectRole","AuthorizationActions"],"mappings":";;;;;AAIO,MAAM,mBAAmB;AAAA,EACxB,SAAsB;AACtB,UAAA,cAAc,IAAIA,cAAAA;AACZ,gBAAA,MAAMC,mBAAY,OAAO,EAAE,UAAUD,0BAAY,KAAK,WAAWA,0BAAY,IAAK,CAAA;AAC9F,gBAAY,MAAMC,OAAA,YAAY,UAAUC,qBAAA,qBAAqB,eAAe;AAC5E,gBAAY,MAAMD,OAAA,YAAY,UAAUC,qBAAA,qBAAqB,uBAAuB;AAE7E,WAAA;AAAA,EACR;AACD;;"}
1
+ {"version":3,"file":"PermissionsFactory.cjs","sources":["../../../../../../packages/engine-system-api/src/model/authorization/PermissionsFactory.ts"],"sourcesContent":["import { Permissions } from '@contember/authorization'\nimport { ProjectRole } from '@contember/schema'\nimport { AuthorizationActions } from './AuthorizationActions'\n\nexport class PermissionsFactory {\n\tpublic create(): Permissions {\n\t\tconst permissions = new Permissions()\n\t\tpermissions.allow(ProjectRole.ADMIN, { resource: Permissions.ALL, privilege: Permissions.ALL })\n\t\tpermissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_MIGRATE)\n\t\tpermissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_LIST_MIGRATIONS)\n\t\tpermissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_SHOW_SCHEMA)\n\n\t\treturn permissions\n\t}\n}\n"],"names":["Permissions","ProjectRole","AuthorizationActions"],"mappings":";;;;;AAIO,MAAM,mBAAmB;AAAA,EACxB,SAAsB;AACtB,UAAA,cAAc,IAAIA,0BAAY;AACxB,gBAAA,MAAMC,mBAAY,OAAO,EAAE,UAAUD,0BAAY,KAAK,WAAWA,cAAY,YAAA,IAAA,CAAK;AAC9F,gBAAY,MAAMC,OAAAA,YAAY,UAAUC,qBAAAA,qBAAqB,eAAe;AAC5E,gBAAY,MAAMD,OAAAA,YAAY,UAAUC,qBAAAA,qBAAqB,uBAAuB;AACpF,gBAAY,MAAMD,OAAAA,YAAY,UAAUC,qBAAAA,qBAAqB,mBAAmB;AAEzE,WAAA;AAAA,EAAA;AAET;;"}
@@ -7,6 +7,7 @@ class PermissionsFactory {
7
7
  permissions.allow(ProjectRole.ADMIN, { resource: Permissions.ALL, privilege: Permissions.ALL });
8
8
  permissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_MIGRATE);
9
9
  permissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_LIST_MIGRATIONS);
10
+ permissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_SHOW_SCHEMA);
10
11
  return permissions;
11
12
  }
12
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionsFactory.js","sources":["../../../../../../packages/engine-system-api/src/model/authorization/PermissionsFactory.ts"],"sourcesContent":["import { Permissions } from '@contember/authorization'\nimport { ProjectRole } from '@contember/schema'\nimport { AuthorizationActions } from './AuthorizationActions'\n\nexport class PermissionsFactory {\n\tpublic create(): Permissions {\n\t\tconst permissions = new Permissions()\n\t\tpermissions.allow(ProjectRole.ADMIN, { resource: Permissions.ALL, privilege: Permissions.ALL })\n\t\tpermissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_MIGRATE)\n\t\tpermissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_LIST_MIGRATIONS)\n\n\t\treturn permissions\n\t}\n}\n"],"names":[],"mappings":";;;AAIO,MAAM,mBAAmB;AAAA,EACxB,SAAsB;AACtB,UAAA,cAAc,IAAI;AACZ,gBAAA,MAAM,YAAY,OAAO,EAAE,UAAU,YAAY,KAAK,WAAW,YAAY,IAAK,CAAA;AAC9F,gBAAY,MAAM,YAAY,UAAU,qBAAqB,eAAe;AAC5E,gBAAY,MAAM,YAAY,UAAU,qBAAqB,uBAAuB;AAE7E,WAAA;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"PermissionsFactory.js","sources":["../../../../../../packages/engine-system-api/src/model/authorization/PermissionsFactory.ts"],"sourcesContent":["import { Permissions } from '@contember/authorization'\nimport { ProjectRole } from '@contember/schema'\nimport { AuthorizationActions } from './AuthorizationActions'\n\nexport class PermissionsFactory {\n\tpublic create(): Permissions {\n\t\tconst permissions = new Permissions()\n\t\tpermissions.allow(ProjectRole.ADMIN, { resource: Permissions.ALL, privilege: Permissions.ALL })\n\t\tpermissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_MIGRATE)\n\t\tpermissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_LIST_MIGRATIONS)\n\t\tpermissions.allow(ProjectRole.DEPLOYER, AuthorizationActions.PROJECT_SHOW_SCHEMA)\n\n\t\treturn permissions\n\t}\n}\n"],"names":[],"mappings":";;;AAIO,MAAM,mBAAmB;AAAA,EACxB,SAAsB;AACtB,UAAA,cAAc,IAAI,YAAY;AACxB,gBAAA,MAAM,YAAY,OAAO,EAAE,UAAU,YAAY,KAAK,WAAW,YAAY,IAAA,CAAK;AAC9F,gBAAY,MAAM,YAAY,UAAU,qBAAqB,eAAe;AAC5E,gBAAY,MAAM,YAAY,UAAU,qBAAqB,uBAAuB;AACpF,gBAAY,MAAM,YAAY,UAAU,qBAAqB,mBAAmB;AAEzE,WAAA;AAAA,EAAA;AAET;"}
@@ -2,15 +2,14 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const schema = require("@contember/schema");
4
4
  const authorization = require("@contember/authorization");
5
- const schemaUtils = require("@contember/schema-utils");
6
5
  const AuthorizationActions = require("./AuthorizationActions.cjs");
7
6
  class StagePermissionsFactory {
8
- constructor(schema2) {
9
- this.schema = schema2;
7
+ constructor(getSchema) {
8
+ this.getSchema = getSchema;
10
9
  }
11
- create(stage) {
10
+ async create(stage) {
12
11
  const permissions = new authorization.Permissions();
13
- const filteredSchema = schemaUtils.filterSchemaByStage(this.schema, stage);
12
+ const filteredSchema = await this.getSchema({ stage });
14
13
  const rolePermissions = this.createRolePermissions(filteredSchema.acl);
15
14
  Object.entries(rolePermissions).forEach(([role, value]) => {
16
15
  if (value.history === schema.Acl.SystemPermissionsLevel.any || value.history === true) {
@@ -1 +1 @@
1
- {"version":3,"file":"StagePermissionsFactory.cjs","sources":["../../../../../../packages/engine-system-api/src/model/authorization/StagePermissionsFactory.ts"],"sourcesContent":["import { Acl, Schema } from '@contember/schema'\nimport { Permissions } from '@contember/authorization'\nimport { filterSchemaByStage } from '@contember/schema-utils'\nimport { AuthorizationActions } from './AuthorizationActions'\n\nexport class StagePermissionsFactory {\n\tconstructor(private readonly schema: Schema) {}\n\n\tpublic create(stage: string): Permissions {\n\t\tconst permissions = new Permissions()\n\n\t\tconst filteredSchema = filterSchemaByStage(this.schema, stage)\n\n\t\tconst rolePermissions = this.createRolePermissions(filteredSchema.acl)\n\t\tObject.entries(rolePermissions).forEach(([role, value]) => {\n\t\t\t// history\n\t\t\tif (value.history === Acl.SystemPermissionsLevel.any || value.history === true) {\n\t\t\t\tpermissions.allow(role, AuthorizationActions.PROJECT_HISTORY_ANY)\n\t\t\t}\n\n\t\t\t// migrate\n\t\t\tif (value.migrate) {\n\t\t\t\tpermissions.allow(role, AuthorizationActions.PROJECT_MIGRATE)\n\t\t\t}\n\t\t})\n\n\t\treturn permissions\n\t}\n\n\tprivate createRolePermissions(schema: Acl.Schema): Record<string, Acl.SystemPermissions> {\n\t\tconst rolePermissions: Record<string, Acl.SystemPermissions> = {}\n\t\tconst recursionGuard = new Set<string>()\n\t\tconst getRolePermissions = (name: string): Acl.SystemPermissions => {\n\t\t\tif (rolePermissions[name]) {\n\t\t\t\treturn rolePermissions[name]\n\t\t\t}\n\t\t\tif (recursionGuard.has(name)) {\n\t\t\t\tthrow new Error(`Recursive role inheritance detected`)\n\t\t\t}\n\t\t\trecursionGuard.add(name)\n\t\t\tconst definition = schema.roles[name]\n\t\t\tconst inherits = definition.inherits || []\n\t\t\tconst inheritsDefinition = inherits.map(it => getRolePermissions(it))\n\t\t\trolePermissions[name] = {\n\t\t\t\t...inheritsDefinition.reduce(\n\t\t\t\t\t(def, current) => ({\n\t\t\t\t\t\t...def,\n\t\t\t\t\t\t...current,\n\t\t\t\t\t}),\n\t\t\t\t\t{},\n\t\t\t\t),\n\t\t\t\t...(definition.system || {}),\n\t\t\t}\n\t\t\trecursionGuard.delete(name)\n\t\t\treturn rolePermissions[name]\n\t\t}\n\t\tObject.keys(schema.roles).forEach(getRolePermissions)\n\n\t\treturn rolePermissions\n\t}\n}\n"],"names":["schema","Permissions","filterSchemaByStage","Acl","AuthorizationActions"],"mappings":";;;;;;AAKO,MAAM,wBAAwB;AAAA,EACpC,YAA6BA,SAAgB;AAAhB,SAAA,SAAAA;AAAA,EAAiB;AAAA,EAEvC,OAAO,OAA4B;AACnC,UAAA,cAAc,IAAIC,cAAAA;AAExB,UAAM,iBAAiBC,YAAA,oBAAoB,KAAK,QAAQ,KAAK;AAE7D,UAAM,kBAAkB,KAAK,sBAAsB,eAAe,GAAG;AAC9D,WAAA,QAAQ,eAAe,EAAE,QAAQ,CAAC,CAAC,MAAM,KAAK,MAAM;AAE1D,UAAI,MAAM,YAAYC,WAAI,uBAAuB,OAAO,MAAM,YAAY,MAAM;AACnE,oBAAA,MAAM,MAAMC,qBAAA,qBAAqB,mBAAmB;AAAA,MACjE;AAGA,UAAI,MAAM,SAAS;AACN,oBAAA,MAAM,MAAMA,qBAAA,qBAAqB,eAAe;AAAA,MAC7D;AAAA,IAAA,CACA;AAEM,WAAA;AAAA,EACR;AAAA,EAEQ,sBAAsBJ,SAA2D;AACxF,UAAM,kBAAyD,CAAA;AACzD,UAAA,qCAAqB;AACrB,UAAA,qBAAqB,CAAC,SAAwC;AAC/D,UAAA,gBAAgB,IAAI,GAAG;AAC1B,eAAO,gBAAgB,IAAI;AAAA,MAC5B;AACI,UAAA,eAAe,IAAI,IAAI,GAAG;AACvB,cAAA,IAAI,MAAM,qCAAqC;AAAA,MACtD;AACA,qBAAe,IAAI,IAAI;AACjB,YAAA,aAAaA,QAAO,MAAM,IAAI;AAC9B,YAAA,WAAW,WAAW,YAAY;AACxC,YAAM,qBAAqB,SAAS,IAAI,CAAM,OAAA,mBAAmB,EAAE,CAAC;AACpE,sBAAgB,IAAI,IAAI;AAAA,QACvB,GAAG,mBAAmB;AAAA,UACrB,CAAC,KAAK,aAAa;AAAA,YAClB,GAAG;AAAA,YACH,GAAG;AAAA,UAAA;AAAA,UAEJ,CAAC;AAAA,QACF;AAAA,QACA,GAAI,WAAW,UAAU,CAAC;AAAA,MAAA;AAE3B,qBAAe,OAAO,IAAI;AAC1B,aAAO,gBAAgB,IAAI;AAAA,IAAA;AAE5B,WAAO,KAAKA,QAAO,KAAK,EAAE,QAAQ,kBAAkB;AAE7C,WAAA;AAAA,EACR;AACD;;"}
1
+ {"version":3,"file":"StagePermissionsFactory.cjs","sources":["../../../../../../packages/engine-system-api/src/model/authorization/StagePermissionsFactory.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\nimport { Permissions } from '@contember/authorization'\nimport { AuthorizationActions } from './AuthorizationActions'\nimport { SchemaGetter } from '../SchemaGetter'\n\nexport class StagePermissionsFactory {\n\tconstructor(private readonly getSchema: SchemaGetter) {}\n\n\tpublic async create(stage: string): Promise<Permissions> {\n\t\tconst permissions = new Permissions()\n\n\t\tconst filteredSchema = await this.getSchema({ stage })\n\n\t\tconst rolePermissions = this.createRolePermissions(filteredSchema.acl)\n\t\tObject.entries(rolePermissions).forEach(([role, value]) => {\n\t\t\t// history\n\t\t\tif (value.history === Acl.SystemPermissionsLevel.any || value.history === true) {\n\t\t\t\tpermissions.allow(role, AuthorizationActions.PROJECT_HISTORY_ANY)\n\t\t\t}\n\n\t\t\t// migrate\n\t\t\tif (value.migrate) {\n\t\t\t\tpermissions.allow(role, AuthorizationActions.PROJECT_MIGRATE)\n\t\t\t}\n\t\t})\n\n\t\treturn permissions\n\t}\n\n\tprivate createRolePermissions(schema: Acl.Schema): Record<string, Acl.SystemPermissions> {\n\t\tconst rolePermissions: Record<string, Acl.SystemPermissions> = {}\n\t\tconst recursionGuard = new Set<string>()\n\t\tconst getRolePermissions = (name: string): Acl.SystemPermissions => {\n\t\t\tif (rolePermissions[name]) {\n\t\t\t\treturn rolePermissions[name]\n\t\t\t}\n\t\t\tif (recursionGuard.has(name)) {\n\t\t\t\tthrow new Error(`Recursive role inheritance detected`)\n\t\t\t}\n\t\t\trecursionGuard.add(name)\n\t\t\tconst definition = schema.roles[name]\n\t\t\tconst inherits = definition.inherits || []\n\t\t\tconst inheritsDefinition = inherits.map(it => getRolePermissions(it))\n\t\t\trolePermissions[name] = {\n\t\t\t\t...inheritsDefinition.reduce(\n\t\t\t\t\t(def, current) => ({\n\t\t\t\t\t\t...def,\n\t\t\t\t\t\t...current,\n\t\t\t\t\t}),\n\t\t\t\t\t{},\n\t\t\t\t),\n\t\t\t\t...(definition.system || {}),\n\t\t\t}\n\t\t\trecursionGuard.delete(name)\n\t\t\treturn rolePermissions[name]\n\t\t}\n\t\tObject.keys(schema.roles).forEach(getRolePermissions)\n\n\t\treturn rolePermissions\n\t}\n}\n"],"names":["Permissions","Acl","AuthorizationActions","schema"],"mappings":";;;;;AAKO,MAAM,wBAAwB;AAAA,EACpC,YAA6B,WAAyB;AAAzB,SAAA,YAAA;AAAA,EAAA;AAAA,EAE7B,MAAa,OAAO,OAAqC;AAClD,UAAA,cAAc,IAAIA,0BAAY;AAEpC,UAAM,iBAAiB,MAAM,KAAK,UAAU,EAAE,OAAO;AAErD,UAAM,kBAAkB,KAAK,sBAAsB,eAAe,GAAG;AAC9D,WAAA,QAAQ,eAAe,EAAE,QAAQ,CAAC,CAAC,MAAM,KAAK,MAAM;AAE1D,UAAI,MAAM,YAAYC,WAAI,uBAAuB,OAAO,MAAM,YAAY,MAAM;AACnE,oBAAA,MAAM,MAAMC,qBAAAA,qBAAqB,mBAAmB;AAAA,MAAA;AAIjE,UAAI,MAAM,SAAS;AACN,oBAAA,MAAM,MAAMA,qBAAAA,qBAAqB,eAAe;AAAA,MAAA;AAAA,IAC7D,CACA;AAEM,WAAA;AAAA,EAAA;AAAA,EAGA,sBAAsBC,SAA2D;AACxF,UAAM,kBAAyD,CAAC;AAC1D,UAAA,qCAAqB,IAAY;AACjC,UAAA,qBAAqB,CAAC,SAAwC;AAC/D,UAAA,gBAAgB,IAAI,GAAG;AAC1B,eAAO,gBAAgB,IAAI;AAAA,MAAA;AAExB,UAAA,eAAe,IAAI,IAAI,GAAG;AACvB,cAAA,IAAI,MAAM,qCAAqC;AAAA,MAAA;AAEtD,qBAAe,IAAI,IAAI;AACjB,YAAA,aAAaA,QAAO,MAAM,IAAI;AAC9B,YAAA,WAAW,WAAW,YAAY,CAAC;AACzC,YAAM,qBAAqB,SAAS,IAAI,CAAM,OAAA,mBAAmB,EAAE,CAAC;AACpE,sBAAgB,IAAI,IAAI;AAAA,QACvB,GAAG,mBAAmB;AAAA,UACrB,CAAC,KAAK,aAAa;AAAA,YAClB,GAAG;AAAA,YACH,GAAG;AAAA,UAAA;AAAA,UAEJ,CAAA;AAAA,QACD;AAAA,QACA,GAAI,WAAW,UAAU,CAAA;AAAA,MAC1B;AACA,qBAAe,OAAO,IAAI;AAC1B,aAAO,gBAAgB,IAAI;AAAA,IAC5B;AACA,WAAO,KAAKA,QAAO,KAAK,EAAE,QAAQ,kBAAkB;AAE7C,WAAA;AAAA,EAAA;AAET;;"}
@@ -1,14 +1,13 @@
1
1
  import { Acl } from "@contember/schema";
2
2
  import { Permissions } from "@contember/authorization";
3
- import { filterSchemaByStage } from "@contember/schema-utils";
4
3
  import { AuthorizationActions } from "./AuthorizationActions.js";
5
4
  class StagePermissionsFactory {
6
- constructor(schema) {
7
- this.schema = schema;
5
+ constructor(getSchema) {
6
+ this.getSchema = getSchema;
8
7
  }
9
- create(stage) {
8
+ async create(stage) {
10
9
  const permissions = new Permissions();
11
- const filteredSchema = filterSchemaByStage(this.schema, stage);
10
+ const filteredSchema = await this.getSchema({ stage });
12
11
  const rolePermissions = this.createRolePermissions(filteredSchema.acl);
13
12
  Object.entries(rolePermissions).forEach(([role, value]) => {
14
13
  if (value.history === Acl.SystemPermissionsLevel.any || value.history === true) {
@@ -1 +1 @@
1
- {"version":3,"file":"StagePermissionsFactory.js","sources":["../../../../../../packages/engine-system-api/src/model/authorization/StagePermissionsFactory.ts"],"sourcesContent":["import { Acl, Schema } from '@contember/schema'\nimport { Permissions } from '@contember/authorization'\nimport { filterSchemaByStage } from '@contember/schema-utils'\nimport { AuthorizationActions } from './AuthorizationActions'\n\nexport class StagePermissionsFactory {\n\tconstructor(private readonly schema: Schema) {}\n\n\tpublic create(stage: string): Permissions {\n\t\tconst permissions = new Permissions()\n\n\t\tconst filteredSchema = filterSchemaByStage(this.schema, stage)\n\n\t\tconst rolePermissions = this.createRolePermissions(filteredSchema.acl)\n\t\tObject.entries(rolePermissions).forEach(([role, value]) => {\n\t\t\t// history\n\t\t\tif (value.history === Acl.SystemPermissionsLevel.any || value.history === true) {\n\t\t\t\tpermissions.allow(role, AuthorizationActions.PROJECT_HISTORY_ANY)\n\t\t\t}\n\n\t\t\t// migrate\n\t\t\tif (value.migrate) {\n\t\t\t\tpermissions.allow(role, AuthorizationActions.PROJECT_MIGRATE)\n\t\t\t}\n\t\t})\n\n\t\treturn permissions\n\t}\n\n\tprivate createRolePermissions(schema: Acl.Schema): Record<string, Acl.SystemPermissions> {\n\t\tconst rolePermissions: Record<string, Acl.SystemPermissions> = {}\n\t\tconst recursionGuard = new Set<string>()\n\t\tconst getRolePermissions = (name: string): Acl.SystemPermissions => {\n\t\t\tif (rolePermissions[name]) {\n\t\t\t\treturn rolePermissions[name]\n\t\t\t}\n\t\t\tif (recursionGuard.has(name)) {\n\t\t\t\tthrow new Error(`Recursive role inheritance detected`)\n\t\t\t}\n\t\t\trecursionGuard.add(name)\n\t\t\tconst definition = schema.roles[name]\n\t\t\tconst inherits = definition.inherits || []\n\t\t\tconst inheritsDefinition = inherits.map(it => getRolePermissions(it))\n\t\t\trolePermissions[name] = {\n\t\t\t\t...inheritsDefinition.reduce(\n\t\t\t\t\t(def, current) => ({\n\t\t\t\t\t\t...def,\n\t\t\t\t\t\t...current,\n\t\t\t\t\t}),\n\t\t\t\t\t{},\n\t\t\t\t),\n\t\t\t\t...(definition.system || {}),\n\t\t\t}\n\t\t\trecursionGuard.delete(name)\n\t\t\treturn rolePermissions[name]\n\t\t}\n\t\tObject.keys(schema.roles).forEach(getRolePermissions)\n\n\t\treturn rolePermissions\n\t}\n}\n"],"names":[],"mappings":";;;;AAKO,MAAM,wBAAwB;AAAA,EACpC,YAA6B,QAAgB;AAAhB,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEvC,OAAO,OAA4B;AACnC,UAAA,cAAc,IAAI;AAExB,UAAM,iBAAiB,oBAAoB,KAAK,QAAQ,KAAK;AAE7D,UAAM,kBAAkB,KAAK,sBAAsB,eAAe,GAAG;AAC9D,WAAA,QAAQ,eAAe,EAAE,QAAQ,CAAC,CAAC,MAAM,KAAK,MAAM;AAE1D,UAAI,MAAM,YAAY,IAAI,uBAAuB,OAAO,MAAM,YAAY,MAAM;AACnE,oBAAA,MAAM,MAAM,qBAAqB,mBAAmB;AAAA,MACjE;AAGA,UAAI,MAAM,SAAS;AACN,oBAAA,MAAM,MAAM,qBAAqB,eAAe;AAAA,MAC7D;AAAA,IAAA,CACA;AAEM,WAAA;AAAA,EACR;AAAA,EAEQ,sBAAsB,QAA2D;AACxF,UAAM,kBAAyD,CAAA;AACzD,UAAA,qCAAqB;AACrB,UAAA,qBAAqB,CAAC,SAAwC;AAC/D,UAAA,gBAAgB,IAAI,GAAG;AAC1B,eAAO,gBAAgB,IAAI;AAAA,MAC5B;AACI,UAAA,eAAe,IAAI,IAAI,GAAG;AACvB,cAAA,IAAI,MAAM,qCAAqC;AAAA,MACtD;AACA,qBAAe,IAAI,IAAI;AACjB,YAAA,aAAa,OAAO,MAAM,IAAI;AAC9B,YAAA,WAAW,WAAW,YAAY;AACxC,YAAM,qBAAqB,SAAS,IAAI,CAAM,OAAA,mBAAmB,EAAE,CAAC;AACpE,sBAAgB,IAAI,IAAI;AAAA,QACvB,GAAG,mBAAmB;AAAA,UACrB,CAAC,KAAK,aAAa;AAAA,YAClB,GAAG;AAAA,YACH,GAAG;AAAA,UAAA;AAAA,UAEJ,CAAC;AAAA,QACF;AAAA,QACA,GAAI,WAAW,UAAU,CAAC;AAAA,MAAA;AAE3B,qBAAe,OAAO,IAAI;AAC1B,aAAO,gBAAgB,IAAI;AAAA,IAAA;AAE5B,WAAO,KAAK,OAAO,KAAK,EAAE,QAAQ,kBAAkB;AAE7C,WAAA;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"StagePermissionsFactory.js","sources":["../../../../../../packages/engine-system-api/src/model/authorization/StagePermissionsFactory.ts"],"sourcesContent":["import { Acl } from '@contember/schema'\nimport { Permissions } from '@contember/authorization'\nimport { AuthorizationActions } from './AuthorizationActions'\nimport { SchemaGetter } from '../SchemaGetter'\n\nexport class StagePermissionsFactory {\n\tconstructor(private readonly getSchema: SchemaGetter) {}\n\n\tpublic async create(stage: string): Promise<Permissions> {\n\t\tconst permissions = new Permissions()\n\n\t\tconst filteredSchema = await this.getSchema({ stage })\n\n\t\tconst rolePermissions = this.createRolePermissions(filteredSchema.acl)\n\t\tObject.entries(rolePermissions).forEach(([role, value]) => {\n\t\t\t// history\n\t\t\tif (value.history === Acl.SystemPermissionsLevel.any || value.history === true) {\n\t\t\t\tpermissions.allow(role, AuthorizationActions.PROJECT_HISTORY_ANY)\n\t\t\t}\n\n\t\t\t// migrate\n\t\t\tif (value.migrate) {\n\t\t\t\tpermissions.allow(role, AuthorizationActions.PROJECT_MIGRATE)\n\t\t\t}\n\t\t})\n\n\t\treturn permissions\n\t}\n\n\tprivate createRolePermissions(schema: Acl.Schema): Record<string, Acl.SystemPermissions> {\n\t\tconst rolePermissions: Record<string, Acl.SystemPermissions> = {}\n\t\tconst recursionGuard = new Set<string>()\n\t\tconst getRolePermissions = (name: string): Acl.SystemPermissions => {\n\t\t\tif (rolePermissions[name]) {\n\t\t\t\treturn rolePermissions[name]\n\t\t\t}\n\t\t\tif (recursionGuard.has(name)) {\n\t\t\t\tthrow new Error(`Recursive role inheritance detected`)\n\t\t\t}\n\t\t\trecursionGuard.add(name)\n\t\t\tconst definition = schema.roles[name]\n\t\t\tconst inherits = definition.inherits || []\n\t\t\tconst inheritsDefinition = inherits.map(it => getRolePermissions(it))\n\t\t\trolePermissions[name] = {\n\t\t\t\t...inheritsDefinition.reduce(\n\t\t\t\t\t(def, current) => ({\n\t\t\t\t\t\t...def,\n\t\t\t\t\t\t...current,\n\t\t\t\t\t}),\n\t\t\t\t\t{},\n\t\t\t\t),\n\t\t\t\t...(definition.system || {}),\n\t\t\t}\n\t\t\trecursionGuard.delete(name)\n\t\t\treturn rolePermissions[name]\n\t\t}\n\t\tObject.keys(schema.roles).forEach(getRolePermissions)\n\n\t\treturn rolePermissions\n\t}\n}\n"],"names":[],"mappings":";;;AAKO,MAAM,wBAAwB;AAAA,EACpC,YAA6B,WAAyB;AAAzB,SAAA,YAAA;AAAA,EAAA;AAAA,EAE7B,MAAa,OAAO,OAAqC;AAClD,UAAA,cAAc,IAAI,YAAY;AAEpC,UAAM,iBAAiB,MAAM,KAAK,UAAU,EAAE,OAAO;AAErD,UAAM,kBAAkB,KAAK,sBAAsB,eAAe,GAAG;AAC9D,WAAA,QAAQ,eAAe,EAAE,QAAQ,CAAC,CAAC,MAAM,KAAK,MAAM;AAE1D,UAAI,MAAM,YAAY,IAAI,uBAAuB,OAAO,MAAM,YAAY,MAAM;AACnE,oBAAA,MAAM,MAAM,qBAAqB,mBAAmB;AAAA,MAAA;AAIjE,UAAI,MAAM,SAAS;AACN,oBAAA,MAAM,MAAM,qBAAqB,eAAe;AAAA,MAAA;AAAA,IAC7D,CACA;AAEM,WAAA;AAAA,EAAA;AAAA,EAGA,sBAAsB,QAA2D;AACxF,UAAM,kBAAyD,CAAC;AAC1D,UAAA,qCAAqB,IAAY;AACjC,UAAA,qBAAqB,CAAC,SAAwC;AAC/D,UAAA,gBAAgB,IAAI,GAAG;AAC1B,eAAO,gBAAgB,IAAI;AAAA,MAAA;AAExB,UAAA,eAAe,IAAI,IAAI,GAAG;AACvB,cAAA,IAAI,MAAM,qCAAqC;AAAA,MAAA;AAEtD,qBAAe,IAAI,IAAI;AACjB,YAAA,aAAa,OAAO,MAAM,IAAI;AAC9B,YAAA,WAAW,WAAW,YAAY,CAAC;AACzC,YAAM,qBAAqB,SAAS,IAAI,CAAM,OAAA,mBAAmB,EAAE,CAAC;AACpE,sBAAgB,IAAI,IAAI;AAAA,QACvB,GAAG,mBAAmB;AAAA,UACrB,CAAC,KAAK,aAAa;AAAA,YAClB,GAAG;AAAA,YACH,GAAG;AAAA,UAAA;AAAA,UAEJ,CAAA;AAAA,QACD;AAAA,QACA,GAAI,WAAW,UAAU,CAAA;AAAA,MAC1B;AACA,qBAAe,OAAO,IAAI;AAC1B,aAAO,gBAAgB,IAAI;AAAA,IAC5B;AACA,WAAO,KAAK,OAAO,KAAK,EAAE,QAAQ,kBAAkB;AAE7C,WAAA;AAAA,EAAA;AAET;"}
@@ -7,8 +7,8 @@ class StageScope {
7
7
  this.stage = stage;
8
8
  this.stagePermissionsFactory = stagePermissionsFactory;
9
9
  }
10
- getIdentityAccess(identity) {
11
- const permissions = this.stagePermissionsFactory.create(this.stage);
10
+ async getIdentityAccess(identity) {
11
+ const permissions = await this.stagePermissionsFactory.create(this.stage);
12
12
  const roles = new authorization.AccessNode.Roles(identity.roles);
13
13
  const permissionEvaluator = new authorization.AccessEvaluator.PermissionEvaluator(permissions);
14
14
  const node = new SwitchEvaluatorNode.SwitchEvaluatorNode(roles, permissionEvaluator);
@@ -1 +1 @@
1
- {"version":3,"file":"StageScope.cjs","sources":["../../../../../../packages/engine-system-api/src/model/authorization/StageScope.ts"],"sourcesContent":["import { AccessEvaluator, AccessNode, AuthorizationScope } from '@contember/authorization'\nimport { Identity } from './Identity'\nimport { SwitchEvaluatorNode } from './SwitchEvaluatorNode'\nimport { StagePermissionsFactory } from './StagePermissionsFactory'\n\nexport class StageScope implements AuthorizationScope<Identity> {\n\tconstructor(private readonly stage: string, private readonly stagePermissionsFactory: StagePermissionsFactory) {}\n\n\tgetIdentityAccess(identity: Identity): Promise<AccessNode> {\n\t\tconst permissions = this.stagePermissionsFactory.create(this.stage)\n\t\tconst roles = new AccessNode.Roles(identity.roles)\n\t\tconst permissionEvaluator = new AccessEvaluator.PermissionEvaluator(permissions)\n\t\tconst node = new SwitchEvaluatorNode(roles, permissionEvaluator)\n\n\t\treturn Promise.resolve(node)\n\t}\n}\n"],"names":["AccessNode","AccessEvaluator","SwitchEvaluatorNode"],"mappings":";;;;AAKO,MAAM,WAAmD;AAAA,EAC/D,YAA6B,OAAgC,yBAAkD;AAAlF,SAAA,QAAA;AAAgC,SAAA,0BAAA;AAAA,EAAmD;AAAA,EAEhH,kBAAkB,UAAyC;AAC1D,UAAM,cAAc,KAAK,wBAAwB,OAAO,KAAK,KAAK;AAClE,UAAM,QAAQ,IAAIA,cAAW,WAAA,MAAM,SAAS,KAAK;AACjD,UAAM,sBAAsB,IAAIC,cAAAA,gBAAgB,oBAAoB,WAAW;AAC/E,UAAM,OAAO,IAAIC,oBAAAA,oBAAoB,OAAO,mBAAmB;AAExD,WAAA,QAAQ,QAAQ,IAAI;AAAA,EAC5B;AACD;;"}
1
+ {"version":3,"file":"StageScope.cjs","sources":["../../../../../../packages/engine-system-api/src/model/authorization/StageScope.ts"],"sourcesContent":["import { AccessEvaluator, AccessNode, AuthorizationScope } from '@contember/authorization'\nimport { Identity } from './Identity'\nimport { SwitchEvaluatorNode } from './SwitchEvaluatorNode'\nimport { StagePermissionsFactory } from './StagePermissionsFactory'\n\nexport class StageScope implements AuthorizationScope<Identity> {\n\tconstructor(private readonly stage: string, private readonly stagePermissionsFactory: StagePermissionsFactory) {}\n\n\tasync getIdentityAccess(identity: Identity): Promise<AccessNode> {\n\t\tconst permissions = await this.stagePermissionsFactory.create(this.stage)\n\t\tconst roles = new AccessNode.Roles(identity.roles)\n\t\tconst permissionEvaluator = new AccessEvaluator.PermissionEvaluator(permissions)\n\t\tconst node = new SwitchEvaluatorNode(roles, permissionEvaluator)\n\n\t\treturn Promise.resolve(node)\n\t}\n}\n"],"names":["AccessNode","AccessEvaluator","SwitchEvaluatorNode"],"mappings":";;;;AAKO,MAAM,WAAmD;AAAA,EAC/D,YAA6B,OAAgC,yBAAkD;AAAlF,SAAA,QAAA;AAAgC,SAAA,0BAAA;AAAA,EAAA;AAAA,EAE7D,MAAM,kBAAkB,UAAyC;AAChE,UAAM,cAAc,MAAM,KAAK,wBAAwB,OAAO,KAAK,KAAK;AACxE,UAAM,QAAQ,IAAIA,cAAAA,WAAW,MAAM,SAAS,KAAK;AACjD,UAAM,sBAAsB,IAAIC,8BAAgB,oBAAoB,WAAW;AAC/E,UAAM,OAAO,IAAIC,wCAAoB,OAAO,mBAAmB;AAExD,WAAA,QAAQ,QAAQ,IAAI;AAAA,EAAA;AAE7B;;"}
@@ -5,8 +5,8 @@ class StageScope {
5
5
  this.stage = stage;
6
6
  this.stagePermissionsFactory = stagePermissionsFactory;
7
7
  }
8
- getIdentityAccess(identity) {
9
- const permissions = this.stagePermissionsFactory.create(this.stage);
8
+ async getIdentityAccess(identity) {
9
+ const permissions = await this.stagePermissionsFactory.create(this.stage);
10
10
  const roles = new AccessNode.Roles(identity.roles);
11
11
  const permissionEvaluator = new AccessEvaluator.PermissionEvaluator(permissions);
12
12
  const node = new SwitchEvaluatorNode(roles, permissionEvaluator);
@@ -1 +1 @@
1
- {"version":3,"file":"StageScope.js","sources":["../../../../../../packages/engine-system-api/src/model/authorization/StageScope.ts"],"sourcesContent":["import { AccessEvaluator, AccessNode, AuthorizationScope } from '@contember/authorization'\nimport { Identity } from './Identity'\nimport { SwitchEvaluatorNode } from './SwitchEvaluatorNode'\nimport { StagePermissionsFactory } from './StagePermissionsFactory'\n\nexport class StageScope implements AuthorizationScope<Identity> {\n\tconstructor(private readonly stage: string, private readonly stagePermissionsFactory: StagePermissionsFactory) {}\n\n\tgetIdentityAccess(identity: Identity): Promise<AccessNode> {\n\t\tconst permissions = this.stagePermissionsFactory.create(this.stage)\n\t\tconst roles = new AccessNode.Roles(identity.roles)\n\t\tconst permissionEvaluator = new AccessEvaluator.PermissionEvaluator(permissions)\n\t\tconst node = new SwitchEvaluatorNode(roles, permissionEvaluator)\n\n\t\treturn Promise.resolve(node)\n\t}\n}\n"],"names":[],"mappings":";;AAKO,MAAM,WAAmD;AAAA,EAC/D,YAA6B,OAAgC,yBAAkD;AAAlF,SAAA,QAAA;AAAgC,SAAA,0BAAA;AAAA,EAAmD;AAAA,EAEhH,kBAAkB,UAAyC;AAC1D,UAAM,cAAc,KAAK,wBAAwB,OAAO,KAAK,KAAK;AAClE,UAAM,QAAQ,IAAI,WAAW,MAAM,SAAS,KAAK;AACjD,UAAM,sBAAsB,IAAI,gBAAgB,oBAAoB,WAAW;AAC/E,UAAM,OAAO,IAAI,oBAAoB,OAAO,mBAAmB;AAExD,WAAA,QAAQ,QAAQ,IAAI;AAAA,EAC5B;AACD;"}
1
+ {"version":3,"file":"StageScope.js","sources":["../../../../../../packages/engine-system-api/src/model/authorization/StageScope.ts"],"sourcesContent":["import { AccessEvaluator, AccessNode, AuthorizationScope } from '@contember/authorization'\nimport { Identity } from './Identity'\nimport { SwitchEvaluatorNode } from './SwitchEvaluatorNode'\nimport { StagePermissionsFactory } from './StagePermissionsFactory'\n\nexport class StageScope implements AuthorizationScope<Identity> {\n\tconstructor(private readonly stage: string, private readonly stagePermissionsFactory: StagePermissionsFactory) {}\n\n\tasync getIdentityAccess(identity: Identity): Promise<AccessNode> {\n\t\tconst permissions = await this.stagePermissionsFactory.create(this.stage)\n\t\tconst roles = new AccessNode.Roles(identity.roles)\n\t\tconst permissionEvaluator = new AccessEvaluator.PermissionEvaluator(permissions)\n\t\tconst node = new SwitchEvaluatorNode(roles, permissionEvaluator)\n\n\t\treturn Promise.resolve(node)\n\t}\n}\n"],"names":[],"mappings":";;AAKO,MAAM,WAAmD;AAAA,EAC/D,YAA6B,OAAgC,yBAAkD;AAAlF,SAAA,QAAA;AAAgC,SAAA,0BAAA;AAAA,EAAA;AAAA,EAE7D,MAAM,kBAAkB,UAAyC;AAChE,UAAM,cAAc,MAAM,KAAK,wBAAwB,OAAO,KAAK,KAAK;AACxE,UAAM,QAAQ,IAAI,WAAW,MAAM,SAAS,KAAK;AACjD,UAAM,sBAAsB,IAAI,gBAAgB,oBAAoB,WAAW;AAC/E,UAAM,OAAO,IAAI,oBAAoB,OAAO,mBAAmB;AAExD,WAAA,QAAQ,QAAQ,IAAI;AAAA,EAAA;AAE7B;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchEvaluatorNode.cjs","sources":["../../../../../../packages/engine-system-api/src/model/authorization/SwitchEvaluatorNode.ts"],"sourcesContent":["import { AccessEvaluator, AccessNode, Authorizator } from '@contember/authorization'\n\nexport class SwitchEvaluatorNode implements AccessNode {\n\tconstructor(private readonly node: AccessNode, private readonly evaluator: AccessEvaluator) {}\n\n\tasync isAllowed(accessEvaluator: AccessEvaluator, action: Authorizator.Action): Promise<boolean> {\n\t\tconst result = await this.evaluator.evaluate(this.node, action)\n\t\treturn result\n\t}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,oBAA0C;AAAA,EACtD,YAA6B,MAAmC,WAA4B;AAA/D,SAAA,OAAA;AAAmC,SAAA,YAAA;AAAA,EAA6B;AAAA,EAE7F,MAAM,UAAU,iBAAkC,QAA+C;AAChG,UAAM,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,MAAM,MAAM;AACvD,WAAA;AAAA,EACR;AACD;;"}
1
+ {"version":3,"file":"SwitchEvaluatorNode.cjs","sources":["../../../../../../packages/engine-system-api/src/model/authorization/SwitchEvaluatorNode.ts"],"sourcesContent":["import { AccessEvaluator, AccessNode, Authorizator } from '@contember/authorization'\n\nexport class SwitchEvaluatorNode implements AccessNode {\n\tconstructor(private readonly node: AccessNode, private readonly evaluator: AccessEvaluator) {}\n\n\tasync isAllowed(accessEvaluator: AccessEvaluator, action: Authorizator.Action): Promise<boolean> {\n\t\tconst result = await this.evaluator.evaluate(this.node, action)\n\t\treturn result\n\t}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,oBAA0C;AAAA,EACtD,YAA6B,MAAmC,WAA4B;AAA/D,SAAA,OAAA;AAAmC,SAAA,YAAA;AAAA,EAAA;AAAA,EAEhE,MAAM,UAAU,iBAAkC,QAA+C;AAChG,UAAM,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,MAAM,MAAM;AACvD,WAAA;AAAA,EAAA;AAET;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchEvaluatorNode.js","sources":["../../../../../../packages/engine-system-api/src/model/authorization/SwitchEvaluatorNode.ts"],"sourcesContent":["import { AccessEvaluator, AccessNode, Authorizator } from '@contember/authorization'\n\nexport class SwitchEvaluatorNode implements AccessNode {\n\tconstructor(private readonly node: AccessNode, private readonly evaluator: AccessEvaluator) {}\n\n\tasync isAllowed(accessEvaluator: AccessEvaluator, action: Authorizator.Action): Promise<boolean> {\n\t\tconst result = await this.evaluator.evaluate(this.node, action)\n\t\treturn result\n\t}\n}\n"],"names":[],"mappings":"AAEO,MAAM,oBAA0C;AAAA,EACtD,YAA6B,MAAmC,WAA4B;AAA/D,SAAA,OAAA;AAAmC,SAAA,YAAA;AAAA,EAA6B;AAAA,EAE7F,MAAM,UAAU,iBAAkC,QAA+C;AAChG,UAAM,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,MAAM,MAAM;AACvD,WAAA;AAAA,EACR;AACD;"}
1
+ {"version":3,"file":"SwitchEvaluatorNode.js","sources":["../../../../../../packages/engine-system-api/src/model/authorization/SwitchEvaluatorNode.ts"],"sourcesContent":["import { AccessEvaluator, AccessNode, Authorizator } from '@contember/authorization'\n\nexport class SwitchEvaluatorNode implements AccessNode {\n\tconstructor(private readonly node: AccessNode, private readonly evaluator: AccessEvaluator) {}\n\n\tasync isAllowed(accessEvaluator: AccessEvaluator, action: Authorizator.Action): Promise<boolean> {\n\t\tconst result = await this.evaluator.evaluate(this.node, action)\n\t\treturn result\n\t}\n}\n"],"names":[],"mappings":"AAEO,MAAM,oBAA0C;AAAA,EACtD,YAA6B,MAAmC,WAA4B;AAA/D,SAAA,OAAA;AAAmC,SAAA,YAAA;AAAA,EAAA;AAAA,EAEhE,MAAM,UAAU,iBAAkC,QAA+C;AAChG,UAAM,SAAS,MAAM,KAAK,UAAU,SAAS,KAAK,MAAM,MAAM;AACvD,WAAA;AAAA,EAAA;AAET;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandBus.cjs","sources":["../../../../../../packages/engine-system-api/src/model/commands/CommandBus.ts"],"sourcesContent":["import { Command } from './Command'\nimport { Client, Connection } from '@contember/database'\nimport { Providers } from '../../utils'\n\nexport class CommandBus<ConnectionType extends Connection.ConnectionLike = Connection.ConnectionLike> {\n\tconstructor(public readonly client: Client<ConnectionType>, private readonly providers: Providers) {}\n\n\tpublic async execute<T>(command: Command<T>): Promise<T> {\n\t\treturn await command.execute({ db: this.client, providers: this.providers, bus: this })\n\t}\n\n\tasync transaction<T>(\n\t\ttransactionScope: (wrapper: CommandBus<Connection.TransactionLike>) => Promise<T> | T,\n\t): Promise<T> {\n\t\treturn await this.client.transaction(client =>\n\t\t\ttransactionScope(new CommandBus<Connection.TransactionLike>(client, this.providers)),\n\t\t)\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,WAAyF;AAAA,EACrG,YAA4B,QAAiD,WAAsB;AAAvE,SAAA,SAAA;AAAiD,SAAA,YAAA;AAAA,EAAuB;AAAA,EAEpG,MAAa,QAAW,SAAiC;AACxD,WAAO,MAAM,QAAQ,QAAQ,EAAE,IAAI,KAAK,QAAQ,WAAW,KAAK,WAAW,KAAK,KAAM,CAAA;AAAA,EACvF;AAAA,EAEA,MAAM,YACL,kBACa;AACN,WAAA,MAAM,KAAK,OAAO;AAAA,MAAY,YACpC,iBAAiB,IAAI,WAAuC,QAAQ,KAAK,SAAS,CAAC;AAAA,IAAA;AAAA,EAErF;AACD;;"}
1
+ {"version":3,"file":"CommandBus.cjs","sources":["../../../../../../packages/engine-system-api/src/model/commands/CommandBus.ts"],"sourcesContent":["import { Command } from './Command'\nimport { Client, Connection } from '@contember/database'\nimport { Providers } from '../../utils'\n\nexport class CommandBus<ConnectionType extends Connection.ConnectionLike = Connection.ConnectionLike> {\n\tconstructor(public readonly client: Client<ConnectionType>, private readonly providers: Providers) {}\n\n\tpublic async execute<T>(command: Command<T>): Promise<T> {\n\t\treturn await command.execute({ db: this.client, providers: this.providers, bus: this })\n\t}\n\n\tasync transaction<T>(\n\t\ttransactionScope: (wrapper: CommandBus<Connection.TransactionLike>) => Promise<T> | T,\n\t): Promise<T> {\n\t\treturn await this.client.transaction(client =>\n\t\t\ttransactionScope(new CommandBus<Connection.TransactionLike>(client, this.providers)),\n\t\t)\n\t}\n}\n"],"names":[],"mappings":";;AAIO,MAAM,WAAyF;AAAA,EACrG,YAA4B,QAAiD,WAAsB;AAAvE,SAAA,SAAA;AAAiD,SAAA,YAAA;AAAA,EAAA;AAAA,EAE7E,MAAa,QAAW,SAAiC;AACxD,WAAO,MAAM,QAAQ,QAAQ,EAAE,IAAI,KAAK,QAAQ,WAAW,KAAK,WAAW,KAAK,KAAA,CAAM;AAAA,EAAA;AAAA,EAGvF,MAAM,YACL,kBACa;AACN,WAAA,MAAM,KAAK,OAAO;AAAA,MAAY,YACpC,iBAAiB,IAAI,WAAuC,QAAQ,KAAK,SAAS,CAAC;AAAA,IACpF;AAAA,EAAA;AAEF;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommandBus.js","sources":["../../../../../../packages/engine-system-api/src/model/commands/CommandBus.ts"],"sourcesContent":["import { Command } from './Command'\nimport { Client, Connection } from '@contember/database'\nimport { Providers } from '../../utils'\n\nexport class CommandBus<ConnectionType extends Connection.ConnectionLike = Connection.ConnectionLike> {\n\tconstructor(public readonly client: Client<ConnectionType>, private readonly providers: Providers) {}\n\n\tpublic async execute<T>(command: Command<T>): Promise<T> {\n\t\treturn await command.execute({ db: this.client, providers: this.providers, bus: this })\n\t}\n\n\tasync transaction<T>(\n\t\ttransactionScope: (wrapper: CommandBus<Connection.TransactionLike>) => Promise<T> | T,\n\t): Promise<T> {\n\t\treturn await this.client.transaction(client =>\n\t\t\ttransactionScope(new CommandBus<Connection.TransactionLike>(client, this.providers)),\n\t\t)\n\t}\n}\n"],"names":[],"mappings":"AAIO,MAAM,WAAyF;AAAA,EACrG,YAA4B,QAAiD,WAAsB;AAAvE,SAAA,SAAA;AAAiD,SAAA,YAAA;AAAA,EAAuB;AAAA,EAEpG,MAAa,QAAW,SAAiC;AACxD,WAAO,MAAM,QAAQ,QAAQ,EAAE,IAAI,KAAK,QAAQ,WAAW,KAAK,WAAW,KAAK,KAAM,CAAA;AAAA,EACvF;AAAA,EAEA,MAAM,YACL,kBACa;AACN,WAAA,MAAM,KAAK,OAAO;AAAA,MAAY,YACpC,iBAAiB,IAAI,WAAuC,QAAQ,KAAK,SAAS,CAAC;AAAA,IAAA;AAAA,EAErF;AACD;"}
1
+ {"version":3,"file":"CommandBus.js","sources":["../../../../../../packages/engine-system-api/src/model/commands/CommandBus.ts"],"sourcesContent":["import { Command } from './Command'\nimport { Client, Connection } from '@contember/database'\nimport { Providers } from '../../utils'\n\nexport class CommandBus<ConnectionType extends Connection.ConnectionLike = Connection.ConnectionLike> {\n\tconstructor(public readonly client: Client<ConnectionType>, private readonly providers: Providers) {}\n\n\tpublic async execute<T>(command: Command<T>): Promise<T> {\n\t\treturn await command.execute({ db: this.client, providers: this.providers, bus: this })\n\t}\n\n\tasync transaction<T>(\n\t\ttransactionScope: (wrapper: CommandBus<Connection.TransactionLike>) => Promise<T> | T,\n\t): Promise<T> {\n\t\treturn await this.client.transaction(client =>\n\t\t\ttransactionScope(new CommandBus<Connection.TransactionLike>(client, this.providers)),\n\t\t)\n\t}\n}\n"],"names":[],"mappings":"AAIO,MAAM,WAAyF;AAAA,EACrG,YAA4B,QAAiD,WAAsB;AAAvE,SAAA,SAAA;AAAiD,SAAA,YAAA;AAAA,EAAA;AAAA,EAE7E,MAAa,QAAW,SAAiC;AACxD,WAAO,MAAM,QAAQ,QAAQ,EAAE,IAAI,KAAK,QAAQ,WAAW,KAAK,WAAW,KAAK,KAAA,CAAM;AAAA,EAAA;AAAA,EAGvF,MAAM,YACL,kBACa;AACN,WAAA,MAAM,KAAK,OAAO;AAAA,MAAY,YACpC,iBAAiB,IAAI,WAAuC,QAAQ,KAAK,SAAS,CAAC;AAAA,IACpF;AAAA,EAAA;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TruncateEventsCommand.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/commands/events/TruncateEventsCommand.ts"],"sourcesContent":["import { DeleteBuilder } from '@contember/database'\nimport { Command } from '../Command'\n\nexport class TruncateEventsCommand implements Command<number> {\n\tpublic async execute({ db }: Command.Args): Promise<number> {\n\t\treturn await DeleteBuilder.create().from('event_data').execute(db)\n\t}\n}\n"],"names":["DeleteBuilder"],"mappings":";;;AAGO,MAAM,sBAAiD;AAAA,EAC7D,MAAa,QAAQ,EAAE,MAAqC;AACpD,WAAA,MAAMA,SAAAA,cAAc,SAAS,KAAK,YAAY,EAAE,QAAQ,EAAE;AAAA,EAClE;AACD;;"}
1
+ {"version":3,"file":"TruncateEventsCommand.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/commands/events/TruncateEventsCommand.ts"],"sourcesContent":["import { DeleteBuilder } from '@contember/database'\nimport { Command } from '../Command'\n\nexport class TruncateEventsCommand implements Command<number> {\n\tpublic async execute({ db }: Command.Args): Promise<number> {\n\t\treturn await DeleteBuilder.create().from('event_data').execute(db)\n\t}\n}\n"],"names":["DeleteBuilder"],"mappings":";;;AAGO,MAAM,sBAAiD;AAAA,EAC7D,MAAa,QAAQ,EAAE,MAAqC;AACpD,WAAA,MAAMA,uBAAc,OAAO,EAAE,KAAK,YAAY,EAAE,QAAQ,EAAE;AAAA,EAAA;AAEnE;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"TruncateEventsCommand.js","sources":["../../../../../../../packages/engine-system-api/src/model/commands/events/TruncateEventsCommand.ts"],"sourcesContent":["import { DeleteBuilder } from '@contember/database'\nimport { Command } from '../Command'\n\nexport class TruncateEventsCommand implements Command<number> {\n\tpublic async execute({ db }: Command.Args): Promise<number> {\n\t\treturn await DeleteBuilder.create().from('event_data').execute(db)\n\t}\n}\n"],"names":[],"mappings":";AAGO,MAAM,sBAAiD;AAAA,EAC7D,MAAa,QAAQ,EAAE,MAAqC;AACpD,WAAA,MAAM,cAAc,SAAS,KAAK,YAAY,EAAE,QAAQ,EAAE;AAAA,EAClE;AACD;"}
1
+ {"version":3,"file":"TruncateEventsCommand.js","sources":["../../../../../../../packages/engine-system-api/src/model/commands/events/TruncateEventsCommand.ts"],"sourcesContent":["import { DeleteBuilder } from '@contember/database'\nimport { Command } from '../Command'\n\nexport class TruncateEventsCommand implements Command<number> {\n\tpublic async execute({ db }: Command.Args): Promise<number> {\n\t\treturn await DeleteBuilder.create().from('event_data').execute(db)\n\t}\n}\n"],"names":[],"mappings":";AAGO,MAAM,sBAAiD;AAAA,EAC7D,MAAa,QAAQ,EAAE,MAAqC;AACpD,WAAA,MAAM,cAAc,OAAO,EAAE,KAAK,YAAY,EAAE,QAAQ,EAAE;AAAA,EAAA;AAEnE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteMigrationCommand.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/commands/migrations/DeleteMigrationCommand.ts"],"sourcesContent":["import { DeleteBuilder } from '@contember/database'\nimport { Command } from '../Command'\n\nexport class DeleteMigrationCommand implements Command<boolean> {\n\tconstructor(private readonly version: string) {}\n\n\tpublic async execute({ db }: Command.Args): Promise<boolean> {\n\t\tconst result = await DeleteBuilder.create() //\n\t\t\t.from('schema_migration')\n\t\t\t.where({\n\t\t\t\tversion: this.version,\n\t\t\t})\n\t\t\t.execute(db)\n\t\treturn result > 0\n\t}\n}\n"],"names":["DeleteBuilder"],"mappings":";;;AAGO,MAAM,uBAAmD;AAAA,EAC/D,YAA6B,SAAiB;AAAjB,SAAA,UAAA;AAAA,EAAkB;AAAA,EAE/C,MAAa,QAAQ,EAAE,MAAsC;AACtD,UAAA,SAAS,MAAMA,uBAAc,SACjC,KAAK,kBAAkB,EACvB,MAAM;AAAA,MACN,SAAS,KAAK;AAAA,IAAA,CACd,EACA,QAAQ,EAAE;AACZ,WAAO,SAAS;AAAA,EACjB;AACD;;"}
1
+ {"version":3,"file":"DeleteMigrationCommand.cjs","sources":["../../../../../../../packages/engine-system-api/src/model/commands/migrations/DeleteMigrationCommand.ts"],"sourcesContent":["import { DeleteBuilder } from '@contember/database'\nimport { Command } from '../Command'\n\nexport class DeleteMigrationCommand implements Command<boolean> {\n\tconstructor(private readonly version: string) {}\n\n\tpublic async execute({ db }: Command.Args): Promise<boolean> {\n\t\tconst result = await DeleteBuilder.create() //\n\t\t\t.from('schema_migration')\n\t\t\t.where({\n\t\t\t\tversion: this.version,\n\t\t\t})\n\t\t\t.execute(db)\n\t\treturn result > 0\n\t}\n}\n"],"names":["DeleteBuilder"],"mappings":";;;AAGO,MAAM,uBAAmD;AAAA,EAC/D,YAA6B,SAAiB;AAAjB,SAAA,UAAA;AAAA,EAAA;AAAA,EAE7B,MAAa,QAAQ,EAAE,MAAsC;AACtD,UAAA,SAAS,MAAMA,uBAAc,SACjC,KAAK,kBAAkB,EACvB,MAAM;AAAA,MACN,SAAS,KAAK;AAAA,IAAA,CACd,EACA,QAAQ,EAAE;AACZ,WAAO,SAAS;AAAA,EAAA;AAElB;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteMigrationCommand.js","sources":["../../../../../../../packages/engine-system-api/src/model/commands/migrations/DeleteMigrationCommand.ts"],"sourcesContent":["import { DeleteBuilder } from '@contember/database'\nimport { Command } from '../Command'\n\nexport class DeleteMigrationCommand implements Command<boolean> {\n\tconstructor(private readonly version: string) {}\n\n\tpublic async execute({ db }: Command.Args): Promise<boolean> {\n\t\tconst result = await DeleteBuilder.create() //\n\t\t\t.from('schema_migration')\n\t\t\t.where({\n\t\t\t\tversion: this.version,\n\t\t\t})\n\t\t\t.execute(db)\n\t\treturn result > 0\n\t}\n}\n"],"names":[],"mappings":";AAGO,MAAM,uBAAmD;AAAA,EAC/D,YAA6B,SAAiB;AAAjB,SAAA,UAAA;AAAA,EAAkB;AAAA,EAE/C,MAAa,QAAQ,EAAE,MAAsC;AACtD,UAAA,SAAS,MAAM,cAAc,SACjC,KAAK,kBAAkB,EACvB,MAAM;AAAA,MACN,SAAS,KAAK;AAAA,IAAA,CACd,EACA,QAAQ,EAAE;AACZ,WAAO,SAAS;AAAA,EACjB;AACD;"}
1
+ {"version":3,"file":"DeleteMigrationCommand.js","sources":["../../../../../../../packages/engine-system-api/src/model/commands/migrations/DeleteMigrationCommand.ts"],"sourcesContent":["import { DeleteBuilder } from '@contember/database'\nimport { Command } from '../Command'\n\nexport class DeleteMigrationCommand implements Command<boolean> {\n\tconstructor(private readonly version: string) {}\n\n\tpublic async execute({ db }: Command.Args): Promise<boolean> {\n\t\tconst result = await DeleteBuilder.create() //\n\t\t\t.from('schema_migration')\n\t\t\t.where({\n\t\t\t\tversion: this.version,\n\t\t\t})\n\t\t\t.execute(db)\n\t\treturn result > 0\n\t}\n}\n"],"names":[],"mappings":";AAGO,MAAM,uBAAmD;AAAA,EAC/D,YAA6B,SAAiB;AAAjB,SAAA,UAAA;AAAA,EAAA;AAAA,EAE7B,MAAa,QAAQ,EAAE,MAAsC;AACtD,UAAA,SAAS,MAAM,cAAc,SACjC,KAAK,kBAAkB,EACvB,MAAM;AAAA,MACN,SAAS,KAAK;AAAA,IAAA,CACd,EACA,QAAQ,EAAE;AACZ,WAAO,SAAS;AAAA,EAAA;AAElB;"}