@contember/engine-system-api 2.1.0-beta.2 → 2.2.0-alpha.1

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 (618) hide show
  1. package/CLAUDE.md +16 -2
  2. package/dist/development/src/SystemContainer.cjs.map +1 -1
  3. package/dist/development/src/SystemContainer.js.map +1 -1
  4. package/dist/development/src/migrations/2020-03-27-130000-project-migrations.cjs.map +1 -1
  5. package/dist/development/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -1
  6. package/dist/development/src/migrations/2020-05-06-150000-composed-primary.cjs.map +1 -1
  7. package/dist/development/src/migrations/2020-05-06-150000-composed-primary.js.map +1 -1
  8. package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.cjs.map +1 -1
  9. package/dist/development/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -1
  10. package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.cjs.map +1 -1
  11. package/dist/development/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -1
  12. package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs.map +1 -1
  13. package/dist/development/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -1
  14. package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.cjs.map +1 -1
  15. package/dist/development/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -1
  16. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.cjs.map +1 -1
  17. package/dist/development/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -1
  18. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.cjs.map +1 -1
  19. package/dist/development/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -1
  20. package/dist/development/src/migrations/2024-06-28-153001-schema-init.cjs.map +1 -1
  21. package/dist/development/src/migrations/2024-06-28-153001-schema-init.js.map +1 -1
  22. package/dist/development/src/migrations/2025-03-14-110000-fix-missing-index.cjs.map +1 -1
  23. package/dist/development/src/migrations/2025-03-14-110000-fix-missing-index.js.map +1 -1
  24. package/dist/development/src/migrations/2026-06-01-120000-event-truncate.cjs +13 -0
  25. package/dist/development/src/migrations/2026-06-01-120000-event-truncate.cjs.map +1 -0
  26. package/dist/development/src/migrations/2026-06-01-120000-event-truncate.js +14 -0
  27. package/dist/development/src/migrations/2026-06-01-120000-event-truncate.js.map +1 -0
  28. package/dist/development/src/migrations/runner.cjs +3 -1
  29. package/dist/development/src/migrations/runner.cjs.map +1 -1
  30. package/dist/development/src/migrations/runner.js +3 -1
  31. package/dist/development/src/migrations/runner.js.map +1 -1
  32. package/dist/development/src/migrations/snapshot-factory.cjs.map +1 -1
  33. package/dist/development/src/migrations/snapshot-factory.js.map +1 -1
  34. package/dist/development/src/migrations/snapshot.cjs +5 -4
  35. package/dist/development/src/migrations/snapshot.cjs.map +1 -1
  36. package/dist/development/src/migrations/snapshot.js +5 -4
  37. package/dist/development/src/migrations/snapshot.js.map +1 -1
  38. package/dist/development/src/model/ProjectInitializer.cjs.map +1 -1
  39. package/dist/development/src/model/ProjectInitializer.js.map +1 -1
  40. package/dist/development/src/model/ProjectTruncateExecutor.cjs +3 -3
  41. package/dist/development/src/model/ProjectTruncateExecutor.cjs.map +1 -1
  42. package/dist/development/src/model/ProjectTruncateExecutor.js +3 -3
  43. package/dist/development/src/model/ProjectTruncateExecutor.js.map +1 -1
  44. package/dist/development/src/model/authorization/PermissionsFactory.cjs.map +1 -1
  45. package/dist/development/src/model/authorization/PermissionsFactory.js.map +1 -1
  46. package/dist/development/src/model/authorization/StagePermissionsFactory.cjs.map +1 -1
  47. package/dist/development/src/model/authorization/StagePermissionsFactory.js.map +1 -1
  48. package/dist/development/src/model/authorization/StageScope.cjs.map +1 -1
  49. package/dist/development/src/model/authorization/StageScope.js.map +1 -1
  50. package/dist/development/src/model/commands/CommandBus.cjs.map +1 -1
  51. package/dist/development/src/model/commands/CommandBus.js.map +1 -1
  52. package/dist/development/src/model/commands/events/TruncateEventsCommand.cjs +25 -2
  53. package/dist/development/src/model/commands/events/TruncateEventsCommand.cjs.map +1 -1
  54. package/dist/development/src/model/commands/events/TruncateEventsCommand.js +26 -3
  55. package/dist/development/src/model/commands/events/TruncateEventsCommand.js.map +1 -1
  56. package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.cjs.map +1 -1
  57. package/dist/development/src/model/commands/migrations/DeleteMigrationCommand.js.map +1 -1
  58. package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.cjs.map +1 -1
  59. package/dist/development/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -1
  60. package/dist/development/src/model/commands/migrations/SaveMigrationCommand.cjs.map +1 -1
  61. package/dist/development/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -1
  62. package/dist/development/src/model/commands/schema/SaveSchemaCommand.cjs.map +1 -1
  63. package/dist/development/src/model/commands/schema/SaveSchemaCommand.js.map +1 -1
  64. package/dist/development/src/model/commands/stages/CreateStageCommand.cjs.map +1 -1
  65. package/dist/development/src/model/commands/stages/CreateStageCommand.js.map +1 -1
  66. package/dist/development/src/model/database/DatabaseContext.cjs.map +1 -1
  67. package/dist/development/src/model/database/DatabaseContext.js.map +1 -1
  68. package/dist/development/src/model/events/EventResponseBuilder.cjs +6 -1
  69. package/dist/development/src/model/events/EventResponseBuilder.cjs.map +1 -1
  70. package/dist/development/src/model/events/EventResponseBuilder.js +6 -1
  71. package/dist/development/src/model/events/EventResponseBuilder.js.map +1 -1
  72. package/dist/development/src/model/events/EventResponseHelper.cjs.map +1 -1
  73. package/dist/development/src/model/events/EventResponseHelper.js.map +1 -1
  74. package/dist/development/src/model/events/identityUtils.cjs.map +1 -1
  75. package/dist/development/src/model/events/identityUtils.js.map +1 -1
  76. package/dist/development/src/model/events/types.cjs +17 -0
  77. package/dist/development/src/model/events/types.cjs.map +1 -1
  78. package/dist/development/src/model/events/types.js +17 -0
  79. package/dist/development/src/model/events/types.js.map +1 -1
  80. package/dist/development/src/model/helpers/stageHelpers.cjs.map +1 -1
  81. package/dist/development/src/model/helpers/stageHelpers.js.map +1 -1
  82. package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs.map +1 -1
  83. package/dist/development/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -1
  84. package/dist/development/src/model/migrations/ExecutedMigrationsResolver.cjs.map +1 -1
  85. package/dist/development/src/model/migrations/ExecutedMigrationsResolver.js.map +1 -1
  86. package/dist/development/src/model/migrations/MigrationAlterer.cjs.map +1 -1
  87. package/dist/development/src/model/migrations/MigrationAlterer.js.map +1 -1
  88. package/dist/development/src/model/migrations/ProjectMigrator.cjs +94 -5
  89. package/dist/development/src/model/migrations/ProjectMigrator.cjs.map +1 -1
  90. package/dist/development/src/model/migrations/ProjectMigrator.js +96 -7
  91. package/dist/development/src/model/migrations/ProjectMigrator.js.map +1 -1
  92. package/dist/development/src/model/migrations/SchemaProvider.cjs.map +1 -1
  93. package/dist/development/src/model/migrations/SchemaProvider.js.map +1 -1
  94. package/dist/development/src/model/queries/events/EventQueryHelpers.cjs +16 -8
  95. package/dist/development/src/model/queries/events/EventQueryHelpers.cjs.map +1 -1
  96. package/dist/development/src/model/queries/events/EventQueryHelpers.js +17 -9
  97. package/dist/development/src/model/queries/events/EventQueryHelpers.js.map +1 -1
  98. package/dist/development/src/model/queries/events/EventsQuery.cjs.map +1 -1
  99. package/dist/development/src/model/queries/events/EventsQuery.js.map +1 -1
  100. package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs.map +1 -1
  101. package/dist/development/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -1
  102. package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.cjs.map +1 -1
  103. package/dist/development/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -1
  104. package/dist/development/src/model/queries/migrations/ExecutedMigrationsQueryHelper.cjs.map +1 -1
  105. package/dist/development/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js.map +1 -1
  106. package/dist/development/src/model/queries/schema/SchemaQuery.cjs.map +1 -1
  107. package/dist/development/src/model/queries/schema/SchemaQuery.js.map +1 -1
  108. package/dist/development/src/model/queries/stages/StageBySlugQuery.cjs.map +1 -1
  109. package/dist/development/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
  110. package/dist/development/src/model/queries/stages/StageQueryFactory.cjs.map +1 -1
  111. package/dist/development/src/model/queries/stages/StageQueryFactory.js.map +1 -1
  112. package/dist/development/src/model/queries/stages/StagesQuery.cjs.map +1 -1
  113. package/dist/development/src/model/queries/stages/StagesQuery.js.map +1 -1
  114. package/dist/development/src/model/stages/StageCreator.cjs.map +1 -1
  115. package/dist/development/src/model/stages/StageCreator.js.map +1 -1
  116. package/dist/development/src/resolvers/ResolverFactory.cjs +4 -1
  117. package/dist/development/src/resolvers/ResolverFactory.cjs.map +1 -1
  118. package/dist/development/src/resolvers/ResolverFactory.js +4 -1
  119. package/dist/development/src/resolvers/ResolverFactory.js.map +1 -1
  120. package/dist/development/src/resolvers/SystemResolverContext.cjs.map +1 -1
  121. package/dist/development/src/resolvers/SystemResolverContext.js.map +1 -1
  122. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.cjs +49 -1
  123. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.cjs.map +1 -1
  124. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.js +49 -1
  125. package/dist/development/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
  126. package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.cjs.map +1 -1
  127. package/dist/development/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -1
  128. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.cjs +1 -1
  129. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.cjs.map +1 -1
  130. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.js +1 -1
  131. package/dist/development/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -1
  132. package/dist/development/src/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  133. package/dist/development/src/resolvers/query/EventsQueryResolver.js.map +1 -1
  134. package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs.map +1 -1
  135. package/dist/development/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -1
  136. package/dist/development/src/resolvers/query/SchemaQueryResolver.cjs.map +1 -1
  137. package/dist/development/src/resolvers/query/SchemaQueryResolver.js.map +1 -1
  138. package/dist/development/src/resolvers/query/StagesQueryResolver.cjs.map +1 -1
  139. package/dist/development/src/resolvers/query/StagesQueryResolver.js.map +1 -1
  140. package/dist/development/src/resolvers/types/EventOldValuesResolver.cjs.map +1 -1
  141. package/dist/development/src/resolvers/types/EventOldValuesResolver.js.map +1 -1
  142. package/dist/development/src/resolvers/types/OldValuesHelpers.cjs.map +1 -1
  143. package/dist/development/src/resolvers/types/OldValuesHelpers.js.map +1 -1
  144. package/dist/development/src/schema/dev.graphql.cjs +1 -1
  145. package/dist/development/src/schema/dev.graphql.cjs.map +1 -1
  146. package/dist/development/src/schema/dev.graphql.js +1 -1
  147. package/dist/development/src/schema/dev.graphql.js.map +1 -1
  148. package/dist/development/src/schema/system.graphql.cjs +39 -3
  149. package/dist/development/src/schema/system.graphql.cjs.map +1 -1
  150. package/dist/development/src/schema/system.graphql.js +39 -3
  151. package/dist/development/src/schema/system.graphql.js.map +1 -1
  152. package/dist/development/src/schema/types.cjs +2 -0
  153. package/dist/development/src/schema/types.cjs.map +1 -1
  154. package/dist/development/src/schema/types.js +2 -0
  155. package/dist/development/src/schema/types.js.map +1 -1
  156. package/dist/development/src/utils/batchQuery.cjs.map +1 -1
  157. package/dist/development/src/utils/batchQuery.js.map +1 -1
  158. package/dist/production/src/SystemContainer.cjs.map +1 -1
  159. package/dist/production/src/SystemContainer.js.map +1 -1
  160. package/dist/production/src/migrations/2020-03-27-130000-project-migrations.cjs.map +1 -1
  161. package/dist/production/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -1
  162. package/dist/production/src/migrations/2020-05-06-150000-composed-primary.cjs.map +1 -1
  163. package/dist/production/src/migrations/2020-05-06-150000-composed-primary.js.map +1 -1
  164. package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.cjs.map +1 -1
  165. package/dist/production/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -1
  166. package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.cjs.map +1 -1
  167. package/dist/production/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -1
  168. package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.cjs.map +1 -1
  169. package/dist/production/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -1
  170. package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.cjs.map +1 -1
  171. package/dist/production/src/migrations/2022-10-03-110000-table-on-delete.js.map +1 -1
  172. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.cjs.map +1 -1
  173. package/dist/production/src/migrations/2023-09-11-174000-fix-on-delete.js.map +1 -1
  174. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.cjs.map +1 -1
  175. package/dist/production/src/migrations/2023-10-19-173000-fix-unique.js.map +1 -1
  176. package/dist/production/src/migrations/2024-06-28-153001-schema-init.cjs.map +1 -1
  177. package/dist/production/src/migrations/2024-06-28-153001-schema-init.js.map +1 -1
  178. package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.cjs.map +1 -1
  179. package/dist/production/src/migrations/2025-03-14-110000-fix-missing-index.js.map +1 -1
  180. package/dist/production/src/migrations/2026-06-01-120000-event-truncate.cjs +13 -0
  181. package/dist/production/src/migrations/2026-06-01-120000-event-truncate.cjs.map +1 -0
  182. package/dist/production/src/migrations/2026-06-01-120000-event-truncate.js +14 -0
  183. package/dist/production/src/migrations/2026-06-01-120000-event-truncate.js.map +1 -0
  184. package/dist/production/src/migrations/runner.cjs +3 -1
  185. package/dist/production/src/migrations/runner.cjs.map +1 -1
  186. package/dist/production/src/migrations/runner.js +3 -1
  187. package/dist/production/src/migrations/runner.js.map +1 -1
  188. package/dist/production/src/migrations/snapshot-factory.cjs.map +1 -1
  189. package/dist/production/src/migrations/snapshot-factory.js.map +1 -1
  190. package/dist/production/src/migrations/snapshot.cjs +5 -4
  191. package/dist/production/src/migrations/snapshot.cjs.map +1 -1
  192. package/dist/production/src/migrations/snapshot.js +5 -4
  193. package/dist/production/src/migrations/snapshot.js.map +1 -1
  194. package/dist/production/src/model/ProjectInitializer.cjs.map +1 -1
  195. package/dist/production/src/model/ProjectInitializer.js.map +1 -1
  196. package/dist/production/src/model/ProjectTruncateExecutor.cjs +3 -3
  197. package/dist/production/src/model/ProjectTruncateExecutor.cjs.map +1 -1
  198. package/dist/production/src/model/ProjectTruncateExecutor.js +3 -3
  199. package/dist/production/src/model/ProjectTruncateExecutor.js.map +1 -1
  200. package/dist/production/src/model/authorization/PermissionsFactory.cjs.map +1 -1
  201. package/dist/production/src/model/authorization/PermissionsFactory.js.map +1 -1
  202. package/dist/production/src/model/authorization/StagePermissionsFactory.cjs.map +1 -1
  203. package/dist/production/src/model/authorization/StagePermissionsFactory.js.map +1 -1
  204. package/dist/production/src/model/authorization/StageScope.cjs.map +1 -1
  205. package/dist/production/src/model/authorization/StageScope.js.map +1 -1
  206. package/dist/production/src/model/commands/CommandBus.cjs.map +1 -1
  207. package/dist/production/src/model/commands/CommandBus.js.map +1 -1
  208. package/dist/production/src/model/commands/events/TruncateEventsCommand.cjs +25 -2
  209. package/dist/production/src/model/commands/events/TruncateEventsCommand.cjs.map +1 -1
  210. package/dist/production/src/model/commands/events/TruncateEventsCommand.js +26 -3
  211. package/dist/production/src/model/commands/events/TruncateEventsCommand.js.map +1 -1
  212. package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.cjs.map +1 -1
  213. package/dist/production/src/model/commands/migrations/DeleteMigrationCommand.js.map +1 -1
  214. package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.cjs.map +1 -1
  215. package/dist/production/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -1
  216. package/dist/production/src/model/commands/migrations/SaveMigrationCommand.cjs.map +1 -1
  217. package/dist/production/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -1
  218. package/dist/production/src/model/commands/schema/SaveSchemaCommand.cjs.map +1 -1
  219. package/dist/production/src/model/commands/schema/SaveSchemaCommand.js.map +1 -1
  220. package/dist/production/src/model/commands/stages/CreateStageCommand.cjs.map +1 -1
  221. package/dist/production/src/model/commands/stages/CreateStageCommand.js.map +1 -1
  222. package/dist/production/src/model/database/DatabaseContext.cjs.map +1 -1
  223. package/dist/production/src/model/database/DatabaseContext.js.map +1 -1
  224. package/dist/production/src/model/events/EventResponseBuilder.cjs +6 -1
  225. package/dist/production/src/model/events/EventResponseBuilder.cjs.map +1 -1
  226. package/dist/production/src/model/events/EventResponseBuilder.js +6 -1
  227. package/dist/production/src/model/events/EventResponseBuilder.js.map +1 -1
  228. package/dist/production/src/model/events/EventResponseHelper.cjs.map +1 -1
  229. package/dist/production/src/model/events/EventResponseHelper.js.map +1 -1
  230. package/dist/production/src/model/events/identityUtils.cjs.map +1 -1
  231. package/dist/production/src/model/events/identityUtils.js.map +1 -1
  232. package/dist/production/src/model/events/types.cjs +17 -0
  233. package/dist/production/src/model/events/types.cjs.map +1 -1
  234. package/dist/production/src/model/events/types.js +17 -0
  235. package/dist/production/src/model/events/types.js.map +1 -1
  236. package/dist/production/src/model/helpers/stageHelpers.cjs.map +1 -1
  237. package/dist/production/src/model/helpers/stageHelpers.js.map +1 -1
  238. package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.cjs.map +1 -1
  239. package/dist/production/src/model/metadata/SchemaDatabaseMetadataResolverStore.js.map +1 -1
  240. package/dist/production/src/model/migrations/ExecutedMigrationsResolver.cjs.map +1 -1
  241. package/dist/production/src/model/migrations/ExecutedMigrationsResolver.js.map +1 -1
  242. package/dist/production/src/model/migrations/MigrationAlterer.cjs.map +1 -1
  243. package/dist/production/src/model/migrations/MigrationAlterer.js.map +1 -1
  244. package/dist/production/src/model/migrations/ProjectMigrator.cjs +94 -5
  245. package/dist/production/src/model/migrations/ProjectMigrator.cjs.map +1 -1
  246. package/dist/production/src/model/migrations/ProjectMigrator.js +96 -7
  247. package/dist/production/src/model/migrations/ProjectMigrator.js.map +1 -1
  248. package/dist/production/src/model/migrations/SchemaProvider.cjs.map +1 -1
  249. package/dist/production/src/model/migrations/SchemaProvider.js.map +1 -1
  250. package/dist/production/src/model/queries/events/EventQueryHelpers.cjs +16 -8
  251. package/dist/production/src/model/queries/events/EventQueryHelpers.cjs.map +1 -1
  252. package/dist/production/src/model/queries/events/EventQueryHelpers.js +17 -9
  253. package/dist/production/src/model/queries/events/EventQueryHelpers.js.map +1 -1
  254. package/dist/production/src/model/queries/events/EventsQuery.cjs.map +1 -1
  255. package/dist/production/src/model/queries/events/EventsQuery.js.map +1 -1
  256. package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.cjs.map +1 -1
  257. package/dist/production/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -1
  258. package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.cjs.map +1 -1
  259. package/dist/production/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -1
  260. package/dist/production/src/model/queries/migrations/ExecutedMigrationsQueryHelper.cjs.map +1 -1
  261. package/dist/production/src/model/queries/migrations/ExecutedMigrationsQueryHelper.js.map +1 -1
  262. package/dist/production/src/model/queries/schema/SchemaQuery.cjs.map +1 -1
  263. package/dist/production/src/model/queries/schema/SchemaQuery.js.map +1 -1
  264. package/dist/production/src/model/queries/stages/StageBySlugQuery.cjs.map +1 -1
  265. package/dist/production/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
  266. package/dist/production/src/model/queries/stages/StageQueryFactory.cjs.map +1 -1
  267. package/dist/production/src/model/queries/stages/StageQueryFactory.js.map +1 -1
  268. package/dist/production/src/model/queries/stages/StagesQuery.cjs.map +1 -1
  269. package/dist/production/src/model/queries/stages/StagesQuery.js.map +1 -1
  270. package/dist/production/src/model/stages/StageCreator.cjs.map +1 -1
  271. package/dist/production/src/model/stages/StageCreator.js.map +1 -1
  272. package/dist/production/src/resolvers/ResolverFactory.cjs +4 -1
  273. package/dist/production/src/resolvers/ResolverFactory.cjs.map +1 -1
  274. package/dist/production/src/resolvers/ResolverFactory.js +4 -1
  275. package/dist/production/src/resolvers/ResolverFactory.js.map +1 -1
  276. package/dist/production/src/resolvers/SystemResolverContext.cjs.map +1 -1
  277. package/dist/production/src/resolvers/SystemResolverContext.js.map +1 -1
  278. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.cjs +49 -1
  279. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.cjs.map +1 -1
  280. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.js +49 -1
  281. package/dist/production/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
  282. package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.cjs.map +1 -1
  283. package/dist/production/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -1
  284. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.cjs +1 -1
  285. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.cjs.map +1 -1
  286. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.js +1 -1
  287. package/dist/production/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -1
  288. package/dist/production/src/resolvers/query/EventsQueryResolver.cjs.map +1 -1
  289. package/dist/production/src/resolvers/query/EventsQueryResolver.js.map +1 -1
  290. package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.cjs.map +1 -1
  291. package/dist/production/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -1
  292. package/dist/production/src/resolvers/query/SchemaQueryResolver.cjs.map +1 -1
  293. package/dist/production/src/resolvers/query/SchemaQueryResolver.js.map +1 -1
  294. package/dist/production/src/resolvers/query/StagesQueryResolver.cjs.map +1 -1
  295. package/dist/production/src/resolvers/query/StagesQueryResolver.js.map +1 -1
  296. package/dist/production/src/resolvers/types/EventOldValuesResolver.cjs.map +1 -1
  297. package/dist/production/src/resolvers/types/EventOldValuesResolver.js.map +1 -1
  298. package/dist/production/src/resolvers/types/OldValuesHelpers.cjs.map +1 -1
  299. package/dist/production/src/resolvers/types/OldValuesHelpers.js.map +1 -1
  300. package/dist/production/src/schema/dev.graphql.cjs +1 -1
  301. package/dist/production/src/schema/dev.graphql.cjs.map +1 -1
  302. package/dist/production/src/schema/dev.graphql.js +1 -1
  303. package/dist/production/src/schema/dev.graphql.js.map +1 -1
  304. package/dist/production/src/schema/system.graphql.cjs +39 -3
  305. package/dist/production/src/schema/system.graphql.cjs.map +1 -1
  306. package/dist/production/src/schema/system.graphql.js +39 -3
  307. package/dist/production/src/schema/system.graphql.js.map +1 -1
  308. package/dist/production/src/schema/types.cjs +2 -0
  309. package/dist/production/src/schema/types.cjs.map +1 -1
  310. package/dist/production/src/schema/types.js +2 -0
  311. package/dist/production/src/schema/types.js.map +1 -1
  312. package/dist/production/src/utils/batchQuery.cjs.map +1 -1
  313. package/dist/production/src/utils/batchQuery.js.map +1 -1
  314. package/dist/tests/cases/unit/projectMigratorSchemaState.test.d.ts +2 -0
  315. package/dist/tests/cases/unit/projectMigratorSchemaState.test.d.ts.map +1 -0
  316. package/dist/tests/cases/unit/truncateEventsCommand.test.d.ts +2 -0
  317. package/dist/tests/cases/unit/truncateEventsCommand.test.d.ts.map +1 -0
  318. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  319. package/dist/types/SystemContainer.d.ts +6 -6
  320. package/dist/types/SystemContainer.d.ts.map +1 -1
  321. package/dist/types/index.d.ts +7 -7
  322. package/dist/types/index.d.ts.map +1 -1
  323. package/dist/types/migrations/2020-03-27-130000-project-migrations.d.ts +1 -1
  324. package/dist/types/migrations/2020-03-27-130000-project-migrations.d.ts.map +1 -1
  325. package/dist/types/migrations/2020-05-06-150000-composed-primary.d.ts +1 -1
  326. package/dist/types/migrations/2020-05-06-150000-composed-primary.d.ts.map +1 -1
  327. package/dist/types/migrations/2020-06-01-103000-event-trigger-perf.d.ts +1 -1
  328. package/dist/types/migrations/2020-06-01-103000-event-trigger-perf.d.ts.map +1 -1
  329. package/dist/types/migrations/2021-05-07-155800-event-log-rework.d.ts +1 -1
  330. package/dist/types/migrations/2021-05-07-155800-event-log-rework.d.ts.map +1 -1
  331. package/dist/types/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts +1 -1
  332. package/dist/types/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts.map +1 -1
  333. package/dist/types/migrations/2022-10-03-110000-table-on-delete.d.ts +1 -1
  334. package/dist/types/migrations/2022-10-03-110000-table-on-delete.d.ts.map +1 -1
  335. package/dist/types/migrations/2023-09-11-174000-fix-on-delete.d.ts +1 -1
  336. package/dist/types/migrations/2023-09-11-174000-fix-on-delete.d.ts.map +1 -1
  337. package/dist/types/migrations/2023-10-19-173000-fix-unique.d.ts +1 -1
  338. package/dist/types/migrations/2023-10-19-173000-fix-unique.d.ts.map +1 -1
  339. package/dist/types/migrations/2024-06-28-153001-schema-init.d.ts +1 -1
  340. package/dist/types/migrations/2024-06-28-153001-schema-init.d.ts.map +1 -1
  341. package/dist/types/migrations/2025-03-14-110000-fix-missing-index.d.ts +1 -1
  342. package/dist/types/migrations/2025-03-14-110000-fix-missing-index.d.ts.map +1 -1
  343. package/dist/types/migrations/2026-06-01-120000-event-truncate.d.ts +3 -0
  344. package/dist/types/migrations/2026-06-01-120000-event-truncate.d.ts.map +1 -0
  345. package/dist/types/migrations/index.d.ts +2 -2
  346. package/dist/types/migrations/index.d.ts.map +1 -1
  347. package/dist/types/migrations/runner.d.ts +2 -2
  348. package/dist/types/migrations/runner.d.ts.map +1 -1
  349. package/dist/types/migrations/snapshot-factory.d.ts +1 -1
  350. package/dist/types/migrations/snapshot-factory.d.ts.map +1 -1
  351. package/dist/types/migrations/snapshot.d.ts +1 -1
  352. package/dist/types/migrations/snapshot.d.ts.map +1 -1
  353. package/dist/types/migrations/types.d.ts +2 -2
  354. package/dist/types/migrations/types.d.ts.map +1 -1
  355. package/dist/types/model/ProjectInitializer.d.ts +4 -4
  356. package/dist/types/model/ProjectInitializer.d.ts.map +1 -1
  357. package/dist/types/model/ProjectTruncateExecutor.d.ts +3 -3
  358. package/dist/types/model/ProjectTruncateExecutor.d.ts.map +1 -1
  359. package/dist/types/model/authorization/StagePermissionsFactory.d.ts +1 -1
  360. package/dist/types/model/authorization/StagePermissionsFactory.d.ts.map +1 -1
  361. package/dist/types/model/authorization/StageScope.d.ts +2 -2
  362. package/dist/types/model/authorization/StageScope.d.ts.map +1 -1
  363. package/dist/types/model/authorization/index.d.ts +3 -3
  364. package/dist/types/model/authorization/index.d.ts.map +1 -1
  365. package/dist/types/model/commands/Command.d.ts +2 -2
  366. package/dist/types/model/commands/Command.d.ts.map +1 -1
  367. package/dist/types/model/commands/CommandBus.d.ts +2 -2
  368. package/dist/types/model/commands/CommandBus.d.ts.map +1 -1
  369. package/dist/types/model/commands/events/TruncateEventsCommand.d.ts +12 -3
  370. package/dist/types/model/commands/events/TruncateEventsCommand.d.ts.map +1 -1
  371. package/dist/types/model/commands/events/index.d.ts +1 -1
  372. package/dist/types/model/commands/events/index.d.ts.map +1 -1
  373. package/dist/types/model/commands/index.d.ts +5 -5
  374. package/dist/types/model/commands/index.d.ts.map +1 -1
  375. package/dist/types/model/commands/migrations/DeleteMigrationCommand.d.ts +1 -1
  376. package/dist/types/model/commands/migrations/DeleteMigrationCommand.d.ts.map +1 -1
  377. package/dist/types/model/commands/migrations/ModifyMigrationCommand.d.ts +1 -1
  378. package/dist/types/model/commands/migrations/ModifyMigrationCommand.d.ts.map +1 -1
  379. package/dist/types/model/commands/migrations/SaveMigrationCommand.d.ts +2 -2
  380. package/dist/types/model/commands/migrations/SaveMigrationCommand.d.ts.map +1 -1
  381. package/dist/types/model/commands/migrations/index.d.ts +2 -2
  382. package/dist/types/model/commands/migrations/index.d.ts.map +1 -1
  383. package/dist/types/model/commands/schema/SaveSchemaCommand.d.ts +2 -2
  384. package/dist/types/model/commands/schema/SaveSchemaCommand.d.ts.map +1 -1
  385. package/dist/types/model/commands/stages/CreateStageCommand.d.ts +2 -2
  386. package/dist/types/model/commands/stages/CreateStageCommand.d.ts.map +1 -1
  387. package/dist/types/model/commands/stages/TruncateStagesCommand.d.ts +1 -1
  388. package/dist/types/model/commands/stages/TruncateStagesCommand.d.ts.map +1 -1
  389. package/dist/types/model/commands/stages/index.d.ts +2 -2
  390. package/dist/types/model/commands/stages/index.d.ts.map +1 -1
  391. package/dist/types/model/database/DatabaseContext.d.ts +2 -2
  392. package/dist/types/model/database/DatabaseContext.d.ts.map +1 -1
  393. package/dist/types/model/database/index.d.ts +1 -1
  394. package/dist/types/model/database/index.d.ts.map +1 -1
  395. package/dist/types/model/dependencies/content/ContentQueryExecutor.d.ts +2 -2
  396. package/dist/types/model/dependencies/content/ContentQueryExecutor.d.ts.map +1 -1
  397. package/dist/types/model/dependencies/index.d.ts +2 -2
  398. package/dist/types/model/dependencies/index.d.ts.map +1 -1
  399. package/dist/types/model/dependencies/tenant/index.d.ts +1 -1
  400. package/dist/types/model/dependencies/tenant/index.d.ts.map +1 -1
  401. package/dist/types/model/dtos/index.d.ts +2 -2
  402. package/dist/types/model/dtos/index.d.ts.map +1 -1
  403. package/dist/types/model/events/EventResponseBuilder.d.ts +4 -4
  404. package/dist/types/model/events/EventResponseBuilder.d.ts.map +1 -1
  405. package/dist/types/model/events/EventResponseHelper.d.ts +1 -1
  406. package/dist/types/model/events/EventResponseHelper.d.ts.map +1 -1
  407. package/dist/types/model/events/identityUtils.d.ts +1 -1
  408. package/dist/types/model/events/identityUtils.d.ts.map +1 -1
  409. package/dist/types/model/events/index.d.ts +2 -2
  410. package/dist/types/model/events/index.d.ts.map +1 -1
  411. package/dist/types/model/events/types.d.ts +12 -2
  412. package/dist/types/model/events/types.d.ts.map +1 -1
  413. package/dist/types/model/helpers/index.d.ts +2 -2
  414. package/dist/types/model/helpers/index.d.ts.map +1 -1
  415. package/dist/types/model/helpers/stageHelpers.d.ts +1 -1
  416. package/dist/types/model/helpers/stageHelpers.d.ts.map +1 -1
  417. package/dist/types/model/index.d.ts +13 -13
  418. package/dist/types/model/index.d.ts.map +1 -1
  419. package/dist/types/model/metadata/SchemaDatabaseMetadataResolverStore.d.ts +1 -1
  420. package/dist/types/model/metadata/SchemaDatabaseMetadataResolverStore.d.ts.map +1 -1
  421. package/dist/types/model/metadata/index.d.ts +1 -1
  422. package/dist/types/model/metadata/index.d.ts.map +1 -1
  423. package/dist/types/model/migrations/ExecutedMigrationsResolver.d.ts +2 -2
  424. package/dist/types/model/migrations/ExecutedMigrationsResolver.d.ts.map +1 -1
  425. package/dist/types/model/migrations/MigrationAlterer.d.ts +3 -3
  426. package/dist/types/model/migrations/MigrationAlterer.d.ts.map +1 -1
  427. package/dist/types/model/migrations/MigrationInput.d.ts +6 -0
  428. package/dist/types/model/migrations/MigrationInput.d.ts.map +1 -1
  429. package/dist/types/model/migrations/ProjectMigrator.d.ts +28 -10
  430. package/dist/types/model/migrations/ProjectMigrator.d.ts.map +1 -1
  431. package/dist/types/model/migrations/SchemaProvider.d.ts +2 -2
  432. package/dist/types/model/migrations/SchemaProvider.d.ts.map +1 -1
  433. package/dist/types/model/migrations/index.d.ts +4 -4
  434. package/dist/types/model/migrations/index.d.ts.map +1 -1
  435. package/dist/types/model/queries/events/EventQueryHelpers.d.ts +4 -4
  436. package/dist/types/model/queries/events/EventQueryHelpers.d.ts.map +1 -1
  437. package/dist/types/model/queries/events/EventsQuery.d.ts +2 -2
  438. package/dist/types/model/queries/events/EventsQuery.d.ts.map +1 -1
  439. package/dist/types/model/queries/events/index.d.ts +3 -3
  440. package/dist/types/model/queries/events/index.d.ts.map +1 -1
  441. package/dist/types/model/queries/index.d.ts +4 -4
  442. package/dist/types/model/queries/index.d.ts.map +1 -1
  443. package/dist/types/model/queries/migrations/ExecutedMigrationByVersionQuery.d.ts +1 -1
  444. package/dist/types/model/queries/migrations/ExecutedMigrationByVersionQuery.d.ts.map +1 -1
  445. package/dist/types/model/queries/migrations/ExecutedMigrationsQuery.d.ts +1 -1
  446. package/dist/types/model/queries/migrations/ExecutedMigrationsQuery.d.ts.map +1 -1
  447. package/dist/types/model/queries/migrations/ExecutedMigrationsQueryHelper.d.ts +1 -1
  448. package/dist/types/model/queries/migrations/ExecutedMigrationsQueryHelper.d.ts.map +1 -1
  449. package/dist/types/model/queries/migrations/index.d.ts +3 -3
  450. package/dist/types/model/queries/migrations/index.d.ts.map +1 -1
  451. package/dist/types/model/queries/schema/SchemaQuery.d.ts +1 -1
  452. package/dist/types/model/queries/schema/SchemaQuery.d.ts.map +1 -1
  453. package/dist/types/model/queries/schema/index.d.ts +1 -1
  454. package/dist/types/model/queries/schema/index.d.ts.map +1 -1
  455. package/dist/types/model/queries/stages/StageBySlugQuery.d.ts +1 -1
  456. package/dist/types/model/queries/stages/StageBySlugQuery.d.ts.map +1 -1
  457. package/dist/types/model/queries/stages/StageQueryFactory.d.ts +1 -1
  458. package/dist/types/model/queries/stages/StageQueryFactory.d.ts.map +1 -1
  459. package/dist/types/model/queries/stages/StagesQuery.d.ts +1 -1
  460. package/dist/types/model/queries/stages/StagesQuery.d.ts.map +1 -1
  461. package/dist/types/model/queries/stages/index.d.ts +3 -3
  462. package/dist/types/model/queries/stages/index.d.ts.map +1 -1
  463. package/dist/types/model/stages/StageCreator.d.ts +2 -2
  464. package/dist/types/model/stages/StageCreator.d.ts.map +1 -1
  465. package/dist/types/model/stages/index.d.ts +1 -1
  466. package/dist/types/model/stages/index.d.ts.map +1 -1
  467. package/dist/types/resolvers/Resolver.d.ts +1 -1
  468. package/dist/types/resolvers/Resolver.d.ts.map +1 -1
  469. package/dist/types/resolvers/ResolverFactory.d.ts +5 -5
  470. package/dist/types/resolvers/ResolverFactory.d.ts.map +1 -1
  471. package/dist/types/resolvers/SystemResolverContext.d.ts +4 -4
  472. package/dist/types/resolvers/SystemResolverContext.d.ts.map +1 -1
  473. package/dist/types/resolvers/index.d.ts +5 -5
  474. package/dist/types/resolvers/index.d.ts.map +1 -1
  475. package/dist/types/resolvers/mutation/MigrateMutationResolver.d.ts +6 -4
  476. package/dist/types/resolvers/mutation/MigrateMutationResolver.d.ts.map +1 -1
  477. package/dist/types/resolvers/mutation/MigrationAlterMutationResolver.d.ts +4 -4
  478. package/dist/types/resolvers/mutation/MigrationAlterMutationResolver.d.ts.map +1 -1
  479. package/dist/types/resolvers/mutation/TruncateMutationResolver.d.ts +4 -4
  480. package/dist/types/resolvers/mutation/TruncateMutationResolver.d.ts.map +1 -1
  481. package/dist/types/resolvers/mutation/index.d.ts +3 -3
  482. package/dist/types/resolvers/mutation/index.d.ts.map +1 -1
  483. package/dist/types/resolvers/query/EventsQueryResolver.d.ts +4 -4
  484. package/dist/types/resolvers/query/EventsQueryResolver.d.ts.map +1 -1
  485. package/dist/types/resolvers/query/ExecutedMigrationsQueryResolver.d.ts +3 -3
  486. package/dist/types/resolvers/query/ExecutedMigrationsQueryResolver.d.ts.map +1 -1
  487. package/dist/types/resolvers/query/SchemaQueryResolver.d.ts +2 -2
  488. package/dist/types/resolvers/query/SchemaQueryResolver.d.ts.map +1 -1
  489. package/dist/types/resolvers/query/StagesQueryResolver.d.ts +3 -3
  490. package/dist/types/resolvers/query/StagesQueryResolver.d.ts.map +1 -1
  491. package/dist/types/resolvers/query/index.d.ts +3 -3
  492. package/dist/types/resolvers/query/index.d.ts.map +1 -1
  493. package/dist/types/resolvers/types/EventOldValuesResolver.d.ts +2 -2
  494. package/dist/types/resolvers/types/EventOldValuesResolver.d.ts.map +1 -1
  495. package/dist/types/resolvers/types/OldValuesHelpers.d.ts +2 -2
  496. package/dist/types/resolvers/types/OldValuesHelpers.d.ts.map +1 -1
  497. package/dist/types/resolvers/types/index.d.ts +1 -1
  498. package/dist/types/resolvers/types/index.d.ts.map +1 -1
  499. package/dist/types/schema/index.d.ts +2 -2
  500. package/dist/types/schema/index.d.ts.map +1 -1
  501. package/dist/types/schema/system.graphql.d.ts.map +1 -1
  502. package/dist/types/schema/types.d.ts +80 -54
  503. package/dist/types/schema/types.d.ts.map +1 -1
  504. package/dist/types/tsconfig.tsbuildinfo +1 -1
  505. package/dist/types/utils/index.d.ts +7 -7
  506. package/dist/types/utils/index.d.ts.map +1 -1
  507. package/dist/types/utils/providers.d.ts +1 -1
  508. package/dist/types/utils/providers.d.ts.map +1 -1
  509. package/package.json +12 -12
  510. package/src/SystemContainer.ts +6 -6
  511. package/src/bin/runMigrations.ts +2 -2
  512. package/src/index.ts +7 -7
  513. package/src/migrations/2020-03-27-130000-project-migrations.ts +1 -1
  514. package/src/migrations/2020-05-06-150000-composed-primary.ts +2 -2
  515. package/src/migrations/2020-06-01-103000-event-trigger-perf.ts +2 -2
  516. package/src/migrations/2021-05-07-155800-event-log-rework.ts +2 -2
  517. package/src/migrations/2021-05-19-1232000-event-log-fix-constraint.ts +2 -2
  518. package/src/migrations/2022-10-03-110000-table-on-delete.ts +1 -1
  519. package/src/migrations/2023-09-11-174000-fix-on-delete.ts +1 -1
  520. package/src/migrations/2023-10-19-173000-fix-unique.ts +1 -1
  521. package/src/migrations/2024-06-28-153001-schema-init.ts +1 -1
  522. package/src/migrations/2025-03-14-110000-fix-missing-index.ts +1 -1
  523. package/src/migrations/2026-06-01-120000-event-truncate.ts +18 -0
  524. package/src/migrations/index.ts +2 -2
  525. package/src/migrations/runner.ts +31 -29
  526. package/src/migrations/snapshot-factory.ts +1 -1
  527. package/src/migrations/snapshot-template-start.txt +1 -1
  528. package/src/migrations/snapshot.ts +6 -5
  529. package/src/migrations/types.ts +2 -2
  530. package/src/model/ProjectInitializer.ts +4 -4
  531. package/src/model/ProjectTruncateExecutor.ts +8 -8
  532. package/src/model/authorization/PermissionsFactory.ts +1 -1
  533. package/src/model/authorization/StagePermissionsFactory.ts +2 -2
  534. package/src/model/authorization/StageScope.ts +3 -3
  535. package/src/model/authorization/index.ts +3 -3
  536. package/src/model/commands/Command.ts +2 -2
  537. package/src/model/commands/CommandBus.ts +2 -2
  538. package/src/model/commands/events/TruncateEventsCommand.ts +45 -5
  539. package/src/model/commands/events/index.ts +1 -1
  540. package/src/model/commands/index.ts +5 -5
  541. package/src/model/commands/migrations/DeleteMigrationCommand.ts +1 -1
  542. package/src/model/commands/migrations/ModifyMigrationCommand.ts +2 -2
  543. package/src/model/commands/migrations/SaveMigrationCommand.ts +2 -2
  544. package/src/model/commands/migrations/index.ts +2 -2
  545. package/src/model/commands/schema/SaveSchemaCommand.ts +2 -2
  546. package/src/model/commands/stages/CreateStageCommand.ts +3 -3
  547. package/src/model/commands/stages/TruncateStagesCommand.ts +1 -1
  548. package/src/model/commands/stages/index.ts +2 -2
  549. package/src/model/database/DatabaseContext.ts +2 -2
  550. package/src/model/database/index.ts +1 -1
  551. package/src/model/dependencies/content/ContentQueryExecutor.ts +2 -2
  552. package/src/model/dependencies/index.ts +2 -2
  553. package/src/model/dependencies/tenant/index.ts +1 -1
  554. package/src/model/dtos/index.ts +2 -2
  555. package/src/model/events/EventResponseBuilder.ts +12 -7
  556. package/src/model/events/EventResponseHelper.ts +1 -1
  557. package/src/model/events/identityUtils.ts +2 -2
  558. package/src/model/events/index.ts +2 -2
  559. package/src/model/events/types.ts +15 -1
  560. package/src/model/helpers/index.ts +2 -2
  561. package/src/model/helpers/stageHelpers.ts +1 -1
  562. package/src/model/index.ts +13 -13
  563. package/src/model/metadata/SchemaDatabaseMetadataResolverStore.ts +1 -1
  564. package/src/model/metadata/index.ts +1 -1
  565. package/src/model/migrations/ExecutedMigrationsResolver.ts +3 -3
  566. package/src/model/migrations/MigrationAlterer.ts +6 -6
  567. package/src/model/migrations/MigrationInput.ts +7 -0
  568. package/src/model/migrations/ProjectMigrator.ts +133 -17
  569. package/src/model/migrations/SchemaProvider.ts +3 -3
  570. package/src/model/migrations/index.ts +4 -4
  571. package/src/model/queries/events/EventQueryHelpers.ts +21 -13
  572. package/src/model/queries/events/EventsQuery.ts +3 -3
  573. package/src/model/queries/events/index.ts +3 -3
  574. package/src/model/queries/index.ts +4 -4
  575. package/src/model/queries/migrations/ExecutedMigrationByVersionQuery.ts +2 -2
  576. package/src/model/queries/migrations/ExecutedMigrationsQuery.ts +2 -2
  577. package/src/model/queries/migrations/ExecutedMigrationsQueryHelper.ts +1 -1
  578. package/src/model/queries/migrations/index.ts +3 -3
  579. package/src/model/queries/schema/SchemaQuery.ts +1 -1
  580. package/src/model/queries/schema/index.ts +1 -1
  581. package/src/model/queries/stages/StageBySlugQuery.ts +2 -2
  582. package/src/model/queries/stages/StageQueryFactory.ts +1 -1
  583. package/src/model/queries/stages/StagesQuery.ts +2 -2
  584. package/src/model/queries/stages/index.ts +3 -3
  585. package/src/model/stages/StageCreator.ts +4 -4
  586. package/src/model/stages/index.ts +1 -1
  587. package/src/resolvers/Resolver.ts +1 -1
  588. package/src/resolvers/ResolverFactory.ts +9 -6
  589. package/src/resolvers/SystemResolverContext.ts +6 -6
  590. package/src/resolvers/index.ts +5 -5
  591. package/src/resolvers/mutation/MigrateMutationResolver.ts +64 -7
  592. package/src/resolvers/mutation/MigrationAlterMutationResolver.ts +4 -4
  593. package/src/resolvers/mutation/TruncateMutationResolver.ts +5 -5
  594. package/src/resolvers/mutation/index.ts +3 -3
  595. package/src/resolvers/query/EventsQueryResolver.ts +4 -4
  596. package/src/resolvers/query/ExecutedMigrationsQueryResolver.ts +4 -4
  597. package/src/resolvers/query/SchemaQueryResolver.ts +3 -3
  598. package/src/resolvers/query/StagesQueryResolver.ts +4 -4
  599. package/src/resolvers/query/index.ts +3 -3
  600. package/src/resolvers/types/EventOldValuesResolver.ts +3 -3
  601. package/src/resolvers/types/OldValuesHelpers.ts +3 -3
  602. package/src/resolvers/types/index.ts +1 -1
  603. package/src/schema/dev.graphql.ts +1 -1
  604. package/src/schema/index.ts +4 -2
  605. package/src/schema/system.graphql.ts +39 -3
  606. package/src/schema/types.ts +108 -38
  607. package/src/utils/batchQuery.ts +1 -1
  608. package/src/utils/index.ts +7 -7
  609. package/src/utils/providers.ts +1 -1
  610. package/tests/cases/migrations/2020-05-06-150000-composed-primary.test.ts +1 -1
  611. package/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.ts +1 -1
  612. package/tests/cases/migrations/2022-10-03-110000-table-on-delete.test.ts +1 -1
  613. package/tests/cases/migrations/2023-09-11-174000-fix-on-delete.test.ts +1 -1
  614. package/tests/cases/migrations/2023-10-19-173000-fix-unique.test.ts +1 -1
  615. package/tests/cases/migrations/2025-03-14-110000-fix-missing-index.test.ts +1 -1
  616. package/tests/cases/unit/eventsQuery.test.ts +3 -3
  617. package/tests/cases/unit/projectMigratorSchemaState.test.ts +48 -0
  618. package/tests/cases/unit/truncateEventsCommand.test.ts +54 -0
@@ -1,6 +1,6 @@
1
1
  import { ConflictActionType, InsertBuilder } from '@contember/database'
2
- import { Command } from '../Command'
3
- import { SchemaWithMeta } from '../../migrations'
2
+ import { Command } from '../Command.js'
3
+ import { SchemaWithMeta } from '../../migrations/index.js'
4
4
 
5
5
  export class SaveSchemaCommand implements Command<void> {
6
6
  constructor(private readonly input: SchemaWithMeta) {}
@@ -1,7 +1,7 @@
1
1
  import { InsertBuilder, wrapIdentifier } from '@contember/database'
2
- import { StageConfig } from '../../../types'
3
- import { Command } from '../Command'
4
- import { formatSchemaName } from '../../helpers'
2
+ import { StageConfig } from '../../../types.js'
3
+ import { Command } from '../Command.js'
4
+ import { formatSchemaName } from '../../helpers/index.js'
5
5
 
6
6
  export class CreateStageCommand implements Command<void> {
7
7
  constructor(private readonly stage: StageConfig) {}
@@ -1,5 +1,5 @@
1
1
  import { DeleteBuilder } from '@contember/database'
2
- import { Command } from '../Command'
2
+ import { Command } from '../Command.js'
3
3
 
4
4
  export class TruncateStagesCommand implements Command<number> {
5
5
  public async execute({ db }: Command.Args): Promise<number> {
@@ -1,2 +1,2 @@
1
- export * from './CreateStageCommand'
2
- export * from './TruncateStagesCommand'
1
+ export * from './CreateStageCommand.js'
2
+ export * from './TruncateStagesCommand.js'
@@ -1,7 +1,7 @@
1
1
  import { Client, Connection, DatabaseQueryable } from '@contember/database'
2
2
  import { QueryHandler } from '@contember/queryable'
3
- import { UuidProvider } from '../../utils'
4
- import { CommandBus } from '../commands'
3
+ import { UuidProvider } from '../../utils/index.js'
4
+ import { CommandBus } from '../commands/index.js'
5
5
 
6
6
  export interface DatabaseContext<ConnectionType extends Connection.ConnectionLike = Connection.ConnectionLike> {
7
7
  client: Client<ConnectionType>
@@ -1 +1 @@
1
- export * from './DatabaseContext'
1
+ export * from './DatabaseContext.js'
@@ -1,5 +1,5 @@
1
- import { Stage } from '../../dtos'
2
- import { DatabaseContext } from '../../database'
1
+ import { Stage } from '../../dtos/index.js'
2
+ import { DatabaseContext } from '../../database/index.js'
3
3
  import { ExecutionResult } from 'graphql'
4
4
  import { DatabaseMetadata } from '@contember/database'
5
5
  import { Schema } from '@contember/schema'
@@ -1,2 +1,2 @@
1
- export * from './tenant'
2
- export * from './content/ContentQueryExecutor'
1
+ export * from './tenant/index.js'
2
+ export * from './content/ContentQueryExecutor.js'
@@ -1 +1 @@
1
- export * from './IdentityFetcher'
1
+ export * from './IdentityFetcher.js'
@@ -1,2 +1,2 @@
1
- export * from './ExecutedMigration'
2
- export * from './Stage'
1
+ export * from './ExecutedMigration.js'
2
+ export * from './Stage.js'
@@ -1,18 +1,19 @@
1
- import { ContentEvent, EventType } from './types'
2
- import { CreateEvent, DeleteEvent, EventType as ApiEventType, UpdateEvent } from '../../schema'
3
- import { assertNever } from '../../utils'
4
- import { IdentityFetcher } from '../dependencies'
5
- import { formatIdentity } from './identityUtils'
6
- import { appendCreateSpecificData, appendDeleteSpecificData, appendUpdateSpecificData } from './EventResponseHelper'
1
+ import { ContentEvent, EventType } from './types.js'
2
+ import { CreateEvent, DeleteEvent, EventType as ApiEventType, TruncateEvent, UpdateEvent } from '../../schema/index.js'
3
+ import { assertNever } from '../../utils/index.js'
4
+ import { IdentityFetcher } from '../dependencies/index.js'
5
+ import { formatIdentity } from './identityUtils.js'
6
+ import { appendCreateSpecificData, appendDeleteSpecificData, appendUpdateSpecificData } from './EventResponseHelper.js'
7
7
 
8
8
  export class EventResponseBuilder {
9
9
  constructor(private readonly identityFetcher: IdentityFetcher) {}
10
10
 
11
- public async buildResponse(events: ContentEvent[]): Promise<(CreateEvent | DeleteEvent | UpdateEvent)[]> {
11
+ public async buildResponse(events: ContentEvent[]): Promise<(CreateEvent | DeleteEvent | TruncateEvent | UpdateEvent)[]> {
12
12
  const apiEventTypeMapping = {
13
13
  [EventType.create]: ApiEventType.Create,
14
14
  [EventType.update]: ApiEventType.Update,
15
15
  [EventType.delete]: ApiEventType.Delete,
16
+ [EventType.truncate]: ApiEventType.Truncate,
16
17
  }
17
18
  const identityIds = events.map(it => it.identityId).filter((it, index, ids) => ids.indexOf(it) === index)
18
19
  const identities = await this.identityFetcher.fetchIdentities(identityIds)
@@ -36,6 +37,8 @@ export class EventResponseBuilder {
36
37
  return ((): UpdateEvent => appendUpdateSpecificData(commonData, it))()
37
38
  case EventType.delete:
38
39
  return ((): DeleteEvent => appendDeleteSpecificData(commonData, it))()
40
+ case EventType.truncate:
41
+ return ((): TruncateEvent => ({ ...commonData, tableName: null, primaryKey: null }))()
39
42
  }
40
43
  assertNever(it)
41
44
  })
@@ -49,6 +52,8 @@ export class EventResponseBuilder {
49
52
  return `Updating ${event.tableName}#${event.rowId.join(';')}`
50
53
  case EventType.delete:
51
54
  return `Deleting ${event.tableName}#${event.rowId.join(';')}`
55
+ case EventType.truncate:
56
+ return 'Truncating content'
52
57
  default:
53
58
  return assertNever(event)
54
59
  }
@@ -1,4 +1,4 @@
1
- import { CreateEvent, DeleteEvent, UpdateEvent } from './types'
1
+ import { CreateEvent, DeleteEvent, UpdateEvent } from './types.js'
2
2
 
3
3
  export const appendUpdateSpecificData = <T>(commonData: T, event: UpdateEvent) => ({
4
4
  ...commonData,
@@ -1,5 +1,5 @@
1
- import { TenantIdentity } from '../dependencies/tenant/IdentityFetcher'
2
- import { assertNever } from '../../utils'
1
+ import { TenantIdentity } from '../dependencies/tenant/IdentityFetcher.js'
2
+ import { assertNever } from '../../utils/index.js'
3
3
 
4
4
  export const formatIdentity = (identity: TenantIdentity): string => {
5
5
  if (!identity) {
@@ -1,2 +1,2 @@
1
- export * from './EventResponseBuilder'
2
- export * from './types'
1
+ export * from './EventResponseBuilder.js'
2
+ export * from './types.js'
@@ -2,9 +2,10 @@ export enum EventType {
2
2
  delete = 'delete',
3
3
  update = 'update',
4
4
  create = 'create',
5
+ truncate = 'truncate',
5
6
  }
6
7
 
7
- export type ContentEvent = UpdateEvent | CreateEvent | DeleteEvent
8
+ export type ContentEvent = UpdateEvent | CreateEvent | DeleteEvent | TruncateEvent
8
9
 
9
10
  export interface Event {
10
11
  readonly type: EventType
@@ -60,3 +61,16 @@ export class DeleteEvent implements Event {
60
61
  ) {
61
62
  }
62
63
  }
64
+
65
+ export class TruncateEvent implements Event {
66
+ public readonly type = EventType.truncate
67
+
68
+ constructor(
69
+ public readonly id: string,
70
+ public readonly createdAt: Date,
71
+ public readonly appliedAt: Date,
72
+ public readonly identityId: string,
73
+ public readonly transactionId: string,
74
+ ) {
75
+ }
76
+ }
@@ -1,2 +1,2 @@
1
- export * from './stageHelpers'
2
- export * from './modelHelpers'
1
+ export * from './stageHelpers.js'
2
+ export * from './modelHelpers.js'
@@ -1,4 +1,4 @@
1
- import { Stage } from '../dtos'
1
+ import { Stage } from '../dtos/index.js'
2
2
 
3
3
  export function formatSchemaName(stage: Pick<Stage, 'slug'>): string {
4
4
  return 'stage_' + stage.slug
@@ -1,13 +1,13 @@
1
- export * from './authorization'
2
- export * from './commands'
3
- export * from './database'
4
- export * from './dependencies'
5
- export * from './dtos'
6
- export * from './events'
7
- export * from './helpers'
8
- export * from './metadata'
9
- export * from './migrations'
10
- export * from './queries'
11
- export * from './stages'
12
- export * from './ProjectInitializer'
13
- export * from './ProjectTruncateExecutor'
1
+ export * from './authorization/index.js'
2
+ export * from './commands/index.js'
3
+ export * from './database/index.js'
4
+ export * from './dependencies/index.js'
5
+ export * from './dtos/index.js'
6
+ export * from './events/index.js'
7
+ export * from './helpers/index.js'
8
+ export * from './metadata/index.js'
9
+ export * from './migrations/index.js'
10
+ export * from './queries/index.js'
11
+ export * from './stages/index.js'
12
+ export * from './ProjectInitializer.js'
13
+ export * from './ProjectTruncateExecutor.js'
@@ -1,4 +1,4 @@
1
- import { DatabaseContext } from '../database'
1
+ import { DatabaseContext } from '../database/index.js'
2
2
  import { DatabaseMetadata, DatabaseMetadataResolver } from '@contember/database'
3
3
 
4
4
  export class SchemaDatabaseMetadataResolverStore {
@@ -1 +1 @@
1
- export * from './SchemaDatabaseMetadataResolverStore'
1
+ export * from './SchemaDatabaseMetadataResolverStore.js'
@@ -1,6 +1,6 @@
1
- import { ExecutedMigration } from '../dtos'
2
- import { ExecutedMigrationByVersionQuery, ExecutedMigrationsQuery } from '../queries'
3
- import { DatabaseContext } from '../database'
1
+ import { ExecutedMigration } from '../dtos/index.js'
2
+ import { ExecutedMigrationByVersionQuery, ExecutedMigrationsQuery } from '../queries/index.js'
3
+ import { DatabaseContext } from '../database/index.js'
4
4
 
5
5
  export class ExecutedMigrationsResolver {
6
6
  async getMigrations(db: DatabaseContext, afterVersion?: string): Promise<ExecutedMigration[]> {
@@ -1,10 +1,10 @@
1
- import { DatabaseContext } from '../database'
2
- import { DeleteMigrationCommand } from '../commands'
3
- import { Response, ResponseError, ResponseOk } from '../../utils'
1
+ import { DatabaseContext } from '../database/index.js'
2
+ import { DeleteMigrationCommand } from '../commands/index.js'
3
+ import { Response, ResponseError, ResponseOk } from '../../utils/index.js'
4
4
  import { Migration } from '@contember/schema-migrations'
5
- import { ModifyMigrationCommand } from '../commands/migrations/ModifyMigrationCommand'
6
- import { SchemaProvider } from './SchemaProvider'
7
- import { SaveSchemaCommand } from '../commands/schema/SaveSchemaCommand'
5
+ import { ModifyMigrationCommand } from '../commands/migrations/ModifyMigrationCommand.js'
6
+ import { SchemaProvider } from './SchemaProvider.js'
7
+ import { SaveSchemaCommand } from '../commands/schema/SaveSchemaCommand.js'
8
8
 
9
9
  export class MigrationAlterer {
10
10
  constructor(
@@ -23,3 +23,10 @@ export type ContentMigrationQuery = {
23
23
  export type MigrationInput =
24
24
  | SchemaMigrationInput
25
25
  | ContentMigrationInput
26
+
27
+ export type SchemaStateInput = {
28
+ readonly acl: unknown
29
+ readonly validation: unknown
30
+ readonly actions: unknown
31
+ readonly settings: unknown
32
+ }
@@ -1,19 +1,19 @@
1
1
  import { calculateMigrationChecksum, Migration, MigrationDescriber, MigrationVersionHelper } from '@contember/schema-migrations'
2
2
  import { Client, DatabaseMetadata, QueryError, wrapIdentifier } from '@contember/database'
3
3
  import { Schema } from '@contember/schema'
4
- import { SaveMigrationCommand } from '../commands'
5
- import { Stage } from '../dtos'
6
- import { DatabaseContext } from '../database'
7
- import { ExecutedMigrationsResolver } from './ExecutedMigrationsResolver'
8
- import { MigrateErrorCode } from '../../schema'
9
- import { calculateSchemaChecksum, SchemaValidator, SchemaValidatorSkippedErrors } from '@contember/schema-utils'
4
+ import { SaveMigrationCommand } from '../commands/index.js'
5
+ import { Stage } from '../dtos/index.js'
6
+ import { DatabaseContext } from '../database/index.js'
7
+ import { ExecutedMigrationsResolver } from './ExecutedMigrationsResolver.js'
8
+ import { MigrateErrorCode } from '../../schema/index.js'
9
+ import { calculateSchemaChecksum, emptySchema, SchemaValidator, SchemaValidatorSkippedErrors } from '@contember/schema-utils'
10
10
  import { logger } from '@contember/logger'
11
- import { MigrationsDatabaseMetadataResolverStoreFactory, SchemaDatabaseMetadataResolverStore } from '../metadata'
12
- import { ContentMigrationQuery, MigrationInput } from './MigrationInput'
13
- import { ContentQueryExecutor } from '../dependencies'
14
- import { SchemaProvider } from './SchemaProvider'
15
- import { SaveSchemaCommand } from '../commands/schema/SaveSchemaCommand'
16
- import { ImplementationException } from '../../utils'
11
+ import { MigrationsDatabaseMetadataResolverStoreFactory, SchemaDatabaseMetadataResolverStore } from '../metadata/index.js'
12
+ import { ContentMigrationQuery, MigrationInput, SchemaStateInput } from './MigrationInput.js'
13
+ import { ContentQueryExecutor } from '../dependencies/index.js'
14
+ import { SchemaProvider } from './SchemaProvider.js'
15
+ import { SaveSchemaCommand } from '../commands/schema/SaveSchemaCommand.js'
16
+ import { ImplementationException } from '../../utils/index.js'
17
17
 
18
18
  type MigrationVariables = {
19
19
  system_schema: string
@@ -29,18 +29,19 @@ export class ProjectMigrator {
29
29
  private readonly contentQueryExecutor: ContentQueryExecutor,
30
30
  ) {}
31
31
 
32
- public async migrate({ db, project, identity, options: { ignoreOrder = false, skipExecuted = false }, migrationsToExecute, stages }: {
32
+ public async migrate({ db, project, identity, options: { ignoreOrder = false, skipExecuted = false }, migrationsToExecute, stages, schemaState }: {
33
33
  db: DatabaseContext
34
34
  project: { slug: string; systemSchema: string }
35
35
  identity: { id: string }
36
36
  stages: Stage[]
37
37
  migrationsToExecute: readonly MigrationInput[]
38
+ schemaState?: SchemaStateInput
38
39
  options: {
39
40
  ignoreOrder?: boolean
40
41
  skipExecuted?: boolean
41
42
  }
42
43
  }) {
43
- if (migrationsToExecute.length === 0) {
44
+ if (migrationsToExecute.length === 0 && !schemaState) {
44
45
  return
45
46
  }
46
47
  const schemaWithMeta = await this.schemaProvider.fetch({ db })
@@ -48,7 +49,8 @@ export class ProjectMigrator {
48
49
  let id = schemaWithMeta.meta.id
49
50
 
50
51
  const validated = await this.validateMigrations(db, schema, schemaWithMeta.meta.version ?? null, migrationsToExecute, { ignoreOrder, skipExecuted })
51
- if (validated.length === 0) {
52
+
53
+ if (validated.length === 0 && !schemaState) {
52
54
  return
53
55
  }
54
56
 
@@ -95,17 +97,127 @@ export class ProjectMigrator {
95
97
  }
96
98
  id = await db.commandBus.execute(new SaveMigrationCommand(migration))
97
99
  }
100
+
101
+ const latestVersion = sorted.length > 0
102
+ ? sorted[sorted.length - 1].version
103
+ : schemaWithMeta.meta.version
104
+
105
+ if (schemaState) {
106
+ schema = {
107
+ ...schema,
108
+ acl: schemaState.acl as Schema['acl'],
109
+ validation: schemaState.validation as Schema['validation'],
110
+ actions: schemaState.actions as Schema['actions'],
111
+ settings: schemaState.settings as Schema['settings'],
112
+ }
113
+ // Client-supplied state is otherwise saved blindly; validate it as the normal migration flow would.
114
+ const errors = SchemaValidator.validate(schema)
115
+ if (errors.length > 0) {
116
+ throw new InvalidSchemaError(
117
+ latestVersion ?? '(schema state)',
118
+ 'Schema state is invalid: \n'
119
+ + errors.map(it => `${it.path.join('.')}: [${it.code}] ${it.message}`).join('\n'),
120
+ )
121
+ }
122
+ }
123
+
124
+ if (!latestVersion) {
125
+ if (schemaState) {
126
+ // State-only update on a fresh project with no migrations — there is no schema
127
+ // row to attach the state to yet, so there is nothing to save.
128
+ return
129
+ }
130
+ throw new ImplementationException()
131
+ }
132
+
133
+ if (!id) {
134
+ throw new ImplementationException()
135
+ }
136
+
137
+ await db.commandBus.execute(
138
+ new SaveSchemaCommand({
139
+ schema,
140
+ meta: {
141
+ id,
142
+ updatedAt: new Date(),
143
+ version: latestVersion,
144
+ checksum: calculateSchemaChecksum(schema),
145
+ },
146
+ }),
147
+ )
148
+ }
149
+
150
+ public async migrateFromSnapshot({ db, project, stages, snapshot, covers, schemaState }: {
151
+ db: DatabaseContext
152
+ project: { slug: string; systemSchema: string }
153
+ stages: Stage[]
154
+ snapshot: { formatVersion: number; modifications: Migration.Modification[] }
155
+ covers: readonly MigrationInput[]
156
+ schemaState?: SchemaStateInput
157
+ }) {
158
+ const sortedCovers = [...covers].sort((a, b) => a.version.localeCompare(b.version))
159
+ const latestVersion = sortedCovers.length > 0 ? sortedCovers[sortedCovers.length - 1].version : null
160
+ if (!latestVersion) {
161
+ throw new ImplementationException('Snapshot must cover at least one migration')
162
+ }
163
+
164
+ // Hard safety gate: a snapshot may only bootstrap a project that has executed nothing yet.
165
+ const executedMigrations = await this.executedMigrationsResolver.getMigrations(db)
166
+ if (executedMigrations.length > 0) {
167
+ throw new ProjectNotEmptyError(latestVersion, 'Cannot apply snapshot: project already has executed migrations')
168
+ }
169
+
170
+ const metadataStore = this.migrationsDatabaseMetadataResolverStoreFactory.create(db)
171
+ let schema = emptySchema
172
+ for (const modification of snapshot.modifications) {
173
+ ;[schema] = await this.applyModification(
174
+ db.client,
175
+ stages,
176
+ schema,
177
+ modification,
178
+ snapshot.formatVersion,
179
+ latestVersion,
180
+ project,
181
+ metadataStore,
182
+ )
183
+ }
184
+
185
+ const errors = SchemaValidator.validate(schema)
186
+ if (errors.length > 0) {
187
+ throw new InvalidSchemaError(
188
+ latestVersion,
189
+ 'Snapshot generates invalid schema: \n'
190
+ + errors.map(it => `${it.path.join('.')}: [${it.code}] ${it.message}`).join('\n'),
191
+ )
192
+ }
193
+
194
+ // Record covered migrations as executed without replaying their SQL, so the registry
195
+ // ends up identical to a full replay (status, checksums and schema rebuild stay correct).
196
+ let id: number | undefined
197
+ for (const migration of sortedCovers) {
198
+ id = await db.commandBus.execute(new SaveMigrationCommand(migration))
199
+ }
98
200
  if (!id) {
99
201
  throw new ImplementationException()
100
202
  }
101
203
 
204
+ if (schemaState) {
205
+ schema = {
206
+ ...schema,
207
+ acl: schemaState.acl as Schema['acl'],
208
+ validation: schemaState.validation as Schema['validation'],
209
+ actions: schemaState.actions as Schema['actions'],
210
+ settings: schemaState.settings as Schema['settings'],
211
+ }
212
+ }
213
+
102
214
  await db.commandBus.execute(
103
215
  new SaveSchemaCommand({
104
216
  schema,
105
217
  meta: {
106
218
  id,
107
219
  updatedAt: new Date(),
108
- version: sorted[sorted.length - 1].version,
220
+ version: latestVersion,
109
221
  checksum: calculateSchemaChecksum(schema),
110
222
  },
111
223
  }),
@@ -197,7 +309,7 @@ export class ProjectMigrator {
197
309
  const errors = SchemaValidator.validate(schema)
198
310
  if (errors.length > 0) {
199
311
  throw new InvalidSchemaError(
200
- toExecute[toExecute.length - 1].version,
312
+ toExecute[toExecute.length - 1]?.version ?? version ?? '(schema)',
201
313
  'Migration generates invalid schema: \n'
202
314
  + errors.map(it => it.path.join('.') + ': ' + it.message).join('\n'),
203
315
  )
@@ -287,3 +399,7 @@ export class FailedContentMigrationError extends MigrationError {
287
399
  export class NotSuccessfulContentMigrationError extends MigrationError {
288
400
  code = MigrateErrorCode.ContentMigrationNotSuccessful
289
401
  }
402
+
403
+ export class ProjectNotEmptyError extends MigrationError {
404
+ code = MigrateErrorCode.ProjectNotEmpty
405
+ }
@@ -1,7 +1,7 @@
1
- import { SchemaQuery } from '../queries'
2
- import { DatabaseContext } from '../database'
1
+ import { SchemaQuery } from '../queries/index.js'
2
+ import { DatabaseContext } from '../database/index.js'
3
3
  import { calculateSchemaChecksum, emptySchema, normalizeSchema } from '@contember/schema-utils'
4
- import { ExecutedMigrationsResolver } from './ExecutedMigrationsResolver'
4
+ import { ExecutedMigrationsResolver } from './ExecutedMigrationsResolver.js'
5
5
  import { SchemaMigrator } from '@contember/schema-migrations'
6
6
  import { Schema } from '@contember/schema'
7
7
 
@@ -1,4 +1,4 @@
1
- export * from './ExecutedMigrationsResolver'
2
- export * from './MigrationAlterer'
3
- export * from './ProjectMigrator'
4
- export * from './SchemaProvider'
1
+ export * from './ExecutedMigrationsResolver.js'
2
+ export * from './MigrationAlterer.js'
3
+ export * from './ProjectMigrator.js'
4
+ export * from './SchemaProvider.js'
@@ -1,12 +1,12 @@
1
- import { ContentEvent, CreateEvent, DeleteEvent, EventType, UpdateEvent } from '../../events'
2
- import { assertNever } from '../../../utils'
1
+ import { ContentEvent, CreateEvent, DeleteEvent, EventType, TruncateEvent, UpdateEvent } from '../../events/index.js'
2
+ import { assertNever } from '../../../utils/index.js'
3
3
 
4
4
  export type EventRow = {
5
5
  id: string
6
6
  type: EventType
7
- table_name: string
8
- row_ids: string[]
9
- values: Record<string, any>
7
+ table_name: string | null
8
+ row_ids: string[] | null
9
+ values: Record<string, any> | null
10
10
  created_at: Date
11
11
  applied_at: Date
12
12
  identity_id: string
@@ -23,9 +23,9 @@ export const createEventsFromRows = (rows: EventRow[]): ContentEvent[] => {
23
23
  event.applied_at,
24
24
  event.identity_id,
25
25
  event.transaction_id,
26
- event.row_ids,
27
- event.table_name,
28
- event.values,
26
+ event.row_ids ?? [],
27
+ event.table_name ?? '',
28
+ event.values ?? {},
29
29
  )
30
30
  case EventType.update:
31
31
  return new UpdateEvent(
@@ -34,9 +34,9 @@ export const createEventsFromRows = (rows: EventRow[]): ContentEvent[] => {
34
34
  event.applied_at,
35
35
  event.identity_id,
36
36
  event.transaction_id,
37
- event.row_ids,
38
- event.table_name,
39
- event.values,
37
+ event.row_ids ?? [],
38
+ event.table_name ?? '',
39
+ event.values ?? {},
40
40
  )
41
41
  case EventType.delete:
42
42
  return new DeleteEvent(
@@ -45,8 +45,16 @@ export const createEventsFromRows = (rows: EventRow[]): ContentEvent[] => {
45
45
  event.applied_at,
46
46
  event.identity_id,
47
47
  event.transaction_id,
48
- event.row_ids,
49
- event.table_name,
48
+ event.row_ids ?? [],
49
+ event.table_name ?? '',
50
+ )
51
+ case EventType.truncate:
52
+ return new TruncateEvent(
53
+ event.id,
54
+ event.created_at,
55
+ event.applied_at,
56
+ event.identity_id,
57
+ event.transaction_id,
50
58
  )
51
59
  default:
52
60
  assertNever(event.type)
@@ -8,9 +8,9 @@ import {
8
8
  SelectBuilderSpecification,
9
9
  Value,
10
10
  } from '@contember/database'
11
- import { ContentEvent } from '../../events'
12
- import { EventsFilter, EventsFilterDate, EventsOrder } from '../../../schema'
13
- import { createEventsFromRows, EventRow } from './EventQueryHelpers'
11
+ import { ContentEvent } from '../../events/index.js'
12
+ import { EventsFilter, EventsFilterDate, EventsOrder } from '../../../schema/index.js'
13
+ import { createEventsFromRows, EventRow } from './EventQueryHelpers.js'
14
14
 
15
15
  export class EventsQuery extends DatabaseQuery<ContentEvent[]> {
16
16
  constructor(
@@ -1,3 +1,3 @@
1
- export * from './EventsQuery'
2
- export * from './LatestTransactionIdByStageQuery'
3
- export * from './OldValuesQuery'
1
+ export * from './EventsQuery.js'
2
+ export * from './LatestTransactionIdByStageQuery.js'
3
+ export * from './OldValuesQuery.js'
@@ -1,4 +1,4 @@
1
- export * from './migrations'
2
- export * from './events'
3
- export * from './stages'
4
- export * from './schema'
1
+ export * from './migrations/index.js'
2
+ export * from './events/index.js'
3
+ export * from './stages/index.js'
4
+ export * from './schema/index.js'
@@ -1,6 +1,6 @@
1
1
  import { DatabaseQuery, DatabaseQueryable } from '@contember/database'
2
- import { ExecutedMigration } from '../../dtos'
3
- import { createExecutedMigrationDto, createExecutedMigrationQueryBuilder } from './ExecutedMigrationsQueryHelper'
2
+ import { ExecutedMigration } from '../../dtos/index.js'
3
+ import { createExecutedMigrationDto, createExecutedMigrationQueryBuilder } from './ExecutedMigrationsQueryHelper.js'
4
4
 
5
5
  export class ExecutedMigrationByVersionQuery extends DatabaseQuery<ExecutedMigration | null> {
6
6
  constructor(private version: string) {
@@ -1,6 +1,6 @@
1
1
  import { DatabaseQuery, DatabaseQueryable, Operator } from '@contember/database'
2
- import { ExecutedMigration } from '../../dtos'
3
- import { createExecutedMigrationDto, createExecutedMigrationQueryBuilder } from './ExecutedMigrationsQueryHelper'
2
+ import { ExecutedMigration } from '../../dtos/index.js'
3
+ import { createExecutedMigrationDto, createExecutedMigrationQueryBuilder } from './ExecutedMigrationsQueryHelper.js'
4
4
 
5
5
  export class ExecutedMigrationsQuery extends DatabaseQuery<ExecutedMigration[]> {
6
6
  constructor(private afterVersion?: string) {
@@ -1,5 +1,5 @@
1
1
  import { Literal, SelectBuilder } from '@contember/database'
2
- import { ExecutedMigration } from '../../dtos'
2
+ import { ExecutedMigration } from '../../dtos/index.js'
3
3
  import { VERSION_INITIAL } from '@contember/schema-migrations'
4
4
 
5
5
  type ExecutedMigrationRow = { id: number; name: string; migration: any; checksum: string | null; executed_at: Date; type: 'content' | 'schema' }
@@ -1,3 +1,3 @@
1
- export * from './ExecutedMigrationByVersionQuery'
2
- export * from './ExecutedMigrationByVersionQuery'
3
- export * from './ExecutedMigrationsQuery'
1
+ export * from './ExecutedMigrationByVersionQuery.js'
2
+ export * from './ExecutedMigrationByVersionQuery.js'
3
+ export * from './ExecutedMigrationsQuery.js'
@@ -1,6 +1,6 @@
1
1
  import { DatabaseQuery, DatabaseQueryable, Literal, SelectBuilder } from '@contember/database'
2
2
  import { Schema } from '@contember/schema'
3
- import { SchemaWithMeta } from '../../migrations'
3
+ import { SchemaWithMeta } from '../../migrations/index.js'
4
4
 
5
5
  export class SchemaQuery extends DatabaseQuery<SchemaWithMeta | null> {
6
6
  constructor(